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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/boot/component.ts","../../base/dist/chunk-73SFLUWV.mjs","../../../node_modules/core-js-pure/internals/global-this.js","../../../node_modules/core-js-pure/internals/fails.js","../../../node_modules/core-js-pure/internals/function-bind-native.js","../../../node_modules/core-js-pure/internals/function-apply.js","../../../node_modules/core-js-pure/internals/function-uncurry-this.js","../../../node_modules/core-js-pure/internals/classof-raw.js","../../../node_modules/core-js-pure/internals/function-uncurry-this-clause.js","../../../node_modules/core-js-pure/internals/is-callable.js","../../../node_modules/core-js-pure/internals/descriptors.js","../../../node_modules/core-js-pure/internals/function-call.js","../../../node_modules/core-js-pure/internals/object-property-is-enumerable.js","../../../node_modules/core-js-pure/internals/create-property-descriptor.js","../../../node_modules/core-js-pure/internals/indexed-object.js","../../../node_modules/core-js-pure/internals/is-null-or-undefined.js","../../../node_modules/core-js-pure/internals/require-object-coercible.js","../../../node_modules/core-js-pure/internals/to-indexed-object.js","../../../node_modules/core-js-pure/internals/is-object.js","../../../node_modules/core-js-pure/internals/path.js","../../../node_modules/core-js-pure/internals/get-built-in.js","../../../node_modules/core-js-pure/internals/object-is-prototype-of.js","../../../node_modules/core-js-pure/internals/environment-user-agent.js","../../../node_modules/core-js-pure/internals/environment-v8-version.js","../../../node_modules/core-js-pure/internals/symbol-constructor-detection.js","../../../node_modules/core-js-pure/internals/use-symbol-as-uid.js","../../../node_modules/core-js-pure/internals/is-symbol.js","../../../node_modules/core-js-pure/internals/try-to-string.js","../../../node_modules/core-js-pure/internals/a-callable.js","../../../node_modules/core-js-pure/internals/get-method.js","../../../node_modules/core-js-pure/internals/ordinary-to-primitive.js","../../../node_modules/core-js-pure/internals/is-pure.js","../../../node_modules/core-js-pure/internals/define-global-property.js","../../../node_modules/core-js-pure/internals/shared-store.js","../../../node_modules/core-js-pure/internals/shared.js","../../../node_modules/core-js-pure/internals/to-object.js","../../../node_modules/core-js-pure/internals/has-own-property.js","../../../node_modules/core-js-pure/internals/uid.js","../../../node_modules/core-js-pure/internals/well-known-symbol.js","../../../node_modules/core-js-pure/internals/to-primitive.js","../../../node_modules/core-js-pure/internals/to-property-key.js","../../../node_modules/core-js-pure/internals/document-create-element.js","../../../node_modules/core-js-pure/internals/ie8-dom-define.js","../../../node_modules/core-js-pure/internals/object-get-own-property-descriptor.js","../../../node_modules/core-js-pure/internals/is-forced.js","../../../node_modules/core-js-pure/internals/function-bind-context.js","../../../node_modules/core-js-pure/internals/v8-prototype-define-bug.js","../../../node_modules/core-js-pure/internals/an-object.js","../../../node_modules/core-js-pure/internals/object-define-property.js","../../../node_modules/core-js-pure/internals/create-non-enumerable-property.js","../../../node_modules/core-js-pure/internals/export.js","../../../node_modules/core-js-pure/internals/add-to-unscopables.js","../../../node_modules/core-js-pure/internals/does-not-exceed-safe-integer.js","../../../node_modules/core-js-pure/internals/math-trunc.js","../../../node_modules/core-js-pure/internals/to-integer-or-infinity.js","../../../node_modules/core-js-pure/internals/to-length.js","../../../node_modules/core-js-pure/internals/length-of-array-like.js","../../../node_modules/core-js-pure/internals/to-absolute-index.js","../../../node_modules/core-js-pure/internals/create-property.js","../../../node_modules/core-js-pure/modules/es.array.to-spliced.js","../../../node_modules/core-js-pure/internals/entry-unbind.js","../../../node_modules/core-js-pure/es/array/to-spliced.js","../../../node_modules/core-js-pure/stable/array/to-spliced.js","../../../node_modules/core-js-pure/modules/esnext.array.to-spliced.js","../../../node_modules/core-js-pure/actual/array/to-spliced.js","../../../node_modules/core-js-pure/full/array/to-spliced.js","../../../node_modules/core-js-pure/features/array/to-spliced.js","../../../node_modules/core-js-pure/internals/environment.js","../../../node_modules/core-js-pure/internals/environment-is-node.js","../../../node_modules/core-js-pure/internals/define-built-in.js","../../../node_modules/core-js-pure/internals/function-uncurry-this-accessor.js","../../../node_modules/core-js-pure/internals/is-possible-prototype.js","../../../node_modules/core-js-pure/internals/a-possible-prototype.js","../../../node_modules/core-js-pure/internals/object-set-prototype-of.js","../../../node_modules/core-js-pure/internals/to-string-tag-support.js","../../../node_modules/core-js-pure/internals/classof.js","../../../node_modules/core-js-pure/internals/object-to-string.js","../../../node_modules/core-js-pure/internals/set-to-string-tag.js","../../../node_modules/core-js-pure/internals/define-built-in-accessor.js","../../../node_modules/core-js-pure/internals/set-species.js","../../../node_modules/core-js-pure/internals/an-instance.js","../../../node_modules/core-js-pure/internals/inspect-source.js","../../../node_modules/core-js-pure/internals/is-constructor.js","../../../node_modules/core-js-pure/internals/a-constructor.js","../../../node_modules/core-js-pure/internals/species-constructor.js","../../../node_modules/core-js-pure/internals/html.js","../../../node_modules/core-js-pure/internals/array-slice.js","../../../node_modules/core-js-pure/internals/validate-arguments-length.js","../../../node_modules/core-js-pure/internals/environment-is-ios.js","../../../node_modules/core-js-pure/internals/task.js","../../../node_modules/core-js-pure/internals/safe-get-built-in.js","../../../node_modules/core-js-pure/internals/queue.js","../../../node_modules/core-js-pure/internals/environment-is-ios-pebble.js","../../../node_modules/core-js-pure/internals/environment-is-webos-webkit.js","../../../node_modules/core-js-pure/internals/microtask.js","../../../node_modules/core-js-pure/internals/host-report-errors.js","../../../node_modules/core-js-pure/internals/perform.js","../../../node_modules/core-js-pure/internals/weak-map-basic-detection.js","../../../node_modules/core-js-pure/internals/shared-key.js","../../../node_modules/core-js-pure/internals/hidden-keys.js","../../../node_modules/core-js-pure/internals/internal-state.js","../../../node_modules/core-js-pure/internals/promise-native-constructor.js","../../../node_modules/core-js-pure/internals/promise-constructor-detection.js","../../../node_modules/core-js-pure/internals/new-promise-capability.js","../../../node_modules/core-js-pure/modules/es.promise.constructor.js","../../../node_modules/core-js-pure/internals/iterators.js","../../../node_modules/core-js-pure/internals/is-array-iterator-method.js","../../../node_modules/core-js-pure/internals/get-iterator-method.js","../../../node_modules/core-js-pure/internals/get-iterator.js","../../../node_modules/core-js-pure/internals/iterator-close.js","../../../node_modules/core-js-pure/internals/iterate.js","../../../node_modules/core-js-pure/internals/check-correctness-of-iteration.js","../../../node_modules/core-js-pure/internals/promise-statics-incorrect-iteration.js","../../../node_modules/core-js-pure/modules/es.promise.all.js","../../../node_modules/core-js-pure/modules/es.promise.catch.js","../../../node_modules/core-js-pure/modules/es.promise.race.js","../../../node_modules/core-js-pure/modules/es.promise.reject.js","../../../node_modules/core-js-pure/internals/promise-resolve.js","../../../node_modules/core-js-pure/modules/es.promise.resolve.js","../../../node_modules/core-js-pure/modules/es.promise.js","../../../node_modules/core-js-pure/modules/es.promise.with-resolvers.js","../../../node_modules/core-js-pure/es/promise/with-resolvers.js","../../../node_modules/core-js-pure/stable/promise/with-resolvers.js","../../../node_modules/core-js-pure/modules/esnext.promise.with-resolvers.js","../../../node_modules/core-js-pure/actual/promise/with-resolvers.js","../../../node_modules/core-js-pure/full/promise/with-resolvers.js","../../../node_modules/core-js-pure/features/promise/with-resolvers.js","../../base/src/utils/setMetaTag.ts","../../base/src/utils/createBuildInfo.ts","../../base/src/utils/private/once.ts","../../base/src/utils/warnOnce.ts","../../base/src/utils/deprecateObject.ts","../../base/src/utils/isForbiddenPropertyName.ts","../../base/src/utils/isPlainObject.ts","../../base/src/utils/iterateEquals.ts","../../base/src/utils/singleToArray.ts","../../base/src/utils/toSpliced.ts","../../base/src/utils/withResolvers.ts","../src/Composer.tsx","../src/Attachment/createMiddleware.tsx","../src/Attachment/AudioAttachment.js","../src/Attachment/AudioContent.tsx","../src/Attachment/FileAttachment.js","../src/Attachment/FileContent.tsx","../src/Attachment/ImageAttachment.tsx","../src/Utils/readDataURIToBlob.ts","../src/Attachment/ImageContent.tsx","../src/Utils/FixedWidthImage.tsx","../src/Styles/CustomPropertyNames.ts","../src/Styles/CSSTokens.ts","../src/Attachment/Text/TextAttachment.tsx","../src/Attachment/Text/TextContent.tsx","../src/Attachment/Text/private/isAIGeneratedActivity.ts","../src/Attachment/Text/private/MarkdownTextContent.tsx","../src/ActivityFeedback/ActivityFeedback.tsx","../src/ActivityFeedback/private/FeedbackForm.tsx","../src/Attachment/Text/private/Markdownable.tsx","../src/TextArea/TextArea.tsx","unplugin-lightningcss:/__w/1/s/BotFramework-WebChat/packages/component/src/TextArea/TextArea.module.css?css_module","../src/ActivityFeedback/providers/useActivityFeedbackHooks.ts","../src/ActivityFeedback/providers/private/ActivityFeedbackContext.ts","../src/ActivityFeedback/private/getDisclaimerFromReviewAction.ts","unplugin-lightningcss:/__w/1/s/BotFramework-WebChat/packages/component/src/ActivityFeedback/private/FeedbackForm.module.css?css_module","../src/ActivityFeedback/private/FeedbackVoteButtonBar.tsx","../src/ActivityFeedback/private/FeedbackVoteButton.tsx","../src/ActivityFeedback/providers/private/FocusPropagation.ts","../src/ActivityFeedback/private/ThumbButton.tsx","../src/Tooltip/private/Tooltip.tsx","../src/ActivityFeedback/private/ThumbButton.Image.tsx","unplugin-lightningcss:/__w/1/s/BotFramework-WebChat/packages/component/src/ActivityFeedback/private/ThumbButton.module.css?css_module","../src/ActivityFeedback/private/isActionRequireReview.ts","../src/ActivityFeedback/private/canActionResubmit.ts","../src/ActivityFeedback/providers/ActivityFeedbackComposer.tsx","../src/Utils/JSONLinkedData/dereferenceBlankNodes.ts","../src/Utils/JSONLinkedData/getSafeOwnPropertyNames.ts","../src/Utils/JSONLinkedData/isBlankNode.ts","../src/Utils/JSONLinkedData/isUnconnectedBlankNode.ts","../src/Utils/JSONLinkedData/visitOnce.ts","../src/ActivityFeedback/private/hasFeedbackLoop.ts","../src/ActivityFeedback/private/getDisclaimerFromFeedbackLoop.ts","../src/LinkDefinition/LinkDefinitionItem.tsx","../src/LinkDefinition/private/ItemBody.tsx","../src/LinkDefinition/private/Badge.tsx","unplugin-lightningcss:/__w/1/s/BotFramework-WebChat/packages/component/src/LinkDefinition/LinkDefinitions.module.css?css_module","../src/LinkDefinition/private/OpenInNewWindowIcon.tsx","unplugin-lightningcss:/__w/1/s/BotFramework-WebChat/packages/component/src/Attachment/Text/TextContent.module.css?css_module","../src/LinkDefinition/private/extractHostnameWithSubdomain.ts","../src/LinkDefinition/LinkDefinitions.tsx","../src/Utils/orgSchema/getFirstBaseOfSoftwareSourceCode.ts","../src/hooks/internal/useSanitizeHrefCallback.ts","../src/hooks/useStreamingMarkdownWithDefinitions.ts","../src/providers/ModalDialog/private/useContext.ts","../src/providers/ModalDialog/private/Context.ts","../src/providers/ModalDialog/useShowModal.ts","../src/Attachment/Text/private/ActivityCopyButton.tsx","../src/types/internal/refObject.ts","unplugin-lightningcss:/__w/1/s/BotFramework-WebChat/packages/component/src/Attachment/Text/private/ActivityCopyButton.module.css?css_module","../src/Attachment/Text/private/ActivityViewCodeButton.tsx","../src/Utils/LocalizedString.tsx","../src/Utils/betterLinks.ts","../src/Attachment/Text/private/CodeContent.tsx","unplugin-lightningcss:/__w/1/s/BotFramework-WebChat/packages/component/src/Attachment/Text/private/ViewCodeDialog.module.css?css_module","../src/Attachment/Text/private/CitationModalContent.tsx","unplugin-lightningcss:/__w/1/s/BotFramework-WebChat/packages/component/src/Attachment/Text/private/CitationModal.module.css?css_module","../src/Attachment/Text/private/MessageSensitivityLabel.tsx","../src/Attachment/Text/private/ShieldIcon.tsx","../src/Attachment/Text/private/isHTMLButtonElement.ts","../src/Attachment/Text/private/PlainTextContent.tsx","../src/Attachment/VideoAttachment.js","../src/Attachment/VideoContent.tsx","../src/Attachment/HTMLVideoContent.tsx","../src/Attachment/VimeoContent.tsx","../src/Attachment/YouTubeContent.tsx","../src/BuiltInDecorator.tsx","../src/Middleware/ActivityGrouping/createDefaultActivityGroupingDecoratorMiddleware.tsx","../src/Middleware/ActivityGrouping/ui/RenderActivityGrouping.tsx","../src/providers/RenderingActivities/private/RenderingActivitiesContext.ts","../src/providers/RenderingActivities/useActivityRendererMap.ts","../src/Middleware/ActivityGrouping/ui/RenderActivity.tsx","../src/Transcript/ActivityRow.tsx","../src/Activity/Speak.tsx","../src/Activity/SayAlt.tsx","unplugin-lightningcss:/__w/1/s/BotFramework-WebChat/packages/component/src/Activity/SayAlt.module.css?css_module","../src/ActivityDebug/RestrictedActivityDebugAPI.ts","../src/providers/TranscriptFocus/useFocusByActivityKey.ts","../src/providers/TranscriptFocus/useGetDescendantIdByActivityKey.ts","../src/Transcript/useActivityAccessibleName.ts","../src/types/internal/SendStatus.ts","../src/Utils/textFormatToContentType.ts","../src/Utils/activityAltText.ts","../src/Middleware/ActivityGrouping/ui/LegacyActivityBridgeComposer.tsx","../src/Middleware/ActivityGrouping/ui/SenderGrouping/SenderGrouping.tsx","../src/Middleware/ActivityGrouping/ui/StatusGrouping/StatusGrouping.tsx","../src/Dictation.js","../src/hooks/internal/useResumeAudioContext.ts","../src/hooks/internal/private/createOnEventShim.ts","../src/hooks/internal/BypassSpeechSynthesisPonyfill.js","../src/hooks/internal/UITracker.js","../src/Middleware/Activity/defaultActivityPolymiddleware.tsx","../src/Activity/CarouselLayout.js","../src/Activity/CarouselFilmStrip.js","../src/Activity/Bubble.tsx","unplugin-lightningcss:/__w/1/s/BotFramework-WebChat/packages/component/src/Activity/Bubble.module.css?css_module","../src/Activity/CarouselFilmStripAttachment.js","unplugin-lightningcss:/__w/1/s/BotFramework-WebChat/packages/component/src/Activity/CarouselFilmStripAttachment.module.css?css_module","unplugin-lightningcss:/__w/1/s/BotFramework-WebChat/packages/component/src/Activity/CarouselFilmStrip.module.css?css_module","unplugin-lightningcss:/__w/1/s/BotFramework-WebChat/packages/component/src/Activity/CarouselLayout.module.css?css_module","../src/Activity/StackedLayout.tsx","../src/Activity/AttachmentRow.tsx","../src/Activity/CodeBlockContent.tsx","unplugin-lightningcss:/__w/1/s/BotFramework-WebChat/packages/component/src/Activity/CodeBlockContent.module.css?css_module","../src/Activity/CollapsibleContent.tsx","unplugin-lightningcss:/__w/1/s/BotFramework-WebChat/packages/component/src/Activity/CollapsibleContent.module.css?css_module","../src/Middleware/ActivityStatus/createSendStatusMiddleware.tsx","../src/ActivityStatus/SendStatus/SendStatus.tsx","../src/ActivityStatus/SendStatus/private/SendFailedRetry.js","../src/Utils/InlineMarkdown.js","../src/Utils/createCustomEvent.js","../src/Utils/randomId.js","../src/hooks/internal/useInternalMarkdownIt.js","../src/Utils/walkMarkdownTokens.js","unplugin-lightningcss:/__w/1/s/BotFramework-WebChat/packages/component/src/ActivityStatus/ActivityStatus.module.css?css_module","../src/Middleware/ActivityStatus/createTimestampMiddleware.tsx","../src/ActivityStatus/AbsoluteTime.tsx","../src/ActivityStatus/OthersActivityStatus.tsx","../src/ActivityStatus/private/Originator.tsx","../src/ActivityStatus/StatusSlot.tsx","../src/ActivityStatus/Timestamp.tsx","../src/ActivityStatus/private/RelativeTime.tsx","../src/hooks/internal/useForceRenderAtInterval.ts","../src/hooks/internal/useTimer.ts","../src/ActivityStatus/SelfActivityStatus.tsx","../src/Middleware/ActivityStatus/createCoreMiddleware.tsx","../src/Middleware/AttachmentForScreenReader/createCoreMiddleware.tsx","../src/Middleware/AttachmentForScreenReader/AudioAttachment.js","../src/Middleware/AttachmentForScreenReader/FileAttachment.js","../src/Middleware/AttachmentForScreenReader/ImageAttachment.js","../src/Middleware/AttachmentForScreenReader/TextAttachment.js","../src/Middleware/AttachmentForScreenReader/VideoAttachment.js","../src/Middleware/Avatar/createDefaultAvatarPolymiddleware.tsx","../src/Middleware/Avatar/DefaultAvatar.tsx","../src/Avatar/ImageAvatar.tsx","../src/Avatar/InitialsAvatar.tsx","../src/Middleware/CardAction/createCoreMiddleware.js","../src/Middleware/ScrollToEndButton/ScrollToEndButton.tsx","../src/Middleware/ScrollToEndButton/createScrollToEndButtonMiddleware.ts","../src/Toast/createToastMiddleware.tsx","../src/BasicToast.js","../src/Toast/DismissIcon.js","../src/Toast/NotificationIcon.js","../src/Toast/CheckMarkIcon.js","../src/Toast/ExclamationMarkIcon.js","../src/hooks/internal/useInternalRenderMarkdownInline.js","../src/Middleware/Toast/createCoreMiddleware.tsx","../src/Middleware/TypingIndicator/createCoreMiddleware.tsx","../src/Assets/TypingAnimation.js","../src/providers/CustomElements/CustomElementsComposer.tsx","../src/providers/CustomElements/customElements/CodeBlock.ts","unplugin-lightningcss:/__w/1/s/BotFramework-WebChat/packages/component/src/providers/CustomElements/customElements/CodeBlock.module.css?css_module","../src/providers/CustomElements/customElements/CodeBlockCopyButton.tsx","../src/providers/CustomElements/customElements/wrapAsCustomElement.ts","unplugin-lightningcss:/__w/1/s/BotFramework-WebChat/packages/component/src/providers/CustomElements/customElements/CodeBlockCopyButton.module.css?css_module","../src/providers/HTMLContentTransformCOR/HTMLContentTransformComposer.tsx","../src/providers/internal/SendBox/SendBoxComposer.tsx","../src/providers/ModalDialog/ModalDialogComposer.tsx","../src/providers/ModalDialog/private/Popover.tsx","../src/providers/ReducedMotion/ReducedMotionComposer.tsx","../src/providers/Theme/useTheme.tsx","../src/providers/Theme/private/Context.ts","../src/SendBox/createMiddleware.tsx","../src/SendBoxToolbar/BasicSendBoxToolbar.tsx","../src/SendBoxToolbar/UploadButton.tsx","../src/SendBoxToolbar/Assets/AttachmentIcon.tsx","../src/SendBoxToolbar/createMiddleware.tsx","../src/Styles/createStyleSet.ts","../src/Styles/StyleSet/Activities.ts","../src/Styles/StyleSet/ActivityButton.ts","../src/Styles/StyleSet/ActivityCopyButton.ts","../src/Styles/StyleSet/AudioAttachment.ts","../src/Styles/StyleSet/AudioContent.ts","../src/Styles/StyleSet/AutoResizeTextArea.ts","../src/Styles/StyleSet/Avatar.ts","../src/Styles/StyleSet/BasicTranscript.ts","../src/Styles/mirrorStyle.js","../src/Styles/StyleSet/Bubble.ts","../src/Styles/StyleSet/CarouselFilmStrip.ts","../src/Styles/StyleSet/CarouselFilmStripAttachment.ts","../src/Styles/StyleSet/CarouselFlipper.ts","../src/Styles/StyleSet/ChatHistoryBox.ts","../src/Styles/StyleSet/CitationModalDialog.ts","../src/Styles/StyleSet/ConnectivityNotification.ts","../src/Styles/StyleSet/DictationInterims.ts","../src/Styles/StyleSet/ErrorBox.ts","../src/Styles/StyleSet/ErrorNotification.ts","../src/Styles/StyleSet/FileContent.ts","../src/Styles/StyleSet/ImageAvatar.ts","../src/Styles/StyleSet/InitialsAvatar.ts","../src/Styles/StyleSet/Constants.ts","../src/Styles/StyleSet/LinkDefinitions.ts","../src/Styles/StyleSet/MicrophoneButton.ts","../src/Styles/StyleSet/ModalDialog.ts","../src/Styles/StyleSet/RenderMarkdown.ts","../src/Styles/StyleSet/Root.ts","../src/Styles/StyleSet/ScrollToEndButton.ts","../src/Styles/StyleSet/SendBox.ts","../src/Styles/StyleSet/SendBoxButton.ts","../src/Styles/StyleSet/SendBoxTextBox.ts","../src/Styles/StyleSet/SendStatus.ts","../src/Styles/StyleSet/SpinnerAnimation.ts","../src/Styles/StyleSet/StackedLayout.ts","../src/Styles/StyleSet/SuggestedAction.ts","../src/Styles/StyleSet/SuggestedActions.ts","../src/Styles/StyleSet/TextContent.ts","../src/Styles/StyleSet/ThumbButton.ts","../src/Styles/StyleSet/Toast.ts","../src/Styles/StyleSet/Toaster.ts","../src/Styles/StyleSet/Tooltip.ts","../src/Styles/StyleSet/TypingAnimation.ts","../src/Styles/StyleSet/TypingIndicator.ts","../src/Styles/StyleSet/UploadButton.ts","../src/Styles/StyleSet/VideoAttachment.ts","../src/Styles/StyleSet/VideoContent.ts","../src/Styles/StyleSet/VimeoContent.ts","../src/Styles/StyleSet/WarningNotification.ts","../src/Styles/StyleSet/YouTubeContent.ts","../src/Styles/CSSCustomPropertiesContainer.tsx","../src/stylesheet/ComponentStylesheet.tsx","../src/stylesheet/createComponentStyleElements.ts","../src/Utils/updateMarkdownAttrs.js","../src/Utils/addTargetBlankToHyperlinksMarkdown.js","../src/Utils/mapMap.js","../src/ReactWebChat.tsx","../src/BasicWebChat.tsx","../src/BasicConnectivityStatus.js","../src/ConnectivityStatus/Connected.js","../src/ConnectivityStatus/Connecting.tsx","../src/hooks/internal/useForceRender.js","../src/ConnectivityStatus/Assets/SpinnerAnimation.js","../src/ConnectivityStatus/Assets/WarningNotificationIcon.js","../src/ConnectivityStatus/FailedToConnect.js","../src/ConnectivityStatus/Assets/ErrorNotificationIcon.js","../src/ConnectivityStatus/JavaScriptError.js","../src/BasicToaster.js","../src/Toast/CollapseIcon.js","../src/Toast/ExpandIcon.js","../src/BasicTranscript.tsx","../src/ChatHistory/ChatHistoryBox.tsx","../src/ChatHistory/ChatHistoryToolbar.tsx","../src/ChatHistory/private/ScrollToEndButton.tsx","../src/providers/RenderingActivities/useRenderingActivityKeys.ts","../src/Transcript/ActivityTree.tsx","../src/providers/GroupedRenderingActivities/private/GroupedRenderingActivitiesContext.ts","../src/providers/GroupedRenderingActivities/useGroupedRenderingActivities.ts","../src/Transcript/LiveRegionTranscript.tsx","../src/LiveRegion/LiveRegionActivity.tsx","../src/LiveRegion/private/LiveRegionAttachments.tsx","../src/LiveRegion/private/LiveRegionSuggestedActions.tsx","../src/Transcript/LiveRegion/SendFailed.tsx","../src/hooks/internal/usePrevious.ts","../src/Transcript/LiveRegion/isPresentational.ts","../src/Transcript/useTypistNames.ts","../src/Utils/FocusRedirector.tsx","../src/types/internal/mutableRefObject.ts","../src/Utils/TypeFocusSink/inputtableKey.ts","../src/hooks/internal/useDispatchScrollPosition.js","../src/hooks/internal/useDispatchTranscriptFocusByActivityKey.ts","../src/hooks/internal/useRegisterFocusTranscript.js","../src/Utils/removeInline.js","../src/hooks/internal/useRegisterScrollTo.js","../src/hooks/internal/useRegisterScrollToEnd.js","../src/providers/ChatHistoryDOM/ChatHistoryDOMComposer.tsx","../src/providers/GroupedRenderingActivities/GroupedRenderingActivitiesComposer.tsx","../src/providers/RenderingActivities/useRenderingActivities.ts","../src/providers/GroupedRenderingActivities/useNumRenderingActivities.ts","../src/providers/RenderingActivities/RenderingActivitiesComposer.tsx","../src/providers/TranscriptFocus/TranscriptFocusComposer.tsx","../src/hooks/internal/useStateRef.ts","../src/Utils/scrollIntoViewWithBlockNearest.ts","../src/providers/ActivityLogicalGrouping/useGetLogicalGroupBoundaries.ts","../src/providers/TranscriptFocus/useFocusRelativeActivity.ts","../src/providers/TranscriptFocus/useFocusedExplicitly.ts","../src/providers/TranscriptFocus/useFocusedKey.ts","../src/Utils/AccessKeySink/Surface.tsx","../src/Utils/TypeFocusSink/getTabIndex.ts","../src/Utils/firstTabbableDescendant.js","../src/Activity/Avatar.tsx","../src/ErrorBox.tsx","../src/providers/Theme/ThemeProvider.tsx"],"sourcesContent":["export { default as Composer, type ComposerProps } from '../Composer';\nexport { default as ReactWebChat, type ReactWebChatProps } from '../ReactWebChat';\n\n// Components for restructuring BasicWebChat\nexport { default as BasicConnectivityStatus } from '../BasicConnectivityStatus';\nexport { default as BasicToaster } from '../BasicToaster';\nexport { default as BasicTranscript } from '../BasicTranscript';\nexport { default as BasicWebChat, type BasicWebChatProps } from '../BasicWebChat';\nexport { default as BasicSendBox } from '../SendBox/BasicSendBox';\nexport { default as BasicSendBoxToolbar } from '../SendBoxToolbar/BasicSendBoxToolbar';\nexport { default as AccessKeySinkSurface } from '../Utils/AccessKeySink/Surface';\n\n// Components for recomposing activities and attachments\nexport { default as AudioContent } from '../Attachment/AudioContent';\nexport { default as FileContent } from '../Attachment/FileContent';\nexport { default as HTMLVideoContent } from '../Attachment/HTMLVideoContent';\nexport { default as ImageContent } from '../Attachment/ImageContent';\nexport { default as TextContent } from '../Attachment/Text/TextContent';\nexport { default as VideoContent } from '../Attachment/VideoContent';\nexport { default as VimeoContent } from '../Attachment/VimeoContent';\nexport { default as YouTubeContent } from '../Attachment/YouTubeContent';\n\n// Components for recomposing transcript\nexport { default as Avatar } from '../Activity/Avatar';\nexport { default as Bubble } from '../Activity/Bubble';\nexport { default as SpeakActivity } from '../Activity/Speak';\nexport { default as SendStatus } from '../ActivityStatus/SendStatus/SendStatus';\nexport { default as Timestamp } from '../ActivityStatus/Timestamp';\nexport { default as ErrorBox } from '../ErrorBox';\n\n// Components for recomposing send box\nexport { AttachmentBar } from '../SendBox/AttachmentBar/index';\nexport { default as DictationInterims } from '../SendBox/DictationInterims';\nexport { default as MicrophoneButton } from '../SendBox/MicrophoneButton';\nexport { default as SendButton } from '../SendBox/SendButton';\nexport { default as SuggestedActions } from '../SendBox/SuggestedActions';\nexport { default as SendTextBox } from '../SendBox/TextBox';\nexport { default as UploadButton } from '../SendBoxToolbar/UploadButton';\nexport { TextArea } from '../TextArea/index';\n\n// Components for localization\nexport { default as LocalizedString } from '../Utils/LocalizedString';\n\n// Components for theme packs\nexport { default as ThemeProvider } from '../providers/Theme/ThemeProvider';\n","var g=Object.create;var f=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var j=Object.getPrototypeOf,k=Object.prototype.hasOwnProperty;var m=(b,a)=>()=>(a||b((a={exports:{}}).exports,a),a.exports);var l=(b,a,c,e)=>{if(a&&typeof a==\"object\"||typeof a==\"function\")for(let d of i(a))!k.call(b,d)&&d!==c&&f(b,d,{get:()=>a[d],enumerable:!(e=h(a,d))||e.enumerable});return b};var n=(b,a,c)=>(c=b!=null?g(j(b)):{},l(a||!b||!b.__esModule?f(c,\"default\",{value:b,enumerable:!0}):c,b));export{m as a,n as b};\n//# sourceMappingURL=chunk-73SFLUWV.mjs.map","'use strict';\nvar check = function (it) {\n return it && it.Math === Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n check(typeof this == 'object' && this) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = function () { /* empty */ }.bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-function-prototype-bind, es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\n// eslint-disable-next-line es/no-function-prototype-bind -- safe\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","'use strict';\nvar classofRaw = require('../internals/classof-raw');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThis(fn);\n};\n","'use strict';\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar documentAll = typeof document == 'object' && document.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nmodule.exports = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7;\n});\n","'use strict';\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n// eslint-disable-next-line es/no-function-prototype-bind -- safe\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","'use strict';\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) === 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","'use strict';\n// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","'use strict';\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw new $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar path = require('../internals/path');\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (variable) {\n return isCallable(variable) ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(globalThis[namespace])\n : path[namespace] && path[namespace][method] || globalThis[namespace] && globalThis[namespace][method];\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\nvar navigator = globalThis.navigator;\nvar userAgent = navigator && navigator.userAgent;\n\nmodule.exports = userAgent ? String(userAgent) : '';\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar userAgent = require('../internals/environment-user-agent');\n\nvar process = globalThis.process;\nvar Deno = globalThis.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/environment-v8-version');\nvar fails = require('../internals/fails');\nvar globalThis = require('../internals/global-this');\n\nvar $String = globalThis.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol('symbol detection');\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","'use strict';\n/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL &&\n !Symbol.sham &&\n typeof Symbol.iterator == 'symbol';\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","'use strict';\nvar $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a function');\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw new $TypeError(\"Can't convert object to primitive value\");\n};\n","'use strict';\nmodule.exports = true;\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(globalThis, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n globalThis[key] = value;\n } return value;\n};\n","'use strict';\nvar IS_PURE = require('../internals/is-pure');\nvar globalThis = require('../internals/global-this');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = module.exports = globalThis[SHARED] || defineGlobalProperty(SHARED, {});\n\n(store.versions || (store.versions = [])).push({\n version: '3.49.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2013–2025 Denis Pushkarev (zloirock.ru), 2025–2026 CoreJS Company (core-js.io). All rights reserved.',\n license: 'https://github.com/zloirock/core-js/blob/v3.49.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","'use strict';\nvar store = require('../internals/shared-store');\n\nmodule.exports = function (key, value) {\n return store[key] || (store[key] = value || {});\n};\n","'use strict';\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.1.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = globalThis.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw new $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\n\nvar document = globalThis.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a !== 7;\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value === POLYFILL ? true\n : value === NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype !== 42;\n});\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw new $TypeError($String(argument) + ' is not an object');\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw new $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar apply = require('../internals/function-apply');\nvar uncurryThis = require('../internals/function-uncurry-this-clause');\nvar isCallable = require('../internals/is-callable');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar isForced = require('../internals/is-forced');\nvar path = require('../internals/path');\nvar bind = require('../internals/function-bind-context');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\n// add debugging info\nrequire('../internals/shared-store');\n\nvar wrapConstructor = function (NativeConstructor) {\n var Wrapper = function (a, b, c) {\n if (this instanceof Wrapper) {\n switch (arguments.length) {\n case 0: return new NativeConstructor();\n case 1: return new NativeConstructor(a);\n case 2: return new NativeConstructor(a, b);\n } return new NativeConstructor(a, b, c);\n } return apply(NativeConstructor, this, arguments);\n };\n Wrapper.prototype = NativeConstructor.prototype;\n return Wrapper;\n};\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var PROTO = options.proto;\n\n var nativeSource = GLOBAL ? globalThis : STATIC ? globalThis[TARGET] : globalThis[TARGET] && globalThis[TARGET].prototype;\n\n var target = GLOBAL ? path : path[TARGET] || createNonEnumerableProperty(path, TARGET, {})[TARGET];\n var targetPrototype = target.prototype;\n\n var FORCED, USE_NATIVE, VIRTUAL_PROTOTYPE;\n var key, sourceProperty, targetProperty, nativeProperty, resultProperty, descriptor;\n\n for (key in source) {\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contains in native\n USE_NATIVE = !FORCED && nativeSource && hasOwn(nativeSource, key);\n\n targetProperty = target[key];\n\n if (USE_NATIVE) if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(nativeSource, key);\n nativeProperty = descriptor && descriptor.value;\n } else nativeProperty = nativeSource[key];\n\n // export native or implementation\n sourceProperty = (USE_NATIVE && nativeProperty) ? nativeProperty : source[key];\n\n if (!FORCED && !PROTO && typeof targetProperty == typeof sourceProperty) continue;\n\n // bind methods to global for calling from export context\n if (options.bind && USE_NATIVE) resultProperty = bind(sourceProperty, globalThis);\n // wrap global constructors for prevent changes in this version\n else if (options.wrap && USE_NATIVE) resultProperty = wrapConstructor(sourceProperty);\n // make static versions for prototype methods\n else if (PROTO && isCallable(sourceProperty)) resultProperty = uncurryThis(sourceProperty);\n // default case\n else resultProperty = sourceProperty;\n\n // add a flag to not completely full polyfills\n if (options.sham || (sourceProperty && sourceProperty.sham) || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(resultProperty, 'sham', true);\n }\n\n createNonEnumerableProperty(target, key, resultProperty);\n\n if (PROTO) {\n VIRTUAL_PROTOTYPE = TARGET + 'Prototype';\n if (!hasOwn(path, VIRTUAL_PROTOTYPE)) {\n createNonEnumerableProperty(path, VIRTUAL_PROTOTYPE, {});\n }\n // export virtual prototype methods\n createNonEnumerableProperty(path[VIRTUAL_PROTOTYPE], key, sourceProperty);\n // export real prototype methods\n if (options.real && targetPrototype && (FORCED || !targetPrototype[key])) {\n createNonEnumerableProperty(targetPrototype, key, sourceProperty);\n }\n }\n }\n};\n","'use strict';\nmodule.exports = function () { /* empty */ };\n","'use strict';\nvar $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw new $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","'use strict';\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","'use strict';\nvar trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n var len = toIntegerOrInfinity(argument);\n return len > 0 ? min(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","'use strict';\nvar toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n if (DESCRIPTORS) definePropertyModule.f(object, key, createPropertyDescriptor(0, value));\n else object[key] = value;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\nvar min = Math.min;\n\n// `Array.prototype.toSpliced` method\n// https://tc39.es/ecma262/#sec-array.prototype.tospliced\n$({ target: 'Array', proto: true }, {\n toSpliced: function toSpliced(start, deleteCount /* , ...items */) {\n var O = toIndexedObject(this);\n var len = lengthOfArrayLike(O);\n var actualStart = toAbsoluteIndex(start, len);\n var argumentsLength = arguments.length;\n var k = 0;\n var insertCount, actualDeleteCount, newLen, A;\n if (argumentsLength === 0) {\n insertCount = actualDeleteCount = 0;\n } else if (argumentsLength === 1) {\n insertCount = 0;\n actualDeleteCount = len - actualStart;\n } else {\n insertCount = argumentsLength - 2;\n actualDeleteCount = min(max(toIntegerOrInfinity(deleteCount), 0), len - actualStart);\n }\n newLen = doesNotExceedSafeInteger(len + insertCount - actualDeleteCount);\n A = $Array(newLen);\n\n for (; k < actualStart; k++) createProperty(A, k, O[k]);\n for (; k < actualStart + insertCount; k++) createProperty(A, k, arguments[k - actualStart + 2]);\n for (; k < newLen; k++) createProperty(A, k, O[k + actualDeleteCount - insertCount]);\n\n return A;\n }\n});\n\naddToUnscopables('toSpliced');\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn;\n","'use strict';\nrequire('../../modules/es.array.to-spliced');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'toSpliced');\n","'use strict';\nvar parent = require('../../es/array/to-spliced');\n\nmodule.exports = parent;\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.array.to-spliced');\n","'use strict';\nvar parent = require('../../stable/array/to-spliced');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.array.to-spliced');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../actual/array/to-spliced');\n\nmodule.exports = parent;\n","'use strict';\nmodule.exports = require('../../full/array/to-spliced');\n","'use strict';\n/* global Bun, Deno -- detection */\nvar globalThis = require('../internals/global-this');\nvar userAgent = require('../internals/environment-user-agent');\nvar classof = require('../internals/classof-raw');\n\nvar userAgentStartsWith = function (string) {\n return userAgent.slice(0, string.length) === string;\n};\n\nmodule.exports = (function () {\n if (userAgentStartsWith('Bun/')) return 'BUN';\n if (userAgentStartsWith('Cloudflare-Workers')) return 'CLOUDFLARE';\n if (userAgentStartsWith('Deno/')) return 'DENO';\n if (userAgentStartsWith('Node.js/')) return 'NODE';\n if (globalThis.Bun && typeof Bun.version == 'string') return 'BUN';\n if (globalThis.Deno && typeof Deno.version == 'object') return 'DENO';\n if (classof(globalThis.process) === 'process') return 'NODE';\n if (globalThis.window && globalThis.document) return 'BROWSER';\n return 'REST';\n})();\n","'use strict';\nvar ENVIRONMENT = require('../internals/environment');\n\nmodule.exports = ENVIRONMENT === 'NODE';\n","'use strict';\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (target, key, value, options) {\n if (options && options.enumerable) target[key] = value;\n else createNonEnumerableProperty(target, key, value);\n return target;\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nmodule.exports = function (object, key, method) {\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n return uncurryThis(aCallable(Object.getOwnPropertyDescriptor(object, key)[method]));\n } catch (error) { /* empty */ }\n};\n","'use strict';\nvar isObject = require('../internals/is-object');\n\nmodule.exports = function (argument) {\n return isObject(argument) || argument === null;\n};\n","'use strict';\nvar isPossiblePrototype = require('../internals/is-possible-prototype');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (isPossiblePrototype(argument)) return argument;\n throw new $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","'use strict';\n/* eslint-disable no-proto -- safe */\nvar uncurryThisAccessor = require('../internals/function-uncurry-this-accessor');\nvar isObject = require('../internals/is-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set');\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n requireObjectCoercible(O);\n aPossiblePrototype(proto);\n if (!isObject(O)) return O;\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n// eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) === 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineProperty = require('../internals/object-define-property').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/object-to-string');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC, SET_METHOD) {\n var target = STATIC ? it : it && it.prototype;\n if (target) {\n if (!hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n if (SET_METHOD && !TO_STRING_TAG_SUPPORT) {\n createNonEnumerableProperty(target, 'toString', toString);\n }\n }\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property');\n\nmodule.exports = function (target, name, descriptor) {\n return defineProperty.f(target, name, descriptor);\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineBuiltInAccessor(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","'use strict';\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw new $TypeError('Incorrect invocation');\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.test(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, [], argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","'use strict';\nvar isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw new $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","'use strict';\nvar $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw new $TypeError('Not enough arguments');\n return passed;\n};\n","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && /applewebkit/i.test(userAgent);\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/environment-is-ios');\nvar IS_NODE = require('../internals/environment-is-node');\n\nvar set = globalThis.setImmediate;\nvar clear = globalThis.clearImmediate;\nvar process = globalThis.process;\nvar Dispatch = globalThis.Dispatch;\nvar Function = globalThis.Function;\nvar MessageChannel = globalThis.MessageChannel;\nvar String = globalThis.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\nfails(function () {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = globalThis.location;\n});\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar eventListener = function (event) {\n run(event.data);\n};\n\nvar globalPostMessageDefer = function (id) {\n // old engines have not location.origin\n globalThis.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = eventListener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n globalThis.addEventListener &&\n isCallable(globalThis.postMessage) &&\n !globalThis.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(globalPostMessageDefer)\n ) {\n defer = globalPostMessageDefer;\n globalThis.addEventListener('message', eventListener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar DESCRIPTORS = require('../internals/descriptors');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Avoid NodeJS experimental warning\nmodule.exports = function (name) {\n if (!DESCRIPTORS) return globalThis[name];\n var descriptor = getOwnPropertyDescriptor(globalThis, name);\n return descriptor && descriptor.value;\n};\n","'use strict';\nvar Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n var tail = this.tail;\n if (tail) tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n var next = this.head = entry.next;\n if (next === null) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && typeof Pebble != 'undefined';\n","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar safeGetBuiltIn = require('../internals/safe-get-built-in');\nvar bind = require('../internals/function-bind-context');\nvar macrotask = require('../internals/task').set;\nvar Queue = require('../internals/queue');\nvar IS_IOS = require('../internals/environment-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/environment-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/environment-is-webos-webkit');\nvar IS_NODE = require('../internals/environment-is-node');\n\nvar MutationObserver = globalThis.MutationObserver || globalThis.WebKitMutationObserver;\nvar document = globalThis.document;\nvar process = globalThis.process;\nvar Promise = globalThis.Promise;\nvar microtask = safeGetBuiltIn('queueMicrotask');\nvar notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!microtask) {\n var queue = new Queue();\n\n var flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (fn = queue.get()) try {\n fn();\n } catch (error) {\n if (queue.head) notify();\n throw error;\n }\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // `webpack` dev server bug on IE global methods - use bind(fn, global)\n macrotask = bind(macrotask, globalThis);\n notify = function () {\n macrotask(flush);\n };\n }\n\n microtask = function (fn) {\n if (!queue.head) notify();\n queue.add(fn);\n };\n}\n\nmodule.exports = microtask;\n","'use strict';\nmodule.exports = function (a, b) {\n try {\n // eslint-disable-next-line no-console -- safe\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n } catch (error) { /* empty */ }\n};\n","'use strict';\nmodule.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = globalThis.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","'use strict';\nvar shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar globalThis = require('../internals/global-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = globalThis.TypeError;\nvar WeakMap = globalThis.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw new TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","'use strict';\nvar globalThis = require('../internals/global-this');\n\nmodule.exports = globalThis.Promise;\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar ENVIRONMENT = require('../internals/environment');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/environment-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(globalThis.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (ENVIRONMENT === 'BROWSER' || ENVIRONMENT === 'DENO') && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw new $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/environment-is-node');\nvar globalThis = require('../internals/global-this');\nvar path = require('../internals/path');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = globalThis.TypeError;\nvar document = globalThis.document;\nvar process = globalThis.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && globalThis.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state === FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(new TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n globalThis.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = globalThis['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, globalThis, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, globalThis, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw new TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: null\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state === PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n// `Promise` constructor\n// https://tc39.es/ecma262/#sec-promise-executor\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nPromiseWrapper = path.Promise;\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","'use strict';\nmodule.exports = {};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","'use strict';\nvar classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw new $TypeError(tryToString(argument) + ' is not iterable');\n};\n","'use strict';\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n var $iterator = iterator;\n iterator = undefined;\n if ($iterator) iteratorClose($iterator, 'normal');\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw new $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n // `IteratorValue` errors should propagate without closing the iterator\n var value = step.value;\n try {\n result = callFn(value);\n } catch (error) {\n if (iterator) iteratorClose(iterator, 'throw', error);\n else throw error;\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","'use strict';\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n try {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n } catch (error) { return false; } // workaround of old WebKit + `eval` bug\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n // eslint-disable-next-line unicorn/no-immediate-mutation -- ES3 syntax limitation\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","'use strict';\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n var capabilityReject = capability.reject;\n capabilityReject(r);\n return capability.promise;\n }\n});\n","'use strict';\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","'use strict';\n// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.promise.constructor');\nrequire('../modules/es.promise.all');\nrequire('../modules/es.promise.catch');\nrequire('../modules/es.promise.race');\nrequire('../modules/es.promise.reject');\nrequire('../modules/es.promise.resolve');\n","'use strict';\nvar $ = require('../internals/export');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\n// `Promise.withResolvers` method\n// https://tc39.es/ecma262/#sec-promise.withResolvers\n$({ target: 'Promise', stat: true }, {\n withResolvers: function withResolvers() {\n var promiseCapability = newPromiseCapabilityModule.f(this);\n return {\n promise: promiseCapability.promise,\n resolve: promiseCapability.resolve,\n reject: promiseCapability.reject\n };\n }\n});\n","'use strict';\nrequire('../../modules/es.promise');\nrequire('../../modules/es.promise.with-resolvers');\nvar call = require('../../internals/function-call');\nvar isCallable = require('../../internals/is-callable');\nvar path = require('../../internals/path');\n\nvar Promise = path.Promise;\nvar promiseWithResolvers = Promise.withResolvers;\n\nmodule.exports = function withResolvers() {\n return call(promiseWithResolvers, isCallable(this) ? this : Promise);\n};\n","'use strict';\nvar parent = require('../../es/promise/with-resolvers');\n\nmodule.exports = parent;\n","'use strict';\n// TODO: Remove from `core-js@4`\nrequire('../modules/es.promise.with-resolvers');\n","'use strict';\nvar parent = require('../../stable/promise/with-resolvers');\n// TODO: Remove from `core-js@4`\nrequire('../../modules/esnext.promise.with-resolvers');\n\nmodule.exports = parent;\n","'use strict';\nvar parent = require('../../actual/promise/with-resolvers');\n\nmodule.exports = parent;\n","'use strict';\nmodule.exports = require('../../full/promise/with-resolvers');\n","/// <reference lib=\"dom\" />\n\n// Courtesy of https://stackoverflow.com/a/67243723.\nfunction kebabCase(value: string): string {\n return value.replace(/[A-Z]+(?![a-z])|[A-Z]/gu, ($, ofs) => (ofs ? '-' : '') + $.toLowerCase());\n}\n\nexport default function setMetaTag(name: string, content: string): void;\nexport default function setMetaTag(name: string, contentMap: ReadonlyMap<string, string | undefined>): void;\n\nexport default function setMetaTag(name: string, contentMap: ReadonlyMap<string, string | undefined> | string): void {\n try {\n const { document } = globalThis;\n\n if (typeof document !== 'undefined' && document.createElement && document.head && document.head.appendChild) {\n const meta = document.querySelector(`html meta[name=\"${encodeURI(name)}\"]`) || document.createElement('meta');\n\n meta.setAttribute('name', name);\n meta.setAttribute(\n 'content',\n typeof contentMap === 'string'\n ? contentMap\n : Array.from(contentMap.entries())\n .map(([key, value]) => {\n const name = kebabCase(encodeURIComponent(key));\n\n return typeof value === 'undefined' ? name : `${name}=${encodeURIComponent(value)}`;\n })\n .join('; ')\n );\n\n document.head.appendChild(meta);\n }\n } catch {\n // Intentionally left blank.\n }\n}\n","import setMetaTag from './setMetaTag';\n\ntype BaseBuildInfoObject = {\n readonly buildTool?: string | undefined;\n readonly moduleFormat?: string | undefined;\n readonly version?: string | undefined;\n};\n\ninterface ReadonlyBuildInfo {\n get name(): string;\n get object(): BaseBuildInfoObject;\n get version(): string | undefined;\n\n delete(key: string): void;\n get(key: string): string | undefined;\n set(key: 'variant', value: 'full' | 'full-es5' | 'minimal'): void;\n set(key: string, value: string | undefined): void;\n}\n\nclass BuildInfo implements ReadonlyBuildInfo {\n constructor(name: string) {\n this.#name = name;\n }\n\n #map = new Map<string, string | undefined>();\n #name: string;\n #object: BaseBuildInfoObject = {};\n\n get name() {\n return this.#name;\n }\n\n get object() {\n return this.#object;\n }\n\n get version(): string | undefined {\n return this.#map.get('version');\n }\n\n #commit() {\n setMetaTag(this.name, this.#map);\n\n this.version && setMetaTag(`${this.name}:version`, this.version);\n }\n\n delete(key: string) {\n this.#map.delete(key);\n }\n\n get(key: string): string | undefined {\n return this.#map.get(key);\n }\n\n set(key: string, value: string | undefined): void {\n this.#map.set(key, value);\n\n Object.defineProperty(this.#object, key, {\n configurable: true,\n enumerable: true,\n value,\n writable: false\n });\n\n this.#commit();\n }\n}\n\nfunction createBuildInfo(name: 'botframework-webchat' | `botframework-webchat:${string}`): ReadonlyBuildInfo {\n return new BuildInfo(name);\n}\n\nexport default createBuildInfo;\nexport { type BuildInfo, type ReadonlyBuildInfo };\n","export default function once<P extends any[]>(fn: (...args: P) => void): (...args: P) => void {\n let done = false;\n\n return (...args) => {\n if (!done) {\n fn(...args);\n done = true;\n }\n };\n}\n","import once from './private/once';\n\nexport default function warnOnce(message: string): (...args: any[]) => void {\n return once((...args: any[]) => console.warn(`botframework-webchat: ${message}`, ...args));\n}\n","import warnOnce from './warnOnce';\n\nconst PROPERTY_DENYLIST = new Set<string | symbol>([\n '__defineGetter__',\n '__defineSetter__',\n '__lookupGetter__',\n '__lookupSetter__',\n '__proto__',\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'prototype',\n 'toString',\n 'valueOf'\n]);\n\nexport default function deprecateObject<T extends { [key: string | symbol]: any }>(namespace: T, message: string): T {\n const warnDeprecation = warnOnce(message);\n\n return new Proxy<T>(namespace, {\n get(target, p) {\n if (\n !PROPERTY_DENYLIST.has(p) &&\n (typeof p === 'string'\n ? Object.getOwnPropertyNames(target).includes(p)\n : Object.getOwnPropertySymbols(target).includes(p))\n ) {\n warnDeprecation(p);\n\n // Only can get own properties.\n // eslint-disable-next-line security/detect-object-injection\n return target[p];\n }\n }\n });\n}\n","const FORBIDDEN_PROPERTY_NAMES: readonly string[] = Object.freeze(\n Array.from(\n new Set([\n // As-of writing, `Object.prototype` includes:\n // __defineGetter__\n // __defineSetter__\n // __lookupGetter__\n // __lookupSetter\n // __proto__\n // constructor\n // hasOwnProperty\n // isPrototypeOf\n // propertyIsEnumerable\n // toLocaleString\n // toString\n // valueOf\n ...Object.getOwnPropertyNames(Object.prototype),\n\n 'prototype'\n ])\n )\n);\n\nexport default function isForbiddenPropertyName(propertyName: string): boolean {\n return FORBIDDEN_PROPERTY_NAMES.includes(propertyName);\n}\n","const OBJECT_PROTOTYPE = Object.prototype;\n\nexport default function isPlainObject(obj: unknown): boolean {\n return Object.getPrototypeOf(obj) === OBJECT_PROTOTYPE;\n}\n","const MAX_ITERATION = 1_000_000;\n\nexport default function iterateEquals<T>(x: Iterable<T>, y: Iterable<T>): boolean {\n const xIterator = x[Symbol.iterator]();\n const yIterator = y[Symbol.iterator]();\n\n if (Object.is(xIterator, yIterator)) {\n throw new Error('Must not pass same instance twice');\n }\n\n for (let count = 0; count < MAX_ITERATION; count++) {\n const resultX = xIterator.next();\n const resultY = yIterator.next();\n\n const { done: xDone } = resultX;\n const { done: yDone } = resultY;\n\n if (xDone && yDone) {\n return true;\n } else if (xDone || yDone || !Object.is(resultX.value, resultY.value)) {\n break;\n }\n }\n\n return false;\n}\n","const EMPTY_ARRAY: readonly any[] = Object.freeze([]);\n\n/** @deprecated Will be removed on or after 2028-03-16. */\nexport default function singleToArray<T>(singleOrArray: T | readonly T[]): readonly T[] {\n return typeof singleOrArray === 'undefined'\n ? (EMPTY_ARRAY as readonly T[])\n : Object.freeze(Array.isArray(singleOrArray) ? [...singleOrArray] : [singleOrArray]);\n}\n","// @ts-expect-error: no types available\nimport coreJSToSpliced from 'core-js-pure/features/array/to-spliced.js';\n\nexport default function toSpliced<T>(array: readonly T[], start: number, deleteCount: number, ...items: T[]): T[] {\n return coreJSToSpliced(array, start, deleteCount, ...items);\n}\n","// Promise.withResolvers() is about 90 KiB.\n// @ts-expect-error: no types available\nimport coreJSWithResolvers from 'core-js-pure/features/promise/with-resolvers.js';\n\nexport type PromiseWithResolvers<T> = {\n promise: Promise<T>;\n reject: (error: unknown) => void;\n resolve: (value: T) => void;\n};\n\nexport default function withResolvers<T>(): PromiseWithResolvers<T> {\n return coreJSWithResolvers();\n}\n","/* eslint-disable react/require-default-props */\n\nimport { singleToArray } from '@msinternal/botframework-webchat-base/utils';\nimport { useMemoIterable } from '@msinternal/botframework-webchat-react-hooks';\nimport {\n Composer as APIComposer,\n AttachmentForScreenReaderMiddleware,\n extractSendBoxMiddleware,\n extractSendBoxToolbarMiddleware,\n hooks,\n WebSpeechPonyfillFactory,\n type ActivityStatusMiddleware,\n type ComposerProps as APIComposerProps,\n type AttachmentMiddleware,\n type AvatarMiddleware,\n type CardActionMiddleware,\n type ScrollToEndButtonMiddleware,\n type SendBoxMiddleware,\n type SendBoxToolbarMiddleware,\n type ToastMiddleware,\n type TypingIndicatorMiddleware\n} from 'botframework-webchat-api';\nimport { DecoratorComposer, type DecoratorMiddleware } from 'botframework-webchat-api/decorator.js';\nimport { type LegacyActivityMiddleware, type Polymiddleware } from 'botframework-webchat-api/middleware.js';\nimport { StoreDebugAPIRegistry, type StoreDebugAPI } from 'botframework-webchat-core/internal.js';\nimport classNames from 'classnames';\nimport MarkdownIt from 'markdown-it';\nimport PropTypes from 'prop-types';\nimport React, { memo, useCallback, useEffect, useMemo, useRef, useState, type ReactNode } from 'react';\nimport { Composer as SayComposer } from 'react-say';\n\nimport createDefaultAttachmentMiddleware from './Attachment/createMiddleware';\nimport BuiltInDecorator from './BuiltInDecorator';\nimport Dictation from './Dictation';\nimport {\n speechSynthesis as bypassSpeechSynthesis,\n SpeechSynthesisUtterance as BypassSpeechSynthesisUtterance\n} from './hooks/internal/BypassSpeechSynthesisPonyfill';\nimport { StyleToEmotionObjectComposer, useStyleToEmotionObject } from './hooks/internal/styleToEmotionObject';\nimport UITracker from './hooks/internal/UITracker';\nimport WebChatUIContext from './hooks/internal/WebChatUIContext';\nimport { FocusSendBoxScope } from './hooks/sendBoxFocus';\nimport { ScrollRelativeTranscriptScope } from './hooks/transcriptScrollRelative';\nimport defaultActivityPolymiddleware from './Middleware/Activity/defaultActivityPolymiddleware';\nimport createDefaultActivityStatusMiddleware from './Middleware/ActivityStatus/createCoreMiddleware';\nimport createDefaultAttachmentForScreenReaderMiddleware from './Middleware/AttachmentForScreenReader/createCoreMiddleware';\nimport createDefaultAvatarMiddleware from './Middleware/Avatar/createDefaultAvatarPolymiddleware';\nimport createDefaultCardActionMiddleware from './Middleware/CardAction/createCoreMiddleware';\nimport createDefaultScrollToEndButtonMiddleware from './Middleware/ScrollToEndButton/createScrollToEndButtonMiddleware';\nimport createDefaultToastMiddleware from './Middleware/Toast/createCoreMiddleware';\nimport createDefaultTypingIndicatorMiddleware from './Middleware/TypingIndicator/createCoreMiddleware';\nimport { ActivityLogicalGroupingComposer } from './providers/ActivityLogicalGrouping';\nimport CustomElementsComposer from './providers/CustomElements/CustomElementsComposer';\nimport HTMLContentTransformComposer from './providers/HTMLContentTransformCOR/HTMLContentTransformComposer';\nimport { type HTMLContentTransformMiddleware } from './providers/HTMLContentTransformCOR/private/HTMLContentTransformContext';\nimport SendBoxComposer from './providers/internal/SendBox/SendBoxComposer';\nimport { LiveRegionTwinComposer } from './providers/LiveRegionTwin';\nimport ModalDialogComposer from './providers/ModalDialog/ModalDialogComposer';\nimport ReducedMotionComposer from './providers/ReducedMotion/ReducedMotionComposer';\nimport useTheme from './providers/Theme/useTheme';\nimport createDefaultSendBoxMiddleware from './SendBox/createMiddleware';\nimport createDefaultSendBoxToolbarMiddleware from './SendBoxToolbar/createMiddleware';\nimport createStyleSet from './Styles/createStyleSet';\nimport CSSCustomPropertiesContainer from './Styles/CSSCustomPropertiesContainer';\nimport ComponentStylesheet from './stylesheet/ComponentStylesheet';\nimport { type ContextOf } from './types/ContextOf';\nimport { type FocusTranscriptInit } from './types/internal/FocusTranscriptInit';\nimport addTargetBlankToHyperlinksMarkdown from './Utils/addTargetBlankToHyperlinksMarkdown';\nimport downscaleImageToDataURL from './Utils/downscaleImageToDataURL';\nimport mapMap from './Utils/mapMap';\n\nconst { useGetActivityByKey, useReferenceGrammarID, useStyleOptions, useTrackException } = hooks;\n\nfunction styleSetToEmotionObjects(styleToEmotionObject, styleSet) {\n return mapMap(styleSet, (style, key) => (key === 'options' ? style : styleToEmotionObject(style)));\n}\n\ntype ComposerCoreUIProps = {\n readonly children?: ReactNode | undefined;\n readonly nonce: string | undefined;\n readonly storeDebugAPI?: StoreDebugAPI | undefined;\n};\n\nconst ROOT_STYLE = {\n '&.webchat__css-custom-properties': {\n '& .webchat__live-region': {\n color: 'transparent',\n height: 1,\n overflow: 'hidden',\n position: 'absolute',\n top: 0,\n whiteSpace: 'nowrap',\n width: 1\n }\n }\n};\n\nconst ComposerCoreUI = memo(({ children, nonce, storeDebugAPI }: ComposerCoreUIProps) => {\n const [{ internalLiveRegionFadeAfter }] = useStyleOptions();\n const rootClassName = useStyleToEmotionObject()(ROOT_STYLE) + '';\n const rootRef = useRef<HTMLDivElement>(null);\n const trackException = useTrackException();\n\n const dictationOnError = useCallback(\n (errorEvent: SpeechRecognitionErrorEvent) => {\n // Ignore aborted error as it is likely user clicking on the microphone button to abort recognition.\n if (errorEvent.error !== 'aborted') {\n const nativeError = new Error('Speech recognition failed');\n\n nativeError.cause = errorEvent;\n\n trackException(nativeError, false);\n console.error(nativeError);\n }\n },\n [trackException]\n );\n\n useEffect(() => {\n const { current } = rootRef;\n\n if (current) {\n current['webChat'] = storeDebugAPI;\n\n return () => delete current['webChat'];\n }\n\n return () => {\n // Intentionally left blank.\n };\n }, [storeDebugAPI]);\n\n return (\n <CSSCustomPropertiesContainer\n className={classNames('webchat', 'webchat__css-custom-properties', rootClassName)}\n nonce={nonce}\n ref={rootRef}\n >\n <CustomElementsComposer>\n <FocusSendBoxScope>\n <ScrollRelativeTranscriptScope>\n <LiveRegionTwinComposer className=\"webchat__live-region\" fadeAfter={internalLiveRegionFadeAfter}>\n <ModalDialogComposer>\n {/* When <SendBoxComposer> is finalized, it will be using an independent instance that lives inside <BasicSendBox>. */}\n <SendBoxComposer>\n <ActivityLogicalGroupingComposer>{children}</ActivityLogicalGroupingComposer>\n <Dictation onError={dictationOnError} />\n </SendBoxComposer>\n </ModalDialogComposer>\n </LiveRegionTwinComposer>\n </ScrollRelativeTranscriptScope>\n </FocusSendBoxScope>\n </CustomElementsComposer>\n </CSSCustomPropertiesContainer>\n );\n});\n\nComposerCoreUI.displayName = 'ComposerCoreUI';\n\ntype ComposerCoreProps = Readonly<{\n children?: ReactNode;\n decoratorMiddleware?: readonly DecoratorMiddleware[] | undefined;\n extraStyleSet?: any;\n htmlContentTransformMiddleware?: readonly HTMLContentTransformMiddleware[] | undefined;\n nonce?: string;\n renderMarkdown?: (\n markdown: string,\n newLineOptions: { markdownRespectCRLF: boolean },\n linkOptions: { externalLinkAlt: string }\n ) => string;\n storeDebugAPI?: StoreDebugAPI | undefined;\n styleSet?: any;\n suggestedActionsAccessKey?: boolean | string;\n webSpeechPonyfillFactory?: WebSpeechPonyfillFactory;\n}>;\n\nconst ComposerCore = ({\n children,\n extraStyleSet,\n nonce,\n renderMarkdown,\n storeDebugAPI,\n styleSet,\n suggestedActionsAccessKey,\n webSpeechPonyfillFactory\n}: ComposerCoreProps) => {\n const [dictateAbortable, setDictateAbortable] = useState();\n const [referenceGrammarID] = useReferenceGrammarID();\n const [styleOptions] = useStyleOptions();\n const focusTranscriptCallbacksRef = useRef<((init: FocusTranscriptInit) => Promise<void>)[]>([]);\n const internalMarkdownIt = useMemo(() => new MarkdownIt(), []);\n const scrollToCallbacksRef = useRef([]);\n const scrollToEndCallbacksRef = useRef([]);\n\n const internalRenderMarkdownInline = useMemo(\n () => markdown => {\n const tree = internalMarkdownIt.parseInline(markdown);\n\n // TODO: Use \"betterLink\" plugin.\n // We should add rel=\"noopener noreferrer\" and target=\"_blank\"\n const patchedTree = addTargetBlankToHyperlinksMarkdown(tree);\n\n return internalMarkdownIt.renderer.render(patchedTree);\n },\n [internalMarkdownIt]\n );\n\n const styleToEmotionObject = useStyleToEmotionObject();\n\n const patchedStyleSet = useMemo(\n () =>\n styleSetToEmotionObjects(styleToEmotionObject, {\n ...(styleSet || createStyleSet(styleOptions)),\n ...extraStyleSet\n }),\n [extraStyleSet, styleOptions, styleSet, styleToEmotionObject]\n );\n\n const webSpeechPonyfill = useMemo(() => {\n const ponyfill = webSpeechPonyfillFactory && webSpeechPonyfillFactory({ referenceGrammarID });\n const { speechSynthesis, SpeechSynthesisUtterance } = ponyfill || {};\n\n return {\n ...ponyfill,\n speechSynthesis: speechSynthesis || bypassSpeechSynthesis,\n SpeechSynthesisUtterance: SpeechSynthesisUtterance || BypassSpeechSynthesisUtterance\n };\n }, [referenceGrammarID, webSpeechPonyfillFactory]);\n\n const scrollPositionObserversRef = useRef([]);\n\n const dispatchScrollPosition = useCallback(\n event => scrollPositionObserversRef.current.forEach(observer => observer(event)),\n [scrollPositionObserversRef]\n );\n\n const observeScrollPosition = useCallback(\n observer => {\n scrollPositionObserversRef.current = [...scrollPositionObserversRef.current, observer];\n\n return () => {\n scrollPositionObserversRef.current = scrollPositionObserversRef.current.filter(target => target !== observer);\n };\n },\n [scrollPositionObserversRef]\n );\n\n const transcriptFocusObserversRef = useRef([]);\n const [numTranscriptFocusObservers, setNumTranscriptFocusObservers] = useState(0);\n\n const getActivityByKey = useGetActivityByKey();\n\n // This is expected.\n // The mutation is for preventing sending duplicates to the registered callback observers.\n // eslint-disable-next-line react-hooks/immutability\n const dispatchTranscriptFocusByActivityKey = useMemo(() => {\n let prevActivityKey: string | symbol | undefined = Symbol();\n\n return activityKey => {\n if (activityKey !== prevActivityKey) {\n // This is expected.\n // The mutation is for preventing sending duplicates to the registered callback observers.\n // eslint-disable-next-line react-hooks/immutability\n prevActivityKey = activityKey;\n\n const event = { activity: getActivityByKey(activityKey) };\n\n transcriptFocusObserversRef.current.forEach(observer => observer(event));\n }\n };\n }, [getActivityByKey, transcriptFocusObserversRef]);\n\n const observeTranscriptFocus = useCallback(\n observer => {\n transcriptFocusObserversRef.current = [...transcriptFocusObserversRef.current, observer];\n setNumTranscriptFocusObservers(transcriptFocusObserversRef.current.length);\n\n return () => {\n transcriptFocusObserversRef.current = transcriptFocusObserversRef.current.filter(target => target !== observer);\n setNumTranscriptFocusObservers(transcriptFocusObserversRef.current.length);\n };\n },\n [transcriptFocusObserversRef, setNumTranscriptFocusObservers]\n );\n\n const context = useMemo<ContextOf<typeof WebChatUIContext>>(\n () => ({\n dictateAbortable,\n dispatchScrollPosition,\n dispatchTranscriptFocusByActivityKey,\n focusTranscriptCallbacksRef,\n internalMarkdownItState: [internalMarkdownIt],\n internalRenderMarkdownInline,\n nonce,\n numTranscriptFocusObservers,\n observeScrollPosition,\n observeTranscriptFocus,\n renderMarkdown,\n scrollToCallbacksRef,\n scrollToEndCallbacksRef,\n setDictateAbortable,\n styleSet: patchedStyleSet,\n suggestedActionsAccessKey,\n webSpeechPonyfill\n }),\n [\n dictateAbortable,\n dispatchScrollPosition,\n dispatchTranscriptFocusByActivityKey,\n focusTranscriptCallbacksRef,\n internalMarkdownIt,\n internalRenderMarkdownInline,\n nonce,\n numTranscriptFocusObservers,\n observeScrollPosition,\n observeTranscriptFocus,\n patchedStyleSet,\n renderMarkdown,\n scrollToCallbacksRef,\n scrollToEndCallbacksRef,\n setDictateAbortable,\n suggestedActionsAccessKey,\n webSpeechPonyfill\n ]\n );\n\n return (\n <SayComposer ponyfill={webSpeechPonyfill}>\n <WebChatUIContext.Provider value={context}>\n <ComposerCoreUI nonce={nonce} storeDebugAPI={storeDebugAPI}>\n {children}\n </ComposerCoreUI>\n </WebChatUIContext.Provider>\n </SayComposer>\n );\n};\n\nComposerCore.defaultProps = {\n extraStyleSet: undefined,\n nonce: undefined,\n renderMarkdown: undefined,\n styleSet: undefined,\n suggestedActionsAccessKey: 'A a Å å',\n webSpeechPonyfillFactory: undefined\n};\n\nComposerCore.propTypes = {\n extraStyleSet: PropTypes.any,\n nonce: PropTypes.string,\n renderMarkdown: PropTypes.func,\n styleSet: PropTypes.any,\n suggestedActionsAccessKey: PropTypes.oneOfType([PropTypes.oneOf([false]), PropTypes.string]),\n webSpeechPonyfillFactory: PropTypes.func\n};\n\ntype ComposerProps = APIComposerProps & ComposerCoreProps;\n\nconst Composer = ({\n activityMiddleware,\n activityStatusMiddleware,\n attachmentForScreenReaderMiddleware,\n attachmentMiddleware,\n avatarMiddleware,\n cardActionMiddleware,\n children,\n decoratorMiddleware,\n extraStyleSet,\n htmlContentTransformMiddleware,\n polymiddleware,\n renderMarkdown,\n scrollToEndButtonMiddleware,\n sendBoxMiddleware: sendBoxMiddlewareFromProps,\n sendBoxToolbarMiddleware: sendBoxToolbarMiddlewareFromProps,\n styleOptions,\n styleSet,\n suggestedActionsAccessKey,\n toastMiddleware,\n typingIndicatorMiddleware,\n webSpeechPonyfillFactory,\n ...composerProps\n}: ComposerProps) => {\n const { nonce, onTelemetry } = composerProps;\n const theme = useTheme();\n\n const patchedActivityMiddleware = useMemoIterable<readonly LegacyActivityMiddleware[]>(\n () => Object.freeze([...singleToArray(activityMiddleware), ...theme.activityMiddleware]),\n [activityMiddleware, theme.activityMiddleware]\n );\n\n const patchedActivityStatusMiddleware = useMemoIterable<readonly ActivityStatusMiddleware[]>(\n () =>\n Object.freeze([\n ...singleToArray(activityStatusMiddleware),\n ...theme.activityStatusMiddleware,\n ...createDefaultActivityStatusMiddleware()\n ]),\n [activityStatusMiddleware, theme.activityStatusMiddleware]\n );\n\n const patchedAttachmentForScreenReaderMiddleware = useMemoIterable<readonly AttachmentForScreenReaderMiddleware[]>(\n () =>\n Object.freeze([\n ...singleToArray(attachmentForScreenReaderMiddleware),\n ...theme.attachmentForScreenReaderMiddleware,\n ...createDefaultAttachmentForScreenReaderMiddleware()\n ]),\n [attachmentForScreenReaderMiddleware, theme.attachmentForScreenReaderMiddleware]\n );\n\n const patchedAttachmentMiddleware = useMemoIterable<readonly AttachmentMiddleware[]>(\n () =>\n Object.freeze([\n ...singleToArray(attachmentMiddleware),\n ...theme.attachmentMiddleware,\n ...createDefaultAttachmentMiddleware()\n ]),\n [attachmentMiddleware, theme.attachmentMiddleware]\n );\n\n const patchedAvatarMiddleware = useMemoIterable<readonly AvatarMiddleware[]>(\n () => Object.freeze([...singleToArray(avatarMiddleware), ...theme.avatarMiddleware]),\n [avatarMiddleware, theme.avatarMiddleware]\n );\n\n const patchedCardActionMiddleware = useMemoIterable<readonly CardActionMiddleware[]>(\n () =>\n Object.freeze([\n ...singleToArray(cardActionMiddleware),\n ...theme.cardActionMiddleware,\n ...createDefaultCardActionMiddleware()\n ]),\n [cardActionMiddleware, theme.cardActionMiddleware]\n );\n\n const defaultAvatarPolymiddleware = useMemo(() => createDefaultAvatarMiddleware(styleOptions), [styleOptions]);\n\n const patchedPolymiddleware = useMemoIterable<readonly Polymiddleware[]>(\n () =>\n Object.freeze([\n ...(polymiddleware || []),\n ...theme.polymiddleware,\n // Polymiddleware has lower priority than legacy middleware.\n // Later, we should move default middleware to a \"default theme.\"\n defaultActivityPolymiddleware,\n defaultAvatarPolymiddleware\n ]),\n [defaultAvatarPolymiddleware, polymiddleware, theme.polymiddleware]\n );\n\n const patchedToastMiddleware = useMemoIterable<readonly ToastMiddleware[]>(\n () =>\n Object.freeze([...singleToArray(toastMiddleware), ...theme.toastMiddleware, ...createDefaultToastMiddleware()]),\n [toastMiddleware, theme.toastMiddleware]\n );\n\n const patchedTypingIndicatorMiddleware = useMemoIterable<readonly TypingIndicatorMiddleware[]>(\n () =>\n Object.freeze([\n ...singleToArray(typingIndicatorMiddleware),\n ...theme.typingIndicatorMiddleware,\n ...createDefaultTypingIndicatorMiddleware()\n ]),\n [typingIndicatorMiddleware, theme.typingIndicatorMiddleware]\n );\n\n const patchedScrollToEndButtonMiddleware = useMemoIterable<readonly ScrollToEndButtonMiddleware[]>(\n () =>\n Object.freeze([\n ...singleToArray(scrollToEndButtonMiddleware),\n ...theme.scrollToEndButtonMiddleware,\n ...createDefaultScrollToEndButtonMiddleware()\n ]),\n [scrollToEndButtonMiddleware, theme.scrollToEndButtonMiddleware]\n );\n\n const sendBoxMiddleware = useMemoIterable<readonly SendBoxMiddleware[]>(\n () =>\n Object.freeze([\n ...extractSendBoxMiddleware(sendBoxMiddlewareFromProps),\n ...extractSendBoxMiddleware(theme.sendBoxMiddleware),\n ...createDefaultSendBoxMiddleware()\n ]),\n [sendBoxMiddlewareFromProps, theme.sendBoxMiddleware]\n );\n\n const sendBoxToolbarMiddleware = useMemoIterable<readonly SendBoxToolbarMiddleware[]>(\n () =>\n Object.freeze([\n ...extractSendBoxToolbarMiddleware(sendBoxToolbarMiddlewareFromProps),\n ...extractSendBoxToolbarMiddleware(theme.sendBoxToolbarMiddleware),\n ...createDefaultSendBoxToolbarMiddleware()\n ]),\n [sendBoxToolbarMiddlewareFromProps, theme.sendBoxToolbarMiddleware]\n );\n\n const storeDebugAPI = useMemo(() => StoreDebugAPIRegistry.get(composerProps.store), [composerProps.store]);\n\n return (\n <APIComposer\n activityMiddleware={patchedActivityMiddleware}\n activityStatusMiddleware={patchedActivityStatusMiddleware}\n attachmentForScreenReaderMiddleware={patchedAttachmentForScreenReaderMiddleware}\n attachmentMiddleware={patchedAttachmentMiddleware}\n avatarMiddleware={patchedAvatarMiddleware}\n cardActionMiddleware={patchedCardActionMiddleware}\n downscaleImageToDataURL={downscaleImageToDataURL}\n nonce={nonce}\n polymiddleware={patchedPolymiddleware}\n scrollToEndButtonMiddleware={patchedScrollToEndButtonMiddleware}\n sendBoxMiddleware={sendBoxMiddleware}\n sendBoxToolbarMiddleware={sendBoxToolbarMiddleware}\n styleOptions={styleOptions}\n toastMiddleware={patchedToastMiddleware}\n typingIndicatorMiddleware={patchedTypingIndicatorMiddleware}\n {...composerProps}\n >\n <ComponentStylesheet nonce={nonce} />\n <StyleToEmotionObjectComposer nonce={nonce}>\n <HTMLContentTransformComposer middleware={htmlContentTransformMiddleware}>\n <ReducedMotionComposer>\n <BuiltInDecorator>\n <DecoratorComposer middleware={decoratorMiddleware}>\n <ComposerCore\n extraStyleSet={extraStyleSet}\n nonce={nonce}\n renderMarkdown={renderMarkdown}\n storeDebugAPI={storeDebugAPI}\n styleSet={styleSet}\n suggestedActionsAccessKey={suggestedActionsAccessKey}\n webSpeechPonyfillFactory={webSpeechPonyfillFactory}\n >\n {children}\n {onTelemetry && <UITracker />}\n </ComposerCore>\n </DecoratorComposer>\n </BuiltInDecorator>\n </ReducedMotionComposer>\n </HTMLContentTransformComposer>\n </StyleToEmotionObjectComposer>\n </APIComposer>\n );\n};\n\nComposer.defaultProps = {\n ...APIComposer.defaultProps,\n ...ComposerCore.defaultProps,\n children: undefined\n};\n\nComposer.propTypes = {\n ...APIComposer.propTypes,\n ...ComposerCore.propTypes,\n children: PropTypes.any\n};\n\nexport default Composer;\nexport type { ComposerProps };\n","import React from 'react';\n\nimport AudioAttachment from './AudioAttachment';\nimport FileAttachment from './FileAttachment';\nimport ImageAttachment from './ImageAttachment';\nimport TextAttachment from './Text/TextAttachment';\nimport VideoAttachment from './VideoAttachment';\n\nimport { type AttachmentMiddleware } from 'botframework-webchat-api';\nimport { type WebChatAttachment } from './private/types/WebChatAttachment';\n\nfunction isTextAttachment(\n attachment: WebChatAttachment\n): attachment is WebChatAttachment & { contentType: `text/${string}` } {\n return attachment.contentType.startsWith('text/');\n}\n\n// TODO: [P4] Rename this file or the whole middleware, it looks either too simple or too comprehensive now\nexport default function createCoreMiddleware(): AttachmentMiddleware[] {\n return [\n () =>\n next =>\n (...args) => {\n const [\n {\n activity,\n activity: { from: { role = undefined } = {} } = {},\n attachment,\n attachment: { contentType = undefined, contentUrl = undefined, thumbnailUrl = undefined } = {}\n }\n ] = args;\n\n const isText = isTextAttachment(attachment);\n\n return (isText ? !attachment.content : role === 'user' && !thumbnailUrl) ? (\n <FileAttachment activity={activity} attachment={attachment} />\n ) : /^audio\\//u.test(contentType) ? (\n <AudioAttachment attachment={attachment} />\n ) : /^image\\//u.test(contentType) ? (\n <ImageAttachment attachment={attachment} />\n ) : /^video\\//u.test(contentType) ? (\n <VideoAttachment attachment={attachment} />\n ) : contentUrl || contentType === 'application/octet-stream' ? (\n <FileAttachment activity={activity} attachment={attachment} />\n ) : isText ? (\n <TextAttachment activity={activity} attachment={attachment} />\n ) : (\n next(...args)\n );\n }\n ];\n}\n","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport AudioContent from './AudioContent';\nimport useStyleSet from '../hooks/useStyleSet';\n\nconst AudioAttachment = ({ attachment }) => {\n const [{ audioAttachment: audioAttachmentStyleSet }] = useStyleSet();\n\n return (\n <div className={audioAttachmentStyleSet}>\n <AudioContent alt={attachment.name} src={attachment.contentUrl} />\n </div>\n );\n};\n\nAudioAttachment.propTypes = {\n attachment: PropTypes.shape({\n contentUrl: PropTypes.string.isRequired,\n name: PropTypes.string\n }).isRequired\n};\n\nexport default AudioAttachment;\n","import { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport React, { memo } from 'react';\nimport { boolean, object, optional, pipe, readonly, string, type InferInput } from 'valibot';\n\nimport useStyleSet from '../hooks/useStyleSet';\n\nconst audioContentPropsSchema = pipe(\n object({\n alt: optional(string()),\n autoPlay: optional(boolean()),\n loop: optional(boolean()),\n poster: optional(string()),\n src: string()\n }),\n readonly()\n);\n\ntype AudioContentProps = InferInput<typeof audioContentPropsSchema>;\n\nfunction AudioContent(props: AudioContentProps) {\n const { alt, autoPlay = false, loop = false, src } = validateProps(audioContentPropsSchema, props);\n const [{ audioContent: audioContentStyleSet }] = useStyleSet();\n\n return (\n <audio\n aria-label={alt}\n autoPlay={autoPlay}\n className={audioContentStyleSet}\n controls={true}\n loop={loop}\n src={src}\n />\n );\n}\n\nexport default memo(AudioContent);\nexport { audioContentPropsSchema, type AudioContentProps };\n","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport FileContent from './FileContent';\n\nconst FileAttachment = ({\n activity: { attachments = [], channelData: { attachmentSizes = [] } = {} } = {},\n attachment\n}) => {\n const attachmentIndex = attachments.indexOf(attachment);\n const size = attachmentSizes[+attachmentIndex];\n\n return <FileContent fileName={attachment.name} href={attachment.contentUrl} size={size} />;\n};\n\nFileAttachment.propTypes = {\n activity: PropTypes.shape({\n attachment: PropTypes.array,\n channelData: PropTypes.shape({\n attachmentSizes: PropTypes.arrayOf(PropTypes.number)\n })\n }).isRequired,\n attachment: PropTypes.shape({\n contentUrl: PropTypes.string,\n name: PropTypes.string.isRequired\n }).isRequired\n};\n\nexport default FileAttachment;\n","import { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport { hooks } from 'botframework-webchat-api';\nimport classNames from 'classnames';\nimport React, { memo } from 'react';\nimport { boolean, number, object, optional, pipe, readonly, string, type InferInput } from 'valibot';\n\nimport { useStyleToEmotionObject } from '../hooks/internal/styleToEmotionObject';\nimport useStyleSet from '../hooks/useStyleSet';\nimport { ComponentIcon } from '../Icon';\n\nconst { useByteFormatter, useDirection, useLocalizer } = hooks;\n\nconst ROOT_STYLE = {\n display: 'flex',\n\n '& .webchat__fileContent__buttonLink': {\n display: 'flex',\n flex: 1\n },\n\n '& .webchat__fileContent__badge': {\n display: 'flex',\n flex: 1,\n flexDirection: 'column'\n }\n};\n\n// TODO: Consider using `useSanitizeHrefCallback`, which underlying use `sanitize-html` or whatever in HTML content transformer.\nconst ALLOWED_PROTOCOLS = ['blob:', 'data:', 'http:', 'https:'];\n\nfunction isAllowedProtocol(url) {\n try {\n return ALLOWED_PROTOCOLS.includes(new URL(url).protocol);\n } catch {\n return false;\n }\n}\n\nconst fileContentBadgePropsSchema = pipe(\n object({\n downloadIcon: optional(boolean()),\n fileName: string(),\n size: optional(number())\n }),\n readonly()\n);\n\ntype FileContentBadgeProps = InferInput<typeof fileContentBadgePropsSchema>;\n\nconst FileContentBadge = (props: FileContentBadgeProps) => {\n const { downloadIcon = false, fileName, size } = validateProps(fileContentBadgePropsSchema, props);\n\n const [direction] = useDirection();\n const formatByte = useByteFormatter();\n\n const localizedSize = typeof size === 'number' && formatByte(size);\n\n return (\n <React.Fragment>\n <div aria-hidden={true} className=\"webchat__fileContent__badge\">\n <div className=\"webchat__fileContent__fileName\">{fileName}</div>\n {!!localizedSize && <div className=\"webchat__fileContent__size\">{localizedSize}</div>}\n </div>\n {downloadIcon && (\n <ComponentIcon\n appearance=\"text\"\n className={classNames(\n 'webchat__fileContent__downloadIcon',\n direction === 'rtl' && 'webchat__fileContent__downloadIcon--rtl'\n )}\n icon=\"download\"\n />\n )}\n </React.Fragment>\n );\n};\n\ntype FileContentProps = InferInput<typeof fileContentPropsSchema>;\n\nconst fileContentPropsSchema = pipe(\n object({\n className: optional(string()),\n fileName: string(),\n href: optional(string()),\n size: optional(number())\n }),\n readonly()\n);\n\nfunction FileContent(props: FileContentProps) {\n const { className, href, fileName, size } = validateProps(fileContentPropsSchema, props);\n\n const [{ fileContent: fileContentStyleSet }] = useStyleSet();\n const localize = useLocalizer();\n const localizeBytes = useByteFormatter();\n const rootClassName = useStyleToEmotionObject()(ROOT_STYLE) + '';\n\n const localizedSize = typeof size === 'number' && localizeBytes(size);\n\n const sanitizedHref = href && isAllowedProtocol(href) ? href : undefined;\n\n const alt = localize(\n sanitizedHref\n ? localizedSize\n ? 'FILE_CONTENT_DOWNLOADABLE_WITH_SIZE_ALT'\n : 'FILE_CONTENT_DOWNLOADABLE_ALT'\n : localizedSize\n ? 'FILE_CONTENT_WITH_SIZE_ALT'\n : 'FILE_CONTENT_ALT',\n fileName,\n localizedSize\n );\n\n return (\n <div className={classNames('webchat__fileContent', rootClassName, fileContentStyleSet + '', className)}>\n {sanitizedHref ? (\n // URL is sanitized.\n // eslint-disable-next-line react/forbid-elements\n <a\n aria-label={alt}\n className=\"webchat__fileContent__buttonLink\"\n download={fileName}\n href={sanitizedHref}\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n <FileContentBadge downloadIcon={true} fileName={fileName} size={size} />\n </a>\n ) : (\n <FileContentBadge downloadIcon={false} fileName={fileName} size={size} />\n )}\n </div>\n );\n}\n\nexport default memo(FileContent);\nexport { fileContentPropsSchema, type FileContentProps };\n","import { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport React, { memo } from 'react';\nimport { custom, is, object, optional, pipe, readonly, string, union, type InferInput } from 'valibot';\n\nimport readDataURIToBlob from '../Utils/readDataURIToBlob';\nimport ImageContent from './ImageContent';\nimport { type WebChatAttachment } from './private/types/WebChatAttachment';\n\nconst imageAttachmentPropsSchema = pipe(\n object({\n attachment: custom<WebChatAttachment>(value =>\n is(\n union([\n object({\n contentUrl: string(),\n name: optional(string()),\n thumbnailUrl: optional(string())\n }),\n object({\n contentUrl: optional(string()),\n name: optional(string()),\n thumbnailUrl: string()\n })\n ]),\n value\n )\n )\n }),\n readonly()\n);\n\ntype ImageAttachmentProps = InferInput<typeof imageAttachmentPropsSchema>;\n\n// React component is better with standard function than arrow function.\n// eslint-disable-next-line prefer-arrow-callback\nconst ImageAttachment = memo(function ImageAttachment(props: ImageAttachmentProps) {\n const { attachment } = validateProps(imageAttachmentPropsSchema, props);\n\n let imageURL = attachment.thumbnailUrl || attachment.contentUrl;\n\n // To support Content Security Policy, data URI cannot be used.\n // We need to parse the data URI into a blob: URL.\n const blob = readDataURIToBlob(imageURL);\n\n if (blob) {\n // Only allow image/* for image, otherwise, treat it as binary.\n // eslint-disable-next-line no-restricted-properties\n imageURL = URL.createObjectURL(\n new Blob([blob], {\n type: blob.type.startsWith('image/') ? blob.type : 'application/octet-stream'\n })\n );\n }\n\n return <ImageContent alt={attachment.name} src={imageURL} />;\n});\n\nexport default ImageAttachment;\n","import { toByteArray } from 'base64-js';\n\nconst PATTERN = /^data:([^,]*?)(;(base64)){0,1},([A-Za-z0-9+/=]+)/u;\n\nconst DEFAULT_CONTENT_TYPE = 'text/plain;charset=US-ASCII';\n\nexport function parse(dataURI: string):\n | {\n base64: string;\n contentType: string;\n encoding: string;\n }\n | undefined {\n const match = PATTERN.exec(dataURI);\n\n if (!match) {\n return;\n }\n\n const [, contentType, , encoding, base64] = match;\n\n if (encoding !== 'base64') {\n return;\n }\n\n return { base64, contentType: contentType || DEFAULT_CONTENT_TYPE, encoding };\n}\n\nexport default function readDataURIToBlob(dataURI: string): Blob | undefined {\n const parsed = parse(dataURI);\n\n if (!parsed) {\n return;\n }\n\n return new Blob([toByteArray(parsed.base64).buffer as ArrayBuffer], { type: parsed.contentType });\n}\n","import React, { memo } from 'react';\n\nimport FixedWidthImage from '../Utils/FixedWidthImage';\n\nconst ImageContent = memo(\n ({\n alt,\n src\n }: Readonly<{\n alt?: string;\n src: string;\n }>) => <FixedWidthImage alt={alt || ''} src={src} />\n);\n\nexport default ImageContent;\n","import classNames from 'classnames';\nimport React, { memo } from 'react';\n\nimport { useStyleToEmotionObject } from '../hooks/internal/styleToEmotionObject';\nimport CSSTokens from '../Styles/CSSTokens';\n\nconst ROOT_STYLE = {\n '&.webchat__fixed-width-image': {\n display: 'flex',\n justifyContent: 'center',\n maxHeight: CSSTokens.MaxHeightImageBubble,\n minHeight: CSSTokens.MinHeightImageBubble,\n overflow: 'hidden',\n position: 'relative',\n\n '& .webchat__fixed-width-image__filler': {\n visibility: 'hidden',\n width: '100%'\n },\n\n '& .webchat__fixed-width-image__image': {\n left: '50%',\n objectFit: 'cover',\n position: 'absolute',\n top: '50%',\n transform: 'translate(-50%, -50%)',\n width: '100%'\n }\n }\n};\n\n/**\n * Shows the image with fixed width but cropped top/bottom.\n */\nconst FixedWidthImage = memo(\n ({\n alt,\n className,\n src\n }: Readonly<{\n alt: string;\n className?: string | undefined;\n src: string;\n }>) => (\n <div\n className={classNames(\n 'webchat__fixed-width-image',\n useStyleToEmotionObject()(ROOT_STYLE) + '',\n (className || '') + ''\n )}\n >\n <img alt=\"\" className=\"webchat__fixed-width-image__filler\" role=\"none\" src={src} />\n <img alt={alt} className=\"webchat__fixed-width-image__image\" src={src} />\n </div>\n )\n);\n\nFixedWidthImage.displayName = 'FixedWidthImage';\n\nexport default FixedWidthImage;\n","const CustomPropertyNames = Object.freeze({\n // Make sure key names does not have JavaScript forbidden names.\n BackgroundCardPushButton: '--webchat__background--card-push-button',\n BackgroundBubble: '--webchat__background--bubble',\n BackgroundBubbleUser: '--webchat__background--bubble-user',\n BackgroundCodeBlock: '--webchat__background--code-block',\n BackgroundImageSpinnerAnimation: '--webchat__background-image--spinner-animation',\n BackgroundImageTypingAnimation: '--webchat__background-image--typing-animation',\n BackgroundToastError: '--webchat__background--toast-error',\n BackgroundToastInfo: '--webchat__background--toast-info',\n BackgroundToastSuccess: '--webchat__background--toast-success',\n BackgroundToastWarn: '--webchat__background--toast-warn',\n BackgroundTranscriptOverlayButton: '--webchat__background--transcript-overlay-button',\n BackgroundTranscriptOverlayButtonDisabled: '--webchat__background--transcript-overlay-button-disabled',\n BackgroundTranscriptOverlayButtonFocus: '--webchat__background--transcript-overlay-button-focus',\n BackgroundTranscriptOverlayButtonHover: '--webchat__background--transcript-overlay-button-hover',\n BackgroundTranscriptTerminator: '--webchat__background--transcript-terminator',\n BorderAnimationColor1: '--webchat__border-animation--color-1',\n BorderAnimationColor2: '--webchat__border-animation--color-2',\n BorderAnimationColor3: '--webchat__border-animation--color-3',\n BorderColorBubble: '--webchat__border-color--bubble',\n BorderColorBubbleUser: '--webchat__border-color--bubble-user',\n BorderRadiusAvatar: '--webchat__border-radius--avatar',\n BorderRadiusBubble: '--webchat__border-radius--bubble',\n BorderRadiusBubbleUser: '--webchat__border-radius--bubble-user',\n BorderStyleBubble: '--webchat__border-style--bubble',\n BorderStyleBubbleUser: '--webchat__border-style--bubble-user',\n BorderStyleTranscriptActivityVisualKeyboardIndicator:\n '--webchat__border-style--transcript-activity-visual-keyboard-indicator',\n BorderStyleTranscriptVisualKeyboardIndicator: '--webchat__border-style--transcript-visual-keyboard-indicator',\n BorderWidthBubble: '--webchat__border-width--bubble',\n BorderWidthBubbleUser: '--webchat__border-width--bubble-user',\n BorderWidthTranscriptActivityVisualKeyboardIndicator:\n '--webchat__border-width--transcript-activity-visual-keyboard-indicator',\n BorderRadiusTranscriptTerminator: '--webchat__border-radius--transcript-terminator',\n BorderWidthTranscriptVisualKeyboardIndicator: '--webchat__border-width--transcript-visual-keyboard-indicator',\n ColorAccent: '--webchat__color--accent',\n ColorBubble: '--webchat__color--bubble',\n ColorBubbleUser: '--webchat__color--bubble-user',\n ColorCardPushButton: '--webchat__color--card-push-button',\n ColorCodeBlock: '--webchat__color--code-block',\n ColorConnectivityFailed: '--webchat__color--connectivity-failed',\n ColorSubtle: '--webchat__color--subtle',\n ColorTimestamp: '--webchat__color--timestamp',\n ColorTranscriptActivityVisualKeyboardIndicator: '--webchat__color--transcript-activity-visual-keyboard-indicator',\n ColorTranscriptOverlayButton: '--webchat__color--transcript-overlay-button',\n ColorTranscriptOverlayButtonDisabled: '--webchat__color--transcript-overlay-button-disabled',\n ColorTranscriptOverlayButtonFocus: '--webchat__color--transcript-overlay-button-focus',\n ColorTranscriptOverlayButtonHover: '--webchat__color--transcript-overlay-button-hover',\n ColorTranscriptTerminator: '--webchat__color--transcript-terminator',\n ColorTranscriptVisualKeyboardIndicator: '--webchat__color--transcript-visual-keyboard-indicator',\n FontPrimary: '--webchat__font--primary',\n FontMonospace: '--webchat__font--monospace',\n FontSizeSmall: '--webchat__font-size--small',\n FontSizeTranscriptTerminator: '--webchat__font-size--transcript-terminator',\n IconURLExternalLink: '--webchat__icon-url--external-link',\n MaxHeightImageBubble: '--webchat__max-height--image-bubble',\n MaxHeightSendBoxAttachmentBar: '--webchat__max-height--send-box-attachment-bar',\n MaxWidthAttachmentBubble: '--webchat__max-width--attachment-bubble',\n MaxWidthMessageBubble: '--webchat__max-width--message-bubble',\n MinHeightBubble: '--webchat__min-height--bubble',\n MinHeightImageBubble: '--webchat__min-height--image-bubble',\n MinWidthAttachmentBubble: '--webchat__min-width--attachment-bubble',\n MinWidthMessageBubble: '--webchat__min-width--message-bubble',\n PaddingConnectivityIcon: '--webchat__padding--connectivity-icon',\n PaddingRegular: '--webchat__padding--regular',\n SizeAvatar: '--webchat__size--avatar',\n SizeBubbleNub: '--webchat__size--bubble-nub',\n SizeBubbleNubUser: '--webchat__size--bubble-nub-user',\n SpaceBubbleNub: '--webchat__space--bubble-nub',\n SpaceBubbleNubUser: '--webchat__space--bubble-nub-user',\n TransitionDuration: '--webchat__transition-duration',\n TransitionEasing: '--webchat__transition-easing',\n WordBreakMessageActivity: '--webchat__word-break--message-activity'\n}) satisfies Readonly<Record<string, `--webchat__${string}`>>;\n\nexport default CustomPropertyNames;\n","import CustomPropertyNames from './CustomPropertyNames';\n\ntype CustomPropertyNamesType = typeof CustomPropertyNames;\n\ntype CSSTokensType<T extends Readonly<Record<string, string>>> = {\n [K in keyof T]: `var(${T[K]})`;\n};\n\n// To add/remove/update a token, go to `CustomPropertyName.ts`.\nconst CSSTokens = new Proxy(\n {},\n {\n get(_, key: keyof CustomPropertyNamesType) {\n // We already checked in the `CustomPropertyName`.\n // eslint-disable-next-line security/detect-object-injection\n return `var(${CustomPropertyNames[key]})`;\n }\n }\n) as CSSTokensType<CustomPropertyNamesType>;\n\nexport default CSSTokens;\n","import { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport React, { memo } from 'react';\nimport { any, custom, is, object, optional, pipe, readonly, startsWith, string, type InferInput } from 'valibot';\n\nimport TextContent from './TextContent';\n\nconst directLineAttachmentSchema = pipe(\n object({\n content: optional(string()),\n contentType: string(),\n contentUrl: optional(string()),\n name: optional(string()),\n thumbnailUrl: optional(string())\n }),\n readonly()\n);\n\nconst textAttachmentPropsSchema = pipe(\n object({\n activity: any(),\n attachment: pipe(\n object({\n ...directLineAttachmentSchema.entries,\n contentType: custom<`text/${string}`>(value => is(pipe(string(), startsWith('text/')), value))\n }),\n readonly()\n )\n }),\n readonly()\n);\n\ntype TextAttachmentProps = InferInput<typeof textAttachmentPropsSchema>;\n\nfunction TextAttachment(props: TextAttachmentProps) {\n const {\n activity,\n attachment: { content, contentType }\n } = validateProps(textAttachmentPropsSchema, props);\n\n return <TextContent activity={activity} contentType={contentType} text={content} />;\n}\n\nexport default memo(TextAttachment);\nexport { textAttachmentPropsSchema, type TextAttachmentProps };\n","import { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport { useStyles } from '@msinternal/botframework-webchat-styles/react';\nimport { hooks } from 'botframework-webchat-api';\nimport React, { memo, useMemo } from 'react';\n\nimport { any, object, optional, pipe, readonly, string, type InferInput } from 'valibot';\nimport useRenderMarkdownAsHTML from '../../hooks/useRenderMarkdownAsHTML';\nimport isAIGeneratedActivity from './private/isAIGeneratedActivity';\nimport MarkdownTextContent from './private/MarkdownTextContent';\nimport PlainTextContent from './private/PlainTextContent';\n\nimport styles from './TextContent.module.css';\n\nconst { useLocalizer } = hooks;\n\nconst textContentPropsSchema = pipe(\n object({\n activity: any(),\n contentType: optional(string()),\n text: string()\n }),\n readonly()\n);\n\ntype TextContentProps = InferInput<typeof textContentPropsSchema>;\n\nfunction TextContent(props: TextContentProps) {\n const { activity, contentType = 'text/plain', text } = validateProps(textContentPropsSchema, props);\n\n const classNames = useStyles(styles);\n const supportMarkdown = !!useRenderMarkdownAsHTML('message activity');\n const localize = useLocalizer();\n\n const generatedBadge = useMemo(\n () =>\n isAIGeneratedActivity(activity) && (\n <div className={classNames['text-content__generated-badge']}>{localize('ACTIVITY_CONTENT_CAUTION')}</div>\n ),\n [activity, classNames, localize]\n );\n\n return text ? (\n contentType === 'text/markdown' && supportMarkdown ? (\n <MarkdownTextContent activity={activity} markdown={text}>\n {generatedBadge}\n </MarkdownTextContent>\n ) : (\n <PlainTextContent text={text}>{generatedBadge}</PlainTextContent>\n )\n ) : null;\n}\n\nexport default memo(TextContent);\nexport { textContentPropsSchema, type TextContentProps };\n","import { getOrgSchemaMessage, type WebChatActivity } from 'botframework-webchat-core';\n\nexport default function isAIGeneratedActivity(activity: undefined | WebChatActivity) {\n return !!(activity && getOrgSchemaMessage(activity?.entities || [])?.keywords.includes('AIGeneratedContent'));\n}\n","import { reactNode, validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport { useStyles } from '@msinternal/botframework-webchat-styles/react';\nimport { hooks } from 'botframework-webchat-api';\nimport { getOrgSchemaMessage, onErrorResumeNext, type WebChatActivity } from 'botframework-webchat-core';\nimport {\n orgSchemaClaimSchema,\n type OrgSchemaClaim,\n type OrgSchemaCreativeWork,\n type OrgSchemaSoftwareSourceCode\n} from 'botframework-webchat-core/org-schema.js';\nimport cx from 'classnames';\nimport React, { memo, useCallback, useMemo, useRef, type MouseEventHandler } from 'react';\nimport { useRefFrom } from 'use-ref-from';\nimport { custom, object, optional, parse, pipe, readonly, string, type InferInput } from 'valibot';\n\nimport ActivityFeedback from '../../../ActivityFeedback/ActivityFeedback';\nimport { LinkDefinitionItem, LinkDefinitions } from '../../../LinkDefinition/index';\nimport dereferenceBlankNodes from '../../../Utils/JSONLinkedData/dereferenceBlankNodes';\nimport getFirstBaseOfSoftwareSourceCode from '../../../Utils/orgSchema/getFirstBaseOfSoftwareSourceCode';\nimport useSanitizeHrefCallback from '../../../hooks/internal/useSanitizeHrefCallback';\nimport useStreamingMarkdownWithDefinitions, {\n type MarkdownLinkDefinition\n} from '../../../hooks/useStreamingMarkdownWithDefinitions';\nimport useShowModal from '../../../providers/ModalDialog/useShowModal';\nimport ActivityCopyButton from './ActivityCopyButton';\nimport ActivityViewCodeButton from './ActivityViewCodeButton';\nimport CitationModalContext from './CitationModalContent';\nimport MessageSensitivityLabel, { type MessageSensitivityLabelProps } from './MessageSensitivityLabel';\nimport isAIGeneratedActivity from './isAIGeneratedActivity';\nimport isHTMLButtonElement from './isHTMLButtonElement';\n\nimport textContentStyles from '../TextContent.module.css';\nimport citationModalStyles from './CitationModal.module.css';\n\nconst { useLocalizer, useStyleOptions } = hooks;\n\ntype Entry = {\n claim?: OrgSchemaClaim | undefined;\n /** Do not use the key as URL, it is not sanitized. */\n key: string;\n markdownDefinition: MarkdownLinkDefinition;\n} & (\n | {\n // Inline citation.\n handleClick: () => void;\n sanitizedHref?: undefined;\n }\n | {\n // Citation link.\n handleClick?: undefined;\n sanitizedHref: string;\n }\n);\n\nconst markdownTextContentPropsSchema = pipe(\n object({\n activity: custom<WebChatActivity>(() => true),\n children: optional(reactNode()),\n markdown: string()\n }),\n readonly()\n);\n\ntype MarkdownTextContentProps = InferInput<typeof markdownTextContentPropsSchema>;\n\nfunction isCitationURL(url: string): boolean {\n return onErrorResumeNext(() => new URL(url))?.protocol === 'cite:';\n}\n\nfunction isCitingInline(claim: OrgSchemaClaim): claim is OrgSchemaClaim & {\n appearance: [OrgSchemaCreativeWork & { readonly url: never[] }];\n} {\n return !!claim.appearance.length && !claim.appearance[0].url.length;\n}\n\nfunction MarkdownTextContent(props: MarkdownTextContentProps) {\n const { activity, children, markdown } = validateProps(markdownTextContentPropsSchema, props);\n\n const citationModalClassNames = useStyles(citationModalStyles);\n const textContentClassNames = useStyles(textContentStyles);\n\n const [{ feedbackActionsPlacement }] = useStyleOptions();\n const contentRef = useRef<HTMLDivElement>(null);\n const localize = useLocalizer();\n const graph = useMemo(() => dereferenceBlankNodes(activity.entities || []), [activity.entities]);\n const showModal = useShowModal();\n\n const { definitions: markdownDefinitions } = useStreamingMarkdownWithDefinitions(\n contentRef,\n markdown,\n activity.type === 'message'\n );\n\n const messageThing = useMemo(() => getOrgSchemaMessage(graph), [graph]);\n\n const citationModalDialogLabel = localize('CITATION_MODEL_DIALOG_ALT');\n\n const showClaimModal = useCallback(\n (title: string | undefined, text: string, altText: string | undefined) => {\n showModal(() => <CitationModalContext headerText={title} markdown={text} />, {\n 'aria-label': altText || title || citationModalDialogLabel,\n className: citationModalClassNames['citation-modal-dialog']\n });\n },\n [citationModalClassNames, citationModalDialogLabel, showModal]\n );\n\n const sanitizeHref = useSanitizeHrefCallback();\n\n const entries = useMemo<readonly Entry[]>(\n () =>\n Object.freeze(\n markdownDefinitions\n .map<Entry | undefined>(markdownDefinition => {\n let messageCitation: OrgSchemaClaim | undefined = messageThing?.citation\n .map(claim => parse(orgSchemaClaimSchema, claim))\n .find(({ position }) => '' + position[0] === markdownDefinition.identifier);\n\n if (!messageCitation) {\n const rootLevelClaim = graph\n .filter(({ type }) => type === 'https://schema.org/Claim')\n .map(claim => parse(orgSchemaClaimSchema, claim))\n .find(claim => claim['@id'] === markdownDefinition.url);\n\n if (rootLevelClaim) {\n console.warn(\n 'botframework-webchat: Root-level `Claim` thing is deprecated, please use `Message[@id=\"\"].citation[@type=\"Claim\"]` instead. It will be removed on or after 2027-08-29.'\n );\n\n messageCitation = parse(orgSchemaClaimSchema, {\n '@context': 'https://schema.org',\n '@id': markdownDefinition.url,\n '@type': 'Claim',\n alternateName: rootLevelClaim.alternateName,\n appearance: [\n isCitationURL(rootLevelClaim['@id'])\n ? {\n '@type': 'DigitalDocument',\n name: rootLevelClaim.name,\n text: rootLevelClaim.text\n }\n : {\n '@type': 'DigitalDocument',\n url: markdownDefinition.url\n }\n ]\n } satisfies InferInput<typeof orgSchemaClaimSchema>);\n }\n }\n\n const { url } = markdownDefinition;\n const { sanitizedHref } = sanitizeHref(markdownDefinition.url);\n\n // After HTML content transform (or sanitization), the link could be gone.\n // In that case, Markdown will not render the link. We also need to remove it from citation.\n if (messageCitation) {\n // For inline citation, the URL is an opaque string to us.\n // We don't care if it's sanitized or not.\n if (isCitingInline(messageCitation)) {\n const { appearance } = messageCitation;\n\n return {\n claim: messageCitation,\n key: url,\n handleClick: () =>\n showClaimModal(\n appearance[0]?.name[0] ?? markdownDefinition.title,\n appearance[0]?.text[0],\n messageCitation.alternateName[0]\n ),\n markdownDefinition\n };\n }\n\n // Not inline citation, we care about the URL.\n // Warn if it break single source of truth principle, we still use the URL from Markdown.\n if (messageCitation.appearance[0]?.url[0] && messageCitation.appearance[0]?.url[0] !== url) {\n console.warn(\n 'botframework-webchat: When \"Message.citation[].url\" is set in entities, it must match its corresponding URL in Markdown link reference definition',\n {\n citation: messageCitation,\n markdownDefinition,\n url: {\n citation: messageCitation.appearance[0]?.url[0],\n markdown: url\n }\n }\n );\n }\n\n if (sanitizedHref) {\n // URL is sanitized and is not inline citation.\n return {\n claim: messageCitation,\n key: markdownDefinition.url,\n markdownDefinition,\n sanitizedHref: markdownDefinition.url // Single source of truth.\n };\n }\n\n // Not sanitized and not inline, remove it from citation.\n return;\n }\n\n return (\n sanitizedHref && {\n key: markdownDefinition.url,\n markdownDefinition,\n sanitizedHref\n }\n );\n })\n .filter(Boolean)\n ),\n [graph, markdownDefinitions, messageThing, sanitizeHref, showClaimModal]\n );\n\n const entriesRef = useRefFrom(entries);\n\n const handleClick = useCallback<MouseEventHandler<HTMLDivElement>>(\n event => {\n // Find out what <button> is being clicked.\n const targetElement = event.target as HTMLElement;\n const buttonElement: HTMLButtonElement | undefined = isHTMLButtonElement(targetElement)\n ? targetElement\n : (targetElement.closest('button') as HTMLButtonElement | undefined);\n\n if (!buttonElement || !targetElement.contains(buttonElement)) {\n return;\n }\n\n const entry = entriesRef.current.find(({ key }) => key === buttonElement.value);\n\n if (entry?.handleClick) {\n event.preventDefault();\n event.stopPropagation();\n\n entry.handleClick();\n }\n },\n [entriesRef]\n );\n\n const messageSensitivityLabelProps = useMemo<MessageSensitivityLabelProps | undefined>(() => {\n const usageInfo = messageThing?.usageInfo[0];\n\n if (usageInfo) {\n const [firstPattern] = usageInfo.pattern;\n const encryptionStatus = !!usageInfo.keywords.find(keyword => keyword === 'encrypted-content');\n\n return {\n color:\n firstPattern &&\n firstPattern.inDefinedTermSet[0] === 'https://www.w3.org/TR/css-color-4/' &&\n firstPattern.name[0] === 'color' &&\n firstPattern.termCode[0],\n isEncrypted: encryptionStatus,\n name: usageInfo.name[0],\n title: usageInfo.description[0]\n } satisfies MessageSensitivityLabelProps;\n }\n }, [messageThing]);\n\n // The main text of the citation entry (e.g. the title of the document). Used as the content of the main link and, if it exists, the header of the popup window.\n const getEntryMainText = (entry: Entry): string | undefined =>\n entry.claim?.name[0] ?? entry.claim?.appearance[0]?.name[0] ?? (entry.markdownDefinition.title || undefined);\n\n // Optional alternate name for the entry, used as a subtitle beneath the link\n const getEntryBadgeName = (entry: Entry): string | undefined => entry.claim?.appearance[0]?.usageInfo[0]?.name[0];\n\n // Secondary text describing the citation, used in the a11y description (i.e. the div's title attribute)\n const getEntryDescription = (entry: Entry): string | undefined =>\n entry.claim?.appearance[0]?.usageInfo[0]?.description[0];\n\n const firstSoftwareSourceCodeBase = useMemo<OrgSchemaSoftwareSourceCode | undefined>(() => {\n const firstSoftwareSourceCodeBase = getFirstBaseOfSoftwareSourceCode(messageThing);\n\n if (firstSoftwareSourceCodeBase?.programmingLanguage[0]) {\n return firstSoftwareSourceCodeBase;\n }\n }, [messageThing]);\n\n return (\n <div className={cx(textContentClassNames['text-content'], textContentClassNames['text-content--is-markdown'])}>\n <div className={cx(textContentClassNames['text-content__markdown'])} onClick={handleClick} ref={contentRef} />\n {children}\n {!!entries.length && (\n <LinkDefinitions<MessageSensitivityLabelProps>\n accessoryComponentType={messageSensitivityLabelProps && MessageSensitivityLabel}\n accessoryProps={messageSensitivityLabelProps}\n >\n {entries.map(entry => (\n <LinkDefinitionItem\n badgeName={getEntryBadgeName(entry)}\n badgeTitle={`${getEntryBadgeName(entry) ?? ''}\\n\\n${getEntryDescription(entry) ?? ''}`.trim()}\n identifier={entry.markdownDefinition.label}\n key={entry.key}\n onClick={entry.handleClick}\n sanitizedHref={entry.sanitizedHref}\n text={getEntryMainText(entry)}\n />\n ))}\n </LinkDefinitions>\n )}\n <div className={textContentClassNames['text-content__activity-actions']}>\n {activity.type === 'message' &&\n firstSoftwareSourceCodeBase?.text &&\n !messageThing?.keywords.includes('Collapsible') ? (\n <ActivityViewCodeButton\n className=\"text-content__activity-view-code-button\"\n code={firstSoftwareSourceCodeBase.text[0]}\n isAIGenerated={isAIGeneratedActivity(activity)}\n language={firstSoftwareSourceCodeBase.programmingLanguage[0]}\n title={firstSoftwareSourceCodeBase.programmingLanguage[0]}\n />\n ) : null}\n {activity.type === 'message' && activity.text && messageThing?.keywords.includes('AllowCopy') ? (\n <ActivityCopyButton className=\"text-content__activity-copy-button\" targetRef={contentRef} />\n ) : null}\n {activity.type === 'message' && feedbackActionsPlacement === 'activity-actions' && (\n <ActivityFeedback activity={activity} />\n )}\n </div>\n </div>\n );\n}\n\nexport default memo(MarkdownTextContent);\nexport { markdownTextContentPropsSchema, type MarkdownTextContentProps };\n","import { useStyles } from '@msinternal/botframework-webchat-styles/react';\nimport { isOfType } from 'botframework-webchat-core/json-ld.js';\nimport React, { memo, useCallback, useMemo, type FormEventHandler, type KeyboardEventHandler } from 'react';\nimport { Extract, wrapWith } from 'react-wrap-with';\nimport { useRefFrom } from 'use-ref-from';\n\nimport FeedbackForm from './private/FeedbackForm';\nimport FeedbackVoteButtonBar from './private/FeedbackVoteButtonBar';\nimport isActionRequireReview from './private/isActionRequireReview';\nimport ActivityFeedbackComposer from './providers/ActivityFeedbackComposer';\nimport useActivityFeedbackHooks from './providers/useActivityFeedbackHooks';\n\nimport styles from './private/FeedbackForm.module.css';\n\nfunction InternalActivityFeedback() {\n const classNames = useStyles(styles);\n\n const { useActions, useFeedbackText, useFocusFeedbackButton, useHasSubmitted, useSelectedAction, useSubmit } =\n useActivityFeedbackHooks();\n\n const [_, setFeedbackText] = useFeedbackText();\n const [actions] = useActions();\n const [hasSubmitted] = useHasSubmitted();\n const [selectedAction, setSelectedAction] = useSelectedAction();\n const focusFeedbackButton = useFocusFeedbackButton();\n const submit = useSubmit();\n\n const firstActionRequireReview = useMemo(() => actions.find(isActionRequireReview), [actions]);\n const selectedActionRef = useRefFrom(selectedAction);\n\n const handleReset = useCallback<FormEventHandler<HTMLFormElement>>(() => {\n focusFeedbackButton(selectedActionRef.current);\n\n setFeedbackText(undefined);\n setSelectedAction(undefined);\n }, [focusFeedbackButton, selectedActionRef, setFeedbackText, setSelectedAction]);\n\n const handleSubmit = useCallback<FormEventHandler<HTMLFormElement>>(\n event => {\n event.preventDefault();\n\n submit(selectedActionRef.current);\n },\n [selectedActionRef, submit]\n );\n\n const handleKeyDown = useCallback<KeyboardEventHandler<HTMLFormElement>>(\n event => {\n // ESCAPE key should clear the feedback form and unselect like/dislike as they are radio button.\n // In non-form mode, the like/dislike are actions, so they should not be unselected.\n if (event.key === 'Escape' && isActionRequireReview(selectedActionRef.current)) {\n event.stopPropagation();\n event.currentTarget.reset();\n }\n },\n [selectedActionRef]\n );\n\n // Hide feedback form if feedback has already been submitted or it does not require UserReview.\n const isExpanded = useMemo(\n () => !hasSubmitted && isOfType('UserReview', selectedAction?.result[0]),\n [hasSubmitted, selectedAction]\n );\n\n return (\n !!actions.length && (\n <form\n className={classNames['feedback-form']}\n onKeyDown={handleKeyDown}\n onReset={handleReset}\n onSubmit={handleSubmit}\n >\n <FeedbackVoteButtonBar\n // If one of the action requires review, use radio button for all.\n buttonAs={firstActionRequireReview ? 'radio' : 'button'}\n />\n {/* We put the form outside of the container to let it wrap to next line instead of keeping it the same line as the like/dislike buttons. */}\n {isExpanded && <FeedbackForm />}\n </form>\n )\n );\n}\n\nconst ActivityFeedback = wrapWith(ActivityFeedbackComposer, { activity: Extract })(InternalActivityFeedback);\n\nActivityFeedback.displayName = 'ActivityFeedback';\n\nexport default memo(ActivityFeedback);\n","import { hooks } from 'botframework-webchat-api';\nimport { useStyles } from '@msinternal/botframework-webchat-styles/react';\nimport React, { memo, useCallback, useEffect, useRef, useState, type FormEventHandler } from 'react';\nimport useUniqueId from '../../hooks/internal/useUniqueId';\nimport Markdownable from '../../Attachment/Text/private/Markdownable';\nimport testIds from '../../testIds';\nimport { TextArea } from '../../TextArea';\nimport useActivityFeedbackHooks from '../providers/useActivityFeedbackHooks';\nimport getDisclaimerFromReviewAction from './getDisclaimerFromReviewAction';\n\nimport styles from './FeedbackForm.module.css';\n\nconst { useLocalizer } = hooks;\n\nfunction FeedbackForm() {\n const classNames = useStyles(styles);\n const { useFeedbackText, useSelectedAction } = useActivityFeedbackHooks();\n const feedbackFormHeaderId = useUniqueId('feedback-form__form-header__id');\n const disclaimerId = useUniqueId('feedback-form__form-footer__id');\n\n const [selectedAction] = useSelectedAction();\n const [hasFocus, setHasFocus] = useState(false);\n const [userFeedback, setUserFeedback] = useFeedbackText();\n const feedbackTextAreaRef = useRef<HTMLTextAreaElement>(null);\n const localize = useLocalizer();\n\n const disclaimer = getDisclaimerFromReviewAction(selectedAction);\n\n const handleMessageChange: FormEventHandler<HTMLTextAreaElement> = useCallback(\n ({ currentTarget: { value } }) => setUserFeedback(value),\n [setUserFeedback]\n );\n\n useEffect(() => {\n // Will focus on the text area when:\n // 1. The component is mounted initially, or\n // 2. User clicked on the reset button\n if (feedbackTextAreaRef.current && !hasFocus) {\n setHasFocus(true);\n\n feedbackTextAreaRef.current.focus();\n }\n }, [feedbackTextAreaRef, hasFocus, setHasFocus]);\n\n return (\n <div className={classNames['feedback-form__form']}>\n <span\n className={classNames['feedback-form__form-header']}\n // \"id\" is required for \"aria-labelledby\"\n // eslint-disable-next-line react/forbid-dom-props\n id={feedbackFormHeaderId}\n >\n {localize('FEEDBACK_FORM_TITLE')}\n </span>\n <div className={classNames['feedback-form__text-box']}>\n <TextArea\n aria-describedby={disclaimer ? disclaimerId : undefined}\n aria-labelledby={feedbackFormHeaderId}\n className={classNames['feedback-form__text-area']}\n data-testid={testIds.feedbackSendBox}\n onInput={handleMessageChange}\n placeholder={localize('FEEDBACK_FORM_PLACEHOLDER')}\n ref={feedbackTextAreaRef}\n startRows={3}\n value={userFeedback}\n />\n </div>\n {disclaimer && (\n <Markdownable className={classNames['feedback-form__form-footer']} id={disclaimerId} text={disclaimer} />\n )}\n <div className={classNames['feedback-form__submission-button-bar']}>\n <button className={classNames['feedback-form__submit-button']} type=\"submit\">\n {localize('FEEDBACK_FORM_SUBMIT_BUTTON_LABEL')}\n </button>\n <button className={classNames['feedback-form__cancel-button']} type=\"reset\">\n {localize('FEEDBACK_FORM_CANCEL_BUTTON_LABEL')}\n </button>\n </div>\n </div>\n );\n}\n\nexport default memo(FeedbackForm);\n","import React, { memo, useMemo } from 'react';\nimport { object, optional, pipe, readonly, string, type InferInput } from 'valibot';\n\nimport { useRenderMarkdownAsHTML } from '../../../hooks';\n\nconst markdownablePropsSchema = pipe(\n object({\n className: optional(string()),\n id: optional(string()),\n text: string()\n }),\n readonly()\n);\n\ntype MarkdownableProps = InferInput<typeof markdownablePropsSchema>;\n\nfunction Markdownable({ className, id, text }: MarkdownableProps) {\n const renderMarkdownAsHTML = useRenderMarkdownAsHTML('message activity');\n\n const innerHTML = useMemo<Readonly<{ __html: string }> | undefined>(\n () => Object.freeze({ __html: renderMarkdownAsHTML?.(text) }),\n [text, renderMarkdownAsHTML]\n );\n\n return innerHTML ? (\n // \"id\" is required for \"aria-labelledby\"\n // eslint-disable-next-line react/forbid-dom-props, react/no-danger\n <span className={className} dangerouslySetInnerHTML={innerHTML} id={id} />\n ) : (\n // \"id\" is required for \"aria-labelledby\"\n // eslint-disable-next-line react/forbid-dom-props\n <span className={className} id={id}>\n {text}\n </span>\n );\n}\n\nexport default memo(Markdownable);\nexport { markdownablePropsSchema, type MarkdownableProps };\n","import { useStyles } from '@msinternal/botframework-webchat-styles/react';\nimport { hooks } from 'botframework-webchat-api';\nimport cx from 'classnames';\nimport React, {\n forwardRef,\n Fragment,\n useCallback,\n useRef,\n type FormEventHandler,\n type KeyboardEventHandler,\n type MouseEventHandler\n} from 'react';\nimport { boolean, custom, number, object, optional, pipe, readonly, string, type InferInput } from 'valibot';\n\nimport { reactNode, validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport styles from './TextArea.module.css';\n\nconst { useUIState } = hooks;\n\nconst TextAreaPropsSchema = pipe(\n object({\n 'aria-describedby': optional(string()),\n 'aria-label': optional(string()),\n 'aria-labelledby': optional(string()),\n className: optional(string()),\n completion: optional(reactNode()),\n 'data-testid': optional(string()),\n /**\n * `true`, if the text area should be hidden but stay in the DOM, otherwise, `false`.\n *\n * Keeping the element in the DOM while making it invisible to users and PWDs is useful in these scenarios:\n *\n * - When the DTMF keypad is going away, we need to send focus to the text area before we unmount DTMF keypad,\n * This ensures the flow of focus did not sent to document body\n */\n hidden: optional(boolean()),\n onClick: optional(custom<MouseEventHandler<HTMLTextAreaElement>>(value => typeof value === 'function')),\n onInput: optional(custom<FormEventHandler<HTMLTextAreaElement>>(value => typeof value === 'function')),\n placeholder: optional(string()),\n readOnly: optional(boolean()),\n startRows: optional(number()),\n value: optional(string())\n }),\n readonly()\n);\n\ntype TextAreaProps = InferInput<typeof TextAreaPropsSchema>;\n\nconst TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>((rawProps, ref) => {\n const props = validateProps(TextAreaPropsSchema, rawProps);\n\n const [uiState] = useUIState();\n const classNames = useStyles(styles);\n const isInCompositionRef = useRef<boolean>(false);\n\n const disabled = uiState === 'disabled' || props.readOnly;\n\n const handleCompositionEnd = useCallback(() => {\n isInCompositionRef.current = false;\n }, [isInCompositionRef]);\n\n const handleCompositionStart = useCallback(() => {\n isInCompositionRef.current = true;\n }, [isInCompositionRef]);\n\n const handleKeyDown = useCallback<KeyboardEventHandler<HTMLTextAreaElement>>(event => {\n // Shift+Enter adds a new line\n // Enter requests related form submission\n if (!event.shiftKey && event.key === 'Enter' && !isInCompositionRef.current) {\n event.preventDefault();\n\n if ('form' in event.target && event.target.form instanceof HTMLFormElement) {\n event.target?.form?.requestSubmit();\n }\n }\n }, []);\n\n return (\n <div\n className={cx(\n classNames['text-area'],\n classNames['text-area--scroll'],\n { [classNames['text-area--hidden']]: props.hidden },\n { [classNames['text-area--in-completion']]: props.completion },\n props.className\n )}\n role={props.hidden ? 'hidden' : undefined}\n >\n {uiState === 'blueprint' ? (\n <div className={cx(classNames['text-area-doppelganger'], classNames['text-area-shared'])}> </div>\n ) : (\n <Fragment>\n <div className={cx(classNames['text-area-doppelganger'], classNames['text-area-shared'])}>\n {props.completion || props.value}{' '}\n </div>\n <textarea\n aria-describedby={props['aria-describedby']}\n aria-disabled={disabled}\n aria-label={props['aria-label']}\n aria-labelledby={props['aria-labelledby']}\n aria-placeholder={props.placeholder}\n className={cx(classNames['text-area-input'], classNames['text-area-shared'])}\n data-testid={props['data-testid']}\n onClick={props.onClick}\n onCompositionEnd={handleCompositionEnd}\n onCompositionStart={handleCompositionStart}\n onInput={props.onInput}\n onKeyDown={handleKeyDown}\n placeholder={props.placeholder}\n readOnly={disabled}\n ref={ref}\n rows={props.startRows ?? 1}\n // eslint-disable-next-line no-magic-numbers\n tabIndex={props.hidden ? -1 : undefined}\n value={props.value}\n />\n </Fragment>\n )}\n </div>\n );\n});\n\nTextArea.displayName = 'TextArea';\n\nexport default TextArea;\nexport { TextAreaPropsSchema, type TextAreaProps };\n","import \"/__w/1/s/BotFramework-WebChat/packages/component/src/TextArea/TextArea.module_built.css\";\nconst classes = {\"text-area\":\"w4-KLeG_text-area\",\"text-area-shared\":\"w4-KLeG_text-area-shared\",\"text-area--hidden\":\"w4-KLeG_text-area--hidden\",\"text-area-input\":\"w4-KLeG_text-area-input\",\"text-area--in-completion\":\"w4-KLeG_text-area--in-completion\",\"text-area-doppelganger\":\"w4-KLeG_text-area-doppelganger\",\"text-area--scroll\":\"w4-KLeG_text-area--scroll\"}\nexport default classes\n\nconst _text_area0 = classes[\"text-area\"]\nexport { _text_area0 as \"text-area\" }\n\nconst _text_area_shared0 = classes[\"text-area-shared\"]\nexport { _text_area_shared0 as \"text-area-shared\" }\n\nconst _text_area__hidden0 = classes[\"text-area--hidden\"]\nexport { _text_area__hidden0 as \"text-area--hidden\" }\n\nconst _text_area_input0 = classes[\"text-area-input\"]\nexport { _text_area_input0 as \"text-area-input\" }\n\nconst _text_area__in_completion0 = classes[\"text-area--in-completion\"]\nexport { _text_area__in_completion0 as \"text-area--in-completion\" }\n\nconst _text_area_doppelganger0 = classes[\"text-area-doppelganger\"]\nexport { _text_area_doppelganger0 as \"text-area-doppelganger\" }\n\nconst _text_area__scroll0 = classes[\"text-area--scroll\"]\nexport { _text_area__scroll0 as \"text-area--scroll\" }\n","import { useContext } from 'react';\nimport ActivityFeedbackContext, { type ActivityFeedbackContextType } from './private/ActivityFeedbackContext';\n\nexport default function useActivityFeedbackHooks(): ActivityFeedbackContextType {\n return useContext(ActivityFeedbackContext);\n}\n","import { type WebChatActivity } from 'botframework-webchat-core';\nimport { type OrgSchemaAction } from 'botframework-webchat-core/org-schema.js';\nimport { createContext, type Dispatch, type SetStateAction } from 'react';\n\ntype ActivityFeedbackContextType = Readonly<{\n useActions: () => readonly [readonly OrgSchemaAction[]];\n useActivity: () => readonly [WebChatActivity];\n useFeedbackText: () => readonly [string, Dispatch<SetStateAction<string>>];\n useFocusFeedbackButton: () => (action: OrgSchemaAction) => void;\n useHasSubmitted: () => readonly [boolean];\n useSelectedAction: () => readonly [OrgSchemaAction, (action: OrgSchemaAction) => void];\n useSubmit: () => (action: OrgSchemaAction) => void;\n}>;\n\nconst ActivityFeedbackContext = createContext<ActivityFeedbackContextType>(\n new Proxy({} as ActivityFeedbackContextType, {\n get() {\n throw new Error('botframework-webchat: This hook can only be used under <ActivityFeedbackContext>');\n }\n })\n);\n\nexport default ActivityFeedbackContext;\nexport { type ActivityFeedbackContextType };\n","import {\n orgSchemaUserReviewSchema,\n type OrgSchemaAction,\n type OrgSchemaThing\n} from 'botframework-webchat-core/org-schema.js';\nimport { safeParse } from 'valibot';\n\nexport default function getDisclaimerFromActivity(action: OrgSchemaAction): string | undefined {\n const parseResult = safeParse(orgSchemaUserReviewSchema, action.result[0] satisfies OrgSchemaThing);\n\n return parseResult.success ? parseResult.output.reviewAspect[0] : undefined;\n}\n","import \"/__w/1/s/BotFramework-WebChat/packages/component/src/ActivityFeedback/private/FeedbackForm.module_built.css\";\nconst classes = {\"feedback-form__form-header\":\"w_eFzsG_feedback-form__form-header\",\"feedback-form__form\":\"w_eFzsG_feedback-form__form\",\"feedback-form\":\"w_eFzsG_feedback-form\",\"feedback-form__vote-button-bar\":\"w_eFzsG_feedback-form__vote-button-bar\",\"feedback-form__text-area\":\"w_eFzsG_feedback-form__text-area\",\"feedback-form__submit-button\":\"w_eFzsG_feedback-form__submit-button\",\"feedback-form__submission-button-bar\":\"w_eFzsG_feedback-form__submission-button-bar\",\"feedback-form__cancel-button\":\"w_eFzsG_feedback-form__cancel-button\",\"feedback-form__form-footer\":\"w_eFzsG_feedback-form__form-footer\",\"feedback-form__text-box\":\"w_eFzsG_feedback-form__text-box\"}\nexport default classes\n\nconst _feedback_form__form_header0 = classes[\"feedback-form__form-header\"]\nexport { _feedback_form__form_header0 as \"feedback-form__form-header\" }\n\nconst _feedback_form__form0 = classes[\"feedback-form__form\"]\nexport { _feedback_form__form0 as \"feedback-form__form\" }\n\nconst _feedback_form0 = classes[\"feedback-form\"]\nexport { _feedback_form0 as \"feedback-form\" }\n\nconst _feedback_form__vote_button_bar0 = classes[\"feedback-form__vote-button-bar\"]\nexport { _feedback_form__vote_button_bar0 as \"feedback-form__vote-button-bar\" }\n\nconst _feedback_form__text_area0 = classes[\"feedback-form__text-area\"]\nexport { _feedback_form__text_area0 as \"feedback-form__text-area\" }\n\nconst _feedback_form__submit_button0 = classes[\"feedback-form__submit-button\"]\nexport { _feedback_form__submit_button0 as \"feedback-form__submit-button\" }\n\nconst _feedback_form__submission_button_bar0 = classes[\"feedback-form__submission-button-bar\"]\nexport { _feedback_form__submission_button_bar0 as \"feedback-form__submission-button-bar\" }\n\nconst _feedback_form__cancel_button0 = classes[\"feedback-form__cancel-button\"]\nexport { _feedback_form__cancel_button0 as \"feedback-form__cancel-button\" }\n\nconst _feedback_form__form_footer0 = classes[\"feedback-form__form-footer\"]\nexport { _feedback_form__form_footer0 as \"feedback-form__form-footer\" }\n\nconst _feedback_form__text_box0 = classes[\"feedback-form__text-box\"]\nexport { _feedback_form__text_box0 as \"feedback-form__text-box\" }\n","import { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport { useStyles } from '@msinternal/botframework-webchat-styles/react';\nimport React, { memo } from 'react';\nimport { literal, object, pipe, readonly, union, type InferInput } from 'valibot';\n\nimport useUniqueId from '../../hooks/internal/useUniqueId';\nimport useActivityFeedbackHooks from '../providers/useActivityFeedbackHooks';\nimport FeedbackVoteButton from './FeedbackVoteButton';\n\nimport styles from './FeedbackForm.module.css';\n\nconst feedbackVoteButtonBarPropsSchema = pipe(\n object({\n buttonAs: union([literal('button'), literal('radio')])\n }),\n readonly()\n);\n\ntype FeedbackVoteButtonBarProps = InferInput<typeof feedbackVoteButtonBarPropsSchema>;\n\nfunction FeedbackVoteButtonBar(props: FeedbackVoteButtonBarProps) {\n const classNames = useStyles(styles);\n const { buttonAs } = validateProps(feedbackVoteButtonBarPropsSchema, props);\n\n const { useActions } = useActivityFeedbackHooks();\n\n const [actions] = useActions();\n const name = useUniqueId('webchat__feedback-form__vote-button-bar');\n\n return (\n <div className={classNames['feedback-form__vote-button-bar']}>\n {actions.map((action, index) => (\n <FeedbackVoteButton action={action} as={buttonAs} key={action['@id'] || index} name={name} />\n ))}\n </div>\n );\n}\n\nexport default memo(FeedbackVoteButtonBar);\nexport { feedbackVoteButtonBarPropsSchema, type FeedbackVoteButtonBarProps };\n","import { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport { hooks } from 'botframework-webchat-api';\nimport { orgSchemaActionSchema, orgSchemaVoteActionSchema } from 'botframework-webchat-core/org-schema.js';\nimport React, { memo, useCallback, useMemo, useRef } from 'react';\nimport { useRefFrom } from 'use-ref-from';\nimport { literal, object, pipe, readonly, string, union, type InferInput } from 'valibot';\nimport { isOfType } from 'botframework-webchat-core/json-ld.js';\n\nimport { useListenToActivityFeedbackFocus } from '../providers/private/FocusPropagation';\nimport useActivityFeedbackHooks from '../providers/useActivityFeedbackHooks';\nimport ThumbButton from './ThumbButton';\nimport canActionResubmit from './canActionResubmit';\nimport isActionRequireReview from './isActionRequireReview';\n\nconst { useLocalizer, useStyleOptions } = hooks;\n\nconst feedbackVoteButtonPropsSchema = pipe(\n object({\n action: union([orgSchemaActionSchema, orgSchemaVoteActionSchema]),\n as: union([literal('button'), literal('radio')]),\n name: string()\n }),\n readonly()\n);\n\ntype FeedbackVoteButtonProps = InferInput<typeof feedbackVoteButtonPropsSchema>;\n\nfunction FeedbackVoteButton(props: FeedbackVoteButtonProps) {\n const { useHasSubmitted, useSelectedAction: useSelectedActions } = useActivityFeedbackHooks();\n\n const { action, as, name } = validateProps(feedbackVoteButtonPropsSchema, props);\n\n const [{ feedbackActionsPlacement }] = useStyleOptions();\n const [hasSubmitted] = useHasSubmitted();\n const [selectedAction, setSelectedAction] = useSelectedActions();\n const actionRef = useRefFrom(action);\n const buttonRef = useRef<HTMLInputElement>(null);\n const direction = useMemo(() => {\n if (isOfType('DislikeAction', action)) {\n return 'down';\n } else if (isOfType('LikeAction', action)) {\n return 'up';\n } else if (isOfType('VoteAction', action)) {\n if (action.actionOption[0] === 'downvote') {\n return 'down';\n } else if (action.actionOption[0] === 'upvote') {\n return 'up';\n }\n }\n\n console.warn(\n 'botframework-webchat: <FeedbackVoteButton> supports `DislikeAction`, `LikeAction`, and `VoteAction` with `actionOption` of \"downvote\" and \"upvote\" only.'\n );\n\n return 'up';\n }, [action]);\n const localize = useLocalizer();\n\n const selectedActionRef = useRefFrom(selectedAction);\n\n const handleClick = useCallback(\n () => setSelectedAction(actionRef.current === selectedActionRef.current ? undefined : actionRef.current),\n [actionRef, selectedActionRef, setSelectedAction]\n );\n const disabled = hasSubmitted && !canActionResubmit(action);\n\n useListenToActivityFeedbackFocus(\n useCallback(target => target === actionRef.current && buttonRef.current?.focus(), [actionRef])\n );\n\n return (\n <ThumbButton\n as={as}\n direction={direction}\n disabled={disabled}\n name={name}\n onClick={handleClick}\n pressed={selectedAction === action}\n ref={buttonRef}\n size={isActionRequireReview(action) || feedbackActionsPlacement === 'activity-actions' ? 'large' : 'small'}\n submitted={hasSubmitted}\n title={disabled ? localize('VOTE_COMPLETE_ALT') : undefined}\n />\n );\n}\n\nexport default memo(FeedbackVoteButton);\nexport { feedbackVoteButtonPropsSchema, type FeedbackVoteButtonProps };\n","import { type OrgSchemaAction } from 'botframework-webchat-core/org-schema.js';\nimport { createPropagation } from 'use-propagate';\n\nconst {\n PropagationScope: ActivityFeedbackFocusPropagationScope,\n useListen: useListenToActivityFeedbackFocus,\n usePropagate: usePropagateActivityFeedbackFocus\n} = createPropagation<OrgSchemaAction>();\n\nexport { ActivityFeedbackFocusPropagationScope, useListenToActivityFeedbackFocus, usePropagateActivityFeedbackFocus };\n","import { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport { useStyles } from '@msinternal/botframework-webchat-styles/react';\nimport { hooks } from 'botframework-webchat-api';\nimport cx from 'classnames';\nimport React, { forwardRef, memo, useCallback, useMemo, type ForwardedRef, type KeyboardEventHandler } from 'react';\nimport { useRefFrom } from 'use-ref-from';\nimport { boolean, function_, literal, object, optional, pipe, readonly, string, union, type InferInput } from 'valibot';\n\nimport testIds from '../../testIds';\nimport { Tooltip } from '../../Tooltip';\nimport ThumbButtonImage from './ThumbButton.Image';\n\nimport styles from './ThumbButton.module.css';\n\nconst { useLocalizer } = hooks;\n\nconst thumbButtonPropsSchema = pipe(\n object({\n as: union([literal('button'), literal('radio')]),\n className: optional(string()),\n direction: union([literal('down'), literal('up')]),\n disabled: optional(boolean()),\n name: string(),\n onClick: optional(function_()),\n pressed: optional(boolean()),\n size: union([literal('small'), literal('large')]),\n submitted: optional(boolean()),\n title: optional(string())\n }),\n readonly()\n);\n\ntype ThumbButtonProps = InferInput<typeof thumbButtonPropsSchema>;\n\nfunction ThumbButton(props: ThumbButtonProps, ref: ForwardedRef<HTMLInputElement>) {\n const { as, className, direction, disabled, name, onClick, pressed, size, submitted, title } = validateProps(\n thumbButtonPropsSchema,\n props\n );\n\n const localize = useLocalizer();\n const onClickRef = useRefFrom(onClick);\n const classNames = useStyles(styles);\n\n const buttonTitle = useMemo(\n () => title ?? localize(direction === 'down' ? 'VOTE_DISLIKE_ALT' : 'VOTE_LIKE_ALT'),\n [direction, localize, title]\n );\n\n const handleClickOrChange = useCallback(() => !disabled && onClickRef.current?.(), [disabled, onClickRef]);\n\n const handleKeyDown = useCallback<KeyboardEventHandler<HTMLInputElement>>(event => {\n // Do not submit the <form> via ENTER key.\n event.key === 'Enter' && event.preventDefault();\n }, []);\n\n return (\n <div\n className={cx(\n classNames['thumb-button'],\n {\n [classNames['thumb-button--large']]: size === 'large',\n [classNames['thumb-button--has-submitted']]: submitted\n },\n className\n )}\n >\n <input\n aria-disabled={disabled ? 'true' : undefined}\n aria-label={buttonTitle}\n className={cx(classNames['thumb-button__input'], className)}\n data-testid={testIds.feedbackButton}\n name={name}\n onKeyDown={handleKeyDown}\n ref={ref}\n {...(as === 'radio'\n ? {\n checked: pressed,\n onChange: handleClickOrChange,\n type: 'radio'\n }\n : {\n 'aria-pressed': pressed,\n onClick: handleClickOrChange,\n type: 'button'\n })}\n />\n <ThumbButtonImage\n className={cx(classNames['thumb-button__image'], classNames['thumb-button__image--is-stroked'])}\n direction={direction}\n />\n <ThumbButtonImage\n className={cx(classNames['thumb-button__image'], classNames['thumb-button__image--is-filled'])}\n direction={direction}\n filled={true}\n />\n <Tooltip className={classNames['thumb-button__tooltip']}>{buttonTitle}</Tooltip>\n </div>\n );\n}\n\nexport default memo(forwardRef<HTMLInputElement, ThumbButtonProps>(ThumbButton));\nexport { thumbButtonPropsSchema, type ThumbButtonProps };\n","import cx from 'classnames';\nimport React, { memo, type ReactNode } from 'react';\nimport { useStyleSet } from '../../hooks';\n\ntype TooltipProps = Readonly<{\n children: ReactNode;\n className?: string | undefined;\n position?: 'block-start';\n}>;\n\nfunction Tooltip({ children, className, position = 'block-start' }: TooltipProps) {\n const [{ tooltip: tooltipClassName }] = useStyleSet();\n\n return (\n <span\n className={cx('webchat__tooltip', className, tooltipClassName, `webchat__tooltip--${position}`)}\n /* @ts-expect-error: inert unknown attribute */\n inert=\"true\"\n role=\"tooltip\"\n >\n {children}\n </span>\n );\n}\n\nexport default memo(Tooltip);\n","import { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport React, { memo } from 'react';\nimport { boolean, literal, object, optional, pipe, readonly, string, union, type InferInput } from 'valibot';\n\nimport { ComponentIcon } from '../../Icon';\n\nconst thumbButtonImagePropsSchema = pipe(\n object({\n className: optional(string()),\n direction: union([literal('down'), literal('up')]),\n filled: optional(boolean())\n }),\n readonly()\n);\n\ntype ThumbButtonImageProps = InferInput<typeof thumbButtonImagePropsSchema>;\n\nconst ThumbButtonImage = memo((props: ThumbButtonImageProps) => {\n const { className, direction, filled = false } = validateProps(thumbButtonImagePropsSchema, props);\n\n return (\n <ComponentIcon\n appearance=\"text\"\n className={className}\n icon={\n direction === 'down' ? (filled ? 'thumb-down-filled' : 'thumb-down') : filled ? 'thumb-up-filled' : 'thumb-up'\n }\n />\n );\n});\n\nThumbButtonImage.displayName = 'ThumbButtonImage';\n\nexport default ThumbButtonImage;\nexport { thumbButtonImagePropsSchema, type ThumbButtonImageProps };\n","import \"/__w/1/s/BotFramework-WebChat/packages/component/src/ActivityFeedback/private/ThumbButton.module_built.css\";\nconst classes = {\"thumb-button--large\":\"wwPVtVa_thumb-button--large\",\"thumb-button__input\":\"wwPVtVa_thumb-button__input\",\"thumb-button\":\"wwPVtVa_thumb-button\",\"thumb-button--has-submitted\":\"wwPVtVa_thumb-button--has-submitted\",\"thumb-button__tooltip\":\"wwPVtVa_thumb-button__tooltip\",\"thumb-button__image--is-filled\":\"wwPVtVa_thumb-button__image--is-filled\",\"thumb-button__image--is-stroked\":\"wwPVtVa_thumb-button__image--is-stroked\",\"thumb-button__image\":\"wwPVtVa_thumb-button__image\"}\nexport default classes\n\nconst _thumb_button__large0 = classes[\"thumb-button--large\"]\nexport { _thumb_button__large0 as \"thumb-button--large\" }\n\nconst _thumb_button__input0 = classes[\"thumb-button__input\"]\nexport { _thumb_button__input0 as \"thumb-button__input\" }\n\nconst _thumb_button0 = classes[\"thumb-button\"]\nexport { _thumb_button0 as \"thumb-button\" }\n\nconst _thumb_button__has_submitted0 = classes[\"thumb-button--has-submitted\"]\nexport { _thumb_button__has_submitted0 as \"thumb-button--has-submitted\" }\n\nconst _thumb_button__tooltip0 = classes[\"thumb-button__tooltip\"]\nexport { _thumb_button__tooltip0 as \"thumb-button__tooltip\" }\n\nconst _thumb_button__image__is_filled0 = classes[\"thumb-button__image--is-filled\"]\nexport { _thumb_button__image__is_filled0 as \"thumb-button__image--is-filled\" }\n\nconst _thumb_button__image__is_stroked0 = classes[\"thumb-button__image--is-stroked\"]\nexport { _thumb_button__image__is_stroked0 as \"thumb-button__image--is-stroked\" }\n\nconst _thumb_button__image0 = classes[\"thumb-button__image\"]\nexport { _thumb_button__image0 as \"thumb-button__image\" }\n","import { type OrgSchemaAction } from 'botframework-webchat-core/org-schema.js';\nimport { isOfType } from 'botframework-webchat-core/json-ld.js';\n\nexport default function isActionRequireReview(\n action: OrgSchemaAction | undefined\n): action is OrgSchemaAction & { result: { '@type': 'UserReview'[] } } {\n const [firstResult] = action?.result ?? [];\n\n return isOfType('UserReview', firstResult);\n}\n","import { type OrgSchemaAction } from 'botframework-webchat-core/org-schema.js';\nimport isActionRequireReview from './isActionRequireReview';\n\nexport default function canActionResubmit(action: OrgSchemaAction | undefined): boolean {\n return !isActionRequireReview(action);\n}\n","import { reactNode, validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport { hooks } from 'botframework-webchat-api';\nimport { orgSchemaActionSchema, type OrgSchemaAction } from 'botframework-webchat-core/org-schema.js';\nimport { getOrgSchemaMessage, type WebChatActivity } from 'botframework-webchat-core';\nimport { isOfType } from 'botframework-webchat-core/json-ld.js';\nimport random from 'math-random';\nimport React, { memo, useCallback, useMemo, useRef, useState, type Dispatch, type SetStateAction } from 'react';\nimport { wrapWith } from 'react-wrap-with';\nimport { useRefFrom } from 'use-ref-from';\nimport { useStateWithRef } from 'use-state-with-ref';\nimport { custom, is, object, optional, parse, pipe, readonly, safeParse, type InferInput } from 'valibot';\n\nimport dereferenceBlankNodes from '../../Utils/JSONLinkedData/dereferenceBlankNodes';\nimport canActionResubmit from '../private/canActionResubmit';\nimport getDisclaimerFromFeedbackLoop from '../private/getDisclaimerFromFeedbackLoop';\nimport hasFeedbackLoop from '../private/hasFeedbackLoop';\nimport isActionRequireReview from '../private/isActionRequireReview';\nimport ActivityFeedbackContext, { type ActivityFeedbackContextType } from './private/ActivityFeedbackContext';\nimport { ActivityFeedbackFocusPropagationScope, usePropagateActivityFeedbackFocus } from './private/FocusPropagation';\n\nconst { usePonyfill, usePostActivity } = hooks;\n\nconst activityFeedbackComposerPropsSchema = pipe(\n object({\n activity: custom<WebChatActivity>(value => is(object({}), value)),\n children: optional(reactNode())\n }),\n readonly()\n);\n\ntype ActivityFeedbackComposerProps = InferInput<typeof activityFeedbackComposerPropsSchema>;\n\ntype ActionState = Readonly<{\n actionId: string;\n actionStatus: 'CompletedActionStatus' | 'ActiveActionStatus';\n}>;\n\nconst DEBOUNCE_TIMEOUT = 500;\n\n/**\n * Patch `OrgSchemaAction` for simpler logic down the road:\n *\n * 1. If no `@id`, generate a random `@id`\n * 2. If `channelData.feedbackLoop.disclaimer` presents (a deprecated property), move it to `action.result.description`\n *\n * @param activity Activity to read `channelData`\n * @param actions Actions to patch\n * @returns New instances of patched actions\n */\nfunction patchActions(activity: WebChatActivity, actions: readonly OrgSchemaAction[]): readonly OrgSchemaAction[] {\n actions = actions.map(action =>\n // eslint-disable-next-line no-magic-numbers\n action['@id'] ? action : Object.freeze({ ...action, '@id': `_:${random().toString(36).substring(2, 7)}` })\n );\n\n const deprecatedFeedbackLoopChannelData = activity.channelData?.feedbackLoop;\n\n if (deprecatedFeedbackLoopChannelData) {\n // TODO: Find the date we deprecated the channelData.\n console.warn(\n 'botframework-webchat: `channelData.feedbackLoop` is deprecated, use `entities[@type=\"Message\"][@id=\"\"].potentialAction[@type=\"Action\"].result[@type=\"UserReview\"].description instead. It will be removed on or after YYYY-MM-DD.'\n );\n\n actions = actions.map(action =>\n action.result\n ? action\n : parse(orgSchemaActionSchema, {\n ...action,\n result: {\n '@type': 'UserReview',\n reviewAspect: deprecatedFeedbackLoopChannelData.disclaimer\n }\n })\n );\n }\n\n return Object.freeze(actions);\n}\n\nfunction ActivityFeedbackComposer(props: ActivityFeedbackComposerProps) {\n const { children, activity: activityFromProps } = validateProps(activityFeedbackComposerPropsSchema, props);\n\n const [{ clearTimeout, setTimeout }] = usePonyfill();\n const [feedbackText, setFeedbackText, feedbackTextRef] = useStateWithRef<string | undefined>();\n const activity: WebChatActivity = useMemo(\n () =>\n // Force enable feedback loop until service fixed their issue.\n hasFeedbackLoop(activityFromProps)\n ? Object.freeze({\n ...activityFromProps,\n entities: [\n {\n '@context': 'https://schema.org',\n '@id': '',\n '@type': 'Message',\n type: 'https://schema.org/Message',\n keywords: [],\n potentialAction: [\n {\n '@type': 'LikeAction',\n actionStatus: 'PotentialActionStatus',\n result: [\n {\n '@type': 'UserReview',\n reviewAspect: getDisclaimerFromFeedbackLoop(activityFromProps)\n }\n ]\n },\n {\n '@type': 'DislikeAction',\n actionStatus: 'PotentialActionStatus',\n result: [\n {\n '@type': 'UserReview',\n reviewAspect: getDisclaimerFromFeedbackLoop(activityFromProps)\n }\n ]\n }\n ]\n }\n ]\n })\n : activityFromProps,\n [activityFromProps]\n );\n\n const activityRef = useRefFrom(activity);\n\n const actionStateRef = useRef<ActionState | undefined>(undefined);\n const [_, setForceRefresh] = useState({});\n\n const setActionStateWithRefresh = useCallback(\n (actionState: ActionState | undefined) => {\n actionStateRef.current = actionState;\n setForceRefresh({});\n },\n [actionStateRef, setForceRefresh]\n );\n\n const rawActions = useMemo<readonly OrgSchemaAction[]>(() => {\n try {\n const graph = dereferenceBlankNodes(activity.entities || []);\n const messageThing = getOrgSchemaMessage(graph);\n\n const reactActions: readonly OrgSchemaAction[] = Object.freeze(\n messageThing?.potentialAction.filter(\n action => isOfType('LikeAction', action) || isOfType('DislikeAction', action)\n ) ?? []\n );\n\n if (reactActions.length) {\n return patchActions(activity, reactActions);\n }\n\n const voteActions = Object.freeze(\n graph.reduce<OrgSchemaAction[]>((result, item) => {\n const parseResult = safeParse(orgSchemaActionSchema, item);\n\n if (parseResult.success) {\n const { output } = parseResult;\n\n output.actionOption[0] && result.push(output);\n }\n\n return result;\n }, [])\n // TODO: Instead of processing VoteAction, convert it to LikeAction/DislikeAction.\n // .map(action => ({\n // ...action,\n // '@type': action.actionOption === 'downvote' ? 'DislikeAction' : 'LikeAction'\n // }))\n );\n\n if (voteActions.length) {\n // VoteAction is deprecated and was never published publicly.\n return patchActions(activity, voteActions);\n }\n } catch (error) {\n // Intentionally left blank.\n console.warn('botframework-webchat: Internal error in <ActivityFeedbackComposer>', error);\n }\n\n return Object.freeze([]);\n }, [activity]);\n\n useMemo(() => {\n const activeOrCompletedAction = rawActions.find(\n (action): action is OrgSchemaAction & { actionStatus: ['ActiveActionStatus' | 'CompletedActionStatus'] } =>\n action.actionStatus[0] === 'ActiveActionStatus' || action.actionStatus[0] === 'CompletedActionStatus'\n );\n\n actionStateRef.current = activeOrCompletedAction\n ? {\n actionId: activeOrCompletedAction['@id'],\n actionStatus: activeOrCompletedAction.actionStatus[0]\n }\n : undefined;\n }, [rawActions]);\n\n // Workaround ESLint on saying actionStateRef.current is redundant when using it directly.\n const actionStateForActions = actionStateRef.current;\n\n const actions = useMemo<readonly OrgSchemaAction[]>(\n () =>\n Object.freeze(\n rawActions.map(action =>\n actionStateForActions && actionStateForActions.actionId === action['@id']\n ? Object.freeze({ ...action, actionStatus: [actionStateForActions.actionStatus] } satisfies OrgSchemaAction)\n : action.actionStatus[0] === 'PotentialActionStatus'\n ? action\n : Object.freeze({ ...action, actionStatus: ['PotentialActionStatus'] } satisfies OrgSchemaAction)\n )\n ),\n [actionStateForActions, rawActions]\n );\n\n const actionsRef = useRefFrom(actions);\n\n const postActivity = usePostActivity();\n\n const hasSubmitted = useMemo<boolean>(\n () => actions.some(action => action.actionStatus[0] === 'CompletedActionStatus'),\n [actions]\n );\n\n const hasSubmittedRef = useRefFrom(hasSubmitted);\n\n const submit = useCallback(\n (action: OrgSchemaAction) => {\n if (actionStateRef.current?.actionStatus === 'CompletedActionStatus') {\n return console.warn(\n 'botframework-webchat internal: useFeedbackActions().submitCallback() must not be called after feedback is completed, ignoring the call.'\n );\n } else if (!actionsRef.current.includes(action)) {\n return console.warn(\n 'botframework-webchat internal: Cannot submit an action that does not exists in the message, ignoring the call.'\n );\n }\n\n setActionStateWithRefresh(Object.freeze({ actionId: action['@id'], actionStatus: 'CompletedActionStatus' }));\n\n const { '@id': _id, actionStatus: _actionStatus, ...rest } = action;\n const { current: feedbackText } = feedbackTextRef;\n const isLegacyAction = isOfType('VoteAction', action);\n\n // TODO: We should update this to use W3C Hydra.1\n if (isActionRequireReview(action)) {\n postActivity({\n name: 'message/submitAction',\n replyToId: activityRef.current.id,\n type: 'invoke',\n value: {\n actionName: 'feedback',\n actionValue: {\n feedback: { feedbackText: feedbackText || '' },\n reaction: isOfType('LikeAction', action) ? 'like' : 'dislike'\n }\n }\n } as any);\n } else {\n const entity = isLegacyAction ? rest : action;\n\n postActivity({\n entities: [\n {\n ...entity,\n actionOption: entity.actionOption[0], // TODO: Service should accept plural.\n type: new URL(entity['@type'][0] ?? '', entity['@context'] ?? 'https://schema.org').href\n }\n ],\n name: 'webchat:activity-status/feedback',\n type: 'event'\n } as any);\n }\n },\n [actionsRef, actionStateRef, activityRef, feedbackTextRef, postActivity, setActionStateWithRefresh]\n );\n\n const selectedAction = useMemo<OrgSchemaAction | undefined>(\n () =>\n actions.find(\n ({ actionStatus }) => actionStatus[0] === 'ActiveActionStatus' || actionStatus[0] === 'CompletedActionStatus'\n ),\n [actions]\n );\n\n const autoSubmitTimeoutRef = useRef<ReturnType<typeof setTimeout> | undefined>(undefined);\n\n const setSelectedAction = useCallback(\n (action: OrgSchemaAction | undefined) => {\n // If the action require a UserReview, do not allow resubmit.\n const shouldAllowResubmit = canActionResubmit(action);\n\n if (hasSubmittedRef.current && !shouldAllowResubmit) {\n return console.warn(\n 'botframework-webchat internal: useFeedbackActions().setSelectedAction() must not be called after feedback is completed as it does not allow resubmission, ignoring the call.'\n );\n } else if (action && !actionsRef.current.includes(action)) {\n return console.warn(\n 'botframework-webchat internal: Cannot select an action that does not exists in the message, ignoring the call.'\n );\n }\n\n setActionStateWithRefresh(\n action\n ? Object.freeze({\n actionId: action['@id'],\n actionStatus: 'ActiveActionStatus'\n })\n : undefined\n );\n\n if (shouldAllowResubmit) {\n clearTimeout(autoSubmitTimeoutRef.current);\n\n if (action?.['@id']) {\n autoSubmitTimeoutRef.current = setTimeout(\n () => submit(actionsRef.current.find(({ '@id': id }) => id === action['@id'])),\n DEBOUNCE_TIMEOUT\n );\n }\n }\n },\n [actionsRef, autoSubmitTimeoutRef, clearTimeout, hasSubmittedRef, setActionStateWithRefresh, setTimeout, submit]\n );\n\n const selectedActionState = useMemo<readonly [OrgSchemaAction, (action: OrgSchemaAction) => void]>(\n () => Object.freeze([selectedAction, setSelectedAction]),\n [selectedAction, setSelectedAction]\n );\n\n const actionsState = useMemo<readonly [readonly OrgSchemaAction[]]>(\n () => Object.freeze([actions] as const),\n [actions]\n );\n\n const feedbackTextState = useMemo<readonly [string, Dispatch<SetStateAction<string>>]>(\n () => Object.freeze([feedbackText, setFeedbackText]),\n [feedbackText, setFeedbackText]\n );\n\n const hasSubmittedState = useMemo<readonly [boolean]>(() => Object.freeze([hasSubmitted]), [hasSubmitted]);\n\n const activityState = useMemo<readonly [WebChatActivity]>(() => Object.freeze([activity]), [activity]);\n const focusFeedbackButton = usePropagateActivityFeedbackFocus();\n\n const useActions = useCallback(() => actionsState, [actionsState]);\n const useActivity = useCallback(() => activityState, [activityState]);\n const useFeedbackText = useCallback(() => feedbackTextState, [feedbackTextState]);\n const useFocusFeedbackButton = useCallback(() => focusFeedbackButton, [focusFeedbackButton]);\n const useHasSubmitted = useCallback(() => hasSubmittedState, [hasSubmittedState]);\n const useSelectedActions = useCallback(() => selectedActionState, [selectedActionState]);\n const useSubmit = useCallback(() => submit, [submit]);\n\n const context = useMemo<ActivityFeedbackContextType>(\n () => ({\n useActions,\n useActivity,\n useFeedbackText,\n useFocusFeedbackButton,\n useHasSubmitted,\n useSelectedAction: useSelectedActions,\n useSubmit\n }),\n [useActions, useActivity, useFeedbackText, useFocusFeedbackButton, useHasSubmitted, useSelectedActions, useSubmit]\n );\n\n return <ActivityFeedbackContext.Provider value={context}>{children}</ActivityFeedbackContext.Provider>;\n}\n\nexport default memo(wrapWith(ActivityFeedbackFocusPropagationScope)(ActivityFeedbackComposer));\nexport { activityFeedbackComposerPropsSchema, type ActivityFeedbackComposerProps };\n","import deepFreeze from 'deep-freeze-strict';\n\nimport { type BlankNode } from './BlankNode';\nimport getSafeOwnPropertyNames from './getSafeOwnPropertyNames';\nimport isBlankNode from './isBlankNode';\nimport isUnconnectedBlankNode from './isUnconnectedBlankNode';\nimport visitOnce from './visitOnce';\n\nfunction dereferenceBlankNodesInline(objects: object[]): void {\n const blankNodeIdMap = new Map<string, BlankNode>();\n\n const objectsToVisit1: any[] = [objects];\n const shouldVisit1 = visitOnce<object>();\n\n while (objectsToVisit1.length) {\n const object = objectsToVisit1.shift();\n\n if (!object) {\n continue;\n }\n\n const indices = getSafeOwnPropertyNames(object);\n\n for (const index of indices) {\n // eslint-disable-next-line security/detect-object-injection\n const value = object[index];\n\n if (isBlankNode(value) && !isUnconnectedBlankNode(value)) {\n blankNodeIdMap.set(value['@id'], value);\n }\n\n shouldVisit1(value) && objectsToVisit1.push(value);\n }\n }\n\n const objectsToVisit2: unknown[] = [objects];\n const shouldVisit2 = visitOnce<object>();\n\n while (objectsToVisit2.length) {\n const object = objectsToVisit2.shift();\n\n if (!object) {\n continue;\n }\n\n const indices = getSafeOwnPropertyNames(object);\n\n for (const index of indices) {\n // eslint-disable-next-line security/detect-object-injection\n const value = object[index];\n\n if (isBlankNode(value) && isUnconnectedBlankNode(value)) {\n const blankNode = blankNodeIdMap.get(value['@id']);\n\n if (blankNode) {\n // eslint-disable-next-line security/detect-object-injection\n object[index] = blankNode;\n }\n } else {\n shouldVisit2(value) && objectsToVisit2.push(value);\n }\n }\n }\n}\n\n/**\n * Dereferences all unconnected blank nodes to their corresponding blank node. This is done by replacing all unconnected blank nodes in a graph and purposefully introduce cyclic dependencies to help querying the graph.\n *\n * This function will always return a new instance of all objects in the graph.\n *\n * This function assumes the graph conforms to JSON-LD, notably:\n *\n * - For nodes that share the same blank node identifier, one of them should be connected and the other must be unconnected\n * - If none of them are connected node, these unconnected blank node will not be replaced\n *\n * @see https://json-ld.github.io/json-ld.org/spec/latest/json-ld/#data-model-overview\n * @param graph A list of nodes in the graph.\n * @returns A structured clone of graph with unconnected blank nodes replaced by their corresponding blank node.\n */\nexport default function dereferenceBlankNodes<T extends Record<any, any>>(graph: T[]): readonly T[] {\n const nextObjects = structuredClone(graph);\n\n dereferenceBlankNodesInline(nextObjects);\n\n return deepFreeze(nextObjects);\n}\n","const DANGEROUS_PROPERTY_NAMES = ['__proto__', 'constructor', 'prototype'];\n\n/**\n * Returns an allowlisted own-property names.\n *\n * If `null` or `undefined` is passed, an empty list will be returned.\n *\n * @param object An object (including primitives).\n * @returns An allowlisted own-property names.\n */\nexport default function getSafeOwnPropertyNames(object: unknown): string[] {\n return Object.getOwnPropertyNames(object).filter(name => !DANGEROUS_PROPERTY_NAMES.includes(name));\n}\n","import { type BlankNode } from './BlankNode';\n\n/**\n * A blank node is a node with `@id` starting with `\"_:\"`\n *\n * @see https://json-ld.github.io/json-ld.org/spec/latest/json-ld/#dfn-blank-nodes\n * @param node A node.\n * @returns `true`, if the node is a blank node, otherwise, `false`.\n */\nexport default function isBlankNode(node: unknown): node is BlankNode {\n // TODO: Do we restrict to plain object or just anything?\n if (node) {\n const id = node['@id'];\n\n return typeof id === 'string' && id.startsWith('_:');\n }\n\n return false;\n}\n","import { type BlankNode } from './BlankNode';\nimport isBlankNode from './isBlankNode';\n\n/**\n * An unconnected blank node is a blank node without any edge or properties.\n *\n * @see https://json-ld.github.io/json-ld.org/spec/latest/json-ld/#data-model\n * @param object A blank node.\n * @returns `true`, if the blank node is unconnected, otherwise, `false`.\n */\nexport default function isUnconnectedBlankNode<T extends BlankNode>(object: T): boolean {\n return isBlankNode(object) && Object.getOwnPropertyNames(object).every(name => name.startsWith('@'));\n}\n","export default function visitOnce<T>(): (value: T) => boolean {\n const visited = new Set<T>();\n\n return (value: T) => {\n if (visited.has(value)) {\n return false;\n }\n\n visited.add(value);\n\n return true;\n };\n}\n","import { type WebChatActivity } from 'botframework-webchat-core';\nimport { is, literal, object, optional, string, union, type InferOutput } from 'valibot';\n\nconst activityWithFeedbackLoopSchemaWithDisclaimer = object({\n channelData: object({\n feedbackLoop: object({\n disclaimer: optional(string()),\n type: literal('default')\n })\n })\n});\n\nconst activityWithFeedbackLoopSchemaWithoutDisclaimer = object({\n channelData: object({\n feedbackLoop: object({\n type: literal('default')\n })\n })\n});\n\nconst feedbackLoopSchema = union([\n activityWithFeedbackLoopSchemaWithDisclaimer,\n activityWithFeedbackLoopSchemaWithoutDisclaimer\n]);\n\ntype FeedbackActivity = WebChatActivity & InferOutput<typeof feedbackLoopSchema>;\n\n/**\n * @deprecated This helper function should only use for patching the service. After patching, should use `getDisclaimerFormReviewAction` instead.\n */\nexport function hasDisclaimer(\n activity: WebChatActivity\n): activity is WebChatActivity & InferOutput<typeof activityWithFeedbackLoopSchemaWithDisclaimer> {\n return is(activityWithFeedbackLoopSchemaWithDisclaimer, activity);\n}\n\n/**\n * @deprecated This helper function should only use for patching the service. After patching, should use `isActionRequireReview` instead.\n */\nexport default function hasFeedbackLoop(activity: WebChatActivity): activity is FeedbackActivity {\n return is(feedbackLoopSchema, activity);\n}\n","import { type WebChatActivity } from 'botframework-webchat-core';\n\nimport { hasDisclaimer } from './hasFeedbackLoop';\n\n/**\n * @deprecated This helper function should only use for patching the service. After patching, should use `getDisclaimerFromReviewAction` instead.\n */\nexport default function getDisclaimerFromFeedbackLoop(activity: WebChatActivity): string | undefined {\n return hasDisclaimer(activity) ? activity.channelData.feedbackLoop.disclaimer : undefined;\n}\n","import { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport { useStyles } from '@msinternal/botframework-webchat-styles/react';\nimport cx from 'classnames';\nimport React, { memo, useCallback, type MouseEventHandler } from 'react';\nimport { useRefFrom } from 'use-ref-from';\nimport { custom, object, optional, pipe, readonly, string, type InferInput } from 'valibot';\n\nimport ItemBody from './private/ItemBody';\nimport extractHostnameWithSubdomain from './private/extractHostnameWithSubdomain';\n\nimport styles from './LinkDefinitions.module.css';\n\nconst linkDefinitionItemPropsSchema = pipe(\n object({\n // Displayed beneath the main link of the citation if it exists\n badgeName: optional(string()),\n\n // Used as a tooltip and ARIA label for the item's displayed badgeName\n badgeTitle: optional(string()),\n\n // The text (usually a number) displayed to the left of the item (e.g. \"1\")\n identifier: optional(string()),\n\n onClick: optional(\n custom<(event: Pick<CustomEvent, 'defaultPrevented' | 'preventDefault' | 'type'>) => void>(\n value => typeof value === 'function'\n )\n ),\n\n // If the citation is an external link, this is its destination.\n sanitizedHref: optional(string()),\n\n // The main text of the citation. This will be formatted as if it were a link. If this is nullish and a URL exists, its host will be displayed instead.\n text: optional(string())\n }),\n readonly()\n);\n\ntype LinkDefinitionItemProps = InferInput<typeof linkDefinitionItemPropsSchema>;\n\n// eslint-disable-next-line prefer-arrow-callback\nconst LinkDefinitionItem = memo(function LinkDefinitionItem(props: LinkDefinitionItemProps) {\n const { badgeName, badgeTitle, identifier, onClick, sanitizedHref, text } = validateProps(\n linkDefinitionItemPropsSchema,\n props\n );\n\n const classNames = useStyles(styles);\n\n const onClickRef = useRefFrom(onClick);\n\n const handleClick = useCallback<MouseEventHandler<HTMLAnchorElement | HTMLButtonElement>>(\n event => {\n const { current } = onClickRef;\n\n if (current) {\n const customEvent = new CustomEvent('click');\n\n current(customEvent);\n\n customEvent.defaultPrevented && event.preventDefault();\n }\n },\n [onClickRef]\n );\n\n return sanitizedHref ? (\n // URL is sanitized.\n // eslint-disable-next-line react/forbid-elements\n <a\n className={cx(\n classNames['link-definitions__list-item-box'],\n classNames['link-definitions__list-item-box--as-link']\n )}\n href={sanitizedHref}\n onClick={handleClick}\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n <ItemBody\n badgeName={badgeName}\n badgeTitle={badgeTitle}\n identifier={identifier}\n isExternal={true}\n text={text || extractHostnameWithSubdomain(sanitizedHref)}\n />\n </a>\n ) : (\n <button\n className={cx(\n classNames['link-definitions__list-item-box'],\n classNames['link-definitions__list-item-box--as-button']\n )}\n onClick={handleClick}\n type=\"button\"\n >\n <ItemBody badgeName={badgeName} badgeTitle={badgeTitle} identifier={identifier} text={text} />\n </button>\n );\n});\n\nexport default LinkDefinitionItem;\nexport { linkDefinitionItemPropsSchema, type LinkDefinitionItemProps };\n","import { useStyles } from '@msinternal/botframework-webchat-styles/react';\nimport React, { memo } from 'react';\n\nimport Badge from './Badge';\nimport OpenInNewWindowIcon from './OpenInNewWindowIcon';\n\nimport styles from '../LinkDefinitions.module.css';\n\ntype Props = Readonly<{\n // The text (usually a number) displayed at the head of the citation\n identifier?: string;\n\n // The text displayed as the main link of the citation\n text: string;\n\n // If this is true, we show the \"external link\" icon after the link\n isExternal?: boolean;\n\n // The text displayed beneath the link as a description\n badgeName?: string;\n\n // The title of the badge, displayed as a tooltip on the item's description as well as the description's screen-reader content\n badgeTitle?: string;\n}>;\n\nconst ItemBody = memo(({ badgeName, badgeTitle, identifier, isExternal, text }: Props) => {\n const classNames = useStyles(styles);\n\n return (\n <div className={classNames['link-definitions__list-item-body']}>\n {identifier ? <Badge value={identifier} /> : null}\n <div className={classNames['link-definitions__list-item-body-main']}>\n <div className={classNames['link-definitions__list-item-main-text']}>\n <div className={classNames['link-definitions__list-item-text']} title={text}>\n {text}\n </div>\n {isExternal ? (\n <OpenInNewWindowIcon className={classNames['link-definitions__open-in-new-window-icon']} />\n ) : null}\n </div>\n {badgeName && (\n <div className={classNames['link-definitions__list-item-badge']} title={badgeTitle}>\n {badgeName}\n </div>\n )}\n </div>\n </div>\n );\n});\n\nItemBody.displayName = 'ItemBody';\n\nexport default ItemBody;\n","import { useStyles } from '@msinternal/botframework-webchat-styles/react';\nimport React, { memo } from 'react';\n\nimport styles from '../LinkDefinitions.module.css';\n\ntype Props = Readonly<{ value: string }>;\n\nconst Badge = memo(({ value }: Props) => {\n const classNames = useStyles(styles);\n\n return (\n <div className={classNames['link-definitions__badge']} title={value}>\n {value}\n </div>\n );\n});\n\nBadge.displayName = 'Badge';\n\nexport default Badge;\n","import \"/__w/1/s/BotFramework-WebChat/packages/component/src/LinkDefinition/LinkDefinitions.module_built.css\";\nconst classes = {\"link-definitions__list-item-box--as-button\":\"wFYu5rq_link-definitions__list-item-box--as-button\",\"link-definitions__header-accessory\":\"wFYu5rq_link-definitions__header-accessory\",\"link-definitions__header-section\":\"wFYu5rq_link-definitions__header-section\",\"link-definitions__list-item-body\":\"wFYu5rq_link-definitions__list-item-body\",\"link-definitions__header-section--left\":\"wFYu5rq_link-definitions__header-section--left\",\"link-definitions__header-chevron\":\"wFYu5rq_link-definitions__header-chevron\",\"link-definitions__header-text\":\"wFYu5rq_link-definitions__header-text\",\"link-definitions__list\":\"wFYu5rq_link-definitions__list\",\"link-definitions__badge\":\"wFYu5rq_link-definitions__badge\",\"link-definitions__message-sensitivity-label-icon\":\"wFYu5rq_link-definitions__message-sensitivity-label-icon\",\"link-definitions__message-sensitivity-label-text\":\"wFYu5rq_link-definitions__message-sensitivity-label-text\",\"link-definitions__list-item-box--as-link\":\"wFYu5rq_link-definitions__list-item-box--as-link\",\"link-definitions__list-item-body-main\":\"wFYu5rq_link-definitions__list-item-body-main\",\"link-definitions__list-item-main-text\":\"wFYu5rq_link-definitions__list-item-main-text\",\"link-definitions\":\"wFYu5rq_link-definitions\",\"link-definitions__list-item\":\"wFYu5rq_link-definitions__list-item\",\"link-definitions__open-in-new-window-icon\":\"wFYu5rq_link-definitions__open-in-new-window-icon\",\"link-definitions__list-item-badge\":\"wFYu5rq_link-definitions__list-item-badge\",\"link-definitions__list-item-text\":\"wFYu5rq_link-definitions__list-item-text\",\"link-definitions__message-sensitivity-label\":\"wFYu5rq_link-definitions__message-sensitivity-label\",\"link-definitions__list-item-box\":\"wFYu5rq_link-definitions__list-item-box\",\"link-definitions__header\":\"wFYu5rq_link-definitions__header\"}\nexport default classes\n\nconst _link_definitions__list_item_box__as_button0 = classes[\"link-definitions__list-item-box--as-button\"]\nexport { _link_definitions__list_item_box__as_button0 as \"link-definitions__list-item-box--as-button\" }\n\nconst _link_definitions__header_accessory0 = classes[\"link-definitions__header-accessory\"]\nexport { _link_definitions__header_accessory0 as \"link-definitions__header-accessory\" }\n\nconst _link_definitions__header_section0 = classes[\"link-definitions__header-section\"]\nexport { _link_definitions__header_section0 as \"link-definitions__header-section\" }\n\nconst _link_definitions__list_item_body0 = classes[\"link-definitions__list-item-body\"]\nexport { _link_definitions__list_item_body0 as \"link-definitions__list-item-body\" }\n\nconst _link_definitions__header_section__left0 = classes[\"link-definitions__header-section--left\"]\nexport { _link_definitions__header_section__left0 as \"link-definitions__header-section--left\" }\n\nconst _link_definitions__header_chevron0 = classes[\"link-definitions__header-chevron\"]\nexport { _link_definitions__header_chevron0 as \"link-definitions__header-chevron\" }\n\nconst _link_definitions__header_text0 = classes[\"link-definitions__header-text\"]\nexport { _link_definitions__header_text0 as \"link-definitions__header-text\" }\n\nconst _link_definitions__list0 = classes[\"link-definitions__list\"]\nexport { _link_definitions__list0 as \"link-definitions__list\" }\n\nconst _link_definitions__badge0 = classes[\"link-definitions__badge\"]\nexport { _link_definitions__badge0 as \"link-definitions__badge\" }\n\nconst _link_definitions__message_sensitivity_label_icon0 = classes[\"link-definitions__message-sensitivity-label-icon\"]\nexport { _link_definitions__message_sensitivity_label_icon0 as \"link-definitions__message-sensitivity-label-icon\" }\n\nconst _link_definitions__message_sensitivity_label_text0 = classes[\"link-definitions__message-sensitivity-label-text\"]\nexport { _link_definitions__message_sensitivity_label_text0 as \"link-definitions__message-sensitivity-label-text\" }\n\nconst _link_definitions__list_item_box__as_link0 = classes[\"link-definitions__list-item-box--as-link\"]\nexport { _link_definitions__list_item_box__as_link0 as \"link-definitions__list-item-box--as-link\" }\n\nconst _link_definitions__list_item_body_main0 = classes[\"link-definitions__list-item-body-main\"]\nexport { _link_definitions__list_item_body_main0 as \"link-definitions__list-item-body-main\" }\n\nconst _link_definitions__list_item_main_text0 = classes[\"link-definitions__list-item-main-text\"]\nexport { _link_definitions__list_item_main_text0 as \"link-definitions__list-item-main-text\" }\n\nconst _link_definitions0 = classes[\"link-definitions\"]\nexport { _link_definitions0 as \"link-definitions\" }\n\nconst _link_definitions__list_item0 = classes[\"link-definitions__list-item\"]\nexport { _link_definitions__list_item0 as \"link-definitions__list-item\" }\n\nconst _link_definitions__open_in_new_window_icon0 = classes[\"link-definitions__open-in-new-window-icon\"]\nexport { _link_definitions__open_in_new_window_icon0 as \"link-definitions__open-in-new-window-icon\" }\n\nconst _link_definitions__list_item_badge0 = classes[\"link-definitions__list-item-badge\"]\nexport { _link_definitions__list_item_badge0 as \"link-definitions__list-item-badge\" }\n\nconst _link_definitions__list_item_text0 = classes[\"link-definitions__list-item-text\"]\nexport { _link_definitions__list_item_text0 as \"link-definitions__list-item-text\" }\n\nconst _link_definitions__message_sensitivity_label0 = classes[\"link-definitions__message-sensitivity-label\"]\nexport { _link_definitions__message_sensitivity_label0 as \"link-definitions__message-sensitivity-label\" }\n\nconst _link_definitions__list_item_box0 = classes[\"link-definitions__list-item-box\"]\nexport { _link_definitions__list_item_box0 as \"link-definitions__list-item-box\" }\n\nconst _link_definitions__header0 = classes[\"link-definitions__header\"]\nexport { _link_definitions__header0 as \"link-definitions__header\" }\n","import { useStyles } from '@msinternal/botframework-webchat-styles/react';\nimport cx from 'classnames';\nimport React from 'react';\n\nimport styles from '../../Attachment/Text/TextContent.module.css';\n\ntype Props = Readonly<{ className?: string }>;\n\nconst OpenInNewWindowIcon = ({ className }: Props) => {\n const classNames = useStyles(styles);\n\n return (\n <svg\n className={cx(classNames['text-content__open-in-new-window-icon'], className)}\n viewBox=\"3 3 18 18\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M7.2501 4.50017H10.7495C11.1637 4.50017 11.4995 4.83596 11.4995 5.25017C11.4995 5.62986 11.2173 5.94366 10.8513 5.99332L10.7495 6.00017H7.24974C6.07079 5.99961 5.10349 6.90656 5.00786 8.06112L5.00028 8.22003L5.00312 16.7507C5.00343 17.9415 5.92885 18.9161 7.09966 18.9949L7.25371 19.0001L15.7518 18.9884C16.9415 18.9868 17.9145 18.062 17.9935 16.8923L17.9987 16.7384V13.2321C17.9987 12.8179 18.3345 12.4821 18.7487 12.4821C19.1284 12.4821 19.4422 12.7643 19.4918 13.1303L19.4987 13.2321V16.7384C19.4987 18.7407 17.9293 20.3769 15.9528 20.4829L15.7538 20.4884L7.25827 20.5001L7.05495 20.4949C5.14239 20.3954 3.60895 18.8627 3.50837 16.9502L3.50312 16.7511L3.50089 8.2527L3.50529 8.0502C3.60539 6.13749 5.13867 4.60449 7.05096 4.50527L7.2501 4.50017H10.7495H7.2501ZM13.7481 3.00146L20.3018 3.00197L20.4014 3.01575L20.5022 3.04393L20.559 3.06803C20.6122 3.09122 20.6634 3.12163 20.7111 3.15885L20.7804 3.22156L20.8641 3.32014L20.9183 3.41025L20.957 3.50057L20.9762 3.56476L20.9898 3.62862L20.9992 3.72282L20.9997 10.2554C20.9997 10.6696 20.6639 11.0054 20.2497 11.0054C19.87 11.0054 19.5562 10.7232 19.5065 10.3571L19.4997 10.2554L19.4989 5.56147L12.2797 12.7847C12.0134 13.051 11.5968 13.0753 11.3031 12.8575L11.219 12.7849C10.9527 12.5187 10.9284 12.1021 11.1462 11.8084L11.2188 11.7243L18.4369 4.50146H13.7481C13.3684 4.50146 13.0546 4.21931 13.005 3.85324L12.9981 3.75146C12.9981 3.37177 13.2803 3.05797 13.6464 3.00831L13.7481 3.00146Z\"\n fill=\"currentcolor\"\n />\n </svg>\n );\n};\n\nexport default OpenInNewWindowIcon;\n","import \"/__w/1/s/BotFramework-WebChat/packages/component/src/Attachment/Text/TextContent.module_built.css\";\nconst classes = {\"text-content--is-markdown\":\"wOVnR0W_text-content--is-markdown\",\"text-content__markdown\":\"wOVnR0W_text-content__markdown\",\"text-content\":\"wOVnR0W_text-content\",\"text-content__generated-badge\":\"wOVnR0W_text-content__generated-badge\",\"text-content__activity-actions\":\"wOVnR0W_text-content__activity-actions\",\"text-content__open-in-new-window-icon\":\"wOVnR0W_text-content__open-in-new-window-icon\"}\nexport default classes\n\nconst _text_content__is_markdown0 = classes[\"text-content--is-markdown\"]\nexport { _text_content__is_markdown0 as \"text-content--is-markdown\" }\n\nconst _text_content__markdown0 = classes[\"text-content__markdown\"]\nexport { _text_content__markdown0 as \"text-content__markdown\" }\n\nconst _text_content0 = classes[\"text-content\"]\nexport { _text_content0 as \"text-content\" }\n\nconst _text_content__generated_badge0 = classes[\"text-content__generated-badge\"]\nexport { _text_content__generated_badge0 as \"text-content__generated-badge\" }\n\nconst _text_content__activity_actions0 = classes[\"text-content__activity-actions\"]\nexport { _text_content__activity_actions0 as \"text-content__activity-actions\" }\n\nconst _text_content__open_in_new_window_icon0 = classes[\"text-content__open-in-new-window-icon\"]\nexport { _text_content__open_in_new_window_icon0 as \"text-content__open-in-new-window-icon\" }\n","export default function extractHostnameWithSubdomain(urlString: string): string {\n try {\n const { host, port, protocol } = new URL(urlString);\n\n if (protocol === 'http:' || protocol === 'https:') {\n if (!port) {\n return host.replace(/^www\\./iu, '');\n }\n\n return host;\n }\n } catch {\n // Intentionally left blank, will return `urlString`.\n }\n\n return urlString;\n}\n","import { useStyles } from '@msinternal/botframework-webchat-styles/react';\nimport { hooks } from 'botframework-webchat-api';\nimport cx from 'classnames';\nimport random from 'math-random';\nimport React, {\n Children,\n useCallback,\n useMemo,\n useRef,\n useState,\n type ComponentType,\n type ReactEventHandler,\n type ReactNode\n} from 'react';\n\nimport { ComponentIcon } from '../Icon';\n\nimport styles from './LinkDefinitions.module.css';\n\nconst { useLocalizer, useStyleOptions } = hooks;\nconst { count: childrenCount, map: childrenMap } = Children;\n\ntype Props<TAccessoryProps> = Readonly<{\n accessoryComponentType: ComponentType<TAccessoryProps>;\n accessoryProps: TAccessoryProps;\n children?: ReactNode | undefined;\n}>;\n\nconst REFERENCE_LIST_HEADER_IDS = {\n one: 'REFERENCE_LIST_HEADER_ONE',\n few: 'REFERENCE_LIST_HEADER_FEW',\n many: 'REFERENCE_LIST_HEADER_MANY',\n other: 'REFERENCE_LIST_HEADER_OTHER',\n two: 'REFERENCE_LIST_HEADER_TWO'\n};\n\nfunction uniqueId(count = Infinity) {\n return (\n random()\n // eslint-disable-next-line no-magic-numbers\n .toString(36)\n // eslint-disable-next-line no-magic-numbers\n .substring(2, 2 + count)\n );\n}\n\n// Following @types/react to use {} for props.\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nconst LinkDefinitions = <TAccessoryProps extends {}>({\n accessoryComponentType,\n accessoryProps,\n children\n}: Props<TAccessoryProps>) => {\n const [id] = useState(() => `webchat-link-definitions-${uniqueId()}`);\n const localizeWithPlural = useLocalizer({ plural: true });\n const summaryRef = useRef<HTMLElement>(null);\n const classNames = useStyles(styles);\n const [{ referenceListDefaultOpen }] = useStyleOptions();\n\n const headerText = localizeWithPlural(REFERENCE_LIST_HEADER_IDS, childrenCount(children));\n\n const defaultOpenString = useMemo(() => (referenceListDefaultOpen ? 'true' : 'false'), [referenceListDefaultOpen]);\n\n const handleToggle = useCallback<ReactEventHandler<HTMLDetailsElement>>(event => {\n const summary = summaryRef.current;\n const details = event.target;\n if (summary && details && details instanceof HTMLDetailsElement) {\n const isDetailsOpen = details.open.toString();\n summary.setAttribute('aria-expanded', isDetailsOpen);\n summary.setAttribute('aria-pressed', isDetailsOpen);\n }\n }, []);\n\n return (\n <details\n className={classNames['link-definitions']}\n // eslint-disable-next-line react/forbid-dom-props\n id={id}\n onToggle={handleToggle}\n open={referenceListDefaultOpen}\n >\n <summary\n aria-controls={id}\n aria-expanded={defaultOpenString}\n aria-pressed={defaultOpenString}\n className={classNames['link-definitions__header']}\n ref={summaryRef}\n role=\"button\"\n >\n <div\n className={cx(\n classNames['link-definitions__header-section'],\n classNames['link-definitions__header-section--left']\n )}\n >\n <div className={classNames['link-definitions__header-text']}>{headerText}</div>\n <ComponentIcon appearance=\"text\" className={classNames['link-definitions__header-chevron']} icon=\"chevron\" />\n </div>\n <div\n className={cx(\n classNames['link-definitions__header-section'],\n classNames['link-definitions__header-section--right']\n )}\n >\n {accessoryComponentType && (\n <div className={classNames['link-definitions__header-accessory']}>\n {React.createElement(accessoryComponentType, accessoryProps)}\n </div>\n )}\n </div>\n </summary>\n <div className={classNames['link-definitions__list']} role=\"list\">\n {childrenMap(children, child => (\n <div className={classNames['link-definitions__list-item']} role=\"listitem\">\n {child}\n </div>\n ))}\n </div>\n </details>\n );\n};\n\nLinkDefinitions.displayName = 'LinkDefinitions';\n\n// TODO: [P1] Add memo().\nexport default LinkDefinitions;\n","import { type OrgSchemaCreativeWork, type OrgSchemaSoftwareSourceCode } from 'botframework-webchat-core/org-schema.js';\n\n/**\n * Finds the first `isBasedOf` element that is of type `SoftwareSourceCode`.\n *\n * @param messageThing The `CreativeWork` to find.\n * @returns A `SoftwareSourceCode` if found, otherwise, `undefined`.\n */\nexport default function getFirstBaseOfSoftwareSourceCode(\n messageThing: OrgSchemaCreativeWork | undefined\n): OrgSchemaSoftwareSourceCode | undefined {\n return (messageThing?.isBasedOn ?? []).find(({ '@type': jsonLinkedDataTypes }) =>\n jsonLinkedDataTypes.includes('SoftwareSourceCode')\n );\n}\n","import { useCallback } from 'react';\nimport { useTransformHTMLContent } from '../../providers/HTMLContentTransformCOR';\n\ntype LinkInfo = {\n openInNewTab: boolean;\n originalHref: string;\n sanitizedHref: string | undefined;\n};\n\nexport default function useSanitizeHrefCallback(): (href: string) => LinkInfo {\n // Although clumsy, we are using HTML content transformer for sanitizing links.\n // This make sure we have a single centralized facility for sanitization.\n const transformHTMLContent = useTransformHTMLContent();\n\n return useCallback(\n href => {\n const anchorElement = document.createElement('a');\n\n anchorElement.setAttribute('href', href || '');\n\n const fragment = document.createDocumentFragment();\n\n fragment.append(anchorElement);\n\n const transformedFragment = transformHTMLContent(fragment);\n\n const transformedAnchorElement = transformedFragment.querySelector('a');\n\n return {\n openInNewTab: !!transformedAnchorElement?.getAttribute('target'),\n originalHref: href,\n sanitizedHref: transformedAnchorElement?.getAttribute('href') || undefined\n };\n },\n [transformHTMLContent]\n );\n}\n","import { cx } from '@emotion/css';\nimport { hooks } from 'botframework-webchat-api';\nimport type { Definition } from 'mdast';\nimport { fromMarkdown } from 'mdast-util-from-markdown';\nimport { useLayoutEffect, useMemo, useRef, useState } from 'react';\nimport { useStyles } from '@msinternal/botframework-webchat-styles/react';\nimport { useRefFrom } from 'use-ref-from';\n\nimport { useTransformHTMLContent } from '../providers/HTMLContentTransformCOR/index';\nimport parseDocumentFragmentFromString from '../Utils/parseDocumentFragmentFromString';\nimport useWebChatUIContext from './internal/useWebChatUIContext';\n\nimport styles from './RenderMarkdown.module.css';\n\nconst { useLocalizer, useStyleOptions } = hooks;\n\ntype MarkdownLinkDefinition = Readonly<{\n identifier: string;\n label?: string;\n title?: string;\n url: string;\n}>;\n\ntype StreamingNextOptions = Readonly<{\n container: HTMLElement;\n containerClassName?: string | undefined;\n transformFragment?: ((fragment: DocumentFragment) => DocumentFragment) | undefined;\n}>;\n\ntype StreamingNextResult = Readonly<{\n definitions: readonly MarkdownLinkDefinition[];\n}>;\n\ntype StreamingRenderer = Readonly<{\n finalize: (options: StreamingNextOptions) => StreamingNextResult;\n next: (chunk: string, options: StreamingNextOptions) => void;\n reset: () => void;\n}>;\n\nconst EMPTY_DEFINITIONS: readonly MarkdownLinkDefinition[] = Object.freeze([]);\n\nexport default function useStreamingMarkdownWithDefinitions(\n containerRef: Readonly<{ current: HTMLDivElement | null }>,\n markdown: string,\n finalize = false\n): { readonly definitions: readonly MarkdownLinkDefinition[] } {\n const { renderMarkdown } = useWebChatUIContext();\n const [styleOptions] = useStyleOptions();\n const localize = useLocalizer();\n const transformHTMLContent = useTransformHTMLContent();\n const styleOptionsRef = useRefFrom(styleOptions);\n\n const classNames = useStyles(styles);\n\n const externalLinkAlt = localize('MARKDOWN_EXTERNAL_LINK_ALT');\n\n const containerClassName = useMemo(\n () =>\n cx(classNames['render-markdown'], {\n [classNames['render-markdown--message-activity']]: true\n }),\n [classNames]\n );\n\n const hasStreamingSupport = !!renderMarkdown?.createStreamingRenderer;\n\n const previousMarkdownRef = useRef('');\n\n const streamingRenderer = useMemo<StreamingRenderer | undefined>(() => {\n previousMarkdownRef.current = '';\n\n if (renderMarkdown?.createStreamingRenderer) {\n return renderMarkdown.createStreamingRenderer(styleOptionsRef.current, { externalLinkAlt });\n }\n\n return undefined;\n }, [externalLinkAlt, renderMarkdown, styleOptionsRef]);\n\n const [definitions, setDefinitions] = useState<readonly MarkdownLinkDefinition[]>(EMPTY_DEFINITIONS);\n\n // Reset definitions and markdown ref when the streaming renderer changes.\n // This must run before the main streaming effect so that a fresh renderer\n // starts clean, but the streaming effect can still set definitions on the same commit.\n useLayoutEffect(() => {\n previousMarkdownRef.current = '';\n\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setDefinitions(EMPTY_DEFINITIONS);\n }, [streamingRenderer]);\n\n useLayoutEffect(() => {\n if (!streamingRenderer) {\n return;\n }\n\n const container = containerRef.current;\n\n if (!container) {\n return;\n }\n\n if (!markdown) {\n streamingRenderer.reset();\n previousMarkdownRef.current = '';\n container.textContent = '';\n\n return;\n }\n\n const prev = previousMarkdownRef.current;\n const isAppendOnly = !!prev && markdown.startsWith(prev);\n\n if (!isAppendOnly) {\n streamingRenderer.reset();\n }\n\n const chunk = isAppendOnly ? markdown.slice(prev.length) : markdown;\n const options: StreamingNextOptions = {\n container,\n containerClassName,\n transformFragment: transformHTMLContent\n };\n\n previousMarkdownRef.current = markdown;\n\n if (finalize) {\n if (chunk) {\n streamingRenderer.next(chunk, options);\n }\n\n const { definitions } = streamingRenderer.finalize(options);\n\n setDefinitions(definitions);\n } else {\n streamingRenderer.next(chunk, options);\n }\n }, [containerClassName, containerRef, finalize, markdown, streamingRenderer, transformHTMLContent]);\n\n const fallbackHTML = useMemo<string | undefined>(() => {\n if (hasStreamingSupport || !renderMarkdown || !markdown) {\n return undefined;\n }\n\n return renderMarkdown(markdown, styleOptionsRef.current, { externalLinkAlt });\n }, [externalLinkAlt, hasStreamingSupport, markdown, renderMarkdown, styleOptionsRef]);\n\n const fallbackDefinitions = useMemo(\n () =>\n hasStreamingSupport\n ? EMPTY_DEFINITIONS\n : fromMarkdown(markdown).children.filter((node): node is Definition => node.type === 'definition'),\n [hasStreamingSupport, markdown]\n );\n\n useLayoutEffect(() => {\n if (streamingRenderer || fallbackHTML === undefined) {\n return;\n }\n\n const container = containerRef.current;\n\n if (!container) {\n return;\n }\n\n const documentFragment = transformHTMLContent(parseDocumentFragmentFromString(fallbackHTML));\n const wrapper = document.createElement('div');\n\n wrapper.className = containerClassName || '';\n wrapper.append(...documentFragment.childNodes);\n\n container.textContent = '';\n container.appendChild(wrapper);\n }, [containerClassName, containerRef, fallbackHTML, streamingRenderer, transformHTMLContent]);\n\n useLayoutEffect(() => {\n if (streamingRenderer || fallbackHTML !== undefined) {\n return;\n }\n\n const container = containerRef.current;\n\n if (!container) {\n return;\n }\n\n container.textContent = '';\n }, [containerRef, fallbackHTML, streamingRenderer]);\n\n return Object.freeze({ definitions: definitions ?? fallbackDefinitions });\n}\n\nexport { type MarkdownLinkDefinition };\n","import { useContext as useReactContext } from 'react';\n\nimport Context from './Context';\n\nimport { type ContextOf } from '../../../types/ContextOf';\n\nexport default function useContext(): ContextOf<typeof Context> {\n return useReactContext(Context);\n}\n","import { createContext, type ReactNode } from 'react';\n\ntype DialogInit = {\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n className?: string;\n};\n\ntype RenderFunction = () => ReactNode;\n\ntype ContextType = Readonly<{\n close(): void;\n showModal(render: RenderFunction, init?: DialogInit): void;\n}>;\n\ntype ContextAsGetter<T extends Record<string, unknown>> =\n T extends Record<infer K, infer V> ? Record<K, { get(): V }> : never;\n\nconst defaultContextValue: ContextAsGetter<ContextType> = {\n close: {\n get() {\n throw new Error('close cannot be used outside of <ModalDialogComposer>.');\n }\n },\n showModal: {\n get() {\n throw new Error('showModal cannot be used outside of <ModalDialogComposer>.');\n }\n }\n};\n\nconst Context = createContext<ContextType>(Object.create({}, defaultContextValue));\n\nContext.displayName = 'ModalDialogComposer';\n\nexport default Context;\n","import useContext from './private/useContext';\n\nexport default function useShowModal(): ReturnType<typeof useContext>['showModal'] {\n return useContext().showModal;\n}\n","import { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport { useStyles } from '@msinternal/botframework-webchat-styles/react';\nimport { hooks } from 'botframework-webchat-api';\nimport cx from 'classnames';\nimport React, { memo, useCallback, useEffect, useRef, useState } from 'react';\nimport { instance, nullable, object, optional, pipe, readonly, string, type InferInput } from 'valibot';\n\nimport { useQueueStaticElement } from '../../../providers/LiveRegionTwin';\nimport refObject from '../../../types/internal/refObject';\nimport ActivityButton from './ActivityButton';\n\nimport styles from './ActivityCopyButton.module.css';\n\nconst { useLocalizer, useUIState } = hooks;\n\nconst activityCopyButtonPropsSchema = pipe(\n object({\n className: optional(string()),\n targetRef: refObject(nullable(instance(HTMLElement)))\n }),\n readonly()\n);\n\ntype ActivityCopyButtonProps = InferInput<typeof activityCopyButtonPropsSchema>;\n\nconst ActivityCopyButton = (props: ActivityCopyButtonProps) => {\n const { className, targetRef } = validateProps(activityCopyButtonPropsSchema, props);\n\n const classNames = useStyles(styles);\n const [permissionGranted, setPermissionGranted] = useState(false);\n const [uiState] = useUIState();\n const buttonRef = useRef<HTMLButtonElement>(null);\n const localize = useLocalizer();\n const queueStaticElement = useQueueStaticElement();\n\n const copiedText = localize('COPY_BUTTON_COPIED_TEXT');\n const copyText = localize('COPY_BUTTON_TEXT');\n const disabled = !permissionGranted || uiState === 'disabled';\n\n useEffect(() => {\n const { current } = buttonRef;\n\n if (current) {\n const handleAnimationEnd = () =>\n current.classList.remove(...classNames['activity-copy-button--copied'].split(/\\s+/gu));\n\n current.addEventListener('animationend', handleAnimationEnd);\n\n return () => current.removeEventListener('animationend', handleAnimationEnd);\n }\n }, [buttonRef, classNames]);\n\n const handleClick = useCallback(() => {\n const htmlText = targetRef.current?.outerHTML;\n const plainText = targetRef.current?.textContent;\n\n navigator.clipboard\n ?.write([\n new ClipboardItem({\n ...(htmlText ? { 'text/html': new Blob([htmlText], { type: 'text/html' }) } : {}),\n ...(plainText ? { 'text/plain': new Blob([plainText], { type: 'text/plain' }) } : {})\n })\n ])\n .catch(error => console.error(`botframework-webchat-fluent-theme: Failed to copy to clipboard.`, error));\n\n buttonRef.current?.classList.remove(...classNames['activity-copy-button--copied'].split(/\\s+/gu));\n\n // Reading `offsetWidth` will trigger a reflow and this is critical for resetting the animation.\n // https://css-tricks.com/restart-css-animation/#aa-update-another-javascript-method-to-restart-a-css-animation\n buttonRef.current?.offsetWidth;\n\n buttonRef.current?.classList.add(...classNames['activity-copy-button--copied'].split(/\\s+/gu));\n\n queueStaticElement(<div className={classNames['activity-copy-button__copy-announcement']}>{copiedText}</div>);\n }, [classNames, copiedText, queueStaticElement, targetRef]);\n\n useEffect(() => {\n let unmounted = false;\n\n (async function () {\n if ((await navigator.permissions.query({ name: 'clipboard-write' as any })).state === 'granted') {\n unmounted || setPermissionGranted(true);\n }\n })();\n\n return () => {\n unmounted = true;\n };\n }, [setPermissionGranted]);\n\n return (\n <ActivityButton\n className={cx(classNames['activity-copy-button'], className)}\n data-testid=\"copy button\"\n disabled={disabled}\n icon=\"copy\"\n onClick={handleClick}\n ref={buttonRef}\n text={copyText}\n >\n <span className={classNames['activity-copy-button__copied-text']}>{copiedText}</span>\n </ActivityButton>\n );\n};\n\nActivityCopyButton.displayName = 'ActivityCopyButton';\n\nexport default memo(ActivityCopyButton);\nexport { activityCopyButtonPropsSchema, type ActivityCopyButtonProps };\n","import {\n any,\n check,\n is,\n object,\n pipe,\n readonly,\n type BaseIssue,\n type BaseSchema,\n type ErrorMessage,\n type InferOutput,\n type ObjectIssue\n} from 'valibot';\n\nfunction refObject<TInput extends BaseSchema<unknown, unknown, BaseIssue<unknown>>>(\n baseSchema: TInput\n): BaseSchema<unknown, { get current(): InferOutput<TInput> }, BaseIssue<undefined>>;\n\nfunction refObject<\n TInput extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n const TMessage extends ErrorMessage<ObjectIssue> | undefined\n>(\n baseSchema: TInput,\n message: TMessage\n): BaseSchema<unknown, { get current(): InferOutput<TInput> }, BaseIssue<TMessage>>;\n\nfunction refObject<\n TInput extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n const TMessage extends ErrorMessage<ObjectIssue> | undefined\n>(\n baseSchema: TInput,\n message?: TMessage\n): BaseSchema<unknown, { get current(): InferOutput<TInput> }, BaseIssue<TMessage>> {\n return pipe(\n any(),\n check(value => is(pipe(object({ current: baseSchema }, message), readonly()), value))\n );\n}\n\nexport default refObject;\n","import \"/__w/1/s/BotFramework-WebChat/packages/component/src/Attachment/Text/private/ActivityCopyButton.module_built.css\";\nconst classes = {\"activity-copy-button__copy-announcement\":\"w4rKArW_activity-copy-button__copy-announcement\",\"activity-copy-button\":\"w4rKArW_activity-copy-button\",\"activity-copy-button--copied\":\"w4rKArW_activity-copy-button--copied\",\"activity-button__icon\":\"w4rKArW_activity-button__icon\",\"activity-button__text\":\"w4rKArW_activity-button__text\",\"activity-copy-button__copied-text\":\"w4rKArW_activity-copy-button__copied-text\"}\nexport default classes\n\nconst _activity_copy_button__copy_announcement0 = classes[\"activity-copy-button__copy-announcement\"]\nexport { _activity_copy_button__copy_announcement0 as \"activity-copy-button__copy-announcement\" }\n\nconst _activity_copy_button0 = classes[\"activity-copy-button\"]\nexport { _activity_copy_button0 as \"activity-copy-button\" }\n\nconst _activity_copy_button__copied0 = classes[\"activity-copy-button--copied\"]\nexport { _activity_copy_button__copied0 as \"activity-copy-button--copied\" }\n\nconst _activity_button__icon0 = classes[\"activity-button__icon\"]\nexport { _activity_button__icon0 as \"activity-button__icon\" }\n\nconst _activity_button__text0 = classes[\"activity-button__text\"]\nexport { _activity_button__text0 as \"activity-button__text\" }\n\nconst _activity_copy_button__copied_text0 = classes[\"activity-copy-button__copied-text\"]\nexport { _activity_copy_button__copied_text0 as \"activity-copy-button__copied-text\" }\n","import { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport { useStyles } from '@msinternal/botframework-webchat-styles/react';\nimport { hooks } from 'botframework-webchat-api';\nimport React, { memo, useCallback } from 'react';\nimport { boolean, object, optional, pipe, readonly, string, type InferInput } from 'valibot';\n\nimport useShowModal from '../../../providers/ModalDialog/useShowModal';\nimport LocalizedString from '../../../Utils/LocalizedString';\nimport ActivityButton from './ActivityButton';\nimport CodeContent from './CodeContent';\n\nimport styles from './ViewCodeDialog.module.css';\n\nconst { useLocalizer } = hooks;\n\nconst activityViewCodeButtonPropsSchema = pipe(\n object({\n className: optional(string()),\n code: string(),\n language: optional(string()),\n isAIGenerated: boolean(),\n title: optional(string())\n }),\n readonly()\n);\n\ntype ActivityViewCodeButtonProps = InferInput<typeof activityViewCodeButtonPropsSchema>;\n\nconst ActivityViewCodeButton = (props: ActivityViewCodeButtonProps) => {\n const { className, code, language, title, isAIGenerated } = validateProps(activityViewCodeButtonPropsSchema, props);\n const classNames = useStyles(styles);\n\n const showModal = useShowModal();\n const localize = useLocalizer();\n\n const showCodeModal = useCallback(() => {\n showModal(\n () => (\n <CodeContent code={code} language={language} title={title}>\n {isAIGenerated && (\n <div className={classNames['view-code-dialog__footer']}>\n <LocalizedString linkClassName={'view-code-dialog__link'} stringIds=\"ACTIVITY_CODE_CAUTION\" />\n </div>\n )}\n </CodeContent>\n ),\n {\n className: classNames['view-code-dialog'],\n 'aria-label': localize('ACTIVITY_CODE_ALT', title ?? '')\n }\n );\n }, [code, isAIGenerated, language, localize, showModal, title, classNames]);\n\n return (\n <ActivityButton\n className={className}\n data-testid=\"view code button\"\n icon=\"view-code\"\n onClick={showCodeModal}\n text={localize('VIEW_CODE_BUTTON_TEXT')}\n />\n );\n};\n\nexport default memo(ActivityViewCodeButton);\nexport { activityViewCodeButtonPropsSchema, type ActivityViewCodeButtonProps };\n","/* eslint react/no-danger: \"off\" */\n\nimport { hooks } from 'botframework-webchat-api';\nimport { onErrorResumeNext } from 'botframework-webchat-core';\nimport MarkdownIt from 'markdown-it';\nimport React, { memo, useMemo } from 'react';\nimport betterLinks, { type BetterLinkEnv, type LinkOptions } from './betterLinks';\n\nconst allowedSchemes = ['data', 'http', 'https', 'ftp', 'mailto', 'sip', 'tel'];\n\nconst linkDefinitions = [];\n\nconst externalLinkAlt = '';\n\nconst defaultDecorateLink = (href: string, textContent: string, linkOptions?: LinkOptions): LinkOptions | undefined => {\n const decoration: LinkOptions = {\n rel: 'noopener noreferrer',\n target: '_blank',\n wrapZeroWidthSpace: true,\n ...linkOptions\n };\n\n const ariaLabelSegments: string[] = [textContent];\n const classes: Set<string> = new Set();\n const linkDefinition = linkDefinitions.find(({ url }) => url === href);\n const protocol = onErrorResumeNext(() => new URL(href).protocol);\n\n if (linkDefinition) {\n ariaLabelSegments.push(\n linkDefinition.title || onErrorResumeNext(() => new URL(linkDefinition.url).host) || linkDefinition.url\n );\n\n // linkDefinition.identifier is uppercase, while linkDefinition.label is as-is.\n linkDefinition.label === textContent && classes.add('render-markdown__pure-identifier');\n }\n\n // For links that would be sanitized out, let's turn them into a button so we could handle them later.\n if (!allowedSchemes.map(scheme => `${scheme}:`).includes(protocol)) {\n decoration.asButton ??= true;\n\n classes.add('render-markdown__citation');\n } else if (protocol === 'http:' || protocol === 'https:') {\n decoration.iconClassName = [decoration.iconClassName, 'render-markdown__external-link-icon']\n .filter((className: string | undefined) => className)\n .join(' ');\n\n ariaLabelSegments.push(externalLinkAlt);\n }\n\n // The first segment is textContent. Putting textContent is aria-label is useless.\n if (ariaLabelSegments.length > 1) {\n // If \"aria-label\" is already applied, do not overwrite it.\n decoration.ariaLabel ??= (value: string) => value || ariaLabelSegments.join(' ');\n }\n\n if (typeof linkOptions?.className === 'string') {\n classes.add(linkOptions.className);\n }\n\n // Resolve className\n const classNamesString = Array.from(classes).join(' ');\n if (linkOptions?.className && linkOptions?.className instanceof Function) {\n decoration.className = linkOptions.className(classNamesString);\n } else {\n decoration.className = classNamesString;\n }\n\n // By default, Markdown-It will set \"title\" to the link title in link definition.\n\n // However, \"title\" may be narrated by screen reader:\n // - Edge\n // - <a> will narrate \"aria-label\" but not \"title\"\n // - <button> will narrate both \"aria-label\" and \"title\"\n // - NVDA\n // - <a> will narrate both \"aria-label\" and \"title\"\n // - <button> will narrate both \"aria-label\" and \"title\"\n\n // Title makes it very difficult to control narrations by the screen reader. Thus, we are disabling it in favor of \"aria-label\".\n // This will not affect our accessibility compliance but UX. We could use a non-native tooltip or other forms of visual hint.\n\n decoration.title ??= false;\n\n return decoration;\n};\n\nconst { useLocalizer } = hooks;\n\ntype Plural = {\n zero?: string;\n one?: string;\n two?: string;\n few?: string;\n many?: string;\n other: string;\n};\n\nconst markdownIt = new MarkdownIt().use(betterLinks);\n\ntype PluralProps = Readonly<{\n stringIds: Plural;\n values: readonly [number, ...(number | string)[]] | undefined;\n}>;\n\ntype SingularProps = Readonly<{\n stringIds: string;\n values?: readonly (number | string)[] | undefined;\n}>;\n\ntype Props = Readonly<{\n className?: string | undefined;\n linkClassName?: string | undefined;\n onDecorateLink?: ((href: string, textContent: string) => LinkOptions | undefined) | undefined;\n}> &\n (SingularProps | PluralProps);\n\nfunction isPlural(props: Props): props is PluralProps {\n return typeof props.stringIds !== 'string';\n}\n\nconst LocalizedString = (props: Props) => {\n const { className, linkClassName, onDecorateLink = defaultDecorateLink, stringIds, values } = props;\n const localize = useLocalizer(isPlural(props) && { plural: true });\n const env = useMemo<BetterLinkEnv>(\n () => ({\n linkOptions: {\n className: linkClassName\n },\n decorateLink: onDecorateLink\n }),\n [linkClassName, onDecorateLink]\n );\n\n const html = useMemo(\n () => ({\n __html: markdownIt.renderer.render(markdownIt.parseInline(localize(stringIds, ...(values ?? [])), env), env)\n }),\n [env, localize, stringIds, values]\n );\n\n return <span className={className} dangerouslySetInnerHTML={html} />;\n};\n\nexport default memo(LocalizedString);\n","/* eslint-disable security/detect-object-injection */\nimport MarkdownIt from 'markdown-it';\n\nfunction iterator(md, ruleName, tokenType, iterator) {\n function scan(state) {\n const { env = {} } = state;\n for (let blkIdx = state.tokens.length - 1; blkIdx >= 0; blkIdx--) {\n if (state.tokens[blkIdx].type !== 'inline') {\n continue;\n }\n const inlineTokens = state.tokens[blkIdx].children;\n for (let i = inlineTokens.length - 1; i >= 0; i--) {\n if (inlineTokens[i].type !== tokenType) {\n continue;\n }\n iterator(inlineTokens, i, env);\n }\n }\n }\n md.core.ruler.push(ruleName, scan);\n}\n\n// Put a transparent pixel instead of the \"open in new window\" icon, so developers can easily modify the icon in CSS.\nconst TRANSPARENT_GIF = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';\n\ntype AttributeSetter = false | string | ((value?: string) => string);\n\nexport type LinkOptions = {\n /** Value of \"aria-label\" attribute of the link. If set to `false`, remove existing attribute. */\n ariaLabel?: AttributeSetter;\n\n /** Turns this link into a <button> with \"value\" attribute instead of \"href\". */\n asButton?: boolean;\n\n /** Value of \"class\" attribute of the link. If set to `false`, remove existing attribute. */\n className?: AttributeSetter;\n\n /** Alternate text of the image icon appended to the link. */\n iconAlt?: string;\n\n /** Class name of the image icon appended to the link. */\n iconClassName?: string;\n\n /** Value of \"rel\" attribute of the link. If set to `false`, remove existing attribute. */\n rel?: AttributeSetter;\n\n /** Value of \"target\" attribute of the link. If set to `false`, remove existing attribute. */\n target?: AttributeSetter;\n\n /** Value of \"title\" attribute of the link. If set to `false`, remove existing attribute. */\n title?: AttributeSetter;\n\n /** Wraps the link with zero-width space. */\n wrapZeroWidthSpace?: boolean;\n};\n\nexport type BetterLinkEnv = {\n decorateLink?: (href: string, textContent: string, linkOptions: LinkOptions) => LinkOptions | undefined;\n linkOptions?: LinkOptions;\n};\n\n// This is used for parsing Markdown for external links.\nconst internalMarkdownIt = new MarkdownIt();\n\nconst ZERO_WIDTH_SPACE_TOKEN = {\n content: '\\u200b',\n type: 'text'\n};\n\nfunction setTokenAttribute(attrs: Array<[string, string]>, name: string, value?: AttributeSetter) {\n const index = attrs.findIndex(entry => entry[0] === name);\n\n if (value === false) {\n ~index && attrs.splice(index, 1);\n } else if (typeof value === 'string') {\n if (~index) {\n attrs[+index][1] = value;\n } else {\n attrs.push([name, value]);\n }\n } else if (typeof value === 'function') {\n if (~index) {\n attrs[+index][1] = value(attrs[+index][1]);\n } else {\n attrs.push([name, value()]);\n }\n }\n}\n\nconst betterLinks = (markdown: typeof MarkdownIt): typeof MarkdownIt =>\n markdown.use(iterator, 'url_new_win', 'link_open', (tokens, index, env) => {\n const { decorateLink, linkOptions }: BetterLinkEnv = env;\n\n const indexOfLinkCloseToken = tokens.indexOf(tokens.slice(index + 1).find(({ type }) => type === 'link_close'));\n // eslint-disable-next-line no-magic-numbers\n const updatedTokens = tokens.splice(index, ~indexOfLinkCloseToken ? indexOfLinkCloseToken - index + 1 : 2);\n\n try {\n const [linkOpenToken] = updatedTokens;\n const linkCloseToken = updatedTokens[updatedTokens.length - 1];\n\n const [, href] = linkOpenToken.attrs.find(([name]) => name === 'href');\n const nodesInLink = updatedTokens.slice(1, updatedTokens.length - 1);\n\n const textContent = nodesInLink\n .filter(({ type }) => type === 'text')\n .map(({ content }) => content)\n .join(' ');\n\n const decoration = decorateLink?.(href, textContent, linkOptions);\n\n if (!decoration) {\n return;\n }\n\n const { ariaLabel, asButton, className, iconAlt, iconClassName, rel, target, title, wrapZeroWidthSpace } =\n decoration;\n\n setTokenAttribute(linkOpenToken.attrs, 'aria-label', ariaLabel);\n setTokenAttribute(linkOpenToken.attrs, 'class', className);\n setTokenAttribute(linkOpenToken.attrs, 'title', title);\n\n if (iconClassName) {\n const iconTokens = internalMarkdownIt.parseInline(``)[0].children;\n\n setTokenAttribute(iconTokens[0].attrs, 'class', iconClassName);\n setTokenAttribute(iconTokens[0].attrs, 'title', iconAlt);\n\n // Add an icon before </a>.\n // eslint-disable-next-line no-magic-numbers\n updatedTokens.splice(-1, 0, ...iconTokens);\n }\n\n if (asButton) {\n setTokenAttribute(linkOpenToken.attrs, 'href', false);\n\n linkOpenToken.tag = 'button';\n\n setTokenAttribute(linkOpenToken.attrs, 'type', 'button');\n setTokenAttribute(linkOpenToken.attrs, 'value', href);\n\n linkCloseToken.tag = 'button';\n } else {\n setTokenAttribute(linkOpenToken.attrs, 'rel', rel);\n setTokenAttribute(linkOpenToken.attrs, 'target', target);\n }\n\n if (wrapZeroWidthSpace) {\n updatedTokens.splice(0, 0, ZERO_WIDTH_SPACE_TOKEN);\n updatedTokens.splice(Infinity, 0, ZERO_WIDTH_SPACE_TOKEN);\n }\n } finally {\n tokens.splice(index, 0, ...updatedTokens);\n }\n });\n\nexport default betterLinks;\n","import { reactNode, validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport { useStyles } from '@msinternal/botframework-webchat-styles/react';\nimport cx from 'classnames';\nimport React, { Fragment, memo } from 'react';\nimport { object, optional, pipe, readonly, string, type InferInput } from 'valibot';\n\nimport useCodeBlockTag from '../../../providers/CustomElements/useCodeBlockTagName';\n\nimport styles from './ViewCodeDialog.module.css';\n\nconst codeContentPropsSchema = pipe(\n object({\n children: optional(reactNode()),\n className: optional(string()),\n code: string(),\n language: string(),\n title: string()\n }),\n readonly()\n);\n\ntype CodeContentProps = InferInput<typeof codeContentPropsSchema>;\n\nfunction CodeContent(props: CodeContentProps) {\n const { children, className, code, language, title } = validateProps(codeContentPropsSchema, props);\n\n const [, CodeBlock] = useCodeBlockTag();\n const classNames = useStyles(styles);\n\n return (\n <Fragment>\n <div className={classNames['view-code-dialog__header']}>\n <h2 className={classNames['view-code-dialog__title']}>{title}</h2>\n </div>\n <CodeBlock className={cx(classNames['view-code-dialog__body'], className)} language={language}>\n <code>{code}</code>\n </CodeBlock>\n {children}\n </Fragment>\n );\n}\n\nexport default memo(CodeContent);\nexport { codeContentPropsSchema, type CodeContentProps };\n","import \"/__w/1/s/BotFramework-WebChat/packages/component/src/Attachment/Text/private/ViewCodeDialog.module_built.css\";\nconst classes = {\"view-code-dialog__header\":\"wyq2fIq_view-code-dialog__header\",\"view-code-dialog\":\"wyq2fIq_view-code-dialog\",\"view-code-dialog__title\":\"wyq2fIq_view-code-dialog__title\",\"view-code-dialog__body\":\"wyq2fIq_view-code-dialog__body\",\"view-code-dialog__footer\":\"wyq2fIq_view-code-dialog__footer\"}\nexport default classes\n\nconst _view_code_dialog__header0 = classes[\"view-code-dialog__header\"]\nexport { _view_code_dialog__header0 as \"view-code-dialog__header\" }\n\nconst _view_code_dialog0 = classes[\"view-code-dialog\"]\nexport { _view_code_dialog0 as \"view-code-dialog\" }\n\nconst _view_code_dialog__title0 = classes[\"view-code-dialog__title\"]\nexport { _view_code_dialog__title0 as \"view-code-dialog__title\" }\n\nconst _view_code_dialog__body0 = classes[\"view-code-dialog__body\"]\nexport { _view_code_dialog__body0 as \"view-code-dialog__body\" }\n\nconst _view_code_dialog__footer0 = classes[\"view-code-dialog__footer\"]\nexport { _view_code_dialog__footer0 as \"view-code-dialog__footer\" }\n","import { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport { useStyles } from '@msinternal/botframework-webchat-styles/react';\nimport cx from 'classnames';\nimport React, { Fragment, memo, useMemo } from 'react';\nimport { object, optional, pipe, readonly, string, type InferInput } from 'valibot';\n\nimport useRenderMarkdownAsHTML from '../../../hooks/useRenderMarkdownAsHTML';\n\nimport styles from './CitationModal.module.css';\n\nconst citationModalContentPropsSchema = pipe(\n object({\n headerText: optional(string()),\n markdown: string()\n }),\n readonly()\n);\n\ntype CitationModalContentProps = InferInput<typeof citationModalContentPropsSchema>;\n\nfunction CitationModalContent(props: CitationModalContentProps) {\n const { headerText, markdown } = validateProps(citationModalContentPropsSchema, props);\n\n const classNames = useStyles(styles);\n const renderMarkdownAsHTML = useRenderMarkdownAsHTML('citation modal');\n const html = useMemo(() => ({ __html: renderMarkdownAsHTML(markdown) }), [markdown, renderMarkdownAsHTML]);\n\n return (\n <Fragment>\n {headerText && <h2 className={classNames['citation-modal-dialog__header']}>{headerText}</h2>}\n {renderMarkdownAsHTML ? (\n <div\n className={cx(classNames['citation-modal-dialog__body'], 'render-markdown')}\n // The content rendered by `renderMarkdownAsHTML` is sanitized.\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={html}\n />\n ) : (\n <div className=\"render-markdown\">{markdown}</div>\n )}\n </Fragment>\n );\n}\n\nexport default memo(CitationModalContent);\nexport { citationModalContentPropsSchema, type CitationModalContentProps };\n","import \"/__w/1/s/BotFramework-WebChat/packages/component/src/Attachment/Text/private/CitationModal.module_built.css\";\nconst classes = {\"citation-modal-dialog__header\":\"wOauhfq_citation-modal-dialog__header\",\"citation-modal-dialog\":\"wOauhfq_citation-modal-dialog\",\"citation-modal-dialog__body\":\"wOauhfq_citation-modal-dialog__body\"}\nexport default classes\n\nconst _citation_modal_dialog__header0 = classes[\"citation-modal-dialog__header\"]\nexport { _citation_modal_dialog__header0 as \"citation-modal-dialog__header\" }\n\nconst _citation_modal_dialog0 = classes[\"citation-modal-dialog\"]\nexport { _citation_modal_dialog0 as \"citation-modal-dialog\" }\n\nconst _citation_modal_dialog__body0 = classes[\"citation-modal-dialog__body\"]\nexport { _citation_modal_dialog__body0 as \"citation-modal-dialog__body\" }\n","import { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport { useStyles } from '@msinternal/botframework-webchat-styles/react';\nimport cx from 'classnames';\nimport React, { memo, useMemo } from 'react';\nimport { boolean, object, optional, pipe, readonly, string, type InferInput } from 'valibot';\n\nimport ShieldIcon from './ShieldIcon';\n\nimport styles from '../../../LinkDefinition/LinkDefinitions.module.css';\n\nconst messageSensitivityLabelPropsSchema = pipe(\n object({\n className: optional(string()),\n color: optional(string()),\n isEncrypted: optional(boolean()),\n name: optional(string()),\n title: optional(string())\n }),\n readonly()\n);\n\ntype MessageSensitivityLabelProps = InferInput<typeof messageSensitivityLabelPropsSchema>;\n\nfunction MessageSensitivityLabel(props: MessageSensitivityLabelProps) {\n const { className, color, isEncrypted, name, title } = validateProps(messageSensitivityLabelPropsSchema, props);\n\n const classNames = useStyles(styles);\n\n return (\n <div\n className={cx(\n classNames['link-definitions__message-sensitivity-label'],\n {\n 'link-definitions__message-sensitivity-label--is-encrypted': isEncrypted\n },\n className\n )}\n title={useMemo(() => [name, title].filter(Boolean).join('\\n\\n'), [name, title])}\n >\n <ShieldIcon\n className={classNames['link-definitions__message-sensitivity-label-icon']}\n fillColor={color}\n hasLock={isEncrypted}\n />\n <span className={classNames['link-definitions__message-sensitivity-label-text']}>{name}</span>\n </div>\n );\n}\n\nexport default memo(MessageSensitivityLabel);\nexport { messageSensitivityLabelPropsSchema, type MessageSensitivityLabelProps };\n","import { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport classNames from 'classnames';\nimport React, { Fragment, memo } from 'react';\nimport { boolean, object, optional, pipe, readonly, string, type InferInput } from 'valibot';\n\nconst shieldIconPropsSchema = pipe(\n object({\n className: optional(string()),\n fillColor: optional(string()),\n hasLock: optional(boolean())\n }),\n readonly()\n);\n\ntype ShieldIconProps = InferInput<typeof shieldIconPropsSchema>;\n\nfunction ShieldIcon(props: ShieldIconProps) {\n const { className, fillColor, hasLock } = validateProps(shieldIconPropsSchema, props);\n\n return (\n <svg\n className={classNames(className)}\n height=\"16\"\n viewBox=\"0 0 16 16\"\n width=\"16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n {hasLock ? (\n <Fragment>\n {fillColor && (\n <path\n d=\"M8.35464 2.14678C8.15946 1.95123 7.84268 1.95105 7.64728 2.14638C6.40416 3.38902 5.02923 4 3.5 4C3.22386 4 3 4.22386 3 4.5V7.50126C3 10.4242 4.35378 12.4971 7 13.6523V10C7 9.06808 7.63739 8.28503 8.5 8.06301V8C8.5 6.34315 9.84315 5 11.5 5C12.0464 5 12.5587 5.14609 13 5.40135V4.5C13 4.22386 12.7761 4 12.5 4C10.9689 4 9.5947 3.38913 8.35464 2.14678ZM9.5 9V8C9.5 6.89543 10.3954 6 11.5 6C12.6046 6 13.5 6.89543 13.5 8V9H14C14.5523 9 15 9.44772 15 10V14C15 14.5523 14.5523 15 14 15H9C8.44771 15 8 14.5523 8 14V10C8 9.44772 8.44772 9 9 9H9.5ZM10.5 8V9H12.5V8C12.5 7.44772 12.0523 7 11.5 7C10.9477 7 10.5 7.44772 10.5 8ZM12.25 12C12.25 11.5858 11.9142 11.25 11.5 11.25C11.0858 11.25 10.75 11.5858 10.75 12C10.75 12.4142 11.0858 12.75 11.5 12.75C11.9142 12.75 12.25 12.4142 12.25 12Z\"\n fill={fillColor}\n />\n )}\n <path\n d=\"M7.64728 2.14638C7.84268 1.95105 8.15946 1.95123 8.35464 2.14678C9.5947 3.38913 10.9689 4 12.5 4C12.7761 4 13 4.22386 13 4.5V5.40135C12.6963 5.22567 12.359 5.1017 12 5.04148V4.98121C10.5195 4.86895 9.18521 4.25528 8.00042 3.18917C6.81393 4.25491 5.47941 4.86879 4 4.98118V7.50126C4 8.9349 4.36269 10.0655 5.02127 10.9453C5.49089 11.5727 6.14168 12.1134 7 12.5478V13.6523C4.35378 12.4971 3 10.4242 3 7.50126V4.5C3 4.22386 3.22386 4 3.5 4C5.02923 4 6.40416 3.38902 7.64728 2.14638ZM9.5 8V9H9C8.44772 9 8 9.44772 8 10V14C8 14.5523 8.44771 15 9 15H14C14.5523 15 15 14.5523 15 14V10C15 9.44772 14.5523 9 14 9H13.5V8C13.5 6.89543 12.6046 6 11.5 6C10.3954 6 9.5 6.89543 9.5 8ZM10.5 9V8C10.5 7.44772 10.9477 7 11.5 7C12.0523 7 12.5 7.44772 12.5 8V9H10.5ZM11.5 11.25C11.9142 11.25 12.25 11.5858 12.25 12C12.25 12.4142 11.9142 12.75 11.5 12.75C11.0858 12.75 10.75 12.4142 10.75 12C10.75 11.5858 11.0858 11.25 11.5 11.25Z\"\n fill=\"currentcolor\"\n />\n </Fragment>\n ) : (\n <Fragment>\n {fillColor && (\n <path\n d=\"M7.64728 2.14638C7.84268 1.95105 8.15946 1.95123 8.35464 2.14678C9.5947 3.38913 10.9689 4 12.5 4C12.7761 4 13 4.22386 13 4.5V7.50126C13 10.7196 11.3587 12.9075 8.15811 13.9743C8.05548 14.0086 7.94452 14.0086 7.84189 13.9743C4.64126 12.9075 3 10.7196 3 7.50126V4.5C3 4.22386 3.22386 4 3.5 4C5.02923 4 6.40416 3.38902 7.64728 2.14638Z\"\n fill={fillColor}\n />\n )}\n <path\n d=\"M7.64728 2.14638C7.84268 1.95105 8.15946 1.95123 8.35464 2.14678C9.5947 3.38913 10.9689 4 12.5 4C12.7761 4 13 4.22386 13 4.5V7.50126C13 10.7196 11.3587 12.9075 8.15811 13.9743C8.05548 14.0086 7.94452 14.0086 7.84189 13.9743C4.64126 12.9075 3 10.7196 3 7.50126V4.5C3 4.22386 3.22386 4 3.5 4C5.02923 4 6.40416 3.38902 7.64728 2.14638ZM8.00042 3.18917C6.81393 4.25491 5.47941 4.86879 4 4.98118V7.50126C4 8.9349 4.36269 10.0655 5.02127 10.9453C5.65858 11.7967 6.62953 12.4885 8 12.9715C9.37047 12.4885 10.3414 11.7967 10.9787 10.9453C11.6373 10.0655 12 8.9349 12 7.50126V4.98121C10.5195 4.86895 9.18521 4.25528 8.00042 3.18917Z\"\n fill=\"currentcolor\"\n />\n </Fragment>\n )}\n </svg>\n );\n}\n\nexport default memo(ShieldIcon);\nexport { shieldIconPropsSchema, type ShieldIconProps };\n","export default function isHTMLButtonElement(button: HTMLElement): button is HTMLButtonElement {\n return button.matches('button');\n}\n","import { reactNode, validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport { useStyles } from '@msinternal/botframework-webchat-styles/react';\nimport cx from 'classnames';\nimport React, { Fragment, memo } from 'react';\nimport { object, optional, pipe, readonly, string, type InferInput } from 'valibot';\n\nimport styles from '../TextContent.module.css';\n\nconst plainTextContentPropsSchema = pipe(\n object({\n children: optional(reactNode()),\n text: string()\n }),\n readonly()\n);\n\ntype PlainTextContentProps = InferInput<typeof plainTextContentPropsSchema>;\n\nfunction PlainTextContent(props: PlainTextContentProps) {\n const { children, text } = validateProps(plainTextContentPropsSchema, props);\n\n const classNames = useStyles(styles);\n\n return (\n <Fragment>\n {(text || '').split('\\n').map(line => (\n <p className={cx(classNames['text-content'])} key={line}>\n {line.trim()}\n </p>\n ))}\n {children && <div className={classNames['text-content']}>{children}</div>}\n </Fragment>\n );\n}\n\nexport default memo(PlainTextContent);\nexport { plainTextContentPropsSchema, type PlainTextContentProps };\n","import classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport useStyleSet from '../hooks/useStyleSet';\nimport { useStyleToEmotionObject } from '../hooks/internal/styleToEmotionObject';\nimport VideoContent from './VideoContent';\n\nconst ROOT_STYLE = {\n display: 'flex',\n flexDirection: 'column'\n};\n\nconst VideoAttachment = ({ attachment }) => {\n const [{ videoAttachment: videoAttachmentStyleSet }] = useStyleSet();\n const rootClassName = useStyleToEmotionObject()(ROOT_STYLE) + '';\n\n return (\n <div className={classNames(rootClassName, videoAttachmentStyleSet + '')}>\n <VideoContent alt={attachment.name} src={attachment.contentUrl} />\n </div>\n );\n};\n\nVideoAttachment.propTypes = {\n attachment: PropTypes.shape({\n contentUrl: PropTypes.string.isRequired,\n name: PropTypes.string\n }).isRequired\n};\n\nexport default VideoAttachment;\n","import { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport React, { memo } from 'react';\nimport { boolean, object, optional, pipe, readonly, string, type InferInput } from 'valibot';\n\nimport HTMLVideoContent from './HTMLVideoContent';\nimport VimeoContent from './VimeoContent';\nimport YouTubeContent from './YouTubeContent';\n\nconst YOUTUBE_DOMAIN = 'youtube.com';\nconst YOUTUBE_WWW_DOMAIN = 'www.youtube.com';\nconst YOUTUBE_SHORT_DOMAIN = 'youtu.be';\nconst YOUTUBE_WWW_SHORT_DOMAIN = 'www.youtu.be';\nconst VIMEO_DOMAIN = 'vimeo.com';\nconst VIMEO_WWW_DOMAIN = 'www.vimeo.com';\n\n// This is a workaround\n// - Today, there is no good URL polyfill for older browser\n// - Instead of writing a URL parser, for older browser, we will use this <a href> trick to parse the URL\nfunction parseURL(url) {\n let urlLike;\n\n if (typeof URL === 'function') {\n urlLike = new URL(url);\n } else {\n urlLike = document.createElement('a');\n urlLike.setAttribute('href', url);\n }\n\n const { hostname, pathname, search } = urlLike;\n\n return { hostname, pathname, search };\n}\n\nconst videoContentPropsSchema = pipe(\n object({\n alt: optional(string()),\n autoPlay: optional(boolean()),\n loop: optional(boolean()),\n poster: optional(string()),\n src: string()\n }),\n readonly()\n);\n\ntype VideoContentProps = InferInput<typeof videoContentPropsSchema>;\n\nfunction VideoContent(props: VideoContentProps) {\n const { alt, autoPlay = false, loop = false, poster, src } = validateProps(videoContentPropsSchema, props);\n\n const { hostname, pathname, search } = parseURL(src);\n const lastSegment = pathname.split('/').pop();\n const searchParams = new URLSearchParams(search);\n\n switch (hostname) {\n case VIMEO_DOMAIN:\n case VIMEO_WWW_DOMAIN:\n return <VimeoContent alt={alt} autoPlay={autoPlay} embedID={lastSegment} loop={loop} />;\n\n case YOUTUBE_DOMAIN:\n case YOUTUBE_WWW_DOMAIN:\n return <YouTubeContent alt={alt} autoPlay={autoPlay} embedID={searchParams.get('v')} loop={loop} />;\n\n case YOUTUBE_SHORT_DOMAIN:\n case YOUTUBE_WWW_SHORT_DOMAIN:\n return <YouTubeContent alt={alt} autoPlay={autoPlay} embedID={lastSegment} loop={loop} />;\n\n default:\n return <HTMLVideoContent alt={alt} autoPlay={autoPlay} loop={loop} poster={poster} src={src} />;\n }\n}\n\nexport default memo(VideoContent);\nexport { videoContentPropsSchema, type VideoContentProps };\n","import { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport React, { memo } from 'react';\nimport { boolean, object, optional, pipe, readonly, string, type InferInput } from 'valibot';\n\nimport useStyleSet from '../hooks/useStyleSet';\n\nconst htmlVideoContentPropsSchema = pipe(\n object({\n alt: optional(string()),\n autoPlay: optional(boolean()),\n loop: optional(boolean()),\n poster: optional(string()),\n src: string()\n }),\n readonly()\n);\n\ntype HTMLVideoContentProps = InferInput<typeof htmlVideoContentPropsSchema>;\n\nfunction HTMLVideoContent(props: HTMLVideoContentProps) {\n const { alt, autoPlay = false, loop = false, poster, src } = validateProps(htmlVideoContentPropsSchema, props);\n\n const [{ videoContent: videoContentStyleSet }] = useStyleSet();\n\n return (\n <video\n aria-label={alt}\n autoPlay={autoPlay}\n className={videoContentStyleSet}\n controls={true}\n loop={loop}\n poster={poster}\n src={src}\n />\n );\n}\n\nexport default memo(HTMLVideoContent);\nexport { htmlVideoContentPropsSchema, type HTMLVideoContentProps };\n","import { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport { hooks } from 'botframework-webchat-api';\nimport React, { memo } from 'react';\nimport { boolean, object, optional, pipe, readonly, string, type InferInput } from 'valibot';\n\nimport useStyleSet from '../hooks/useStyleSet';\n\nconst { useLocalizer } = hooks;\n\nconst vimeoContentPropsSchema = pipe(\n object({\n alt: optional(string()),\n autoPlay: optional(boolean()),\n embedID: string(),\n loop: optional(boolean())\n }),\n readonly()\n);\n\ntype VimeoContentProps = InferInput<typeof vimeoContentPropsSchema>;\n\nfunction VimeoContent(props: VimeoContentProps) {\n const { alt, autoPlay = false, embedID, loop = false } = validateProps(vimeoContentPropsSchema, props);\n\n const [{ vimeoContent: vimeoContentStyleSet }] = useStyleSet();\n const localize = useLocalizer();\n\n const search = new URLSearchParams({\n autoplay: autoPlay ? '1' : '0',\n badge: '0',\n byline: '0',\n loop: loop ? '1' : '0',\n portrait: '0',\n title: '0'\n }).toString();\n const title = localize('ATTACHMENT_VIDEO');\n\n return (\n <iframe\n allowFullScreen={true}\n aria-label={alt}\n className={vimeoContentStyleSet}\n sandbox=\"allow-same-origin allow-scripts\"\n src={`https://player.vimeo.com/video/${encodeURI(embedID)}?${search}`}\n title={title}\n />\n );\n}\n\nexport default memo(VimeoContent);\nexport { vimeoContentPropsSchema, type VimeoContentProps };\n","import { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport { hooks } from 'botframework-webchat-api';\nimport React, { memo } from 'react';\nimport { boolean, object, optional, pipe, readonly, string, type InferInput } from 'valibot';\n\nimport useStyleSet from '../hooks/useStyleSet';\n\nconst { useLocalizer } = hooks;\n\nconst youTubeContentPropsSchema = pipe(\n object({\n alt: optional(string()),\n autoPlay: optional(boolean()),\n embedID: string(),\n loop: optional(boolean())\n }),\n readonly()\n);\n\ntype YouTubeContentProps = InferInput<typeof youTubeContentPropsSchema>;\n\nfunction YouTubeContent(props: YouTubeContentProps) {\n const { alt, autoPlay = false, embedID, loop = false } = validateProps(youTubeContentPropsSchema, props);\n\n const [{ youTubeContent: youTubeContentStyleSet }] = useStyleSet();\n const localize = useLocalizer();\n\n const search = new URLSearchParams({\n autoplay: autoPlay ? '1' : '0',\n loop: loop ? '1' : '0',\n modestbranding: '1'\n }).toString();\n const title = localize('ATTACHMENT_VIDEO');\n\n return (\n // TODO: We should encodeURI the URL\n <iframe\n allowFullScreen={true}\n aria-label={alt}\n className={youTubeContentStyleSet}\n sandbox=\"allow-same-origin allow-scripts\"\n src={`https://youtube.com/embed/${embedID}?${search}`}\n title={title}\n />\n );\n}\n\nexport default memo(YouTubeContent);\nexport { youTubeContentPropsSchema, type YouTubeContentProps };\n","import { LowPriorityDecoratorComposer } from 'botframework-webchat-api/internal.js';\nimport React, { memo, type ReactNode } from 'react';\n\nimport createDefaultActivityGroupingDecoratorMiddleware from './Middleware/ActivityGrouping/createDefaultActivityGroupingDecoratorMiddleware';\n\nconst middleware = Object.freeze([...createDefaultActivityGroupingDecoratorMiddleware()] as const);\n\ntype BuiltInDecoratorProps = Readonly<{\n readonly children?: ReactNode | undefined;\n}>;\n\nfunction BuiltInDecorator({ children }: BuiltInDecoratorProps) {\n return <LowPriorityDecoratorComposer middleware={middleware}>{children}</LowPriorityDecoratorComposer>;\n}\n\nexport default memo(BuiltInDecorator);\nexport { type BuiltInDecoratorProps };\n","import { createActivityGroupingMiddleware, type DecoratorMiddleware } from 'botframework-webchat-api/decorator.js';\nimport PartGrouping from './ui/PartGrouping/PartGrouping';\nimport RenderActivityGrouping from './ui/RenderActivityGrouping';\nimport SenderGrouping from './ui/SenderGrouping/SenderGrouping';\nimport StatusGrouping from './ui/StatusGrouping/StatusGrouping';\n\nexport default function createDefaultActivityGroupingDecoratorMiddleware(): readonly DecoratorMiddleware[] {\n return Object.freeze([\n createActivityGroupingMiddleware(\n () =>\n ({ groupingName }) =>\n groupingName === 'sender'\n ? SenderGrouping\n : groupingName === 'status'\n ? StatusGrouping\n : groupingName === 'part'\n ? PartGrouping\n : RenderActivityGrouping\n )\n ]);\n}\n","import { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport { hooks } from 'botframework-webchat-api';\nimport { type WebChatActivity } from 'botframework-webchat-core';\nimport React, { Fragment, memo } from 'react';\nimport { array, custom, is, object, pipe, readonly, type InferInput } from 'valibot';\n\nimport useActivityRendererMap from '../../../providers/RenderingActivities/useActivityRendererMap';\nimport RenderActivity from './RenderActivity';\n\nconst { useGetKeyByActivity } = hooks;\n\nconst renderActivityGroupingPropsSchema = pipe(\n object({\n activities: pipe(array(custom<WebChatActivity>(value => is(object({}), value))), readonly())\n }),\n readonly()\n);\n\ntype RenderActivityGroupingProps = Readonly<InferInput<typeof renderActivityGroupingPropsSchema>>;\n\nfunction RenderActivityGrouping(props: RenderActivityGroupingProps) {\n const { activities } = validateProps(renderActivityGroupingPropsSchema, props);\n\n const [activityRendererMap] = useActivityRendererMap();\n const getKeyByActivity = useGetKeyByActivity();\n\n return (\n <Fragment>\n {activities.map(activity => {\n const children = activityRendererMap.get(activity)?.({});\n\n // TODO: [P0] Activity key could be reused by multiple activities of same livestream group.\n // We should update ActivityKeyer to have another more unique ID.\n return children && <RenderActivity activity={activity} key={getKeyByActivity(activity)} />;\n })}\n </Fragment>\n );\n}\n\nexport default memo(RenderActivityGrouping);\nexport { renderActivityGroupingPropsSchema, type RenderActivityGroupingProps };\n","import { type ActivityPolymiddlewareRenderer } from 'botframework-webchat-api/middleware.js';\nimport { type WebChatActivity } from 'botframework-webchat-core';\nimport createContextAndHook from '../../createContextAndHook';\n\ntype RenderingActivitiesContextType = Readonly<{\n activityRendererMapState: readonly [ReadonlyMap<WebChatActivity, ActivityPolymiddlewareRenderer>];\n renderingActivitiesState: readonly [readonly WebChatActivity[]];\n renderingActivityKeysState: readonly [readonly string[]];\n}>;\n\nconst { contextComponentType, useContext } =\n createContextAndHook<RenderingActivitiesContextType>('RenderingActivitiesContext');\n\nexport default contextComponentType;\nexport { useContext as useRenderingActivitiesContext, type RenderingActivitiesContextType };\n","import { type ActivityPolymiddlewareRenderer } from 'botframework-webchat-api/middleware.js';\nimport { type WebChatActivity } from 'botframework-webchat-core';\nimport { useRenderingActivitiesContext } from './private/RenderingActivitiesContext';\n\nexport default function useActivityRendererMap(): readonly [\n ReadonlyMap<WebChatActivity, ActivityPolymiddlewareRenderer>\n] {\n return useRenderingActivitiesContext().activityRendererMapState;\n}\n","import { hooks } from 'botframework-webchat-api';\nimport { type WebChatActivity } from 'botframework-webchat-core';\nimport React, { memo, useCallback, useMemo } from 'react';\n\nimport useActivityElementMapRef from '../../../providers/ChatHistoryDOM/useActivityElementRef';\nimport useActivityRendererMap from '../../../providers/RenderingActivities/useActivityRendererMap';\nimport ActivityRow from '../../../Transcript/ActivityRow';\nimport LegacyActivityBridgeComposer from './LegacyActivityBridgeComposer';\n\nconst { useGetKeyByActivity } = hooks;\n\nfunction RenderActivity({ activity }: { readonly activity: WebChatActivity }) {\n const activityElementMapRef = useActivityElementMapRef();\n const getKeyByActivity = useGetKeyByActivity();\n\n const activityKey: string = useMemo(() => getKeyByActivity(activity), [activity, getKeyByActivity]);\n const activityCallbackRef = useCallback(\n (activityElement: HTMLElement) => {\n activityElement\n ? activityElementMapRef.current.set(activityKey, activityElement)\n : activityElementMapRef.current.delete(activityKey);\n },\n [activityElementMapRef, activityKey]\n );\n\n const [activityRendererMap] = useActivityRendererMap();\n\n const activityNode = activityRendererMap.get(activity)?.({});\n\n return (\n <ActivityRow activity={activity} ref={activityCallbackRef}>\n <LegacyActivityBridgeComposer activity={activity}>{activityNode}</LegacyActivityBridgeComposer>\n </ActivityRow>\n );\n}\n\nexport default memo(RenderActivity);\n","import { hooks } from 'botframework-webchat-api';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport React, { forwardRef, memo, useCallback, useMemo, useRef } from 'react';\nimport { useRefFrom } from 'use-ref-from';\n\nimport SpeakActivity from '../Activity/Speak';\nimport { RestrictedActivityDebugAPI } from '../ActivityDebug';\nimport useActiveDescendantId from '../providers/TranscriptFocus/useActiveDescendantId';\nimport useFocusByActivityKey from '../providers/TranscriptFocus/useFocusByActivityKey';\nimport useGetDescendantIdByActivityKey from '../providers/TranscriptFocus/useGetDescendantIdByActivityKey';\nimport ScreenReaderText from '../ScreenReaderText';\nimport { android } from '../Utils/detectBrowser';\nimport FocusTrap from './FocusTrap';\nimport {\n TranscriptFocusContent,\n TranscriptFocusContentActiveDescendant,\n TranscriptFocusContentOverlay,\n TranscriptFocusIndicator\n} from './TranscriptFocus';\nimport useActivityAccessibleName from './useActivityAccessibleName';\n\nimport type { WebChatActivity } from 'botframework-webchat-core';\nimport type { MouseEventHandler, PropsWithChildren } from 'react';\n\nconst { useActivityKeysByRead, useGetHasAcknowledgedByActivityKey, useGetKeyByActivity } = hooks;\n\ntype ActivityRowProps = PropsWithChildren<{ activity: WebChatActivity }>;\n\nconst ActivityRow = forwardRef<HTMLElement, ActivityRowProps>(({ activity, children }, ref) => {\n const [activeDescendantId] = useActiveDescendantId();\n const [readActivityKeys] = useActivityKeysByRead();\n const activityRef = useRefFrom(activity);\n const bodyRef = useRef<HTMLDivElement>();\n const focusByActivityKey = useFocusByActivityKey();\n const getKeyByActivity = useGetKeyByActivity();\n // TODO: [P2] #2858 We should use core/definitions/speakingActivity for this predicate instead\n const shouldSpeak = activity.channelData?.speak;\n\n const [accessibleName] = useActivityAccessibleName(activity, bodyRef);\n const activityKey = getKeyByActivity(activity);\n\n const acknowledged = useGetHasAcknowledgedByActivityKey()(activityKey);\n const activityKeyRef = useRefFrom<string>(activityKey);\n const descendantId = useGetDescendantIdByActivityKey()(activityKey);\n const descendantLabelId = `webchat__basic-transcript__active-descendant-label--${activityKey}`;\n\n const isActiveDescendant = descendantId === activeDescendantId;\n const read = readActivityKeys.includes(activityKey);\n\n const focusSelf = useCallback<(withFocus?: boolean) => void>(\n (withFocus?: boolean) => focusByActivityKey(activityKeyRef.current, withFocus),\n [activityKeyRef, focusByActivityKey]\n );\n\n // When a child of the activity receives focus, notify the transcript to set the `aria-activedescendant` to this activity.\n const handleDescendantFocus: () => void = useCallback(() => focusSelf(false), [focusSelf]);\n\n // When receive Escape key from descendant, focus back to the activity.\n const handleLeaveFocusTrap = useCallback(() => focusSelf(), [focusSelf]);\n\n // When the user press UP/DOWN arrow keys, we put a visual focus indicator around the focused activity.\n // We should do the same for mouse, when the user click on the activity, we should also put a visual focus indicator around the activity.\n // We are doing it in event capture phase to prevent descendants from stopping event propagation to us.\n const handleMouseDownCapture: MouseEventHandler = useCallback(() => focusSelf(false), [focusSelf]);\n\n const focusTrapChildren = useMemo(\n () => (\n <div className=\"webchat__basic-transcript__activity-body\" ref={bodyRef}>\n {children}\n </div>\n ),\n [bodyRef, children]\n );\n\n const activityIdRef = useRefFrom(activity.id);\n\n const handleFormData = useCallback(\n (event: FormDataEvent & { target: HTMLFormElement }) => {\n const { webchatIncludeActivityId, webchatIncludeActivityKey } = event.target.dataset;\n if (webchatIncludeActivityId) {\n event.formData.set(webchatIncludeActivityId, activityIdRef.current ?? '');\n }\n if (webchatIncludeActivityKey) {\n event.formData.set(webchatIncludeActivityKey, activityKeyRef.current);\n }\n },\n\n [activityKeyRef, activityIdRef]\n );\n\n const prevArticleRef = useRef<HTMLElement>(null);\n\n const restrictedDebugAPI = useMemo(() => new RestrictedActivityDebugAPI(() => activityRef.current), [activityRef]);\n\n const debugAPI = useMemo(() => restrictedDebugAPI.toPublic(), [restrictedDebugAPI]);\n\n const wrappedRef = useCallback(\n (el: HTMLElement | null) => {\n if (prevArticleRef.current) {\n prevArticleRef.current.removeEventListener('formdata', handleFormData);\n prevArticleRef.current['webChat'] = undefined;\n }\n\n if (el) {\n el.addEventListener('formdata', handleFormData);\n el['webChat'] = debugAPI;\n }\n\n prevArticleRef.current = el;\n\n if (ref) {\n if (typeof ref === 'function') {\n ref(el);\n } else {\n ref.current = el;\n }\n }\n },\n [debugAPI, handleFormData, ref]\n );\n\n restrictedDebugAPI.UNSAFE_callBreakpoint.render();\n\n return (\n // TODO: [P2] Add `aria-roledescription=\"message\"` for better AX, need localization strings.\n /* TODO: [P1] File a crbug for TalkBack. It should not able to read the content twice when scanning. */\n /* The following <div> is designed for active descendant only.\n We want to prevent screen reader from scanning the content that is authored only for active descendant.\n The specific content should only read when user press UP/DOWN arrow keys to change `aria-activedescendant`.\n However, Android TalkBack 12.1 is buggy when the there is an element with ID of one of the `aria-activedescendant` potential candidates,\n TalkBack will narrate the message content twice (i.e. content of `bodyRef`), regardless whether the ID is currently set as `aria-activedescendant` or not.\n As Android does not support active descendant, we are hiding the whole DOM element altogether. */\n <TranscriptFocusContent\n className={classNames('webchat__basic-transcript__activity', {\n 'webchat__basic-transcript__activity--acknowledged': acknowledged,\n 'webchat__basic-transcript__activity--read': read\n })}\n focused={isActiveDescendant}\n onMouseDownCapture={handleMouseDownCapture}\n // When NVDA is in browse mode, using up/down arrow key to \"browse\" will dispatch \"click\" and \"mousedown\" events for <article> element (inside <LiveRegionActivity>).\n ref={wrappedRef}\n tag=\"article\"\n >\n <FocusTrap\n onFocus={handleDescendantFocus}\n onLeave={handleLeaveFocusTrap}\n targetClassName=\"webchat__basic-transcript__activity-focus-target\"\n >\n {focusTrapChildren}\n </FocusTrap>\n {shouldSpeak && (\n // TODO: Should build `webChatActivitySchema`.\n <SpeakActivity activity={activity as WebChatActivity & { channelData: { speechSynthesisUtterance?: any } }} />\n )}\n <TranscriptFocusContentOverlay>\n {!android && (\n <TranscriptFocusContentActiveDescendant\n aria-labelledby={descendantLabelId}\n className=\"webchat__basic-transcript__activity-active-descendant\"\n // \"id\" is required for \"aria-labelledby\"\n id={descendantId}\n role=\"article\"\n >\n <ScreenReaderText aria-hidden={true} id={descendantLabelId} text={accessibleName} />\n </TranscriptFocusContentActiveDescendant>\n )}\n <TranscriptFocusIndicator type=\"content\" />\n </TranscriptFocusContentOverlay>\n </TranscriptFocusContent>\n );\n});\n\nActivityRow.defaultProps = {\n children: undefined\n};\n\nActivityRow.displayName = 'ActivityRow';\n\nActivityRow.propTypes = {\n // PropTypes cannot fully capture TypeScript type.\n // @ts-ignore\n activity: PropTypes.shape({\n channelData: PropTypes.shape({\n speak: PropTypes.bool,\n 'webchat:fallback-text': PropTypes.string\n })\n }).isRequired,\n children: PropTypes.any\n};\n\nexport default memo(ActivityRow);\n","import { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport { hooks } from 'botframework-webchat-api';\nimport { type WebChatActivity } from 'botframework-webchat-core';\nimport React, { Fragment, memo, useCallback, useMemo } from 'react';\nimport Say, { SayUtterance } from 'react-say';\nimport { useRefFrom } from 'use-ref-from';\nimport { any, array, object, optional, pipe, readonly, string, type InferInput } from 'valibot';\n\nimport useWebSpeechPonyfill from '../hooks/useWebSpeechPonyfill';\nimport SayAlt from './SayAlt';\n\nconst { useMarkActivityAsSpoken, useStyleOptions, useVoiceSelector } = hooks;\n\n// TODO: [P4] Consider moving this feature into BasicActivity\n// And it has better DOM position for showing visual spoken text\n\nconst speakableActivitySchema = pipe(\n object({\n attachments: optional(\n pipe(\n array(\n pipe(\n object({\n content: optional(any()),\n contentType: string(),\n speak: optional(string()),\n subtitle: optional(string()),\n text: optional(string()),\n title: optional(string())\n }),\n readonly()\n )\n ),\n readonly()\n )\n ),\n channelData: optional(\n pipe(\n object({\n speechSynthesisUtterance: optional(any())\n }),\n readonly()\n )\n ),\n speak: optional(string()),\n text: optional(string()),\n type: string()\n }),\n readonly()\n);\n\nconst speakPropsSchema = pipe(\n object({\n activity: speakableActivitySchema\n }),\n readonly()\n);\n\ntype SpeakProps = InferInput<typeof speakPropsSchema>;\n\nfunction Speak(props: SpeakProps) {\n const { activity } = validateProps(speakPropsSchema, props);\n\n const [{ showSpokenText }] = useStyleOptions();\n const [webSpeechPonyfill] = useWebSpeechPonyfill();\n const activityRef = useRefFrom(activity);\n const markActivityAsSpoken = useMarkActivityAsSpoken();\n const selectVoice = useVoiceSelector(activity);\n\n const markAsSpoken = useCallback(\n () => markActivityAsSpoken(activityRef.current as WebChatActivity),\n [activityRef, markActivityAsSpoken]\n );\n\n const singleLine: false | string = useMemo(() => {\n if (activity.type !== 'message') {\n return false;\n }\n\n const { attachments = [], speak, text } = activity;\n\n return [\n speak || text,\n ...attachments\n .filter(\n (\n attachment\n ): attachment is {\n content: { speak?: string };\n contentType: 'application/vnd.microsoft.card.adaptive';\n } => attachment.contentType === 'application/vnd.microsoft.card.adaptive' && attachment.content\n )\n .map(attachment => attachment?.content?.speak)\n ]\n .filter(line => line)\n .join('\\r\\n');\n }, [activity]);\n\n const speechSynthesisUtterance: false | SpeechSynthesisUtterance | undefined =\n activity.type === 'message' && activity.channelData?.speechSynthesisUtterance;\n\n return (\n !!activity && (\n <Fragment>\n {speechSynthesisUtterance ? (\n <SayUtterance\n onEnd={markAsSpoken}\n onError={markAsSpoken}\n ponyfill={webSpeechPonyfill}\n utterance={speechSynthesisUtterance}\n />\n ) : (\n <Say\n onEnd={markAsSpoken}\n onError={markAsSpoken}\n ponyfill={webSpeechPonyfill}\n text={singleLine}\n voice={selectVoice}\n />\n )}\n {!!showSpokenText && <SayAlt speak={singleLine} />}\n </Fragment>\n )\n );\n}\n\nexport default memo(Speak);\nexport { speakPropsSchema, type SpeakProps };\n","import { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport { useStyles } from '@msinternal/botframework-webchat-styles/react';\nimport React, { memo } from 'react';\nimport { literal, object, pipe, readonly, string, union, type InferInput } from 'valibot';\n\nimport styles from './SayAlt.module.css';\n\nconst sayAltPropsSchema = pipe(\n object({\n speak: union([literal(false), string()])\n }),\n readonly()\n);\n\ntype SayAltProps = InferInput<typeof sayAltPropsSchema>;\n\nconst SayAlt = (props: SayAltProps) => {\n const { speak } = validateProps(sayAltPropsSchema, props);\n const classNames = useStyles(styles);\n\n return !!speak && <pre className={classNames['say-alt']}>{speak}</pre>;\n};\n\nexport default memo(SayAlt);\nexport { sayAltPropsSchema, type SayAltProps };\n","import \"/__w/1/s/BotFramework-WebChat/packages/component/src/Activity/SayAlt.module_built.css\";\nconst classes = {\"say-alt\":\"w6N4Cvq_say-alt\"}\nexport default classes\n\nconst _say_alt0 = classes[\"say-alt\"]\nexport { _say_alt0 as \"say-alt\" }\n","import { RestrictedDebugAPI } from 'botframework-webchat-core/internal.js';\nimport type { ArrayElement } from 'type-fest';\n\nconst BREAKPOINT_NAMES = ['render'] as const;\n\ntype ActivityBreakpointName = ArrayElement<typeof BREAKPOINT_NAMES>;\ntype ActivityDebugContext = { readonly activity: any };\n\nclass RestrictedActivityDebugAPI extends RestrictedDebugAPI<ActivityBreakpointName, ActivityDebugContext> {\n constructor(getActivity: () => any) {\n super(BREAKPOINT_NAMES, Object.freeze({ activity: getActivity }));\n }\n}\n\nexport default RestrictedActivityDebugAPI;\n","import useTranscriptFocusContext from './private/useContext';\n\n/**\n * Put the focus on an activity based on its activity key.\n *\n * @param {boolean | string | undefined} activityKey - The activity key to focus on, `false` to reset focus to most recent activity, `true` to focus on anything, `undefined` for not changing the focus.\n * @param {boolean} withFocus - `true` if the user agent focus should be sent to the transcript, otherwise, `false`.\n */\nexport default function useFocusByActivityKey(): (\n activityKey: boolean | string | undefined,\n withFocus?: boolean\n) => void {\n return useTranscriptFocusContext().focusByActivityKey;\n}\n","import useTranscriptFocusContext from './private/useContext';\n\nexport default function useGetDescendantIdByActivityKey(): (activityKey?: string) => string | undefined {\n return useTranscriptFocusContext().getDescendantIdByActivityKey;\n}\n","import { hooks } from 'botframework-webchat-api';\nimport { useEffect, useMemo, useState } from 'react';\nimport type { RefObject } from 'react';\nimport type { WebChatActivity } from 'botframework-webchat-core';\n\nimport { SEND_FAILED } from '../types/internal/SendStatus';\nimport activityAltText from '../Utils/activityAltText';\nimport tabbableElements from '../Utils/tabbableElements';\nimport useRenderMarkdownAsHTML from '../hooks/useRenderMarkdownAsHTML';\nimport useValueRef from '../hooks/internal/useValueRef';\n\nenum InteractiveType {\n LINK,\n WIDGET\n}\n\nconst { useAvatarForBot, useGetKeyByActivity, useLocalizer, useSendStatusByActivityKey } = hooks;\n\nconst ACTIVITY_NUM_ATTACHMENTS_ALT_IDS = {\n few: 'ACTIVITY_NUM_ATTACHMENTS_FEW_ALT',\n many: 'ACTIVITY_NUM_ATTACHMENTS_MANY_ALT',\n one: 'ACTIVITY_NUM_ATTACHMENTS_ONE_ALT',\n other: 'ACTIVITY_NUM_ATTACHMENTS_OTHER_ALT',\n two: 'ACTIVITY_NUM_ATTACHMENTS_TWO_ALT'\n};\n\n/**\n * Computes accessible name of an activity during transcript navigation.\n *\n * This text should be kept simple and short.\n *\n * Due to a bug in Safari, accessible name for active descendant must be a string but not a DOM element.\n */\nexport default function useActivityAccessibleName(activity: WebChatActivity, bodyRef: RefObject<HTMLElement>) {\n const [{ initials: botInitials }] = useAvatarForBot();\n const [interactiveType, setInteractiveType] = useState<InteractiveType | false>(false);\n const [sendStatusByActivityKey] = useSendStatusByActivityKey();\n const fromSelf = activity.from?.role === 'user';\n const getKeyByActivity = useGetKeyByActivity();\n const localize = useLocalizer();\n const localizeWithPlural = useLocalizer({ plural: true });\n const numAttachments = activity.type === 'message' ? activity.attachments?.length || 0 : 0;\n const renderMarkdownAsHTML = useRenderMarkdownAsHTML();\n\n /** \"Click to interact.\" */\n const activityInteractiveFootNoteAlt = localize('ACTIVITY_INTERACTIVE_FOOTNOTE_ALT');\n /** \"Message is interactive.\" */\n const activityInteractiveReasonInteractiveContentAlt = localize(\n 'ACTIVITY_INTERACTIVE_REASON_INTERACTIVE_CONTENT_ALT'\n );\n /** \"One or more links in the message.\" */\n const activityInteractiveReasonLinkAlt = localize('ACTIVITY_INTERACTIVE_REASON_LINK_ALT');\n /** \"Send failed.\" */\n const activityInteractiveReasonSendFailedAlt = localize('ACTIVITY_INTERACTIVE_REASON_SEND_FAILED_ALT');\n const activityKey = useMemo(() => getKeyByActivity(activity), [activity, getKeyByActivity]);\n const greetingAlt = useMemo(\n () =>\n (fromSelf ? localize('ACTIVITY_YOU_SAID_ALT') : localize('ACTIVITY_BOT_SAID_ALT', botInitials || '')).replace(\n /\\s{2,}/gu,\n ' '\n ),\n [botInitials, fromSelf, localize]\n );\n const interactiveTypeRef = useValueRef(interactiveType);\n const messageTextAlt = useMemo(\n () => activityAltText(activity, renderMarkdownAsHTML),\n [activity, renderMarkdownAsHTML]\n );\n const numAttachmentsAlt = useMemo(\n () => (numAttachments ? localizeWithPlural(ACTIVITY_NUM_ATTACHMENTS_ALT_IDS, numAttachments) : ''),\n [localizeWithPlural, numAttachments]\n );\n\n const isSendFailed = useMemo(\n () => sendStatusByActivityKey.get(activityKey) === SEND_FAILED,\n [activityKey, sendStatusByActivityKey]\n );\n\n const accessibleName = useMemo(\n // We are concatenating in a single string for Safari. If we split it up, Safari will only narrate the first section.\n () =>\n [\n greetingAlt,\n messageTextAlt,\n numAttachmentsAlt,\n isSendFailed ? activityInteractiveReasonSendFailedAlt : '',\n interactiveType === InteractiveType.LINK\n ? activityInteractiveReasonLinkAlt\n : interactiveType === InteractiveType.WIDGET\n ? activityInteractiveReasonInteractiveContentAlt\n : '',\n interactiveType || isSendFailed ? activityInteractiveFootNoteAlt : ''\n ]\n .filter(Boolean)\n .join(' '),\n [\n activityInteractiveFootNoteAlt,\n activityInteractiveReasonInteractiveContentAlt,\n activityInteractiveReasonLinkAlt,\n activityInteractiveReasonSendFailedAlt,\n greetingAlt,\n interactiveType,\n isSendFailed,\n messageTextAlt,\n numAttachmentsAlt\n ]\n );\n\n useEffect(() => {\n const hasLinks = !!bodyRef.current?.querySelector('a');\n const hasWidgets = !!tabbableElements(bodyRef.current).length;\n\n interactiveTypeRef.current !== hasWidgets &&\n setInteractiveType(hasLinks ? InteractiveType.LINK : hasWidgets ? InteractiveType.WIDGET : false);\n }, [bodyRef, interactiveTypeRef, setInteractiveType]);\n\n return [accessibleName];\n}\n","// This type is only for this package only and help reducing size of the bundle.\n// Externals should use the string literal directly instead.\n\n// TODO: [P3] #4040 When improve treeshaking with named exports, we could export internals from `core` package.\n// import { SENDING, SEND_FAILED, SENT } from 'botframework-webchat-core/internal/SendStatus';\n\nconst SENDING = 'sending';\nconst SEND_FAILED = 'send failed';\nconst SENT = 'sent';\n\ntype SendStatus = typeof SENDING | typeof SEND_FAILED | typeof SENT;\n\nexport { SENDING, SEND_FAILED, SENT };\nexport type { SendStatus };\n","export default function textFormatToContentType(\n textFormat: string | undefined\n): 'text/markdown' | 'text/plain' | 'text/xml' {\n switch (textFormat) {\n case 'plain':\n return 'text/plain';\n\n case 'xml':\n return 'text/xml';\n\n default:\n return 'text/markdown';\n }\n}\n","import textFormatToContentType from './textFormatToContentType';\n\nfunction walk<T extends Node>(document: Document, walker: (node: T) => string[]): string[] {\n const nodes: T[] = [].slice.call(document.childNodes);\n const results: string[] = [];\n\n while (nodes.length) {\n const node = nodes.shift();\n const { childNodes } = node;\n\n results.push(...(walker(node) || []));\n nodes.unshift(...[].slice.call(childNodes));\n }\n\n return results;\n}\n\n// From https://developer.mozilla.org/en-US/docs/Web/HTML/Inline_elements\nconst HTML_INLINE_TAGS = [\n 'A',\n 'ABBR',\n 'ACRONYM',\n 'AUDIO',\n 'B',\n 'BDI',\n 'BDO',\n 'BIG',\n 'BR',\n 'BUTTON',\n 'CANVAS',\n 'CITE',\n 'CODE',\n 'DATA',\n 'DATALIST',\n 'DEL',\n 'DFN',\n 'EM',\n 'EMBED',\n 'I',\n 'IFRAME',\n 'IMG',\n 'INPUT',\n 'INS',\n 'KBD',\n 'LABEL',\n 'MAP',\n 'MARK',\n 'METER',\n 'NOSCRIPT',\n 'OBJECT',\n 'OUTPUT',\n 'PICTURE',\n 'PROGRESS',\n 'Q',\n 'RUBY',\n 'S',\n 'SAMP',\n 'SCRIPT',\n 'SELECT',\n 'SLOT',\n 'SMALL',\n 'SPAN',\n 'STRONG',\n 'SUB',\n 'SUP',\n 'SVG',\n 'TEMPLATE',\n 'TEXTAREA',\n 'TIME',\n 'U',\n 'TT',\n 'VAR',\n 'VIDEO',\n 'WBR'\n];\n\n/**\n * Computes all text from a given HTML document as flattened array. This is best-effort.\n *\n * @param {Document} document - HTML document to computes texts from.\n */\nfunction htmlTextAlternatives(document: Document): string[] {\n // TODO: [P2] #3923 Revisit this logic with W3C standard, we could do a better text alternatives computation.\n // For example, <abbr title=\"...\"> is not computed.\n // https://www.w3.org/TR/accname-1.1/#mapping_additional_nd_name\n return walk<HTMLElement>(document, node => {\n const { nodeType, tagName, textContent } = node;\n\n if (nodeType === Node.TEXT_NODE) {\n return [textContent];\n } else if (tagName === 'IMG') {\n return [node.getAttribute('alt')];\n } else if (!HTML_INLINE_TAGS.includes(tagName)) {\n return ['\\n'];\n }\n });\n}\n\n/**\n * Returns the text alternatives for a message activity.\n *\n * @param {object} activity - Activity to compute the text alternatives.\n * @param {function} renderMarkdownAsHTML - Callback function to render Markdown as HTML string.\n */\nexport default function activityAltText(\n activity: any,\n renderMarkdownAsHTML?: (markdown: string) => string\n): false | string {\n if (activity.type !== 'message') {\n return false;\n }\n\n const fallbackText = activity?.channelData?.['webchat:fallback-text'];\n\n if (typeof fallbackText === 'string') {\n // If `fallbackText` is an empty string, we will treat the activity as presentational and skip narrating it (return false).\n return fallbackText || false;\n }\n\n const text = activity?.channelData?.messageBack?.displayText || activity.text;\n\n if (!text) {\n // We will continue to narrate the activity, as empty.\n return '';\n }\n\n if (renderMarkdownAsHTML && textFormatToContentType(activity.textFormat) === 'text/markdown') {\n return htmlTextAlternatives(new DOMParser().parseFromString(renderMarkdownAsHTML(text), 'text/html'))\n .join('')\n .replace(/\\n{2,}/gu, '\\n')\n .trim();\n }\n\n return text;\n}\n","import { reactNode, validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport { hooks } from 'botframework-webchat-api';\nimport { LegacyActivityContextProvider, type LegacyActivityContextType } from 'botframework-webchat-api/internal.js';\nimport { type WebChatActivity } from 'botframework-webchat-core';\nimport React, { memo, useMemo } from 'react';\nimport { custom, is, object, optional, pipe, readonly, type InferInput } from 'valibot';\n\nimport isZeroOrPositive from '../../../Utils/isZeroOrPositive';\nimport useFirstActivityInSenderGroup from '../../ActivityGrouping/ui/SenderGrouping/useFirstActivity';\nimport useLastActivityInSenderGroup from '../../ActivityGrouping/ui/SenderGrouping/useLastActivity';\nimport useFirstActivityInStatusGroup from '../../ActivityGrouping/ui/StatusGrouping/useFirstActivity';\nimport useLastActivityInStatusGroup from '../../ActivityGrouping/ui/StatusGrouping/useLastActivity';\n\nconst { useStyleOptions } = hooks;\n\nconst webChatActivitySchema = custom<WebChatActivity>(value => is(object({}), value));\n\nconst legacyActivityComposerPropsSchema = pipe(\n object({\n activity: webChatActivitySchema,\n children: optional(reactNode())\n }),\n readonly()\n);\n\ntype LegacyActivityBridgeComposerProps = InferInput<typeof legacyActivityComposerPropsSchema>;\n\n/**\n * This component is for adding props to legacy activity middleware renderer for backward compatibility.\n * These props cannot be computed in `api` packages because they requires knowledge about activity grouping.\n *\n * @param props.activity The activity to be rendered by the legacy activity middleware.\n * @param props.children Actual rendering of the activity with the legacy activity middleware.\n * @returns A component that would add legacy props to legacy activity middleware renderer.\n */\nfunction LegacyActivityBridgeComposer(props: LegacyActivityBridgeComposerProps) {\n const { activity, children } = validateProps(legacyActivityComposerPropsSchema, props);\n\n const [{ bubbleFromUserNubOffset, bubbleNubOffset, groupTimestamp, showAvatarInGroup }] = useStyleOptions();\n const [firstActivityInSenderGroup] = useFirstActivityInSenderGroup();\n const [firstActivityInStatusGroup] = useFirstActivityInStatusGroup();\n const [lastActivityInSenderGroup] = useLastActivityInSenderGroup();\n const [lastActivityInStatusGroup] = useLastActivityInStatusGroup();\n\n const hideAllTimestamps = groupTimestamp === false;\n const isFirstInSenderGroup =\n firstActivityInSenderGroup === activity || typeof firstActivityInSenderGroup === 'undefined';\n const isFirstInStatusGroup =\n firstActivityInStatusGroup === activity || typeof firstActivityInStatusGroup === 'undefined';\n const isLastInSenderGroup =\n lastActivityInSenderGroup === activity || typeof lastActivityInSenderGroup === 'undefined';\n const isLastInStatusGroup =\n lastActivityInStatusGroup === activity || typeof lastActivityInStatusGroup === 'undefined';\n const isTopSideBotNub = isZeroOrPositive(bubbleNubOffset);\n const isTopSideUserNub = isZeroOrPositive(bubbleFromUserNubOffset);\n\n const hideTimestamp = hideAllTimestamps || !isLastInStatusGroup;\n const isTopSideNub = activity.from?.role === 'user' ? isTopSideUserNub : isTopSideBotNub;\n\n let showCallout: boolean;\n\n // Depending on the \"showAvatarInGroup\" setting, the avatar will render in different positions.\n if (showAvatarInGroup === 'sender') {\n if (isTopSideNub) {\n showCallout = isFirstInSenderGroup && isFirstInStatusGroup;\n } else {\n showCallout = isLastInSenderGroup && isLastInStatusGroup;\n }\n } else if (showAvatarInGroup === 'status') {\n if (isTopSideNub) {\n showCallout = isFirstInStatusGroup;\n } else {\n showCallout = isLastInStatusGroup;\n }\n } else {\n showCallout = true;\n }\n\n const context = useMemo<LegacyActivityContextType>(\n () =>\n Object.freeze({\n hideTimestamp,\n showCallout\n }),\n [hideTimestamp, showCallout]\n );\n\n return <LegacyActivityContextProvider value={context}>{children}</LegacyActivityContextProvider>;\n}\n\nexport default memo(LegacyActivityBridgeComposer);\n","import { type WebChatActivity } from 'botframework-webchat-core';\nimport { reactNode } from '@msinternal/botframework-webchat-react-valibot';\nimport React, { memo, useMemo } from 'react';\nimport { any, array, minLength, object, optional, parse, pipe, readonly, transform, type InferOutput } from 'valibot';\nimport SenderGroupingContext, { type SenderGroupingContextType } from './private/SenderGroupingContext';\n\nconst senderGroupingPropsSchema = pipe(\n object({\n activities: pipe(\n array(\n pipe(\n any(),\n transform(value => value as WebChatActivity)\n )\n ),\n minLength(1, 'botframework-webchat: \"activities\" must have at least 1 activity'),\n readonly()\n ),\n children: optional(reactNode())\n }),\n readonly()\n);\n\ntype SenderGroupingProps = InferOutput<typeof senderGroupingPropsSchema>;\n\nconst SenderGrouping = (props: SenderGroupingProps) => {\n const { activities, children } = parse(senderGroupingPropsSchema, props);\n\n // \"activities\" props must have at least 1 activity, first/last must not be undefined.\n const firstActivity = activities[0] as WebChatActivity;\n // eslint-disable-next-line no-magic-numbers\n const lastActivity = activities.at(-1) as WebChatActivity;\n\n const context = useMemo<SenderGroupingContextType>(\n () =>\n Object.freeze({\n firstActivityState: Object.freeze<[WebChatActivity]>([firstActivity]),\n lastActivityState: Object.freeze<[WebChatActivity]>([lastActivity])\n }),\n [firstActivity, lastActivity]\n );\n\n return <SenderGroupingContext.Provider value={context}>{children}</SenderGroupingContext.Provider>;\n};\n\nSenderGrouping.displayName = 'SenderGrouping';\n\nexport default memo(SenderGrouping);\nexport { type SenderGroupingProps };\n","import { type WebChatActivity } from 'botframework-webchat-core';\nimport { reactNode } from '@msinternal/botframework-webchat-react-valibot';\nimport React, { memo, useMemo } from 'react';\nimport { any, array, minLength, object, optional, parse, pipe, readonly, transform, type InferOutput } from 'valibot';\nimport StatusGroupingContext, { type StatusGroupingContextType } from './private/StatusGroupingContext';\n\nconst statusGroupingPropsSchema = pipe(\n object({\n activities: pipe(\n array(\n pipe(\n any(),\n transform(value => value as WebChatActivity)\n )\n ),\n minLength(1, 'botframework-webchat: \"activities\" must have at least 1 activity'),\n readonly()\n ),\n children: optional(reactNode())\n }),\n readonly()\n);\n\ntype StatusGroupingProps = InferOutput<typeof statusGroupingPropsSchema>;\n\nconst StatusGrouping = (props: StatusGroupingProps) => {\n const { activities, children } = parse(statusGroupingPropsSchema, props);\n\n // \"activities\" props must have at least 1 activity, first/last must not be undefined.\n const firstActivity = activities[0] as WebChatActivity;\n // eslint-disable-next-line no-magic-numbers\n const lastActivity = activities.at(-1) as WebChatActivity;\n\n const context = useMemo<StatusGroupingContextType>(\n () =>\n Object.freeze({\n firstActivityState: Object.freeze<[WebChatActivity]>([firstActivity]),\n lastActivityState: Object.freeze<[WebChatActivity]>([lastActivity])\n }),\n [firstActivity, lastActivity]\n );\n\n return <StatusGroupingContext.Provider value={context}>{children}</StatusGroupingContext.Provider>;\n};\n\nStatusGrouping.displayName = 'StatusGrouping';\n\nexport default memo(StatusGrouping);\nexport { type StatusGroupingProps };\n","import { hooks } from 'botframework-webchat-api';\n// TODO: [P1] #3350 No import from internal, we need to move setDictateState from bf-wc-core (Redux) to React Context.\nimport { useSetDictateState } from 'botframework-webchat-api/internal.js';\nimport { Constants } from 'botframework-webchat-core';\nimport PropTypes from 'prop-types';\nimport React, { useCallback, useEffect } from 'react';\nimport { Composer as DictateComposer } from 'react-dictate-button';\n\nimport useResumeAudioContext from './hooks/internal/useResumeAudioContext';\nimport useSettableDictateAbortable from './hooks/internal/useSettableDictateAbortable';\nimport useWebSpeechPonyfill from './hooks/useWebSpeechPonyfill';\n\nconst {\n useDictateInterims,\n useDictateState,\n useEmitTypingIndicator,\n useLanguage,\n useSendBoxValue,\n useSendTypingIndicator,\n useShouldSpeakIncomingActivity,\n useStopDictate,\n useStyleOptions,\n useSubmitSendBox,\n useUIState\n} = hooks;\n\nconst {\n DictateState: { DICTATING, IDLE, STARTING }\n} = Constants;\n\nconst Dictation = ({ onError }) => {\n const [, setDictateAbortable] = useSettableDictateAbortable();\n const [, setDictateInterims] = useDictateInterims();\n const [, setSendBox] = useSendBoxValue();\n const [, setShouldSpeakIncomingActivity] = useShouldSpeakIncomingActivity();\n const [{ SpeechGrammarList, SpeechRecognition } = {}] = useWebSpeechPonyfill();\n const [{ speechRecognitionContinuous }] = useStyleOptions();\n const [dictateState] = useDictateState();\n const [sendTypingIndicator] = useSendTypingIndicator();\n const [speechLanguage] = useLanguage('speech');\n const [uiState] = useUIState();\n const emitTypingIndicator = useEmitTypingIndicator();\n const resumeAudioContext = useResumeAudioContext();\n const setDictateState = useSetDictateState();\n const stopDictate = useStopDictate();\n const submitSendBox = useSubmitSendBox();\n\n const handleDictate = useCallback(\n ({ result: { confidence, transcript } = {} }) => {\n if (dictateState === DICTATING || dictateState === STARTING) {\n setDictateInterims([]);\n\n if (transcript) {\n setSendBox(transcript);\n submitSendBox('speech', { channelData: { speech: { alternatives: [{ confidence, transcript }] } } });\n setShouldSpeakIncomingActivity(true);\n }\n }\n },\n [dictateState, setDictateInterims, setSendBox, submitSendBox, setShouldSpeakIncomingActivity]\n );\n\n const handleDictating = useCallback(\n ({ abortable, results = [] }) => {\n if (dictateState === DICTATING || dictateState === STARTING) {\n const interims = results.map(({ transcript }) => transcript);\n\n setDictateAbortable(abortable);\n setDictateInterims(interims);\n setDictateState(DICTATING);\n sendTypingIndicator && emitTypingIndicator();\n }\n },\n [dictateState, emitTypingIndicator, sendTypingIndicator, setDictateAbortable, setDictateInterims, setDictateState]\n );\n\n const handleEnd = useCallback(() => {\n dictateState !== IDLE && setDictateState(IDLE);\n (dictateState === DICTATING || dictateState === STARTING) && stopDictate();\n }, [dictateState, setDictateState, stopDictate]);\n\n const handleError = useCallback(\n event => {\n dictateState !== IDLE && setDictateState(IDLE);\n (dictateState === DICTATING || dictateState === STARTING) && stopDictate();\n\n onError && onError(event);\n },\n [dictateState, onError, setDictateState, stopDictate]\n );\n\n useEffect(() => {\n window.addEventListener('pointerdown', resumeAudioContext);\n\n return () => window.removeEventListener('pointerdown', resumeAudioContext);\n }, [resumeAudioContext]);\n\n return (\n <DictateComposer\n continuous={speechRecognitionContinuous}\n lang={speechLanguage}\n onDictate={handleDictate}\n onEnd={handleEnd}\n onError={handleError}\n onProgress={handleDictating}\n speechGrammarList={SpeechGrammarList}\n speechRecognition={SpeechRecognition}\n started={uiState !== 'disabled' && (dictateState === STARTING || dictateState === DICTATING)}\n />\n );\n};\n\nDictation.defaultProps = {\n onError: undefined\n};\n\nDictation.propTypes = {\n onError: PropTypes.func\n};\n\nexport default Dictation;\n","import useWebSpeechPonyfill from '../useWebSpeechPonyfill';\n\nexport default function useResumeAudioContext(): () => Promise<void> {\n const [{ resumeAudioContext }] = useWebSpeechPonyfill();\n\n return () => resumeAudioContext && resumeAudioContext();\n}\n","export default function createOnEventShim<Name extends string = string, Target extends EventTarget = EventTarget>(\n target: Target\n) {\n const currentListeners: Map<Name, EventListener> = new Map();\n\n return {\n get(name: Name): EventListener | undefined {\n return currentListeners.get(name);\n },\n set(name: Name, listener: EventListener | undefined): void {\n const current = currentListeners.get(name);\n\n current && target.removeEventListener(name, current);\n\n if (listener) {\n target.addEventListener(name, listener);\n currentListeners.set(name, listener);\n } else {\n currentListeners.delete(name);\n }\n }\n };\n}\n","// Since this is a bypass, we will relax some ESLint rules.\n// All classes/properties defined here are in W3C Web Speech API.\n\n/* eslint class-methods-use-this: \"off\" */\n/* eslint getter-return: \"off\" */\n/* eslint max-classes-per-file: [\"error\", 4] */\n/* eslint no-empty-function: \"off\" */\n\nimport createOnEventShim from './private/createOnEventShim';\n\nclass SpeechSynthesisEvent extends Event {\n constructor(type, utterance) {\n super(type);\n\n this._utterance = utterance;\n }\n\n get charIndex() {\n return 0;\n }\n\n get elapsedTime() {\n return 0;\n }\n\n get name() {\n // It is expected to return `undefined`, keeping the function empty to reduce footprint.\n }\n\n get utterance() {\n return this._utterance;\n }\n}\n\nclass SpeechSynthesisUtterance extends EventTarget {\n constructor(text) {\n super();\n\n this._lang = 'en-US';\n this._pitch = 1;\n this._rate = 1;\n this._text = text;\n this._voice = null;\n this._volume = 1;\n\n this._shim = createOnEventShim(this);\n }\n\n get lang() {\n return this._lang;\n }\n\n set lang(value) {\n this._lang = value;\n }\n\n get pitch() {\n return this._pitch;\n }\n\n set pitch(value) {\n this._pitch = value;\n }\n\n get rate() {\n return this._rate;\n }\n\n set rate(value) {\n this._rate = value;\n }\n\n get text() {\n return this._text;\n }\n\n set text(value) {\n this._text = value;\n }\n\n get voice() {\n return this._voice;\n }\n\n set voice(value) {\n this._voice = value;\n }\n\n get volume() {\n return this._volume;\n }\n\n set volume(value) {\n this._volume = value;\n }\n\n get onboundary() {\n return this._shim.get('boundary');\n }\n\n set onboundary(value) {\n this._shim.set('boundary', value);\n }\n\n get onend() {\n return this._shim.get('end');\n }\n\n set onend(value) {\n this._shim.set('end', value);\n }\n\n get onerror() {\n return this._shim.get('error');\n }\n\n set onerror(value) {\n this._shim.set('error', value);\n }\n\n get onmark() {\n return this._shim.get('mark');\n }\n\n set onmark(value) {\n this._shim.set('mark', value);\n }\n\n get onpause() {\n return this._shim.get('pause');\n }\n\n set onpause(value) {\n this._shim.set('pause', value);\n }\n\n get onresume() {\n return this._shim.get('resume');\n }\n\n set onresume(value) {\n this._shim.set('resume', value);\n }\n\n get onstart() {\n return this._shim.get('start');\n }\n\n set onstart(value) {\n this._shim.set('start', value);\n }\n}\n\nclass SpeechSynthesisVoice {\n get default() {\n return true;\n }\n\n get lang() {\n return 'en-US';\n }\n\n get localService() {\n return true;\n }\n\n get name() {\n return 'English (US)';\n }\n\n get voiceURI() {\n return 'English (US)';\n }\n}\n\nclass SpeechSynthesis extends EventTarget {\n constructor() {\n super();\n\n this._shim = createOnEventShim(this);\n }\n\n get paused() {\n return false;\n }\n\n get pending() {\n return false;\n }\n\n get speaking() {\n return false;\n }\n\n cancel() {}\n\n getVoices() {\n return [new SpeechSynthesisVoice()];\n }\n\n pause() {\n throw new Error('pause is not implemented.');\n }\n\n resume() {\n throw new Error('resume is not implemented.');\n }\n\n speak(utterance) {\n utterance.dispatchEvent(new SpeechSynthesisEvent('start', utterance));\n utterance.dispatchEvent(new SpeechSynthesisEvent('end', utterance));\n }\n\n get onvoiceschanged() {\n return this._shim.get('voiceschanged');\n }\n\n set onvoiceschanged(value) {\n this._shim.set('voiceschanged', value);\n }\n}\n\nconst speechSynthesis = new SpeechSynthesis();\n\nexport { SpeechSynthesisEvent, SpeechSynthesisUtterance, SpeechSynthesisVoice, speechSynthesis };\n","import { hooks } from 'botframework-webchat-api';\nimport { useEffect } from 'react';\n\nimport { checkSupport as supportWorker } from '../../Utils/downscaleImageToDataURL/downscaleImageToDataURLUsingWorker';\nimport { speechSynthesis } from './BypassSpeechSynthesisPonyfill';\nimport useWebSpeechPonyfill from '../useWebSpeechPonyfill';\n\nconst { useTrackDimension } = hooks;\n\nconst Tracker = () => {\n const [webSpeechPonyfill] = useWebSpeechPonyfill();\n const trackDimension = useTrackDimension();\n\n const speechRecognitionCapability = !!webSpeechPonyfill.SpeechRecognition;\n const speechSynthesisCapability =\n webSpeechPonyfill.speechSynthesis && webSpeechPonyfill.speechSynthesis !== speechSynthesis;\n\n useEffect(() => {\n trackDimension('capability:downscaleImage:workerType', supportWorker() ? 'web worker' : 'main');\n trackDimension('capability:renderer', 'html');\n\n // TODO: [P2] #2937 Differentiate between Cognitive Services and browser speech\n trackDimension('prop:speechRecognition', !!speechRecognitionCapability + '');\n trackDimension('prop:speechSynthesis', !!speechSynthesisCapability + '');\n }, [trackDimension, speechRecognitionCapability, speechSynthesisCapability]);\n\n return null;\n};\n\nexport default Tracker;\n","/* eslint complexity: [\"error\", 21] */\nimport { ActivityMiddleware } from 'botframework-webchat-api';\nimport { createActivityPolymiddlewareFromLegacy, type Polymiddleware } from 'botframework-webchat-api/middleware.js';\nimport {\n getActivityLivestreamingMetadata,\n getOrgSchemaMessage,\n isVoiceTranscriptActivity,\n type WebChatActivity\n} from 'botframework-webchat-core';\nimport { type OrgSchemaCreativeWork } from 'botframework-webchat-core/org-schema.js';\nimport React from 'react';\n\nimport CarouselLayout from '../../Activity/CarouselLayout';\nimport StackedLayout from '../../Activity/StackedLayout';\n\n// TODO: [P4] Can we simplify these if-statement to something more readable?\nfunction shouldFilterActivity(activity: WebChatActivity, messageThing: OrgSchemaCreativeWork): boolean {\n const { type } = activity;\n if (\n type === 'conversationUpdate' ||\n (type === 'event' && !isVoiceTranscriptActivity(activity)) ||\n type === 'invoke' ||\n // Do not show content for contentless livestream interims, or finalized activity without content.\n (type === 'typing' &&\n (getActivityLivestreamingMetadata(activity)?.type === 'contentless' ||\n !(activity['text'] || activity.attachments?.length > 0 || messageThing?.abstract.length))) ||\n (type === 'message' &&\n // Do not show postback\n (activity.channelData?.postBack ||\n // Do not show messageBack if displayText is undefined\n (activity.channelData?.messageBack && !activity.channelData.messageBack.displayText) ||\n // Do not show empty bubbles (no text and attachments)\n !(activity.text || activity.attachments?.length || messageThing?.abstract.length)))\n ) {\n return true;\n }\n\n return false;\n}\n\n/**\n * @deprecated Use `defaultActivityPolymiddleware` instead. The `createCoreActivityMiddleware` will be removed on or after 2028-03-16.\n */\nfunction createCoreActivityMiddleware(): readonly ActivityMiddleware[] {\n return Object.freeze([\n () =>\n next =>\n (...args) => {\n const [{ activity }] = args;\n const isMessageOrTyping = activity.type === 'message' || activity.type === 'typing';\n\n const messageThing = getOrgSchemaMessage(activity.entities);\n\n // Filter out activities that should not visible.\n if (shouldFilterActivity(activity, messageThing)) {\n return false;\n } else if (isMessageOrTyping || isVoiceTranscriptActivity(activity)) {\n if (\n isMessageOrTyping &&\n (activity.attachments?.length || 0) > 1 &&\n activity.attachmentLayout === 'carousel'\n ) {\n // The following line is not a React functional component, it's a render function called by useCreateActivityRenderer() hook.\n // The function signature need to be compatible with older version of activity middleware, which was:\n //\n // renderActivity(\n // renderAttachment: ({ activity, attachment }) => React.Element\n // ) => React.Element\n\n return function renderCarouselLayout(renderAttachment, props) {\n typeof props === 'undefined' &&\n console.warn(\n 'botframework-webchat: One or more arguments were missing after passing through the activity middleware. Please check your custom activity middleware to make sure it passes all arguments.'\n );\n\n return <CarouselLayout activity={activity} renderAttachment={renderAttachment} {...props} />;\n };\n }\n\n // The following line is not a React functional component, it's a render function called by useCreateActivityRenderer() hook.\n return function renderStackedLayout(renderAttachment, props) {\n typeof props === 'undefined' &&\n console.warn(\n 'botframework-webchat: One or more arguments were missing after passing through the activity middleware. Please check your custom activity middleware to make sure it passes all arguments.'\n );\n\n return <StackedLayout activity={activity} renderAttachment={renderAttachment} {...props} />;\n };\n }\n\n return next(...args);\n }\n ]);\n}\n\nconst defaultActivityPolymiddleware: Polymiddleware = createActivityPolymiddlewareFromLegacy(\n ...createCoreActivityMiddleware()\n);\n\nexport default defaultActivityPolymiddleware;\nexport {\n // Exporting `createCoreActivityMiddleware()` for backward compatibility.\n createCoreActivityMiddleware\n};\n","import { useStyles } from '@msinternal/botframework-webchat-styles/react';\nimport { hooks } from 'botframework-webchat-api';\nimport {\n Composer as FilmComposer,\n createBasicStyleSet as createBasicStyleSetForReactFilm,\n Flipper,\n useScrollBarWidth,\n useScrolling,\n useStyleSetClassNames as useReactFilmStyleSetClassNames\n} from 'react-film';\n\nimport cx from 'classnames';\nimport PropTypes from 'prop-types';\nimport React, { memo, useMemo } from 'react';\n\nimport CarouselFilmStrip from './CarouselFilmStrip';\nimport useNonce from '../hooks/internal/useNonce';\n\nimport styles from './CarouselLayout.module.css';\n\nconst { useDirection, useLocalizer, useStyleOptions } = hooks;\n\nconst CarouselLayoutCore = ({\n activity,\n hideTimestamp,\n renderActivityStatus,\n renderAttachment,\n renderAvatar,\n showCallout\n}) => {\n const [{ root: filmRootClassName }] = useReactFilmStyleSetClassNames();\n const [direction] = useDirection();\n const [scrollBarWidth] = useScrollBarWidth();\n const [scrolling] = useScrolling();\n const leftSideFlipper = direction === 'rtl' ? '>' : '<';\n const localize = useLocalizer();\n const rightSideFlipper = direction === 'rtl' ? '<' : '>';\n const classNames = useStyles(styles);\n\n const nextAlt = localize('CAROUSEL_FLIPPER_NEXT_ALT');\n const previousAlt = localize('CAROUSEL_FLIPPER_PREVIOUS_ALT');\n\n const leftFlipperAriaLabel = direction === 'rtl' ? nextAlt : previousAlt;\n const rightFlipperAriaLabel = direction === 'rtl' ? previousAlt : nextAlt;\n\n return (\n <div className={cx(classNames['carousel-layout'], filmRootClassName)}>\n <div className={cx('react-film__main', { 'react-film__main--scrolling': scrolling })}>\n <CarouselFilmStrip\n activity={activity}\n hideTimestamp={hideTimestamp}\n renderActivityStatus={renderActivityStatus}\n renderAttachment={renderAttachment}\n renderAvatar={renderAvatar}\n showCallout={showCallout}\n />\n {scrollBarWidth !== '100%' && (\n <React.Fragment>\n <Flipper aria-label={leftFlipperAriaLabel} blurFocusOnClick={true} mode=\"left\">\n {leftSideFlipper}\n </Flipper>\n <Flipper aria-label={rightFlipperAriaLabel} blurFocusOnClick={true} mode=\"right\">\n {rightSideFlipper}\n </Flipper>\n </React.Fragment>\n )}\n </div>\n </div>\n );\n};\n\nCarouselLayoutCore.defaultProps = {\n hideTimestamp: false,\n renderActivityStatus: false,\n renderAvatar: false,\n showCallout: true\n};\n\nCarouselLayoutCore.propTypes = {\n activity: PropTypes.shape({\n attachments: PropTypes.array\n }).isRequired,\n hideTimestamp: PropTypes.bool,\n renderActivityStatus: PropTypes.oneOfType([PropTypes.oneOf([false]), PropTypes.func]),\n renderAttachment: PropTypes.func.isRequired,\n renderAvatar: PropTypes.oneOfType([PropTypes.oneOf([false]), PropTypes.func]),\n showCallout: PropTypes.bool\n};\n\nconst CarouselLayout = props => {\n const { activity: { attachments = [] } = {} } = props;\n const [direction] = useDirection();\n const [nonce] = useNonce();\n const filmStyleSet = useMemo(() => createBasicStyleSetForReactFilm({ cursor: null }), []);\n const [{ stylesRoot }] = useStyleOptions();\n const styleOptions = useMemo(() => ({ stylesRoot }), [stylesRoot]);\n\n return (\n <FilmComposer\n dir={direction}\n nonce={nonce}\n numItems={attachments.length}\n styleOptions={styleOptions}\n styleSet={filmStyleSet}\n >\n <CarouselLayoutCore {...props} />\n </FilmComposer>\n );\n};\n\nCarouselLayout.defaultProps = {\n ...CarouselLayoutCore.defaultProps\n};\n\nCarouselLayout.propTypes = {\n ...CarouselLayoutCore.propTypes\n};\n\nexport default memo(CarouselLayout);\n","/* eslint complexity: [\"error\", 30] */\n\nimport { hooks } from 'botframework-webchat-api';\nimport { useStyles } from '@msinternal/botframework-webchat-styles/react';\nimport { useItemContainerCallbackRef, useScrollableCallbackRef } from 'react-film';\nimport cx from 'classnames';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport Bubble from './Bubble';\nimport CarouselFilmStripAttachment from './CarouselFilmStripAttachment';\nimport isZeroOrPositive from '../Utils/isZeroOrPositive';\nimport ScreenReaderText from '../ScreenReaderText';\nimport textFormatToContentType from '../Utils/textFormatToContentType';\n\nimport styles from './CarouselFilmStrip.module.css';\n\nconst { useAvatarForBot, useAvatarForUser, useLocalizer, useStyleOptions } = hooks;\n\nconst CarouselFilmStrip = ({\n activity,\n className,\n hideTimestamp,\n renderActivityStatus,\n renderAttachment,\n renderAvatar,\n showCallout\n}) => {\n const [{ bubbleNubOffset, bubbleNubSize, bubbleFromUserNubOffset, bubbleFromUserNubSize }] = useStyleOptions();\n const [{ initials: botInitials }] = useAvatarForBot();\n const [{ initials: userInitials }] = useAvatarForUser();\n const localize = useLocalizer();\n const showActivityStatus = typeof renderActivityStatus === 'function';\n const classNames = useStyles(styles);\n\n const itemContainerCallbackRef = useItemContainerCallbackRef();\n const scrollableCallbackRef = useScrollableCallbackRef();\n\n const {\n attachments = [],\n channelData: { messageBack: { displayText: messageBackDisplayText } = {} } = {},\n from: { role } = {},\n text,\n textFormat\n } = activity;\n\n const activityDisplayText = messageBackDisplayText || text;\n const fromUser = role === 'user';\n\n const greetingAlt = (\n fromUser ? localize('ACTIVITY_YOU_SAID_ALT') : localize('ACTIVITY_BOT_SAID_ALT', botInitials || '')\n ).replace(/\\s{2,}/gu, ' ');\n\n const initials = fromUser ? userInitials : botInitials;\n const nubOffset = fromUser ? bubbleFromUserNubOffset : bubbleNubOffset;\n const nubSize = fromUser ? bubbleFromUserNubSize : bubbleNubSize;\n const otherInitials = fromUser ? botInitials : userInitials;\n const otherNubSize = fromUser ? bubbleNubSize : bubbleFromUserNubSize;\n\n const hasAvatar = initials || typeof initials === 'string';\n const hasOtherAvatar = otherInitials || typeof otherInitials === 'string';\n const hasNub = typeof nubSize === 'number';\n const hasOtherNub = typeof otherNubSize === 'number';\n const topAlignedCallout = isZeroOrPositive(nubOffset);\n\n const extraTrailing = !hasOtherAvatar && hasOtherNub; // This is for bot message with user nub and no user avatar. And vice versa.\n\n const showAvatar = showCallout && hasAvatar && !!renderAvatar;\n const showNub = showCallout && hasNub && (topAlignedCallout || !attachments.length);\n\n const hideNub = hasNub && !showNub;\n\n return (\n <div\n className={cx(\n classNames['carousel-filmstrip'],\n {\n [classNames['carousel-filmstrip--extra-trailing']]: extraTrailing,\n [classNames['carousel-filmstrip--hide-avatar']]: hasAvatar && !showAvatar,\n [classNames['carousel-filmstrip--hide-nub']]: hideNub,\n [classNames['carousel-filmstrip--no-message']]: !activityDisplayText,\n [classNames['carousel-filmstrip--show-avatar']]: showAvatar,\n [classNames['carousel-filmstrip--show-nub']]: showNub,\n [classNames['carousel-filmstrip--top-callout']]: topAlignedCallout\n },\n 'react-film__filmstrip',\n className\n )}\n ref={scrollableCallbackRef}\n >\n <div className={classNames['carousel-filmstrip__main']}>\n <div className={classNames['carousel-filmstrip__avatar-gutter']}>\n {showAvatar && renderAvatar({ activity })}\n </div>\n <div className={classNames['carousel-filmstrip__content']}>\n {!!activityDisplayText && (\n <div aria-roledescription=\"message\" className={classNames['carousel-filmstrip__message']} role=\"group\">\n <ScreenReaderText text={greetingAlt} />\n <Bubble\n className={classNames['carousel-filmstrip__bubble']}\n fromUser={fromUser}\n nub={showNub || ((hasAvatar || hasNub) && 'hidden')}\n >\n {renderAttachment({\n activity,\n attachment: {\n content: activityDisplayText,\n contentType: textFormatToContentType(textFormat)\n }\n })}\n </Bubble>\n <div className={classNames['carousel-filmstrip__filler']} />\n </div>\n )}\n <div className={classNames['carousel-filmstrip__complimentary']}>\n <div className={classNames['carousel-filmstrip__nub-pad']} />\n <div className={classNames['carousel-filmstrip__complimentary-content']}>\n <ul\n className={cx(classNames['carousel-filmstrip__attachments'], 'react-film__filmstrip__list')}\n ref={itemContainerCallbackRef}\n >\n {attachments.map((attachment, index) => (\n <CarouselFilmStripAttachment\n activity={activity}\n attachment={attachment}\n fromUser={fromUser}\n hasAvatar={hasAvatar}\n hideNub={hideNub}\n index={index}\n /* Attachments do not have an ID; it is always indexed by number */\n // eslint-disable-next-line react/no-array-index-key\n key={index}\n renderAttachment={renderAttachment}\n showAvatar={showAvatar}\n showNub={showNub}\n />\n ))}\n </ul>\n </div>\n </div>\n </div>\n <div className={classNames['carousel-filmstrip__alignment-pad']} />\n </div>\n {showActivityStatus && (\n <div className={classNames['carousel-filmstrip__status']}>\n <div className={classNames['carousel-filmstrip__avatar-gutter']} />\n <div className={classNames['carousel-filmstrip__nub-pad']} />\n {renderActivityStatus({ hideTimestamp })}\n </div>\n )}\n </div>\n );\n};\n\nCarouselFilmStrip.defaultProps = {\n className: '',\n hideTimestamp: false,\n renderActivityStatus: false,\n renderAvatar: false,\n showCallout: false\n};\n\nCarouselFilmStrip.propTypes = {\n activity: PropTypes.shape({\n attachments: PropTypes.array,\n channelData: PropTypes.shape({\n messageBack: PropTypes.shape({\n displayText: PropTypes.string\n })\n }),\n from: PropTypes.shape({\n role: PropTypes.string.isRequired\n }).isRequired,\n text: PropTypes.string,\n textFormat: PropTypes.string,\n timestamp: PropTypes.string\n }).isRequired,\n className: PropTypes.string,\n hideTimestamp: PropTypes.bool,\n renderActivityStatus: PropTypes.oneOfType([PropTypes.oneOf([false]), PropTypes.func]),\n renderAttachment: PropTypes.func.isRequired,\n renderAvatar: PropTypes.oneOfType([PropTypes.oneOf([false]), PropTypes.func]),\n showCallout: PropTypes.bool\n};\n\nexport default CarouselFilmStrip;\n","/* eslint no-magic-numbers: [\"error\", { \"ignore\": [-1, 0, 1, 2, 10] }] */\n\nimport { reactNode, validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport { useStyles } from '@msinternal/botframework-webchat-styles/react';\nimport { hooks } from 'botframework-webchat-api';\nimport cx from 'classnames';\nimport React, { memo } from 'react';\nimport { boolean, literal, object, optional, pipe, readonly, string, union, type InferInput } from 'valibot';\n\nimport isZeroOrPositive from '../Utils/isZeroOrPositive';\n\nimport styles from './Bubble.module.css';\n\nconst { useStyleOptions } = hooks;\n\nfunction acuteNubSVG(nubSize, strokeWidth, side, upSideDown = false, classNames) {\n if (typeof nubSize !== 'number') {\n return false;\n }\n\n const halfNubSize = nubSize / 2;\n const halfStrokeWidth = strokeWidth / 2;\n\n // Horizontally mirror the nub if it is from user\n const horizontalTransform =\n side === 'bot' ? '' : `translate(${halfNubSize} 0) scale(-1 1) translate(${-halfNubSize} 0)`;\n\n // Vertically mirror the nub if it is up-side-down\n const verticalTransform = upSideDown ? `translate(0 ${halfNubSize}) scale(1 -1) translate(0 ${-halfNubSize})` : '';\n\n const p1 = [nubSize, halfStrokeWidth].join(' ');\n const p2 = [strokeWidth, halfStrokeWidth].join(' ');\n const p3 = [nubSize + strokeWidth, nubSize + halfStrokeWidth].join(' ');\n\n return (\n <svg\n className={classNames['bubble__nub']}\n version=\"1.1\"\n viewBox={`0 0 ${nubSize} ${nubSize}`}\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g transform={`${horizontalTransform} ${verticalTransform}`}>\n <path className={classNames['bubble__nub-outline']} d={`M${p1} L${p2} L${p3}`} />\n </g>\n </svg>\n );\n}\n\nconst bubblePropsSchema = pipe(\n object({\n 'aria-hidden': optional(boolean()),\n children: optional(reactNode()),\n className: optional(string()),\n fromUser: optional(boolean()),\n nub: optional(union([boolean(), literal('hidden')]))\n }),\n readonly()\n);\n\ntype BubbleProps = InferInput<typeof bubblePropsSchema>;\n\nfunction Bubble(props: BubbleProps) {\n const {\n 'aria-hidden': ariaHidden,\n children,\n className,\n fromUser,\n nub = false\n } = validateProps(bubblePropsSchema, props);\n\n const [\n {\n bubbleBorderWidth,\n bubbleFromUserBorderWidth,\n bubbleFromUserNubSize,\n bubbleNubSize,\n bubbleNubOffset,\n bubbleFromUserNubOffset\n }\n ] = useStyleOptions();\n const classNames = useStyles(styles);\n\n const { borderWidth, nubOffset, nubSize, side } = fromUser\n ? {\n borderWidth: bubbleFromUserBorderWidth,\n nubOffset: bubbleFromUserNubOffset,\n nubSize: bubbleFromUserNubSize,\n side: 'user'\n }\n : {\n borderWidth: bubbleBorderWidth,\n nubOffset: bubbleNubOffset,\n nubSize: bubbleNubSize,\n side: 'bot'\n };\n\n return (\n <div\n aria-hidden={ariaHidden}\n className={cx(\n classNames.bubble,\n {\n [classNames['bubble--from-user']]: fromUser,\n [classNames['bubble--hide-nub']]: nub !== true && nub !== false,\n [classNames['bubble--nub-on-top']]: isZeroOrPositive(nubOffset),\n [classNames['bubble--show-nub']]: nub === true\n },\n className\n )}\n >\n <div className={classNames['bubble__nub-pad']} />\n <div className={classNames['bubble__content']}>{children}</div>\n {nub === true && acuteNubSVG(nubSize, borderWidth, side, !isZeroOrPositive(nubOffset), classNames)}\n </div>\n );\n}\n\nexport default memo(Bubble);\nexport { bubblePropsSchema, type BubbleProps };\n","import \"/__w/1/s/BotFramework-WebChat/packages/component/src/Activity/Bubble.module_built.css\";\nconst classes = {\"bubble__nub\":\"wYVITZq_bubble__nub\",\"bubble__content\":\"wYVITZq_bubble__content\",\"bubble__nub-pad\":\"wYVITZq_bubble__nub-pad\",\"bubble--show-nub\":\"wYVITZq_bubble--show-nub\",\"bubble--nub-on-top\":\"wYVITZq_bubble--nub-on-top\",\"bubble--hide-nub\":\"wYVITZq_bubble--hide-nub\",\"bubble--from-user\":\"wYVITZq_bubble--from-user\",\"bubble__nub-outline\":\"wYVITZq_bubble__nub-outline\",\"bubble\":\"wYVITZq_bubble\"}\nexport default classes\n\nconst _bubble__nub0 = classes[\"bubble__nub\"]\nexport { _bubble__nub0 as \"bubble__nub\" }\n\nconst _bubble__content0 = classes[\"bubble__content\"]\nexport { _bubble__content0 as \"bubble__content\" }\n\nconst _bubble__nub_pad0 = classes[\"bubble__nub-pad\"]\nexport { _bubble__nub_pad0 as \"bubble__nub-pad\" }\n\nconst _bubble__show_nub0 = classes[\"bubble--show-nub\"]\nexport { _bubble__show_nub0 as \"bubble--show-nub\" }\n\nconst _bubble__nub_on_top0 = classes[\"bubble--nub-on-top\"]\nexport { _bubble__nub_on_top0 as \"bubble--nub-on-top\" }\n\nconst _bubble__hide_nub0 = classes[\"bubble--hide-nub\"]\nexport { _bubble__hide_nub0 as \"bubble--hide-nub\" }\n\nconst _bubble__from_user0 = classes[\"bubble--from-user\"]\nexport { _bubble__from_user0 as \"bubble--from-user\" }\n\nconst _bubble__nub_outline0 = classes[\"bubble__nub-outline\"]\nexport { _bubble__nub_outline0 as \"bubble__nub-outline\" }\n\nconst _bubble0 = classes[\"bubble\"]\nexport { _bubble0 as \"bubble\" }\n","import { hooks } from 'botframework-webchat-api';\nimport { useStyles } from '@msinternal/botframework-webchat-styles/react';\nimport cx from 'classnames';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport Bubble from './Bubble';\nimport ScreenReaderText from '../ScreenReaderText';\n\nimport styles from './CarouselFilmStripAttachment.module.css';\n\nconst { useLocalizer } = hooks;\n\nconst CarouselFilmStripAttachment = ({\n activity,\n attachment,\n className,\n fromUser,\n hasAvatar,\n hideNub,\n index,\n renderAttachment,\n showAvatar,\n showNub\n}) => {\n const localize = useLocalizer();\n const classNames = useStyles(styles);\n\n const attachedAlt = localize(fromUser ? 'ACTIVITY_YOU_ATTACHED_ALT' : 'ACTIVITY_BOT_ATTACHED_ALT');\n\n return (\n <li\n aria-roledescription=\"attachment\"\n className={cx(\n classNames['carousel-filmstrip-attachment'],\n {\n [classNames['carousel-filmstrip-attachment--hide-avatar']]: hasAvatar && !showAvatar,\n [classNames['carousel-filmstrip-attachment--hide-nub']]: hideNub,\n [classNames['carousel-filmstrip-attachment--show-avatar']]: showAvatar,\n [classNames['carousel-filmstrip-attachment--show-nub']]: showNub\n },\n 'react-film__filmstrip__item',\n className\n )}\n role=\"listitem\"\n tabIndex={0}\n >\n <ScreenReaderText text={attachedAlt} />\n <Bubble fromUser={fromUser} key={index} nub={false}>\n {renderAttachment({ activity, attachment })}\n <div className={classNames['carousel-filmstrip-attachment--focus']} />\n </Bubble>\n </li>\n );\n};\n\nCarouselFilmStripAttachment.defaultProps = {\n className: ''\n};\n\nCarouselFilmStripAttachment.propTypes = {\n activity: PropTypes.shape({\n attachments: PropTypes.array,\n from: PropTypes.shape({\n role: PropTypes.string.isRequired\n }).isRequired,\n text: PropTypes.string,\n textFormat: PropTypes.string,\n timestamp: PropTypes.string\n }).isRequired,\n attachment: PropTypes.shape({\n content: PropTypes.any\n }).isRequired,\n className: PropTypes.string,\n fromUser: PropTypes.any.isRequired,\n hasAvatar: PropTypes.any.isRequired,\n hideNub: PropTypes.bool.isRequired,\n index: PropTypes.number.isRequired,\n renderAttachment: PropTypes.func.isRequired,\n showAvatar: PropTypes.bool.isRequired,\n showNub: PropTypes.bool.isRequired\n};\n\nexport default CarouselFilmStripAttachment;\n","import \"/__w/1/s/BotFramework-WebChat/packages/component/src/Activity/CarouselFilmStripAttachment.module_built.css\";\nconst classes = {\"carousel-filmstrip-attachment--show-avatar\":\"waR7HEa_carousel-filmstrip-attachment--show-avatar\",\"carousel-filmstrip-attachment\":\"waR7HEa_carousel-filmstrip-attachment\",\"carousel-filmstrip-attachment--hide-nub\":\"waR7HEa_carousel-filmstrip-attachment--hide-nub\",\"carousel-filmstrip-attachment--show-nub\":\"waR7HEa_carousel-filmstrip-attachment--show-nub\",\"carousel-filmstrip-attachment--focus\":\"waR7HEa_carousel-filmstrip-attachment--focus\",\"carousel-filmstrip-attachment--hide-avatar\":\"waR7HEa_carousel-filmstrip-attachment--hide-avatar\"}\nexport default classes\n\nconst _carousel_filmstrip_attachment__show_avatar0 = classes[\"carousel-filmstrip-attachment--show-avatar\"]\nexport { _carousel_filmstrip_attachment__show_avatar0 as \"carousel-filmstrip-attachment--show-avatar\" }\n\nconst _carousel_filmstrip_attachment0 = classes[\"carousel-filmstrip-attachment\"]\nexport { _carousel_filmstrip_attachment0 as \"carousel-filmstrip-attachment\" }\n\nconst _carousel_filmstrip_attachment__hide_nub0 = classes[\"carousel-filmstrip-attachment--hide-nub\"]\nexport { _carousel_filmstrip_attachment__hide_nub0 as \"carousel-filmstrip-attachment--hide-nub\" }\n\nconst _carousel_filmstrip_attachment__show_nub0 = classes[\"carousel-filmstrip-attachment--show-nub\"]\nexport { _carousel_filmstrip_attachment__show_nub0 as \"carousel-filmstrip-attachment--show-nub\" }\n\nconst _carousel_filmstrip_attachment__focus0 = classes[\"carousel-filmstrip-attachment--focus\"]\nexport { _carousel_filmstrip_attachment__focus0 as \"carousel-filmstrip-attachment--focus\" }\n\nconst _carousel_filmstrip_attachment__hide_avatar0 = classes[\"carousel-filmstrip-attachment--hide-avatar\"]\nexport { _carousel_filmstrip_attachment__hide_avatar0 as \"carousel-filmstrip-attachment--hide-avatar\" }\n","import \"/__w/1/s/BotFramework-WebChat/packages/component/src/Activity/CarouselFilmStrip.module_built.css\";\nconst classes = {\"carousel-filmstrip--show-nub\":\"wzsijdG_carousel-filmstrip--show-nub\",\"carousel-filmstrip__content\":\"wzsijdG_carousel-filmstrip__content\",\"carousel-filmstrip__message\":\"wzsijdG_carousel-filmstrip__message\",\"carousel-filmstrip--top-callout\":\"wzsijdG_carousel-filmstrip--top-callout\",\"carousel-filmstrip__complimentary\":\"wzsijdG_carousel-filmstrip__complimentary\",\"carousel-filmstrip__filler\":\"wzsijdG_carousel-filmstrip__filler\",\"carousel-filmstrip__nub-pad\":\"wzsijdG_carousel-filmstrip__nub-pad\",\"carousel-filmstrip--hide-nub\":\"wzsijdG_carousel-filmstrip--hide-nub\",\"carousel-filmstrip__status\":\"wzsijdG_carousel-filmstrip__status\",\"carousel-filmstrip__alignment-pad\":\"wzsijdG_carousel-filmstrip__alignment-pad\",\"carousel-filmstrip--no-message\":\"wzsijdG_carousel-filmstrip--no-message\",\"carousel-filmstrip--hide-avatar\":\"wzsijdG_carousel-filmstrip--hide-avatar\",\"carousel-filmstrip__avatar-gutter\":\"wzsijdG_carousel-filmstrip__avatar-gutter\",\"carousel-filmstrip__bubble\":\"wzsijdG_carousel-filmstrip__bubble\",\"carousel-filmstrip__avatar\":\"wzsijdG_carousel-filmstrip__avatar\",\"carousel-filmstrip__main\":\"wzsijdG_carousel-filmstrip__main\",\"carousel-filmstrip\":\"wzsijdG_carousel-filmstrip\",\"carousel-filmstrip--extra-trailing\":\"wzsijdG_carousel-filmstrip--extra-trailing\",\"carousel-filmstrip--show-avatar\":\"wzsijdG_carousel-filmstrip--show-avatar\",\"carousel-filmstrip__attachments\":\"wzsijdG_carousel-filmstrip__attachments\",\"carousel-filmstrip__complimentary-content\":\"wzsijdG_carousel-filmstrip__complimentary-content\"}\nexport default classes\n\nconst _carousel_filmstrip__show_nub0 = classes[\"carousel-filmstrip--show-nub\"]\nexport { _carousel_filmstrip__show_nub0 as \"carousel-filmstrip--show-nub\" }\n\nconst _carousel_filmstrip__content0 = classes[\"carousel-filmstrip__content\"]\nexport { _carousel_filmstrip__content0 as \"carousel-filmstrip__content\" }\n\nconst _carousel_filmstrip__message0 = classes[\"carousel-filmstrip__message\"]\nexport { _carousel_filmstrip__message0 as \"carousel-filmstrip__message\" }\n\nconst _carousel_filmstrip__top_callout0 = classes[\"carousel-filmstrip--top-callout\"]\nexport { _carousel_filmstrip__top_callout0 as \"carousel-filmstrip--top-callout\" }\n\nconst _carousel_filmstrip__complimentary0 = classes[\"carousel-filmstrip__complimentary\"]\nexport { _carousel_filmstrip__complimentary0 as \"carousel-filmstrip__complimentary\" }\n\nconst _carousel_filmstrip__filler0 = classes[\"carousel-filmstrip__filler\"]\nexport { _carousel_filmstrip__filler0 as \"carousel-filmstrip__filler\" }\n\nconst _carousel_filmstrip__nub_pad0 = classes[\"carousel-filmstrip__nub-pad\"]\nexport { _carousel_filmstrip__nub_pad0 as \"carousel-filmstrip__nub-pad\" }\n\nconst _carousel_filmstrip__hide_nub0 = classes[\"carousel-filmstrip--hide-nub\"]\nexport { _carousel_filmstrip__hide_nub0 as \"carousel-filmstrip--hide-nub\" }\n\nconst _carousel_filmstrip__status0 = classes[\"carousel-filmstrip__status\"]\nexport { _carousel_filmstrip__status0 as \"carousel-filmstrip__status\" }\n\nconst _carousel_filmstrip__alignment_pad0 = classes[\"carousel-filmstrip__alignment-pad\"]\nexport { _carousel_filmstrip__alignment_pad0 as \"carousel-filmstrip__alignment-pad\" }\n\nconst _carousel_filmstrip__no_message0 = classes[\"carousel-filmstrip--no-message\"]\nexport { _carousel_filmstrip__no_message0 as \"carousel-filmstrip--no-message\" }\n\nconst _carousel_filmstrip__hide_avatar0 = classes[\"carousel-filmstrip--hide-avatar\"]\nexport { _carousel_filmstrip__hide_avatar0 as \"carousel-filmstrip--hide-avatar\" }\n\nconst _carousel_filmstrip__avatar_gutter0 = classes[\"carousel-filmstrip__avatar-gutter\"]\nexport { _carousel_filmstrip__avatar_gutter0 as \"carousel-filmstrip__avatar-gutter\" }\n\nconst _carousel_filmstrip__bubble0 = classes[\"carousel-filmstrip__bubble\"]\nexport { _carousel_filmstrip__bubble0 as \"carousel-filmstrip__bubble\" }\n\nconst _carousel_filmstrip__avatar0 = classes[\"carousel-filmstrip__avatar\"]\nexport { _carousel_filmstrip__avatar0 as \"carousel-filmstrip__avatar\" }\n\nconst _carousel_filmstrip__main0 = classes[\"carousel-filmstrip__main\"]\nexport { _carousel_filmstrip__main0 as \"carousel-filmstrip__main\" }\n\nconst _carousel_filmstrip0 = classes[\"carousel-filmstrip\"]\nexport { _carousel_filmstrip0 as \"carousel-filmstrip\" }\n\nconst _carousel_filmstrip__extra_trailing0 = classes[\"carousel-filmstrip--extra-trailing\"]\nexport { _carousel_filmstrip__extra_trailing0 as \"carousel-filmstrip--extra-trailing\" }\n\nconst _carousel_filmstrip__show_avatar0 = classes[\"carousel-filmstrip--show-avatar\"]\nexport { _carousel_filmstrip__show_avatar0 as \"carousel-filmstrip--show-avatar\" }\n\nconst _carousel_filmstrip__attachments0 = classes[\"carousel-filmstrip__attachments\"]\nexport { _carousel_filmstrip__attachments0 as \"carousel-filmstrip__attachments\" }\n\nconst _carousel_filmstrip__complimentary_content0 = classes[\"carousel-filmstrip__complimentary-content\"]\nexport { _carousel_filmstrip__complimentary_content0 as \"carousel-filmstrip__complimentary-content\" }\n","import \"/__w/1/s/BotFramework-WebChat/packages/component/src/Activity/CarouselLayout.module_built.css\";\nconst classes = {\"carousel-layout\":\"wtvQgqa_carousel-layout\"}\nexport default classes\n\nconst _carousel_layout0 = classes[\"carousel-layout\"]\nexport { _carousel_layout0 as \"carousel-layout\" }\n","/* eslint complexity: [\"error\", 50] */\n\nimport { useStyles } from '@msinternal/botframework-webchat-styles/react';\nimport type { RenderAttachment } from 'botframework-webchat-api';\nimport { hooks } from 'botframework-webchat-api';\nimport { ActivityBorderDecorator } from 'botframework-webchat-api/decorator.js';\nimport {\n getActivityLivestreamingMetadata,\n getOrgSchemaMessage,\n getVoiceActivityRole,\n getVoiceActivityText,\n isVoiceActivity,\n type WebChatActivity\n} from 'botframework-webchat-core';\nimport cx from 'classnames';\nimport React, { memo, useCallback, useMemo, type ReactNode } from 'react';\n\nimport ScreenReaderText from '../ScreenReaderText';\nimport isZeroOrPositive from '../Utils/isZeroOrPositive';\nimport getFirstBaseOfSoftwareSourceCode from '../Utils/orgSchema/getFirstBaseOfSoftwareSourceCode';\nimport textFormatToContentType from '../Utils/textFormatToContentType';\nimport useUniqueId from '../hooks/internal/useUniqueId';\nimport { useGetLogicalGroupKey } from '../providers/ActivityLogicalGrouping';\nimport AttachmentRow from './AttachmentRow';\nimport Bubble from './Bubble';\nimport CodeBlockContent from './CodeBlockContent';\nimport CollapsibleContent from './CollapsibleContent';\nimport StackedLayoutMain from './StackedLayoutMain';\nimport StackedLayoutMessageStatus from './StackedLayoutMessageStatus';\nimport StackedLayoutRoot from './StackedLayoutRoot';\nimport StackedLayoutStatus from './StackedLayoutStatus';\n\nimport styles from './StackedLayout.module.css';\n\nconst { useAvatarForBot, useAvatarForUser, useLocalizer, useGetKeyByActivity, useStyleOptions } = hooks;\n\ntype StackedLayoutInnerProps = Readonly<{\n activity: WebChatActivity;\n children?: ReactNode | undefined;\n fromUser: boolean;\n hasAvatar: boolean;\n hasDisplayText: boolean;\n hasNub: boolean;\n id: string;\n renderAvatar?: false | (() => Exclude<ReactNode, boolean | null | undefined>) | undefined;\n renderBubbleContent: (title?: string | undefined, showStatus?: boolean) => ReactNode;\n showAvatar?: boolean | undefined;\n showNub?: boolean | undefined;\n}>;\n\nconst StackedLayoutInner = memo(\n ({\n activity,\n children,\n fromUser,\n hasAvatar,\n hasDisplayText,\n hasNub,\n id,\n renderAvatar,\n renderBubbleContent,\n showAvatar,\n showNub\n }: StackedLayoutInnerProps) => {\n const [{ initials: botInitials }] = useAvatarForBot();\n const localize = useLocalizer();\n const classNames = useStyles(styles);\n\n const messageThing = useMemo(() => getOrgSchemaMessage(activity.entities), [activity]);\n const greetingAlt = (\n fromUser ? localize('ACTIVITY_YOU_SAID_ALT') : localize('ACTIVITY_BOT_SAID_ALT', botInitials || '')\n ).replace(/\\s{2,}/gu, ' ');\n\n return (\n <StackedLayoutMain avatar={showAvatar && renderAvatar && renderAvatar()}>\n {!!(hasDisplayText || messageThing?.abstract[0]) && (\n <div\n aria-roledescription=\"message\"\n className={cx(classNames['stacked-layout__message-row'])}\n // Disable \"Prop `id` is forbidden on DOM Nodes\" rule because we are using the ID prop for accessibility.\n /* eslint-disable-next-line react/forbid-dom-props */\n id={id}\n role=\"group\"\n >\n <ScreenReaderText text={greetingAlt} />\n <Bubble\n className={classNames['stacked-layout__message']}\n fromUser={fromUser}\n nub={showNub || (hasAvatar || hasNub ? 'hidden' : false)}\n >\n <ActivityBorderDecorator activity={activity}>\n {renderBubbleContent(messageThing?.abstract[0])}\n </ActivityBorderDecorator>\n </Bubble>\n </div>\n )}\n <div className={classNames['stacked-layout__attachment-list']}>{children}</div>\n </StackedLayoutMain>\n );\n }\n);\n\nStackedLayoutInner.displayName = 'StackedLayoutInner';\n\ntype StackedLayoutProps = Readonly<{\n activity: WebChatActivity;\n hideTimestamp?: boolean | undefined;\n renderActivityStatus?: ((options: { hideTimestamp: boolean }) => ReactNode) | undefined;\n renderAttachment?: RenderAttachment | undefined;\n renderAvatar?: false | (() => Exclude<ReactNode, boolean | null | undefined>) | undefined;\n showCallout?: boolean | undefined;\n}>;\n\nconst StackedLayout = ({\n activity,\n hideTimestamp,\n renderActivityStatus,\n renderAttachment,\n renderAvatar,\n showCallout\n}: StackedLayoutProps) => {\n const [styleOptions] = useStyleOptions();\n const [{ initials: botInitials }] = useAvatarForBot();\n const [{ initials: userInitials }] = useAvatarForUser();\n const ariaLabelId = useUniqueId('webchat__stacked-layout__id');\n const localize = useLocalizer();\n const classNames = useStyles(styles);\n\n const { bubbleNubOffset, bubbleNubSize, bubbleFromUserNubOffset, bubbleFromUserNubSize } = styleOptions;\n\n const isMessageOrTyping = activity.type === 'message' || activity.type === 'typing';\n\n const attachments = useMemo(() => (isMessageOrTyping && activity.attachments) || [], [activity, isMessageOrTyping]);\n const fromUser = activity.from.role === 'user' || getVoiceActivityRole(activity) === 'user';\n const messageBackDisplayText: string = (isMessageOrTyping && activity.channelData?.messageBack?.displayText) || '';\n const messageThing = useMemo(() => getOrgSchemaMessage(activity.entities), [activity]);\n const isCollapsible = useMemo(() => messageThing?.keywords?.includes('Collapsible'), [messageThing]);\n\n const creativeWorkStatus = messageThing?.creativeWorkStatus[0];\n const isLivestreaming = !!getActivityLivestreamingMetadata(activity);\n const activityDisplayText = isMessageOrTyping\n ? messageBackDisplayText || activity.text\n : isLivestreaming && 'text' in activity\n ? (activity.text as string)\n : isVoiceActivity(activity)\n ? getVoiceActivityText(activity)\n : '';\n\n const initials = fromUser ? userInitials : botInitials;\n const nubOffset = fromUser ? bubbleFromUserNubOffset : bubbleNubOffset;\n const nubSize = fromUser ? bubbleFromUserNubSize : bubbleNubSize;\n const otherInitials = fromUser ? botInitials : userInitials;\n const otherNubSize = fromUser ? bubbleNubSize : bubbleFromUserNubSize;\n const activityKey = useGetKeyByActivity()(activity);\n const isInGroup = !!useGetLogicalGroupKey()(activityKey);\n\n const hasAvatar = (initials || typeof initials === 'string') && !isInGroup;\n const hasOtherAvatar = otherInitials || typeof otherInitials === 'string';\n const hasNub = typeof nubSize === 'number';\n const hasOtherNub = typeof otherNubSize === 'number';\n const topAlignedCallout = isZeroOrPositive(nubOffset);\n\n const extraTrailing = !hasOtherAvatar && hasOtherNub; // This is for bot message with user nub and no user avatar. And vice versa.\n\n const showAvatar = showCallout && hasAvatar && !!renderAvatar;\n const showNub = !isInGroup && showCallout && hasNub && (topAlignedCallout || !attachments?.length);\n\n const showStatus = !!creativeWorkStatus || isInGroup;\n\n const renderMainBubbleContent = useCallback(\n (title = '', withStatus = true) => (\n <div className={classNames['stacked-layout__bubble']}>\n {withStatus && showStatus && <StackedLayoutMessageStatus creativeWorkStatus={creativeWorkStatus} />}\n {title && <div className={classNames['stacked-layout__title']}>{title}</div>}\n {activityDisplayText &&\n renderAttachment({\n activity,\n attachment: {\n content: activityDisplayText,\n contentType: textFormatToContentType('textFormat' in activity ? activity.textFormat : undefined)\n }\n })}\n </div>\n ),\n [activity, activityDisplayText, classNames, creativeWorkStatus, renderAttachment, showStatus]\n );\n\n const attachmentChildren = useMemo(() => {\n const syntheticAttachments = [];\n\n const attachmentAlt = localize(\n fromUser ? 'ACTIVITY_YOU_ATTACHED_ALT' : 'ACTIVITY_BOT_ATTACHED_ALT',\n otherInitials || ''\n );\n\n if (isCollapsible && 'text' in activity && activity.text) {\n syntheticAttachments.push(\n <AttachmentRow\n attachedAlt={attachmentAlt}\n fromUser={fromUser}\n hasAvatar={!!hasAvatar}\n hasNub={!!hasNub}\n key={syntheticAttachments.length}\n showBubble={false}\n >\n {renderMainBubbleContent('', false)}\n </AttachmentRow>\n );\n }\n\n if (isCollapsible) {\n const firstSoftwareSourceCode = getFirstBaseOfSoftwareSourceCode(messageThing);\n\n if (firstSoftwareSourceCode) {\n syntheticAttachments.push(\n <AttachmentRow\n attachedAlt={attachmentAlt}\n fromUser={fromUser}\n hasAvatar={!!hasAvatar}\n hasNub={!!hasNub}\n key={syntheticAttachments.length}\n showBubble={false}\n >\n <CodeBlockContent\n code={firstSoftwareSourceCode.text[0]}\n key={syntheticAttachments.length}\n language={firstSoftwareSourceCode.programmingLanguage[0]}\n title={firstSoftwareSourceCode.programmingLanguage[0]}\n />\n </AttachmentRow>\n );\n }\n }\n\n return syntheticAttachments.concat(\n attachments.map((attachment, index) => (\n <AttachmentRow\n attachedAlt={attachmentAlt}\n fromUser={fromUser}\n hasAvatar={!!hasAvatar}\n hasNub={!!hasNub}\n /* eslint-disable-next-line react/no-array-index-key */\n key={index + syntheticAttachments.length}\n showBubble={isCollapsible ? false : true}\n >\n {renderAttachment({ activity, attachment })}\n </AttachmentRow>\n ))\n );\n }, [\n activity,\n attachments,\n fromUser,\n hasAvatar,\n hasNub,\n isCollapsible,\n localize,\n messageThing,\n otherInitials,\n renderAttachment,\n renderMainBubbleContent\n ]);\n\n const renderCollapsibleBubbleContent = useCallback(\n (title = '') => (\n <div className={classNames['stacked-layout__bubble']}>\n {showStatus && <StackedLayoutMessageStatus creativeWorkStatus={creativeWorkStatus} />}\n <CollapsibleContent\n summary={title}\n summaryClassName={cx(classNames['stacked-layout__title'], classNames['stacked-layout__title--collapsible'])}\n >\n <div className={classNames['stacked-layout__attachment-list']}>{attachmentChildren}</div>\n </CollapsibleContent>\n </div>\n ),\n [attachmentChildren, classNames, creativeWorkStatus, showStatus]\n );\n\n const renderBubbleContent = isCollapsible ? renderCollapsibleBubbleContent : renderMainBubbleContent;\n\n return (\n <StackedLayoutRoot\n ariaLabelId={activityDisplayText ? ariaLabelId : undefined}\n extraTrailing={extraTrailing}\n fromUser={fromUser}\n hideAvatar={hasAvatar && !showAvatar}\n hideNub={hasNub && !showNub}\n isActivity={true}\n noMessage={!activityDisplayText && !isCollapsible}\n showAvatar={showAvatar}\n showNub={showNub}\n topCallout={topAlignedCallout}\n >\n <StackedLayoutInner\n activity={activity}\n fromUser={fromUser}\n hasAvatar={hasAvatar}\n hasDisplayText={!!activityDisplayText?.length || isCollapsible}\n hasNub={hasNub}\n id={ariaLabelId}\n renderAvatar={renderAvatar}\n renderBubbleContent={renderBubbleContent}\n showAvatar={showAvatar}\n showNub={showNub}\n >\n {!isCollapsible && attachmentChildren.length > 0 && attachmentChildren}\n </StackedLayoutInner>\n {renderActivityStatus && !isInGroup && (\n <StackedLayoutStatus>{renderActivityStatus({ hideTimestamp })}</StackedLayoutStatus>\n )}\n </StackedLayoutRoot>\n );\n};\n\nStackedLayout.displayName = 'StackedLayout';\n\nexport default memo(StackedLayout);\n","import { reactNode, validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport { useStyles } from '@msinternal/botframework-webchat-styles/react';\nimport cx from 'classnames';\nimport React, { memo } from 'react';\nimport { boolean, object, optional, pipe, readonly, string, type InferInput } from 'valibot';\n\nimport ScreenReaderText from '../ScreenReaderText';\nimport Bubble from './Bubble';\n\nimport styles from './StackedLayout.module.css';\n\nconst attachmentRowPropsSchema = pipe(\n object({\n attachedAlt: string(),\n children: optional(reactNode()),\n fromUser: boolean(),\n hasAvatar: boolean(),\n hasNub: boolean(),\n showBubble: optional(boolean())\n }),\n readonly()\n);\n\ntype AttachmentRowProps = InferInput<typeof attachmentRowPropsSchema>;\n\nfunction AttachmentRow(props: AttachmentRowProps) {\n const {\n attachedAlt,\n children,\n fromUser,\n hasAvatar,\n hasNub,\n showBubble = true\n } = validateProps(attachmentRowPropsSchema, props);\n const classNames = useStyles(styles);\n\n return (\n <div aria-roledescription=\"attachment\" className={classNames['stacked-layout__attachment-row']} role=\"group\">\n <ScreenReaderText text={attachedAlt} />\n {showBubble ? (\n <Bubble\n className={classNames['stacked-layout__attachment']}\n fromUser={fromUser}\n nub={hasAvatar || hasNub ? 'hidden' : false}\n >\n {children}\n </Bubble>\n ) : (\n <div className={cx(classNames['stacked-layout__attachment'])}>{children}</div>\n )}\n </div>\n );\n}\n\nexport default memo(AttachmentRow);\nexport { attachmentRowPropsSchema, type AttachmentRowProps };\n","import { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport { useStyles } from '@msinternal/botframework-webchat-styles/react';\nimport cx from 'classnames';\nimport React, { memo } from 'react';\nimport { object, optional, pipe, readonly, string, type InferInput } from 'valibot';\n\nimport useCodeBlockTag from '../providers/CustomElements/useCodeBlockTagName';\n\nimport styles from './CodeBlockContent.module.css';\n\nconst codeBlockContentPropsSchema = pipe(\n object({\n code: string(),\n language: optional(string()),\n title: optional(string())\n }),\n readonly()\n);\n\ntype CodeBlockContentProps = InferInput<typeof codeBlockContentPropsSchema>;\n\nfunction CodeBlockContent(props: CodeBlockContentProps) {\n const { code, language, title } = validateProps(codeBlockContentPropsSchema, props);\n const classNames = useStyles(styles);\n const [, CodeBlock] = useCodeBlockTag();\n\n return (\n <div className={classNames['code-block-content']}>\n {title && (\n <div className={cx(classNames['code-block-content__header'])}>\n <div className={cx(classNames['code-block-content__title'])}>{title}</div>\n </div>\n )}\n <CodeBlock className={cx(classNames['code-block-content__code-block'])} language={language}>\n <code>{code}</code>\n </CodeBlock>\n </div>\n );\n}\n\nexport default memo(CodeBlockContent);\nexport { codeBlockContentPropsSchema, type CodeBlockContentProps };\n","import \"/__w/1/s/BotFramework-WebChat/packages/component/src/Activity/CodeBlockContent.module_built.css\";\nconst classes = {\"code-block-content\":\"w4KLAFG_code-block-content\",\"code-block-content__title\":\"w4KLAFG_code-block-content__title\",\"code-block-content__code-block\":\"w4KLAFG_code-block-content__code-block\",\"code-block-content__header\":\"w4KLAFG_code-block-content__header\"}\nexport default classes\n\nconst _code_block_content0 = classes[\"code-block-content\"]\nexport { _code_block_content0 as \"code-block-content\" }\n\nconst _code_block_content__title0 = classes[\"code-block-content__title\"]\nexport { _code_block_content__title0 as \"code-block-content__title\" }\n\nconst _code_block_content__code_block0 = classes[\"code-block-content__code-block\"]\nexport { _code_block_content__code_block0 as \"code-block-content__code-block\" }\n\nconst _code_block_content__header0 = classes[\"code-block-content__header\"]\nexport { _code_block_content__header0 as \"code-block-content__header\" }\n","import { reactNode, validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport { useStyles } from '@msinternal/botframework-webchat-styles/react';\nimport cx from 'classnames';\nimport random from 'math-random';\nimport React, { memo, ReactEventHandler, useCallback, useRef, useState } from 'react';\nimport { object, optional, pipe, readonly, string, type InferInput } from 'valibot';\n\nimport { ComponentIcon } from '../Icon';\nimport styles from './CollapsibleContent.module.css';\n\nconst collapsibleContentPropsSchema = pipe(\n object({\n children: reactNode(),\n summary: reactNode(),\n summaryClassName: optional(string())\n }),\n readonly()\n);\n\ntype CollapsibleContentProps = InferInput<typeof collapsibleContentPropsSchema>;\n\nfunction uniqueId(count = Infinity) {\n return (\n random()\n // eslint-disable-next-line no-magic-numbers\n .toString(36)\n // eslint-disable-next-line no-magic-numbers\n .substring(2, 2 + count)\n );\n}\n\nfunction CollapsibleContent(props: CollapsibleContentProps) {\n const { children, summary, summaryClassName } = validateProps(collapsibleContentPropsSchema, props);\n const [id] = useState(() => `webchat-collapsible-content-${uniqueId()}`);\n const classNames = useStyles(styles);\n const summaryRef = useRef<HTMLElement>(null);\n\n const handleToggle = useCallback<ReactEventHandler<HTMLDetailsElement>>(event => {\n const summary = summaryRef.current;\n const details = event.target;\n if (summary && details && details instanceof HTMLDetailsElement) {\n const isDetailsOpen = details.open.toString();\n summary.setAttribute('aria-expanded', isDetailsOpen);\n summary.setAttribute('aria-pressed', isDetailsOpen);\n }\n }, []);\n\n return (\n // eslint-disable-next-line react/forbid-dom-props\n <details className={cx(classNames['collapsible-content'])} id={id} onToggle={handleToggle}>\n <summary\n aria-controls={id}\n aria-expanded=\"false\"\n aria-pressed=\"false\"\n className={cx(classNames['collapsible-content__summary'], summaryClassName)}\n ref={summaryRef}\n role=\"button\"\n >\n {summary && <span className={classNames['collapsible-content__summary-text']}>{summary}</span>}\n <ComponentIcon appearance=\"text\" className={classNames['collapsible-content__chevron']} icon=\"chevron\" />\n </summary>\n <div className={classNames['collapsible-content__content']}>{children}</div>\n </details>\n );\n}\n\nexport default memo(CollapsibleContent);\nexport { collapsibleContentPropsSchema, type CollapsibleContentProps };\n","import \"/__w/1/s/BotFramework-WebChat/packages/component/src/Activity/CollapsibleContent.module_built.css\";\nconst classes = {\"collapsible-content__summary-text\":\"wo1OXYa_collapsible-content__summary-text\",\"collapsible-content\":\"wo1OXYa_collapsible-content\",\"collapsible-content__summary\":\"wo1OXYa_collapsible-content__summary\",\"collapsible-content__content\":\"wo1OXYa_collapsible-content__content\",\"collapsible-content__chevron\":\"wo1OXYa_collapsible-content__chevron\"}\nexport default classes\n\nconst _collapsible_content__summary_text0 = classes[\"collapsible-content__summary-text\"]\nexport { _collapsible_content__summary_text0 as \"collapsible-content__summary-text\" }\n\nconst _collapsible_content0 = classes[\"collapsible-content\"]\nexport { _collapsible_content0 as \"collapsible-content\" }\n\nconst _collapsible_content__summary0 = classes[\"collapsible-content__summary\"]\nexport { _collapsible_content__summary0 as \"collapsible-content__summary\" }\n\nconst _collapsible_content__content0 = classes[\"collapsible-content__content\"]\nexport { _collapsible_content__content0 as \"collapsible-content__content\" }\n\nconst _collapsible_content__chevron0 = classes[\"collapsible-content__chevron\"]\nexport { _collapsible_content__chevron0 as \"collapsible-content__chevron\" }\n","import { ActivityStatusMiddleware } from 'botframework-webchat-api';\nimport React from 'react';\n\nimport { SENDING, SEND_FAILED } from '../../types/internal/SendStatus';\nimport SendStatus from '../../ActivityStatus/SendStatus/SendStatus';\n\nexport default function createSendStatusMiddleware(): ActivityStatusMiddleware {\n return () =>\n next =>\n ({ activity, sendState, ...args }) => {\n switch (sendState) {\n case SENDING:\n case SEND_FAILED:\n return <SendStatus activity={activity} sendStatus={sendState} />;\n\n default:\n return next({ activity, sendState, ...args });\n }\n };\n}\n","import { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport { hooks } from 'botframework-webchat-api';\nimport { useStyles } from '@msinternal/botframework-webchat-styles/react';\nimport React, { memo, useCallback } from 'react';\nimport { any, literal, object, pipe, readonly, union, type InferInput } from 'valibot';\n\nimport useFocus from '../../hooks/useFocus';\nimport { SENDING, SEND_FAILED, SENT } from '../../types/internal/SendStatus';\nimport SendFailedRetry from './private/SendFailedRetry';\n\nimport styles from '../ActivityStatus.module.css';\n\nconst { useLocalizer, usePostActivity } = hooks;\n\nconst sendStatusPropsSchema = pipe(\n object({\n activity: any(),\n sendStatus: union([literal(SENDING), literal(SEND_FAILED), literal(SENT)])\n }),\n readonly()\n);\n\ntype SendStatusProps = InferInput<typeof sendStatusPropsSchema>;\n\nfunction SendStatus(props: SendStatusProps) {\n const { activity, sendStatus } = validateProps(sendStatusPropsSchema, props);\n\n const focus = useFocus();\n const localize = useLocalizer();\n const postActivity = usePostActivity();\n const classNames = useStyles(styles);\n\n const handleRetryClick = useCallback(() => {\n postActivity(activity);\n\n // After clicking on \"retry\", the button will be gone and focus will be lost (back to document.body)\n // We want to make sure the user stay inside Web Chat\n focus('sendBoxWithoutKeyboard');\n }, [activity, focus, postActivity]);\n const sendingText = localize('ACTIVITY_STATUS_SEND_STATUS_ALT_SENDING');\n\n return (\n <React.Fragment>\n <span className={classNames['activity-status']}>\n {sendStatus === SENDING ? (\n sendingText\n ) : sendStatus === SEND_FAILED ? (\n <SendFailedRetry onRetryClick={handleRetryClick} />\n ) : (\n false\n )}\n </span>\n </React.Fragment>\n );\n}\n\nexport default memo(SendStatus);\nexport { sendStatusPropsSchema, type SendStatusProps };\n","import { hooks } from 'botframework-webchat-api';\nimport PropTypes from 'prop-types';\nimport React, { useCallback } from 'react';\n\nimport InlineMarkdown from '../../../Utils/InlineMarkdown';\n\nconst { useLocalizer } = hooks;\n\nconst MARKDOWN_REFERENCES = ['RETRY'];\n\nconst SendFailedRetry = ({ onRetryClick }) => {\n const handleReference = useCallback(({ data }) => data === 'RETRY' && onRetryClick(), [onRetryClick]);\n const localize = useLocalizer();\n\n const sendFailedText = localize('ACTIVITY_STATUS_SEND_FAILED_RETRY');\n\n return (\n <InlineMarkdown onReference={handleReference} references={MARKDOWN_REFERENCES}>\n {sendFailedText}\n </InlineMarkdown>\n );\n};\n\nSendFailedRetry.propTypes = {\n onRetryClick: PropTypes.func.isRequired\n};\n\nexport default SendFailedRetry;\n","/* eslint react/no-danger: \"off\" */\n\nimport { hooks } from 'botframework-webchat-api';\nimport { isForbiddenPropertyName } from 'botframework-webchat-core';\nimport PropTypes from 'prop-types';\nimport React, { useCallback, useMemo } from 'react';\nimport updateIn from 'simple-update-in';\n\nimport createCustomEvent from './createCustomEvent';\nimport randomId from './randomId';\nimport useInternalMarkdownIt from '../hooks/internal/useInternalMarkdownIt';\nimport { useStyleToEmotionObject } from '../hooks/internal/styleToEmotionObject';\nimport walkMarkdownTokens from './walkMarkdownTokens';\n\nconst { useStyleOptions } = hooks;\n\nfunction replaceAnchorWithButton(markdownTokens) {\n return walkMarkdownTokens(markdownTokens, markdownToken => {\n markdownToken = { ...markdownToken };\n\n switch (markdownToken.type) {\n case 'link_open':\n markdownToken.tag = 'button';\n markdownToken.attrs = [\n ...updateIn(\n markdownToken.attrs,\n [([name, value]) => name === 'href' && value.startsWith('#')],\n ([, value]) => ['data-markdown-href', value.substr(1)]\n ),\n ['type', 'button']\n ];\n break;\n\n case 'link_close':\n markdownToken.tag = 'button';\n break;\n\n default:\n break;\n }\n\n return markdownToken;\n });\n}\n\nconst InlineMarkdown = ({ children, onReference, references }) => {\n if (typeof children !== 'string') {\n console.warn('botframework-webchat: \"children\" prop passed to <InlineMarkdown> must be of type string.');\n\n // Shortcut for disabling invalid props.\n // eslint-disable-next-line react-hooks/immutability\n children = '';\n }\n\n const [markdownIt] = useInternalMarkdownIt();\n const [{ accent }] = useStyleOptions();\n const styleToClassName = useStyleToEmotionObject();\n\n // We inlined the style here because this style is:\n // 1. Internal to Web Chat\n // 2. Not customizable from developers (other than setting `styleOptions.accent`)\n const className = useMemo(\n () =>\n styleToClassName({\n '& button[data-markdown-href]': {\n appearance: 'none',\n backgroundColor: 'transparent',\n border: 0,\n color: accent,\n cursor: 'pointer',\n fontFamily: 'inherit',\n fontSize: 'inherit',\n padding: 0\n },\n '@media screen and (forced-colors: active)': {\n '& button[data-markdown-href]': {\n color: 'LinkText',\n textDecoration: 'underline'\n }\n }\n }) + '',\n [accent, styleToClassName]\n );\n\n // Markdown-It only support references in uppercase.\n // Re-shaping input.\n // eslint-disable-next-line react-hooks/immutability\n references = references.map(reference => reference.toUpperCase());\n\n const { hrefToRef, refToHref } = references.reduce(\n ({ hrefToRef, refToHref }, ref) => {\n const href = randomId();\n\n return {\n hrefToRef: { ...hrefToRef, [href]: ref },\n refToHref: { ...refToHref, [ref]: href }\n };\n },\n { hrefToRef: {}, refToHref: {} }\n );\n\n const html = useMemo(() => {\n const tree = markdownIt.parseInline(children, {\n references: references.reduce(\n (references, key) =>\n // Mitigated through denylisting.\n // eslint-disable-next-line security/detect-object-injection\n isForbiddenPropertyName(key) ? references : { ...references, [key]: { href: `#${refToHref[key]}` } },\n {}\n )\n });\n\n // Turn \"<a href=\"#retry\">Retry</a>\" into \"<button data-ref=\"retry\" type=\"button\">Retry</button>\"\n const updatedTree = replaceAnchorWithButton(tree);\n\n return { __html: markdownIt.renderer.render(updatedTree) };\n }, [children, refToHref, markdownIt, references]);\n\n const handleClick = useCallback(\n event => {\n event.stopPropagation();\n\n const href = event.target.getAttribute('data-markdown-href');\n\n href &&\n onReference &&\n onReference(\n createCustomEvent(\n 'reference',\n // Mitigated through denylisting.\n // eslint-disable-next-line security/detect-object-injection\n isForbiddenPropertyName(href) ? {} : { data: hrefToRef[href] }\n )\n );\n },\n [hrefToRef, onReference]\n );\n\n return <span className={className} dangerouslySetInnerHTML={html} onClick={handleClick} />;\n};\n\nInlineMarkdown.defaultProps = {\n children: '',\n onReference: undefined,\n references: []\n};\n\nInlineMarkdown.propTypes = {\n children: PropTypes.string,\n onReference: PropTypes.func,\n references: PropTypes.arrayOf(PropTypes.string)\n};\n\nexport default InlineMarkdown;\n","import { isForbiddenPropertyName } from 'botframework-webchat-core';\n\nexport default function createCustomEvent(name, eventInitDict) {\n let event;\n\n if (typeof CustomEvent === 'function') {\n event = new CustomEvent(name);\n } else {\n event = document.createEvent('Event');\n\n event.initEvent(name, true, true);\n }\n\n Object.entries(eventInitDict).forEach(([key, value]) => {\n if (!isForbiddenPropertyName(key)) {\n // Mitigated through denylisting.\n // eslint-disable-next-line security/detect-object-injection\n event[key] = value;\n }\n });\n\n return event;\n}\n","/* eslint no-magic-numbers: [\"error\", { \"ignore\": [2, 5, 36] }] */\n\nimport random from 'math-random';\n\nexport default function randomId(maxLength = 5) {\n return random().toString(36).substr(2, maxLength);\n}\n","import useWebChatUIContext from './useWebChatUIContext';\n\nfunction useInternalMarkdownIt() {\n return useWebChatUIContext().internalMarkdownItState;\n}\n\nexport default useInternalMarkdownIt;\n","export default function walkMarkdownTokens(tokens, walker) {\n return tokens.map(token => {\n if (token) {\n const nextToken = walker(token);\n\n if (nextToken.children) {\n nextToken.children = walkMarkdownTokens(nextToken.children, walker);\n }\n\n return nextToken;\n }\n\n return token;\n });\n}\n","import \"/__w/1/s/BotFramework-WebChat/packages/component/src/ActivityStatus/ActivityStatus.module_built.css\";\nconst classes = {\"activity-status-slot\":\"wBpMa5G_activity-status-slot\",\"activity-status--slotted\":\"wBpMa5G_activity-status--slotted\",\"activity-status__originator\":\"wBpMa5G_activity-status__originator\",\"activity-status__originator--has-link\":\"wBpMa5G_activity-status__originator--has-link\",\"activity-status\":\"wBpMa5G_activity-status\"}\nexport default classes\n\nconst _activity_status_slot0 = classes[\"activity-status-slot\"]\nexport { _activity_status_slot0 as \"activity-status-slot\" }\n\nconst _activity_status__slotted0 = classes[\"activity-status--slotted\"]\nexport { _activity_status__slotted0 as \"activity-status--slotted\" }\n\nconst _activity_status__originator0 = classes[\"activity-status__originator\"]\nexport { _activity_status__originator0 as \"activity-status__originator\" }\n\nconst _activity_status__originator__has_link0 = classes[\"activity-status__originator--has-link\"]\nexport { _activity_status__originator__has_link0 as \"activity-status__originator--has-link\" }\n\nconst _activity_status0 = classes[\"activity-status\"]\nexport { _activity_status0 as \"activity-status\" }\n","import { ActivityStatusMiddleware } from 'botframework-webchat-api';\nimport React, { Fragment } from 'react';\n\nimport AbsoluteTime from '../../ActivityStatus/AbsoluteTime';\nimport OthersActivityStatus from '../../ActivityStatus/OthersActivityStatus';\nimport SelfActivityStatus from '../../ActivityStatus/SelfActivityStatus';\n\nexport default function createTimestampMiddleware(): ActivityStatusMiddleware {\n return () =>\n () =>\n (...args) => {\n const [{ activity, hideTimestamp }] = args;\n\n if (typeof activity.timestamp === 'undefined') {\n // ActivityStatusMiddleware is using a legacy UI middleware pattern which does not supports returning `false`.\n // If the activity is sent and there is no timestamp, probably we will just not displaying the timestamp.\n // Or we somehow enforce all activities must have timestamp.\n return <Fragment />;\n } else if (hideTimestamp) {\n // If \"hideTimestamp\" is set, we will not render the visual timestamp. But continue to render the screen reader only version.\n return <AbsoluteTime hide={true} value={activity.timestamp} />;\n } else if (activity.from.role === 'bot') {\n return <OthersActivityStatus activity={activity} slotted={true} />;\n }\n\n return <SelfActivityStatus activity={activity} slotted={true} />;\n };\n}\n","import { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport { hooks } from 'botframework-webchat-api';\nimport React, { Fragment } from 'react';\nimport { boolean, date, number, object, optional, pipe, readonly, string, union, type InferInput } from 'valibot';\n\nimport ScreenReaderText from '../ScreenReaderText';\n\nconst { useDateFormatter, useLocalizer } = hooks;\n\nconst absoluteTimePropsSchema = pipe(\n object({\n hide: optional(boolean(), false),\n value: union([date(), number(), string()])\n }),\n readonly()\n);\n\ntype AbsoluteTimeProps = InferInput<typeof absoluteTimePropsSchema>;\n\nconst AbsoluteTime = (props: AbsoluteTimeProps) => {\n const { hide, value } = validateProps(absoluteTimePropsSchema, props);\n\n const localize = useLocalizer();\n const formatDate = useDateFormatter();\n\n const absoluteTime = formatDate(value);\n\n return (\n <Fragment>\n <ScreenReaderText text={localize('ACTIVITY_STATUS_SEND_STATUS_ALT_SENT_AT', absoluteTime)} />\n {!hide && <span aria-hidden={true}>{absoluteTime}</span>}\n </Fragment>\n );\n};\n\nexport default AbsoluteTime;\nexport { absoluteTimePropsSchema, type AbsoluteTimeProps };\n","import { warnOnce } from '@msinternal/botframework-webchat-base/utils';\nimport { useStyles } from '@msinternal/botframework-webchat-styles/react';\nimport { hooks } from 'botframework-webchat-api';\nimport { getOrgSchemaMessage, type WebChatActivity } from 'botframework-webchat-core';\nimport { orgSchemaActionSchema, orgSchemaClaimSchema, OrgSchemaProject } from 'botframework-webchat-core/org-schema.js';\nimport cx from 'classnames';\nimport React, { memo, useMemo } from 'react';\nimport { parse } from 'valibot';\n\nimport ActivityFeedback from '../ActivityFeedback/ActivityFeedback';\nimport dereferenceBlankNodes from '../Utils/JSONLinkedData/dereferenceBlankNodes';\nimport Originator from './private/Originator';\nimport StatusSlot from './StatusSlot';\nimport Timestamp from './Timestamp';\n\nimport styles from './ActivityStatus.module.css';\n\nconst { useStyleOptions } = hooks;\n\ntype Props = Readonly<{ activity: WebChatActivity; className?: string | undefined; slotted?: boolean }>;\n\nconst warnRootLevelThings = warnOnce(\n 'Root-level things are being deprecated, please relate all things to `entities[@id=\"\"]` instead. This feature will be removed in 2025-03-06.'\n);\n\nconst OthersActivityStatus = memo(({ activity, className, slotted }: Props) => {\n const [{ feedbackActionsPlacement }] = useStyleOptions();\n const classNames = useStyles(styles);\n const { timestamp } = activity;\n const graph = useMemo(() => dereferenceBlankNodes(activity.entities || []), [activity.entities]);\n\n const messageThing = useMemo(() => getOrgSchemaMessage(graph), [graph]);\n\n const claimInterpreter = useMemo<OrgSchemaProject | undefined>(() => {\n try {\n if (messageThing) {\n return parse(orgSchemaClaimSchema, messageThing?.citation[0]).claimInterpreter[0];\n }\n\n const [firstClaim] = graph\n .filter(({ type }) => type === 'https://schema.org/Claim')\n .map(claim => parse(orgSchemaClaimSchema, claim));\n\n if (firstClaim) {\n warnRootLevelThings();\n\n return firstClaim?.claimInterpreter[0];\n }\n\n const replyAction = parse(\n orgSchemaActionSchema,\n graph.find(({ type }) => type === 'https://schema.org/ReplyAction')\n );\n\n if (replyAction) {\n warnRootLevelThings();\n\n return replyAction?.provider[0];\n }\n } catch {\n // Intentionally left blank.\n }\n }, [graph, messageThing]);\n\n return (\n <span\n className={cx(classNames['activity-status'], { [classNames['activity-status--slotted']]: slotted }, className)}\n >\n {timestamp && (\n <StatusSlot>\n <Timestamp key=\"timestamp\" timestamp={timestamp} />\n </StatusSlot>\n )}\n {claimInterpreter && (\n <StatusSlot>\n <Originator\n key=\"originator\"\n name={claimInterpreter.name[0]}\n slogan={claimInterpreter.slogan[0]}\n url={claimInterpreter.url[0]}\n />\n </StatusSlot>\n )}\n {feedbackActionsPlacement === 'activity-status' && (\n <StatusSlot>\n <ActivityFeedback activity={activity} key=\"feedback\" />\n </StatusSlot>\n )}\n </span>\n );\n});\n\nOthersActivityStatus.displayName = 'OthersActivityStatus';\n\nexport default OthersActivityStatus;\n","import { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport { useStyles } from '@msinternal/botframework-webchat-styles/react';\nimport cx from 'classnames';\nimport React, { memo } from 'react';\nimport { object, pipe, readonly, string, undefinedable, type InferInput } from 'valibot';\n\nimport useSanitizeHrefCallback from '../../hooks/internal/useSanitizeHrefCallback';\n\nimport styles from '../ActivityStatus.module.css';\n\nconst originatorPropsSchema = pipe(\n object({\n name: undefinedable(string()),\n slogan: undefinedable(string()),\n url: undefinedable(string())\n }),\n readonly()\n);\n\ntype OriginatorProps = InferInput<typeof originatorPropsSchema>;\n\n// Regular function is better for React function component.\n// eslint-disable-next-line prefer-arrow-callback\nconst Originator = memo(function Originator(props: OriginatorProps) {\n const { name, slogan, url } = validateProps(originatorPropsSchema, props);\n\n const sanitizeHref = useSanitizeHrefCallback();\n const classNames = useStyles(styles);\n\n const { sanitizedHref } = sanitizeHref(url);\n const text = slogan || name;\n\n return sanitizedHref ? (\n // Link is sanitized.\n // eslint-disable-next-line react/forbid-elements\n <a\n className={cx(classNames['activity-status__originator'], classNames['activity-status__originator--has-link'])}\n href={sanitizedHref}\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n {text}\n </a>\n ) : (\n <span className={classNames['activity-status__originator']}>{text}</span>\n );\n});\n\nexport default Originator;\nexport { originatorPropsSchema, type OriginatorProps };\n","import { useStyles } from '@msinternal/botframework-webchat-styles/react';\nimport React, { memo, ReactNode } from 'react';\nimport cx from 'classnames';\n\nimport styles from './ActivityStatus.module.css';\n\ntype Props = Readonly<{ className?: string; children?: ReactNode | undefined }>;\n\nconst StatusSlot = ({ children, className }: Props) => {\n const classNames = useStyles(styles);\n\n return <span className={cx(classNames['activity-status-slot'], className)}>{children}</span>;\n};\n\nStatusSlot.displayName = 'StatusSlot';\n\nexport default memo(StatusSlot);\n","import { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport { hooks } from 'botframework-webchat-api';\nimport React, { memo } from 'react';\nimport { date, number, object, pipe, readonly, string, union, type InferInput } from 'valibot';\n\nimport AbsoluteTime from './AbsoluteTime';\nimport RelativeTime from './private/RelativeTime';\n\nconst { useStyleOptions } = hooks;\n\nconst timestampPropsSchema = pipe(\n object({\n timestamp: union([date(), number(), string()]) // TODO: Should limit to `Date`.\n }),\n readonly()\n);\n\ntype TimestampProps = InferInput<typeof timestampPropsSchema>;\n\nfunction Timestamp(props: TimestampProps) {\n const { timestamp } = validateProps(timestampPropsSchema, props);\n\n const [{ timestampFormat }] = useStyleOptions();\n\n return timestampFormat === 'relative' ? <RelativeTime value={timestamp} /> : <AbsoluteTime value={timestamp} />;\n}\n\nexport default memo(Timestamp);\nexport { timestampPropsSchema, type TimestampProps };\n","import { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport { hooks } from 'botframework-webchat-api';\nimport React, { Fragment } from 'react';\nimport { date, number, object, pipe, readonly, string, union, type InferInput } from 'valibot';\n\nimport ScreenReaderText from '../../ScreenReaderText';\nimport useForceRenderAtInterval from '../../hooks/internal/useForceRenderAtInterval';\n\nconst { useDateFormatter, useLocalizer, usePonyfill, useRelativeTimeFormatter } = hooks;\n\nconst TIMER_INTERVAL = 60000;\n\nconst relativeTimePropsSchema = pipe(\n object({\n value: union([date(), number(), string()])\n }),\n readonly()\n);\n\ntype RelativeTimeProps = InferInput<typeof relativeTimePropsSchema>;\n\nconst RelativeTime = (props: RelativeTimeProps) => {\n const { value } = validateProps(relativeTimePropsSchema, props);\n\n const [{ Date }] = usePonyfill();\n const formatDate = useDateFormatter();\n const formatRelativeTime = useRelativeTimeFormatter();\n const localize = useLocalizer();\n\n const dateValue = new Date(value);\n\n useForceRenderAtInterval(dateValue, TIMER_INTERVAL);\n\n return (\n <Fragment>\n <ScreenReaderText text={localize('ACTIVITY_STATUS_SEND_STATUS_ALT_SENT_AT', formatDate(dateValue))} />\n <span aria-hidden={true}>{formatRelativeTime(dateValue)}</span>\n </Fragment>\n );\n};\n\nexport default RelativeTime;\nexport { relativeTimePropsSchema, type RelativeTimeProps };\n","import { hooks } from 'botframework-webchat-api';\nimport random from 'math-random';\nimport { useCallback, useState } from 'react';\n\nimport useTimer from './useTimer';\n\nimport type { GlobalScopePonyfill } from 'botframework-webchat-core';\nimport type { Dispatch, SetStateAction } from 'react';\n\nconst { usePonyfill } = hooks;\n\n// The `nextTimer` function calculates the next absolute time that the timer should be fired based on the origin (original time received), interval, and current time.\n// If the origin is t=260, and we are currently at t=1000, nextTimer must return t=60260.\n// If the origin is t=260, and we are currently at t=60260 (exact landing), we must return t=120260, not t=60260.\n// This is for fixing bug #2103: https://github.com/microsoft/BotFramework-WebChat/issues/2103.\n\n// False positive: we are using `Date` as a type.\n// eslint-disable-next-line no-restricted-globals\nfunction nextTimer(origin: Date, interval: number, { Date }: GlobalScopePonyfill): number {\n const time = origin.getTime();\n const now = Date.now();\n\n return time > now ? time : now + interval - ((now - time) % interval);\n}\n\nexport default function useForceRenderAtInterval(\n // False positive: we are using `Date` as a type.\n // eslint-disable-next-line no-restricted-globals\n origin: Date,\n interval: number,\n fn?: (() => void) | undefined\n): [number, Dispatch<SetStateAction<number>>] {\n const [ponyfill] = usePonyfill();\n const [timer, setTimer] = useState<number>(nextTimer(origin, interval, ponyfill));\n const handler = useCallback<() => void>(() => {\n fn && fn();\n\n // Chrome may fire the setTimeout callback 1 ms before its original schedule.\n // Thus, when we calculate the \"next\" value, it will have the same value as before.\n // Sending the same value to useTimer(), it will not do another schedule because the value did not change.\n // So, we are adding a bit randomness, so useTimer() should pick up the newer scheduled time.\n\n setTimer(nextTimer(origin, interval, ponyfill) + random());\n }, [fn, origin, interval, ponyfill]);\n\n useTimer(timer, handler);\n\n return [timer, setTimer];\n}\n","import { hooks } from 'botframework-webchat-api';\nimport { useEffect } from 'react';\n\nconst { usePonyfill } = hooks;\n\n// TODO: [P2] Dedupe this function from \"api\", possibly create a new \"util\" package.\n\n/**\n * Calls a callback function at a specific time.\n */\nexport default function useTimer(at: number, fn: () => void): void {\n const [{ clearTimeout, Date, setTimeout }] = usePonyfill();\n\n useEffect(() => {\n if (typeof at === 'number') {\n const ms = Math.max(0, at - Date.now());\n\n // useEffect() is running after yielding to sync code via setImmediate (IE), MessageChannel (4ms), or setTimeout.\n // Thus, when calling setTimeout(..., 0), under Lolex, it will be waited for another loop.\n // In other words, setTimeout(..., 0) won't fire right away. It will be fired after clock.tick(<any number>).\n if (ms) {\n const timeout = setTimeout(fn, ms);\n\n return () => clearTimeout(timeout);\n }\n\n fn();\n }\n }, [at, clearTimeout, Date, fn, setTimeout]);\n}\n","import { useStyles } from '@msinternal/botframework-webchat-styles/react';\nimport { type WebChatActivity } from 'botframework-webchat-core';\nimport cx from 'classnames';\nimport React, { memo } from 'react';\n\nimport Timestamp from './Timestamp';\n\nimport styleClassNames from './ActivityStatus.module.css';\n\ntype Props = Readonly<{ activity: WebChatActivity; className?: string | undefined; slotted?: boolean }>;\n\nconst SelftActivityStatus = memo(({ activity, className, slotted }: Props) => {\n const classNames = useStyles(styleClassNames);\n const { timestamp } = activity;\n\n return timestamp ? (\n <span\n className={cx(classNames['activity-status'], { [classNames['activity-status--slotted']]: slotted }, className)}\n >\n <Timestamp timestamp={timestamp} />\n </span>\n ) : null;\n});\n\nSelftActivityStatus.displayName = 'SelftActivityStatus';\n\nexport default SelftActivityStatus;\n","import createSendStatusMiddleware from './createSendStatusMiddleware';\nimport createTimestampMiddleware from './createTimestampMiddleware';\n\nimport type { ActivityStatusMiddleware } from 'botframework-webchat-api';\n\nexport default function createCoreMiddleware(): ActivityStatusMiddleware[] {\n return [createSendStatusMiddleware(), createTimestampMiddleware()];\n}\n","import { AttachmentForScreenReaderMiddleware } from 'botframework-webchat-api';\nimport React from 'react';\n\nimport AudioAttachment from './AudioAttachment';\nimport FileAttachment from './FileAttachment';\nimport ImageAttachment from './ImageAttachment';\nimport TextAttachment from './TextAttachment';\nimport VideoAttachment from './VideoAttachment';\n\nexport default function createCoreMiddleware(): AttachmentForScreenReaderMiddleware[] {\n return [\n () =>\n next =>\n (...args) => {\n const [\n {\n activity: { from: { role = undefined } = {} } = {},\n attachment,\n attachment: { contentType = undefined, contentUrl = undefined, thumbnailUrl = undefined } = {}\n }\n ] = args;\n\n const isText = /^text\\//u.test(contentType);\n\n return (isText ? !attachment.content : role === 'user' && !thumbnailUrl)\n ? () => <FileAttachment attachment={attachment} />\n : /^audio\\//u.test(contentType)\n ? () => <AudioAttachment />\n : /^image\\//u.test(contentType)\n ? () => <ImageAttachment />\n : /^video\\//u.test(contentType)\n ? () => <VideoAttachment />\n : contentUrl || contentType === 'application/octet-stream'\n ? () => <FileAttachment attachment={attachment} />\n : isText\n ? () => <TextAttachment attachment={attachment} />\n : next(...args);\n }\n ];\n}\n","import { hooks } from 'botframework-webchat-api';\nimport React from 'react';\n\nconst { useLocalizer } = hooks;\n\nconst AudioAttachment = () => {\n const localize = useLocalizer();\n\n const label = localize('ATTACHMENT_AUDIO');\n\n return <article>{label}</article>;\n};\n\nexport default AudioAttachment;\n","import { hooks } from 'botframework-webchat-api';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nconst { useLocalizer } = hooks;\n\nconst FileAttachment = ({ attachment: { name = '' } = {} }) => {\n const localize = useLocalizer();\n\n const label = localize('ATTACHMENT_FILE', name);\n\n return <article>{label}</article>;\n};\n\nFileAttachment.propTypes = {\n attachment: PropTypes.shape({\n name: PropTypes.string.isRequired\n }).isRequired\n};\n\nexport default FileAttachment;\n","import { hooks } from 'botframework-webchat-api';\nimport React from 'react';\n\nconst { useLocalizer } = hooks;\n\nconst ImageAttachment = () => {\n const localize = useLocalizer();\n\n const label = localize('ATTACHMENT_IMAGE');\n\n return <article>{label}</article>;\n};\n\nexport default ImageAttachment;\n","import { hooks } from 'botframework-webchat-api';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nconst { useLocalizer } = hooks;\n\nconst TextAttachment = ({ attachment: { content = '' } = {} }) => {\n const localize = useLocalizer();\n\n const label = localize('ATTACHMENT_TEXT', content);\n\n return <article>{label}</article>;\n};\n\nTextAttachment.propTypes = {\n attachment: PropTypes.shape({\n content: PropTypes.string.isRequired\n }).isRequired\n};\n\nexport default TextAttachment;\n","import { hooks } from 'botframework-webchat-api';\nimport React from 'react';\n\nconst { useLocalizer } = hooks;\n\nconst VideoAttachment = () => {\n const localize = useLocalizer();\n\n const label = localize('ATTACHMENT_VIDEO');\n\n return <article>{label}</article>;\n};\n\nexport default VideoAttachment;\n","import type { StyleOptions } from 'botframework-webchat-api';\nimport {\n avatarComponent,\n createAvatarPolymiddleware,\n // Required but unused, for type portability.\n type __INTERNAL_DO_NOT_USE__avatarPolymiddlewareRequestStyleOptionsSymbol\n} from 'botframework-webchat-api/middleware.js';\nimport DefaultAvatar from './DefaultAvatar';\n\nfunction createDefaultAvatarMiddleware(styleOptions: StyleOptions | undefined) {\n const { botAvatarImage, botAvatarInitials, userAvatarImage, userAvatarInitials } = styleOptions ?? {};\n\n return createAvatarPolymiddleware(_next => ({ activity }) => {\n const fromUser = activity.from?.role === 'user';\n\n return (fromUser ? userAvatarImage || userAvatarInitials : botAvatarImage || botAvatarInitials)\n ? avatarComponent(DefaultAvatar, Object.freeze({ fromUser }))\n : undefined;\n });\n}\n\nexport default createDefaultAvatarMiddleware;\n","import { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport classNames from 'classnames';\nimport React, { memo } from 'react';\nimport { boolean, never, object, optional, pipe, readonly, string, type InferInput } from 'valibot';\n\nimport ImageAvatar from '../../Avatar/ImageAvatar';\nimport InitialsAvatar from '../../Avatar/InitialsAvatar';\nimport { useStyleToEmotionObject } from '../../hooks/internal/styleToEmotionObject';\nimport useStyleSet from '../../hooks/useStyleSet';\n\nconst ROOT_STYLE = {\n overflow: ['hidden', 'clip'],\n position: 'relative',\n\n '> *': {\n left: 0,\n position: 'absolute',\n top: 0\n }\n};\n\nconst defaultAvatarPropsSchema = pipe(\n object({\n 'aria-hidden': optional(boolean(), true),\n children: optional(never()),\n className: optional(string()),\n fromUser: boolean()\n }),\n readonly()\n);\n\ntype DefaultAvatarProps = InferInput<typeof defaultAvatarPropsSchema>;\n\nfunction DefaultAvatar(props: DefaultAvatarProps) {\n const { 'aria-hidden': ariaHidden, className, fromUser } = validateProps(defaultAvatarPropsSchema, props, 'strict');\n\n const [{ avatar: avatarStyleSet }] = useStyleSet();\n const rootClassName = useStyleToEmotionObject()(ROOT_STYLE) + '';\n\n return (\n <div\n aria-hidden={ariaHidden}\n className={classNames(\n 'webchat__defaultAvatar',\n { 'webchat__defaultAvatar--fromUser': fromUser },\n rootClassName,\n avatarStyleSet + '',\n className\n )}\n >\n <InitialsAvatar fromUser={fromUser} />\n <ImageAvatar fromUser={fromUser} />\n </div>\n );\n}\n\nDefaultAvatar.displayName = 'DefaultAvatar';\n\nexport default memo(DefaultAvatar);\n\nexport { defaultAvatarPropsSchema, type DefaultAvatarProps };\n","import { hooks } from 'botframework-webchat-api';\nimport { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport classNames from 'classnames';\nimport React, { memo } from 'react';\nimport { boolean, object, pipe, readonly, type InferInput } from 'valibot';\n\nimport { useStyleToEmotionObject } from '../hooks/internal/styleToEmotionObject';\nimport useStyleSet from '../hooks/useStyleSet';\n\nconst { useAvatarForBot, useAvatarForUser } = hooks;\n\nconst ROOT_STYLE = {\n '& .webchat__imageAvatar__image': {\n width: '100%',\n height: 'auto'\n }\n};\n\nconst imageAvatarPropsSchema = pipe(\n object({\n fromUser: boolean()\n }),\n readonly()\n);\n\ntype ImageAvatarProps = InferInput<typeof imageAvatarPropsSchema>;\n\nconst ImageAvatar = (props: ImageAvatarProps) => {\n const { fromUser } = validateProps(imageAvatarPropsSchema, props);\n\n const [{ image: avatarImageForBot }] = useAvatarForBot();\n const [{ image: avatarImageForUser }] = useAvatarForUser();\n const [{ imageAvatar: imageAvatarStyleSet }] = useStyleSet();\n const rootClassName = useStyleToEmotionObject()(ROOT_STYLE) + '';\n\n const avatarImage = fromUser ? avatarImageForUser : avatarImageForBot;\n\n return (\n !!avatarImage && (\n <div className={classNames('webchat__imageAvatar', rootClassName, imageAvatarStyleSet + '')}>\n <img alt=\"\" className=\"webchat__imageAvatar__image\" src={fromUser ? avatarImageForUser : avatarImageForBot} />\n </div>\n )\n );\n};\n\nexport default memo(ImageAvatar);\nexport { imageAvatarPropsSchema, type ImageAvatarProps };\n","import { hooks } from 'botframework-webchat-api';\nimport { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport classNames from 'classnames';\nimport React, { memo } from 'react';\nimport { boolean, object, optional, pipe, readonly, type InferInput } from 'valibot';\n\nimport { useStyleToEmotionObject } from '../hooks/internal/styleToEmotionObject';\nimport useStyleSet from '../hooks/useStyleSet';\n\nconst { useAvatarForBot, useAvatarForUser } = hooks;\n\nconst ROOT_STYLE = {\n alignItems: 'center',\n display: 'flex',\n\n '& .webchat__initialsAvatar__initials': {\n justifyContent: 'center'\n }\n};\n\nconst initialsAvatarPropsSchema = pipe(\n object({\n fromUser: optional(boolean())\n }),\n readonly()\n);\n\ntype InitialsAvatarProps = InferInput<typeof initialsAvatarPropsSchema>;\n\nfunction InitialsAvatar(props: InitialsAvatarProps) {\n const { fromUser = false } = validateProps(initialsAvatarPropsSchema, props);\n\n const [{ initials: avatarInitialsForBot }] = useAvatarForBot();\n const [{ initials: avatarInitialsForUser }] = useAvatarForUser();\n const [{ initialsAvatar: initialsAvatarStyleSet }] = useStyleSet();\n const rootClassName = useStyleToEmotionObject()(ROOT_STYLE) + '';\n\n return (\n <div\n className={classNames(\n 'webchat__initialsAvatar',\n {\n 'webchat__initialsAvatar--fromUser': fromUser\n },\n rootClassName,\n initialsAvatarStyleSet + ''\n )}\n >\n <div className=\"webchat__initialsAvatar__initials\">{fromUser ? avatarInitialsForUser : avatarInitialsForBot}</div>\n </div>\n );\n}\n\nexport default memo(InitialsAvatar);\nexport { initialsAvatarPropsSchema, type InitialsAvatarProps };\n","import { ie11 } from '../../Utils/detectBrowser';\n\n// This code is adopted from sanitize-html/naughtyScheme.\n// sanitize-html is a dependency of Web Chat but the naughtScheme function is neither exposed nor reusable.\n// https://github.com/apostrophecms/sanitize-html/\nfunction getScheme(href) {\n // Browsers ignore character codes of 32 (space) and below in a surprising\n // number of situations. Start reading here:\n // https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet#Embedded_tab\n\n /* eslint-disable-next-line no-control-regex */\n href = href.replace(/[\\x00-\\x20]+/gu, '');\n\n // Clobber any comments in URLs, which the browser might\n // interpret inside an XML data island, allowing\n // a javascript: URL to be snuck through\n href = href.replace(/<!--.*?-->/gu, '');\n\n // Case insensitive so we don't get faked out by JAVASCRIPT #1\n const matches = href.match(/^([a-zA-Z]+):/u);\n\n if (!matches) {\n // Protocol-relative URL or no scheme\n return;\n }\n\n return matches[1].toLowerCase();\n}\n\nconst ALLOWED_SCHEMES = ['data', 'http', 'https', 'ftp', 'mailto', 'sip', 'tel'];\n\nexport default function createDefaultCardActionMiddleware() {\n return [\n () =>\n next =>\n (...args) => {\n const [\n {\n cardAction: { type, value },\n getSignInUrl\n }\n ] = args;\n\n switch (type) {\n case 'call':\n case 'downloadFile':\n case 'openUrl':\n case 'playAudio':\n case 'playVideo':\n case 'showImage':\n if (ALLOWED_SCHEMES.includes(getScheme(value))) {\n if (ie11) {\n const newWindow = window.open();\n newWindow.opener = null;\n newWindow.location = value;\n } else {\n window.open(value, '_blank', 'noopener noreferrer');\n }\n } else {\n console.warn('botframework-webchat: Cannot open URL with disallowed schemes.', value);\n }\n\n break;\n\n case 'signin': {\n /**\n * @todo TODO: [P3] We should prime the URL into the OAuthCard directly, instead of calling getSessionId on-demand\n * This is to eliminate the delay between window.open() and location.href call\n */\n\n (async function () {\n const popup = window.open();\n const url = await getSignInUrl();\n\n if (['http', 'https'].includes(getScheme(url))) {\n popup.location.href = url;\n } else {\n console.warn('botframework-webchat: Cannot open URL with disallowed schemes.', url);\n\n popup.close();\n }\n })();\n\n break;\n }\n\n default:\n return next(...args);\n }\n }\n ];\n}\n","import { hooks } from 'botframework-webchat-api';\nimport classNames from 'classnames';\nimport React, { useRef } from 'react';\n\nimport useFocusAccessKeyEffect from '../../Utils/AccessKeySink/useFocusAccessKeyEffect';\nimport useLocalizeAccessKey from '../../hooks/internal/useLocalizeAccessKey';\nimport useStyleSet from '../../hooks/useStyleSet';\nimport { useLiveRegion } from '../../providers/LiveRegionTwin';\n\nconst { useLocalizer, useStyleOptions } = hooks;\n\ntype ScrollToEndButtonProps = Readonly<{ onClick?: (() => void) | undefined }>;\n\nconst newMessagesAccessKey = 'U u Ü ü';\n\nconst ScrollToEndButton = ({ onClick }: ScrollToEndButtonProps) => {\n const focusRef = useRef(null);\n const [{ scrollToEndButton: scrollToEndButtonStyleSet }] = useStyleSet();\n const [{ scrollToEndButtonBehavior }] = useStyleOptions();\n const localize = useLocalizer();\n const localizeAccessKey = useLocalizeAccessKey('accessible name');\n const shouldShowNewMessagesButton = scrollToEndButtonBehavior !== 'any';\n\n const text = localize(shouldShowNewMessagesButton ? 'TRANSCRIPT_NEW_MESSAGES' : 'TRANSCRIPT_MORE_MESSAGES');\n\n const liveRegionText = localize(\n 'TRANSCRIPT_LIVE_REGION_NEW_MESSAGES_ALT',\n localizeAccessKey(newMessagesAccessKey),\n text\n );\n\n // Setup and announce new messages button shortcuts\n useFocusAccessKeyEffect(shouldShowNewMessagesButton ? newMessagesAccessKey : '', focusRef);\n\n useLiveRegion(\n () => shouldShowNewMessagesButton && <div className=\"webchat__scroll-to-end-button__status\">{liveRegionText}</div>,\n [liveRegionText, shouldShowNewMessagesButton]\n );\n\n return (\n <button\n aria-keyshortcuts={shouldShowNewMessagesButton ? localizeAccessKey(newMessagesAccessKey) : undefined}\n aria-label={text}\n className={classNames('webchat__scroll-to-end-button', scrollToEndButtonStyleSet + '')}\n onClick={onClick}\n ref={focusRef}\n tabIndex={0}\n type=\"button\"\n >\n {text}\n </button>\n );\n};\n\nScrollToEndButton.displayName = 'ScrollToEndButton';\n\n// TODO: Will fail test if memo().\nexport default ScrollToEndButton;\n","import { ScrollToEndButtonMiddleware } from 'botframework-webchat-api';\n\nimport ScrollToEndButton from './ScrollToEndButton';\n\nexport default function createScrollToEndButtonMiddleware(): ScrollToEndButtonMiddleware[] {\n return [\n () =>\n () =>\n ({ atEnd, styleOptions: { scrollToEndButtonBehavior }, unread }) =>\n !scrollToEndButtonBehavior\n ? // Don't show the button when it is set to false.\n false\n : scrollToEndButtonBehavior === 'any'\n ? // Show when the scroll view is not at the end, regardless of number of unread activities.\n !atEnd && ScrollToEndButton\n : // Show when the scroll view is not at the end of the transcript, and there are new/unread activities.\n !atEnd && unread && ScrollToEndButton\n ];\n}\n","/* eslint react/prop-types: \"off\" */\n\nimport { ToastMiddleware } from 'botframework-webchat-api';\nimport React from 'react';\n\nimport BasicToast from '../BasicToast';\n\nfunction createToastMiddleware(): ToastMiddleware {\n return () =>\n () =>\n ({ notification }) => <BasicToast notification={notification} />;\n}\n\nexport default createToastMiddleware;\n","/* eslint react/forbid-dom-props: \"off\" */\n/* eslint react/no-danger: \"off\" */\n\nimport { hooks } from 'botframework-webchat-api';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport React, { useCallback, useMemo } from 'react';\n\nimport DismissIcon from './Toast/DismissIcon';\nimport NotificationIcon from './Toast/NotificationIcon';\nimport randomId from './Utils/randomId';\nimport ScreenReaderText from './ScreenReaderText';\nimport useInternalRenderMarkdownInline from './hooks/internal/useInternalRenderMarkdownInline';\nimport useStyleSet from './hooks/useStyleSet';\nimport { useStyleToEmotionObject } from './hooks/internal/styleToEmotionObject';\n\nconst { useDismissNotification, useLocalizer } = hooks;\n\nconst ROOT_STYLE = {\n display: 'flex',\n\n '& .webchat__toast__text': {\n flex: 1\n }\n};\n\nconst BasicToast = ({ notification: { alt, id, level, message = '' } }) => {\n const [{ toast: toastStyleSet }] = useStyleSet();\n const contentId = useMemo(() => `webchat__toast__${randomId()}`, []);\n const localize = useLocalizer();\n const dismissNotification = useDismissNotification();\n const renderMarkdownInline = useInternalRenderMarkdownInline();\n const rootClassName = useStyleToEmotionObject()(ROOT_STYLE) + '';\n\n const handleDismiss = useCallback(() => dismissNotification(id), [dismissNotification, id]);\n const html = useMemo(() => ({ __html: renderMarkdownInline(message) }), [message, renderMarkdownInline]);\n\n return (\n <div\n aria-describedby={contentId}\n aria-label={localize('TOAST_TITLE_ALT')}\n className={classNames(\n 'webchat__toast',\n {\n 'webchat__toast--error': level === 'error',\n 'webchat__toast--info': level === 'info',\n 'webchat__toast--success': level === 'success',\n 'webchat__toast--warn': level === 'warn'\n },\n rootClassName,\n toastStyleSet + ''\n )}\n role=\"dialog\"\n >\n <div className=\"webchat__toast__iconBox\">\n <NotificationIcon className=\"webchat__toast__icon\" level={level} />\n </div>\n {!!alt && <ScreenReaderText text={alt} />}\n <div aria-hidden={!!alt} className=\"webchat__toast__text\" dangerouslySetInnerHTML={html} id={contentId} />\n <button\n aria-label={localize('TOAST_DISMISS_BUTTON')}\n className=\"webchat__toast__dismissButton\"\n onClick={handleDismiss}\n type=\"button\"\n >\n <div aria-hidden={true} className=\"webchat__toast__dismissButtonFocus\">\n <DismissIcon />\n </div>\n </button>\n </div>\n );\n};\n\nBasicToast.propTypes = {\n notification: PropTypes.shape({\n alt: PropTypes.string,\n id: PropTypes.string.isRequired,\n level: PropTypes.string.isRequired,\n message: PropTypes.string.isRequired\n }).isRequired\n};\n\nexport default BasicToast;\n","import PropTypes from 'prop-types';\nimport React from 'react';\n\nconst DismissIcon = ({ className }) => (\n <svg\n className={(className || '') + ''}\n focusable={false}\n height=\"14\"\n role=\"presentation\"\n viewBox=\"0 0 14 14\"\n width=\"14\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M7.71094 7L13.1016 12.3984L12.3984 13.1016L7 7.71094L1.60156 13.1016L0.898438 12.3984L6.28906 7L0.898438 1.60156L1.60156 0.898438L7 6.28906L12.3984 0.898438L13.1016 1.60156L7.71094 7Z\" />\n </svg>\n);\n\nDismissIcon.defaultProps = {\n className: undefined\n};\n\nDismissIcon.propTypes = {\n className: PropTypes.string\n};\n\nexport default DismissIcon;\n","import { hooks } from 'botframework-webchat-api';\nimport { isForbiddenPropertyName } from 'botframework-webchat-core';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nimport CheckMarkIcon from './CheckMarkIcon';\nimport ExclamationMarkIcon from './ExclamationMarkIcon';\n\nconst { useLocalizer } = hooks;\n\nconst NotificationIcon = ({ className, level }) => {\n const localize = useLocalizer();\n\n const prefixes = {\n error: localize('TOAST_ALT_ERROR'),\n info: localize('TOAST_ALT_INFO'),\n success: localize('TOAST_ALT_SUCCESS'),\n warn: localize('TOAST_ALT_WARN')\n };\n\n // Mitigated through denylisting.\n // eslint-disable-next-line security/detect-object-injection\n const prefix = (!isForbiddenPropertyName(level) && prefixes[level]) || '';\n\n return (\n <React.Fragment>\n {level === 'success' ? (\n <CheckMarkIcon aria-label={prefix} className={className} />\n ) : (\n <ExclamationMarkIcon aria-label={prefix} className={className} />\n )}\n </React.Fragment>\n );\n};\n\nNotificationIcon.defaultProps = {\n className: undefined\n};\n\nNotificationIcon.propTypes = {\n className: PropTypes.string,\n level: PropTypes.oneOf(['error', 'info', 'success', 'warn']).isRequired\n};\n\nexport default NotificationIcon;\n","import PropTypes from 'prop-types';\nimport React from 'react';\n\nconst CheckMarkIcon = ({ 'aria-label': ariaLabel, className }) => (\n <svg\n aria-label={ariaLabel}\n className={(className || '') + ''}\n fill=\"none\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n width=\"20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M14.5605 5.81055L15.4395 6.68945L8.125 14.0039L4.56055 10.4395L5.43945 9.56055L8.125 12.2461L14.5605 5.81055ZM10 0C10.918 0 11.8034 0.120443 12.6562 0.361328C13.5091 0.595703 14.3066 0.93099 15.0488 1.36719C15.791 1.79688 16.4648 2.31771 17.0703 2.92969C17.6823 3.53516 18.2031 4.20898 18.6328 4.95117C19.069 5.69336 19.4043 6.49089 19.6387 7.34375C19.8796 8.19661 20 9.08203 20 10C20 10.918 19.8796 11.8034 19.6387 12.6562C19.4043 13.5091 19.069 14.3066 18.6328 15.0488C18.2031 15.791 17.6823 16.4681 17.0703 17.0801C16.4648 17.6855 15.791 18.2064 15.0488 18.6426C14.3066 19.0723 13.5091 19.4076 12.6562 19.6484C11.8034 19.8828 10.918 20 10 20C9.08203 20 8.19661 19.8828 7.34375 19.6484C6.49089 19.4076 5.69336 19.0723 4.95117 18.6426C4.20898 18.2064 3.5319 17.6855 2.91992 17.0801C2.31445 16.4681 1.79362 15.791 1.35742 15.0488C0.927734 14.3066 0.592448 13.5124 0.351562 12.666C0.117188 11.8132 0 10.9245 0 10C0 9.08203 0.117188 8.19661 0.351562 7.34375C0.592448 6.49089 0.927734 5.69336 1.35742 4.95117C1.79362 4.20898 2.31445 3.53516 2.91992 2.92969C3.5319 2.31771 4.20898 1.79688 4.95117 1.36719C5.69336 0.93099 6.48763 0.595703 7.33398 0.361328C8.18685 0.120443 9.07552 0 10 0ZM10 18.75C10.8008 18.75 11.5723 18.6458 12.3145 18.4375C13.0632 18.2292 13.7598 17.9362 14.4043 17.5586C15.0553 17.1745 15.6478 16.7155 16.1816 16.1816C16.7155 15.6478 17.1712 15.0586 17.5488 14.4141C17.9329 13.763 18.2292 13.0664 18.4375 12.3242C18.6458 11.582 18.75 10.8073 18.75 10C18.75 9.19922 18.6458 8.42773 18.4375 7.68555C18.2292 6.93685 17.9329 6.24023 17.5488 5.5957C17.1712 4.94466 16.7155 4.35221 16.1816 3.81836C15.6478 3.28451 15.0553 2.82878 14.4043 2.45117C13.7598 2.06706 13.0632 1.77083 12.3145 1.5625C11.5723 1.35417 10.8008 1.25 10 1.25C9.19922 1.25 8.42448 1.35417 7.67578 1.5625C6.93359 1.77083 6.23698 2.06706 5.58594 2.45117C4.94141 2.82878 4.35221 3.28451 3.81836 3.81836C3.28451 4.35221 2.82552 4.94466 2.44141 5.5957C2.0638 6.24023 1.77083 6.93685 1.5625 7.68555C1.35417 8.42773 1.25 9.19922 1.25 10C1.25 10.8008 1.35417 11.5755 1.5625 12.3242C1.77083 13.0664 2.0638 13.763 2.44141 14.4141C2.82552 15.0586 3.28451 15.6478 3.81836 16.1816C4.35221 16.7155 4.94141 17.1745 5.58594 17.5586C6.23698 17.9362 6.93359 18.2292 7.67578 18.4375C8.41797 18.6458 9.19271 18.75 10 18.75Z\"\n fill=\"#107C10\"\n />\n </svg>\n);\n\nCheckMarkIcon.defaultProps = {\n 'aria-label': undefined,\n className: undefined\n};\n\nCheckMarkIcon.propTypes = {\n 'aria-label': PropTypes.string,\n className: PropTypes.string\n};\n\nexport default CheckMarkIcon;\n","import PropTypes from 'prop-types';\nimport React from 'react';\n\nconst ExclamationMarkIcon = ({ 'aria-label': ariaLabel, className }) => (\n <svg\n aria-label={ariaLabel}\n className={(className || '') + ''}\n height=\"19\"\n viewBox=\"0 0 19 19\"\n width=\"19\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M9.375 0C10.2409 0 11.071 0.110677 11.8652 0.332031C12.666 0.553385 13.4147 0.869141 14.1113 1.2793C14.8079 1.68294 15.4395 2.17122 16.0059 2.74414C16.5788 3.31055 17.0671 3.94206 17.4707 4.63867C17.8809 5.33529 18.1966 6.08398 18.418 6.88477C18.6393 7.67904 18.75 8.50911 18.75 9.375C18.75 10.2409 18.6393 11.0742 18.418 11.875C18.1966 12.6693 17.8809 13.4147 17.4707 14.1113C17.0671 14.8079 16.5788 15.4427 16.0059 16.0156C15.4395 16.582 14.8079 17.0703 14.1113 17.4805C13.4147 17.8841 12.666 18.1966 11.8652 18.418C11.071 18.6393 10.2409 18.75 9.375 18.75C8.50911 18.75 7.67578 18.6393 6.875 18.418C6.08073 18.1966 5.33529 17.8841 4.63867 17.4805C3.94206 17.0703 3.30729 16.582 2.73438 16.0156C2.16797 15.4427 1.67969 14.8079 1.26953 14.1113C0.865885 13.4147 0.553385 12.6693 0.332031 11.875C0.110677 11.0742 0 10.2409 0 9.375C0 8.50911 0.110677 7.67904 0.332031 6.88477C0.553385 6.08398 0.865885 5.33529 1.26953 4.63867C1.67969 3.94206 2.16797 3.31055 2.73438 2.74414C3.30729 2.17122 3.94206 1.68294 4.63867 1.2793C5.33529 0.869141 6.08073 0.553385 6.875 0.332031C7.67578 0.110677 8.50911 0 9.375 0ZM9.375 17.5C10.1172 17.5 10.8333 17.4023 11.5234 17.207C12.2201 17.0117 12.8678 16.7383 13.4668 16.3867C14.0723 16.0352 14.6224 15.612 15.1172 15.1172C15.612 14.6224 16.0352 14.0755 16.3867 13.4766C16.7383 12.8711 17.0117 12.2233 17.207 11.5332C17.4023 10.8431 17.5 10.1237 17.5 9.375C17.5 8.63281 17.4023 7.91667 17.207 7.22656C17.0117 6.52995 16.7383 5.88216 16.3867 5.2832C16.0352 4.67773 15.612 4.1276 15.1172 3.63281C14.6224 3.13802 14.0723 2.71484 13.4668 2.36328C12.8678 2.01172 12.2201 1.73828 11.5234 1.54297C10.8333 1.34766 10.1172 1.25 9.375 1.25C8.6263 1.25 7.9069 1.34766 7.2168 1.54297C6.52669 1.73828 5.87891 2.01172 5.27344 2.36328C4.67448 2.71484 4.1276 3.13802 3.63281 3.63281C3.13802 4.1276 2.71484 4.67773 2.36328 5.2832C2.01172 5.88216 1.73828 6.52995 1.54297 7.22656C1.34766 7.91667 1.25 8.63281 1.25 9.375C1.25 10.1172 1.34766 10.8366 1.54297 11.5332C1.73828 12.2233 2.01172 12.8711 2.36328 13.4766C2.71484 14.0755 3.13802 14.6224 3.63281 15.1172C4.1276 15.612 4.67448 16.0352 5.27344 16.3867C5.87891 16.7383 6.52669 17.0117 7.2168 17.207C7.9069 17.4023 8.6263 17.5 9.375 17.5ZM8.75 5H10V11.25H8.75V5ZM8.75 12.5H10V13.75H8.75V12.5Z\" />\n </svg>\n);\n\nExclamationMarkIcon.defaultProps = {\n 'aria-label': undefined,\n className: undefined\n};\n\nExclamationMarkIcon.propTypes = {\n 'aria-label': PropTypes.string,\n className: PropTypes.string\n};\n\nexport default ExclamationMarkIcon;\n","import useWebChatUIContext from './useWebChatUIContext';\n\nfunction useInternalRenderMarkdownInline() {\n const { internalRenderMarkdownInline } = useWebChatUIContext();\n\n return internalRenderMarkdownInline;\n}\n\nexport default useInternalRenderMarkdownInline;\n","import { ToastMiddleware } from 'botframework-webchat-api';\n\nimport createToastMiddleware from '../../Toast/createToastMiddleware';\n\nfunction createCoreMiddleware(): ToastMiddleware[] {\n return [\n () =>\n next =>\n (...args) => {\n const [\n {\n notification: { id }\n }\n ] = args;\n\n // We are ignoring \"connectivitystatus\" notifications, we will render it using <BasicConnectivityStatus> instead.\n // If devs want to render it, they can add a middleware.\n return id !== 'connectivitystatus' && next(...args);\n },\n createToastMiddleware()\n ];\n}\n\nexport default createCoreMiddleware;\n","import { hooks, TypingIndicatorMiddleware } from 'botframework-webchat-api';\nimport classNames from 'classnames';\nimport React from 'react';\n\nimport TypingAnimation from '../../Assets/TypingAnimation';\nimport useStyleSet from '../../hooks/useStyleSet';\n\nconst { useDirection, useLocalizer } = hooks;\n\nconst DotIndicator = () => {\n const [{ typingIndicator: typingIndicatorStyleSet }] = useStyleSet();\n const [direction] = useDirection();\n const localize = useLocalizer();\n\n return (\n <div className={classNames(typingIndicatorStyleSet + '', direction === 'rtl' && 'webchat__typing-indicator--rtl')}>\n <TypingAnimation aria-label={localize('TYPING_INDICATOR_ALT')} />\n </div>\n );\n};\n\n// TODO: [P4] Rename this file or the whole middleware, it looks either too simple or too comprehensive now\nexport default function createCoreMiddleware(): TypingIndicatorMiddleware[] {\n return [\n () =>\n () =>\n ({ visible }) =>\n visible && <DotIndicator />\n ];\n}\n","import { hooks } from 'botframework-webchat-api';\nimport classNames from 'classnames';\nimport React from 'react';\n\nimport ScreenReaderText from '../ScreenReaderText';\nimport { useStyleToEmotionObject } from '../hooks/internal/styleToEmotionObject';\nimport testIds from '../testIds';\nimport useStyleSet from '../hooks/useStyleSet';\n\nconst { useDirection, useLocalizer } = hooks;\n\nconst ROOT_STYLE = {\n '&.webchat__typing-indicator.webchat__typing-indicator--rtl': { transform: 'scale(-1, 1)' }\n};\n\nconst TypingAnimation = () => {\n const [{ typingAnimation: typingAnimationStyleSet }] = useStyleSet();\n const [direction] = useDirection();\n const localize = useLocalizer();\n const rootClassName = useStyleToEmotionObject()(ROOT_STYLE) + '';\n\n return (\n <React.Fragment>\n <ScreenReaderText text={localize('TYPING_INDICATOR_ALT')} />\n <div\n aria-hidden={true}\n className={classNames(\n 'webchat__typing-indicator',\n {\n 'webchat__typing-indicator--rtl': direction === 'rtl'\n },\n rootClassName,\n typingAnimationStyleSet + ''\n )}\n data-testid={testIds.typingIndicator}\n />\n </React.Fragment>\n );\n};\n\nexport default TypingAnimation;\n","import mathRandom from 'math-random';\nimport React, { memo, useCallback, useMemo, type ReactNode } from 'react';\n\nimport useReactCodeBlockClass from './customElements/CodeBlock';\nimport { CodeBlockCopyButtonElement } from './customElements/CodeBlockCopyButton';\nimport CustomElementsContext from './private/CustomElementsContext';\n\ntype CustomElementsComposerProps = Readonly<{\n children?: ReactNode | undefined;\n}>;\n\nconst CustomElementsComposer = ({ children }: CustomElementsComposerProps) => {\n // eslint-disable-next-line no-magic-numbers\n const hash = useMemo(() => mathRandom().toString(36).substring(2, 7), []);\n\n const registerCustomElement = useCallback(\n (tagName: string, customElementConstructor: CustomElementConstructor): string => {\n const fullTagName = `webchat-${hash}--${tagName}` as const;\n\n customElements.define(\n fullTagName,\n class extends customElementConstructor {\n static get observedAttributes(): readonly string[] {\n return Object.freeze(\n 'observedAttributes' in customElementConstructor\n ? (customElementConstructor.observedAttributes as string[])\n : []\n );\n }\n }\n );\n\n return fullTagName;\n },\n [hash]\n );\n\n const codeBlockCopyButtonTagName = useMemo(\n () => registerCustomElement('code-block-copy-button', CodeBlockCopyButtonElement),\n [registerCustomElement]\n );\n\n const CodeBlockClass = useReactCodeBlockClass(codeBlockCopyButtonTagName);\n\n const codeBlockTagName = useMemo(\n () => registerCustomElement('code-block', CodeBlockClass),\n [CodeBlockClass, registerCustomElement]\n );\n\n const context = useMemo(\n () => Object.freeze({ codeBlockTagName, codeBlockCopyButtonTagName }),\n [codeBlockTagName, codeBlockCopyButtonTagName]\n );\n\n return <CustomElementsContext.Provider value={context}>{children}</CustomElementsContext.Provider>;\n};\n\nexport default memo(CustomElementsComposer);\n","/* eslint-disable class-methods-use-this */\nimport { hooks } from 'botframework-webchat-api';\nimport { useStyles } from '@msinternal/botframework-webchat-styles/react';\nimport { ReactNode, useMemo, useRef } from 'react';\n\nimport { useCodeHighlighter } from '../../../hooks/internal/codeHighlighter';\nimport { defaultHighlightCode, HighlightCodeFn } from '../../../hooks/internal/codeHighlighter/index';\nimport parseDocumentFragmentFromString from '../../../Utils/parseDocumentFragmentFromString';\n\nimport styles from './CodeBlock.module.css';\n\nconst { useStyleOptions, useLocalizer } = hooks;\n\nclass CodeBlock extends HTMLElement {\n static observedAttributes = ['theme', 'language'];\n\n copyButtonElement: HTMLElement;\n\n #connected = false;\n #originalFragment: DocumentFragment = undefined;\n #updateTask?: Promise<void>;\n\n get code() {\n return this.querySelector('code')?.textContent ?? '';\n }\n\n get theme() {\n return this.getAttribute('theme');\n }\n\n set theme(value: string) {\n this.setAttribute('theme', value);\n }\n\n get language() {\n return this.getAttribute('language');\n }\n set language(value: string) {\n this.setAttribute('language', value);\n }\n\n get options() {\n const { theme } = this;\n return theme ? { theme } : undefined;\n }\n\n connectedCallback() {\n this.#connected = true;\n this.scheduleUpdate();\n }\n\n disconnectedCallback() {\n this.#connected = false;\n }\n\n attributeChangedCallback(_name: string, oldValue: string, newValue: string) {\n const updated = !Object.is(oldValue, newValue);\n\n this.#connected && updated && this.scheduleUpdate();\n }\n\n scheduleUpdate() {\n if (this.#updateTask) {\n return;\n }\n\n this.#updateTask = Promise.resolve().then(() => {\n this.#updateTask = undefined;\n this.update();\n });\n }\n\n update() {\n const { code, language, options, ownerDocument: document } = this;\n\n if (!code) {\n return;\n }\n\n if (!this.#originalFragment) {\n this.#originalFragment = document.createDocumentFragment();\n this.#originalFragment.replaceChildren(...this.children);\n }\n\n const result = this.highlightCode(code, language, options);\n const highlightedCodeFragment =\n result instanceof DocumentFragment ? result : parseDocumentFragmentFromString(result);\n\n highlightedCodeFragment.insertBefore(this.copyButtonElement, highlightedCodeFragment.firstChild);\n\n this.replaceChildren(highlightedCodeFragment);\n\n if (this.copyButtonElement) {\n this.copyButtonElement.dataset.value = code;\n }\n }\n\n highlightCode(...args: Parameters<HighlightCodeFn>) {\n return defaultHighlightCode(...args);\n }\n}\n\nexport type CodeBlockProps = Readonly<{\n children?: ReactNode | undefined;\n className?: string | undefined;\n language?: string | undefined;\n theme?: string | undefined;\n}>;\n\ntype CodeBlockReactProps = Readonly<{\n codeBlockTheme: 'github-light-default' | 'github-dark-default';\n copyButtonAltCopied: string;\n copyButtonAltCopy: string;\n copyButtonTagName: string;\n highlightCode: HighlightCodeFn;\n}>;\n\nconst useCodeBlockProps = (copyButtonTagName: string) => {\n const highlightCode = useCodeHighlighter();\n const localize = useLocalizer();\n const [{ codeBlockTheme }] = useStyleOptions();\n const copyButtonAltCopied = localize('COPY_BUTTON_COPIED_TEXT');\n const copyButtonAltCopy = localize('COPY_BUTTON_TEXT');\n const propsChangedEventTarget = useMemo<EventTarget>(() => new EventTarget(), []);\n const propsRef = useRef<CodeBlockReactProps>();\n\n useMemo(() => {\n propsRef.current = Object.freeze({\n codeBlockTheme,\n copyButtonAltCopied,\n copyButtonAltCopy,\n copyButtonTagName,\n highlightCode\n });\n\n propsChangedEventTarget.dispatchEvent(new CustomEvent('change'));\n }, [\n codeBlockTheme,\n copyButtonAltCopied,\n copyButtonAltCopy,\n copyButtonTagName,\n highlightCode,\n propsChangedEventTarget\n ]);\n\n return useMemo(\n () => Object.freeze([propsChangedEventTarget, propsRef] as const),\n [propsChangedEventTarget, propsRef]\n );\n};\n\nexport default function useReactCodeBlockClass(copyButtonTagName: string): typeof HTMLElement {\n const [codeBlockTarget, codeBlockPropsRef] = useCodeBlockProps(copyButtonTagName);\n\n const classNames = useStyles(styles);\n\n return useMemo<typeof HTMLElement>(\n () =>\n class ReactCodeBlock extends CodeBlock {\n static observedAttributes = CodeBlock.observedAttributes;\n\n #prevProps: CodeBlockReactProps | undefined;\n\n get #props() {\n return codeBlockPropsRef.current;\n }\n\n #handlePropsChange = () => {\n const props = this.#props;\n const prevProps = this.#prevProps;\n\n this.#prevProps = props;\n\n this.setAttribute('theme', props.codeBlockTheme);\n\n if (prevProps?.highlightCode !== props.highlightCode) {\n this.scheduleUpdate();\n }\n\n if (prevProps?.copyButtonTagName !== props.copyButtonTagName || !this.copyButtonElement) {\n const { ownerDocument: document } = this;\n\n this.copyButtonElement = document.createElement(props.copyButtonTagName);\n this.scheduleUpdate();\n }\n\n this.copyButtonElement.dataset.altCopy = props.copyButtonAltCopy;\n this.copyButtonElement.dataset.altCopied = props.copyButtonAltCopied;\n };\n\n connectedCallback(): void {\n this.classList.add(...classNames['code-block'].split(/\\s+/gu));\n codeBlockTarget.addEventListener('change', this.#handlePropsChange);\n\n this.#handlePropsChange();\n super.connectedCallback();\n }\n\n update(): void {\n super.update();\n\n const body = this.querySelector('pre');\n body?.classList.add(...classNames['code-block__body'].split(/\\s+/gu));\n\n const theme = this.options?.theme;\n theme &&\n body?.classList.add(\n ...(classNames[`code-block__theme--${theme}`] ?? `code-block__theme--${theme}`).split(/\\s+/gu)\n );\n }\n\n disconnectedCallback(): void {\n codeBlockTarget.removeEventListener('change', this.#handlePropsChange);\n\n super.disconnectedCallback();\n }\n\n highlightCode(...args: Parameters<HighlightCodeFn>) {\n const [, language, options] = args;\n\n if (!language || !options) {\n return defaultHighlightCode(...args);\n }\n\n return this.#props.highlightCode(...args);\n }\n },\n [classNames, codeBlockPropsRef, codeBlockTarget]\n );\n}\n","import \"/__w/1/s/BotFramework-WebChat/packages/component/src/providers/CustomElements/customElements/CodeBlock.module_built.css\";\nconst classes = {\"code-block__theme--github-dark-default\":\"wWoZ38W_code-block__theme--github-dark-default\",\"code-block__body\":\"wWoZ38W_code-block__body\",\"code-block\":\"wWoZ38W_code-block\",\"code-block__theme--github-light-default\":\"wWoZ38W_code-block__theme--github-light-default\"}\nexport default classes\n\nconst _code_block__theme__github_dark_default0 = classes[\"code-block__theme--github-dark-default\"]\nexport { _code_block__theme__github_dark_default0 as \"code-block__theme--github-dark-default\" }\n\nconst _code_block__body0 = classes[\"code-block__body\"]\nexport { _code_block__body0 as \"code-block__body\" }\n\nconst _code_block0 = classes[\"code-block\"]\nexport { _code_block0 as \"code-block\" }\n\nconst _code_block__theme__github_light_default0 = classes[\"code-block__theme--github-light-default\"]\nexport { _code_block__theme__github_light_default0 as \"code-block__theme--github-light-default\" }\n","import cx from 'classnames';\nimport { useStyles } from '@msinternal/botframework-webchat-styles/react';\nimport React, { memo, useCallback, useState } from 'react';\nimport { useRefFrom } from 'use-ref-from';\nimport { useStateWithRef } from 'use-state-with-ref';\n\nimport { ComponentIcon } from '../../../Icon';\nimport testIds from '../../../testIds';\nimport wrapAsCustomElement from './wrapAsCustomElement';\n\nimport styles from './CodeBlockCopyButton.module.css';\n\nexport type CodeBlockCopyButtonProps = Readonly<{\n className: string;\n 'data-alt-copied': string;\n 'data-alt-copy': string;\n 'data-value': string;\n}>;\n\nconst CodeBlockCopyButton = memo(\n ({\n className,\n 'data-alt-copied': copiedAlt,\n 'data-alt-copy': copyAlt,\n 'data-value': value\n }: CodeBlockCopyButtonProps) => {\n const classNames = useStyles(styles);\n const [disabled, setDisabled, disabledRef] = useStateWithRef(false);\n const [pressed, setPressed] = useState(false);\n const valueRef = useRefFrom(value);\n\n const handleClick = useCallback(() => {\n if (disabledRef.current) {\n return;\n }\n\n let obsoleted = false;\n\n (async () => {\n try {\n const { state } = await navigator.permissions.query({ name: 'clipboard-write' as any });\n\n if (!obsoleted) {\n if (state === 'granted') {\n await navigator.clipboard?.write([\n new ClipboardItem({ 'text/plain': new Blob([valueRef.current], { type: 'text/plain' }) })\n ]);\n\n obsoleted || setPressed(true);\n } else if (state === 'denied') {\n setDisabled(true);\n }\n }\n } catch (error) {\n console.warn('botframework-webchat: Failed to copy code block to clipboard.', error);\n }\n })();\n\n return () => {\n obsoleted = true;\n };\n }, [disabledRef, setDisabled, setPressed, valueRef]);\n\n const handleAnimationEnd = useCallback(() => setPressed(false), [setPressed]);\n\n return (\n <button\n aria-disabled={disabled}\n aria-live=\"assertive\"\n aria-pressed={pressed ? 'true' : undefined}\n className={cx(className, classNames['code-block-copy-button'], {\n [classNames['code-block-copy-button--copied']]: pressed\n })}\n data-testid={testIds.codeBlockCopyButton}\n onAnimationEnd={handleAnimationEnd}\n onClick={handleClick}\n type=\"button\"\n >\n <ComponentIcon\n aria-hidden={pressed ? 'true' : undefined}\n aria-label={copyAlt}\n className={cx(classNames['code-block-copy-button__icon'], classNames['code-block-copy-button__icon--copy'])}\n icon={pressed ? 'copy-code-checkmark' : 'copy-code'}\n role=\"img\"\n />\n <div\n aria-hidden={pressed ? undefined : 'true'}\n aria-label={copiedAlt}\n className={cx(classNames['code-block-copy-button__icon'], classNames['code-block-copy-button__icon--copied'])}\n role=\"img\"\n />\n </button>\n );\n }\n);\n\nCodeBlockCopyButton.displayName = 'CodeBlockCopyButton';\n\nconst CodeBlockCopyButtonElement = wrapAsCustomElement(CodeBlockCopyButton, [\n 'className',\n 'data-alt-copied',\n 'data-alt-copy',\n 'data-value'\n]);\n\nexport default CodeBlockCopyButton;\n\nexport { CodeBlockCopyButtonElement };\n","import { createElement, type ComponentType } from 'react';\nimport { render, unmountComponentAtNode } from 'react-dom';\n\nconst ConnectionState = {\n DISCONNECTED: 0,\n CONNECTED: 1,\n PENDING: 2\n};\n\nexport default function wrapAsCustomElement<Props extends { [key: string]: string | undefined } & { children?: never }>(\n component: ComponentType<Props>,\n propKeys: (keyof Props)[]\n): typeof HTMLElement {\n type AttributeName = keyof { [K in keyof Props as K extends 'className' ? 'class' : K]: Props[K] } & string;\n\n const attributeNames = propKeys.map(key => (key === 'className' ? 'class' : key)) as AttributeName[];\n\n return class ReactWrapper extends HTMLElement {\n static get observedAttributes(): string[] {\n return attributeNames;\n }\n\n #connected = ConnectionState.DISCONNECTED;\n\n constructor() {\n super();\n\n const propMap = (this.#propMap = new Map<keyof Props, null | string | undefined>());\n\n for (const key of attributeNames) {\n const value = this.getAttribute(key);\n\n typeof value === 'string' && propMap.set(key === 'class' ? 'className' : key, value);\n }\n }\n\n #propMap: Map<keyof Props, string>;\n\n #getProps(): Props {\n const propEntries: [keyof Props, string][] = Array.from<[keyof Props, string]>(this.#propMap.entries());\n\n return Object.freeze(Object.fromEntries(propEntries) as Props);\n }\n\n attributeChangedCallback(name: AttributeName, _oldValue: string, newValue: string) {\n if (name === 'class') {\n name = 'className';\n }\n\n const prevProps = new Map(this.#propMap);\n\n if (typeof newValue === 'string') {\n this.#propMap.set(name, newValue);\n } else {\n this.#propMap.delete(name);\n }\n\n const areEqual =\n prevProps.size === this.#propMap.size &&\n Array.from(new Set(prevProps.keys()).union(new Set(this.#propMap))).every((key: string) =>\n Object.is(prevProps.get(key), this.#propMap.get(key))\n );\n\n // For every attribute change, browser will call this function again. It is not batched.\n !areEqual &&\n this.#connected === ConnectionState.CONNECTED &&\n render(createElement(component, this.#getProps()), this);\n }\n\n connectedCallback() {\n this.#connected !== ConnectionState.PENDING && render(createElement(component, this.#getProps()), this);\n this.#connected = ConnectionState.CONNECTED;\n }\n\n async disconnectedCallback() {\n this.#connected = ConnectionState.PENDING;\n await Promise.resolve();\n if (this.#connected === ConnectionState.PENDING) {\n this.#connected = ConnectionState.DISCONNECTED;\n unmountComponentAtNode(this);\n this.replaceChildren();\n }\n }\n };\n}\n","import \"/__w/1/s/BotFramework-WebChat/packages/component/src/providers/CustomElements/customElements/CodeBlockCopyButton.module_built.css\";\nconst classes = {\"code-block-copy-button\":\"wGHOKkG_code-block-copy-button\",\"code-block-copy-button__icon\":\"wGHOKkG_code-block-copy-button__icon\",\"code-block-copy-button__icon--copied\":\"wGHOKkG_code-block-copy-button__icon--copied\",\"code-block-copy-button--copied\":\"wGHOKkG_code-block-copy-button--copied\"}\nexport default classes\n\nconst _code_block_copy_button0 = classes[\"code-block-copy-button\"]\nexport { _code_block_copy_button0 as \"code-block-copy-button\" }\n\nconst _code_block_copy_button__icon0 = classes[\"code-block-copy-button__icon\"]\nexport { _code_block_copy_button__icon0 as \"code-block-copy-button__icon\" }\n\nconst _code_block_copy_button__icon__copied0 = classes[\"code-block-copy-button__icon--copied\"]\nexport { _code_block_copy_button__icon__copied0 as \"code-block-copy-button__icon--copied\" }\n\nconst _code_block_copy_button__copied0 = classes[\"code-block-copy-button--copied\"]\nexport { _code_block_copy_button__copied0 as \"code-block-copy-button--copied\" }\n","import React, { memo, useMemo, type ReactNode } from 'react';\n\nimport HTMLContentTransformContext, {\n type HTMLContentTransformContextType,\n type HTMLContentTransformFunction,\n type HTMLContentTransformMiddleware\n} from './private/HTMLContentTransformContext';\n\ntype HTMLContentTransformComposerProps = Readonly<{\n children?: ReactNode | undefined;\n middleware?: readonly HTMLContentTransformMiddleware[] | undefined;\n}>;\n\nconst HTMLContentTransformComposer = memo(({ children, middleware }: HTMLContentTransformComposerProps) => {\n const transform = useMemo<HTMLContentTransformFunction>(() => {\n const enhancers = (middleware || []).map(enhancer => enhancer()).reverse();\n\n return enhancers.reduce(\n (chain: HTMLContentTransformFunction, fn) => fn(chain),\n fragment => {\n // With bundle or sanitizer installed, it should not fall into this code.\n\n const result = document.createDocumentFragment();\n const paragraph = document.createElement('p');\n\n paragraph.textContent = fragment.documentFragment.firstElementChild.outerHTML;\n result.append(paragraph);\n\n return result;\n }\n );\n }, [middleware]);\n\n const context = useMemo<HTMLContentTransformContextType>(() => Object.freeze({ transform }), [transform]);\n\n return <HTMLContentTransformContext.Provider value={context}>{children}</HTMLContentTransformContext.Provider>;\n});\n\nHTMLContentTransformComposer.displayName = 'HTMLContentTransformComposer';\n\nexport default HTMLContentTransformComposer;\n","import { hooks } from 'botframework-webchat-api';\nimport classNames from 'classnames';\nimport React, { memo, useCallback, useEffect, useMemo, useState, type ReactNode } from 'react';\nimport { useRefFrom } from 'use-ref-from';\n\nimport { useStyleToEmotionObject } from '../../../hooks/internal/styleToEmotionObject';\nimport useUniqueId from '../../../hooks/internal/useUniqueId';\nimport useFocus from '../../../hooks/useFocus';\nimport useScrollToEnd from '../../../hooks/useScrollToEnd';\nimport { useLiveRegion } from '../../../providers/LiveRegionTwin';\nimport SendBoxContext from './private/Context';\nimport { type ContextType, type SendError } from './private/types';\n\nconst { useConnectivityStatus, useLocalizer, useSendBoxAttachments, useSendBoxValue, useSubmitSendBox } = hooks;\n\nconst SUBMIT_ERROR_MESSAGE_STYLE = {\n '&.webchat__submit-error-message': {\n // .sr-only - This component is intended to be invisible to the visual Web Chat user, but read by the AT when using a screen reader\n color: 'transparent',\n height: 1,\n overflow: 'hidden',\n position: 'absolute',\n // We need to set top: 0, otherwise, it will repro:\n // - Run NVDA\n // - Make the transcript long enough to show the scrollbar\n // - Press SHIFT-TAB, focus on upload button\n // - Press up arrow multiple times\n top: 0,\n whiteSpace: 'nowrap',\n width: 1\n }\n};\n\n// This component is marked as internal because it is not fully implemented and is not ready to be consumed publicly.\n// When it is done, it should provide and replace all the functionalities we did in Redux, including but not limited to:\n\n// - Speech interims\n// - Maintain text box value\n// - Multiple <SendBoxComposer> in a single Web Chat instance\n// - Web devs should be able to put an individual send box instance into an activity\n// - The send box instance in the activity, should be separated from the bottommost send box\n// - The valued typed inside the activity, should be separated from the value typed into the bottommost send box\n\n// In the old days, we use Redux to keep the send box state.\n// However, when web devs put 2 send box on their page, it makes things complex because both send boxes will interact with each other.\n// We would rather have them separate. If web devs want them to interact with each other, they will do the wiring themselves.\n\ntype ErrorMessageStringMap = ReadonlyMap<SendError, string>;\n\ntype SendBoxComposerProps = Readonly<{ children?: ReactNode | undefined }>;\n\n// TODO: [P2] Complete this component.\nconst SendBoxComposer = ({ children }: SendBoxComposerProps) => {\n const [attachments] = useSendBoxAttachments();\n const [connectivityStatus] = useConnectivityStatus();\n const [error, setError] = useState<SendError | false>(false);\n const [sendBoxValue] = useSendBoxValue();\n const apiSubmitSendBox = useSubmitSendBox();\n const focus = useFocus();\n const localize = useLocalizer();\n const scrollToEnd = useScrollToEnd();\n const styleToEmotionObject = useStyleToEmotionObject();\n const submitErrorMessageId = useUniqueId('webchat__send-box__error-message-id');\n\n const errorMessageStringMap = useMemo<ErrorMessageStringMap>(\n () =>\n Object.freeze(\n new Map<SendError, string>()\n .set('empty', localize('SEND_BOX_IS_EMPTY_TOOLTIP_ALT'))\n // TODO: [P0] We should add a new string for \"Cannot send message while offline.\"\n .set('offline', localize('CONNECTIVITY_STATUS_ALT_FATAL'))\n ),\n [localize]\n );\n const focusRef = useRefFrom(focus);\n const scrollToEndRef = useRefFrom(scrollToEnd);\n const submitErrorMessageClassName = styleToEmotionObject(SUBMIT_ERROR_MESSAGE_STYLE) + '';\n const submitErrorMessageIdState = useMemo<readonly [string | undefined]>(\n () => Object.freeze([error ? submitErrorMessageId : undefined]) as readonly [string | undefined],\n [error, submitErrorMessageId]\n );\n\n const submitErrorRef = useRefFrom<'empty' | 'offline' | undefined>(\n connectivityStatus !== 'connected' && connectivityStatus !== 'reconnected'\n ? 'offline'\n : !sendBoxValue && !attachments.length\n ? 'empty'\n : undefined\n );\n\n const submit = useCallback<ContextType['submit']>(\n ({ setFocus } = {}) => {\n (setFocus === 'main' || setFocus === 'sendBox' || setFocus === 'sendBoxWithoutKeyboard') &&\n focusRef.current?.(setFocus === 'main' || setFocus === 'sendBox' ? setFocus : 'sendBoxWithoutKeyboard');\n\n const { current: submitError } = submitErrorRef;\n setError(submitError ?? false);\n\n if (!submitError) {\n scrollToEndRef.current?.();\n apiSubmitSendBox();\n }\n },\n [apiSubmitSendBox, focusRef, scrollToEndRef, submitErrorRef]\n );\n\n const context = useMemo(\n () => ({\n submit,\n submitErrorMessageIdState\n }),\n [submit, submitErrorMessageIdState]\n );\n\n const hasValue = !!sendBoxValue?.trim();\n\n useEffect(() => {\n if (error === 'empty' && hasValue) {\n // TODO: [P2] Intentionally set the state, we will visit it later.\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setError(false);\n }\n }, [error, hasValue]);\n\n const errorMessage = error && errorMessageStringMap.get(error);\n\n useLiveRegion(\n () => errorMessage && <div className={classNames('webchat__submit-error-message__status')}>{errorMessage}</div>,\n [errorMessage]\n );\n\n return (\n <SendBoxContext.Provider value={context}>\n {children}\n <span\n className={classNames('webchat__submit-error-message', submitErrorMessageClassName)}\n // \"id\" is required for \"aria-errormessage\" as IDREF.\n // eslint-disable-next-line react/forbid-dom-props\n id={submitErrorMessageId}\n >\n {error ? errorMessageStringMap.get(error) : ''}\n </span>\n </SendBoxContext.Provider>\n );\n};\n\nSendBoxComposer.displayName = 'SendBoxComposer';\n\nexport default memo(SendBoxComposer);\n","import React, { memo, type ReactNode, useCallback, useMemo, useState } from 'react';\n\nimport Context from './private/Context';\nimport ModalDialog from './private/Popover';\n\nimport { type ContextOf } from '../../types/ContextOf';\n\ntype ContextType = ContextOf<typeof Context>;\ntype RenderFunction = Parameters<ContextType['showModal']>[0];\ntype DialogInit = Exclude<Parameters<ContextType['showModal']>[1], undefined>;\n\ntype RenderFunctionAndDialogInit = Readonly<[RenderFunction, DialogInit | undefined]>;\n\ntype Props = Readonly<{ children?: ReactNode }>;\n\nconst ModalDialogComposer = memo(({ children }: Props) => {\n const [renderFunctionAndDialogInit, setRenderFunctionAndDialogInit] = useState<\n RenderFunctionAndDialogInit | undefined\n >();\n\n const close = useCallback(() => setRenderFunctionAndDialogInit(undefined), [setRenderFunctionAndDialogInit]);\n const showModal = useCallback<(render: RenderFunction, init?: DialogInit) => void>(\n (render: RenderFunction, init?: DialogInit) => setRenderFunctionAndDialogInit(Object.freeze([render, init])),\n [setRenderFunctionAndDialogInit]\n );\n\n const context = useMemo<ContextType>(() => Object.freeze({ close, showModal }), [close, showModal]);\n\n return (\n <Context.Provider value={context}>\n {children}\n {renderFunctionAndDialogInit && (\n <ModalDialog\n aria-label={renderFunctionAndDialogInit[1]?.['aria-label']}\n aria-labelledby={renderFunctionAndDialogInit[1]?.['aria-labelledby']}\n className={renderFunctionAndDialogInit[1]?.className}\n onDismiss={close}\n >\n {renderFunctionAndDialogInit[0]()}\n </ModalDialog>\n )}\n </Context.Provider>\n );\n});\n\nModalDialogComposer.displayName = 'ModalDialogComposer';\n\nexport default ModalDialogComposer;\n","import { hooks } from 'botframework-webchat-api';\nimport classNames from 'classnames';\nimport React, { memo, type PropsWithChildren, useCallback, useLayoutEffect, useRef } from 'react';\n\nimport { ComponentIcon } from '../../../Icon';\nimport useStyleSet from '../../../hooks/useStyleSet';\n\nconst { useLocalizer } = hooks;\n\ntype Props = Readonly<\n PropsWithChildren<{\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n className?: string;\n onDismiss?: () => void;\n }>\n>;\n\nconst ModalDialog = memo(\n ({ 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, children, className, onDismiss }: Props) => {\n const [{ modalDialog: modalDialogStyleSet }] = useStyleSet();\n const dialogRef = useRef<HTMLDialogElement>(null);\n const localize = useLocalizer();\n\n const closeButtonAlt = localize('CLOSE_BUTTON_ALT');\n\n const handleCloseButtonClick = useCallback(() => dialogRef.current?.close(), [dialogRef]);\n\n useLayoutEffect(() => dialogRef.current?.showModal(), [dialogRef]);\n\n return (\n <dialog\n // When \"aria-labelledby\" is set, it must not set \"aria-label\".\n aria-label={!ariaLabelledBy ? ariaLabel : undefined}\n aria-labelledby={ariaLabelledBy}\n className={classNames('webchat__modal-dialog', className, modalDialogStyleSet + '')}\n onClose={onDismiss}\n open={false}\n ref={dialogRef}\n role=\"dialog\"\n >\n <div className=\"webchat__modal-dialog__box\">\n {/* The __scrollable layer is for hiding scrollbar at corners.\n Without this layer, the scrollbar will show and overflow the border-radius.\n This impact will be more visible if we temporarily set border-radius: 20px. */}\n <div className=\"webchat__modal-dialog__close-button-layout\">\n <button\n aria-label={closeButtonAlt}\n className=\"webchat__modal-dialog__close-button\"\n onClick={handleCloseButtonClick}\n type=\"button\"\n >\n <ComponentIcon appearance=\"text\" className=\"webchat__modal-dialog__close-button-icon\" icon=\"dismiss\" />\n </button>\n </div>\n <div className=\"webchat__modal-dialog__body\">{children}</div>\n </div>\n </dialog>\n );\n }\n);\n\nModalDialog.displayName = 'ModalDialog';\n\nexport default ModalDialog;\n","import React, { memo, useEffect, useMemo, useState, type ReactNode } from 'react';\n\nimport { type ContextOf } from '../../types/ContextOf';\nimport Context from './private/Context';\n\ntype ContextType = ContextOf<typeof Context>;\n\ntype ReducedMotionComposerProps = Readonly<{\n children?: ReactNode | undefined;\n}>;\n\nconst ReducedMotionComposer = memo(({ children }: ReducedMotionComposerProps) => {\n const shouldReduceMotionQueryList = useMemo(() => matchMedia?.('(prefers-reduced-motion: reduce)'), []);\n const [shouldReduceMotion, setShouldReduceMotion] = useState<boolean>(\n () => shouldReduceMotionQueryList?.matches ?? false\n );\n\n const shouldReduceMotionState = useMemo(() => Object.freeze([shouldReduceMotion] as const), [shouldReduceMotion]);\n\n const context = useMemo<ContextType>(() => Object.freeze({ shouldReduceMotionState }), [shouldReduceMotionState]);\n\n useEffect(() => {\n const handleChange = ({ matches }: MediaQueryListEvent) => setShouldReduceMotion(matches);\n\n shouldReduceMotionQueryList.addEventListener('change', handleChange);\n\n return () => shouldReduceMotionQueryList.removeEventListener('change', handleChange);\n }, [setShouldReduceMotion, shouldReduceMotionQueryList]);\n\n return <Context.Provider value={context}>{children}</Context.Provider>;\n});\n\nReducedMotionComposer.displayName = 'ReducedMotionComposer';\n\nexport default ReducedMotionComposer;\n","import { useContext } from 'react';\n\nimport Context from './private/Context';\n\nexport default function useTheme() {\n return useContext(Context);\n}\n","import type {\n ActivityMiddleware,\n ActivityStatusMiddleware,\n AttachmentForScreenReaderMiddleware,\n AttachmentMiddleware,\n AvatarMiddleware,\n CardActionMiddleware,\n GroupActivitiesMiddleware,\n ScrollToEndButtonMiddleware,\n SendBoxMiddleware,\n SendBoxToolbarMiddleware,\n ToastMiddleware,\n TypingIndicatorMiddleware\n} from 'botframework-webchat-api';\nimport { type Polymiddleware } from 'botframework-webchat-api/middleware.js';\nimport { createContext } from 'react';\n\nconst EMPTY_ARRAY = Object.freeze([] as const);\n\nexport type ThemeContextType = {\n /** @deprecated Use `polymiddleware` instead, this will be removed on or after 2027-08-16. */\n readonly activityMiddleware: readonly ActivityMiddleware[];\n readonly activityStatusMiddleware: readonly ActivityStatusMiddleware[];\n readonly attachmentForScreenReaderMiddleware: readonly AttachmentForScreenReaderMiddleware[];\n readonly attachmentMiddleware: readonly AttachmentMiddleware[];\n readonly avatarMiddleware: readonly AvatarMiddleware[];\n readonly cardActionMiddleware: readonly CardActionMiddleware[];\n readonly groupActivitiesMiddleware: readonly GroupActivitiesMiddleware[];\n readonly polymiddleware: readonly Polymiddleware[];\n readonly scrollToEndButtonMiddleware: readonly ScrollToEndButtonMiddleware[];\n readonly sendBoxMiddleware: readonly SendBoxMiddleware[];\n readonly sendBoxToolbarMiddleware: readonly SendBoxToolbarMiddleware[];\n readonly toastMiddleware: readonly ToastMiddleware[];\n readonly typingIndicatorMiddleware: readonly TypingIndicatorMiddleware[];\n};\n\nexport default createContext<ThemeContextType>({\n activityMiddleware: EMPTY_ARRAY,\n activityStatusMiddleware: EMPTY_ARRAY,\n attachmentForScreenReaderMiddleware: EMPTY_ARRAY,\n attachmentMiddleware: EMPTY_ARRAY,\n avatarMiddleware: EMPTY_ARRAY,\n cardActionMiddleware: EMPTY_ARRAY,\n groupActivitiesMiddleware: EMPTY_ARRAY,\n polymiddleware: EMPTY_ARRAY,\n scrollToEndButtonMiddleware: EMPTY_ARRAY,\n sendBoxMiddleware: EMPTY_ARRAY,\n sendBoxToolbarMiddleware: EMPTY_ARRAY,\n toastMiddleware: EMPTY_ARRAY,\n typingIndicatorMiddleware: EMPTY_ARRAY\n});\n","import { hooks, type SendBoxMiddleware, type SendBoxMiddlewareProps } from 'botframework-webchat-api';\nimport React from 'react';\n\nimport BasicSendBox from './BasicSendBox';\n\nconst { useStyleOptions } = hooks;\n\nconst HideableSendBox = ({ className }: SendBoxMiddlewareProps) => {\n const [{ hideSendBox }] = useStyleOptions();\n\n return hideSendBox ? null : <BasicSendBox className={className} />;\n};\n\nconst createMiddleware = (): readonly SendBoxMiddleware[] => Object.freeze([() => () => () => HideableSendBox]);\n\nexport default createMiddleware;\n","import { hooks, type SendBoxToolbarMiddlewareProps } from 'botframework-webchat-api';\nimport React, { memo } from 'react';\n\nimport UploadButton from './UploadButton';\n\nconst { useStyleOptions } = hooks;\n\n// NOTE: \"hideUploadButton\" is deprecated. Use \"disableFileUpload\" instead.\n// Rectification logic is handled in normalizeStyleOptions.ts\nfunction BasicSendBoxToolbar({ className }: SendBoxToolbarMiddlewareProps) {\n const [{ disableFileUpload }] = useStyleOptions();\n\n return !disableFileUpload && <UploadButton className={className} />;\n}\n\nexport default memo(BasicSendBoxToolbar);\n","import { hooks } from 'botframework-webchat-api';\nimport { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport classNames from 'classnames';\nimport random from 'math-random';\nimport React, { memo, useCallback, useRef, useState, type FormEventHandler, type MouseEventHandler } from 'react';\nimport { useRefFrom } from 'use-ref-from';\nimport { object, pipe, readonly, string, type InferInput } from 'valibot';\n\nimport IconButton from '../SendBox/IconButton';\nimport { useStyleToEmotionObject } from '../hooks/internal/styleToEmotionObject';\nimport useFocus from '../hooks/useFocus';\nimport useMakeThumbnail from '../hooks/useMakeThumbnail';\nimport useStyleSet from '../hooks/useStyleSet';\nimport useSubmit from '../providers/internal/SendBox/useSubmit';\nimport AttachmentIcon from './Assets/AttachmentIcon';\n\nconst { useSendBoxAttachments, useLocalizer, useStyleOptions, useUIState } = hooks;\n\nconst ROOT_STYLE = {\n '&.webchat__upload-button': {\n display: 'flex',\n overflow: 'hidden',\n position: 'relative',\n\n '& .webchat__upload-button--file-input': {\n height: 0,\n width: 0,\n opacity: 0,\n position: 'absolute',\n left: 0,\n top: 0\n }\n }\n};\n\nconst PREVENT_DEFAULT_HANDLER = event => event.preventDefault();\n\nconst uploadButtonPropsSchema = pipe(\n object({\n className: string()\n }),\n readonly()\n);\n\ntype UploadButtonProps = InferInput<typeof uploadButtonPropsSchema>;\n\nfunction UploadButton(props: UploadButtonProps) {\n const { className } = validateProps(uploadButtonPropsSchema, props);\n\n const [{ sendAttachmentOn, uploadAccept, uploadMultiple }] = useStyleOptions();\n const [{ uploadButton: uploadButtonStyleSet }] = useStyleSet();\n const [inputKey, setInputKey] = useState<number>(0);\n const [sendBoxAttachments, setSendBoxAttachments] = useSendBoxAttachments();\n const [uiState] = useUIState();\n const focus = useFocus();\n const inputRef = useRef<HTMLInputElement>(null);\n const localize = useLocalizer();\n const makeThumbnail = useMakeThumbnail();\n const rootClassName = useStyleToEmotionObject()(ROOT_STYLE) + '';\n const submit = useSubmit();\n\n const disabled = uiState === 'disabled';\n const sendAttachmentOnRef = useRefFrom(sendAttachmentOn);\n const sendBoxAttachmentsRef = useRefFrom(sendBoxAttachments);\n const uploadFileString = localize('TEXT_INPUT_UPLOAD_BUTTON_ALT');\n\n const handleClick = useCallback<MouseEventHandler<HTMLButtonElement>>(() => inputRef.current?.click(), [inputRef]);\n\n const handleFileChange = useCallback<FormEventHandler<HTMLInputElement>>(\n ({ currentTarget }) => {\n // We should change the focus synchronously for accessibility reason.\n focus('sendBox');\n\n // TODO: [P2] We should disable send button while we are creating thumbnails.\n // Otherwise, if the user click the send button too quickly, it will not attach any files.\n (async function () {\n setSendBoxAttachments(\n Object.freeze([\n ...sendBoxAttachmentsRef.current,\n ...(await Promise.all(\n Array.from(currentTarget.files).map(async (blob: File) => {\n const entry = sendBoxAttachmentsRef.current.find(entry => entry.blob === blob);\n\n if (entry) {\n return entry;\n }\n\n const thumbnailURL = await makeThumbnail(blob);\n\n return { blob, thumbnailURL };\n })\n ))\n ])\n );\n\n setInputKey(random());\n\n sendAttachmentOnRef.current === 'attach' && submit();\n })();\n },\n [focus, makeThumbnail, sendBoxAttachmentsRef, sendAttachmentOnRef, setInputKey, setSendBoxAttachments, submit]\n );\n\n return (\n <div className={classNames(rootClassName, 'webchat__upload-button', uploadButtonStyleSet + '', className)}>\n <input\n accept={uploadAccept}\n aria-disabled={disabled}\n aria-hidden=\"true\"\n className=\"webchat__upload-button--file-input\"\n // Recreates the <input> element after every upload to prevent issues in WebDriver.\n // Otherwise, on second upload, WebDriver will resend files from first upload as new Blob/File instance and it will cause duplicates.\n key={inputKey}\n multiple={uploadMultiple}\n onChange={disabled ? undefined : handleFileChange}\n onClick={disabled ? PREVENT_DEFAULT_HANDLER : undefined}\n readOnly={disabled}\n ref={inputRef}\n role=\"button\"\n tabIndex={-1}\n type=\"file\"\n />\n <IconButton alt={uploadFileString} aria-label={uploadFileString} disabled={disabled} onClick={handleClick}>\n <AttachmentIcon checked={!!sendBoxAttachments.length} />\n </IconButton>\n </div>\n );\n}\n\nexport default memo(UploadButton);\nexport { uploadButtonPropsSchema, type UploadButtonProps };\n","import classNames from 'classnames';\nimport React from 'react';\n\nimport { ComponentIcon } from '../../Icon';\nimport { useStyleToEmotionObject } from '../../hooks/internal/styleToEmotionObject';\n\ntype Props = Readonly<{ checked: boolean }>;\n\nconst ROOT_STYLE = {\n '&.webchat__attachment-icon': {\n display: 'grid',\n gridTemplateArea: 'body',\n position: 'relative',\n\n '& .webchat__attachment-icon__icon': {\n gridArea: 'body'\n },\n\n '&:not(.webchat__attachment-icon--checked) .webchat__attachment-icon__checkmark-icon': {\n display: 'none'\n },\n\n // TODO: [P1] Replace the icon with a SVG that embed the checkmark directly.\n '& .webchat__attachment-icon__checkmark-icon': {\n // White border around the check icon\n border: '2px solid white',\n borderRadius: '50%',\n position: 'absolute',\n left: '45%',\n top: '50%'\n }\n }\n};\n\nconst AttachmentIcon = ({ checked }: Props) => {\n const rootClassName = useStyleToEmotionObject()(ROOT_STYLE) + '';\n\n return (\n <div\n className={classNames(\n 'webchat__attachment-icon',\n { 'webchat__attachment-icon--checked': checked },\n rootClassName\n )}\n >\n <ComponentIcon\n appearance=\"text\"\n className=\"webchat__attachment-icon__icon\"\n icon={checked ? 'attachment-checkmark' : 'attachment'}\n />\n </div>\n );\n};\n\nexport default AttachmentIcon;\n","import { type SendBoxMiddleware } from 'botframework-webchat-api';\n\nimport BasicSendBoxToolbar from './BasicSendBoxToolbar';\n\nconst createMiddleware = (): readonly SendBoxMiddleware[] => Object.freeze([() => () => () => BasicSendBoxToolbar]);\n\nexport default createMiddleware;\n","import { normalizeStyleOptions, StyleOptions } from 'botframework-webchat-api';\n\nimport createActivitiesStyle from './StyleSet/Activities';\nimport createActivityButtonStyle from './StyleSet/ActivityButton';\nimport createActivityCopyButtonStyle from './StyleSet/ActivityCopyButton';\nimport createAudioAttachmentStyle from './StyleSet/AudioAttachment';\nimport createAudioContentStyle from './StyleSet/AudioContent';\nimport createAutoResizeTextAreaStyle from './StyleSet/AutoResizeTextArea';\nimport createAvatarStyle from './StyleSet/Avatar';\nimport createBasicTranscriptStyle from './StyleSet/BasicTranscript';\nimport createBubbleStyle from './StyleSet/Bubble';\nimport createCarouselFilmStrip from './StyleSet/CarouselFilmStrip';\nimport createCarouselFilmStripAttachment from './StyleSet/CarouselFilmStripAttachment';\nimport createCarouselFlipper from './StyleSet/CarouselFlipper';\nimport createChatHistoryBoxStyleSet from './StyleSet/ChatHistoryBox';\nimport createCitationModalDialogStyle from './StyleSet/CitationModalDialog';\nimport createConnectivityNotification from './StyleSet/ConnectivityNotification';\nimport createDictationInterimsStyle from './StyleSet/DictationInterims';\nimport createErrorBoxStyle from './StyleSet/ErrorBox';\nimport createErrorNotificationStyle from './StyleSet/ErrorNotification';\nimport createFileContentStyle from './StyleSet/FileContent';\nimport createImageAvatarStyle from './StyleSet/ImageAvatar';\nimport createInitialsAvatarStyle from './StyleSet/InitialsAvatar';\nimport createLinkDefinitionsStyle from './StyleSet/LinkDefinitions';\nimport createMicrophoneButtonStyle from './StyleSet/MicrophoneButton';\nimport createModalDialogStyle from './StyleSet/ModalDialog';\nimport createRenderMarkdownStyle from './StyleSet/RenderMarkdown';\nimport createRootStyle from './StyleSet/Root';\nimport createScrollToEndButtonStyle from './StyleSet/ScrollToEndButton';\nimport createSendBoxStyle from './StyleSet/SendBox';\nimport createSendBoxButtonStyle from './StyleSet/SendBoxButton';\nimport createSendBoxTextBoxStyle from './StyleSet/SendBoxTextBox';\nimport createSendStatusStyle from './StyleSet/SendStatus';\nimport createSpinnerAnimationStyle from './StyleSet/SpinnerAnimation';\nimport createStackedLayoutStyle from './StyleSet/StackedLayout';\nimport createSuggestedActionStyle from './StyleSet/SuggestedAction';\nimport createSuggestedActionsStyle from './StyleSet/SuggestedActions';\nimport createTextContentStyle from './StyleSet/TextContent';\nimport createThumbButtonStyle from './StyleSet/ThumbButton';\nimport createToastStyle from './StyleSet/Toast';\nimport createToasterStyle from './StyleSet/Toaster';\nimport createTooltipStyle from './StyleSet/Tooltip';\nimport createTypingAnimationStyle from './StyleSet/TypingAnimation';\nimport createTypingIndicatorStyle from './StyleSet/TypingIndicator';\nimport createUploadButtonStyle from './StyleSet/UploadButton';\nimport createVideoAttachmentStyle from './StyleSet/VideoAttachment';\nimport createVideoContentStyle from './StyleSet/VideoContent';\nimport createVimeoContentStyle from './StyleSet/VimeoContent';\nimport createWarningNotificationStyle from './StyleSet/WarningNotification';\nimport createYouTubeContentStyle from './StyleSet/YouTubeContent';\n\n// TODO: [P4] We should add a notice for people who want to use \"styleSet\" instead of \"styleOptions\".\n// \"styleSet\" is actually CSS stylesheet and it is based on the DOM tree.\n// DOM tree may change from time to time, thus, maintaining \"styleSet\" becomes a constant effort.\n\nexport default function createStyleSet(styleOptions: StyleOptions) {\n const strictStyleOptions = normalizeStyleOptions(styleOptions);\n\n return Object.freeze({\n activities: createActivitiesStyle(),\n activityButton: createActivityButtonStyle(),\n activityCopyButton: createActivityCopyButtonStyle(),\n audioAttachment: createAudioAttachmentStyle(),\n audioContent: createAudioContentStyle(),\n autoResizeTextArea: createAutoResizeTextAreaStyle(strictStyleOptions),\n avatar: createAvatarStyle(strictStyleOptions),\n basicTranscript: createBasicTranscriptStyle(strictStyleOptions),\n bubble: createBubbleStyle(strictStyleOptions),\n carouselFilmStrip: createCarouselFilmStrip(strictStyleOptions),\n carouselFilmStripAttachment: createCarouselFilmStripAttachment(strictStyleOptions),\n carouselFlipper: createCarouselFlipper(strictStyleOptions),\n connectivityNotification: createConnectivityNotification(strictStyleOptions),\n dictationInterims: createDictationInterimsStyle(strictStyleOptions),\n errorBox: createErrorBoxStyle(strictStyleOptions),\n errorNotification: createErrorNotificationStyle(strictStyleOptions),\n fileContent: createFileContentStyle(strictStyleOptions),\n imageAvatar: createImageAvatarStyle(),\n initialsAvatar: createInitialsAvatarStyle(strictStyleOptions),\n microphoneButton: createMicrophoneButtonStyle(strictStyleOptions),\n options: { ...strictStyleOptions }, // Cloned to make sure no additional modifications will propagate up.\n root: createRootStyle(strictStyleOptions),\n scrollToEndButton: createScrollToEndButtonStyle(strictStyleOptions),\n sendBox: createSendBoxStyle(strictStyleOptions),\n sendBoxButton: createSendBoxButtonStyle(strictStyleOptions),\n sendBoxTextBox: createSendBoxTextBoxStyle(strictStyleOptions),\n spinnerAnimation: createSpinnerAnimationStyle(strictStyleOptions),\n stackedLayout: createStackedLayoutStyle(strictStyleOptions),\n suggestedAction: createSuggestedActionStyle(strictStyleOptions),\n suggestedActions: createSuggestedActionsStyle(strictStyleOptions),\n toast: createToastStyle(strictStyleOptions),\n toaster: createToasterStyle(strictStyleOptions),\n typingAnimation: createTypingAnimationStyle(strictStyleOptions),\n typingIndicator: createTypingIndicatorStyle(strictStyleOptions),\n uploadButton: createUploadButtonStyle(strictStyleOptions),\n videoAttachment: createVideoAttachmentStyle(),\n videoContent: createVideoContentStyle(strictStyleOptions),\n vimeoContent: createVimeoContentStyle(strictStyleOptions),\n warningNotification: createWarningNotificationStyle(strictStyleOptions),\n youTubeContent: createYouTubeContentStyle(strictStyleOptions),\n\n // Following styles follows new house rules:\n // - Use CSS var instead of strictStyleOptions\n chatHistoryBox: createChatHistoryBoxStyleSet(),\n citationModalDialog: createCitationModalDialogStyle(),\n linkDefinitions: createLinkDefinitionsStyle(),\n modalDialog: createModalDialogStyle(),\n renderMarkdown: createRenderMarkdownStyle(),\n sendStatus: createSendStatusStyle(),\n textContent: createTextContentStyle(),\n thumbButton: createThumbButtonStyle(),\n tooltip: createTooltipStyle()\n } as const);\n}\n","export default function createActivitiesStyle() {\n return {\n margin: 0,\n padding: 0\n };\n}\n","export default function createActivityButtonStyle() {\n return {\n '&.webchat__activity-button': {\n alignItems: 'center',\n appearance: 'none',\n background: '#fff',\n borderRadius: '4px',\n border: '1px solid #d1d1d1',\n color: '#242424',\n display: 'flex',\n gap: '4px',\n justifyContent: 'center',\n padding: '5px 12px',\n\n '&:hover': {\n background: '#f5f5f5',\n border: '1px solid #c7c7c7',\n color: '#242424'\n },\n\n '&:active': {\n background: '#e0e0e0',\n border: '1px solid #b3b3b3',\n color: '#242424'\n },\n\n '&:focus-visible': {\n background: '#fff',\n outline: '2px solid #000',\n outlineOffset: '-2px'\n },\n\n '&[aria-disabled=\"true\"]': {\n background: '#f0f0f0',\n border: '1px solid #e0e0e0',\n color: '#bdbdbd',\n cursor: 'not-allowed'\n },\n\n '& .webchat__activity-button__icon': {\n height: '20px',\n width: '20px',\n\n '--webchat__component-icon--color': '#707070',\n '--webchat__component-icon--size': '20px'\n }\n }\n };\n}\n","export default function createActivityButtonStyle() {\n return {\n '&.webchat__activity-copy-button': {\n overflow: ['clip', 'hidden'],\n position: 'relative',\n\n '& .webchat__activity-copy-button__copied-text': {\n alignItems: 'center',\n backgroundColor: '#fff',\n display: 'flex',\n height: '100%',\n justifyContent: 'center',\n position: 'absolute',\n visibility: 'hidden',\n width: '100%'\n },\n\n '&.webchat__activity-copy-button--copied': {\n '.webchat__activity-copy-button__copied-text': {\n animation: 'webchat__activity-copy-button__copied-animation 0.7s linear'\n },\n\n '.webchat__activity-button__icon, .webchat__activity-button__text': {\n visibility: 'hidden'\n }\n },\n\n '@keyframes webchat__activity-copy-button__copied-animation': {\n '0%': {\n // This is set during the animation only hence shouldn't spill when hidden from the above tree\n visibility: 'visible'\n },\n\n '100%': {\n visibility: 'unset'\n }\n }\n }\n };\n}\n","import CSSTokens from '../CSSTokens';\n\nexport default function AudioAttachment() {\n return {\n // TODO: [P2] We should not set \"display\" in styleSet, this will allow the user to break the layout for no good reasons.\n display: 'flex',\n minHeight: CSSTokens.SizeAvatar\n };\n}\n","export default function AudioContent() {\n return {\n width: '100%'\n };\n}\n","import { StrictStyleOptions } from 'botframework-webchat-api';\n\nexport default function AutoResizeTextArea({ primaryFont }: StrictStyleOptions) {\n return {\n '&.webchat__auto-resize-textarea': {\n fontFamily: primaryFont,\n overflow: 'hidden',\n position: 'relative',\n\n '& .webchat__auto-resize-textarea__doppelganger': {\n color: 'transparent',\n height: '100%',\n overflowY: 'auto',\n userSelect: 'none',\n width: 'inherit',\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word'\n },\n\n '& .webchat__auto-resize-textarea__textarea': {\n appearance: 'none' /* Prevent browser styling */,\n backgroundColor: 'transparent',\n border: 0,\n color: 'inherit',\n fontFamily: 'inherit',\n fontSize: 'inherit',\n height: '100%',\n left: 0,\n margin: 0,\n outline: 0,\n overflowY: 'auto',\n padding: 0,\n position: 'absolute',\n resize: 'none' /* Hides the textarea resizing handle (on lower-right hand corner) */,\n top: 0,\n width: '100%',\n wordBreak: 'break-word'\n }\n }\n };\n}\n","import { StrictStyleOptions } from 'botframework-webchat-api';\nimport CSSTokens from '../CSSTokens';\n\nexport default function createAvatarStyle({ avatarBorderRadius }: StrictStyleOptions) {\n return {\n '&.webchat__defaultAvatar': {\n borderRadius: avatarBorderRadius,\n height: CSSTokens.SizeAvatar,\n width: CSSTokens.SizeAvatar\n }\n };\n}\n","/* eslint no-magic-numbers: [\"error\", { \"ignore\": [2] }] */\n\nimport { StrictStyleOptions } from 'botframework-webchat-api';\n\nexport default function createBasicTranscriptStyleSet({\n paddingRegular,\n primaryFont,\n transcriptActivityVisualKeyboardIndicatorColor,\n transcriptActivityVisualKeyboardIndicatorStyle,\n transcriptActivityVisualKeyboardIndicatorWidth,\n transcriptTerminatorBackgroundColor,\n transcriptTerminatorBorderRadius,\n transcriptTerminatorColor,\n transcriptTerminatorFontSize,\n transcriptVisualKeyboardIndicatorColor,\n transcriptVisualKeyboardIndicatorStyle,\n transcriptVisualKeyboardIndicatorWidth\n}: StrictStyleOptions) {\n return {\n '&.webchat__basic-transcript': {\n '&:focus': {\n outline: 0,\n\n '& .webchat__basic-transcript__activity-indicator.webchat__basic-transcript__activity-indicator--focus': {\n borderColor: transcriptActivityVisualKeyboardIndicatorColor,\n borderStyle: transcriptActivityVisualKeyboardIndicatorStyle,\n borderWidth: transcriptActivityVisualKeyboardIndicatorWidth,\n boxSizing: 'border-box',\n height: `calc(100% - ${paddingRegular / 2}px)`,\n left: 0,\n marginBottom: 0,\n marginLeft: paddingRegular / 2,\n marginRight: paddingRegular / 2,\n marginTop: 0,\n pointerEvents: 'none',\n position: 'absolute',\n top: 0,\n width: `calc(100% - ${paddingRegular}px)`\n }\n },\n\n '&:focus-visible .webchat__basic-transcript__focus-indicator, .webchat__basic-transcript__terminator:focus-visible + .webchat__basic-transcript__focus-indicator':\n {\n height: '100%',\n borderColor: transcriptVisualKeyboardIndicatorColor,\n borderStyle: transcriptVisualKeyboardIndicatorStyle,\n borderWidth: transcriptVisualKeyboardIndicatorWidth,\n boxSizing: 'border-box',\n pointerEvents: 'none',\n position: 'absolute',\n top: 0,\n width: '100%'\n },\n\n '& .webchat__basic-transcript__activity': {\n paddingTop: paddingRegular / 2,\n position: 'relative',\n\n '&:first-child': {\n marginTop: paddingRegular / 2\n },\n\n '&:not(:first-child)': {\n marginTop: -paddingRegular / 2\n }\n },\n\n // When the activity is focused as active descendant, `scrollIntoView()` will scroll this invisible <div> into view.\n '& .webchat__basic-transcript__activity-active-descendant': {\n height: '100%',\n left: 0,\n marginTop: -paddingRegular / 2,\n paddingBottom: paddingRegular / 2,\n // The bounding box is expanded to both top and bottom to scroll focus indicator into view.\n // We should ignore clicks to make sure this expansion don't register click as focus.\n // Otherwise, when clicking on the very bottom edge of the activity, it will focus on next activity instead.\n pointerEvents: 'none',\n position: 'absolute',\n top: 0,\n width: '100%'\n },\n\n '& .webchat__basic-transcript__activity-body:not(:empty)': {\n paddingBottom: paddingRegular\n },\n\n '& .webchat__basic-transcript__terminator': {\n bottom: 0,\n height: 0,\n outline: 0,\n position: 'relative',\n width: '100%'\n },\n\n '& .webchat__basic-transcript__terminator-body': {\n bottom: 0,\n display: 'flex',\n justifyContent: 'center',\n position: 'absolute',\n width: '100%'\n },\n\n '& .webchat__basic-transcript__terminator:not(:focus) .webchat__basic-transcript__terminator-body': {\n display: 'none'\n },\n\n '& .webchat__basic-transcript__terminator-text': {\n backgroundColor: transcriptTerminatorBackgroundColor,\n borderRadius: transcriptTerminatorBorderRadius,\n color: transcriptTerminatorColor,\n fontFamily: primaryFont,\n fontSize: transcriptTerminatorFontSize,\n margin: paddingRegular / 2,\n padding: paddingRegular / 2\n }\n }\n };\n}\n","import { isForbiddenPropertyName } from 'botframework-webchat-core';\n\nexport default function mirrorStyle(mirrorSelector, styles) {\n const mirrored = {};\n\n for (const [key, value] of Object.entries(styles)) {\n if (typeof value === 'number' || typeof value === 'string') {\n const patchedKey = key.replace(/(^left|^right|Left|Right)/u, match =>\n match === 'Left' ? 'Right' : match === 'left' ? 'right' : match === 'Right' ? 'Left' : 'left'\n );\n\n if (!isForbiddenPropertyName(patchedKey)) {\n // Mitigated through denylisting.\n // eslint-disable-next-line security/detect-object-injection\n mirrored[patchedKey] = value;\n }\n } else if (!isForbiddenPropertyName(key)) {\n // Mitigated through denylisting.\n // eslint-disable-next-line security/detect-object-injection\n mirrored[key] = mirrorStyle('', value);\n }\n }\n\n const relative = /^&\\s*/gu.exec(mirrorSelector) || '';\n\n return mirrorSelector\n ? {\n [`${relative}:not(${mirrorSelector.substr(relative.length)})`]: styles,\n [mirrorSelector]: mirrored\n }\n : mirrored;\n}\n","/* eslint no-magic-numbers: [\"error\", { \"ignore\": [0, 1, 2] }] */\nimport { StrictStyleOptions } from 'botframework-webchat-api';\n\nimport mirrorStyle from '../mirrorStyle';\n\nexport default function createBubbleStyle({\n bubbleBackground,\n bubbleBorderColor,\n bubbleBorderRadius,\n bubbleBorderStyle,\n bubbleBorderWidth,\n bubbleFromUserBackground,\n bubbleFromUserBorderColor,\n bubbleFromUserBorderRadius,\n bubbleFromUserBorderStyle,\n bubbleFromUserBorderWidth,\n bubbleFromUserNubOffset,\n bubbleFromUserNubSize,\n bubbleFromUserTextColor,\n bubbleMinHeight,\n bubbleNubOffset,\n bubbleNubSize,\n bubbleTextColor,\n messageActivityWordBreak,\n paddingRegular,\n transitionDuration\n}: StrictStyleOptions) {\n const botNubCornerRadius =\n typeof bubbleNubOffset === 'number' ? Math.min(bubbleBorderRadius, Math.abs(bubbleNubOffset)) : bubbleBorderRadius;\n const userNubCornerRadius =\n typeof bubbleFromUserNubOffset === 'number'\n ? Math.min(bubbleFromUserBorderRadius, Math.abs(bubbleFromUserNubOffset))\n : bubbleFromUserBorderRadius;\n\n return {\n '&.webchat__bubble': {\n '& .webchat__bubble__content': {\n marginLeft: 0,\n marginRight: 0,\n transitionDuration,\n transitionProperty: 'margin-left, margin-right',\n wordBreak: messageActivityWordBreak\n },\n\n '& .webchat__bubble__nub': {\n overflow: 'hidden', // This style is for IE11 because it doesn't respect SVG viewport\n position: 'absolute'\n },\n\n '& .webchat__bubble__nub-pad': {\n transitionDuration,\n transitionProperty: 'width',\n width: 0\n },\n\n '&.webchat__bubble--hide-nub, &.webchat__bubble--show-nub': {\n '& .webchat__bubble__nub-pad': {\n width: paddingRegular\n }\n },\n\n '&.webchat__bubble--rtl .webchat__bubble__nub': {\n transform: 'scale(-1, 1)'\n },\n\n '&:not(.webchat__bubble--from-user)': {\n '& .webchat__bubble__content': {\n background: bubbleBackground,\n borderColor: bubbleBorderColor,\n borderRadius: bubbleBorderRadius,\n borderStyle: bubbleBorderStyle,\n borderWidth: bubbleBorderWidth,\n color: bubbleTextColor,\n minHeight: bubbleMinHeight - bubbleBorderWidth * 2\n },\n\n ...(typeof bubbleNubSize === 'number'\n ? {\n '& .webchat__bubble__nub': {\n height: bubbleNubSize,\n width: bubbleNubSize\n }\n }\n : {}),\n\n '&:not(.webchat__bubble--nub-on-top) .webchat__bubble__nub': {\n bottom: -bubbleNubOffset\n },\n\n '&.webchat__bubble--nub-on-top .webchat__bubble__nub': {\n top: bubbleNubOffset\n },\n\n '& .webchat__bubble__nub-outline': {\n fill: bubbleBackground,\n stroke: bubbleBorderColor,\n strokeWidth: bubbleBorderWidth\n }\n },\n\n '&.webchat__bubble--from-user': {\n flexDirection: 'row-reverse',\n\n '& .webchat__bubble__content': {\n background: bubbleFromUserBackground,\n borderColor: bubbleFromUserBorderColor,\n borderRadius: bubbleFromUserBorderRadius,\n borderStyle: bubbleFromUserBorderStyle,\n borderWidth: bubbleFromUserBorderWidth,\n color: bubbleFromUserTextColor,\n minHeight: bubbleMinHeight - bubbleFromUserBorderWidth * 2\n },\n\n ...(typeof bubbleFromUserNubSize === 'number'\n ? {\n '& .webchat__bubble__nub': {\n height: bubbleFromUserNubSize,\n width: bubbleFromUserNubSize\n }\n }\n : {}),\n\n '&:not(.webchat__bubble--nub-on-top) .webchat__bubble__nub': {\n bottom: -bubbleFromUserNubOffset\n },\n\n '&.webchat__bubble--nub-on-top .webchat__bubble__nub': {\n top: bubbleFromUserNubOffset\n },\n\n '& .webchat__bubble__nub-outline': {\n fill: bubbleFromUserBackground,\n stroke: bubbleFromUserBorderColor,\n strokeWidth: bubbleFromUserBorderWidth\n }\n },\n\n ...mirrorStyle('&.webchat__bubble--rtl', {\n '&:not(.webchat__bubble--from-user)': {\n '&.webchat__bubble--show-nub': {\n // Hide border radius if there is a nub on the top/bottom left corner\n '&:not(.webchat__bubble--nub-on-top) .webchat__bubble__content': {\n borderBottomLeftRadius: botNubCornerRadius\n },\n\n '&.webchat__bubble--nub-on-top .webchat__bubble__content': {\n borderTopLeftRadius: botNubCornerRadius\n }\n },\n\n ...(typeof bubbleNubSize === 'number'\n ? {\n '& .webchat__bubble__nub': { left: bubbleBorderWidth - bubbleNubSize + paddingRegular }\n }\n : {})\n },\n\n '&.webchat__bubble--from-user': {\n '&.webchat__bubble--show-nub': {\n // Hide border radius if there is a nub on the top/bottom right corner\n '&:not(.webchat__bubble--nub-on-top) .webchat__bubble__content': {\n borderBottomRightRadius: userNubCornerRadius\n },\n\n '&.webchat__bubble--nub-on-top .webchat__bubble__content': {\n borderTopRightRadius: userNubCornerRadius\n }\n },\n\n ...(typeof bubbleFromUserNubSize === 'number'\n ? {\n '& .webchat__bubble__nub': { right: bubbleFromUserBorderWidth - bubbleFromUserNubSize + paddingRegular }\n }\n : {})\n }\n })\n }\n };\n}\n","/* eslint no-magic-numbers: [\"error\", { \"ignore\": [2] }] */\nimport { StrictStyleOptions } from 'botframework-webchat-api';\n\nimport CSSTokens from '../CSSTokens';\nimport mirrorStyle from '../mirrorStyle';\n\nexport default function CarouselFilmStrip({\n avatarSize,\n bubbleMessageMaxWidth,\n paddingRegular,\n transitionDuration\n}: StrictStyleOptions) {\n return {\n '&.webchat__carousel-filmstrip': {\n // Browser quirks: Firefox has no way to hide scrollbar and while keeping it in function\n // https://developer.mozilla.org/en-US/docs/Web/CSS/overflow\n '@supports (-moz-appearance: none)': {\n marginBottom: -17\n },\n\n '& .webchat__carousel-filmstrip__bubble': {\n maxWidth: CSSTokens.MaxWidthMessageBubble,\n minWidth: CSSTokens.MinWidthMessageBubble,\n transitionDuration,\n transitionProperty: 'max-width'\n },\n\n '&.webchat__carousel-filmstrip--hide-nub, &.webchat__carousel-filmstrip--show-nub, &.webchat__carousel-filmstrip--hide-avatar, &.webchat__carousel-filmstrip--show-avatar':\n {\n '& .webchat__carousel-filmstrip__bubble': {\n maxWidth: bubbleMessageMaxWidth + paddingRegular\n }\n },\n\n '& .webchat__carousel-filmstrip__alignment-pad': {\n transitionDuration,\n transitionProperty: 'width',\n width: CSSTokens.PaddingRegular\n },\n\n '&.webchat__carousel-filmstrip--extra-trailing .webchat__carousel-filmstrip__alignment-pad': {\n width: paddingRegular * 2\n },\n\n '&:not(.webchat__carousel-filmstrip--no-message) .webchat__carousel-filmstrip__attachments': {\n marginTop: paddingRegular\n },\n\n '& .webchat__carousel-filmstrip__avatar-gutter': {\n alignItems: 'flex-end',\n transitionDuration,\n transitionProperty: 'width'\n },\n\n '& .webchat__carousel-filmstrip__nub-pad': {\n transitionDuration,\n transitionProperty: 'width',\n width: 0\n },\n\n '&.webchat__carousel-filmstrip--hide-avatar, &.webchat__carousel-filmstrip--show-avatar': {\n '& .webchat__carousel-filmstrip__avatar-gutter': {\n width: CSSTokens.SizeAvatar\n }\n },\n\n '&.webchat__carousel-filmstrip--hide-avatar, &.webchat__carousel-filmstrip--show-avatar, &.webchat__carousel-filmstrip--hide-nub, &.webchat__carousel-filmstrip--show-nub':\n {\n '& .webchat__carousel-filmstrip__nub-pad': {\n width: paddingRegular\n }\n },\n\n '&:not(.webchat__carousel-filmstrip--top-callout) .webchat__carousel-filmstrip__avatar-gutter': {\n justifyContent: 'flex-end'\n },\n\n ...mirrorStyle('&.webchat__carousel-filmstrip--rtl', {\n '& .webchat__carousel-filmstrip__avatar-gutter': {\n marginLeft: paddingRegular\n },\n\n '& .webchat__carousel-filmstrip__attachments': {\n marginLeft: -paddingRegular\n },\n\n '&.webchat__carousel-filmstrip--hide-avatar, &.webchat__carousel-filmstrip--show-avatar': {\n '& .webchat__carousel-filmstrip__attachments': {\n marginLeft: -(avatarSize + paddingRegular * 2)\n }\n },\n\n '&.webchat__carousel-filmstrip--hide-nub, &.webchat__carousel-filmstrip--show-nub': {\n '&:not(.webchat__carousel-filmstrip--hide-avatar.webchat__carousel-filmstrip--show-avatar)': {\n '& .webchat__carousel-filmstrip__attachments': {\n marginLeft: -paddingRegular * 2\n }\n }\n }\n })\n }\n };\n}\n","/* eslint no-magic-numbers: [\"error\", { \"ignore\": [2] }] */\nimport { StrictStyleOptions } from 'botframework-webchat-api';\n\nimport CSSTokens from '../CSSTokens';\nimport mirrorStyle from '../mirrorStyle';\n\nexport default function CarouselFilmStripAttachment({\n avatarSize,\n paddingRegular,\n transcriptVisualKeyboardIndicatorColor,\n transcriptVisualKeyboardIndicatorStyle,\n transcriptVisualKeyboardIndicatorWidth,\n transitionDuration\n}: StrictStyleOptions) {\n return {\n '&.webchat__carousel-filmstrip-attachment': {\n maxWidth: CSSTokens.MaxWidthAttachmentBubble,\n minWidth: CSSTokens.MinWidthAttachmentBubble,\n transitionDuration,\n transitionProperty: 'max-width, min-width',\n\n '&:focus': {\n outline: 0\n },\n\n '&:focus .webchat__carousel-filmstrip-attachment--focus': {\n borderColor: transcriptVisualKeyboardIndicatorColor,\n borderStyle: transcriptVisualKeyboardIndicatorStyle,\n borderWidth: transcriptVisualKeyboardIndicatorWidth,\n boxSizing: 'border-box',\n height: `calc(100% - ${transcriptVisualKeyboardIndicatorWidth}px)`,\n left: 0,\n pointerEvents: 'none',\n position: 'absolute',\n top: 0,\n width: `calc(100% - ${transcriptVisualKeyboardIndicatorWidth}px)`\n }\n },\n ...mirrorStyle('&.webchat__carousel-filmstrip-attachment--rtl', {\n paddingLeft: paddingRegular,\n\n '&.webchat__carousel-filmstrip-attachment--hide-avatar, &.webchat__carousel-filmstrip-attachment--show-avatar': {\n '&:first-child': {\n paddingLeft: avatarSize + paddingRegular * 2\n }\n },\n\n '&.webchat__carousel-filmstrip-attachment--hide-nub, &.webchat__carousel-filmstrip-attachment--show-nub': {\n '&:not(.webchat__carousel-filmstrip-attachment--hide-avatar.webchat__carousel-filmstrip-attachment--show-avatar):first-child':\n {\n paddingLeft: paddingRegular * 2\n }\n }\n })\n };\n}\n","import { StrictStyleOptions } from 'botframework-webchat-api';\n\nexport default function CarouselFlipper({\n transcriptOverlayButtonBackground,\n transcriptOverlayButtonBackgroundOnDisabled,\n transcriptOverlayButtonBackgroundOnFocus,\n transcriptOverlayButtonBackgroundOnHover,\n transcriptOverlayButtonColor,\n transcriptOverlayButtonColorOnDisabled,\n transcriptOverlayButtonColorOnFocus,\n transcriptOverlayButtonColorOnHover\n}: StrictStyleOptions) {\n return {\n '&.webchat__carousel-layout': {\n '& .react-film__flipper': {\n '& .react-film__flipper__body': {\n backgroundColor: transcriptOverlayButtonBackground,\n color: transcriptOverlayButtonColor,\n outline: 0\n },\n\n '&:disabled, &[aria-disabled=\"true\"]': {\n '& .react-film__flipper__body': {\n backgroundColor: transcriptOverlayButtonBackgroundOnDisabled,\n color: transcriptOverlayButtonColorOnDisabled\n }\n },\n\n '&:focus .react-film__flipper__body': {\n backgroundColor: transcriptOverlayButtonBackgroundOnFocus,\n color: transcriptOverlayButtonColorOnFocus || transcriptOverlayButtonColor\n },\n\n '&:hover .react-film__flipper__body': {\n backgroundColor: transcriptOverlayButtonBackgroundOnHover,\n color: transcriptOverlayButtonColorOnHover || transcriptOverlayButtonColor\n }\n }\n }\n };\n}\n","export default function createChatHistoryBoxStyleSet() {\n return {\n '&.webchat__chat-history-box': {\n display: 'flex',\n flex: 'auto',\n overflow: ['clip', 'hidden'],\n position: 'relative'\n },\n\n '.webchat__chat-history-box__toolbar': {\n bottom: '5px',\n isolation: 'isolate',\n position: 'absolute',\n right: '20px',\n zIndex: 1,\n\n '&.webchat__chat-history-box__toolbar--rtl': {\n left: '20px'\n }\n }\n };\n}\n","export default function createCitationModalDialogStyle() {\n return {\n '&.webchat__citation-modal-dialog': {\n '& .webchat__citation-modal-dialog__body': {\n lineHeight: '20px'\n }\n }\n };\n}\n","import { StrictStyleOptions } from 'botframework-webchat-api';\n\nexport default function ConnectivityNotification({\n connectivityMarginLeftRight,\n connectivityMarginTopBottom,\n connectivityTextSize,\n notificationText,\n primaryFont\n}: StrictStyleOptions) {\n return {\n alignItems: 'center',\n color: notificationText,\n // TODO: [P2] We should not set \"display\" in styleSet, this will allow the user to break the layout for no good reasons.\n display: 'flex',\n fontFamily: primaryFont,\n fontSize: connectivityTextSize,\n marginBottom: connectivityMarginTopBottom,\n marginLeft: connectivityMarginLeftRight,\n marginRight: connectivityMarginLeftRight,\n marginTop: connectivityMarginTopBottom\n };\n}\n","import { StrictStyleOptions } from 'botframework-webchat-api';\n\nexport default function createDictationInterimsStyle({ paddingRegular, primaryFont }: StrictStyleOptions) {\n return {\n fontFamily: primaryFont,\n margin: 0,\n paddingBottom: 0,\n paddingLeft: paddingRegular,\n paddingRight: paddingRegular,\n paddingTop: 0,\n\n '&.dictating > span:not(:first-child), &.status': {\n opacity: 0.5\n }\n };\n}\n","import { StrictStyleOptions } from 'botframework-webchat-api';\n\nexport default function createErrorBoxStyle({ monospaceFont, primaryFont }: StrictStyleOptions) {\n return {\n // TODO: [P2] We should not set \"display\" in styleSet, this will allow the user to break the layout for no good reasons.\n display: 'flex',\n flexDirection: 'column',\n fontFamily: primaryFont,\n margin: 0,\n minHeight: 20,\n maxHeight: 200,\n overflowY: 'auto',\n WebkitOverflowScrolling: 'touch',\n\n '& > :first-child': {\n backgroundColor: '#B60000', // WCAG AAA: Contrast ratio >= 7:1.\n color: 'White',\n padding: '5px 10px'\n },\n\n '& > :last-child': {\n borderColor: '#B60000', // WCAG AAA: Contrast ratio >= 7:1.\n borderStyle: 'dashed',\n borderBottomWidth: 2,\n borderLeftWidth: 2,\n borderRightWidth: 2,\n borderTopWidth: 0,\n margin: 0,\n overflowY: 'auto',\n padding: 10,\n\n '& > pre': {\n fontFamily: monospaceFont,\n fontSize: '60%',\n margin: 0\n }\n }\n };\n}\n","import { StrictStyleOptions } from 'botframework-webchat-api';\n\nexport default function createErrorNotificationStyle({\n connectivityIconPadding,\n connectivityMarginLeftRight,\n connectivityMarginTopBottom,\n connectivityTextSize,\n failedConnectivity,\n primaryFont\n}: StrictStyleOptions) {\n return {\n alignItems: 'center',\n color: failedConnectivity,\n display: 'flex',\n fontFamily: primaryFont,\n fontSize: connectivityTextSize,\n fontWeight: 'bold',\n marginBottom: connectivityMarginTopBottom,\n marginLeft: connectivityMarginLeftRight,\n marginRight: connectivityMarginLeftRight,\n marginTop: connectivityMarginTopBottom,\n\n '& > svg': {\n fill: failedConnectivity,\n\n '&:not(.webchat__error--rtl)': {\n paddingRight: connectivityIconPadding\n },\n\n '&.webchat__error--rtl': {\n paddingLeft: connectivityIconPadding\n }\n }\n };\n}\n","import { StrictStyleOptions } from 'botframework-webchat-api';\n\nexport default function createFileContentStyle({\n accent,\n bubbleTextColor,\n paddingRegular,\n primaryFont\n}: StrictStyleOptions) {\n return {\n color: bubbleTextColor,\n display: 'flex',\n fontFamily: primaryFont,\n padding: paddingRegular,\n\n '& .webchat__fileContent__badge': {\n justifyContent: 'center'\n },\n\n '& .webchat__fileContent__buttonLink': {\n alignItems: 'center',\n color: bubbleTextColor,\n textDecoration: 'none',\n\n '&:focus': {\n backgroundColor: 'rgba(0, 0, 0, .1)'\n }\n },\n\n '& .webchat__fileContent__downloadIcon': {\n color: accent,\n fontSize: '33px',\n padding: paddingRegular,\n\n '&:not(.webchat__fileContent__downloadIcon--rtl)': {\n marginLeft: paddingRegular\n },\n\n '&.webchat__fileContent__downloadIcon--rtl': {\n marginRight: paddingRegular\n }\n },\n '& .webchat__fileContent__fileName': {\n color: accent\n }\n };\n}\n","import CSSTokens from '../CSSTokens';\n\nexport default function createImageAvatarStyle() {\n return {\n alignItems: 'center',\n display: 'flex',\n height: CSSTokens.SizeAvatar,\n justifyContent: 'center',\n overflow: ['hidden', 'clip'],\n width: CSSTokens.SizeAvatar\n };\n}\n","import { StrictStyleOptions } from 'botframework-webchat-api';\nimport CSSTokens from '../CSSTokens';\n\nexport default function createInitialsAvatarStyle({\n accent,\n botAvatarBackgroundColor,\n userAvatarBackgroundColor\n}: StrictStyleOptions) {\n return {\n '&.webchat__initialsAvatar': {\n alignItems: 'center',\n color: 'White',\n fontFamily: CSSTokens.FontPrimary,\n height: CSSTokens.SizeAvatar,\n justifyContent: 'center',\n overflow: 'hidden',\n width: CSSTokens.SizeAvatar,\n\n '&.webchat__initialsAvatar--fromUser': {\n backgroundColor: userAvatarBackgroundColor || accent\n },\n\n '&:not(.webchat__initialsAvatar--fromUser)': {\n backgroundColor: botAvatarBackgroundColor || accent\n }\n }\n };\n}\n","const DARK_THEME_SELECTOR = '@media (forced-colors: none) and (prefers-color-scheme: dark)';\nconst FORCED_COLORS_SELECTOR = '@media (forced-colors: active)';\nconst LIGHT_THEME_SELECTOR = '@media (forced-colors: none) and (prefers-color-scheme: light)';\nconst NOT_FORCED_COLORS_SELECTOR = '@media (forced-colors: none)';\n\nexport { DARK_THEME_SELECTOR, FORCED_COLORS_SELECTOR, LIGHT_THEME_SELECTOR, NOT_FORCED_COLORS_SELECTOR };\n","import { FORCED_COLORS_SELECTOR, NOT_FORCED_COLORS_SELECTOR } from './Constants';\n\n// TODO: Temporarily disable dark theme until chat history support dark theme.\nconst DARK_THEME_SELECTOR = '@media (forced-colors: none) and not (forced-colors: none)'; // Always return false\nconst LIGHT_THEME_SELECTOR = '@media (forced-colors: none)';\n\nimport CSSTokens from '../CSSTokens';\n\nexport default function createLinkDefinitionsStyleSet() {\n return {\n '&.webchat__link-definitions': {\n '.webchat__link-definitions__header': {\n alignItems: 'center',\n cursor: 'default',\n display: 'flex',\n fontFamily: CSSTokens.FontPrimary,\n fontSize: CSSTokens.FontSizeSmall,\n gap: 4,\n justifyContent: 'space-between',\n listStyle: 'none',\n\n [LIGHT_THEME_SELECTOR]: {\n color: '#616161' // TODO: Should we use subtle color instead?\n },\n\n [DARK_THEME_SELECTOR]: {\n // TODO: Add dark theme color.\n color: '#616161'\n }\n },\n\n '.webchat__link-definitions__header-section': {\n alignItems: 'center',\n display: 'flex',\n gap: 4,\n overflow: 'hidden'\n },\n\n '.webchat__link-definitions__header-section--left': {\n flexShrink: 0\n },\n\n '.webchat__link-definitions__header-text': {\n flexShrink: 0\n },\n\n '.webchat__link-definitions__header::-webkit-details-marker': {\n display: 'none'\n },\n\n '.webchat__link-definitions__header-chevron': {\n flexShrink: 0\n },\n\n '&:not([open]) .webchat__link-definitions__header-chevron': {\n transform: 'rotate(-180deg)'\n },\n\n '.webchat__link-definitions__header-accessory': {\n overflow: 'hidden'\n },\n\n '.webchat__link-definitions__message-sensitivity-label': {\n alignItems: 'center',\n display: 'flex',\n gap: 4\n },\n\n '.webchat__link-definitions__message-sensitivity-label-icon': {\n color: 'CanvasText',\n flexShrink: 0\n },\n\n '.webchat__link-definitions__message-sensitivity-label-text': {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap'\n },\n\n '.webchat__link-definitions__list': {\n display: 'flex',\n flexDirection: 'column',\n gap: 4,\n margin: '4px 0 0',\n padding: 0\n },\n\n '.webchat__link-definitions__list-item': {\n display: 'flex', // This prevents the <button> from overflowing. Unsure why \"overflow: hidden\" doesn't work.\n flexDirection: 'column'\n },\n\n '.webchat__link-definitions__badge': {\n alignSelf: 'flex-start',\n borderRadius: '4px',\n borderStyle: 'solid',\n borderWidth: 1,\n flexShrink: 0,\n fontSize: '75%',\n margin: 4,\n maxWidth: '4em',\n minWidth: '1em',\n overflow: 'hidden',\n padding: 2,\n textAlign: 'center',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n\n [LIGHT_THEME_SELECTOR]: {\n backgroundColor: 'white',\n borderColor: '#e0e0e0',\n color: 'black'\n },\n\n [DARK_THEME_SELECTOR]: {\n backgroundColor: 'black',\n // TODO: Add dark theme color.\n borderColor: '#e0e0e0',\n color: 'white'\n },\n\n [FORCED_COLORS_SELECTOR]: {\n borderColor: 'buttonborder'\n }\n },\n\n '.webchat__link-definitions__list-item-box': {\n alignItems: 'center',\n borderRadius: 4,\n borderStyle: 'solid',\n borderWidth: 1,\n\n [LIGHT_THEME_SELECTOR]: {\n backgroundColor: 'white',\n borderColor: '#d1d1d1'\n },\n\n [DARK_THEME_SELECTOR]: {\n backgroundColor: 'black',\n // TODO: Add dark theme color.\n borderColor: '#d1d1d1'\n },\n\n [FORCED_COLORS_SELECTOR]: {\n backgroundColor: 'canvas',\n borderColor: 'buttonborder'\n }\n },\n\n '.webchat__link-definitions__list-item-box--as-link': {\n display: 'block',\n outlineOffset: 0, // This will make sure focus indicator is same as <button>.\n textDecoration: 'none'\n },\n\n '.webchat__link-definitions__list-item-box--as-button': {\n appearance: 'none',\n background: 'transparent',\n cursor: 'pointer',\n fontFamily: 'inherit',\n fontSize: 'inherit',\n overflow: 'hidden',\n padding: 0,\n textAlign: 'initial' // By default, texts inside button are centered.\n },\n\n '.webchat__link-definitions__list-item-body': {\n alignItems: 'center',\n display: 'flex',\n fontFamily: \"Calibri, 'Helvetica Neue', Arial, 'sans-serif'\",\n gap: 4,\n padding: 4\n },\n\n '.webchat__link-definitions__list-item-body-main': {\n display: 'flex',\n flexDirection: 'column',\n gap: 2,\n overflow: 'hidden'\n },\n\n '.webchat__link-definitions__list-item-main-text': {\n alignItems: 'baseline',\n display: 'flex',\n gap: 4\n },\n\n '.webchat__link-definitions__list-item-badge, .webchat__link-definitions__list-item-text': {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap'\n },\n\n '.webchat__link-definitions__list-item-text': {\n textDecoration: 'underline',\n\n [NOT_FORCED_COLORS_SELECTOR]: {\n color: CSSTokens.ColorAccent\n }\n },\n\n '.webchat__link-definitions__list-item-badge': {\n fontSize: CSSTokens.FontSizeSmall,\n\n [NOT_FORCED_COLORS_SELECTOR]: {\n color: CSSTokens.ColorSubtle\n }\n },\n\n '.webchat__link-definitions__open-in-new-window-icon': {\n flexShrink: 0, // When text is too long, make sure the chevron is not squeezed.\n paddingRight: 4, // When text is too long and chevron is on far right, this will align the chevron so it's not too far.\n\n [NOT_FORCED_COLORS_SELECTOR]: {\n color: CSSTokens.ColorAccent\n }\n }\n }\n };\n}\n","import { StrictStyleOptions } from 'botframework-webchat-api';\n\nexport default function createMicrophoneButtonStyle({ microphoneButtonColorOnDictate }: StrictStyleOptions) {\n return {\n '&.webchat__microphone-button': {\n '&.webchat__microphone-button--dictating .webchat__microphone-button__button': {\n '&, &:focus, &:hover': {\n '& .webchat__microphone-button__icon': {\n '--webchat__component-icon--color': microphoneButtonColorOnDictate\n }\n }\n }\n }\n };\n}\n","import { FORCED_COLORS_SELECTOR, NOT_FORCED_COLORS_SELECTOR } from './Constants';\n\n// TODO: Temporarily disable dark theme until we defined the link color and stuff for Markdown.\nconst DARK_THEME_SELECTOR = '@media (forced-colors: none) and not (forced-colors: none)'; // Always return false\nconst LIGHT_THEME_SELECTOR = '@media (forced-colors: none)';\n\nimport CSSTokens from '../CSSTokens';\n\nexport default function createModalDialogStyleSet() {\n return {\n '&.webchat__modal-dialog': {\n fontFamily: CSSTokens.FontPrimary,\n maxHeight: 'calc(100% - 32px)',\n maxWidth: 'calc(100% - 32px)',\n width: '100%',\n\n [NOT_FORCED_COLORS_SELECTOR]: {\n backgroundColor: 'transparent',\n border: 0\n },\n\n // Assume the content is being prepared, so we hide the whole dialog until content appears in the DOM.\n // Use opacity to still be able to set focus on the first available control (close button).\n '&:has(.webchat__modal-dialog__body:empty)': {\n opacity: 0\n },\n\n '& .webchat__modal-dialog__box': {\n borderRadius: 2,\n overflow: 'hidden',\n margin: 'auto',\n\n '@media screen and (max-width: 639px)': {\n maxWidth: 'unset'\n },\n\n '@media screen and (min-width: 640px)': {\n maxWidth: '60%',\n minWidth: 'calc(640px - 2em - 6px)', // Browser natively do \"100% - 2em - 6px\".\n width: '60%'\n },\n\n [LIGHT_THEME_SELECTOR]: {\n // From Power BI:\n // boxShadow: '0 6.4px 14.4px rgb(0 0 0 / 13%), 0 1.2px 3.6px rgb(0 0 0 / 11%)',\n // From Fluent (depth-16 for teaching callouts):\n // boxShadow: '0px 8px 16px rgba(0, 0, 0, 0.14), 0px 0px 2px rgba(0, 0, 0, 0.12)',\n backgroundColor: 'White',\n boxShadow: '0px 8px 16px rgba(0, 0, 0, 0.14), 0px 0px 2px rgba(0, 0, 0, 0.12)'\n },\n\n [DARK_THEME_SELECTOR]: {\n backgroundColor: 'Black',\n boxShadow: '0px 8px 16px rgba(0, 0, 0, 0.28), 0px 0px 2px rgba(0, 0, 0, 0.24)',\n color: 'White'\n },\n\n [FORCED_COLORS_SELECTOR]: {\n // In high-contrast mode, we use \"outline\" instead of \"box-shadow\".\n outlineColor: 'ButtonBorder',\n outlineStyle: 'solid',\n outlineWidth: 4\n }\n },\n\n '& .webchat__modal-dialog__close-button-layout': {\n float: 'right',\n padding: CSSTokens.PaddingRegular\n },\n\n '& .webchat__modal-dialog__close-button': {\n height: 30,\n width: 30,\n padding: 0,\n\n '--webchat__component-icon--size': '16px',\n\n [NOT_FORCED_COLORS_SELECTOR]: {\n appearance: 'none',\n backgroundColor: 'transparent',\n borderColor: 'transparent',\n borderRadius: 4,\n borderStyle: 'solid',\n borderWidth: 2,\n color: '#999',\n outline: 0\n }\n },\n\n '& .webchat__modal-dialog__close-button:focus': {\n [LIGHT_THEME_SELECTOR]: {\n borderColor: 'black',\n\n '&:active': {\n backgroundColor: '#EDEBE9' // neutralLight (gray30)\n },\n\n '&:not(:active):hover': {\n backgroundColor: '#F3F2F1' // neutralLighter (gray20)\n }\n },\n\n [DARK_THEME_SELECTOR]: {\n borderColor: 'white',\n\n '&:active': {\n backgroundColor: '#292827' // neutralLight (gray30)\n },\n\n '&:not(:active):hover': {\n backgroundColor: '#252423' // neutralLight (gray30)\n }\n }\n },\n\n '& .webchat__modal-dialog__close-button-icon': {\n [LIGHT_THEME_SELECTOR]: {\n color: '#323130' // neutralPrimary (gray160)\n },\n\n [DARK_THEME_SELECTOR]: {\n color: '#F3F2F1' // neutralPrimary (gray160)\n },\n\n [FORCED_COLORS_SELECTOR]: {\n color: 'currentcolor'\n }\n },\n\n '& .webchat__modal-dialog__body': {\n margin: `calc(${CSSTokens.PaddingRegular} * 2)`\n }\n }\n };\n}\n","import CSSTokens from '../CSSTokens';\nimport { FORCED_COLORS_SELECTOR, NOT_FORCED_COLORS_SELECTOR } from './Constants';\n\n// This style is for accompanying result of `renderMarkdown()`.\n// Mostly, it should only styles elements that are generated/modified during `renderMarkdown()`.\n// For example, \"open in new window\" icon, which is done by `betterLink`.\nexport default function createMarkdownStyle() {\n return {\n '&.webchat__render-markdown': {\n display: 'contents',\n\n // Copied from Adaptive Cards inline styling.\n '&.webchat__render-markdown--adaptive-cards > *:first-child': {\n marginTop: 0,\n width: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n\n // Copied from Adaptive Cards inline styling.\n '&.webchat__render-markdown--adaptive-cards > *:last-child': {\n marginBottom: 0\n },\n\n '&.webchat__render-markdown--message-activity > *:first-child': {\n marginTop: 0\n },\n\n '&.webchat__render-markdown--message-activity > *:last-child': {\n marginBottom: 0\n },\n\n '& .webchat__render-markdown__external-link-icon': {\n backgroundImage: CSSTokens.IconURLExternalLink,\n height: '.75em',\n marginLeft: '.25em'\n },\n\n '& .webchat__render-markdown__citation': {\n background: 'transparent',\n border: 0,\n cursor: 'pointer',\n display: 'inline-block',\n fontFamily: 'unset',\n fontSize: 'unset',\n overflow: 'hidden',\n padding: 0,\n textDecoration: 'underline',\n textOverflow: 'ellipsis',\n verticalAlign: 'bottom',\n whiteSpace: 'nowrap',\n\n [FORCED_COLORS_SELECTOR]: {\n color: 'LinkText'\n },\n\n [NOT_FORCED_COLORS_SELECTOR]: {\n color: CSSTokens.ColorAccent\n }\n },\n\n '& .webchat__render-markdown__pure-identifier': {\n display: 'inline-block',\n maxWidth: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n verticalAlign: 'bottom',\n whiteSpace: 'nowrap'\n },\n\n '& .webchat__render-markdown__pure-identifier::after': {\n content: \"']'\"\n },\n\n '& .webchat__render-markdown__pure-identifier::before': {\n content: \"'['\"\n },\n\n '& [data-math-type=block]': {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n marginBottom: '-4px',\n paddingBottom: '4px',\n outlineOffset: '2px',\n overflowX: 'auto',\n overflowY: 'clip',\n scrollbarWidth: 'thin'\n },\n\n '& span[data-math-type=block]': {\n display: 'inline-flex'\n },\n\n '& [data-math-type=inline]': {\n alignItems: 'center',\n display: 'inline-flex',\n flexDirection: 'column'\n },\n\n '& :is([data-math-type=block], [data-math-type=inline]) > span': {\n display: 'contents'\n }\n }\n };\n}\n","import { StrictStyleOptions } from 'botframework-webchat-api';\n\nexport default function ({\n backgroundColor,\n rootHeight: height,\n rootWidth: width,\n rootZIndex: zIndex\n}: StrictStyleOptions) {\n return {\n backgroundColor,\n height,\n width,\n zIndex\n };\n}\n","import { StrictStyleOptions } from 'botframework-webchat-api';\n\nexport default function createScrollToEndButtonStyle({\n paddingRegular,\n primaryFont,\n scrollToEndButtonFontSize,\n transcriptOverlayButtonBackground,\n transcriptOverlayButtonBackgroundOnFocus,\n transcriptOverlayButtonBackgroundOnHover,\n transcriptOverlayButtonColor,\n transcriptOverlayButtonColorOnFocus,\n transcriptOverlayButtonColorOnHover\n}: StrictStyleOptions) {\n return {\n '&.webchat__scroll-to-end-button': {\n // TODO: [P3] Can we not to unset borderWidth and outline earlier?\n '@media screen and (forced-colors: active)': {\n borderWidth: 'initial',\n outline: 'initial'\n },\n\n appearance: 'none',\n backgroundColor: transcriptOverlayButtonBackground,\n borderRadius: paddingRegular,\n borderWidth: 0,\n color: transcriptOverlayButtonColor,\n fontFamily: primaryFont,\n fontSize: scrollToEndButtonFontSize,\n outline: 0,\n padding: paddingRegular,\n\n '&:hover': {\n backgroundColor: transcriptOverlayButtonBackgroundOnHover,\n color: transcriptOverlayButtonColorOnHover || transcriptOverlayButtonColor\n },\n\n '&:focus': {\n backgroundColor: transcriptOverlayButtonBackgroundOnFocus,\n color: transcriptOverlayButtonColorOnFocus || transcriptOverlayButtonColor\n }\n }\n };\n}\n","import { type StrictStyleOptions } from 'botframework-webchat-api';\nimport { type StyleSet } from './types/StyleSet';\n\nfunction stringifyNumericPixel(value: number | string): string {\n if (typeof value === 'number') {\n return `${value}px`;\n }\n\n return value;\n}\n\nexport default function createSendBoxStyle({\n paddingRegular,\n primaryFont,\n sendBoxBackground,\n sendBoxBorderBottom,\n sendBoxBorderLeft,\n sendBoxBorderRight,\n sendBoxBorderTop,\n sendBoxHeight\n}: StrictStyleOptions) {\n return {\n '&.webchat__send-box': {\n fontFamily: primaryFont,\n\n '& .webchat__send-box__button--align-bottom': { alignSelf: 'flex-end' },\n '& .webchat__send-box__button--align-stretch': { alignSelf: 'stretch' },\n '& .webchat__send-box__button--align-top': { alignSelf: 'flex-start' },\n\n '& .webchat__send-box__main': {\n alignItems: 'stretch',\n backgroundColor: sendBoxBackground,\n borderBottom: stringifyNumericPixel(sendBoxBorderBottom),\n borderLeft: stringifyNumericPixel(sendBoxBorderLeft),\n borderRight: stringifyNumericPixel(sendBoxBorderRight),\n borderTop: stringifyNumericPixel(sendBoxBorderTop),\n display: 'grid',\n gridTemplateAreas: '\"upload-button text-box send-button\"',\n gridTemplateColumns: 'auto 1fr auto',\n gridTemplateRows: 'auto',\n minHeight: stringifyNumericPixel(sendBoxHeight),\n\n // For unknown reason, if the attachment bar does not exist, the second row is still occupying about 1px, we need to hide it.\n '&:has(.webchat__send-box__attachment-bar)': {\n gridTemplateAreas: '\"attachment-bar attachment-bar attachment-bar\" \"upload-button text-box send-button\"',\n gridTemplateRows: 'auto auto'\n }\n },\n\n '& .webchat__send-box__editable': {\n display: 'flex',\n flexDirection: 'column',\n // eslint-disable-next-line no-magic-numbers\n gap: `${paddingRegular / 2}px`,\n gridArea: 'text-box',\n // eslint-disable-next-line no-magic-numbers\n paddingBottom: `${paddingRegular / 2}px`,\n // eslint-disable-next-line no-magic-numbers\n paddingTop: `${paddingRegular / 2}px`,\n overflowX: 'hidden',\n width: '100%'\n },\n\n '& .webchat__send-box__attachment-bar': {\n padding: `${paddingRegular}px`,\n paddingBlockEnd: `0px`\n },\n\n '& .webchat__upload-button': {\n gridArea: 'upload-button'\n },\n\n '& .webchat__send-button': {\n gridArea: 'send-button'\n }\n }\n } satisfies StyleSet;\n}\n","import { StrictStyleOptions } from 'botframework-webchat-api';\n\nexport default function createSendBoxButtonStyle({\n sendBoxButtonColor,\n sendBoxButtonColorOnActive,\n sendBoxButtonColorOnDisabled,\n sendBoxButtonColorOnFocus,\n sendBoxButtonColorOnHover,\n sendBoxButtonKeyboardFocusIndicatorBorderColor,\n sendBoxButtonKeyboardFocusIndicatorBorderRadius,\n sendBoxButtonKeyboardFocusIndicatorBorderStyle,\n sendBoxButtonKeyboardFocusIndicatorBorderWidth,\n sendBoxButtonKeyboardFocusIndicatorInset,\n sendBoxButtonShadeBorderRadius,\n sendBoxButtonShadeColor,\n sendBoxButtonShadeColorOnActive,\n sendBoxButtonShadeColorOnDisabled,\n sendBoxButtonShadeColorOnFocus,\n sendBoxButtonShadeColorOnHover,\n sendBoxButtonShadeInset,\n sendBoxHeight,\n subtle\n}: StrictStyleOptions) {\n return {\n '&.webchat__icon-button': {\n alignItems: 'center',\n appearance: 'none',\n backgroundColor: 'Transparent',\n border: 0,\n color: sendBoxButtonColor || subtle,\n display: 'flex',\n justifyContent: 'center',\n outline: 0,\n padding: 0,\n position: 'relative',\n width: sendBoxHeight, // We use the sendBoxHeight, so the button looks square\n\n '--webchat__component-icon--size': '28px',\n\n '&:not(.webchat__icon-button--stretch)': {\n height: sendBoxHeight\n },\n\n // Order of style preferences (based on effort of user gesture): disabled > active > hover > focus.\n // Keyboard focus indicator styles applied by :focus-visible do not conflict with :active/:hover/:focus, so it is not included here.\n '&:disabled, &[aria-disabled=\"true\"]': {\n color: sendBoxButtonColorOnDisabled,\n\n '& .webchat__icon-button__shade': {\n backgroundColor: sendBoxButtonShadeColorOnDisabled\n }\n },\n\n '&:not(:disabled):not([aria-disabled=\"true\"])': {\n '&:active': {\n color: sendBoxButtonColorOnActive,\n\n '& .webchat__icon-button__shade': {\n backgroundColor: sendBoxButtonShadeColorOnActive\n }\n },\n\n '&:not(:active)': {\n '&:hover': {\n color: sendBoxButtonColorOnHover,\n\n '& .webchat__icon-button__shade': {\n backgroundColor: sendBoxButtonShadeColorOnHover\n }\n },\n\n '&:not(:hover)': {\n '&:focus': {\n color: sendBoxButtonColorOnFocus,\n\n '& .webchat__icon-button__shade': {\n backgroundColor: sendBoxButtonShadeColorOnFocus\n }\n }\n }\n }\n },\n\n // On unsupported browser, :focus-visible and :not(:focus-visible) is always false.\n // And it will turn the whole CSS selector \":unsupported, .truthy\" to false.\n '&:not(:focus-visible) .webchat__icon-button__keyboard-focus-indicator': {\n display: 'none'\n },\n\n '&:not(.webchat__icon-button--focus-visible) .webchat__icon-button__keyboard-focus-indicator': {\n display: 'none'\n },\n\n // Make sure all contents are in the same stacking context.\n '& > *': {\n position: 'relative'\n },\n\n '& .webchat__icon-button__shade': {\n backgroundColor: sendBoxButtonShadeColor,\n borderRadius: sendBoxButtonShadeBorderRadius,\n bottom: sendBoxButtonShadeInset,\n left: sendBoxButtonShadeInset,\n position: 'absolute',\n right: sendBoxButtonShadeInset,\n top: sendBoxButtonShadeInset\n },\n\n '& .webchat__icon-button__keyboard-focus-indicator': {\n borderColor: sendBoxButtonKeyboardFocusIndicatorBorderColor,\n borderRadius: sendBoxButtonKeyboardFocusIndicatorBorderRadius,\n borderStyle: sendBoxButtonKeyboardFocusIndicatorBorderStyle,\n borderWidth: sendBoxButtonKeyboardFocusIndicatorBorderWidth,\n bottom: sendBoxButtonKeyboardFocusIndicatorInset,\n left: sendBoxButtonKeyboardFocusIndicatorInset,\n position: 'absolute',\n right: sendBoxButtonKeyboardFocusIndicatorInset,\n top: sendBoxButtonKeyboardFocusIndicatorInset\n }\n }\n };\n}\n","import { StrictStyleOptions } from 'botframework-webchat-api';\n\nexport default function createSendBoxTextBoxStyle({\n paddingRegular,\n primaryFont,\n sendBoxDisabledTextColor,\n sendBoxMaxHeight,\n sendBoxPlaceholderColor,\n sendBoxTextColor,\n subtle\n}: StrictStyleOptions) {\n return {\n '&.webchat__send-box-text-box': {\n alignItems: 'center',\n fontFamily: primaryFont,\n // eslint-disable-next-line no-magic-numbers\n paddingBottom: paddingRegular / 2,\n paddingLeft: paddingRegular,\n paddingRight: paddingRegular,\n // eslint-disable-next-line no-magic-numbers\n paddingTop: paddingRegular / 2,\n position: 'relative',\n\n '& .webchat__send-box-text-box__input': {\n border: 0,\n fontFamily: 'inherit',\n fontSize: 'inherit',\n height: '100%',\n outline: 0,\n padding: 0\n },\n\n '& .webchat__send-box-text-box__input, & .webchat__send-box-text-box__html-text-area': {\n backgroundColor: 'transparent', // We set this to transparent because we already applied \"sendBoxBackground\" to a parent container.\n\n '&:not(:disabled):not([aria-disabled=\"true\"])': {\n color: sendBoxTextColor\n },\n\n '&:disabled, &[aria-disabled=\"true\"]': {\n color: sendBoxDisabledTextColor || subtle\n },\n\n '&::placeholder': {\n color: sendBoxPlaceholderColor || subtle\n }\n },\n\n '& .webchat__send-box-text-box__input, & .webchat__send-box-text-box__text-area': {\n maxHeight: sendBoxMaxHeight\n },\n\n '& .webchat__send-box-text-box__glass': {\n height: '100%',\n left: 0,\n position: 'absolute',\n top: 0,\n userSelect: 0,\n width: '100%'\n }\n }\n };\n}\n","import CSSTokens from '../CSSTokens';\n\nexport default function createSendStatusStyle() {\n return {\n '&.webchat__activity-status': {\n color: CSSTokens.ColorTimestamp,\n fontFamily: CSSTokens.FontPrimary,\n fontSize: CSSTokens.FontSizeSmall,\n marginTop: `calc(${CSSTokens.PaddingRegular} / 2)`\n },\n\n '&.webchat__activity-status--slotted': {\n display: 'inline-flex',\n gap: 4\n },\n\n '& .webchat__activity-status-slot': {\n display: 'contents',\n\n '&:not(:first-child)::before': {\n content: `\"|\"`\n },\n\n '&:empty': {\n display: 'none'\n }\n },\n\n '& .webchat__activity-status__originator': {\n alignItems: 'center',\n\n '&.webchat__activity-status__originator--has-link': {\n color: CSSTokens.ColorAccent\n }\n }\n };\n}\n","import { StrictStyleOptions } from 'botframework-webchat-api';\n\nimport { toByteArray } from 'base64-js';\n\nconst DEFAULT_IMAGE_BASE64 =\n 'R0lGODlhJQEsAfAAAHp6ev///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJCAABACwAAAAAJQEsAQAC/4yPqcvtD6OcdIEAsta1+w+G4kiW5uls6nqh7gvH8kxL7K3W+s73vowL5n7EovHYEyo3yKbzCZ0sp5mo9YotUretrPcLHnG34bL5nBpT0ew2WM11y+dN+JiOz+vsd73/f8LXB0hYWCEYZ6i4yICYyAjJ6PgYWfk3SWmpSYdJtvk51+kJSnomulaaGnY6perqxbr0OmsVq0SL62QrlNtrtIvjK/wDHDx8XFPMgsw8o7zSHA3zzCRtbULNcb0tkt3FDe6RHU7eQV1udlGljvaM/tW6WvyOpSa/Sx8l+Babr+8Ij5U/XZ0CFhxYR5RBgAiP2Fpop2HCfhAzSSSG7x6qi/+/5pWRxRHJuTbsIJUsNTKkOGOfxqk8xGuTt5dSNkby9o1mg1Emcep8MEiSz5+N7PWcSdSCUaFDkx7gc9Sl06cRF+HUNhVDVatNs0JlitTrVkNXq2TVCidqSrFLuYY9O5ZsV7YWC109iyAoWHd4Deh1y7cvVZCWpApGGwTU2sN+WcoMzDiBupyKPUZGZvnyMGCamz3sHO0UaGkKR1ubZHrbvtTg2rJuHe91vhyUZdu+jTu37t28e/v+DTy48OHEixs/jjy58uXMmzt/Dj269OnUq1u/jj279u3cu3v/Dj68+PHky5s/jz69+vXs27t/Dz++/Pn069u/jz+//v38+/v//w8gCjEFiFFsBO7x14EurKbggog0KCBqEK6DgTmlBXiLDaL5V5dkAvXnmgKf6feViBnd96BSI9on4WAr0oeJh5zVdyFk8tWoDI0b2gjfh4u91w+P7j30Y3tE5jjfkUjGp+SMN1K0JJNQZtbjlE4+ueOVWB7U2ItSXojYhjqCGSaXY7aYl5gsmukimii6mSacb6ZYFEP70ZlGiRzGlWeC/IUYQYd72gRThhC2uUwJ7Jh1aCMVMtpopJJOSmmlll6Kaaaabsppp55+Cmqooo5Kaqmmnopqqqquymqrrr4Ka6yyzkprrbbeimuuuu7Ka6++/gpssMIOS2yxxh6LbLLK/2I62UnINQspKYYOR5gmguJ2LSBp+QYoIXpi+622DILLpx9ymhajt+eClu4l7bJGJifxssumvPNe9iEeFKGrZij5jvavv/1q5iVJARO8r8ADR1ZwOw0f9rApB+ObsBwR93XxRxMzXLEbHVO8scMLg1yvxyEzdrLI7wI8sskrs/yyvXbCW7LCeNI8s7vjypazzuW+trO62+oWrlzZAu2n0dX+RmhhAxI3LUqPNrfoslZfjXXWWm/NdddeK1IbronZ2rSrSZ/6s6k3q712qeuCWvOn98o9N6cpa/pxp3lvmjGzd196It1/W9o34INXWjjhhyO+OONx61233Y97OjnlPRKTejnbQ7O6eatHp2pgrYk6VQAAIfkECQgAAQAsAAAAACUBLAEAAv+Mj6nL7Q+jnLTai7PevPsPhuJIluaJpurKtu4Lx/JM1/aN5/rOx0AACAqDwJ7xiPQNl8yk8wnlMKfUqPWKTVC306z32+OKm+CyWTZOD8/stkkNJ7rn9E38/qvr9xB8nA/Y8DM4COZ3F5hIKIZ1iJfI5wfl+AhJR/lEWWl5pimU5PnHaRb6aVQqOuqFusbDqqa6+iqnM5sW22hLi6PLiBvVa8obvPU7SZx3g1xlDLqcs0zWfBS9S1O9NE1drYzdqr3jnXwtPg4+jN3tfe66blNuzl4jrp4uj+4+T3//Xt6fz4/cPn3cAv4DOAOhQSUDCT5bKFAhmmgQHdqrF6xixIv/GG1ptEgRWsaPCRvim0Vy48NwHlOW5CiSlcuDK9uVmqmSmDNNOGnqdIKpp09dVhAJjdkryyJmR5ESLROvqc2WUqv2eWo16wOqWrsqeOU1rKBQYssyCGo27ddNatsaWFosqtu5b4EQkUs3r969fPv6/Qs4sODBhAsbPow4seLFjBs7fgw5MsYikoX6qkwSFuaPqTbzY+tZnqTQokeTPufoNOpDqrWhbW0sNezYr2erkm07Vu3cnHDzHsX6Ny7Twm8bLQ68M3Ljt5bTLubctbTo1Kt3spsNr/U9cLYrAu29Dc/w4seTJ3Xz/Bew6nOxb38MJfz48ucj+Wn/1Mj8U7Hy/6+FzH8s4SfgUFwVmJN/CL6034IMEuggDAVFyBCEFLow4YUY1qThhhZ2qEJIIHrY4IgsfGhiCiimeEKJLK6Q1IskyiTjC/XVOKMnOFa4244t6OhjgmNQFuSDt2hXZI5NIJmkD9gV0mSUUk5JZZVWXollllpuyWWXXn4JZphijklmmWaeiWaaaq7JZptuvglnnHLOSWeddt55G54YcKGnBN31uQB4ffqGJ5B6klUoonbSWOd7ct4Y54FuKjippG3GCCell2qqpotsYvomp2uK2qmln5p6qqOZqhopo3O6Smd6iZoHYxFMatjjG3zWSGgJypl4nIqCjjjkrR3kCiJcUP/CiGyrhi4qa6yo3MlqqNVWeu2oqJa6LZqkpgkqtpCm2u2Z33p7rpnpqlsuutlq+y630zY6L73R2tvsqvk6Gxyg/QJ6QLAAIzDkwH1gR6TBCi/McMMOPwxxxBJPTHHFFl+MccbSTecwI9YoLLC/xA26r7Ulb6qotPc+Cqu+9bIcL7gxuzszu+2WGS7KNZPpKbzjembseusmtuscQx/2JxtHEzasUjcX1qssOw9Gq9AtL7ay0y83lrV7KXN99RVbMza1flWDHbbXI6OddlFRY/00UCE7trTczVWWM1RPrhE0YnU3Alve8v7sc9lh/g2m4IOPLS7jOnf9+Nf8Su7ysyoan335269qju/csybN8N0Qd9G3xqafjrpnBQAAIfkECQgAAQAsAAAAACUBLAEAAv+Mj6nL7Q+jnLTai7PevPsPhuJIluaJpurKtu4LI8BMzwEQ5/rOx/X/u/WGxKJRAkwmj8ymM6eMLp/UqpUjzQav3K53oQ3XvuTyU4y2mddsXfrdjstT7/r8jvfU9/m+n7Jn9zdImBDIV5j4dyio6DjHiPg4uRbZSInZZSnJhWPzmem3CdcZJhQqN0pKxYlqpprGyuj6Cot2tklLZnt7BKvrxSvGJAx8JTxchIxjLLscZfTM3OwkrRT9TF1tPTXErd3EDUQkPg1OXk6D/n2unG6+897unu5dP9/zDg8lj59fvu6ev3jiAgIcSNAaPYEI+UkzeLChm2wLGUp8QRFiwYv/E3n50qeGow9bxECK5PGrpL6THWdtW8kS5SFnFmPC8BTLikmb9rJo6scz2qkyMIMaNQT06NGaSo1GbKp0I1So7KY2VWh16sOsWotxzer1q9WUYr/mKisWZyu0aS+xZZvsrVwFnoTsm4s3aN28fNVe44t2FeCxawfztGTYKeLENskyvujxscSwkgciq2x5GeZ5WzeDw+q5WdXQxkCT1iX1tKvUqjM9be16NGxKr2c/qm3bEevcinDzLiT7d+/gwgkRL268M/JEppcPv+xcd8boz0lSvx35OnZV2jE57i49EvhQ4sejCmSeluD0q29AY+/GrlD4Mv/SB2bq/vm4+r3n/+y/XS8AVvffgMkVZuAdLiUoykwMNojeg30sKKGCDlaIx4UYpqLhhnFE6CEkCIZYS4EkcijgiShqoSKEUrQointbwLiIAXvRiGOOOu7IY48+/ghkkEIOSWSRRh6JZJJKLslkk04+CWWUUk5JZZVWXollllpuyWWXXn4JZphijklmmWaeiSZezNyVph4vtqmHjD7BmYFbdEZA4Z0OlKfnA2f1SdcogILB3aAHZDcoon1Stiijd0IHKKR6Tveoo3BSSqeklVp6qaaZctomqJ1+1yipk5pa6p+G2qjqqqzm6aqcI7oKYqyEpmjrnizmOoE66vAaqn3A6prfsIEOw6attf8Cy2eura5aKK3RQovqp9WOei2anm6a7ZmaRbptsIpaK6q34ab5bardmpnuqeNyO626z8rbbKLxGioor/NS26Gzsyq73rB+vWksseMUjHDCCi/McMMOPwxxxBJPTHHFFl+MccYalxJEsgib4rG/yCq8rMglx7qYybDamy+/LRvn3lDLvbuisL+VS5SJs527y7+e8fxFv6oBzbHQobVbYr2kYRr0y6cRXYV1TyMdjNRT01z0vZhRXfW6iUH9ktVH44wL2YOZHbbXhmGtE9dbq5023IDJrZLYSzudM9prp1yJ22Mb3TTbP5+cNN2M2dmG3pXhKqLhi8sKyiJ20wu4u3whu7wyvkoD7HOkkBf7MeMkExxxXSFvjHrqqq/OeuuuD1IAACH5BAkIAAEALAAAAAAlASwBAAL/jI+py+0Po5w0gnBz3bz7D4biSJYQgKbqarbuC8fyXK32fdH6zvc+jAuycr+i8YjsCZespPMJjUqY1BRGis1qjdUucQsOi0Ne73WMTqsZ5fL6DRe33fG63Tlv3/f8XX7eFyho8gc4eIhYU6iX2OjItkj3OPkYyUiJOWh5mdm5tynpKRoHajZ6+lZqisoaptrVGuv6SiVrK0Vbdbv7lLvEC3zkyxRc7DMcZKzsh4yz/BzTfANN7SJtU51Ncq2i7S3CjfI97hH+RY4+dZ3OPsHdDn/SHE/vgFyPv3Cfz3+Q25/l3KdXAJP84lOKFIZuAlutsrNpzUNRfwbmkWiIYiGE/24aasmwMZOlProwRhIJSpAGcXUSVnJZUJEqR7RiUvCVCKdNeTo19dwJaZjPf0AbSBv6s6iBdyTnKUUQrum+pwuZWhRKteq6q1OLmmN5Z6vSrx7VWPX6lSvWsWnDigVKFiypt3DbunWKluzdrnXtQsTL1u9cvjvjciRcWK/amVkVL4b51PFeglm10p0MmapgzCMrWz6KtLPnz2tVphzt73KgiKiXqiZJGlZrqIBzZpxNOynNibhdE/Uk5EzvoIxRaRhuoTjybKeXa2PtfFzF6Ok4Ua8eu9v1fjnKbv8OPrz48eTLmz+PPr369ezbu38PP778+fTr27+PP7/+/fz7+///D2CAAg5IYIEGHohgggouyGCDDj4IYYQSTkhhhRZeiGGGGm7IYYcefghiiCKOSGKJP3RnIhgHpWiQbCwWcduLNEwnow6L1PgAQxtAh2NqybjDY40l8SQaji4apRyL1ilAmYwxJlDTixcRl1mJNEIZpZJTYpmliSEx+ZuVX/rYpJdX5lammE9md5KWW3KZJolnklmlnGv6lqSZocBZp5288VmklH+iGaSgxCRXqJPBeUfojT02Kg6jgL75aAltVmrNnJhaeuemnA7pqQy1hKqEVsKRimqqqq7KaquuvgprrLLOSmuttt6Ka6667sprr77+Cmywwg5LbLHGHotsssr/Lstss84+C2200k5LbbXWXottttpuy2233n4LbrjijktuueZKi+K0wTE7KLCd9grSksAtdOp5jmq0bnmJNtJudM29JK+//9pGqcADH3IpdXGuFihyYTK872wPS9Uwbro9NuZwE3OWcG8X/7UwaqVhnLHFG4Ocp8Rdktxxax+3tLLJIQ8Ws8gn05yyyzPj3KfNOaPcs88Hs6ypykMTXbDHR3PcssZNU7y00iWbFrXUSYd273fvUv20wv0iXPF28f4I3NTkxVsvvlvruja8RyK7IrTpnks3GmMf1+yoye4pbNFuX81217hGbGvVs/5M686x1py44q++DOvNi0v+OOWuMUJeOeOTax655Zdznjnimwc9uuGdm3562LeiLqvquWbtLuB/f+3r23s7Q62kde9uSwEAIfkECQgAAQAsAAAAACUBLAEAAv+Mj6nL7Q+jnLTai7PevPsPhuJIluaJpurKtu4Lx/JM1/aN5/rO9/4PDNYAAQDxKEwqlx+j8wllSqfUBfSKJVa3XF/2e+2KxzKwOUxOq0vntnMNj3PcdKP8jofU9/m+v7jH9zcIFyhIiChmGJjYWLVo6Ci5BMk4yWX3VDRWGXkpRYfZefgp5Ak6SlrqBTmVarnak8r0qhqLU0tZG3qrs6sV9FvXiytsKtxGfIMM/MOcrEzzHPxsFj1T3cyT/XWNXU3NHeUNww0kjkVebu6MPq6+gt7u/gbfIn5Ob2cfLz/vz0+Fu38AA6IoKGugQYEItzVcSEIhwWkQUzx0mK2ixYv/vjJqPIhPCbiPID0eQ0aSockkxlJuHEkrl0uVzB512jTzJcotlXLeq9mFjzafJX+lOQIGJ9Gfu+4gGbrUhdGoVBO8qorV6s2sXA8sUtqVK6ywZA1AK4vWK6C1adu6fQs3rty5dOvavYs3r969fPsuRRoFqt+AwwYbbGWY3KjE3q4yjtXy8aedkiVRrJxoJWY/ITf34ehZjcTQckaTXqPvdKHUqkXrE9yaymvYsVGxri3qNe6gs3fz1u1bdu/gwocTjwn8OPLkykUyb37yNnSWz6fno2ddF/bszk1znwjz4PcO3kEkHX8BtIbC6Cd0Nm+rvQPN5BHLfxDew9b7+CnD/9/PXwNT/bdYgPPJFEJTBh7Y0wiRLciAfSI8CGGE7DlIYYURApKOTgpqyEqGIBbj34g5XGZiRyWmOARQLJK44ovfiChjDCjWKE2MOK4z4I459ujjjAgGKeQsRNrw4ZE/Aqjkkl81uUyDUMJ44ZRR8mJlQudl6QyHSHAJZphijklmmWaeiWaaaq7JZptuvglnnHLOSWeddt6JZ5567slnn37+CWiggg5KaKGGHopoooouymijegG2j6MRWCMpg5RWikCVmI4l6SmVPtmpp45KyCiTi0pZKqmpgtqoqqey2iqssca3KpaYmmXrrbneims3vG4Y2K/CDktsscYei2yyyv8GFwZtn571K62vclqrqIkWOK2phSZpKJCD0giojn66+K24fd4YLrnpmssnun+6ey688YI7L717qisou+16my+//Tp2rZGKApyttQEbXO0ZYG2ajLOjZrFsxBJPTHHFFl+MccYajwjpwsRCy6umD1NbMMmHYjuwwIhyuy3L/w5JqL37yqwnvuvSfKe89fpLGsS54fyYGzbpy5i04BEcmqvXAc2Xtkej7BnUS7scNNJPO100zFfLKhnVWmpdNc87eJ0Y0VQqHTbZY6uMmc5ro5222Bgh3LXN4ewatd3RXaqa2+d4qYnDlflNiXKE43l4zmbnqffOVr/8+M2RQ47qyZMcl4t1y3B3y3XJCg8rdLGQviH4xqafjnrqqs9UAAAh+QQJCAABACwAAAAAJQEsAQAC/4yPqcvtD6OctNqLs968+w+G4kiW5omm6sq27gvH8kzX9o3n+s73/g8MCofEogWATAICS6PzCXUop9So9TqkaqfYrve2DVe/5HJKjE6a12xQ+o1sy+cUuJ2OzyfsfL1/ztf3N2gWKEiIeGUYmNj4tMjoKJkFeTd5+VN56LXU1IQJpbkZyoQG+ij6phh5GpRqaaTZ6vqahpo621OrWrSby7NrSxn8+WtDHEaErGZ8vKw1vNxc8zxGWz1NU811vZ09s82cGS7+7UJerIuebr5C3o3e/hIO/y7f4g20zn3v/iy0r1w/FP/qxRvoj5jBgwhVBFMWUGBDE74ARowzMWGlXv8XMWZ0CMlJR3YfKbLi2LHkOWGhLqqE0akTEywjSb4cmPLmx5E6S+bsmdEl0KABh+4sapQow6QN9zE9Su+pUmxSoRasOlUhVp/Itr7U6vUrrrA6Y4YkO3QR2qeqbK5NOzOO27d069q9i3eSWZl5jfLqe/MkYIRnB+PcaPje2MTfKjI29vAxZMeSW3WtfOoqZr2XN1/S7LkR1dCipZEuDfq0n9GqB+Vr7To1bDqsZ+uRbRuQ6dyrO/PGs/v3bcrC80Qu3vsV8j/Kl8eW5ZxQ4ehnqswlaIg6djjzuGs3mX1eKWjfwSMu34Y4+i9g13Py7d7K6/i3cNNf2P5+tNr69a3/679fVAD6ENGA4zhlIDBCJZjDTwyCseCDzkQooQw8VUjNhRiC4+CG3VHo4UodhogPiCSyoOGJKI6oIkgFtigiUjCWiOCMNP5n441L5eiiPTzqyN+P280npEbBFWlkfkiuCN+SSS7mJEy1RKkNlFRaON2VGcKiZYPjkddlmGKOSWaZZp6JZppqrslmm26+CWeccs5JZ5123olnnnruyWeffv4JaKCClrXXoBx4Z2gdX7KU6ANZNroAdJDuIcqklDY36XGQKilok516CuiRgdrXZ5B+mloqqXuiuiqrrYr6p6qvgpoqrafaWqt6g3L66ZSWLiqppZj+CqxgvwZL7AHh/yXLAJfMNpDMmmA+66gp1EL717UIGPvsstqq9S241CKb7HnMknusueWqSyy66Yp7Lrvtwjuut/WOci2+4TKq7aVb9FutGtcBTHDBBh+McMIKL8xwww4/DHHEEk9MccUWX4xxxhpvDLASpTCMaMd3DNzoo/PKm2mlJ6v87rCJ8hoqzPXxtRysKIkxk3CyqsMdyZjtrKC9rbkaNL2qEd2glachjYOvQwM9ocuhMb2l00tDXaWmU2PNocyMUd211lt73bTNlZmdNNd4oZ022V+LzTPbb1vtn9yP6Ro3rpJJXbfbe7tLoNqGody333/rGyDdtvUchd1LF+szfoTHariecCAbqnjJSqcM+KZGx4s46PwaHC3Hpp+Oeuqqr8566xQUAAAh+QQJCAABACwAAAAAJQEsAQAC/4yPqcvtD6OctNqLs968+w+G4kiW5omm6sq27gufQDDX8Y3neg70/u/bCYfEYgWIRNKMzKYTl4wqn9Sq9SPNAq/crrdR04p737K5Ok7Pzuy2UJ12y+csOJyOz4vsd73/b8HXB0hYyCA4aKhIiJi4+JjX6AhJySY5WZn5dRmn6bnJ2fk5ihYqRopKZTqW2mq0euoquwObNXvLUyuFy/uiG9UbXPebJGwsQ7x1vEyS/MMMHeJMFl3tMW2dvYGt3X2R7B1OAS5eLvFrng5Rq97usOoevxAqX3+IuGSvbyCYv/+/hNUagAQD0ghio+Cbg8oUNmP4bKCmMLYcXoNoS+IjPv8WM1DEBAhfx0CXFkkaOQFeSE4oH8Dyp8dUSzC6YqqciYAcnpo4+Tnb+bLnNGpy0OEcSrQNsZlIk57RibKpxjJLW0oNorRqx6tOQRkdyXWqF6gOw4rtQlah2bNXfoINa0lr2bVZeW41G9fuXbh5g77l21fmX8BP/Q6+6oadVbxF6TFlnJilUK5AG/XEKLUyx8uYudlUwzknYj9x2EYdzQgzzNAHMrNu1fS1rKGyZ7ut7eo2bthfd+dW7HvWzeC4SpomjsryceS8BTKP9hHh6ufUq1u/jj279u3cu3v/Dj68+PHky5s/jz69+vXs27t/Dz++/Pn069u/jz+//v38+/v//w9ggAIOSGCBBh6IYIIKLshggw4+CGGEEk5IYYWiMTSdhb6UpuGGdnSogmQgjhCdZSnxM+I7wx3SWUIp+gRcAiUW82Ja/XTomYkW0gajSBSudWOEQOoI4ZBBPmikjw0mqSSDTDap4JNHRinllAlW+eGSWGa54JYgGejllwWGKQqVZMbS5ZlaOKjmmmy2CYyWcNIo55xYvWnnnXjaKWGeyyEYm4h9ItWjlUXy2CKaFSLamphCyiWjmzX2xmIYGY5I6YsarKgpB451CsJJoJbA5agmrPmnqQ+pymqrrr4Ka6yyzkprrbbeimuuuu7Ka6++/gpssMIOS2yxxh6LbLLK/y7LbLPOPgtttNJOS2211l6Lbbbabsttt95+C2644o5LblQGpcqcDeiaJOl1M3ZFyR3rhqZovJs95+hnUOJWqiHvOkecoaQJyu+9hRgmG5EDC1awwJox/Jqof2TKmcQLI0yvwg9jfJnF+nI82b5zpNWxyCNDmrHDkVFcssEfx8iayy9zmnKZE6Mcsc0Xw5xwvYyw3PMUG+mFnIuVEJ0r0ruCjCvTukIMbEnGejysysKC9mxG1Kp7sEHT+pzsv0Ijy9G8t2ocNcG/fpo2273ynDTccTtNK9B141wr3rbqPSvJefstq25N8x044bECfrfce9vdt+JnO/43zU9D/bbbbRij7SvVVctcbL5VJ3rpslybXW7ppp++SAEAIfkECQgAAQAsAAAAACUBLAEAAv+Mj6nL7Q+jnLTai7PevPsPhuJIluaJpurKtu4Lx/JM1/aN5/rO9/4PDAqHxKLxiEwqVYBAs7mMSo9PgPWKnWq3Oqz3a+WKxyuw+UtOq0PndnYNj0/c9Kv8jk/U99C8f83H9zc4FhhIiDhlKJjYiLR46Cg5BBk5eclTaYnJaaO52WlUFdYn9ckYSlkXdYqa+jO6mtS69wpUOUsra7tzSqXrxpvpWwS8K+xJK2p8hoxjXMzc7FzDTCRtRl1trYrtpU2D3e1tBx7jfU1ebg6DLqQext4uPu4u70Kenn/foq5Pz6+fvXcAA7LY9w+YQXwD67VayFDaI4UQBRaMRqziwYv/y3BpfMGxo6GP86ApcnKMZERdW56g/FZKJUiKMmvqYWkz5wFlOnu+9OhT56egRBcRPWqgFtKlTn5mick0qtSpVKtavYo1q9atXLt6/Qo2rNixZMuaPYs2rdq1bIO4hNqWl9K4nSDRxZTx7iCeev+Y7CsnJOBCggcr8meYMOLEWuCtY8zKMVzIIuFRjix58mW3mR9vduj4M8bOmkUPI13a9DPU8VTDYp3a9TbWsl/Trn36Nu5esHfnJu2bt+7gN2DHJm4RNfIcw5fP7ux8NfTo0jN3iNWUegXgG1Jqd2A9w8jvEMJfAEqeQWgMedPfbEjhoXv1hcvznf+epoW/+BFw/zvPX39JySfefwL6N1SBBh6IICgKBshgg218AF+EejR1HID1WXgCQhzOtOGHJCwm4kYhlshGhSh2qOKKI57oIoUwxujBjDRyINGNTCyoowkQ9ujjfUCmIOSQLCZopIlGJbnSXEyCSMeT4WSToZRWXollllpuyWWXXn4JZphijklmmWaeiWaaaq7JZptuvglnnHLOSWeddt6JJymk4CmBK3wOuOSf7c2pX5wKVUmmjWF6uCaJakrWKKSPmmcmd2cqd6mliWJaZm+dNgemcZ+C+qVxiD4p6qaejrmqmKaqyimrpJY6q5etuhorrJJWqumo66FJKbC/Tspomo5GquiiP/+2yeORdpwaXZFBRsmhJkpGCS1yge64rYUTZqvBoNVOiSSdhRp6rpvNMrsuscsi+26mOcLZorzJdlmsu+3aOy+b+eqbrrH18huwwPsaXDDA4qqbMLwL00tgnQ/LWS6f3f4JaDAYq+eUZxt/DHLIIo9Mcskmn4xyyiqvzHLLLhOSTcoak+znxg4KenGeOduJ3l2xeJyGtT57x0XFa42nWM9oKX0Y02YZ3fTOY0m7BNRk4dSS0GfFW9nNV3PdtZNl9WuK1GHd24PZYA0c9jRpsf3LzEvDHTcYcf17GErZHY03wQ3rCravBwv+N+GFy0o2u4HzOjjjhzseMcVUQzwxw1YYE2rXx5mDLPbIbr8Meuiij0566aafTlcBACH5BAkIAAEALAAAAAAlASwBAAL/jI+py+0Po5y02ouz3rz7D4biSJbmiabqyrbuC8fyTNf2jef6zvf+DwwKh8Si8YhMKpfMpvMJjaoA1GpVis2+rNyu9gsmdcfcsPlcIaut6LabsY5T33S0/A6o6794+f4f1XcHSMgkOFiYWHSIqOgIxNj4OJkTKUmJSWPp55S3lom0yankeQkKKfpJyngalBqXlNr686oW+jrLU0t2W5u7sztmFDz3i0NcRoRcbFyzzCz0DN0cI71oTa25rCw9ne2yPdR99S2DfD1eXh2Mnq4Oszs87v2+4ss9T1+fIts+vw8vUq9/ANf1WZWvYLUAowYSVLjFgLAm+chBhFgxz8WN/xk3Yqzo8WLHkAVBklT48CTAlCr3uWu5EhvMkuFm0jxn8+O9nDpx8eTY7ydQgUJJlsJTdKYfjUl5emLYNKrUqVSrWr2KNavWrVy7OvMa8mgZpmDLDSJbNhfRtLNEsT0V9O2keHIdsauriBjeQjj3/qnpl86zwHpkEm5j+LCZbordMG68ODFkLS8n8xlsGczjzJcxc84i+TOU0KI7AS4t5TTqQHdXg27tGgvd2JTj0pbt9nYYS7rtHOxth2FD4FO+skFL/AQs5Mlf/26emjdz6A7XUo8F+zq+7NpRqe7eYzN4XSzHH0tovpLJ9DYy6mMPzj18Z+6nz59S3/59FPn17/830Z9//4kQoIADglDggfYEqCB+/TXID4MQKifhhCUkaCGAD2YoRoUcErjhhyDmJ+IIIZaIIIkojjjSiiHI5yKL5cXIQYs0pljZjTiSpmONPPboY19AyrjTkBcWaaSJwm2SJAvWNcnPksNBCY6UwlGJZZZabslll15+CWaYYo5JZplmnolmmmquyWabbr4JZ5xyzklnndSJ9ZSdE5iiZwKH9KkAk4BK+SSdPuk5m5x6GbponN+1+aiaP5o5KaWVkikem5muuamkl47ZaZqhojkqqZEeaOCLnqGqCoWN/venq9yll1uHSLJ36wezjvfqjoLOd6oGttG6qq+C7FdqkM//wYeeiUjBOiOChM6R6nU2WnotpjBim62YJ4Kqorbfgumht+WSe+6XGII7rrrpermuue3C+26X8cq7rbj1cdttmPua2i++0QqcrL8Dl3mwvkK6WSzDvb65K5yyVMtpoYMuO2ig00KVcccefwxyyCLDayXFiE6Zcawe83ZxrSe7zOihcz7scMSa0lzxwpA2nLPOPeMMMM+iCh10sAoDXTTSCH8aC8eNMe1PMoFBHc20Uu9FtXd8smW0PM9i7TNCx4KdKEUWc52r2CrjVbbZZ6cls2lvv/XraHWTPTZuLCuGMWt78211np3NfZjJbrPSMuGKKr543isfZPjOX4e89eMTGI0MB1SRY855555/Dnrooo9Oeummn05cAQAh+QQJCAABACwAAAAAJQEsAQAC/4yPqcvtD6OctNqLs968+w+G4kiW5omm6sq27gvH8kzX9o3n+s73/g8MPgDEYlGITCo/xmZzCY1KF87qc4rNAq1co/YLrnXHxLD5nCKr0ex2SL12y+cTOJyOz1Ptcb1/znf3N9gWKEiI+GV4mNgotdjnKKkEGTl5+VM5hsm5pdnVGarzuSlqakPKdbo6k2rFCvvi6hRbyzJLa6trguu1+0vSWwZMDCJcjMyEm8y8sdwMjTEbTW1BWo1d8ZnNLQHZDe7NFwAQbu7AeK7OUP66/g6PVR5Pv+deD2+Hn0aeuLj/plSeSgA7BKKzraC0f25SKbSmic20hxFcnelFEcJEMP8YM7LrqAikRwTC5mUpOTJByWHyUKYkt9LkI5cvY7KMEvMlzJxTeI60eWQmTY9Aby7xmbGoUUorayoVeuzn055DKSpdigSp1atURSblCnUj0aldxX4li/OZU6BazI4t2taizp02OSaci7YlwbkH2Jr5xrdv3YvjAqtsWoiMYXtR5dCSufiw18iTJlOWpPZyJ4eQNV+669kU4NCn2ukjbUsgamDzOq9+DTu27Nm0a9u+jTu37t28e/v+DTy48OHEixs/jjy58uXMmzt/Dj269OnUq1u/jj279u3cu3v/Dj68+PHky5s/jz69+vXs27t/Dz++/Pn069u/j982qPwnDvL/F7HXfxpcc0E7/bgWn1sf7SefZQqYpth7iDF2GntaCTYaenBhGKCGfhkgl3lgKQjeVa2R6J2JdDlUnolVfefihCXG2BiMNNaY4o0ObqdjZjn2iCJ2QAYp5JAszmgkaD8m2eGSTDKE5JNQ2qgijlQ+ZaWTbO3InYsghkieil8S2CJYYzY5npgcGqKemWum4+FgFKq23odUrJiLhBc2YCCC7skoYEU+BqoRmIRScOShELGpKAf+NWoQnkFBSmmlll6Kaaaabsppp55+Cmqooo5Kaqmmnopqqqquymqrrr4Ka6yyzkprrbbeimuuuu7Ka6++/hplFa0+eiqan5JZWWiD/w7EYGBZAgKnVFwSVlhKcjZkbEF2ooGsQhtKJCmxALn5V6L7eEmtofSgG8a06sRYrrvg0BgvkebQa9ez7+Ib14v78nuSv+vcmK++4ehYsLzZINyvwPcSHJLDBzMcsMETA6yXxfNiXNay/8KbsLrvQNywxx+rGbHII4Pcrskn51WykvWw3HK3+LCbbrbrklsvo2ddm5jPW20LboXS7ln0Jn4+hDRCEFIGaKYKN2qvpTaDqnOo1aoK4RNLAwt22GKPDfWtqsCqtKtGo7p1sUKTmiHcU8o9t9ZZd3r3pjIfm7fecdv9N+Bvixo44YPTHS3iEbJqCdfhfp2qaf2QTXnllghfjnnmmrNQAAAh+QQJCAABACwAAAAAJQEsAQAC/4yPqcvtD6OctNqLs968+w+G4kiW5omm6sq27gvH8kzX9o3n+s73/g8MCofEovGITCqXzKbzCY1KR4Cp9SoDaLdcrPdL5YrH4LLZMk6Lz+z2Qg3vuufluH1Lz2PvfL0fytf3N6gUGEjIVEVWtWd4iHj0OOUoCSnkGMAYRVlp6cOptQl65/kzivd0alf6qaqZ6ArHqhOLClu7NpuDG7rEm6Z78/uaNCwXTGN8q4w8Y0xs9Nzb7MxcLE2dZX29nd0iDR3d7b0CvoxLHmNeOJ6Osu7L6/4CH187T4/tmxmL71JvT5W/f88AnRqYrx07UAgJDrNCqSEMhU4ESUyI7osiPP/hLn6T5zGkhIwiSzogaTKlAlcqWzY46DImAoYyayboZDPnxkU5e770CTSo0KFEixo9ijSp0qVMmzp9CjWq1KlUq1q9ijWr1q1cu3r9+lNRJrDULJJFxOnsIIFq6bBs6wYlXI0g53qhaLeJvrxS9vJNBfDvwsCCI4GbVpgb4cRDDh9jLM4xZMOOO05uVfkykcq2NAfhjNgzZsmiP3MubTozalOnV48+7Jo16dg8VNOuPfv2Dti6X//q3WMxcGF4h9f4bVz2veRAlp8QK5Z5BbYmdqqRPmHUO0PYs+MUob07BOtdLIOgLh43zPS7nbO3Uff98fjy1T2srw05foz697P/8OtfCsIFSAKABFZn4IElDKigBww26GCCEH7w4IQbSGhhhMVlqAGGHHKw4YcZhCgiBv2VGMKJKJ7n3orgveXiguHFuF1ENL7Dj1k3CrjKjhONZZ6PQg5JZJFGHolkkkouyWSTTj4JZZRSTklllVZeiWWWWm7JZZdefglmmGI+wEiQYpK3hplaphXmel22aCV9VZKYpIdL8hZlbk+25iRoUIKmpo+A9gloaEcWaqiRiAZK46KMrujonZHWOSmSjj6K4qVKakrpoptWaqmnnSIqaaFMilqqn6nyWSAwmHpm6os66jYoeDl+RxurGrIJnG0sztibniD2M1yFFMgZm50X/6iYK7LDOpusXLtKexuxsjJLK02t3icdJs8VJB6a0X0L7pTGHqrsqNxKeS665eaZrrrQNvmuufWyuy6V+c45L7zWZgknwG5yObCXvI7Zx6tYujpmww4/DHHEEk9MccVojGXxrQw7fPCbGnv75r8LU4svtnvGq2i7RAp7qq8tu7wqnjHL/GmtNdssr64pk3ozzjvznDPMK3PqLtChovpzrEGzPCTRXwFDmdJckVIEqFvN2pzRWdmYms9Ydayczldp2zXTVQGbtdhWFezbvV+jHTbKTqFXNp1PwXiJ3HeznbbJb5O9md9j81034VoZXjjIZ8EdNddtAR5QHBjn5XgqHyBjrPDfuBqMNcKyZD5yeRmPTnrppp+Oeuqqr85668AVAAAh+QQJCAABACwAAAAAJQEsAQAC/4yPqcvtD6OctNqLs968+w+G4kiW5omm6sq27gvH8kzX9o3n+j4C/h8A8IbEIu6HTPqMzKazp4wuhc+q9fqQaoHYrte5DVO/5HJOLDar1y80mg2Pk9xuuf2eodfx/H5Wn+YnOBgE+EaIiGd4mNi4tsjoKOkFGTl5WVUZiMn5pLnVGcr0CSpqykNaerpqkyolOMaa6ZokJxQVJOtJiwRHpzvKy6VmCEwkvEQMaTyE/FjJvCOs/Bmtw2tGa33kSp26fdNdNg3eqvmMXV5znu2sbq7Hhpz8ThMvP18frpXrm6+Pqs+8WAALThhIz6DCP/8WOmyA8KFEBgMnWjwQ8eLFiv8aLTbsOPEjyIUiRzpMZzKktpQqv7H0SOplR3YyNy6rCbIYTpOWdqZ8RdCn0KFEixo9ijSp0qVMmzp9CjWq1KlUq1q9ijWr1q1co9261dVaz7Ci7pENtegsp2pqJcVsm0gcXFhy5/IhZ1cR3ry29vLF5/evN5SCB68s3K4k4i4ZF4/j6JgS5MiMJ1O+0vgyFsuaZ7nrjPkz6NCER3s+bPq0y9Sk37LevPp167SyOYCdsoJmbQtvgoq4ubuCzhO/gvOGhiJMP+MU2Ka4zRxD3ejNUFO/Fvj6OsXaZXDuHgOhb/AtxCck78L8ePTPzbOHoX79+znx57OIL99+CPz6VeD/z99fB/wFSFx9BJbwH4AH5mHgglCo5yCCEEb424QUVijehfRlpuEHGXaIIXcgbvDdiAJmZ6IHKKZom3Us7ufcixICJ6MJaSlY44l75HhfIbjwCGSQQg5JZJFGHolkkkouyWSTTj4JZZRSTklllVZeiWWWWm7JZZe64OglRvyAqeWOYYoJyJlophmma2W6iaWLVZZG5YpQijaliE6WuKeeS3IYJZ9MfigloHf6qaShTwo6KKKJOpokpI/SWSilecpZZ2xZwrmpbl3S2B+ZBRY331ev2JOGqKyZaiZ8tagqG6ukcqnplZhWaumieAaq6J+EHvprkwMKO2yjxU7aILLH/x6Z4HlGNutskdBGO+S0vkKr7H/ZLkvktLCO6O22yT5rbaTYXqstutxK2yyx65L7LrvjqtsrkhYCK2m3Pu6qK7/41jrndFYC3OlwZ7KppgJjJsxwww4/DHHEEk9MccV3fEurKpGBdZdZf8k6jGEezzUWbJ6qNWtlBG+F8GwrY0Wbyy9bFfMujE6FnM03R5VzE/dm1bMR8fJ8cnXzVhX0MenCXLQ0CWqVtNFDPxW1008DDarUS19VcxHlMt2y0udinbLXY5NdstVng61xMGtDfaoVX4eFG8YzeGv3heGK6x7fwcJ7tbmB+51vje0ae7S9U3f7M+L1Kv644P66a2eftxbyOjPmTdvadZthJwxK3haPTnrp6hQAACH5BAkIAAEALAAAAAAlASwBAAL/jI+py+0Po5w0gYtB3bz7D4biSJZQhqLmyrbuC8dbSmfyjef6Ltc+xgsKh0Ti73gpKpfMJgeJdEqn1CUUWs1qt63rlQsOiyfe7/iMFpfN6bZbuma/5/RdXF7P67v36P4PONLnF1hoSDFIeLjIaJH40xgZ+QgpaVlI6XO5GZhZwwma55kSWjo3qmKqioZqs/qq1qoBS7slW4ur1ZrLO4XaC+w0Gkys5FmMXPSYzCyU2AwdFBdNLY1XjX1Tmc3t3P0NHi4+Tl5ufo6err7O3u7+Dh8vP0/PGqAxWw+Df796pL9C0aQyAEMQHLimYIc7jQYprPDMEKWHESYCOkbRAcY9/8MyLujIEaTHA7/07BpJ8iQdWflG3qrDEuW9lytpemTZsg3OnA9x1ox50+cpoUFt6iRKcSfPMztdIj0KtKhKN02lGmX1tGfUN1szZk3TNelVqCVRjiWbSaaBs2DLmnULc6NauHEtql2b9uKyu44iYnLIty/DQ30CMyjc8KDhw142YVl84l8pfEmWQtY4k9/lzZw7e/4MOrTo0aRLmz6NOrXq1axbu34NO7bs2bRr276NO7fu3bx7+/4NPLjw4cSLGz+OPLny5cybO38OPbr06dSrW7+OPbv27dy7e/8OPrz48eTLmz+Pfh7lfuk/8rP8RCD5xwsVi58GET94wBX5d/+3q9Fe2omkgFzY0ZVSXgdOlaCB04WVmYPRVdUggRNSGKGFzymVz1fOcTgLhhuCiBeEzIEYoofLoUiZiSuSmCGCL6IYo4Yn0ihicyy2yOCIMLqo3I4lynjjj2zNyGGFAF6YpJICSkcjAjb6mKOC1TUpmH/UYVkgYtnlKOVg26no5DZjHpklDfcRidl65bHZXmRPxlmflnR6IOadgjSmZ0Bm9glooIIOSmihhh6KaKKKLspoo44+Cmmkkk5KaaWWXopppppuymmnnn4Kaqiijkpqqaaeimqqqq7KaquuvgprrLLOSusJGYLK56VeTjpnoxIm2uOhQAZKJqBcEnqsoFH/hlLZWzA6polYyyIkGUA7JiFJrvVcC98fCenDbbch2SdPuOLW9a164TKyazzmLuIXPOaeO1S777xLmJ3tzEsvVfqyMy+8/wK8br727huwwfq5W7DC5MrbsER5MsxtYg9DXDG7F2MsZLbXlHutJfRZ2/Elf5I8LSeaScQeUyymNrIuz5K2cBbJghYvFUqZZqUvxUIGpzLBeoam0FNu9rPROeMMpjBLM9200+nSPLPNMVNdNRjr9Uv0y8qWbGzIYYvdZ8R34ns22mlnvDbbdCbcNtlvqx0n3HF7fTfeeWfdntlzu7131OnJXTbYY/Md+NB6In540YsnnfjThio+ec++Dvb66MGSbmwpj0BwTU4BACH5BAkIAAEALAAAAAAlASwBAAL/jI+py+0Po5y02ouz3rz7D4biSJbmiabqyrbuC8fyTNf2nQH6ruP+DwxCeESi8IhMvopMo/IJjWqaVJ70is0qqlyA9gtGdsfhsrk2Jp/X7FQ63Y7LP2/4/I6v1O35vj+xx/c3mBcoSIjYZqiW2Hi2yOgoCQbJNXmpVWmJyRmlWdUZqvQJKvrlFYB6R8pkirWpyFrk6vkWK7tDOxrIhpurmwT56NsDHKS5Rmx8TGrmuwwkO8wK/YPrTF2N84yNrL3N3W34DR5eJkx+Q1w8bZuuvn7b9V6uHOfVqkpvs86+/7+hnz6ABCkILIhQT7+EDCUsbAiRwcGIFAHFq4gxlb2M/xUvcuxo7mPEayIxSitpMhvKlJVWcvTm8uW4mCL30FyJD9TAmyVz5trJM6jQoUSLGj2KNKnSpUybOn0KNarUqVSrWr2KNavWrVy7Sp0F1KurQ2I72SwbahHaSzDXJvrk9m2zuH9O0i1E8u6qkHqTbewrzy7gdoIHn3toWFzexJQmMj6F+HGmyJKzUK4sxTHmVx43X7ns+Unn0Jn5kha9+HRplapXw21teS5szuhYUJmNobabebgtzNxdp7dvsiR0Cx+iMZ9t48cdGghrgnXzI9KnR6tuvR727DT+cudn+nsM0OKXjC5v/jx6F+TXq9DsvoVA6PGjt69/4j7+4vr3j//o718IAAYIgncE5mfggfYVpiAKqTXooGwQvvfahMu1ZCF7v2VoW3LucAjDhyDK4JMV9I2IYooqrshiiy6+CGOMMs5IY4023ohjjjruyGOPPv4IZJBCDklkkUYeiWSSSi7JZJNOmpScRk82AMeJSPLyJHNHSmgkg0M+CKR6Pg5YI3xjmrnjfFaWqeaPavqT5ptuvrlmjHTW+eKdc8rJ4514uujnmXzGSaeg8+15qKFo5jhoj22GmSikYvY5KaFeSrodpm11WaGSWiap1pQewiKqRSaWeg6qDzSRiqqm3uYqcU6eJSqWWdra5KdbhpqrrkX6SuSmoAL7Ja9MElvshsf/Krsks8uKOGVwqkYybSmubtHDn9duy2233n4LbrjijktuueYy6qGU3ELbK63PIqsovJZyGWSC8Waq46Nx4aNYpVaV2Eps+m6FK2qNXoXhLnpiRe91C1cFpnaFQhweeIFORaZ8fv4SVaQ+bMzxUwNbvPFXB3cHMpxLPUxyySKzjHLKL8M8Q8oqJwUyPDI3tTMaNjvVc8w58xw0iUXj/HPLNCOVtM8uM2WztgteDHXTQk9M9NFGL8101DpjnfXTSmfMk9cfj1y11jWjnbbYX9u78tAOVxy32xI3PDPXbwvbMdXU4Q2V3UIkzLDec7OLMNiuwerVyZ+1yu++i84bMaV0GFPOt5CXap45pwW3Sy2qjJ9Leummn75VAQAh+QQJCAABACwAAAAAJQEsAQAC/4yPqcvtD6OctNqLs968+w+G4kiW5omm6sq27gvH8kzX9o3n+s73/g8MCofEovGITJoAAQCTqYxKlc6qtTrNanvX7nULDsO85K/4jB6V19i0+41hy+H0+kOOh9r39TyeDwjn92enFyg2mOe2dgiWSIio2Bj1KLn1OElVOXe5mXm0yTkV2vYpRMqmhepkerpKlvVq2Ooj6yVly0rLlWs1artb21uaNDwbfGN8bDSMvKO8TKTsrDOtaUyNg025nZ3ci2vtXdN83T0+Ax5ejk4uGyvenv76ey4/H9ppfx9Dqq/Oz12iSAADCoT0D5jBHKII5lr4rIlEOg8hWgxR8aLGDv/vNnrkQO+jyAz+RpqMU+mkyguYVrq0gPClzAm3os28iTOnzp08e/r8CTSo0KFEixo9ijSp0qVMmzp9CjWq1KlUq1q9ijWrVodfbG7dZelrsJRiwZItmwkV2kkd1/Jp67aPwriCMtJdVPAuV7h6w8Trq+ovYHjsBhMubHgd4sTm8jJubPcxEmiS6zmuXEQwZmb7Nktb7Dnz5dBDRpMuPfc0KL6qOattrbglbG5nZ8duaPswo9x7WXnlDZzareCOYhJfPej45NrKg7xu/mMV9Oghp1dLbd2G6ewuQHN/0fk7i/DiV2gur4Iy+u7k15eA9tu9iPPyScCvb749foz094P/6O/fBwAG6IF3BPIX2YFqbKdggdg1aF91EC4h4YQU5mNhChhmmJ8fE3HYIW4gjtdEGSNqd2KKKq7IYosuvghjjDLOSGONNt6IY4467shjjz7+CGSQQg5JZJFGHolkkkouyWSTTj4JZZRSTsnWh1QesJuUxjXpoZMDefnlkp6IyZyRJSF55pFpmrmhmm2yWWaRa8IZZpJjkpkcl3mCGRafJk75BCwHPlGNRPF9JyKTddp5p5tvCskakA/2aGCO+tWoHqUDygjfoS926qmLoIbK4qg6jkrqiqZaiiqroJ7aKo6opnpirLLaaiOuN65666uw3sdjp5pm+uulM256rLGY/yY4bIWSOgvpo3I2ymiffg53pQG0ZutNoCVma221e6L5HJHQ+sjgriVOWiyzuwK7o6+uwvsur7nqSuOs22ao774W9usvDYQGvBTABLOXylcGozauVQtTJ21UBh98wrlNTSyMxRc/zFClSU1M8XzKFoVxx8gOVbI29DqV8kHEbtyvycI+xbHLKxcM8DezQpWzzvYyFbPP+H6sr9BDE/0zPkXznLQMNcN8s9JL0xy11EcrNbPRO0t88nhPs5zuGF8zHal2Y4MtXcZTV1UuDy2zLRvEa2e1pdpbl+VtyGLPHWPQy979t7z3Np1s1r2+PO/IonYNo+KcutvsnM9Kbu5Aeg0XniiX6/rGbeee81QAACH5BAkIAAEALAAAAAAlASwBAAL/jI+py+0Po5y02ouz3rz7D4biSJbmiaYdoLbuC8cxQNc2K+f6zvf3b+sJh8RiBogMGpfMpjAJpTmn1GopirVqt9wJ9ovrisdacJaMTi/NYLX7nWN/4fT6Sd626/cc/JwPGOjldyZoeHhAWIjIGKi42BhZ9xglaTlJmXS56ZapyQk65okUWso1CmSqWoX6s/rq1FoDS7smG1aby3OLq+s7I/srHNc6bAyDeqzckrzsfEf5LA2tOG19hXetTSK37T3y9y0uIjU7fo6ern4VwNK7Dj/4GU/PwFaPn5idD/+46X6DHwiA1RrlEbjBEyKC4RBaaObIj8OHEAH5mxjhlsVo/xgh8NpTsaOCj3aKiVzA690bkycRpCwZrKXLl3RIykwpBQ5Nme1s6tTIE6dKMjh59vSppmhQpGmULgX6k2lHp512trSalOrVmDWlioQaFezNkCu9fiVblqtRAwpBql17tCCft3AvbhwFF6VEQ2jzxoUUMZNfB4APcRz8AGA7TnIRK+s21LEwM5KtMQxYWVzkzJw7e/4MOrTo0aRLmz6NOrXq1axbu34NO7bs2bRr276NO7fu3bx7+/4NPLjw4cSLGz+OPLny5cybO38OPbr06dSrW7+OPbv27dy7e/8OPrz48eTLmz+PPr369ezbu38PP74Khovlm2hov8+9/Pr38f+/YNd/8gT4kHt4VUBKeix5VMl5CzZAWXli6XVQeGb9VSF4Zu1l4YYcfoeVPh92JxSFI3IXIluNoaiVioR0OCGG+4HYoowR0hijjfiR6NWKPOaoY4MaAhnkPDD2JWKGQz5oYmE4tsWgkBIeOGBAmy1JYEZH1bfeYQJW2c2XFM0o5piVXFlmRqSgmWaBbb4JZ5xyzklnnXbeiWeeeu7JZ59+/glooIIOSmihhh6KaKKKLspoo44+Cmmkkk5KaaWWXopppppuymmnnh7BFpeF7sinf3l6SedlJ8bJZJoXGoWDO4wReVWQkQjFJkJh8lUirC8G1utWWXaFa679QAlTscb/rtNqU8qa4xCtYjwLbbR0OUvtspqlKEq2OQkULLbZ6houGt5+mw+uaXnLj7JZnQtusVXBi8+z77LbrrvmnotuPNTe+2+69u7Lr8D6EjyuwfKKG3C9ByPcsMMLQzywxOrOW7HCNU6bcL4XY/yxx+VSvLG/IYPMbT0nA/wqPSWT3KzGMTM8s8zIJluzyDfrcS0rPS2mbSxIYiJYF0p2i6ogSU+xqtHD8rqrFUs7HbUkN25BJVFXgyJrEEH7kHMZRqLWcn4pmz3yfyV+7eDEameM9sP24Rs33PHRKx/eeev9Hr9sY9lx3wXPPTh8fhNeuOF8G3j43nTfvTjjgUP+OOV2Kit+ueUrO+42f3K//bLm0nLes4Cjg77zm1nXOXWqVe+pqit/swq0qB0VAAAh+QQJCAABACwAAAAAJQEsAQAC/4yPqcvtD6OctNqLs968+w+G4kiW5omm6sq27gvH8kzX9o3n+s73/g8MqgDEolGITCo9xqZzCY1KF85qc4rNAq3cYgCgDYtp3TJxjE4PzWa1+/1hy+H0ekXOtuv3VHyeD2jnhxdY+DY4Z6g4hvi3+DjVmAhJqSTpWJm5dVmmefjFyNnlidYZKcpFqkUohZqqejoI5WoFG3U5S/tkaynaq+vFm0T7CwwmLKQ7bHyMvOkKmmzsHDS9rEz9w1zsm+3DfIaE7c0D3izdTV4OvpSurmN+Lt74rm1+61f/Hd+Kqb++LQuYK/L+7YhX0KDCCfcWOqTA76HECA0nWmRQ8aJGBP8BN3o00PGjR2AiS5IsKZIYSpPuVn7k5HLlQEQxXc6cVDOmv5w8Z0bjCTSo0KFEixo9ijSp0qVMmzp9CjWqVG8JpzpMVdVqNpxaqdHr6lUSWF4tx2ZSabbSuLSQTrJdZO2topBy+WSsq+cu3jp69x7q61dNxMB8ARMWM/iwG4SK/7Jr7Dgu5DSGJ2OpbLmf5Myh3HLujPZzqdCiR6MqHVks6sUwV8NR7fp1vth5O2Wl7fhLuNu4e/v+DTy48OHEixs/jlxQcjq1liMe5fwy1+jzWFG/Zv36M0K8tdeA7b0HrvDiwZPHUfY8mfHqc7Rub+M9/Pjm589gb389zfw3vvL/p5/df98FKOB9OxU44CsIAjTQgg4+CGGEEk5IYYUWXohhhhpuyGGHHn4IYogijkhiiSaeiGKKKq7IYosuvghjjDLOSGONNt6IY446GvVEdzZOl6MsOtY3Y3ovnkbjWi56tiSTK07jo4h0qYjZiFVKeSWIiaG4ZYpdmsgYi1+C+ZiYZbIQpXFZanBTc9edKYKQ0U0ZB37IbcYEknc6yUGbRgpHWp5KqqlnnXQG5+d+IIR5nJ2CrombLGkyhFA4y80xKaWVZkpbosGQsOmnJIYqaoiklqrlqZamqiqnEba66oewxtrhrK4+OCuWuZq6K6ut8tqrrMHWOqyHxRL7q5XJ/+pKaonLKtuss9GSWamXm1LJqLVwassnt4E++W2Tjso4bo2z7XhAoj+hy2677r4Lb7zyzksvR7qdceuS90KHrqI3ylfkn+BCQ+6gcjWYbzWHdgVkLHha5Z90204FcC6Q8kiwxRcT1e12GwM1sT3VRvWxDNMyNTI62aKcssjXNhVqdS0rdXJ5MbN8s8szH/UsgztjfKrCL9PcMzw1A62qx2MOdax7Qydlq84lswSr0gsLFbXVHXPcNHor85y11AaDXbXQDyNdtM/hkp20zBnD3LXaRBKdttj+OhX3PhGT3LZmBEJVtzj7Kshw36vsu+5YQVP79KiNS/u140tDe/aJIRt7KzCXbxdcbox7B3lgv6A0WG/ppp+OeurhFQAAIfkECQgAAQAsAAAAACUBLAEAAv+Mj6nL7Q+jnLTai7PevPsPhuJIluaJpurKtu4Lx/JM1/aN5/rO9/4PDAqHxKLxiEy2AMqm82kASKdUqPXKo2q32K7XtQ1rv+SySIwem9dsS/rNZLbn9AT8Xs/X73y9v8zX9zd4FRjYJUc4Zyj4lKYIyIindAiJJdlohGlphTmp6cnp6AkHSipKSfpmqoqapLo6BFvlWjT7KHRLWyury5Xrm8gLFKwWVCw1DIws7MOsfPy8XAz9w9zcc11NTD3dvZ31zS0NHu7bS16uE0x0ja1+o2urDW9+Op9en9PKKq6/H+oIvX87GKVCRnAcroPsEhILMAXipYYOK27wZzFjhXP/Gju6kecx5IRbIkuODGgy5YN7Kls2MOgypoNPMmsyiAMRp82dPHv6/Ak0qNChRIsaPYo0qdKlTJs6fQo1qtSpVKtavYo1q9atXLt6/Qo2rNixZMuaPWspDFpRsdYSyuR2T6W4dCTRXWT3LhuUer/w6+uFJWBEggd3Kmx4FN/EijcxPuz4MZS/kp0srsxwLubGcDc3MeS5UOfQnI2RJvFOhdrTIdqytjz6NTrQstvlzFs7GuXcBWfxzgbyN8DgwmtgLA4jH/IXypcvae5cNfToJ9xRBzPwuvTs2qtz727COvgU4sej+G7+DPr0rRGy9378fXuK8lHTr2+fOP78u/eX//Dt33n9BfgfbgRuF9uBAi6kYHI5SZRagxJOSGGFFl6IYYYabshhhx5+CGKIIo5IYokmnohiiiquyGKLLr4II1IRxviSazTaAdONocx4IkkucrSiez1OB6I7PG5o5JEZJpmMiExGFOKTTX4oJZQeVjllh1gqKeGWWWroJZcKhqllmGISSCaHZp7p35plbvmml2qaGWeVV8pZp5R3wrmnnlRiWaSdUfo5aJIkPlmioSaWt6iQKMaXqH7CJcLmfJfxFocYMVyam2Yr0IZcZMzdlkylniHGIoA/+tiipI8CmaKjQ94XqayHEvmnrSMyuut6heoaKK59Qjosrb0KOyewv/8aeyysszrbKLTPqhokq63CQuOA1xqYLag34sjgtzc9aKq45p4rFE6lomsHqeHq6G4pOmr7qrUqMtustE76WiyxyfKaq5H5CrwswQEjejCTCSP8r6ANEwpmmg9DjIS6615FZ2aaVuWmQDlGlXE7qCrV8WycyiixbtQyFbJCK5OMp8uuHpWyM8gCVbM9/g7Fp8z48tyzzQCjTLHON/sEqM/KEuWw0IouxbA1UcM8dG9TJ2WwyllDze9wCkO1s9dPOxW22FVzjW0/W4N9stZnN8Wtx19blem7Fc/NlU4TjV3w0kiuHWzXE+sbOOF9vxytvfUivvjI9zqe6sffeopu3bcMsYt55ppvznnnpBUAACH5BAkIAAEALAAAAAAlASwBAAL/jI+py+0Po5y02ouz3rz7D4biSJbmiabqyrbuC8fyTNc2CwT5fvf+D7QAhsTiUBdMKpc0o5OIZEqn1M/zaqxqt9wH9gvtisdSsDlHTqt75/P6DW+13fG6XTRv3/d8TF7fFyjo9Wc2eIhYCIjI2KdI1xgZ9wgpaZlGaXi5OZYJxgnK5fkVWko1imWquoR6tfoK1PoES3sj61Sb23R7pOsLwxv2O6wSTHy8Yoy8XHLL/NwsCz0dgkp9DeKJvd2Ryf3NURgFTu63WI5+seOKlu6uweOIFP9eX0Habq+vkLfvf6Donz1vAt2NKkiuFUJw0hZi4+XwGsSI0ILlO8TjIkUK/xYZHZm1cYJFjXwqhWwwkmSdOSchpBT0pyXKkY7EyeT3smbMmwly3iHI04DPn4+CAqS5h5LRo8qSKl2qo6PTokuRTqVqVOpVm1An6twJNWrDkk/Djv3aLyxToDDBqhVbFmPat2u5yjVJd95cSXjzwu3r8W8vvw7wmcpImOO8xIwbO34MObLkyZQrW76MObPmzZw7e/4MOrTo0aRLmz6NOrXq1axbu34NO7bs2bRr276NO7fu3bx7+/4NPLjw4cSLGz+OPLny5cybO38OPbr06dSrW7+OPVQ8ldlNfOLePVxM8OHvCXZDvnwEa+rNKWwvsmn1dVDSW41OnxTOoc7d1v+VzxxWKdXXnDbnaaXcQQMWsdyCCB7noFfGRfjgcBQCKNyFFQKnoYQWdugMcSB6GNyIZ5VoInsipqhihiweVNyLBn4oI1Yr1hhQjDjaReOOLEHo4zk6BgkYikSmkuCRSDaoTYQFzuhkfwIOiN+Brixw33P5paLShtBt+dF6J8LnUotk3qNUemdiaeWSa24g5Jvh6DWOnHbeiWeeeu7JZ59+/glooIIOSmihhh6KaKKKLspoo44+Cmmkkk5KaaWWXopppppuymmnnn4KaqiilqfmooYxOl6iAZV6p5l/jqknhnhm2Sp/di44q4O56koYq2toqBaXgQBbVZxvgBgUj3D/dMhTXGqMeNOMvyJ7kqtimFjte5hAuxGJonBLUYjbUhuRl1VgG66sWqRYrrmngLuQrevCG6+7ZdArkLxb4JsvrfMym6699wLskL7nElyvv/temK26/0YZsLddMBySwgvz2q3AB1Mpk8TXctyxuMta3K61zzocsbR2eFwxjEm1+aNZzpLFVrDi+DpuPzh3C3MWlsTcWJGBfUTPsBhFhfTOlIEZpqNAI2rjoCoDqu2r1ihNqsh7akwmyWeCXKvBXYMtJ8RlY3w22mtSeCvbbas9ttlfu502rnXbfbfY4dGdt9dZk/0m3GsD3jesgfsdt9axsvy2yXlWHajLUkdt6F6KDDItjKSIjcp5598UAAAh+QQJCAABACwAAAAAJQEsAQAC/4yPqcvtD6OctNqLs968+w+G4kiW5omm6sq27gvH8kzX9o3n+s73/g8MCofEovGITCpVgKXz6QRIp1Oo9cqjardNrPfb4oqlgS74jP6M1+S0+21hy83wuj0xZ9/39vycD5jm9xdYeDWYZ6gYhSi3+HjUSAhJGSQ5WZmpc4mp6WnDqfc5ShPqSIoKYzqW2hq2yuoqewIrNvvTRCVYu3W7I4rF2+ubkxgsXEV8M3iMTKcsg+jlDF0j2cxbPcN5KKxdet1d+x3NLW5KXn45jZ6uah5ctu4eE/oFT+/SDsacr97o5s8zf6/CvamSjKA1gwobPmDoMCIDgBIrLpBmMaMCY/8aOxrIFcujyAO2Rpo8iTKlypUsW7p8CTOmzJk0a9q8iTOnzp08e/r8CTTok4FCXa0pmqof0kog/SxlOu9poVVSp1Ktuicb1jreth5E5jUg2LBonBElO9Qs2ntmz65N0vYttrFyGcWtm1Yt3iVt2+xVcvcv4MCCI+ktjIQwYiOHFzOm69iw1siJx1GGC+sy330vurjVHIFzik6gQ0NEQbG0BIyj8amGcGpF5ter5YEsaJk2Lsi6NzXuDarvZ+D6hBMPLnz48dbJlS8v0VzXc9zNpxeP7tc6c+zOtXPgLt27CfAJxZMgX958CPTZ1ath7/48/Pgg2Len/30+/g72u+//N03ef++hJyB/BBaYX4AIJsjdggxG5+CD1UW4AXgUVojdhRIqpuEFE3aIIYcgeijiiCTyZmKIs6U4oGgsGujai/WdJuN6th1VIxMf3eZfjj7+CGSQQg5JZJFGHolkkkouyWSTTj4JZZRSTklllVZeiWWWWm7JZZfi9bgljl6SxFGXqWVpD5YuSpnblG1CiWKT1EQ555O/MVkiknka2RecexLZp5PGyflnkYHiWaiHZSwKJnCJruZIo6o9+hBr5tWJwZrPYXpimtrFCelk1nXVqaibrhjHnctdleqho8Y4wYevntnqoN4plSmEX95YkgYWxtfUojDqaqiCgBo7pH5B/yq7LLM/2nfsgUJCmyy1zUp7LbJAWpvtr9M6+6y23RIbbYbFNqinuUequy657dqqJLxLUvotqPGaSierVGq6L61aNtXrmBsxKnDBBh+McMIKL8xwww4/DHHEEtfW8FGSCsprSGZaqmZUV+rrJsj5olrVxUWQihTAupicBcpB4TqYvTl5XJnMNvErBL0uvTmEqzPjm7OqNXnD8jtCz3R0D/IOnfQvOqe0tA8+05QcEVMjXXXPT5sk626cUu2u1E23FLbYNu9cttJnk512y0DLhK7WPGPNriUi39y22bAy3XXQe4Odt9cc/9y31TDvVHfNGvuUOFy2CZty1vdGfe7WMidS/u7a1X49r+aV3y0oyWx62jGNVQ7OZWwJezZx666/Dnvsss+OUwEAIfkECQgAAQAsAAAAACUBLAEAAv+Mj6nL7Q+jnLTai7PevPsPhuJIluaJpurKtu4Lx/JM1/aN5/rO9/4PDAqHxKLxiEwql8ym8wmNSqfUqvWKzWq3XEDA6+WKxxaA+Ywmq9cJtNvNjovf9LP8fq3r8fyp/t8XyPS3J2iIRFh4uBiUCNjF+OSoaEUYiThJVzl5aZSpSfVp1jkkCidlmkb6k2oX1aq6ygOLCusqO9v6ahuLi5Nay3vr+2sKJfxGnCMajDyqvMx57HwKfZPoR91rbVNXpb3NfY0FHi5+LlE+jM7uoL7eHq/wLl+/8P5sr/+lvu+P708fvYD2BhKsV+6gQHAKF1JrWPAhxIjCJu6raPEirYz//4BxJMjso0JsIjOCGRWmpMqVLFu6fAkzpsyZNGvaHEfpprVPOolt7NkJI9BFEof2YWiUj8GkawAyZYMv39MuUVNO1VIV3tVQWaVu/dbV69ddYa2Obdb1bLayZtUOYqvVLSa4ciXBFVv3yF28eYvsbdvX797ASv4CJtxoMGK9ihcLvuvYU+PIQiZTrgz5cim6momw7fw4LWjPYUdzODyitOkyOVNXXV0hU4mssNMZc720doOfIvrpfsCLRMLf7oSG0Ea8OLLZwZPvLipcl/Pn0KPLnk4dOYqToLADH+7dh+/wucaTj2b+/LXc6ms4bb8+PfwZ7+fTqG9fBv78MNjz/+8v338uBCjggNoVSN+BCOrnzILuNejgg7ZE2M2EFMbH04XoSaOhDo50CEQyII5IYokmnohiiiquyGKLLr4IY4wyzkhjjTbeiGOOOu7IY48+/ghkkEJ2wF0aqA1pG4dIRsDbkgwY5+QBDR4JJFJREvhjVEi+NiRtQYqWpWo+ftYjZzxmtiOaOVp2I5s2/pWmmzTCqSOda8o5o5046tmmmnvimaeZdwo6aFllknmomGcqmiiXVTr6qJZd+heplUuCdyWEUbbR3Kb3SOfpPfwoGao7oyZDZYRFxlVqdo+0qhypsBoA6qyn3jbrcq1q6qmCmVa3paWXYjqpsMUa+yWWjf8Sm6yycVI6prOLSlsospX6KiS0YVp7ra6bctust73y+q24pVpo66rX2UprSOwioG53785zq5Hz3otvvvruy2+/MoLxRcD+tmuJvri+2+S5ne5qrpPYBgtutBFPy+y21P6537IX1wimxRk/CynFkno8ssYf+1WvW4xKRtJUhs4l61Avh+auUSsnlnBPN7OysM4d4wylTj+HCKxNQ4v3sNElA03uTSHzPHFMJ5cXNUza7nC1TBtXuLVLVRfTtddNYxZ2Sw2TXTFQPZNWttUHM9a21B+mynTST3lDN9pfY7x3n33zPXa2dgseOMRr/4ourInnWqvi9baMb8yRa5L3wJYNX4555ppvznnnno9VAAAh+QQJCAABACwAAAAAJQEsAQAC/4yPqcvtD6OctNqLs968+w+G4kiW5omm6sq27gvH8kzX9o3n+s73/g8MCofEovGITCYBAYCzqYxKo86q9TnNan3XbnULDs+8ZLH5nCKrmei2m7NWv+d0Slxez+sRd/z+T9dXBkjoJjhYmBh26KXoqMXY9Tg5FXlFiYlk+ZXZSbTJ6Sn6AzpqymV5qrqzueqaw/gqa3M4a1tzd6tL07jr+wscLDxMXGx8jJysvGwkx8YMvRAZTd1UWp0MeoltrL3NHeyNCK4rPk4uwXT5nGe+hh7R1+7uBy89bUj/bp9w3aYfhx8fbWgABhTo7ozBg/boiVnIEJ2+hxD3kTMIpqLFi/8Yt2ishw2ix48gqYmERLIXuIooU0ripjGLy3MmT1aa+a3aR5k4raxkebNnKJ1Agwr9WZSKUHYhbUpZigWm06dHOS5s2VPi1ZFZtQJchLNhR64u+X0FW9asQzMzBVoT94+kWwPm4sace8Cf3alzUwXairefoD0YmQbOW8ZwHYeKD/ejVNexLYKSfdVqXHmWukaYM3v+DDq06NGkS5s+jTq16tWsW7t+DTu27Nm0a9u+jTu37t28e/v+DTy48OHEixs/jjy58uXMmzt/Dj269OnUq1u/jj279u3cu5Po7F3H5pLhacUqb14v+hYJ17uY6D7N2fgmktJnoA5Kurv3B27/vLdTf28NBqB97rWiQFvxeSNYWuhFRpeC5a01oFwTwtdVeF9lyN1VVXVYWFjdQQXYdiTOp92JKGanInwptkjhizDCBeKMDNZoo3rX5UijiTwiiOOPtXgnJD4jhijhkROJqOGGDl7YXpJNQlghX1DqaOGClCVo4IF+JVhlewKGSR4fZG45JmJl4idmmtJAAV4DVLpZgo501nmmSneyMJ5Pce4JaKCCDkpooYYeimiiii7KaKOOPgpppJJOSmmlll6Kaaaabsppp55+Cmqooo5Kaqmmnopqqqquymqrrr4Ka6yyzkprrbbeiqtZ+rWaC6pGhopmpz1uGmOmK1Y6lqVW/44myZ9KLZsZgWx1Ge15GQX4WbBU8Vettkuk5NmcSjx5mIvjkouXuZqg29exRTCZbrLrgltuic1IiRC0QcDbrr2f4KuWv++yK5a+pBBcsMBDAJywvANn2a/BQNAbGLf3YlsxtQtjnLHDR3AcsbsfSwwPyfsqHHKx54ocr7rbiluZy0bdCJrMM38pWpsU4cwszQUNmZq3CuW5q2o86+GsaX3+Z+qauT7N2tJD+SpPqUACe7WwPhMLs7Iqe/31pB6LPTakJiuqcaMWS5o2o2ub3faiID/6Nt1xy302onejnfehfetdNtw2kx02pYUjO6ymUlv7qZ2cHi2qPEk/3izUlghfjnnmmndSAAAh+QQJCAABACwAAAAAJQEsAQAC/4yPqcvtD6OctNqLs968+w+G4kiW5omm6sq27gvH8kzX9o3n+s73/g8MCofEovGITCqXzKbzCY1Kp9Sq9YrNngDcbgCgDYsz3bJ5jE47wOY2Vw1Xu+fvuNz9ndLp9vC+DfU314clyMdkiEdIlXiY1Ai4GAX590jpJfl0WWm0WZbZ5MlZJAoGqlQ6KlR6ipqqGsTa2vkqSCQ6e1RrO4Sbe7vLu7r5CxwM60NcPHyMnEy5zNzsKO0cvTNtaCx8/Zy9p0vd7f092Pn1aToOVA6+/q7R7g5PTyEvXp/PcG+u79/AT9G/gQcCRiKIEJ1BTAkHLmTY8N9DiBHzTVRX0d/EjP8SH3J0uPAjyIAiO/IrOVIeSpPtVqbM5pJgy5gvd9FMOO0mQja1dEZ8lcfnT19CM14qutIaUpcYlzp9CjWq1KlUq1q9ijWr1q1clzTtWtPLV7DjGpFdB23s2VPE1K5dlOot255yJdmsC/cuXjg599455vcv4MBivhEuDPOwlnKKszBufOUxZEaSJ+sxbJly38yXE2/Bx9kDZhOQQoPwLIKo6XibQwBdTabZiGCwY9NOPbi2vdunW+uWoPfDzN/AXwsfTjxCXNcqkxdX1vue8wnQcJ+cTp0bc5LYgSv89Jl7dx4ex5Mvbx7HxfQ61rO3cdHt+xbx59eob38G/vwx9vP/f+HffyzEJ5+ApLlnoAsbJaggggyusOCDA6InIYQGVdigeBiqcOGG9F3n4YTIhWhhZSRyaOKJKPqmYom8tZghXTD2t9yMNKhmo36l5XgeaDyS92OQQg5JZJFGHolkkkouyWSTTj4JZZRSTklllVZeiWWWWm7JZZdefglmmGKOCQFPQZGJAU8+ogmQWWw+4Mmb++Aop3F1yshmbmjqOSaLYPrp5WhiovYnoYGm2KWgX454KKBbMpqooY06qqWihcpGJqVcarrpi3sG96mdb4qKQoEnylLqPDNCV4JZpkq444GlvVqhUsfR2SIbZ6ZKap+gZsrnpcEuKmmnlhpbbJbS/xELKZYgItuslRpW+qyy01q7LLSIXtkhtdVi25y2xzobrricUpntpOdWWa66njKLqa/DCtvroHiOWqOcBbGqbwLV9TunrQAvoCutAx+McMIKL8xwww4/DHHEEk9MccUWXwyVwQoLDLCbDPPbMch3oqrvvcCaLC/Ka/VjRbxnJdKyy12pCbMUyV7VViA3U5UvIjtLpXI4P2ccNClDP/Wu0EcjtS45Mlf1NC1LFzV1j00LNW4vVfuUdTVJA92110UTfbXVX0e17Ta/8py21mejHbbYuEK9tdlzs1233UfNnLfesW4Vt9F7k1W22zUTXrjaLK88byDf1YFX1PbWOznJIxzfHeq/CA++8eEPq4px6KKPTnrppp+Oeuqqm1YAACH5BAkIAAEALAAAAAAlASwBAAL/jI+py+0Po5y02ouz3rz7D4biSJbmiabqyrbuCx9ATNf2jcvAzvPBnAsKh8THrIdMAovMptOljCqf1Kp1I80ir9yuV6ENb7/kclGM3pnX7Fr6vWzL5yT4m47Pd+xwvf8vwWcHSFiIIDhoqKiHmLj4KNfoCEn5JdlXmel1OanpycTZ+TkqFHpHihpkepra6raa5ir7Ahs7e8tSi0Z2pIZrqau1KfXLFSxmHFZsdSxchbnc1EzMzBp9Nh31DH1NlD21Ldp9850ULj5uU95zzp2Os+771PheGl8tWK+63u6u//rtCr1/8LIJRERw37SDfBLmWJisocOCuoD5m0ijokVb/xgfwiqDriMMU2w4ilSIMFKWk6Dy4dEWh6U3k39iynSy0ubNnTx7+vwJNKjQoUSLGj2KNKnSpUybOn1qDCpQZVJPXqw6LiXWd5y2XiPpddnHsLOCkXXV7CwqiGpHGWybqRzcuAHnQrpnd1E8nXnz7O1raC9fwHMEDya8xvBhxCAFM2Zk+PHLyJLpUK7cRjFmlZc3N3bsuSTo0J//kjYz+jQv06pL12298TXs2G9n0zZr2/Wx3KjZ8l69+7fuVcJFjy3emzjyzKGWF5bk3K/L6BqoZaRJ3cIuNz+sZ78Q8jvwq+KHaS1/mzz6eV3XR2zvvh/0+OyV05dW637L/Ppn8v/vb89/AHqk0YAUCWjgdQUmqA5uDAKE4IO0LCjhSBRWCMWFGLag4YYrROghh/aFOGFzJCp4yYkQTqciihK16KI1MK643YwHrmQjNuYslmOPPv4IZJBCDklkkUYeiWSSSi7JZJNOPglllFJOSWWVVl6JZZZabpkgj1xW0As4X4KH3ZgNsGgmGAOlmYCJbBoAVprEeUkliFgG9yWeWfp2J59W+lmlXH0COqWgVxr6p2yBKlooP4cy2mhtiUq6KKV1Wlqpno+mpSWhmdo5KaifujmmqIPCxyapIR7xQ6sqpHgiVSiguaF6e3RX46rhhSAMqySedwKrvrYI65twopqqqqX/xmmmqaEyy2WHmx4XrbTPjtipg1tqeiq122qbrbWXOhupt9+aGy60eWJbLbvrItssvMkCa+yaxra565sy3nsmMXTyC2d3rgJMcMEGH4xwwgovzHDDDj8MccQSP+Lvw7kinK+ctOpr773yLlvsvB+fqyzJJaer7p7ijotut+5O+zLMMbNMbpTcunxyYQM/drNx2hAGrs+y5rXye2WeVbR8R4dVs9JLe9VyFzlvNbPRHSM9stQpk5U1Q1szffV4U0P9InNRg71vcmdjndNkTVONKzv/Wv31qHXTXHW5a0vZs8x36/034GPbHXK7eeNd+Ltdq7w4zhuDTC/Hj9ebscZPEfMbpncNhynwxJ5/DnroRRUAACH5BAUIAAEALAAAAAAlASwBAAL/jI+py+0Po5x0gQCy1rX7D4biSJbm6WzqeqHuC8fyTEvsrdb6zve+jAvmfsSi8dgTKjfIpvMJnSynmaj1ii1St62s9wsecbfhsvmcGlPR7DZYzXXL5034mI7P6+x3vf9/wtcHSFhYIRhnqLjIgJjICMno+BhZ+TdJaalJh0m2+TnX6QlKeia6Vpoadjql6urFuvQ6axWrRIvrZCuU22u0i+Mr/AMcPHxcU8yCzDyjvNIcDfPMJG1tQs1xvS2S3cUN7pEdTt5BXW52UaWO9oz+1bpa/I6lJr9LHyX4Fpuv7wiPlT9dnQIWHFhHlEGACI/YWminYcJ+EDNJJIbvHqqL/7/mlZHFEcm5NuwglSw1MqQ4Y5/GqTzEa5O3l1I2RvL2jWaDUSZx6nwwSJLPn43s9ZxJ1IJRoUOTHuBz1KXTpxEX4dQ2FUNVq02zQmWK1OtWQ1erZNUKJ2pKsUu5hj07lmxXthYLXT2LIChYd3gN6HXLty9VkJakCkYbBNTaw35ZygzMOIG6nIo9RkZm+fIwYJqbPewc7RRoaQpHW5tketu+1ODasm4d73W+HJRl276NO7fu3bx7+/4NPLjw4cSLGz+OPLny5cybO38OPbr06dSrW7+OPbv27dy7e/8OPrz48eTLmz+PPr369ezbu38PP778+fTr27+PP7/+/fz7+///DyAKMQWIUWwE7vHXgS6spuCCiDQoIGoQroOBOaUFeIsNovlXl2QC9eeaAp/p95WIGd33oFIj2ifhYCvSh4mHnNV3IWTy1agMjRvaCN+Hi73XD4/uPfRje0TmON+RSMan5Iw3UrQkk1Bm1uOUTj6545VYHtTYi1JeiNiGOoIZJpdjtpiXmCya6SKaKLqZJpxvplgUQ/vRmUaJHMaVZ4L8hRhBh3vaBFOGELa5TAnsmHVoIxUy2mikkk5KaaWWXopppppuymmnnn4Kaqiijkpqqaaeimqqqq7KaquuvgprrLLOSmuttt6Ka6667sprr77+Cmywwg5LbLHGHotsssr/YjrZScg1Cykphg5HmCaC4nYtIGn5BighemL7rbYMgsunH3KaFqO354KW7iXtskYmJ/Gyy6a88172IR4UoatmKPmO9q+//WrmJUkBE7yvwANHVnA7DR/2sCkH45uwHBH3dfFHEzNcsRsdU7yxwwuDXK/HITN2ssjvAjyyySuz/LK9dsJbssJ40jyzu+PKlrPO5b62s7rb6hauXNkC7afR1f5GaGEDEjctSo82t+iyVl+NddZab811114rUhuuidnatKtJn/qzqTervXap64Ja86f3yj03pylr+nGneW+aMbN3X3oi3X9b2jfgg1daOOGHI74443HrXbfdj3s6OeU9EpN6OdtDs7p5q0enamCtiTpVAAA7';\nconst DEFAULT_IMAGE_TYPE = 'image/gif';\n\nlet defaultImageBlobURL;\n\nexport default function createSpinnerAnimationStyle({\n spinnerAnimationBackgroundImage,\n spinnerAnimationHeight,\n spinnerAnimationWidth,\n spinnerAnimationPadding\n}: StrictStyleOptions) {\n defaultImageBlobURL ||\n // Content is hardcoded.\n // eslint-disable-next-line no-restricted-properties\n (defaultImageBlobURL = URL.createObjectURL(\n new Blob([new Uint8Array(toByteArray(DEFAULT_IMAGE_BASE64))], { type: DEFAULT_IMAGE_TYPE })\n ));\n\n const backgroundImage = spinnerAnimationBackgroundImage || `url('${defaultImageBlobURL}')`;\n\n return {\n backgroundImage,\n backgroundRepeat: 'no-repeat',\n backgroundSize: 'contain',\n height: spinnerAnimationHeight,\n width: spinnerAnimationWidth,\n\n ':not(.webchat__spinner--rtl)': {\n marginRight: spinnerAnimationPadding\n },\n '.webchat__spinner--rtl': {\n marginLeft: spinnerAnimationPadding\n }\n };\n}\n","/* eslint no-magic-numbers: [\"error\", { \"ignore\": [2] }] */\n\nimport { StrictStyleOptions } from 'botframework-webchat-api';\nimport CSSTokens from '../CSSTokens';\n\nexport default function createStackedLayoutStyle({\n bubbleAttachmentMaxWidth,\n bubbleAttachmentMinWidth,\n bubbleMessageMaxWidth,\n bubbleMessageMinWidth,\n paddingRegular,\n transitionDuration\n}: StrictStyleOptions) {\n return {\n '&.webchat__stacked-layout': {\n marginLeft: paddingRegular,\n marginRight: paddingRegular,\n\n '& .webchat__stacked-layout__alignment-pad': {\n transitionDuration,\n transitionProperty: 'width',\n width: 0\n },\n\n '&.webchat__stacked-layout--extra-trailing .webchat__stacked-layout__alignment-pad': {\n width: paddingRegular\n },\n\n '& .webchat__stacked-layout__avatar-gutter': {\n transitionDuration,\n transitionProperty: 'width',\n width: 0\n },\n\n '& .webchat__stacked-layout__attachment': {\n maxWidth: CSSTokens.MaxWidthAttachmentBubble,\n minWidth: CSSTokens.MinWidthAttachmentBubble,\n transitionDuration,\n transitionProperty: 'max-width, min-width'\n },\n\n '& .webchat__stacked-layout__attachment-row': {\n marginTop: paddingRegular,\n width: '100%'\n },\n\n '&.webchat__stacked-layout--no-message .webchat__stacked-layout__attachment-row.webchat__stacked-layout__attachment-row--first':\n {\n marginTop: 0\n },\n\n '& .webchat__stacked-layout__message': {\n maxWidth: CSSTokens.MaxWidthMessageBubble,\n minWidth: CSSTokens.MinWidthMessageBubble,\n overflow: 'hidden',\n transitionDuration,\n transitionProperty: 'max-width'\n },\n\n '& .webchat__stacked-layout__nub-pad': {\n transitionDuration,\n transitionProperty: 'width',\n width: 0\n },\n\n '&.webchat__stacked-layout--hide-avatar, &.webchat__stacked-layout--show-avatar': {\n '& .webchat__stacked-layout__avatar-gutter': {\n width: CSSTokens.SizeAvatar\n }\n },\n\n '&.webchat__stacked-layout--hide-avatar, &.webchat__stacked-layout--show-avatar, &.webchat__stacked-layout--hide-nub, &.webchat__stacked-layout--show-nub':\n {\n '& .webchat__stacked-layout__attachment': {\n maxWidth: bubbleAttachmentMaxWidth + paddingRegular,\n minWidth: bubbleAttachmentMinWidth + paddingRegular\n },\n\n '& .webchat__stacked-layout__message': {\n maxWidth: bubbleMessageMaxWidth + paddingRegular,\n minWidth: bubbleMessageMinWidth + paddingRegular\n },\n\n '& .webchat__stacked-layout__nub-pad': {\n width: paddingRegular\n }\n },\n\n '&:not(.webchat__stacked-layout--top-callout)': {\n '& .webchat__stacked-layout__avatar-gutter, & .webchat__stacked-layout__content': {\n justifyContent: 'flex-end'\n }\n }\n }\n };\n}\n","/* eslint no-magic-numbers: \"off\" */\n\nimport { StrictStyleOptions } from 'botframework-webchat-api';\n\nexport default function createSuggestedActionStyle({\n accent,\n paddingRegular,\n paddingWide,\n primaryFont,\n suggestedActionBorderRadius,\n\n suggestedActionBackgroundColor,\n suggestedActionBorderColor,\n suggestedActionBorderStyle,\n suggestedActionBorderWidth,\n suggestedActionTextColor,\n\n suggestedActionBackgroundColorOnActive,\n suggestedActionBorderColorOnActive,\n suggestedActionBorderStyleOnActive,\n suggestedActionBorderWidthOnActive,\n suggestedActionTextColorOnActive,\n\n suggestedActionBackgroundColorOnDisabled,\n suggestedActionBorderColorOnDisabled,\n suggestedActionBorderStyleOnDisabled,\n suggestedActionBorderWidthOnDisabled,\n suggestedActionTextColorOnDisabled,\n\n suggestedActionBackgroundColorOnFocus,\n suggestedActionBorderColorOnFocus,\n suggestedActionBorderStyleOnFocus,\n suggestedActionBorderWidthOnFocus,\n suggestedActionTextColorOnFocus,\n\n suggestedActionBackgroundColorOnHover,\n suggestedActionBorderColorOnHover,\n suggestedActionBorderStyleOnHover,\n suggestedActionBorderWidthOnHover,\n suggestedActionTextColorOnHover,\n\n suggestedActionKeyboardFocusIndicatorBorderColor,\n suggestedActionKeyboardFocusIndicatorBorderRadius,\n suggestedActionKeyboardFocusIndicatorBorderStyle,\n suggestedActionKeyboardFocusIndicatorBorderWidth,\n suggestedActionKeyboardFocusIndicatorInset,\n\n suggestedActionHeight,\n suggestedActionImageHeight,\n suggestedActionsStackedLayoutButtonMaxHeight,\n subtle\n}: StrictStyleOptions) {\n return {\n '&.webchat__suggested-action': {\n alignItems: 'center',\n backgroundColor: suggestedActionBackgroundColor,\n borderColor: suggestedActionBorderColor || accent,\n borderRadius: suggestedActionBorderRadius,\n borderStyle: suggestedActionBorderStyle,\n borderWidth: suggestedActionBorderWidth,\n color: suggestedActionTextColor || accent,\n fontFamily: primaryFont,\n fontSize: 'inherit',\n height: suggestedActionHeight,\n justifyContent: 'center',\n maxWidth: '100%',\n outline: 0,\n paddingLeft: paddingWide,\n paddingRight: paddingWide,\n position: 'relative',\n whiteSpace: 'nowrap',\n width: '100%',\n\n // Order of style preferences (based on effort of user gesture): disabled > active > hover > focus.\n // Keyboard focus indicator styles applied by :focus-visible do not conflict with :active/:hover/:focus, so it is not included here.\n '&:disabled, &[aria-disabled=\"true\"]': {\n backgroundColor: suggestedActionBackgroundColorOnDisabled,\n borderColor: suggestedActionBorderColorOnDisabled,\n borderStyle: suggestedActionBorderStyleOnDisabled,\n borderWidth: suggestedActionBorderWidthOnDisabled,\n color: suggestedActionTextColorOnDisabled || subtle\n },\n\n '&:not(:disabled):not([aria-disabled=\"true\"])': {\n '&:active': {\n backgroundColor: suggestedActionBackgroundColorOnActive,\n borderColor: suggestedActionBorderColorOnActive,\n borderStyle: suggestedActionBorderStyleOnActive,\n borderWidth: suggestedActionBorderWidthOnActive,\n color: suggestedActionTextColorOnActive\n },\n\n '&:not(:active)': {\n '&:hover': {\n backgroundColor: suggestedActionBackgroundColorOnHover,\n borderColor: suggestedActionBorderColorOnHover,\n borderStyle: suggestedActionBorderStyleOnHover,\n borderWidth: suggestedActionBorderWidthOnHover,\n color: suggestedActionTextColorOnHover\n },\n\n '&:not(:hover)': {\n '&:focus': {\n backgroundColor: suggestedActionBackgroundColorOnFocus,\n borderColor: suggestedActionBorderColorOnFocus,\n borderStyle: suggestedActionBorderStyleOnFocus,\n borderWidth: suggestedActionBorderWidthOnFocus,\n color: suggestedActionTextColorOnFocus\n }\n }\n }\n },\n\n // On unsupported browser, :focus-visible and :not(:focus-visible) is always false.\n // And it will turn the whole CSS selector \":unsupported, .truthy\" to false.\n '&:not(:focus-visible) .webchat__suggested-action__keyboard-focus-indicator': {\n display: 'none'\n },\n\n '&:not(.webchat__suggested-action--focus-visible) .webchat__suggested-action__keyboard-focus-indicator': {\n display: 'none'\n },\n\n '&:not(.webchat__suggested-action--rtl) .webchat__suggested-action__image + .webchat__suggested-action__text': {\n paddingLeft: paddingRegular\n },\n\n '&.webchat__suggested-action--rtl .webchat__suggested-action__image + .webchat__suggested-action__text': {\n paddingRight: paddingRegular\n },\n\n '&.webchat__suggested-action--wrapping': {\n height: 'auto',\n maxHeight: suggestedActionsStackedLayoutButtonMaxHeight || '100%',\n minHeight:\n typeof suggestedActionsStackedLayoutButtonMaxHeight === 'number' && typeof suggestedActionHeight === 'number'\n ? Math.min(suggestedActionsStackedLayoutButtonMaxHeight, suggestedActionHeight)\n : suggestedActionHeight\n },\n\n '& .webchat__suggested-action__image': {\n height: suggestedActionImageHeight\n },\n\n '& .webchat__suggested-action__keyboard-focus-indicator': {\n borderColor: suggestedActionKeyboardFocusIndicatorBorderColor,\n borderRadius: suggestedActionKeyboardFocusIndicatorBorderRadius,\n borderStyle: suggestedActionKeyboardFocusIndicatorBorderStyle,\n borderWidth: suggestedActionKeyboardFocusIndicatorBorderWidth,\n bottom: suggestedActionKeyboardFocusIndicatorInset,\n left: suggestedActionKeyboardFocusIndicatorInset,\n position: 'absolute',\n right: suggestedActionKeyboardFocusIndicatorInset,\n top: suggestedActionKeyboardFocusIndicatorInset\n }\n }\n };\n}\n","/* eslint no-empty-pattern: \"off\" */\n/* eslint no-magic-numbers: [\"error\", { \"ignore\": [1.5, 2] }] */\n\nimport { StrictStyleOptions } from 'botframework-webchat-api';\n\nexport default function createSuggestedActionsStyle({\n paddingRegular,\n suggestedActionsCarouselFlipperSize,\n suggestedActionsFlowMaxHeight,\n suggestedActionsStackedHeight,\n suggestedActionsStackedOverflow,\n suggestedActionsVisualKeyboardIndicatorColor,\n suggestedActionsVisualKeyboardIndicatorStyle,\n suggestedActionsVisualKeyboardIndicatorWidth,\n transcriptOverlayButtonBackground,\n transcriptOverlayButtonBackgroundOnDisabled,\n transcriptOverlayButtonBackgroundOnFocus,\n transcriptOverlayButtonBackgroundOnHover,\n transcriptOverlayButtonColor,\n transcriptOverlayButtonColorOnDisabled,\n transcriptOverlayButtonColorOnFocus,\n transcriptOverlayButtonColorOnHover\n}: StrictStyleOptions) {\n return {\n '&.webchat__suggested-actions': {\n position: 'relative',\n\n '&.webchat__suggested-actions--carousel-layout': {\n '& .webchat__suggested-actions__carousel': {\n paddingBottom: paddingRegular / 2,\n paddingTop: paddingRegular / 2,\n\n '& .webchat__suggested-actions__item-box': {\n paddingBottom: paddingRegular / 2,\n paddingLeft: paddingRegular / 2,\n paddingRight: paddingRegular / 2,\n paddingTop: paddingRegular / 2\n },\n\n '& .react-film__filmstrip': {\n scrollbarWidth: 'none'\n },\n\n '& .react-film__flipper': {\n '&:disabled, &[aria-disabled=\"true\"]': {\n '& .react-film__flipper__body': {\n backgroundColor: transcriptOverlayButtonBackgroundOnDisabled,\n color: transcriptOverlayButtonColorOnDisabled\n }\n },\n\n '&:focus .react-film__flipper__body': {\n backgroundColor: transcriptOverlayButtonBackgroundOnFocus,\n color: transcriptOverlayButtonColorOnFocus || transcriptOverlayButtonColor\n },\n\n '&:hover .react-film__flipper__body': {\n backgroundColor: transcriptOverlayButtonBackgroundOnHover,\n color: transcriptOverlayButtonColorOnHover || transcriptOverlayButtonColor\n },\n\n '& .react-film__flipper__body': {\n background: transcriptOverlayButtonBackground,\n color: transcriptOverlayButtonColor,\n outline: 0\n }\n }\n },\n\n '&:not(.webchat__suggested-actions--rtl)': {\n '& .react-film__filmstrip__item:first-child': {\n paddingLeft: paddingRegular / 2\n },\n\n '& .react-film__filmstrip__item:last-child': {\n paddingRight: paddingRegular / 2\n },\n\n '& .react-film__flipper + .react-film__filmstrip': {\n '& .react-film__filmstrip__item:first-child': {\n paddingLeft: suggestedActionsCarouselFlipperSize + paddingRegular * 1.5\n },\n\n '& .react-film__filmstrip__item:last-child': {\n paddingRight: suggestedActionsCarouselFlipperSize + paddingRegular * 1.5\n }\n }\n },\n\n '&.webchat__suggested-actions--rtl': {\n '& .react-film__filmstrip__item:first-child': {\n paddingRight: paddingRegular / 2\n },\n\n '& .react-film__filmstrip__item:last-child': {\n paddingLeft: paddingRegular / 2\n },\n\n '& .react-film__flipper + .react-film__filmstrip': {\n '& .react-film__filmstrip__item:first-child': {\n paddingRight: suggestedActionsCarouselFlipperSize + paddingRegular * 1.5\n },\n\n '& .react-film__filmstrip__item:last-child': {\n paddingLeft: suggestedActionsCarouselFlipperSize + paddingRegular * 1.5\n }\n }\n }\n },\n\n '&.webchat__suggested-actions--flow-layout': {\n '& .webchat__suggested-actions__flow-box': {\n maxHeight: suggestedActionsFlowMaxHeight,\n overflowY: 'auto',\n paddingBottom: paddingRegular / 2,\n paddingLeft: paddingRegular / 2,\n paddingRight: paddingRegular / 2,\n paddingTop: paddingRegular / 2\n },\n\n '& .webchat__suggested-actions__flow-item-box': {\n maxWidth: '100%',\n overflow: 'hidden' // This is required in IE11\n },\n\n '& .webchat__suggested-actions__item-box': {\n paddingBottom: paddingRegular / 2,\n paddingLeft: paddingRegular / 2,\n paddingRight: paddingRegular / 2,\n paddingTop: paddingRegular / 2\n }\n },\n\n '&.webchat__suggested-actions--stacked-layout': {\n '& .webchat__suggested-actions__stack': {\n maxHeight: suggestedActionsStackedHeight || 'auto',\n overflowY: suggestedActionsStackedOverflow || 'auto',\n paddingBottom: paddingRegular / 2,\n paddingLeft: paddingRegular / 2,\n paddingRight: paddingRegular / 2,\n paddingTop: paddingRegular / 2\n },\n\n '& .webchat__suggested-actions__item-box': {\n paddingBottom: paddingRegular / 2,\n paddingLeft: paddingRegular / 2,\n paddingRight: paddingRegular / 2,\n paddingTop: paddingRegular / 2\n }\n },\n\n '&.webchat__suggested-actions--flow-layout, &.webchat__suggested-actions--stacked-layout': {\n '& .webchat__suggested-actions__button-text': {\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n\n '& .webchat__suggested-actions__button-text-stacked-text-wrap': {\n alignItems: 'center',\n display: 'flex',\n whiteSpace: 'normal'\n }\n },\n\n '& .webchat__suggested-actions__item-box': {\n display: 'flex',\n maxWidth: '100%'\n },\n\n '&.webchat__suggested-actions--focus-within, &:focus-within': {\n '& .webchat__suggested-actions__focus-indicator': {\n borderColor: suggestedActionsVisualKeyboardIndicatorColor,\n borderStyle: suggestedActionsVisualKeyboardIndicatorStyle,\n borderWidth: suggestedActionsVisualKeyboardIndicatorWidth,\n boxSizing: 'border-box',\n height: '100%',\n pointerEvents: 'none',\n position: 'absolute',\n top: 0,\n width: '100%'\n }\n }\n }\n };\n}\n","import CSSTokens from '../CSSTokens';\n\nexport default function createTextContentStyle() {\n return {\n '&.webchat__text-content': {\n fontFamily: CSSTokens.FontPrimary,\n margin: 0,\n minHeight: `calc(${CSSTokens.MinHeightBubble} - ${CSSTokens.PaddingRegular} * 2)`,\n padding: CSSTokens.PaddingRegular,\n\n '&.webchat__text-content--is-markdown': {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n gap: CSSTokens.PaddingRegular,\n minWidth: 0\n },\n\n '& .webchat__text-content__markdown img:not(.webchat__render-markdown__external-link-icon)': {\n maxWidth: CSSTokens.MaxWidthMessageBubble,\n minWidth: CSSTokens.MinWidthMessageBubble,\n width: '100%'\n },\n\n '& .webchat__text-content__markdown pre': {\n overflow: 'hidden'\n },\n\n '& .webchat__text-content__open-in-new-window-icon': {\n height: '.75em'\n },\n\n '& .webchat__text-content__activity-actions': {\n alignSelf: 'flex-start',\n display: 'flex',\n flexWrap: 'wrap',\n gap: `8px calc(${CSSTokens.PaddingRegular} / 2)`,\n width: '100%'\n },\n\n '& .webchat__text-content__activity-actions:empty': {\n display: 'none'\n }\n }\n };\n}\n","import CSSTokens from '../CSSTokens';\n\nexport default function () {\n return {\n '&.webchat__thumb-button': {\n alignItems: 'center',\n borderRadius: '2px',\n boxSizing: 'content-box',\n display: 'grid',\n gridTemplateAreas: `\"main\"`,\n height: '16px',\n width: '16px',\n\n '& .webchat__thumb-button__input': {\n appearance: 'none',\n background: 'transparent',\n border: 0,\n gridArea: 'main',\n height: '16px',\n margin: 0,\n opacity: 0,\n padding: 0,\n width: '16px',\n\n '&:active': {\n background: '#EDEBE9'\n }\n },\n\n '&:has(.webchat__thumb-button__input:focus-visible)': {\n outline: 'solid 1px #605E5C' // <input> has opacity of 0, we need to set the outline in the container.\n },\n\n '& .webchat__thumb-button__image': {\n color: CSSTokens.ColorAccent,\n gridArea: 'main',\n justifySelf: 'center', // Unsure why \"justifyContent\" doesn't work.\n pointerEvents: 'none',\n visibility: 'hidden',\n width: 14,\n\n '&.webchat__thumb-button__image--is-stroked': {\n visibility: 'unset'\n }\n },\n\n '&:has(.webchat__thumb-button__input:is(:not([aria-disabled=\"true\"]):hover, :checked, [aria-pressed=\"true\"]))': {\n '& .webchat__thumb-button__image': {\n '&.webchat__thumb-button__image--is-stroked': {\n visibility: 'hidden'\n },\n\n '&.webchat__thumb-button__image--is-filled': {\n visibility: 'unset'\n }\n }\n },\n\n '&.webchat__thumb-button--large': {\n border: '1px solid transparent',\n borderRadius: '4px',\n height: '30px',\n width: '30px',\n\n '& .webchat__thumb-button__input': {\n background: 'currentColor',\n height: '30px',\n width: '30px'\n },\n\n '& .webchat__thumb-button__image': {\n color: 'currentColor',\n fontSize: '20px',\n height: '1em',\n width: '1em'\n },\n\n '&:has(.webchat__thumb-button__input:is(:hover, :active, :checked, [aria-pressed=\"true\"])) .webchat__thumb-button__image':\n {\n color: CSSTokens.ColorAccent\n },\n\n '&:has(.webchat__thumb-button__input[aria-disabled=\"true\"]) .webchat__thumb-button__image': {\n color: CSSTokens.ColorSubtle\n },\n\n '&.webchat__thumb-button--has-submitted:has(.webchat__thumb-button__input:not(:checked):not([aria-pressed=\"true\"])) .webchat__thumb-button__tooltip':\n {\n display: 'none'\n },\n\n '&.webchat__thumb-button--has-submitted .webchat__thumb-button__tooltip': {\n '--webchat__tooltip-anchor-inline-start': '20%'\n }\n }\n }\n };\n}\n","/* eslint no-magic-numbers: [\"off\"] */\nimport { StrictStyleOptions } from 'botframework-webchat-api';\n\nexport default function createToastStyle({\n primaryFont,\n toasterHeight,\n toastErrorColor,\n toastFontSize,\n toastIconWidth,\n toastInfoColor,\n toastSuccessColor,\n toastTextPadding,\n toastWarnColor\n}: StrictStyleOptions) {\n return {\n fontFamily: primaryFont,\n fontSize: toastFontSize,\n minHeight: toasterHeight,\n\n '&.webchat__toast--error': {\n color: toastErrorColor,\n fill: toastErrorColor\n },\n\n '&.webchat__toast--info': {\n color: toastInfoColor,\n fill: toastInfoColor\n },\n\n '&.webchat__toast--success': {\n color: toastSuccessColor,\n fill: toastSuccessColor\n },\n\n '&.webchat__toast--warn': {\n color: toastWarnColor,\n fill: toastWarnColor\n },\n\n '& .webchat__toast__iconBox': {\n alignItems: 'center',\n display: 'flex',\n flexShrink: 0,\n height: toasterHeight,\n justifyContent: 'center',\n width: toastIconWidth\n },\n\n '& .webchat__toast__dismissButton': {\n alignItems: 'center',\n appearance: 'none',\n backgroundColor: 'Transparent',\n border: 0,\n display: 'flex',\n height: toasterHeight,\n justifyContent: 'center',\n outline: 0,\n padding: 0,\n width: toasterHeight,\n\n '&:focus .webchat__toast__dismissButtonFocus': {\n borderColor: 'rgba(26, 10, 0, .7)'\n },\n\n '&:hover .webchat__toast__dismissButtonFocus': {\n backgroundColor: 'rgba(0, 0, 0, .12)'\n }\n },\n\n '& .webchat__toast__dismissButtonFocus': {\n alignItems: 'center',\n borderColor: 'Transparent',\n borderStyle: 'solid',\n borderWidth: 1,\n borderRadius: 3,\n display: 'flex',\n height: 22,\n justifyContent: 'center',\n width: 22\n },\n\n '& .webchat__toast__text': {\n alignSelf: 'center',\n paddingBottom: toastTextPadding,\n paddingTop: toastTextPadding\n }\n };\n}\n","/* eslint no-magic-numbers: [\"off\"] */\n\nimport { StrictStyleOptions } from 'botframework-webchat-api';\n\nexport default function createToasterStyle({\n primaryFont,\n toasterHeight,\n toasterMaxHeight,\n toastErrorBackgroundColor,\n toastErrorColor,\n toasterSingularMaxHeight,\n toastFontSize,\n toastIconWidth,\n toastInfoBackgroundColor,\n toastInfoColor,\n toastSeparatorColor,\n toastSuccessBackgroundColor,\n toastSuccessColor,\n toastWarnBackgroundColor,\n toastWarnColor\n}: StrictStyleOptions) {\n return {\n overflowY: 'hidden',\n\n '&:not(.webchat__toaster--expandable)': {\n maxHeight: toasterSingularMaxHeight\n },\n\n '&.webchat__toaster--expandable:not(.webchat__toaster--expanded) > ul': {\n height: 0\n },\n\n '&.webchat__toaster--expandable.webchat__toaster--expanded': {\n maxHeight: toasterMaxHeight\n },\n\n '& .webchat__toaster__header': {\n alignItems: 'center',\n alignSelf: 'stretch',\n appearance: 'none',\n backgroundColor: 'Transparent',\n border: 0,\n display: 'flex',\n fontFamily: primaryFont,\n fontSize: toastFontSize,\n minHeight: toasterHeight,\n outline: 0,\n padding: 0,\n textAlign: 'left',\n\n '&:focus .webchat__toaster__expandIconFocus': {\n borderColor: 'rgba(26, 10, 0, .7)'\n },\n\n '&:hover .webchat__toaster__expandIconFocus': {\n backgroundColor: 'rgba(0, 0, 0, .12)'\n }\n },\n\n '& .webchat__toaster__expandIconFocus': {\n alignItems: 'center',\n borderColor: 'Transparent',\n borderStyle: 'solid',\n borderWidth: 1,\n borderRadius: 3,\n display: 'flex',\n height: 22,\n justifyContent: 'center',\n width: 22\n },\n\n '&.webchat__toaster--error': {\n // TODO: Checks if pass A11y contrast ratio requirement\n\n '&:not(.webchat__toaster--expandable), & .webchat__toaster__header': {\n backgroundColor: toastErrorBackgroundColor\n },\n\n '& .webchat__toaster__header': {\n color: toastErrorColor,\n fill: toastErrorColor\n }\n },\n\n '&.webchat__toaster--info': {\n '&:not(.webchat__toaster--expandable), & .webchat__toaster__header': {\n backgroundColor: toastInfoBackgroundColor\n },\n\n '& .webchat__toaster__header': {\n color: toastInfoColor,\n fill: toastInfoColor\n }\n },\n\n '&.webchat__toaster--success': {\n '&:not(.webchat__toaster--expandable), & .webchat__toaster__header': {\n backgroundColor: toastSuccessBackgroundColor\n },\n\n '& .webchat__toaster__header': {\n color: toastSuccessColor,\n fill: toastSuccessColor\n }\n },\n\n '&.webchat__toaster--warn': {\n '&:not(.webchat__toaster--expandable), & .webchat__toaster__header': {\n backgroundColor: toastWarnBackgroundColor\n },\n\n '& .webchat__toaster__header': {\n color: toastWarnColor,\n fill: toastWarnColor\n }\n },\n\n '& .webchat__toaster__expandLevelIconBox': {\n height: toasterHeight,\n width: toastIconWidth\n },\n\n '& .webchat__toaster__expandIcon': {\n height: toasterHeight,\n width: toasterHeight\n },\n\n '& .webchat__toaster__expandText': {\n padding: '6px 0'\n },\n\n '& .webchat__toaster__expandLevelIconBox, & .webchat__toaster__expandIcon': {\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'center'\n },\n\n '& .webchat__toaster__list': {\n margin: 0,\n overflowY: 'auto',\n padding: 0\n },\n\n '& .webchat__toaster__listItem:first-child:last-child': {\n overflow: 'hidden'\n },\n\n '& .webchat__toaster__listItem:not(:first-child), & .webchat__toaster__listItem:not(:last-child)': {\n borderBottomColor: toastSeparatorColor,\n borderBottomStyle: 'solid',\n borderBottomWidth: 1,\n minHeight: 32\n }\n };\n}\n","export default () => ({\n '*:has(> &.webchat__tooltip)': {\n position: 'relative',\n\n // For <button>, the tooltip will be placed inside <button>.\n // For <input type=\"checkbox/radio\">, the tooltip will be placed after <input>.\n '&:is(:hover, :focus-visible, :active) > .webchat__tooltip, &:has(:is(:hover, :focus-visible, :active)) > .webchat__tooltip':\n {\n opacity: 1,\n transitionDelay: '400ms'\n }\n },\n\n '&.webchat__tooltip': {\n '--webchat__tooltip-tip-size': '8.484px',\n '--webchat__tooltip-background': '#fff',\n '--webchat__tooltip-anchor-inline-start': '50%',\n\n background: 'var(--webchat__tooltip-background)',\n borderRadius: '4px',\n color: '#242424',\n filter: `drop-shadow(0px 4px 8px rgba(0, 0, 0, 0.14)) drop-shadow(0px 0px 2px rgba(0, 0, 0, 0.12))`,\n fontSize: '12px',\n inlineSize: 'max-content',\n isolation: 'isolate',\n lineHeight: '16px',\n margin: 0,\n maxInlineSize: '30ch',\n opacity: 0,\n padding: '6px 12px',\n pointerEvents: 'none',\n position: 'absolute',\n textAlign: 'start',\n transition: 'opacity 0.2s ease',\n userSelect: 'none',\n willChange: 'filter',\n\n '&::after': {\n background: 'inherit',\n color: 'currentColor',\n content: `\"\"`,\n inset: 0,\n position: 'absolute'\n },\n\n '&.webchat__tooltip--block-start, &.webchat__tooltip--block-end': {\n textAlign: 'center'\n },\n\n '&.webchat__tooltip--block-start': {\n insetBlockEnd: 'calc(100% + 7px)',\n insetInlineStart: '50%',\n transform: 'translate(calc(-1 * var(--webchat__tooltip-anchor-inline-start)), 0)',\n '&::after': {\n border: '1px solid var(--webchat__tooltip-background)',\n borderBottomLeftRadius: '2px',\n clipPath: 'polygon(0% 0%, 100% 100%, 0% 100%)',\n height: 'var(--webchat__tooltip-tip-size)',\n insetBlockStart: 'calc(100% - 6px)',\n insetInlineStart: 'calc(var(--webchat__tooltip-anchor-inline-start) - var(--webchat__tooltip-tip-size) / 2)',\n transform: 'rotate(-45deg)',\n width: 'var(--webchat__tooltip-tip-size)'\n }\n }\n }\n});\n","import { StrictStyleOptions } from 'botframework-webchat-api';\nimport { toByteArray } from 'base64-js';\n\nconst DEFAULT_IMAGE_BASE64 =\n 'R0lGODlhQAAYAPYBAOzv8evu8Ort7+fq7Ons7ujr7eXo6uTn6ebp6+Xn6ebo6uzu8OPm6OTm6OPm5+Tn6N/i4+Ll59/i5N7h4+Hk5uDj5evu7+Hk5d/h49PV18PFx7/BwsfJysXHyMLExdja3Nfa28vNz72/wL7Awc/S08TGyMDCw9TW2NbY2t3g4trd39bZ2szO0M7Q0dnb3djb3Nvd39ve4Nnc3dze4Nrc3t7g4tzf4dXX2d3f4d7h4tnc3tve383P0MrMzs7Q0sjKzNLU1s/R08jKy9DT1NfZ293g4efp68bIyby+v9bZ27q8vdHT1c7R0uvt78nLzM/R0tjb3ens7bO0tbS2t7GztK+xsrW3uK6vsLe4utfa3L/Awtzf4MnLzamqq5WWl66wsbm7vNrd3uXo6a2ur6yurp2en6KjpKusrZ+goKeoqers7urt7peXmIGBgYSEhHx8fJmamqipqnZ2doqLi8XHyY2NjpGSkpOUlJiYmZOTlI+QkJqbm4eIiJucnIuMjP///yH/C05FVFNDQVBFMi4wAwEAAAAh/wtYTVAgRGF0YVhNUDw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTcgKE1hY2ludG9zaCkiIHhtcE1NOklu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';\nconst DEFAULT_IMAGE_TYPE = 'image/gif';\n\nlet defaultImageBlobURL;\n\nexport default function createTypingAnimationStyle({\n typingAnimationBackgroundImage,\n typingAnimationHeight,\n typingAnimationWidth\n}: StrictStyleOptions) {\n defaultImageBlobURL ||\n // Content is hardcoded.\n // eslint-disable-next-line no-restricted-properties\n (defaultImageBlobURL = URL.createObjectURL(\n new Blob([new Uint8Array(toByteArray(DEFAULT_IMAGE_BASE64))], { type: DEFAULT_IMAGE_TYPE })\n ));\n\n const backgroundImage = typingAnimationBackgroundImage || `url('${defaultImageBlobURL}')`;\n\n return {\n backgroundImage,\n backgroundRepeat: 'no-repeat',\n height: typingAnimationHeight,\n width: typingAnimationWidth\n };\n}\n","import { StrictStyleOptions } from 'botframework-webchat-api';\n\nexport default function createTypingIndicatorStyle({ paddingRegular }: StrictStyleOptions) {\n return {\n paddingBottom: paddingRegular,\n\n '&:not(.webchat__typing-indicator--rtl)': {\n paddingLeft: paddingRegular\n },\n\n '&.webchat__typing-indicator--rtl': {\n paddingRight: paddingRegular\n }\n };\n}\n","import { StrictStyleOptions } from 'botframework-webchat-api';\n\nexport default function createUploadButtonStyle({\n sendBoxButtonColor,\n sendBoxButtonColorOnFocus,\n sendBoxButtonColorOnHover,\n sendBoxHeight,\n subtle\n}: StrictStyleOptions) {\n return {\n // We use the sendBoxHeight, so the button looks square\n width: sendBoxHeight,\n\n '& > .icon > svg': {\n fill: sendBoxButtonColor || subtle\n },\n\n '& > input:hover + .icon > svg': {\n fill: sendBoxButtonColorOnHover\n },\n\n '& > input:focus + .icon > svg': {\n fill: sendBoxButtonColorOnFocus\n }\n };\n}\n","export default function createVideoAttachmentStyle() {\n return {};\n}\n","import { StrictStyleOptions } from 'botframework-webchat-api';\n\nexport default function createVideoContentStyle({ videoHeight }: StrictStyleOptions) {\n return {\n height: videoHeight,\n width: '100%'\n };\n}\n","import { StrictStyleOptions } from 'botframework-webchat-api';\n\nexport default function createVimeoContentStyle({ videoHeight }: StrictStyleOptions) {\n return {\n border: 0,\n height: videoHeight,\n width: '100%'\n };\n}\n","import { StrictStyleOptions } from 'botframework-webchat-api';\n\nexport default function createWarningNotificationStyle({\n connectivityIconPadding,\n connectivityMarginLeftRight,\n connectivityMarginTopBottom,\n connectivityTextSize,\n primaryFont,\n slowConnectivity,\n notificationText\n}: StrictStyleOptions) {\n return {\n alignItems: 'center',\n color: notificationText,\n // TODO: [P2] We should not set \"display\" in styleSet, this will allow the user to break the layout for no good reasons.\n display: 'flex',\n fontFamily: primaryFont,\n fontSize: connectivityTextSize,\n marginBottom: connectivityMarginTopBottom,\n marginLeft: connectivityMarginLeftRight,\n marginRight: connectivityMarginLeftRight,\n marginTop: connectivityMarginTopBottom,\n\n '& > svg': {\n fill: slowConnectivity,\n\n '&:not(webchat__warning--rtl)': {\n paddingRight: connectivityIconPadding\n },\n\n '&.webchat__warning--rtl': {\n paddingLeft: connectivityIconPadding\n }\n }\n };\n}\n","import { StrictStyleOptions } from 'botframework-webchat-api';\n\nexport default function createYouTubeContentStyle({ videoHeight }: StrictStyleOptions) {\n return {\n border: 0,\n height: videoHeight,\n width: '100%'\n };\n}\n","import { reactNode, validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport { makeCreateStyles } from '@msinternal/botframework-webchat-styles';\nimport { InjectStyleElements } from '@msinternal/botframework-webchat-styles/react';\nimport { useStyleOptions } from 'botframework-webchat-api/hook.js';\nimport classNames from 'classnames';\nimport random from 'math-random';\nimport React, { forwardRef, memo, useMemo, type Ref } from 'react';\nimport { object, optional, pipe, readonly, string, undefinedable, type InferInput } from 'valibot';\nimport CustomPropertyNames from './CustomPropertyNames';\nimport { StrictStyleOptions } from 'botframework-webchat-api';\n\nconst customPropertiesContainerPropsSchema = pipe(\n object({\n children: optional(reactNode()),\n className: optional(string()),\n // Intentionally undefinedable() instead of optional() to remind caller they should pass nonce.\n nonce: undefinedable(string())\n }),\n readonly()\n);\n\ntype CustomPropertiesContainerProps = InferInput<typeof customPropertiesContainerPropsSchema>;\n\nconst webchatCustomPropertiesClass = 'webchat__css-custom-properties';\n\nfunction uniqueId() {\n // eslint-disable-next-line no-magic-numbers\n return Math.ceil(random() * Number.MAX_SAFE_INTEGER).toString(36);\n}\n\nfunction hasBundleStyleOptions(styleOptions: StrictStyleOptions): styleOptions is StrictStyleOptions & {\n cardPushButtonBackgroundColor?: string;\n cardPushButtonTextColor?: string;\n} {\n return 'cardPushButtonBackgroundColor' in styleOptions || 'cardPushButtonTextColor' in styleOptions;\n}\n\nfunction CustomPropertiesContainer(props: CustomPropertiesContainerProps, ref: Ref<HTMLDivElement>) {\n const { children, className, nonce } = validateProps(customPropertiesContainerPropsSchema, props);\n\n const [styleOptions] = useStyleOptions();\n\n const [styleElements, classNameState] = useMemo(() => {\n const {\n accent,\n avatarSize,\n borderAnimationColor1,\n borderAnimationColor2,\n borderAnimationColor3,\n bubbleAttachmentMaxWidth,\n bubbleAttachmentMinWidth,\n bubbleBackground,\n bubbleBorderColor,\n bubbleBorderRadius,\n bubbleBorderStyle,\n bubbleBorderWidth,\n bubbleFromUserBackground,\n bubbleFromUserBorderColor,\n bubbleFromUserBorderRadius,\n bubbleFromUserBorderStyle,\n bubbleFromUserBorderWidth,\n bubbleFromUserNubOffset,\n bubbleFromUserNubSize,\n bubbleFromUserTextColor,\n bubbleTextColor,\n bubbleImageMaxHeight,\n bubbleImageMinHeight,\n bubbleMessageMaxWidth,\n bubbleMessageMinWidth,\n bubbleMinHeight,\n bubbleNubOffset,\n bubbleNubSize,\n fontSizeSmall,\n markdownExternalLinkIconImage,\n messageActivityWordBreak,\n monospaceFont,\n paddingRegular,\n primaryFont,\n sendBoxAttachmentBarMaxHeight,\n subtle,\n timestampColor,\n transcriptActivityVisualKeyboardIndicatorColor,\n transcriptActivityVisualKeyboardIndicatorStyle,\n transcriptActivityVisualKeyboardIndicatorWidth,\n transcriptOverlayButtonBackground,\n transcriptOverlayButtonBackgroundOnDisabled,\n transcriptOverlayButtonBackgroundOnFocus,\n transcriptOverlayButtonBackgroundOnHover,\n transcriptOverlayButtonColor,\n transcriptOverlayButtonColorOnDisabled,\n transcriptOverlayButtonColorOnFocus,\n transcriptOverlayButtonColorOnHover,\n transcriptTerminatorBackgroundColor,\n transcriptTerminatorBorderRadius,\n transcriptTerminatorColor,\n transcriptTerminatorFontSize,\n transcriptVisualKeyboardIndicatorColor,\n transcriptVisualKeyboardIndicatorStyle,\n transcriptVisualKeyboardIndicatorWidth,\n transitionDuration,\n transitionEasing\n } = styleOptions;\n\n let bundleStyleProps = '';\n if (hasBundleStyleOptions(styleOptions)) {\n const { cardPushButtonBackgroundColor, cardPushButtonTextColor } = styleOptions;\n bundleStyleProps = `\n ${CustomPropertyNames.BackgroundCardPushButton}: ${cardPushButtonBackgroundColor};\n ${CustomPropertyNames.ColorCardPushButton}: ${cardPushButtonTextColor};\n`;\n }\n\n const randomClass = `w${uniqueId()}_${webchatCustomPropertiesClass.replace('webchat__', '')}` as const;\n\n const contents = `\n.${webchatCustomPropertiesClass}.${randomClass} {\n display: contents;\n /* From component */\n ${CustomPropertyNames.BackgroundBubble}: ${bubbleBackground};\n ${CustomPropertyNames.BackgroundBubbleUser}: ${bubbleFromUserBackground};\n ${CustomPropertyNames.BackgroundTranscriptOverlayButton}: ${transcriptOverlayButtonBackground};\n ${CustomPropertyNames.BackgroundTranscriptOverlayButtonDisabled}: ${transcriptOverlayButtonBackgroundOnDisabled};\n ${CustomPropertyNames.BackgroundTranscriptOverlayButtonFocus}: ${transcriptOverlayButtonBackgroundOnFocus};\n ${CustomPropertyNames.BackgroundTranscriptOverlayButtonHover}: ${transcriptOverlayButtonBackgroundOnHover};\n ${CustomPropertyNames.BackgroundTranscriptTerminator}: ${transcriptTerminatorBackgroundColor};\n ${CustomPropertyNames.BorderAnimationColor1}: ${borderAnimationColor1};\n ${CustomPropertyNames.BorderAnimationColor2}: ${borderAnimationColor2};\n ${CustomPropertyNames.BorderAnimationColor3}: ${borderAnimationColor3};\n ${CustomPropertyNames.BorderColorBubble}: ${bubbleBorderColor};\n ${CustomPropertyNames.BorderColorBubbleUser}: ${bubbleFromUserBorderColor};\n ${CustomPropertyNames.BorderRadiusBubble}: ${bubbleBorderRadius}px;\n ${CustomPropertyNames.BorderRadiusBubbleUser}: ${bubbleFromUserBorderRadius}px;\n ${CustomPropertyNames.BorderRadiusTranscriptTerminator}: ${transcriptTerminatorBorderRadius}px;\n ${CustomPropertyNames.BorderStyleBubble}: ${bubbleBorderStyle};\n ${CustomPropertyNames.BorderStyleBubbleUser}: ${bubbleFromUserBorderStyle};\n ${CustomPropertyNames.BorderStyleTranscriptActivityVisualKeyboardIndicator}: ${transcriptActivityVisualKeyboardIndicatorStyle};\n ${CustomPropertyNames.BorderStyleTranscriptVisualKeyboardIndicator}: ${transcriptVisualKeyboardIndicatorStyle};\n ${CustomPropertyNames.BorderWidthBubble}: ${bubbleBorderWidth}px;\n ${CustomPropertyNames.BorderWidthBubbleUser}: ${bubbleFromUserBorderWidth}px;\n ${CustomPropertyNames.BorderWidthTranscriptActivityVisualKeyboardIndicator}: ${transcriptActivityVisualKeyboardIndicatorWidth}px;\n ${CustomPropertyNames.BorderWidthTranscriptVisualKeyboardIndicator}: ${transcriptVisualKeyboardIndicatorWidth}px;\n ${CustomPropertyNames.ColorAccent}: ${accent};\n ${CustomPropertyNames.ColorBubble}: ${bubbleTextColor};\n ${CustomPropertyNames.ColorBubbleUser}: ${bubbleFromUserTextColor};\n ${CustomPropertyNames.ColorSubtle}: ${subtle};\n ${CustomPropertyNames.ColorTimestamp}: ${timestampColor || subtle};\n ${CustomPropertyNames.ColorTranscriptActivityVisualKeyboardIndicator}: ${transcriptActivityVisualKeyboardIndicatorColor};\n ${CustomPropertyNames.ColorTranscriptOverlayButton}: ${transcriptOverlayButtonColor};\n ${CustomPropertyNames.ColorTranscriptOverlayButtonDisabled}: ${transcriptOverlayButtonColorOnDisabled};\n ${CustomPropertyNames.ColorTranscriptOverlayButtonFocus}: ${transcriptOverlayButtonColorOnFocus || 'unset'};\n ${CustomPropertyNames.ColorTranscriptOverlayButtonHover}: ${transcriptOverlayButtonColorOnHover || 'unset'};\n ${CustomPropertyNames.ColorTranscriptTerminator}: ${transcriptTerminatorColor};\n ${CustomPropertyNames.ColorTranscriptVisualKeyboardIndicator}: ${transcriptVisualKeyboardIndicatorColor};\n ${CustomPropertyNames.FontMonospace}: ${monospaceFont};\n ${CustomPropertyNames.FontPrimary}: ${primaryFont};\n ${CustomPropertyNames.FontSizeSmall}: ${fontSizeSmall};\n ${CustomPropertyNames.FontSizeTranscriptTerminator}: ${transcriptTerminatorFontSize}px;\n ${CustomPropertyNames.IconURLExternalLink}: ${markdownExternalLinkIconImage};\n ${CustomPropertyNames.MaxHeightImageBubble}: ${bubbleImageMaxHeight}px;\n ${CustomPropertyNames.MaxHeightSendBoxAttachmentBar}: ${sendBoxAttachmentBarMaxHeight}px;\n ${CustomPropertyNames.MaxWidthAttachmentBubble}: ${bubbleAttachmentMaxWidth}px;\n ${CustomPropertyNames.MinWidthAttachmentBubble}: ${bubbleAttachmentMinWidth}px;\n ${CustomPropertyNames.MaxWidthMessageBubble}: ${bubbleMessageMaxWidth}px;\n ${CustomPropertyNames.MinWidthMessageBubble}: ${bubbleMessageMinWidth}px;\n ${CustomPropertyNames.MinHeightBubble}: ${bubbleMinHeight}px;\n ${CustomPropertyNames.MinHeightImageBubble}: ${bubbleImageMinHeight}px;\n ${CustomPropertyNames.PaddingRegular}: ${paddingRegular}px;\n ${CustomPropertyNames.SizeAvatar}: ${avatarSize}px;\n ${CustomPropertyNames.SizeBubbleNub}: ${bubbleNubSize === undefined ? 'unset' : `${bubbleNubSize}px`};\n ${CustomPropertyNames.SizeBubbleNubUser}: ${bubbleFromUserNubSize === undefined ? 'unset' : `${bubbleFromUserNubSize}px`};\n ${CustomPropertyNames.SpaceBubbleNub}: ${bubbleNubOffset}px;\n ${CustomPropertyNames.SpaceBubbleNubUser}: ${bubbleFromUserNubOffset}px;\n ${CustomPropertyNames.TransitionDuration}: ${transitionDuration};\n ${CustomPropertyNames.TransitionEasing}: ${transitionEasing};\n ${CustomPropertyNames.WordBreakMessageActivity}: ${messageActivityWordBreak};\n /* From bundle */\n ${bundleStyleProps}\n}\n`;\n const [style] = makeCreateStyles(contents)(`component/CustomPropertiesContainer-${uniqueId()}`);\n\n return [Object.freeze([style]), Object.freeze([`${webchatCustomPropertiesClass} ${randomClass}`] as const)];\n }, [styleOptions]);\n\n return (\n <div className={classNames(className, classNameState[0])} ref={ref}>\n <InjectStyleElements at={styleOptions.stylesRoot} nonce={nonce} styleElements={styleElements} />\n {children}\n </div>\n );\n}\n\nCustomPropertiesContainer.displayName = 'CustomPropertiesContainer';\n\nexport default memo(forwardRef<HTMLDivElement, CustomPropertiesContainerProps>(CustomPropertiesContainer));\n","// TODO: [P2] This component can be replaced by `bindProps`.\nimport { InjectStyleElements } from '@msinternal/botframework-webchat-styles/react';\nimport { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport { useStyleOptions } from 'botframework-webchat-api/hook.js';\nimport React, { memo, type FunctionComponent } from 'react';\nimport { never, object, optional, pipe, readonly, string, undefinedable, type InferInput } from 'valibot';\n\nimport createComponentStyleElements from './createComponentStyleElements';\n\nconst componentStylesheetPropsSchema = pipe(\n object({\n children: optional(never()),\n nonce: undefinedable(string())\n }),\n readonly()\n);\n\ntype ComponentStylesheetProps = InferInput<typeof componentStylesheetPropsSchema>;\n\nconst styleElements = createComponentStyleElements('component');\n\nfunction ComponentStylesheet(props: ComponentStylesheetProps) {\n const { nonce } = validateProps(componentStylesheetPropsSchema, props);\n\n const [{ stylesRoot }] = useStyleOptions();\n\n return <InjectStyleElements at={stylesRoot} nonce={nonce} styleElements={styleElements} />;\n}\n\nComponentStylesheet.displayName = 'ComponentStylesheet';\n\nexport default memo(ComponentStylesheet as FunctionComponent<ComponentStylesheetProps>);\nexport { componentStylesheetPropsSchema, type ComponentStylesheetProps };\n","import { makeCreateStyles } from '@msinternal/botframework-webchat-styles';\n\nconst componentStyleContent = '@--COMPONENT-STYLES-CONTENT--@';\n\nconst createComponentStyleElements = makeCreateStyles(componentStyleContent);\n\nexport default createComponentStyleElements;\nexport { componentStyleContent };\n","import updateIn from 'simple-update-in';\n\nexport default function updateMarkdownItAttrs(token, updater) {\n return updateIn(token, ['attrs'], attrs => {\n const map = Object.fromEntries(attrs);\n const nextMap = updater(map);\n\n return Object.entries(nextMap);\n });\n}\n","import updateMarkdownAttrs from './updateMarkdownAttrs';\nimport walkMarkdownTokens from './walkMarkdownTokens';\n\nexport default function addTargetBlankToHyperlinksMarkdown(tokens) {\n return walkMarkdownTokens(tokens, token => {\n switch (token.type) {\n case 'link_open':\n token = updateMarkdownAttrs(token, attrs =>\n // Adds only for external links, e.g. https://, data:\n // Don't add for internal links, e.g. #ref-1, ?q=doc\n /^\\w/u.test(attrs.href)\n ? {\n ...attrs,\n rel: 'noopener noreferrer',\n target: '_blank'\n }\n : attrs\n );\n\n break;\n\n default:\n break;\n }\n\n return token;\n });\n}\n","import { isForbiddenPropertyName } from 'botframework-webchat-core';\n\nexport default function mapMap(map, mapper) {\n return Object.entries(map).reduce((result, [key, value]) => {\n if (!isForbiddenPropertyName(key)) {\n // Mitigated through denylisting.\n // eslint-disable-next-line security/detect-object-injection\n result[key] = mapper(value, key);\n }\n\n return result;\n }, {});\n}\n","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport BasicWebChat from './BasicWebChat';\nimport Composer, { ComposerProps } from './Composer';\n\n// Please keep this file as simple as possible. This is for setting up the surface (a.k.a. <Composer>) and <BasicWebChat> only.\n\n// Web developers may choose to put things before/after <BasicWebChat> while still inside the surface.\n// For example,\n// - They can hide our default send box and built their own using hooks\n// - They can run hooks outside of activity/attachment middleware\n// - They will put <Composer> as very top of their page, and allow buttons on their existing page to send message to bot\n\ntype ReactWebChatProps = Readonly<\n Omit<ComposerProps, 'children'> & {\n className?: string | undefined;\n role?: string | undefined;\n }\n>;\n\nconst ReactWebChat = ({ className, role, ...composerProps }: ReactWebChatProps) => (\n <Composer {...composerProps}>\n <BasicWebChat className={className} role={role} />\n </Composer>\n);\n\nReactWebChat.defaultProps = {\n className: undefined,\n role: undefined,\n ...Composer.defaultProps\n};\n\nconst {\n // Excluding \"children\" from ComposerProps.\n children: _,\n ...composerPropTypesWithoutChildren\n} = Composer.propTypes;\n\nReactWebChat.propTypes = {\n className: PropTypes.string,\n role: PropTypes.string,\n ...composerPropTypesWithoutChildren\n};\n\nexport default ReactWebChat;\n\nexport type { ReactWebChatProps };\n","/* eslint no-magic-numbers: [\"error\", { \"ignore\": [0, 1, 2] }] */\n/* eslint react/no-unsafe: off */\n\nimport { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport { SendBoxMiddlewareProxy, hooks } from 'botframework-webchat-api';\nimport classNames from 'classnames';\nimport React, { memo, useRef } from 'react';\nimport { object, optional, pipe, readonly, string, type InferInput } from 'valibot';\n\nimport BasicConnectivityStatus from './BasicConnectivityStatus';\nimport BasicToaster from './BasicToaster';\nimport BasicTranscript from './BasicTranscript';\nimport { useStyleToEmotionObject } from './hooks/internal/styleToEmotionObject';\nimport useStyleSet from './hooks/useStyleSet';\nimport AccessKeySinkSurface from './Utils/AccessKeySink/Surface';\n\nconst { useStyleOptions } = hooks;\n\nconst ROOT_STYLE = {\n display: 'flex',\n flexDirection: 'column'\n};\n\nconst CONNECTIVITY_STATUS_STYLE = {\n flexShrink: 0\n};\n\nconst SEND_BOX_CSS = {\n flexShrink: 0\n};\n\nconst TOASTER_STYLE = {\n flexShrink: 0\n};\n\nconst TRANSCRIPT_STYLE = {\n '.webchat__basic-transcript': {\n flex: 1\n }\n};\n\nconst basicWebChatPropsSchema = pipe(\n object({\n className: optional(string()),\n role: optional(string())\n }),\n readonly()\n);\n\ntype BasicWebChatProps = InferInput<typeof basicWebChatPropsSchema>;\n\nfunction BasicWebChat(props: BasicWebChatProps) {\n const { className, role } = validateProps(basicWebChatPropsSchema, props, 'strict');\n\n const rootRef = useRef<HTMLDivElement>(null);\n const [{ root: rootStyleSet }] = useStyleSet();\n const [options] = useStyleOptions();\n const styleToEmotionObject = useStyleToEmotionObject();\n\n const connectivityStatusClassName = styleToEmotionObject(CONNECTIVITY_STATUS_STYLE) + '';\n const rootClassName = styleToEmotionObject(ROOT_STYLE) + '';\n const sendBoxClassName = styleToEmotionObject(SEND_BOX_CSS) + '';\n const toasterClassName = styleToEmotionObject(TOASTER_STYLE) + '';\n const transcriptClassName = styleToEmotionObject(TRANSCRIPT_STYLE) + '';\n\n return (\n <AccessKeySinkSurface\n className={classNames('webchat__surface', rootClassName, rootStyleSet + '', className)}\n ref={rootRef}\n role={role}\n >\n {!options.hideToaster && <BasicToaster className={toasterClassName} />}\n <BasicTranscript className={transcriptClassName} />\n <BasicConnectivityStatus className={connectivityStatusClassName} />\n <SendBoxMiddlewareProxy className={sendBoxClassName} request={undefined} />\n </AccessKeySinkSurface>\n );\n}\n\nexport default memo(BasicWebChat);\nexport { basicWebChatPropsSchema, type BasicWebChatProps };\n","import { hooks } from 'botframework-webchat-api';\nimport React from 'react';\n\nimport ConnectivityStatusConnected from './ConnectivityStatus/Connected';\nimport ConnectivityStatusConnecting from './ConnectivityStatus/Connecting';\nimport ConnectivityStatusFailedToConnect from './ConnectivityStatus/FailedToConnect';\nimport ConnectivityStatusJavaScriptError from './ConnectivityStatus/JavaScriptError';\n\nconst { useDebouncedNotifications } = hooks;\n\nconst BasicConnectivityStatus = ({ className }) => {\n const [{ connectivitystatus: connectivityStatus }] = useDebouncedNotifications();\n\n if (!connectivityStatus) {\n return null;\n }\n\n switch (connectivityStatus.message) {\n case 'connecting':\n return <ConnectivityStatusConnecting className={className} />;\n\n case 'javascripterror':\n return <ConnectivityStatusJavaScriptError className={className} />;\n\n case 'failedtoconnect':\n return <ConnectivityStatusFailedToConnect className={className} />;\n\n case 'reconnecting':\n return <ConnectivityStatusConnecting className={className} reconnect={true} />;\n\n case 'connected':\n default:\n return <ConnectivityStatusConnected className={className} />;\n }\n};\n\nexport default BasicConnectivityStatus;\n","import { hooks } from 'botframework-webchat-api';\nimport React from 'react';\n\nimport ScreenReaderText from '../ScreenReaderText';\n\nconst { useLocalizer } = hooks;\n\nconst ConnectivityStatusConnected = () => {\n const localize = useLocalizer();\n\n return <ScreenReaderText text={localize('CONNECTIVITY_STATUS_ALT', localize('CONNECTIVITY_STATUS_ALT_CONNECTED'))} />;\n};\n\nexport default ConnectivityStatusConnected;\n","import { hooks } from 'botframework-webchat-api';\nimport { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport classNames from 'classnames';\nimport React, { Fragment, memo, useState } from 'react';\nimport { boolean, object, optional, pipe, readonly, type InferInput } from 'valibot';\n\nimport useForceRender from '../hooks/internal/useForceRender';\nimport useTimer from '../hooks/internal/useTimer';\nimport useStyleSet from '../hooks/useStyleSet';\nimport ScreenReaderText from '../ScreenReaderText';\nimport SpinnerAnimation from './Assets/SpinnerAnimation';\nimport WarningNotificationIcon from './Assets/WarningNotificationIcon';\n\nconst { useDirection, useLocalizer, usePonyfill, useStyleOptions } = hooks;\n\nconst connectivityStatusConnectingPropsSchema = pipe(\n object({\n reconnect: optional(boolean())\n }),\n readonly()\n);\n\ntype ConnectivityStatusConnectingProps = InferInput<typeof connectivityStatusConnectingPropsSchema>;\n\nfunction ConnectivityStatusConnecting(props: ConnectivityStatusConnectingProps) {\n const { reconnect = false } = validateProps(connectivityStatusConnectingPropsSchema, props);\n\n const [{ Date }] = usePonyfill();\n const [{ slowConnectionAfter }] = useStyleOptions();\n const [\n { connectivityNotification: connectivityNotificationStyleSet, warningNotification: warningNotificationStyleSet }\n ] = useStyleSet();\n const [direction] = useDirection();\n const [initialRenderAt] = useState(() => Date.now());\n const forceRender = useForceRender();\n const localize = useLocalizer();\n\n const initialConnectionText = localize('CONNECTIVITY_STATUS_ALT_CONNECTING');\n const interruptedConnectionText = localize('CONNECTIVITY_STATUS_ALT_RECONNECTING');\n const slowConnectionText = localize('CONNECTIVITY_STATUS_ALT_SLOW_CONNECTION');\n\n useTimer(initialRenderAt + slowConnectionAfter, forceRender);\n\n const now = Date.now();\n const slow = now >= initialRenderAt + slowConnectionAfter;\n\n return slow ? (\n <Fragment>\n <ScreenReaderText text={localize('CONNECTIVITY_STATUS_ALT', slowConnectionText)} />\n <div\n aria-hidden={true}\n className={classNames('webchat__connectivityStatus', warningNotificationStyleSet + '')}\n dir={direction}\n >\n <WarningNotificationIcon />\n {slowConnectionText}\n </div>\n </Fragment>\n ) : (\n <Fragment>\n <ScreenReaderText\n text={localize('CONNECTIVITY_STATUS_ALT', reconnect ? interruptedConnectionText : initialConnectionText)}\n />\n <div\n aria-hidden={true}\n className={classNames('webchat__connectivityStatus', connectivityNotificationStyleSet + '')}\n dir={direction}\n >\n <SpinnerAnimation />\n {reconnect ? interruptedConnectionText : initialConnectionText}\n </div>\n </Fragment>\n );\n}\n\nexport default memo(ConnectivityStatusConnecting);\nexport { connectivityStatusConnectingPropsSchema, type ConnectivityStatusConnectingProps };\n","import { useCallback, useState } from 'react';\n\nfunction useForceRender() {\n const [, setForceRender] = useState();\n\n return useCallback(() => setForceRender({}), [setForceRender]);\n}\n\nexport default useForceRender;\n","import { hooks } from 'botframework-webchat-api';\nimport classNames from 'classnames';\nimport React from 'react';\n\nimport useStyleSet from '../../hooks/useStyleSet';\n\nconst { useDirection } = hooks;\n\nconst SpinnerAnimation = () => {\n const [{ spinnerAnimation: spinnerAnimationStyleSet }] = useStyleSet();\n const [direction] = useDirection();\n\n return <div className={classNames(spinnerAnimationStyleSet + '', direction === 'rtl' && 'webchat__spinner--rtl')} />;\n};\n\nexport default SpinnerAnimation;\n","import { hooks } from 'botframework-webchat-api';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nconst { useDirection } = hooks;\n\nconst ICON_SIZE_FACTOR = 16;\n\nconst WarningNotificationIcon = ({ className, size }) => {\n const [direction] = useDirection();\n\n return (\n <svg\n alt=\"\"\n className={classNames(className + '', direction === 'rtl' && 'webchat_warning--rtl')}\n height={ICON_SIZE_FACTOR * size}\n viewBox=\"0 0 13.1 13.1\"\n width={ICON_SIZE_FACTOR * size}\n >\n <path d=\"M13.1,13.1H0L6.6,0L13.1,13.1z M7,10.5H6.1v0.9H7V10.5z M7,9.7V5.2H6.1v4.4L7,9.7z\" fillRule=\"evenodd\" />\n </svg>\n );\n};\n\nWarningNotificationIcon.defaultProps = {\n className: '',\n size: 1\n};\n\nWarningNotificationIcon.propTypes = {\n className: PropTypes.string,\n size: PropTypes.number\n};\n\nexport default WarningNotificationIcon;\n","import { hooks } from 'botframework-webchat-api';\nimport classNames from 'classnames';\nimport React from 'react';\n\nimport ErrorNotificationIcon from './Assets/ErrorNotificationIcon';\nimport ScreenReaderText from '../ScreenReaderText';\nimport useStyleSet from '../hooks/useStyleSet';\n\nconst { useDirection, useLocalizer } = hooks;\n\nconst ConnectivityStatusFailedToConnect = () => {\n const [{ errorNotification: errorNotificationStyleSet }] = useStyleSet();\n const [direction] = useDirection();\n const localize = useLocalizer();\n\n const failedConnectionText = localize('CONNECTIVITY_STATUS_ALT_FATAL');\n\n return (\n <React.Fragment>\n <ScreenReaderText text={localize('CONNECTIVITY_STATUS_ALT', failedConnectionText)} />\n <div\n aria-hidden={true}\n className={classNames('webchat__connectivityStatus', errorNotificationStyleSet + '')}\n dir={direction}\n >\n <ErrorNotificationIcon />\n {failedConnectionText}\n </div>\n </React.Fragment>\n );\n};\n\nexport default ConnectivityStatusFailedToConnect;\n","import { hooks } from 'botframework-webchat-api';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nconst { useDirection } = hooks;\n\nconst ICON_SIZE_FACTOR = 16;\n\nconst ErrorNotificationIcon = ({ className, size }) => {\n const [direction] = useDirection();\n\n return (\n <svg\n alt=\"\"\n className={classNames(className + '', direction === 'rtl' && 'webchat__error--rtl')}\n height={ICON_SIZE_FACTOR * size}\n viewBox=\"0 0 13.1 13.1\"\n width={ICON_SIZE_FACTOR * size}\n >\n <path\n d=\"M6.5,13C2.9,13,0,10.1,0,6.5S2.9,0,6.5,0S13,2.9,13,6.5S10.1,13,6.5,13z M6.1,3.5v4.3h0.9V3.5H6.1z M6.1,8.7v0.9h0.9V8.7H6.1z\"\n fillRule=\"evenodd\"\n />\n </svg>\n );\n};\n\nErrorNotificationIcon.defaultProps = {\n className: '',\n size: 1\n};\n\nErrorNotificationIcon.propTypes = {\n className: PropTypes.string,\n size: PropTypes.number\n};\n\nexport default ErrorNotificationIcon;\n","import { hooks } from 'botframework-webchat-api';\nimport classNames from 'classnames';\nimport React from 'react';\n\nimport ErrorNotificationIcon from './Assets/ErrorNotificationIcon';\nimport ScreenReaderText from '../ScreenReaderText';\nimport useStyleSet from '../hooks/useStyleSet';\n\nconst { useDirection, useLocalizer } = hooks;\n\nconst ConnectivityStatusJavaScriptError = () => {\n const [{ errorNotification: errorNotificationStyleSet }] = useStyleSet();\n const [direction] = useDirection();\n const localize = useLocalizer();\n\n const renderErrorNotificationText = localize('CONNECTIVITY_STATUS_ALT_RENDER_ERROR');\n\n return (\n <React.Fragment>\n <ScreenReaderText text={localize('CONNECTIVITY_STATUS_ALT', renderErrorNotificationText)} />\n <div\n aria-hidden={true}\n className={classNames('webchat__connectivityStatus', errorNotificationStyleSet + '')}\n dir={direction}\n >\n <ErrorNotificationIcon />\n {renderErrorNotificationText}\n </div>\n </React.Fragment>\n );\n};\n\nexport default ConnectivityStatusJavaScriptError;\n","/* eslint no-magic-numbers: [\"error\", { \"ignore\": [0, 1, 2, 3, 4, 5] }] */\n/* eslint react/forbid-dom-props: \"off\" */\n\nimport { hooks } from 'botframework-webchat-api';\nimport classNames from 'classnames';\nimport React, { Fragment, memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport CollapseIcon from './Toast/CollapseIcon';\nimport ExpandIcon from './Toast/ExpandIcon';\nimport NotificationIcon from './Toast/NotificationIcon';\nimport randomId from './Utils/randomId';\nimport useInternalRenderMarkdownInline from './hooks/internal/useInternalRenderMarkdownInline';\nimport { useStyleToEmotionObject } from './hooks/internal/styleToEmotionObject';\nimport useStyleSet from './hooks/useStyleSet';\nimport { useLiveRegion } from './providers/LiveRegionTwin';\n\nconst { useDebouncedNotifications, useLocalizer, useRenderToast } = hooks;\n\nconst ROOT_STYLE = {\n display: 'flex',\n flexDirection: 'column',\n\n '& .webchat__toaster__header': {\n display: 'flex',\n flexShrink: 0\n },\n\n '& .webchat__toaster__expandText': {\n flex: 1\n },\n\n '& .webchat__toaster__list': {\n display: 'block',\n listStyleType: 'none'\n }\n};\n\nconst LEVEL_AS_NUMBER = {\n error: 1,\n warn: 2,\n info: 3,\n success: 4\n};\n\nconst LEVEL_AS_NUMBER_KEYS = Object.keys(LEVEL_AS_NUMBER);\n\nfunction getLevelAsNumber(level) {\n // Mitigated through allowlisting.\n // eslint-disable-next-line security/detect-object-injection\n return LEVEL_AS_NUMBER_KEYS.includes(level) ? LEVEL_AS_NUMBER[level] : 5;\n}\n\nfunction compareLevel(x, y) {\n return getLevelAsNumber(x) - getLevelAsNumber(y);\n}\n\nfunction sortNotifications(map) {\n return (\n Object.values(map)\n // We want the order reversed, most recent on top.\n .sort(({ timestamp: x }, { timestamp: y }) => y - x)\n );\n}\n\nconst PASSTHRU_FN = value => value;\nconst TOAST_ACCORDION_IDS = {\n two: 'TOAST_ACCORDION_TWO',\n few: 'TOAST_ACCORDION_FEW',\n many: 'TOAST_ACCORDION_MANY',\n other: 'TOAST_ACCORDION_OTHER'\n};\n\nconst BasicToaster = ({ className }) => {\n const instanceId = useMemo(() => randomId(), []);\n const [{ toaster: toasterStyleSet }] = useStyleSet();\n const [debouncedNotifications] = useDebouncedNotifications();\n const [expanded, setExpanded] = useState(false);\n const localizeWithPlural = useLocalizer({ plural: true });\n const renderToast = useRenderToast();\n const renderMarkdownInline = useInternalRenderMarkdownInline();\n const rootClassName = useStyleToEmotionObject()(ROOT_STYLE) + '';\n\n const handleToggleExpand = useCallback(() => setExpanded(!expanded), [expanded, setExpanded]);\n const sortedNotifications = useMemo(() => sortNotifications(debouncedNotifications), [debouncedNotifications]);\n const sortedNotificationsWithChildren = useMemo(\n () =>\n sortedNotifications\n .map(notification => {\n const children = renderToast({ notification });\n\n return children && { children, notification };\n })\n .filter(PASSTHRU_FN),\n [renderToast, sortedNotifications]\n );\n\n const expandable = sortedNotificationsWithChildren.length > 1;\n const [highestLevel] = sortedNotificationsWithChildren.map(({ notification: { level } }) => level).sort(compareLevel);\n\n const expandableElementId = useMemo(\n () => (!expandable || expanded ? `webchat__toaster__list__${instanceId}` : undefined),\n [expandable, expanded, instanceId]\n );\n const headerElementId = useMemo(\n () => (expandable ? `webchat__toaster__header__${instanceId}` : undefined),\n [expandable, instanceId]\n );\n\n useEffect(() => {\n // TODO: [P2] Intentionally set error, we will visit it later.\n // eslint-disable-next-line react-hooks/set-state-in-effect\n !expandable && setExpanded(false);\n }, [expandable]);\n\n const notifiedElements = useRef(new Set());\n\n useLiveRegion(() => {\n const toAnnounce = [];\n\n for (const notification of sortedNotifications.slice().reverse()) {\n if (!notifiedElements.current.has(notification.id)) {\n notifiedElements.current.add(notification.id);\n\n toAnnounce.push(\n notification.alt ? (\n <div aria-atomic={true} className=\"webchat__toaster__notifications\" key={notification.id}>\n {notification.alt}\n </div>\n ) : (\n <div\n aria-atomic={true}\n className=\"webchat__toaster__notifications\"\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{\n __html: renderMarkdownInline(notification.message ?? '')\n }}\n key={notification.id}\n />\n )\n );\n }\n }\n\n return toAnnounce.length > 0 && <Fragment>{toAnnounce}</Fragment>;\n }, [renderMarkdownInline, sortedNotifications]);\n\n return (\n <div\n aria-labelledby={headerElementId}\n aria-relevant=\"all\"\n className={classNames(\n 'webchat__toaster',\n {\n 'webchat__toaster--expandable': expandable,\n 'webchat__toaster--expanded': expanded,\n 'webchat__toaster--error': highestLevel === 'error',\n 'webchat__toaster--info': highestLevel === 'info',\n 'webchat__toaster--success': highestLevel === 'success',\n 'webchat__toaster--warn': highestLevel === 'warn'\n },\n rootClassName,\n toasterStyleSet + '',\n className\n )}\n role=\"log\"\n >\n {expandable && (\n <button\n aria-controls={expandableElementId}\n aria-expanded={expanded}\n className=\"webchat__toaster__header\"\n id={headerElementId}\n onClick={handleToggleExpand}\n type=\"button\"\n >\n <div aria-hidden={true} className=\"webchat__toaster__expandLevelIconBox\">\n <NotificationIcon className=\"webchat__toaster__expandLevelIcon\" level={highestLevel} />\n </div>\n <div className=\"webchat__toaster__expandText\">\n {localizeWithPlural(TOAST_ACCORDION_IDS, sortedNotificationsWithChildren.length)}\n </div>\n <div aria-hidden={true} className=\"webchat__toaster__expandIcon\">\n <div className=\"webchat__toaster__expandIconFocus\">{expanded ? <CollapseIcon /> : <ExpandIcon />}</div>\n </div>\n </button>\n )}\n {(!expandable || expanded) && (\n <div aria-labelledby={headerElementId} className=\"webchat__toaster__list\" id={expandableElementId}>\n {sortedNotificationsWithChildren.map(({ children, notification: { id } }) => (\n <div className=\"webchat__toaster__listItem\" key={id}>\n {children}\n </div>\n ))}\n </div>\n )}\n </div>\n );\n};\n\nBasicToaster.displayName = 'BasicToaster';\n\nexport default memo(BasicToaster);\n","import PropTypes from 'prop-types';\nimport React from 'react';\n\nconst CollapseIcon = ({ className }) => (\n <svg\n className={(className || '') + ''}\n focusable={false}\n height=\"9\"\n role=\"presentation\"\n viewBox=\"0 0 16 9\"\n width=\"16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M15.2734 8.97656L8 1.71094L0.726563 8.97656L0.0234375 8.27344L8 0.289062L15.9766 8.27344L15.2734 8.97656Z\" />\n </svg>\n);\n\nCollapseIcon.defaultProps = {\n className: undefined\n};\n\nCollapseIcon.propTypes = {\n className: PropTypes.string\n};\n\nexport default CollapseIcon;\n","import PropTypes from 'prop-types';\nimport React from 'react';\n\nconst ExpandIcon = ({ className }) => (\n <svg\n className={(className || '') + ''}\n focusable={false}\n height=\"10\"\n role=\"presentation\"\n viewBox=\"0 0 16 10\"\n width=\"16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M15.1484 0.648437L15.8516 1.35156L8 9.20312L0.148438 1.35156L0.851563 0.648438L8 7.79687L15.1484 0.648437Z\" />\n </svg>\n);\n\nExpandIcon.defaultProps = {\n className: undefined\n};\n\nExpandIcon.propTypes = {\n className: PropTypes.string\n};\n\nexport default ExpandIcon;\n","// TODO: [P2] Fix ESLint error `no-use-before-define`\n/* eslint-disable @typescript-eslint/no-use-before-define */\n\nimport { hooks } from 'botframework-webchat-api';\nimport classNames from 'classnames';\nimport React, {\n forwardRef,\n Fragment,\n memo,\n useCallback,\n useMemo,\n useRef,\n type KeyboardEventHandler,\n type MutableRefObject,\n type ReactNode\n} from 'react';\nimport {\n Composer as ReactScrollToBottomComposer,\n Panel as ReactScrollToBottomPanel,\n useObserveScrollPosition,\n useScrollTo,\n useScrollToEnd,\n useSticky\n} from 'react-scroll-to-bottom';\nimport { wrapWith } from 'react-wrap-with';\n\nimport BasicTypingIndicator from './BasicTypingIndicator';\nimport ChatHistoryBox from './ChatHistory/ChatHistoryBox';\nimport ChatHistoryToolbar from './ChatHistory/ChatHistoryToolbar';\nimport ScrollToEndButton from './ChatHistory/private/ScrollToEndButton';\nimport ActivityTree from './Transcript/ActivityTree';\nimport LiveRegionTranscript from './Transcript/LiveRegionTranscript';\nimport { TranscriptFocusArea, TranscriptFocusTerminator } from './Transcript/TranscriptFocus';\nimport TranscriptActivityList from './Transcript/TranscriptFocus/TranscriptActivityList';\nimport { type ActivityElementMap } from './Transcript/types';\nimport FocusRedirector from './Utils/FocusRedirector';\nimport inputtableKey from './Utils/TypeFocusSink/inputtableKey';\nimport { android } from './Utils/detectBrowser';\nimport { useStyleToEmotionObject } from './hooks/internal/styleToEmotionObject';\nimport useDispatchScrollPosition from './hooks/internal/useDispatchScrollPosition';\nimport useDispatchTranscriptFocusByActivityKey from './hooks/internal/useDispatchTranscriptFocusByActivityKey';\nimport useNonce from './hooks/internal/useNonce';\nimport useObserveFocusVisible from './hooks/internal/useObserveFocusVisible';\nimport usePrevious from './hooks/internal/usePrevious';\nimport useRegisterFocusTranscript from './hooks/internal/useRegisterFocusTranscript';\nimport useRegisterScrollTo from './hooks/internal/useRegisterScrollTo';\nimport useRegisterScrollToEnd from './hooks/internal/useRegisterScrollToEnd';\nimport useValueRef from './hooks/internal/useValueRef';\nimport {\n useRegisterScrollRelativeTranscript,\n type TranscriptScrollRelativeOptions\n} from './hooks/transcriptScrollRelative';\nimport useFocus from './hooks/useFocus';\nimport useStyleSet from './hooks/useStyleSet';\nimport ChatHistoryDOMComposer from './providers/ChatHistoryDOM/ChatHistoryDOMComposer';\nimport useActivityElementMapRef from './providers/ChatHistoryDOM/useActivityElementRef';\nimport GroupedRenderingActivitiesComposer from './providers/GroupedRenderingActivities/GroupedRenderingActivitiesComposer';\nimport useNumRenderingActivities from './providers/GroupedRenderingActivities/useNumRenderingActivities';\nimport RenderingActivitiesComposer from './providers/RenderingActivities/RenderingActivitiesComposer';\nimport TranscriptFocusComposer from './providers/TranscriptFocus/TranscriptFocusComposer';\nimport useActiveDescendantId from './providers/TranscriptFocus/useActiveDescendantId';\nimport useFocusByActivityKey from './providers/TranscriptFocus/useFocusByActivityKey';\nimport useFocusRelativeActivity from './providers/TranscriptFocus/useFocusRelativeActivity';\nimport useFocusedExplicitly from './providers/TranscriptFocus/useFocusedExplicitly';\nimport useFocusedKey from './providers/TranscriptFocus/useFocusedKey';\n\nconst {\n useActivityKeys,\n useDirection,\n useGetActivityByKey,\n useGetKeyByActivityId,\n useLastAcknowledgedActivityKey,\n useLocalizer,\n useMarkActivityKeyAsRead,\n useMarkAllAsAcknowledged,\n useStyleOptions\n} = hooks;\n\nconst ROOT_STYLE = {\n '&.webchat__basic-transcript': {\n display: 'flex',\n flexDirection: 'column',\n overflow: 'hidden',\n // Make sure to set \"position: relative\" here to form another stacking context for the scroll-to-end button.\n // Stacking context help isolating elements that use \"z-index\" from global pollution.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Positioning/Understanding_z_index/The_stacking_context\n position: 'relative',\n\n '& .webchat__basic-transcript__filler': {\n flex: 1\n },\n\n '& .webchat__basic-transcript__scrollable': {\n display: 'flex',\n flexDirection: 'column',\n overflowX: 'hidden',\n WebkitOverflowScrolling: 'touch'\n },\n\n '& .webchat__basic-transcript__transcript': {\n listStyleType: 'none'\n },\n\n '& .webchat__basic-transcript__activity-focus-target': {\n pointerEvents: 'none'\n }\n }\n};\n\ntype ScrollBehavior = 'auto' | 'smooth';\ntype ScrollToOptions = { behavior?: ScrollBehavior };\ntype ScrollToPosition = { activityID?: string; scrollTop?: number };\n\ntype InternalTranscriptProps = Readonly<{\n className?: string;\n terminatorRef: MutableRefObject<HTMLDivElement>;\n}>;\n\n// TODO: [P1] #4133 Add telemetry for computing how many re-render done so far.\nconst InternalTranscript = memo(\n forwardRef<HTMLDivElement, InternalTranscriptProps>(\n (\n { className, terminatorRef }: InternalTranscriptProps,\n ref: MutableRefObject<HTMLDivElement> | ((instance: HTMLDivElement | null) => void)\n ) => {\n const [activeDescendantId] = useActiveDescendantId();\n const [direction] = useDirection();\n const [focusedKey] = useFocusedKey();\n const [focusedExplicitly] = useFocusedExplicitly();\n const focusElementMapRef = useActivityElementMapRef();\n const focus = useFocus();\n const focusByActivityKey = useFocusByActivityKey();\n const focusRelativeActivity = useFocusRelativeActivity();\n const getActivityByKey = useGetActivityByKey();\n const getKeyByActivityId = useGetKeyByActivityId();\n const localize = useLocalizer();\n const rootClassName = useStyleToEmotionObject()(ROOT_STYLE) + '';\n const rootElementRef = useRef<HTMLDivElement>(null);\n\n const focusedKeyRef = useValueRef(focusedKey);\n const transcriptAriaLabel = localize('TRANSCRIPT_ARIA_LABEL_ALT');\n\n const callbackRef = useCallback(\n (element: HTMLDivElement) => {\n if (typeof ref === 'function') {\n ref(element);\n } else {\n ref.current = element;\n }\n\n rootElementRef.current = element;\n },\n [ref, rootElementRef]\n );\n\n const [numRenderingActivities] = useNumRenderingActivities();\n\n const scrollToBottomScrollTo: (scrollTop: number, options?: ScrollToOptions) => void = useScrollTo();\n const scrollToBottomScrollToEnd: (options?: ScrollToOptions) => void = useScrollToEnd();\n\n const scrollTo = useCallback(\n (position: ScrollToPosition, { behavior = 'auto' }: ScrollToOptions = {}) => {\n if (!position) {\n throw new Error(\n 'botframework-webchat: First argument passed to \"useScrollTo\" must be a ScrollPosition object.'\n );\n }\n\n const { activityID: activityId, scrollTop } = position;\n\n if (typeof scrollTop !== 'undefined') {\n scrollToBottomScrollTo(scrollTop, { behavior });\n } else if (typeof activityId !== 'undefined') {\n const activityBoundingBoxElement = focusElementMapRef.current\n .get(getKeyByActivityId(activityId))\n ?.querySelector('.webchat__basic-transcript__activity-active-descendant');\n\n const scrollableElement = rootElementRef.current.querySelector('.webchat__basic-transcript__scrollable');\n\n if (scrollableElement && activityBoundingBoxElement) {\n // ESLint conflict with TypeScript. The result of getClientRects() is not an Array but DOMRectList, and cannot be destructured.\n // eslint-disable-next-line prefer-destructuring\n const activityBoundingBoxElementClientRect = activityBoundingBoxElement.getClientRects()[0];\n\n // ESLint conflict with TypeScript. The result of getClientRects() is not an Array but DOMRectList, and cannot be destructured.\n // eslint-disable-next-line prefer-destructuring\n const scrollableElementClientRect = scrollableElement.getClientRects()[0];\n\n // If either the activity or the transcript scrollable is not on DOM, we will not scroll the view.\n if (activityBoundingBoxElementClientRect && scrollableElementClientRect) {\n const { height: activityHeight, y: activityY } = activityBoundingBoxElementClientRect;\n const { height: scrollableHeight } = scrollableElementClientRect;\n const activityOffsetTop = activityY + scrollableElement.scrollTop;\n\n const scrollTop = Math.min(activityOffsetTop, activityOffsetTop - scrollableHeight + activityHeight);\n\n scrollToBottomScrollTo(scrollTop, { behavior });\n }\n }\n }\n },\n [focusElementMapRef, getKeyByActivityId, rootElementRef, scrollToBottomScrollTo]\n );\n\n const scrollToEnd = useCallback(\n () => scrollToBottomScrollToEnd({ behavior: 'smooth' }),\n [scrollToBottomScrollToEnd]\n );\n\n const scrollRelative = useCallback(\n ({ direction, displacement }: TranscriptScrollRelativeOptions) => {\n const { current: rootElement } = rootElementRef;\n\n if (!rootElement) {\n return;\n }\n\n const scrollable: HTMLElement = rootElement.querySelector('.webchat__basic-transcript__scrollable');\n let nextScrollTop: number;\n\n if (typeof displacement === 'number') {\n // eslint-disable-next-line no-magic-numbers\n nextScrollTop = scrollable.scrollTop + (direction === 'down' ? 1 : -1) * displacement;\n } else {\n // eslint-disable-next-line no-magic-numbers\n nextScrollTop = scrollable.scrollTop + (direction === 'down' ? 1 : -1) * scrollable.offsetHeight;\n }\n\n scrollTo(\n {\n scrollTop: Math.max(0, Math.min(scrollable.scrollHeight - scrollable.offsetHeight, nextScrollTop))\n },\n { behavior: 'smooth' }\n );\n },\n [rootElementRef, scrollTo]\n );\n\n // Since there could be multiple instances of <BasicTranscript> inside the <Composer>, when the developer calls `scrollXXX`, we need to call it on all instances.\n // We call `useRegisterScrollXXX` to register a callback function, the `useScrollXXX` will multiplex the call into each instance of <BasicTranscript>.\n useRegisterScrollTo(scrollTo);\n useRegisterScrollToEnd(scrollToEnd);\n useRegisterScrollRelativeTranscript(scrollRelative);\n\n const markActivityKeyAsRead = useMarkActivityKeyAsRead();\n\n const dispatchScrollPositionWithActivityId: (scrollPosition: ScrollToPosition) => void =\n useDispatchScrollPosition();\n\n // TODO: [P2] We should use IntersectionObserver to track what activity is in the scrollable.\n // However, IntersectionObserver is not available on IE11, we need to make a limited polyfill in React style.\n const handleScrollPosition = useCallback(\n ({ scrollTop }: { scrollTop: number }) => {\n const { current: rootElement } = rootElementRef;\n\n if (!rootElement) {\n return;\n }\n\n const scrollableElement = rootElement.querySelector('.webchat__basic-transcript__scrollable');\n\n // \"getClientRects()\" is not returning an array, thus, it is not destructurable.\n // eslint-disable-next-line prefer-destructuring\n const scrollableElementClientRect = scrollableElement.getClientRects()[0];\n\n // If the scrollable is not mounted, we cannot measure which activity is in view. Thus, we will not fire any events.\n if (!scrollableElementClientRect) {\n return;\n }\n\n const { bottom: scrollableClientBottom } = scrollableElementClientRect;\n\n // Find the activity just above scroll view bottom.\n // If the scroll view is already on top, get the first activity.\n const activityElements = Array.from(focusElementMapRef.current.entries());\n const activityKeyJustAboveScrollBottom: string | undefined = (\n scrollableElement.scrollTop\n ? activityElements\n .reverse()\n // Add subpixel tolerance\n .find(([, element]) => {\n // \"getClientRects()\" is not returning an array, thus, it is not destructurable.\n // eslint-disable-next-line prefer-destructuring\n const elementClientRect = element.getClientRects()[0];\n\n // If the activity is not attached to DOM tree, we should not count it as \"bottommost visible activity\", as it is not visible.\n return elementClientRect && elementClientRect.bottom < scrollableClientBottom + 1;\n })\n : activityElements[0]\n )?.[0];\n\n // When the end-user slowly scrolling the view down, we will mark activity as read when the message fully appear on the screen.\n activityKeyJustAboveScrollBottom && markActivityKeyAsRead(activityKeyJustAboveScrollBottom);\n\n if (dispatchScrollPositionWithActivityId) {\n const activity = getActivityByKey(activityKeyJustAboveScrollBottom);\n\n dispatchScrollPositionWithActivityId({ ...(activity ? { activityID: activity.id } : {}), scrollTop });\n }\n },\n [\n focusElementMapRef,\n dispatchScrollPositionWithActivityId,\n getActivityByKey,\n markActivityKeyAsRead,\n rootElementRef\n ]\n );\n\n useObserveScrollPosition(handleScrollPosition);\n\n const handleTranscriptKeyDown = useCallback<KeyboardEventHandler<HTMLDivElement>>(\n event => {\n const { target } = event;\n\n const fromEndOfTranscriptIndicator = target === terminatorRef.current;\n const fromTranscript = target === event.currentTarget;\n\n if (!fromEndOfTranscriptIndicator && !fromTranscript) {\n return;\n }\n\n let handled = true;\n\n switch (event.key) {\n case 'ArrowDown':\n focusRelativeActivity(fromEndOfTranscriptIndicator ? 0 : 1);\n break;\n\n case 'ArrowUp':\n // eslint-disable-next-line no-magic-numbers\n focusRelativeActivity(fromEndOfTranscriptIndicator ? 0 : -1);\n break;\n\n case 'End':\n focusRelativeActivity(Infinity);\n break;\n\n case 'Enter':\n // This is capturing plain ENTER.\n // When screen reader is not running, or screen reader is running outside of scan mode, the ENTER key will be captured here.\n if (!fromEndOfTranscriptIndicator) {\n const focusElement = focusElementMapRef.current?.get(focusedKeyRef.current);\n const activityFocusTrapTarget: HTMLElement =\n focusElement?.querySelector('.webchat__basic-transcript__group-focus-target') ??\n focusElement?.querySelector('.webchat__basic-transcript__activity-focus-target');\n // TODO: review focus approach:\n // It is not clear how to handle focus without introducing something like context.\n // Ideally we would want a way to interact with focus outside of React\n // so it doesn't cause transcript re-renders while still having an ability\n // to scope activity-related handlers and data in a single place.\n activityFocusTrapTarget?.focus();\n }\n\n break;\n\n case 'Escape':\n focus('sendBoxWithoutKeyboard');\n break;\n\n case 'Home':\n focusRelativeActivity(-Infinity);\n break;\n\n default:\n handled = false;\n break;\n }\n\n if (handled) {\n event.preventDefault();\n\n // 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.\n event.stopPropagation();\n }\n },\n [focusElementMapRef, focus, focusedKeyRef, focusRelativeActivity, terminatorRef]\n );\n\n const handleTranscriptKeyDownCapture = useCallback<KeyboardEventHandler<HTMLDivElement>>(\n event => {\n const { altKey, ctrlKey, key, metaKey, target } = event;\n\n if (\n altKey ||\n (ctrlKey && key !== 'v' && key !== 'V') ||\n metaKey ||\n (!inputtableKey(key) && key !== 'Backspace')\n ) {\n // Ignore if one of the utility key (except SHIFT) is pressed\n // E.g. CTRL-C on a link in one of the message should not jump to chat box\n // E.g. \"A\" or \"Backspace\" should jump to chat box\n return;\n }\n\n // Send keystrokes to send box if we are focusing on the transcript or terminator.\n if (target === event.currentTarget || target === terminatorRef.current) {\n event.stopPropagation();\n\n focus('sendBox');\n }\n },\n [focus, terminatorRef]\n );\n\n useRegisterFocusTranscript(useCallback(() => focusByActivityKey(undefined), [focusByActivityKey]));\n\n // When the focusing activity has changed, dispatch an event to observers of \"useObserveTranscriptFocus\".\n const dispatchTranscriptFocusByActivityKey = useDispatchTranscriptFocusByActivityKey();\n\n // Dispatch a \"transcript focus\" event based on user selection.\n // We should not dispatch \"transcript focus\" when a new activity come. Although the selection change, it is not initiated from the user.\n useMemo(\n () => dispatchTranscriptFocusByActivityKey(focusedExplicitly ? focusedKey : undefined),\n [dispatchTranscriptFocusByActivityKey, focusedKey, focusedExplicitly]\n );\n\n // When the transcript is being focused on, we should dispatch a \"transcriptfocus\" event.\n const handleFocus = useCallback(\n // We call \"focusByActivityKey\" with activity key of \"true\".\n // It means, tries to focus on anything.\n ({ currentTarget, target }) => target === currentTarget && focusByActivityKey(true, false),\n [focusByActivityKey]\n );\n\n // This is required by IE11.\n // 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\">,\n // despite the fact there are no \"tabIndex\" attributes set on the filler.\n // We need to artificially send the focus back to the transcript.\n const handleFocusFiller = useCallback(() => focusByActivityKey(undefined), [focusByActivityKey]);\n\n // When focus into the transcript using TAB/SHIFT-TAB, scroll the focused activity into view.\n useObserveFocusVisible(\n rootElementRef,\n useCallback(() => focusByActivityKey(undefined), [focusByActivityKey])\n );\n\n const hasAnyChild = !!numRenderingActivities;\n\n return (\n <TranscriptFocusArea\n // Although Android TalkBack 12.1 does not support `aria-activedescendant`, when used, it become buggy and will narrate content twice.\n // We are disabling `aria-activedescendant` for Android. See <ActivityRow> for details.\n aria-activedescendant={android ? undefined : activeDescendantId}\n aria-label={transcriptAriaLabel}\n className={classNames('webchat__basic-transcript', rootClassName, (className || '') + '')}\n dir={direction}\n onFocus={handleFocus}\n onKeyDown={handleTranscriptKeyDown}\n onKeyDownCapture={handleTranscriptKeyDownCapture}\n ref={callbackRef}\n // \"aria-activedescendant\" will only works with a number of roles and it must be explicitly set.\n // https://www.w3.org/TR/wai-aria/#aria-activedescendant\n role=\"group\"\n // For up/down arrow key navigation across activities, this component must be included in the tab sequence.\n // Otherwise, \"aria-activedescendant\" will not be narrated when the user press up/down arrow keys.\n // https://www.w3.org/TR/wai-aria-practices-1.1/#kbd_focus_activedescendant\n tabIndex={0}\n >\n <LiveRegionTranscript activityElementMapRef={focusElementMapRef} />\n {hasAnyChild && <FocusRedirector redirectRef={terminatorRef} />}\n <InternalTranscriptScrollable onFocusFiller={handleFocusFiller}>\n {hasAnyChild && <ActivityTree />}\n </InternalTranscriptScrollable>\n {hasAnyChild && (\n <Fragment>\n <FocusRedirector redirectRef={rootElementRef} />\n <TranscriptFocusTerminator ref={terminatorRef} role=\"note\" tabIndex={0} />\n </Fragment>\n )}\n </TranscriptFocusArea>\n );\n }\n )\n);\n\nInternalTranscript.displayName = 'InternalTranscript';\n\ntype InternalTranscriptScrollableProps = Readonly<{\n children?: ReactNode;\n onFocusFiller: () => void;\n}>;\n\n// Separating high-frequency hooks to improve performance.\nconst InternalTranscriptScrollable = ({ children, onFocusFiller }: InternalTranscriptScrollableProps) => {\n const [{ activities: activitiesStyleSet }] = useStyleSet();\n const [sticky]: [boolean] = useSticky();\n const localize = useLocalizer();\n const markAllAsAcknowledged = useMarkAllAsAcknowledged();\n\n const prevSticky = usePrevious(sticky);\n const transcriptRoleDescription = localize('TRANSCRIPT_ARIA_ROLE_ALT');\n\n const stickyChangedToTrue = prevSticky !== sticky && sticky;\n\n useMemo(\n () =>\n stickyChangedToTrue &&\n // TODO: [P2] Both `markActivityKeyAsRead` and `markAllAsAcknowledged` hook are setters of useState.\n // This means, in a render loop, we will be calling setter and will cause another re-render.\n // This is not trivial but we should think if there is a way to avoid this.\n markAllAsAcknowledged(),\n [markAllAsAcknowledged, stickyChangedToTrue]\n );\n\n // We need to check if `children` is `false` or not.\n // If `children` is `false`, React.Children.count(children) will still return 1 (truthy).\n const hasAnyChild = !!children && !!React.Children.count(children);\n\n return (\n <React.Fragment>\n <ReactScrollToBottomPanel className=\"webchat__basic-transcript__scrollable\">\n <div aria-hidden={true} className=\"webchat__basic-transcript__filler\" onFocus={onFocusFiller} />\n {hasAnyChild && (\n <TranscriptActivityList\n aria-roledescription={transcriptRoleDescription}\n className={classNames(activitiesStyleSet + '', 'webchat__basic-transcript__transcript')}\n role=\"feed\"\n >\n {children}\n </TranscriptActivityList>\n )}\n <BasicTypingIndicator />\n </ReactScrollToBottomPanel>\n </React.Fragment>\n );\n};\n\ntype Scroller = ({ offsetHeight, scrollTop }: { offsetHeight: number; scrollTop: number }) => number;\n\n// \"scroller\" is the auto-scroll limiter, a.k.a. auto scroll snap.\nconst useScroller = (activityElementMapRef: MutableRefObject<ActivityElementMap>): Scroller => {\n const [activityKeys] = useActivityKeys();\n const [lastAcknowledgedActivityKey] = useLastAcknowledgedActivityKey();\n const [styleOptions] = useStyleOptions();\n\n const activityKeysRef = useValueRef(activityKeys);\n const lastAcknowledgedActivityKeyRef = useValueRef(lastAcknowledgedActivityKey);\n const styleOptionsRef = useValueRef(styleOptions);\n\n return useCallback(\n ({ offsetHeight, scrollTop }) => {\n const {\n current: {\n autoScrollSnapOnActivity,\n autoScrollSnapOnActivityOffset,\n autoScrollSnapOnPage,\n autoScrollSnapOnPageOffset\n }\n } = styleOptionsRef;\n\n const patchedAutoScrollSnapOnActivity =\n typeof autoScrollSnapOnActivity === 'number'\n ? Math.max(0, autoScrollSnapOnActivity)\n : autoScrollSnapOnActivity\n ? 1\n : 0;\n const patchedAutoScrollSnapOnPage =\n typeof autoScrollSnapOnPage === 'number'\n ? Math.max(0, Math.min(1, autoScrollSnapOnPage))\n : autoScrollSnapOnPage\n ? 1\n : 0;\n const patchedAutoScrollSnapOnActivityOffset =\n typeof autoScrollSnapOnActivityOffset === 'number' ? autoScrollSnapOnActivityOffset : 0;\n const patchedAutoScrollSnapOnPageOffset =\n typeof autoScrollSnapOnPageOffset === 'number' ? autoScrollSnapOnPageOffset : 0;\n\n if (patchedAutoScrollSnapOnActivity || patchedAutoScrollSnapOnPage) {\n const { current: activityElementMap } = activityElementMapRef;\n const { current: activityKeys } = activityKeysRef;\n const { current: lastAcknowledgedActivityKey } = lastAcknowledgedActivityKeyRef;\n const values: number[] = [];\n\n const lastAcknowledgedActivityKeyIndex = activityKeys.indexOf(lastAcknowledgedActivityKey);\n\n if (~lastAcknowledgedActivityKeyIndex) {\n // The activity that we acknowledged could be not rendered, such as post back activity.\n // When calculating scroll snap, we can only base on the first unacknowledged-and-rendering activity.\n const renderingActivityKeys = Array.from(activityElementMap.keys());\n let firstUnacknowledgedActivityElementIndex = -1;\n\n for (const acknowledgedActivityKey of activityKeys.slice(0, lastAcknowledgedActivityKeyIndex + 1).reverse()) {\n const index = renderingActivityKeys.indexOf(acknowledgedActivityKey);\n\n if (~index) {\n if (index !== renderingActivityKeys.length - 1) {\n firstUnacknowledgedActivityElementIndex = index + 1;\n }\n\n break;\n }\n }\n\n if (~firstUnacknowledgedActivityElementIndex) {\n const activityElements = Array.from(activityElementMap.values());\n\n if (patchedAutoScrollSnapOnActivity) {\n // Gets the activity element which we should snap to.\n const nthUnacknowledgedActivityElement =\n activityElements[firstUnacknowledgedActivityElementIndex + patchedAutoScrollSnapOnActivity - 1];\n\n if (nthUnacknowledgedActivityElement) {\n const nthUnacknowledgedActivityBoundingBoxElement = nthUnacknowledgedActivityElement?.querySelector(\n '.webchat__basic-transcript__activity-active-descendant'\n ) as HTMLElement;\n const nthUnacknowledgedActivityOffsetTop =\n nthUnacknowledgedActivityElement.offsetTop + nthUnacknowledgedActivityBoundingBoxElement.offsetTop;\n\n values.push(\n nthUnacknowledgedActivityOffsetTop +\n nthUnacknowledgedActivityBoundingBoxElement.offsetHeight -\n offsetHeight -\n scrollTop +\n patchedAutoScrollSnapOnActivityOffset\n );\n }\n }\n\n if (patchedAutoScrollSnapOnPage) {\n const firstUnacknowledgedActivityElement = activityElements[+firstUnacknowledgedActivityElementIndex];\n const firstUnacknowledgedActivityBoundingBoxElement = firstUnacknowledgedActivityElement.querySelector(\n '.webchat__basic-transcript__activity-active-descendant'\n ) as HTMLElement;\n const firstUnacknowledgedActivityOffsetTop =\n firstUnacknowledgedActivityElement.offsetTop + firstUnacknowledgedActivityBoundingBoxElement.offsetTop;\n\n values.push(\n firstUnacknowledgedActivityOffsetTop -\n scrollTop -\n offsetHeight * (1 - patchedAutoScrollSnapOnPage) +\n patchedAutoScrollSnapOnPageOffset\n );\n }\n }\n }\n\n return Math.min(...values);\n }\n\n return Infinity;\n },\n [activityElementMapRef, activityKeysRef, lastAcknowledgedActivityKeyRef, styleOptionsRef]\n );\n};\n\ntype BasicTranscriptProps = Readonly<{\n className: string;\n}>;\n\nconst BasicTranscript = ({ className = '' }: BasicTranscriptProps) => {\n const [{ stylesRoot }] = useStyleOptions();\n const [nonce] = useNonce();\n const activityElementMapRef = useActivityElementMapRef();\n const containerRef = useRef<HTMLDivElement>(null);\n const terminatorRef = useRef<HTMLDivElement>(null);\n\n const scroller = useScroller(activityElementMapRef);\n const styleOptions = useMemo(() => ({ stylesRoot }), [stylesRoot]);\n\n return (\n <ChatHistoryBox className={className}>\n <RenderingActivitiesComposer>\n <TranscriptFocusComposer containerRef={containerRef}>\n <ReactScrollToBottomComposer nonce={nonce} scroller={scroller} styleOptions={styleOptions}>\n <ChatHistoryToolbar>\n <ScrollToEndButton terminatorRef={terminatorRef} />\n </ChatHistoryToolbar>\n <GroupedRenderingActivitiesComposer>\n <InternalTranscript ref={containerRef} terminatorRef={terminatorRef} />\n </GroupedRenderingActivitiesComposer>\n </ReactScrollToBottomComposer>\n </TranscriptFocusComposer>\n </RenderingActivitiesComposer>\n </ChatHistoryBox>\n );\n};\n\nexport default wrapWith(ChatHistoryDOMComposer)(memo(BasicTranscript));\nexport { type BasicTranscriptProps };\n","import { reactNode, validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport classNames from 'classnames';\nimport React, { memo } from 'react';\nimport { object, optional, pipe, readonly, string, type InferInput } from 'valibot';\n\nimport { useStyleSet } from '../hooks';\n\nconst chatHistoryBoxPropsSchema = pipe(\n object({\n children: optional(reactNode()),\n className: optional(string())\n }),\n readonly()\n);\n\ntype ChatHistoryBoxProps = InferInput<typeof chatHistoryBoxPropsSchema>;\n\nfunction ChatHistoryBox(props: ChatHistoryBoxProps) {\n const { children, className } = validateProps(chatHistoryBoxPropsSchema, props);\n\n const [{ chatHistoryBox }] = useStyleSet();\n\n return <div className={classNames('webchat__chat-history-box', className, chatHistoryBox)}>{children}</div>;\n}\n\nexport default memo(ChatHistoryBox);\nexport { chatHistoryBoxPropsSchema, type ChatHistoryBoxProps };\n","import { hooks } from 'botframework-webchat-api';\nimport { reactNode, validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport classNames from 'classnames';\nimport React, { memo } from 'react';\nimport { object, optional, pipe, readonly, type InferInput } from 'valibot';\n\nconst { useDirection } = hooks;\n\nconst chatHistoryToolbarPropsSchema = pipe(\n object({\n children: optional(reactNode())\n }),\n readonly()\n);\n\ntype ChatHistoryToolbarProps = InferInput<typeof chatHistoryToolbarPropsSchema>;\n\nfunction ChatHistoryToolbar(props: ChatHistoryToolbarProps) {\n const { children } = validateProps(chatHistoryToolbarPropsSchema, props);\n\n const [direction] = useDirection();\n\n return (\n <div\n className={classNames(\n 'webchat__chat-history-box__toolbar',\n direction === 'rtl' ? 'webchat__chat-history-box__toolbar--rtl' : ''\n )}\n >\n {children}\n </div>\n );\n}\n\nexport default memo(ChatHistoryToolbar);\nexport { chatHistoryToolbarPropsSchema, type ChatHistoryToolbarProps };\n","import { hooks } from 'botframework-webchat-api';\nimport React, { Fragment, memo, MutableRefObject, useCallback, useMemo } from 'react';\nimport { useAnimatingToEnd, useAtEnd, useScrollToEnd, useSticky } from 'react-scroll-to-bottom';\nimport { useRefFrom } from 'use-ref-from';\n\nimport useRenderingActivityKeys from '../../providers/RenderingActivities/useRenderingActivityKeys';\nimport useFocusByActivityKey from '../../providers/TranscriptFocus/useFocusByActivityKey';\n\nconst { useActivityKeysByRead, useCreateScrollToEndButtonRenderer, useMarkActivityKeyAsRead, useStyleOptions } = hooks;\n\nconst useScrollToEndRenderResult = (terminatorRef: MutableRefObject<HTMLDivElement>) => {\n const [renderingActivityKeys] = useRenderingActivityKeys();\n const [sticky]: [boolean] = useSticky();\n const [animatingToEnd]: [boolean] = useAnimatingToEnd();\n const [atEnd]: [boolean] = useAtEnd();\n const [, unreadActivityKeys] = useActivityKeysByRead();\n const [styleOptions] = useStyleOptions();\n const focusByActivityKey = useFocusByActivityKey();\n const markActivityKeyAsRead = useMarkActivityKeyAsRead();\n const scrollToEnd: (options?: ScrollToOptions) => void = useScrollToEnd();\n\n // Acknowledged means either:\n // 1. The user sent a message\n // - 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.\n // 2. The user scroll to the bottom of the transcript, from a non-bottom scroll position\n // - If the transcript is already at the bottom, the user needs to scroll up and then go back down\n // - What happens if we are relaxing \"scrolled from a non-bottom scroll position\":\n // 1. The condition will become solely \"at the bottom of the transcript\"\n // 2. Auto-scroll will always scroll the transcript to the bottom\n // 3. Web Chat will always acknowledge all activities as it is at the bottom\n // 4. Acknowledge flag become useless\n // 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)\n // Web Chat will keep scrolling and not snapped/paused\n\n // 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.\n // Activities loaded initially could be from conversation history. Without assuming acknowledgement, Web Chat will not scroll initially (as everything is not acknowledged).\n // It would be better if the chat adapter should let Web Chat know if the activity is loaded from history or not.\n\n // TODO: [P2] #3670 Move the \"conversation history acknowledgement\" logic mentioned above to polyfill of chat adapters.\n // 1. Chat adapter should send \"acknowledged\" as part of \"channelData\"\n // 2. If \"acknowledged\" is \"undefined\", we set it to:\n // a. true, if there are no egress activities yet\n // b. Otherwise, false\n\n const renderingActivityKeysRef = useRefFrom(renderingActivityKeys);\n\n // To prevent flashy button, we are not waiting for another render loop to update the `[readActivityKeys, unreadActivityKeys]` state.\n // Instead, we are building the next one in this `useMemo` call.\n const nextUnreadActivityKeys = useMemo(() => {\n // This code need to be careful reviewed as it will cause another render. The code should be converging.\n // After we call `markActivityKeyAsRead`, everything will be read and nothing will be unread.\n // That means, in next render, `unreadActivityKeys` will be emptied and the `markActivityKeyAsRead` will not get called again.\n if (sticky && unreadActivityKeys.length) {\n markActivityKeyAsRead(unreadActivityKeys[unreadActivityKeys.length - 1]);\n\n return [];\n }\n\n return unreadActivityKeys;\n }, [markActivityKeyAsRead, sticky, unreadActivityKeys]);\n\n const nextUnreadActivityKeysRef = useRefFrom(nextUnreadActivityKeys);\n\n // If we are rendering anything that is unread, we should show the \"New messages\" button.\n // Not everything in the `unreadActivityKeys` are rendered, say, bot typing indicator.\n // We should not show the \"New messages\" button for bot typing indicator as it will confuse the user.\n const unread = useMemo(\n () => nextUnreadActivityKeys.some(key => renderingActivityKeys.includes(key)),\n [renderingActivityKeys, nextUnreadActivityKeys]\n );\n\n const handleScrollToEndButtonClick = useCallback(() => {\n scrollToEnd({ behavior: 'smooth' });\n\n const { current: renderingActivityKeys } = renderingActivityKeysRef;\n\n // After the \"New message\" button is clicked, focus on the first unread activity which will be rendered.\n const firstUnreadRenderingActivityKey = nextUnreadActivityKeysRef.current.find(key =>\n renderingActivityKeys.includes(key)\n );\n\n if (firstUnreadRenderingActivityKey) {\n focusByActivityKey(firstUnreadRenderingActivityKey);\n } else {\n // If no unread activity, send the focus to the terminator block.\n terminatorRef.current?.focus();\n }\n }, [focusByActivityKey, nextUnreadActivityKeysRef, renderingActivityKeysRef, scrollToEnd, terminatorRef]);\n\n // According to tests no memo is expected here\n const renderScrollToEndButton = useCreateScrollToEndButtonRenderer()({\n atEnd: animatingToEnd || atEnd || sticky,\n styleOptions,\n unread\n });\n\n return renderScrollToEndButton && renderScrollToEndButton({ onClick: handleScrollToEndButtonClick });\n};\n\nfunction ScrollToEndButton({ terminatorRef }: Readonly<{ terminatorRef: MutableRefObject<HTMLDivElement> }>) {\n const children = useScrollToEndRenderResult(terminatorRef);\n return <Fragment>{children}</Fragment>;\n}\n\nexport default memo(ScrollToEndButton);\n","import { useRenderingActivitiesContext } from './private/RenderingActivitiesContext';\n\nexport default function useRenderingActivityKeys(): readonly [readonly string[]] {\n return useRenderingActivitiesContext().renderingActivityKeysState;\n}\n","import { ActivityGroupingDecorator } from 'botframework-webchat-api/decorator.js';\nimport React, { Fragment, memo } from 'react';\n\nimport { type GroupedRenderingActivities } from '../providers/GroupedRenderingActivities/GroupedRenderingActivities';\nimport useGroupedRenderingActivities from '../providers/GroupedRenderingActivities/useGroupedRenderingActivities';\n\ntype ActivityGroupProps = Readonly<{\n group: GroupedRenderingActivities;\n}>;\n\nconst ActivityTreeGroup = memo(({ group }: ActivityGroupProps) => (\n <ActivityGroupingDecorator activities={group.activities} groupingName={group.groupingName}>\n {group.children.map(child => (\n <ActivityTreeGroup group={child} key={child.key} />\n ))}\n </ActivityGroupingDecorator>\n));\n\nActivityTreeGroup.displayName = 'ActivityTreeGroup';\n\nconst ActivityTree = () => {\n const [group] = useGroupedRenderingActivities();\n\n return (\n <Fragment>\n {group.map(child => (\n <ActivityTreeGroup group={child} key={child.key} />\n ))}\n </Fragment>\n );\n};\n\nActivityTree.displayName = 'ActivityTree';\n\nexport default memo(ActivityTree);\n","import createContextAndHook from '../../createContextAndHook';\nimport { type GroupedRenderingActivities } from '../GroupedRenderingActivities';\n\ntype GroupedRenderingActivitiesContextType = Readonly<{\n groupedRenderingActivitiesState: readonly [readonly GroupedRenderingActivities[]];\n numRenderingActivitiesState: readonly [number];\n}>;\n\nconst { contextComponentType, useContext } = createContextAndHook<GroupedRenderingActivitiesContextType>(\n 'GroupedRenderingActivitiesContext'\n);\n\nexport default contextComponentType;\nexport { useContext as useGroupedRenderingActivitiesContext, type GroupedRenderingActivitiesContextType };\n","import { type GroupedRenderingActivities } from './GroupedRenderingActivities';\nimport { useGroupedRenderingActivitiesContext } from './private/GroupedRenderingActivitiesContext';\n\nexport default function useGroupedRenderingActivities(): readonly [readonly GroupedRenderingActivities[]] {\n return useGroupedRenderingActivitiesContext().groupedRenderingActivitiesState;\n}\n","import { hooks } from 'botframework-webchat-api';\nimport type { WebChatActivity } from 'botframework-webchat-core';\nimport type { RefObject } from 'react';\nimport React, { memo, useEffect, useMemo, useRef } from 'react';\n\nimport LiveRegionActivity from '../LiveRegion/LiveRegionActivity';\nimport tabbableElements from '../Utils/tabbableElements';\nimport useLocalizeAccessKey from '../hooks/internal/useLocalizeAccessKey';\nimport useSuggestedActionsAccessKey from '../hooks/internal/useSuggestedActionsAccessKey';\nimport { useQueueStaticElement } from '../providers/LiveRegionTwin';\nimport LiveRegionSendFailed from './LiveRegion/SendFailed';\nimport isPresentational from './LiveRegion/isPresentational';\nimport useTypistNames from './useTypistNames';\n\nimport type { ActivityElementMap } from './types';\n\nconst { useActivities, useGetKeyByActivity, useLocalizer } = hooks;\n\ntype RenderingActivities = Map<string, WebChatActivity>;\n\ntype LiveRegionTranscriptProps = Readonly<{\n activityElementMapRef: RefObject<ActivityElementMap>;\n}>;\n\nconst LiveRegionTranscript = ({ activityElementMapRef }: LiveRegionTranscriptProps) => {\n // We are looking for all activities instead of just those will be rendered.\n // This is because some activities that chosen not be rendered in the chat history,\n // we might still need to be read by screen reader. Such as, suggested actions without text content.\n const [accessKey] = useSuggestedActionsAccessKey();\n const [activities] = useActivities();\n const [typistNames] = useTypistNames();\n const getKeyByActivity = useGetKeyByActivity();\n const localize = useLocalizer();\n const localizeAccessKeyAsAccessibleName = useLocalizeAccessKey('accessible name');\n const queueStaticElement = useQueueStaticElement();\n\n const liveRegionInteractiveLabelAlt = localize('TRANSCRIPT_LIVE_REGION_INTERACTIVE_LABEL_ALT');\n const liveRegionInteractiveWithLinkLabelAlt = localize('TRANSCRIPT_LIVE_REGION_INTERACTIVE_WITH_LINKS_LABEL_ALT');\n const typingIndicator =\n !!typistNames.length &&\n localize(\n typistNames.length > 1 ? 'TYPING_INDICATOR_MULTIPLE_TEXT' : 'TYPING_INDICATOR_SINGLE_TEXT',\n typistNames[0]\n );\n\n const liveRegionSuggestedActionsLabelAlt = accessKey\n ? localize(\n 'TRANSCRIPT_LIVE_REGION_SUGGESTED_ACTIONS_WITH_ACCESS_KEY_LABEL_ALT',\n localizeAccessKeyAsAccessibleName(accessKey)\n )\n : localize('TRANSCRIPT_LIVE_REGION_SUGGESTED_ACTIONS_LABEL_ALT');\n\n const keyedActivities = useMemo<Readonly<RenderingActivities>>(\n () =>\n Object.freeze(\n activities.reduce<RenderingActivities>((intermediate, activity) => {\n // Only \"message\" activity will be read by screen reader.\n if (activity.type === 'message') {\n return intermediate.set(getKeyByActivity(activity), activity);\n }\n\n return intermediate;\n }, new Map<string, WebChatActivity>())\n ),\n [activities, getKeyByActivity]\n );\n\n const prevRenderingActivitiesRef = useRef<Readonly<RenderingActivities>>();\n\n useEffect(() => {\n const { current: prevRenderingActivities } = prevRenderingActivitiesRef;\n const appendedActivities: { activity: WebChatActivity; key: string }[] = [];\n\n // Bottom-up, find activities which are recently appended (i.e. new activity will have a new key).\n // We only consider new activities added to the bottom of the chat history.\n // Based on how `aria-relevant=\"additions\"` works, activities that are updated, deleted, or reordered, should be ignored.\n for (const [key, activity] of Array.from(keyedActivities.entries()).reverse()) {\n if (prevRenderingActivities?.has(key)) {\n break;\n }\n\n appendedActivities.unshift({ activity, key });\n\n isPresentational(activity) || queueStaticElement(<LiveRegionActivity activity={activity} />);\n }\n\n const hasNewLink = appendedActivities.some(({ key }) => activityElementMapRef.current.get(key)?.querySelector('a'));\n\n const hasNewWidget = appendedActivities.some(\n ({ key }) =>\n !!tabbableElements(\n activityElementMapRef.current.get(key)?.querySelector('.webchat__basic-transcript__activity-body')\n ).length\n );\n\n const hasSuggestedActions = appendedActivities.some(\n ({ activity }) => activity.type === 'message' && activity.suggestedActions?.actions?.length\n );\n\n // This is a footnote reading either:\n // - \"Message is interactive. Press shift tab key 2 to 3 times to switch to the chat history. Then click on the message to interact.\", or;\n // - \"One or more links in the message. Press shift tab key 2 to 3 times to switch to the chat history. Then click on the message to interact.\"\n if (hasNewLink || hasNewWidget) {\n queueStaticElement(\n <div className=\"webchat__live-region-transcript__note\" role=\"note\">\n {hasNewLink ? liveRegionInteractiveWithLinkLabelAlt : liveRegionInteractiveLabelAlt}\n </div>\n );\n }\n\n // This is a footnote reading \"Suggested actions container: has content. Press CTRL + SHIFT + A to select.\"\n if (hasSuggestedActions) {\n queueStaticElement(\n <div className=\"webchat__live-region-transcript__note\" role=\"note\">\n {liveRegionSuggestedActionsLabelAlt}\n </div>\n );\n }\n\n prevRenderingActivitiesRef.current = keyedActivities;\n }, [\n activityElementMapRef,\n liveRegionInteractiveLabelAlt,\n liveRegionInteractiveWithLinkLabelAlt,\n liveRegionSuggestedActionsLabelAlt,\n prevRenderingActivitiesRef,\n queueStaticElement,\n keyedActivities\n ]);\n\n useMemo(() => typingIndicator && queueStaticElement(typingIndicator), [queueStaticElement, typingIndicator]);\n\n return <LiveRegionSendFailed />;\n};\n\nLiveRegionTranscript.displayName = 'LiveRegionTranscript';\n\nexport default memo(LiveRegionTranscript);\n","/* eslint no-magic-numbers: [\"error\", { \"ignore\": [2] }] */\n\nimport { hooks } from 'botframework-webchat-api';\nimport { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport classNames from 'classnames';\nimport React, { Fragment, useMemo } from 'react';\nimport { any, object, pipe, readonly, type InferInput } from 'valibot';\n\nimport { useStyleToEmotionObject } from '../hooks/internal/styleToEmotionObject';\nimport useRenderMarkdownAsHTML from '../hooks/useRenderMarkdownAsHTML';\nimport activityAltText from '../Utils/activityAltText';\nimport LiveRegionAttachments from './private/LiveRegionAttachments';\nimport LiveRegionSuggestedActions from './private/LiveRegionSuggestedActions';\n\nconst { useAvatarForBot, useLocalizer } = hooks;\n\nconst ROOT_STYLE = {\n '&.webchat__live-region-activity': {\n color: 'transparent',\n height: 1,\n opacity: 0,\n overflow: 'hidden',\n position: 'absolute',\n top: 0,\n whiteSpace: 'nowrap',\n width: 1\n }\n};\n\nconst liveRegionActivityPropsSchema = pipe(\n object({\n activity: any()\n }),\n readonly()\n);\n\ntype LiveRegionActivityProps = InferInput<typeof liveRegionActivityPropsSchema>;\n\nfunction LiveRegionActivity(props: LiveRegionActivityProps) {\n const { activity } = validateProps(liveRegionActivityPropsSchema, props);\n\n const [{ initials: botInitials }] = useAvatarForBot();\n const {\n from: { role },\n type\n } = activity;\n const fallbackText: string | undefined =\n type === 'message' ? activity.channelData['webchat:fallback-text'] : undefined;\n const localize = useLocalizer();\n const renderMarkdownAsHTML = useRenderMarkdownAsHTML('accessible name');\n const rootClassName = useStyleToEmotionObject()(ROOT_STYLE) + '';\n const textAlt = useMemo(() => activityAltText(activity, renderMarkdownAsHTML), [activity, renderMarkdownAsHTML]);\n\n const greetingAlt: string = (\n role === 'user' ? localize('ACTIVITY_YOU_SAID_ALT') : localize('ACTIVITY_BOT_SAID_ALT', botInitials || '')\n ).replace(/\\s{2,}/gu, ' ');\n const validFallbackText = fallbackText && typeof fallbackText === 'string';\n\n return (\n <article aria-atomic={true} className={classNames('webchat__live-region-activity', rootClassName)}>\n <div>{greetingAlt}</div>\n {validFallbackText ? (\n <div>{fallbackText}</div>\n ) : (\n <Fragment>\n <div>{textAlt}</div>\n {type === 'message' && (\n <Fragment>\n {!!activity.suggestedActions && (\n <LiveRegionSuggestedActions suggestedActions={activity.suggestedActions} />\n )}\n <LiveRegionAttachments activity={activity} />\n </Fragment>\n )}\n </Fragment>\n )}\n </article>\n );\n}\n\nexport default LiveRegionActivity;\nexport { liveRegionActivityPropsSchema, type LiveRegionActivityProps };\n","import { hooks } from 'botframework-webchat-api';\nimport { type WebChatActivity } from 'botframework-webchat-core';\nimport React, { Fragment } from 'react';\n\nconst { useCreateAttachmentForScreenReaderRenderer, useLocalizer } = hooks;\n\nconst ACTIVITY_NUM_ATTACHMENTS_ALT_IDS = {\n few: 'ACTIVITY_NUM_ATTACHMENTS_FEW_ALT',\n many: 'ACTIVITY_NUM_ATTACHMENTS_MANY_ALT',\n one: 'ACTIVITY_NUM_ATTACHMENTS_ONE_ALT',\n other: 'ACTIVITY_NUM_ATTACHMENTS_OTHER_ALT',\n two: 'ACTIVITY_NUM_ATTACHMENTS_TWO_ALT'\n};\n\ntype LiveRegionAttachmentsProps = Readonly<{\n activity: Readonly<WebChatActivity & { type: 'message' }>;\n}>;\n\n// When \"renderAttachments\" is false, we will not render the content of attachments.\n// That means, it will only render \"2 attachments\", instead of \"image attachment\".\n// This is used in the visual transcript, where we render \"Press ENTER to interact.\"\nconst LiveRegionAttachments = ({ activity }: LiveRegionAttachmentsProps) => {\n const { attachments = [] } = activity;\n const createAttachmentForScreenReaderRenderer = useCreateAttachmentForScreenReaderRenderer();\n const localizeWithPlural = useLocalizer({ plural: true });\n\n const attachmentForScreenReaderRenderers = attachments\n .map(attachment => createAttachmentForScreenReaderRenderer({ activity, attachment }))\n .filter(Boolean);\n\n const numGenericAttachments = attachments.length - attachmentForScreenReaderRenderers.length;\n\n const numAttachmentsAlt =\n !!numGenericAttachments && localizeWithPlural(ACTIVITY_NUM_ATTACHMENTS_ALT_IDS, numGenericAttachments);\n\n return (\n <Fragment>\n {attachmentForScreenReaderRenderers.map((render, index) => (\n // Direct Line does not have key for attachment other than index.\n // eslint-disable-next-line react/no-array-index-key\n <div key={index}>{typeof render === 'function' && render()}</div>\n ))}\n {numAttachmentsAlt && <p>{numAttachmentsAlt}</p>}\n </Fragment>\n );\n};\n\nexport default LiveRegionAttachments;\n\nexport type { LiveRegionAttachmentsProps };\n","import { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport React, { memo } from 'react';\nimport { any, array, object, pipe, readonly, type InferInput } from 'valibot';\n\nimport computeSuggestedActionText from '../../Utils/computeSuggestedActionText';\n\nconst liveRegionSuggestedActionsPropSchema = pipe(\n object({\n suggestedActions: pipe(\n object({\n // TODO: Should built `directLineCardActionSchema`.\n actions: pipe(array(any()), readonly())\n }),\n readonly()\n )\n }),\n readonly()\n);\n\ntype LiveRegionSuggestedActionsProps = InferInput<typeof liveRegionSuggestedActionsPropSchema>;\n\nfunction LiveRegionSuggestedActions(props: LiveRegionSuggestedActionsProps) {\n const { suggestedActions } = validateProps(liveRegionSuggestedActionsPropSchema, props);\n\n return (\n suggestedActions.actions?.length && (\n <p className=\"webchat__live-region-activity__suggested-actions\">\n {suggestedActions.actions.map((action, index) => (\n // Direct Line schema does not have key other than index.\n // eslint-disable-next-line react/no-array-index-key\n <button className=\"webchat__live-region-activity__suggested-action\" key={index} tabIndex={-1} type=\"button\">\n {computeSuggestedActionText(action)}\n </button>\n ))}\n </p>\n )\n );\n}\n\nexport default memo(LiveRegionSuggestedActions);\nexport { liveRegionSuggestedActionsPropSchema, type LiveRegionSuggestedActionsProps };\n","import { hooks } from 'botframework-webchat-api';\nimport { memo, useMemo } from 'react';\n\nimport usePrevious from '../../hooks/internal/usePrevious';\nimport { useLiveRegion } from '../../providers/LiveRegionTwin';\nimport { SEND_FAILED } from '../../types/internal/SendStatus';\nimport isPresentational from './isPresentational';\n\nconst { useGetActivityByKey, useLocalizer, useSendStatusByActivityKey } = hooks;\n\n/**\n * React component to on-demand narrate \"Failed to send message\" at the end of the live region.\n *\n * We cannot narrate \"failed to send message\" next to the activity. At the time when the activity is being sent,\n * the activity is also queued to the screen reader. And at that moment, we not yet know if the activity can be sent or not.\n *\n * We only know when the activity was failed to send at a later time.\n *\n * Thus, we need to use a live region \"footnote\" to indicate the message was failed to send.\n */\nconst LiveRegionSendFailed = () => {\n const [sendStatusByActivityKey] = useSendStatusByActivityKey();\n const getActivityByKey = useGetActivityByKey();\n const localize = useLocalizer();\n\n /**\n * List of keys of outgoing and non-presentational activities that are failed to send.\n *\n * Activities which are presentational, such as `event` or `typing`, are ignored to reduce confusions.\n * \"Failed to send message\" should not be narrated for presentational activities.\n */\n const activityKeysOfSendFailed = useMemo<Set<string>>(\n () =>\n Array.from(sendStatusByActivityKey).reduce(\n (activityKeysOfSendFailed, [key, sendStatus]) =>\n sendStatus === SEND_FAILED && !isPresentational(getActivityByKey(key))\n ? activityKeysOfSendFailed.add(key)\n : activityKeysOfSendFailed,\n new Set<string>()\n ),\n [getActivityByKey, sendStatusByActivityKey]\n );\n\n /** Returns localized \"Failed to send message.\" */\n const liveRegionSendFailedAlt = localize('TRANSCRIPT_LIVE_REGION_SEND_FAILED_ALT');\n\n const prevActivityKeysOfSendFailed = usePrevious(activityKeysOfSendFailed);\n\n /** True, if one or more non-presentational activities start appears as \"send failed\", otherwise, false. */\n const hasNewSendFailed = useMemo<boolean>(() => {\n if (activityKeysOfSendFailed === prevActivityKeysOfSendFailed) {\n return false;\n }\n\n for (const key of activityKeysOfSendFailed.keys()) {\n if (!prevActivityKeysOfSendFailed.has(key)) {\n return true;\n }\n }\n\n return false;\n }, [activityKeysOfSendFailed, prevActivityKeysOfSendFailed]);\n\n useLiveRegion(() => hasNewSendFailed && liveRegionSendFailedAlt, [hasNewSendFailed, liveRegionSendFailedAlt]);\n\n return null;\n};\n\nLiveRegionSendFailed.displayName = 'LiveRegionSendFailed';\n\nexport default memo(LiveRegionSendFailed);\n","// TODO: [P0] #4133 Don't copy.\nimport { useEffect, useRef } from 'react';\n\nexport default function usePrevious<T>(value: T): T {\n const ref = useRef<T>();\n\n useEffect(() => {\n ref.current = value;\n });\n\n return ref.current;\n}\n","import type { WebChatActivity } from 'botframework-webchat-core';\n\n/**\n * Determines if the rendering activity is presentational or not.\n * Returns `true` if the activity is presentational and should not be read by screen reader, otherwise, `false`.\n *\n * @returns {boolean} `true` if the activity is presentational and should not be read by screen reader, otherwise, `false`.\n */\nexport default function isPresentational(activity: WebChatActivity): boolean {\n if (activity.type !== 'message') {\n return true;\n }\n\n const { channelData } = activity;\n\n // \"Fallback text\" includes both message text and narratives for attachments.\n // Emptying out \"fallback text\" essentially mute for both message and attachments.\n const fallbackText = channelData?.['webchat:fallback-text'];\n\n if (typeof fallbackText === 'string') {\n return !fallbackText;\n }\n\n // If there are \"displayText\" (MessageBack), \"text\", any attachments, or suggested actions, there are something to narrate.\n return !(\n channelData?.messageBack?.displayText ||\n activity.text ||\n activity.attachments?.length ||\n activity.suggestedActions?.actions?.length\n );\n}\n","import { hooks } from 'botframework-webchat-api';\nimport { useEffect, useRef } from 'react';\n\nconst { useActiveTyping } = hooks;\n\nfunction arrayEquals<T>(x: readonly T[], y: readonly T[]): boolean {\n return x.length === y.length && x.every((value, index) => y[+index] === value);\n}\n\n/** Gets names of users who are actively typing, sorted by the time they started typing. */\nexport default function useTypistNames(): readonly [readonly string[]] {\n const [activeTyping] = useActiveTyping();\n const prevTypistNamesStateRef = useRef<readonly [readonly string[]]>(\n Object.freeze([Object.freeze([] as string[])]) as [readonly string[]]\n );\n\n const activeTypingFromOthersValues = Object.values(activeTyping).filter(({ role }) => role !== 'user');\n\n // Sort the list by the first typist.\n const sortedActiveTypingFromOthersValues = activeTypingFromOthersValues.sort(({ at: x }, { at: y }) => x - y);\n\n const typistNamesState: readonly [readonly string[]] = Object.freeze([\n Object.freeze(sortedActiveTypingFromOthersValues.map(({ name }) => name))\n ]) as readonly [readonly string[]];\n\n const { current: prevTypistNamesState } = prevTypistNamesStateRef;\n\n const nextTypistNamesState = arrayEquals(typistNamesState[0], prevTypistNamesState[0])\n ? prevTypistNamesState\n : typistNamesState;\n\n useEffect(() => {\n prevTypistNamesStateRef.current = nextTypistNamesState;\n }, [prevTypistNamesStateRef, nextTypistNamesState]);\n\n return nextTypistNamesState;\n}\n","import { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport React, { useCallback } from 'react';\nimport {\n custom,\n function_,\n instance,\n is,\n nullable,\n object,\n optional,\n pipe,\n readonly,\n string,\n type InferInput\n} from 'valibot';\n\nimport mutableRefObject from '../types/internal/mutableRefObject';\n\n// This is an element, when focused, will send the focus to the ref specified in \"redirectRef\".\n// Although the focus is being redirected, browser will scroll this redirector element into view.\n\n// Browser's \"scrollIntoView()\" call cannot be prevented through event.preventDefault() in both\n// bubble and capture phase of \"focus\" event.\n\n// When this focus redirector is put inside a scrollable container, you may want to resize or reposition\n// it to prevent unintentional scroll done by the browser default behavior.\n\nconst focusRedirectorPropsSchema = pipe(\n object({\n className: optional(string()),\n onFocus: optional(custom<() => void>(value => is(function_(), value))),\n redirectRef: optional(mutableRefObject(nullable(instance(HTMLElement))))\n }),\n readonly()\n);\n\ntype FocusRedirectorProps = InferInput<typeof focusRedirectorPropsSchema>;\n\nfunction FocusRedirector(props: FocusRedirectorProps) {\n const { className, onFocus, redirectRef } = validateProps(focusRedirectorPropsSchema, props);\n\n const handleFocus = useCallback(() => {\n redirectRef?.current?.focus();\n onFocus && onFocus();\n }, [onFocus, redirectRef]);\n\n // 2023-02-23: With NVDA 2022.1 and 2022.4, when in browse mode, up/down arrow keys no longer focus.\n // We no longer need to set aria-hidden=\"true\" to hide it from browse mode.\n // 2021-09-21: For NVDA, we should set aria-hidden=\"true\".\n // When using NVDA in browse mode, press up/down arrow keys will focus on this redirector.\n // This redirector is designed to capture TAB only and should not react on browse mode.\n // However, reacting with browse mode is currently okay. Just better to leave it alone.\n\n return <div className={className} onFocus={handleFocus} tabIndex={0} />;\n}\n\nexport default FocusRedirector;\nexport { focusRedirectorPropsSchema, type FocusRedirectorProps };\n","import { type MutableRefObject } from 'react';\nimport {\n any,\n check,\n is,\n object,\n pipe,\n type BaseIssue,\n type BaseSchema,\n type ErrorMessage,\n type InferOutput,\n type ObjectIssue\n} from 'valibot';\n\nfunction mutableRefObject<TInput extends BaseSchema<unknown, unknown, BaseIssue<unknown>>>(\n baseSchema: TInput\n): BaseSchema<MutableRefObject<InferOutput<TInput>>, MutableRefObject<InferOutput<TInput>>, BaseIssue<undefined>>;\n\nfunction mutableRefObject<\n TInput extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n const TMessage extends ErrorMessage<ObjectIssue> | undefined\n>(\n baseSchema: TInput,\n message: TMessage\n): BaseSchema<MutableRefObject<InferOutput<TInput>>, MutableRefObject<InferOutput<TInput>>, BaseIssue<TMessage>>;\n\nfunction mutableRefObject<\n TInput extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n const TMessage extends ErrorMessage<ObjectIssue> | undefined\n>(\n baseSchema: TInput,\n message?: TMessage\n): BaseSchema<MutableRefObject<InferOutput<TInput>>, MutableRefObject<InferOutput<TInput>>, BaseIssue<TMessage>> {\n return pipe(\n any(),\n check(value => is(object({ current: baseSchema }, message), value))\n );\n}\n\nexport default mutableRefObject;\n","// For auto-focus in some browsers, we synthetically insert keys into the chatbox.\n// By default, we insert keys when:\n// 1. evt.key.length === 1 (e.g. \"1\", \"A\", \"=\" keys), or\n// 2. evt.key is one of the map keys below (e.g. \"Add\" will insert \"+\", \"Decimal\" will insert \".\")\nconst INPUTTABLE_KEY = {\n Add: '+', // Numpad add key\n Decimal: '.', // Numpad decimal key\n Divide: '/', // Numpad divide key\n Multiply: '*', // Numpad multiply key\n Subtract: '-' // Numpad subtract key\n};\n\nconst INPUTTABLE_KEY_KEYS = Object.keys(INPUTTABLE_KEY);\n\nexport default function inputtableKey(key) {\n // Mitigated through allowlisting.\n // eslint-disable-next-line security/detect-object-injection\n return key.length === 1 ? key : INPUTTABLE_KEY_KEYS.includes(key) ? INPUTTABLE_KEY[key] : undefined;\n}\n","import useWebChatUIContext from './useWebChatUIContext';\n\nexport default function useDispatchScrollPosition() {\n return useWebChatUIContext().dispatchScrollPosition;\n}\n","import useWebChatUIContext from './useWebChatUIContext';\n\nexport default function useDispatchTranscriptFocusByActivityKey(): (activityKey: string | undefined) => void {\n return useWebChatUIContext().dispatchTranscriptFocusByActivityKey;\n}\n","import { useEffect } from 'react';\n\nimport removeInline from '../../Utils/removeInline';\nimport useWebChatUIContext from './useWebChatUIContext';\n\n// This hook is for registering and unregister a callback, used by <BasicTranscript>.\n// When called, the callback should focus on the transcript.\n\nexport default function useRegisterFocusTranscript(callback) {\n const { focusTranscriptCallbacksRef } = useWebChatUIContext();\n\n useEffect(() => {\n if (callback) {\n const { current: focusTranscriptCallbacks } = focusTranscriptCallbacksRef;\n\n focusTranscriptCallbacks.push(callback);\n\n return () => removeInline(focusTranscriptCallbacks, callback);\n }\n }, [callback, focusTranscriptCallbacksRef]);\n}\n","export default function removeInline(array, ...items) {\n items.forEach(item => {\n let index;\n\n while (~(index = array.indexOf(item))) {\n array.splice(index, 1);\n }\n });\n}\n","import { useEffect } from 'react';\n\nimport removeInline from '../../Utils/removeInline';\nimport useWebChatUIContext from './useWebChatUIContext';\n\n// This hook is for registering and unregister a callback, used by <BasicTranscript>.\n// When called, the callback should scroll the transcript to a specific position, for example, to an activity of specified ID.\n\nexport default function useRegisterScrollTo(callback) {\n const { scrollToCallbacksRef } = useWebChatUIContext();\n\n useEffect(() => {\n if (callback) {\n const { current: scrollToCallbacks } = scrollToCallbacksRef;\n\n scrollToCallbacks.push(callback);\n\n return () => removeInline(scrollToCallbacks, callback);\n }\n }, [callback, scrollToCallbacksRef]);\n}\n","import { useEffect } from 'react';\n\nimport removeInline from '../../Utils/removeInline';\nimport useWebChatUIContext from './useWebChatUIContext';\n\n// This hook is for registering and unregister a callback, used by <BasicTranscript>.\n// When called, the callback should scroll the transcript to the end.\n\nexport default function useRegisterScrollTo(callback) {\n const { scrollToEndCallbacksRef } = useWebChatUIContext();\n\n useEffect(() => {\n const { current: scrollToEndCallbacks } = scrollToEndCallbacksRef;\n\n scrollToEndCallbacks.push(callback);\n\n return () => removeInline(scrollToEndCallbacks, callback);\n }, [callback, scrollToEndCallbacksRef]);\n}\n","import React, { memo, useMemo, useRef, type ReactNode } from 'react';\nimport ChatHistoryDOMContext, { type ChatHistoryDOMContextType } from './private/ChatHistoryDOMContext';\n\ntype ChatHistoryDOMComposerProps = Readonly<{\n children?: ReactNode | undefined;\n}>;\n\nconst ChatHistoryDOMComposer = ({ children }: ChatHistoryDOMComposerProps) => {\n const activityElementRef = useRef<Map<string, HTMLElement>>(new Map());\n const context = useMemo<ChatHistoryDOMContextType>(() => ({ activityElementRef }), [activityElementRef]);\n\n return <ChatHistoryDOMContext.Provider value={context}>{children}</ChatHistoryDOMContext.Provider>;\n};\n\nChatHistoryDOMComposer.displayName = 'ChatHistoryDOMComposer';\n\nexport default memo(ChatHistoryDOMComposer);\nexport { type ChatHistoryDOMComposerProps };\n","import { hooks } from 'botframework-webchat-api';\nimport { type WebChatActivity } from 'botframework-webchat-core';\nimport { reactNode } from '@msinternal/botframework-webchat-react-valibot';\nimport React, { memo, useMemo } from 'react';\nimport { object, optional, parse, pipe, readonly, type InferOutput } from 'valibot';\n\nimport useRenderingActivities from '../RenderingActivities/useRenderingActivities';\nimport { type GroupedRenderingActivities } from './GroupedRenderingActivities';\nimport GroupedRenderingActivitiesContext, {\n type GroupedRenderingActivitiesContextType\n} from './private/GroupedRenderingActivitiesContext';\n\nconst { useGetKeyByActivity, useGroupActivitiesByName, useStyleOptions } = hooks;\n\nconst groupedRenderingActivitiesComposerPropsSchema = pipe(\n object({\n children: optional(reactNode())\n }),\n readonly()\n);\n\ntype GroupedRenderingActivitiesComposerProps = InferOutput<typeof groupedRenderingActivitiesComposerPropsSchema>;\n\nconst GroupedRenderingActivitiesComposer = (props: GroupedRenderingActivitiesComposerProps) => {\n const { children } = parse(groupedRenderingActivitiesComposerPropsSchema, props);\n\n const [{ groupActivitiesBy }] = useStyleOptions();\n const [activities] = useRenderingActivities();\n const getKeyByActivity = useGetKeyByActivity();\n const groupActivitiesByName = useGroupActivitiesByName();\n\n const numRenderingActivitiesState = useMemo<readonly [number]>(\n () => Object.freeze([activities.length] as const),\n [activities]\n );\n\n const groupedRenderingActivitiesState = useMemo<readonly [readonly GroupedRenderingActivities[]]>(() => {\n const run = (\n activities: readonly WebChatActivity[],\n groups: readonly string[]\n ): readonly GroupedRenderingActivities[] => {\n const [name, ...nextNames] = groups;\n\n if (typeof name === 'undefined') {\n return Object.freeze([\n Object.freeze({\n activities,\n children: Object.freeze([]),\n key: getKeyByActivity(activities[0]),\n groupingName: undefined\n })\n ]);\n }\n\n return Object.freeze(\n groupActivitiesByName(activities, name).map(grouping =>\n Object.freeze({\n activities: grouping,\n children: run(grouping, nextNames),\n groupingName: name,\n key: getKeyByActivity(grouping[0])\n } satisfies GroupedRenderingActivities)\n )\n );\n };\n\n return Object.freeze([run(activities, groupActivitiesBy)]);\n }, [activities, getKeyByActivity, groupActivitiesBy, groupActivitiesByName]);\n\n const context = useMemo<GroupedRenderingActivitiesContextType>(\n () =>\n Object.freeze({\n groupedRenderingActivitiesState,\n numRenderingActivitiesState\n }),\n [groupedRenderingActivitiesState, numRenderingActivitiesState]\n );\n\n return (\n <GroupedRenderingActivitiesContext.Provider value={context}>{children}</GroupedRenderingActivitiesContext.Provider>\n );\n};\n\nGroupedRenderingActivitiesComposer.displayName = 'GroupedRenderingActivitiesComposer';\n\nexport default memo(GroupedRenderingActivitiesComposer);\nexport { type GroupedRenderingActivitiesComposerProps };\n","import { type WebChatActivity } from 'botframework-webchat-core';\n\nimport { useRenderingActivitiesContext } from './private/RenderingActivitiesContext';\n\nexport default function useRenderingActivities(): readonly [readonly WebChatActivity[]] {\n return useRenderingActivitiesContext().renderingActivitiesState;\n}\n","import { useGroupedRenderingActivitiesContext } from './private/GroupedRenderingActivitiesContext';\n\nexport default function useNumRenderingActivities(): readonly [number] {\n return useGroupedRenderingActivitiesContext().numRenderingActivitiesState;\n}\n","import {\n useBuildRenderActivityCallback,\n type ActivityPolymiddlewareRenderer\n} from 'botframework-webchat-api/middleware.js';\nimport { hooks } from 'botframework-webchat-api';\nimport { type WebChatActivity } from 'botframework-webchat-core';\nimport React, { memo, useCallback, useMemo, type ReactNode } from 'react';\nimport { useReduceMemo } from 'use-reduce-memo';\n\nimport RenderingActivitiesContext, { type RenderingActivitiesContextType } from './private/RenderingActivitiesContext';\n\ntype RenderingActivitiesComposerProps = Readonly<{\n children?: ReactNode | undefined;\n}>;\n\nconst { useActivities, useActivityKeys, useGetActivitiesByKey, useGetKeyByActivity } = hooks;\n\nconst RenderingActivitiesComposer = ({ children }: RenderingActivitiesComposerProps) => {\n const [activities] = useActivities();\n const activityKeys = useActivityKeys();\n const getActivitiesByKey = useGetActivitiesByKey();\n const getKeyByActivity = useGetKeyByActivity();\n\n // TODO: Should move this logic into a new <LivestreamGrouping>.\n // The grouping would only show the latest one but it has access to previous.\n const activitiesOfLatestRevision = useMemo<readonly WebChatActivity[]>(() => {\n const activitiesOfLatestRevision: WebChatActivity[] = [];\n\n if (!activityKeys) {\n return activities;\n }\n\n for (const activity of activities) {\n // If an activity has multiple revisions, display the latest revision only at the position of the first revision.\n\n // \"Activities with same key\" means \"multiple revisions of same activity.\"\n const activitiesWithSameKey = getActivitiesByKey(getKeyByActivity(activity));\n\n // TODO: We may want to send all revisions of activity to the middleware so they can render UI to see previous revisions.\n activitiesWithSameKey?.[0] === activity &&\n activitiesOfLatestRevision.push(activitiesWithSameKey[activitiesWithSameKey.length - 1]);\n }\n\n return Object.freeze(activitiesOfLatestRevision);\n }, [activityKeys, getActivitiesByKey, getKeyByActivity, activities]);\n\n const renderActivity = useBuildRenderActivityCallback();\n\n const activityRendererMap = useReduceMemo(\n activitiesOfLatestRevision,\n useCallback<\n (\n activityRendererMap: ReadonlyMap<WebChatActivity, ActivityPolymiddlewareRenderer>,\n activity: WebChatActivity\n ) => ReadonlyMap<WebChatActivity, ActivityPolymiddlewareRenderer>\n >(\n (activityRendererMap, activity) => {\n const renderer = renderActivity({ activity });\n\n // Return value must be immutable because it could be cached by `useReduceMemo()`.\n return renderer ? Object.freeze(new Map(activityRendererMap).set(activity, renderer)) : activityRendererMap;\n },\n [renderActivity]\n ),\n new Map<WebChatActivity, ActivityPolymiddlewareRenderer>()\n );\n\n const activityRendererMapState = useMemo<readonly [ReadonlyMap<WebChatActivity, ActivityPolymiddlewareRenderer>]>(\n () => Object.freeze([Object.freeze(activityRendererMap)]),\n [activityRendererMap]\n );\n\n const renderingActivitiesState = useMemo<readonly [readonly WebChatActivity[]]>(\n () => Object.freeze([Object.freeze(Array.from(activityRendererMapState[0].keys()))]),\n [activityRendererMapState]\n );\n\n const renderingActivityKeysState = useMemo<readonly [readonly string[]]>(() => {\n const keys = Object.freeze(renderingActivitiesState[0].map(activity => getKeyByActivity(activity)));\n\n if (keys.some(key => !key)) {\n throw new Error('botframework-webchat internal: activityRendererMap[].activity must have activity key');\n }\n\n return Object.freeze([keys] as const);\n }, [getKeyByActivity, renderingActivitiesState]);\n\n const contextValue: RenderingActivitiesContextType = useMemo(\n () => ({\n activityRendererMapState,\n renderingActivitiesState,\n renderingActivityKeysState\n }),\n [activityRendererMapState, renderingActivitiesState, renderingActivityKeysState]\n );\n\n return <RenderingActivitiesContext.Provider value={contextValue}>{children}</RenderingActivitiesContext.Provider>;\n};\n\nRenderingActivitiesComposer.displayName = 'RenderingActivitiesComposer';\n\nexport default memo(RenderingActivitiesComposer);\nexport { type RenderingActivitiesComposerProps };\n","/* eslint-disable no-magic-numbers */\nimport random from 'math-random';\nimport PropTypes from 'prop-types';\nimport React, { memo, useCallback, useMemo, type MutableRefObject, type ReactNode } from 'react';\n\nimport usePrevious from '../../hooks/internal/usePrevious';\nimport useStateRef from '../../hooks/internal/useStateRef';\nimport useValueRef from '../../hooks/internal/useValueRef';\nimport scrollIntoViewWithBlockNearest from '../../Utils/scrollIntoViewWithBlockNearest';\nimport { useGetGroupState, useGetLogicalGroupKey } from '../ActivityLogicalGrouping';\nimport useGetLogicalGroupBoundaries from '../ActivityLogicalGrouping/useGetLogicalGroupBoundaries';\nimport useRenderingActivityKeys from '../RenderingActivities/useRenderingActivityKeys';\nimport TranscriptFocusContext, { type TranscriptFocusContextType } from './private/Context';\n\ntype TranscriptFocusComposerProps = Readonly<{\n children?: ReactNode | undefined;\n containerRef: MutableRefObject<HTMLElement>;\n}>;\n\nfunction uniqueId(count = Infinity) {\n return random()\n .toString(36)\n .substring(2, 2 + count);\n}\n\nconst TranscriptFocusComposer = ({ children, containerRef }: TranscriptFocusComposerProps) => {\n const [rawFocusedActivityGroupKey, setRawFocusedActivityGroupKey, rawFocusedActivityGroupKeyRef] = useStateRef<\n string | undefined\n >();\n const [renderingActivityKeys] = useRenderingActivityKeys();\n const [, setRawFocusedActivityKey, rawFocusedActivityKeyRef] = useStateRef<string | undefined>();\n const getGroupBoundaries = useGetLogicalGroupBoundaries();\n const getGroupKeyByActivityKey = useGetLogicalGroupKey();\n const getGroupState = useGetGroupState();\n\n // As we need to use IDREF for `aria-activedescendant`,\n // this prefix will differentiate multiple instances of transcript on the same page.\n const prefix = useMemo<string>(() => uniqueId(3), []);\n\n const getDescendantIdByActivityKey: (activityKey?: string) => string | undefined = useCallback(\n (activityKey?: string) => activityKey && `webchat__transcript-focus-${prefix}__activity-${activityKey}`,\n [prefix]\n );\n\n const getGroupDescendantIdByGroupKey: (groupKey?: string) => string | undefined = useCallback(\n (groupKey?: string) => groupKey && `webchat__transcript-focus-${prefix}__group-${groupKey}`,\n [prefix]\n );\n\n const getGroupDescendantIdByActivityKey: (activityKey?: string) => string | undefined = useCallback(\n (activityKey?: string) => activityKey && getGroupDescendantIdByGroupKey(getGroupKeyByActivityKey(activityKey)),\n [getGroupDescendantIdByGroupKey, getGroupKeyByActivityKey]\n );\n\n const renderingActivityKeysRef = useValueRef<readonly string[]>(renderingActivityKeys);\n\n // While the transcript or any descendants are not focused, if the transcript is updated, reset the user-selected active descendant.\n // This will assume the last activity, if any, will be the active descendant.\n const prevRenderingActivityKeys = usePrevious(renderingActivityKeys);\n\n if (renderingActivityKeys !== prevRenderingActivityKeys && !containerRef.current?.contains(document.activeElement)) {\n rawFocusedActivityKeyRef.current = undefined;\n }\n\n const { current: rawFocusedActivityKey } = rawFocusedActivityKeyRef;\n\n const focusedActivityKey = useMemo<string>(\n () =>\n renderingActivityKeys.includes(rawFocusedActivityKey) ? rawFocusedActivityKey : renderingActivityKeys.at(-1),\n [renderingActivityKeys, rawFocusedActivityKey]\n );\n\n const focusedActivityKeyRef = useValueRef(focusedActivityKey);\n\n const activeDescendantId = useMemo<string>(\n () => getDescendantIdByActivityKey(focusedActivityKey),\n [getDescendantIdByActivityKey, focusedActivityKey]\n );\n\n const activeGroupDescendantId = useMemo<string>(\n () => getGroupDescendantIdByGroupKey(rawFocusedActivityGroupKey),\n [getGroupDescendantIdByGroupKey, rawFocusedActivityGroupKey]\n );\n\n const handleFocus = useCallback(\n (activeDescendantId: string) => {\n containerRef.current?.focus();\n\n const activeDescendantElement = activeDescendantId && document.getElementById(activeDescendantId);\n\n // Don't scroll active descendant into view if the focus is already inside it.\n // Otherwise, given the focus is on the send box, clicking on any <input> inside the Adaptive Cards may cause the view to move.\n // This UX is not desirable because click should not cause scroll.\n if (activeDescendantElement && !activeDescendantElement.contains(document.activeElement)) {\n scrollIntoViewWithBlockNearest(activeDescendantElement);\n }\n },\n [containerRef]\n );\n\n const focusByGroupKey = useCallback(\n (groupKey: string | undefined, withFocus = true) => {\n if (!groupKey) {\n setRawFocusedActivityGroupKey(undefined);\n return;\n }\n setRawFocusedActivityGroupKey(groupKey);\n\n const groupDescendantId = getGroupDescendantIdByGroupKey(groupKey);\n\n withFocus && groupDescendantId && handleFocus(groupDescendantId);\n },\n [getGroupDescendantIdByGroupKey, handleFocus, setRawFocusedActivityGroupKey]\n );\n\n const focusByActivityKey = useCallback<\n (activityKey: boolean | string | undefined, withFocus: boolean | undefined) => void\n >(\n (activityKey: boolean | string | undefined, withFocus: boolean | undefined = true) => {\n if (activityKey === false) {\n // `false` means set it to nothing.\n setRawFocusedActivityKey(undefined);\n } else if (activityKey === true) {\n // `true` means set to something if it is not set.\n setRawFocusedActivityKey(key => key || focusedActivityKeyRef.current);\n } else if (activityKey) {\n setRawFocusedActivityKey(activityKey);\n focusByGroupKey(undefined, false);\n } else if (activityKey === undefined) {\n // if nothing is supplied assume we want to focus current activity and scroll it into view\n withFocus = true;\n }\n\n const groupKey = typeof activityKey === 'string' && getGroupKeyByActivityKey(activityKey);\n const groupState = groupKey && getGroupState(groupKey);\n\n // shortcut for collapsed group\n // when collapsed, we do not want to focus on the group or scroll it into view\n if (groupState?.isCollapsed) {\n return;\n }\n\n const activeDescendantId = getDescendantIdByActivityKey(\n activityKey === false\n ? // If \"activityKey\" is false, it means \"focus nothing and reset it to the last activity\".\n renderingActivityKeysRef.current.at(-1)\n : activityKey && activityKey !== true\n ? // If \"activity\" is not \"undefined\" and not \"true\", it means \"focus on this activity\".\n activityKey\n : // If \"activityKey\" is \"undefined\", it means \"don't modify the focus\".\n // If \"activityKey\" is \"true\", it means \"try to focus on anything\".\n rawFocusedActivityKeyRef.current\n );\n\n withFocus && handleFocus(activeDescendantId);\n },\n [\n focusByGroupKey,\n focusedActivityKeyRef,\n getDescendantIdByActivityKey,\n getGroupKeyByActivityKey,\n getGroupState,\n handleFocus,\n rawFocusedActivityKeyRef,\n renderingActivityKeysRef,\n setRawFocusedActivityKey\n ]\n );\n\n // Helper function to get the next activity linearly\n const getNextActivityLinear = useCallback(\n (currentActivityKey: string, direction: 'up' | 'down'): string | undefined => {\n const { current: orderedActivityKeys } = renderingActivityKeysRef;\n const currentIndex = orderedActivityKeys.indexOf(currentActivityKey);\n\n if (currentIndex === -1) {\n return undefined;\n }\n\n const delta = direction === 'up' ? -1 : 1;\n const nextIndex = currentIndex + delta;\n\n if (nextIndex >= 0 && nextIndex < orderedActivityKeys.length) {\n return orderedActivityKeys[+nextIndex];\n }\n\n return undefined;\n },\n [renderingActivityKeysRef]\n );\n\n // Handle navigation from a focused group header\n const handleHeaderTransition = useCallback(\n (direction: 'up' | 'down') => {\n const { current: currentGroupKey } = rawFocusedActivityGroupKeyRef;\n const { current: orderedActivityKeys } = renderingActivityKeysRef;\n const currentGroupState = getGroupState(currentGroupKey);\n const [firstActivityKey, lastActivityKey] = getGroupBoundaries(currentGroupKey);\n\n if (direction === 'down') {\n if (!currentGroupState?.isCollapsed) {\n // From expanded group header, go to first activity in the group\n if (firstActivityKey) {\n focusByActivityKey(firstActivityKey, true);\n }\n } else {\n // From collapsed group header, skip to next activity/group outside this group\n const lastGroupActivityIndex = orderedActivityKeys.indexOf(lastActivityKey);\n\n if (lastGroupActivityIndex !== -1 && lastGroupActivityIndex + 1 < orderedActivityKeys.length) {\n const nextActivityKey = orderedActivityKeys[lastGroupActivityIndex + 1];\n const nextGroupKey = getGroupKeyByActivityKey(nextActivityKey);\n\n if (nextGroupKey) {\n // Next activity is in a group, focus the group header first\n focusByGroupKey(nextGroupKey);\n } else {\n // Next activity is not in a group, focus it normally\n focusByActivityKey(nextActivityKey, true);\n }\n }\n }\n } else if (direction === 'up') {\n // From group header, go to previous activity/group\n const currentIndex = orderedActivityKeys.indexOf(firstActivityKey);\n if (currentIndex !== -1) {\n const prevActivityKey = orderedActivityKeys[currentIndex - 1];\n const prevGroupKey = getGroupKeyByActivityKey(prevActivityKey);\n const prevGroupState =\n prevGroupKey && prevGroupKey !== currentGroupKey ? getGroupState(prevGroupKey) : undefined;\n\n // Previous activity is in a different collapsed group\n if (prevGroupState?.isCollapsed) {\n focusByActivityKey(prevActivityKey, false);\n focusByGroupKey(prevGroupKey);\n } else {\n focusByActivityKey(prevActivityKey, true);\n }\n }\n }\n },\n [\n focusByActivityKey,\n focusByGroupKey,\n getGroupBoundaries,\n getGroupKeyByActivityKey,\n getGroupState,\n rawFocusedActivityGroupKeyRef,\n renderingActivityKeysRef\n ]\n );\n\n // Helper function to handle navigation to a different group\n const handleGroupTransition = useCallback(\n (currentActivityKey: string, nextActivityKey: string, direction: 'up' | 'down') => {\n const currentGroupKey = getGroupKeyByActivityKey(currentActivityKey);\n const nextGroupKey = getGroupKeyByActivityKey(nextActivityKey);\n\n if (!nextGroupKey || nextGroupKey === currentGroupKey) {\n // Not changing groups - focus activity, reset group\n focusByActivityKey(nextActivityKey, true);\n return;\n }\n\n // Moving to a different group\n const [firstActivityKey, lastActivityKey] = getGroupBoundaries(nextGroupKey);\n const nextGroupState = getGroupState(nextGroupKey);\n\n if (direction === 'down' && firstActivityKey === nextActivityKey) {\n // Going down into a new group - always focus header first\n focusByActivityKey(currentActivityKey, false);\n focusByGroupKey(nextGroupKey);\n } else if (direction === 'up' && lastActivityKey === nextActivityKey && nextGroupState?.isCollapsed) {\n // Going up into a collapsed group from below - focus header\n focusByGroupKey(nextGroupKey);\n } else {\n // Other cases - focus activity, reset header focus\n focusByActivityKey(nextActivityKey, true);\n }\n },\n [focusByActivityKey, focusByGroupKey, getGroupBoundaries, getGroupKeyByActivityKey, getGroupState]\n );\n\n // Helper function to handle delta > 1 navigation\n const handleDeltaNavigation = useCallback(\n (delta: number) => {\n const { current: orderedActivityKeys } = renderingActivityKeysRef;\n const { current: focusedActivityKey } = focusedActivityKeyRef;\n\n // Handle jumping to first/last activity\n if (Math.abs(delta) === Infinity || Math.abs(delta) >= orderedActivityKeys.length) {\n const targetActivityKey = delta < 0 ? orderedActivityKeys.at(0) : orderedActivityKeys.at(-1);\n if (targetActivityKey) {\n focusByActivityKey(targetActivityKey, true);\n }\n return;\n }\n\n // For delta > 1, handle multi-step navigation\n if (Math.abs(delta) > 1) {\n const currentIndex = orderedActivityKeys.indexOf(focusedActivityKey || '');\n if (currentIndex !== -1) {\n const targetIndex = Math.max(0, Math.min(orderedActivityKeys.length - 1, currentIndex + delta));\n const targetActivityKey = orderedActivityKeys.at(targetIndex);\n if (targetActivityKey) {\n focusByActivityKey(targetActivityKey, true);\n }\n }\n }\n },\n [focusByActivityKey, focusedActivityKeyRef, renderingActivityKeysRef]\n );\n\n const focusRelativeActivity = useCallback(\n (delta: number) => {\n const { current: orderedActivityKeys } = renderingActivityKeysRef;\n const { current: rawFocusedActivityGroupKey } = rawFocusedActivityGroupKeyRef;\n\n if (isNaN(delta) || !orderedActivityKeys.length) {\n return focusByActivityKey(false, true);\n }\n\n const { current: focusedActivityKey } = focusedActivityKeyRef;\n\n const isHeaderFocused = !!activeGroupDescendantId;\n\n if (delta === 0) {\n if (isHeaderFocused) {\n focusByGroupKey(rawFocusedActivityGroupKey, true);\n } else {\n focusByActivityKey(focusedActivityKey, true);\n }\n return;\n }\n\n if (Math.abs(delta) > 1) {\n return handleDeltaNavigation(delta);\n }\n\n const direction = delta < 0 ? 'up' : 'down';\n\n // Handle navigation from a focused group header\n if (isHeaderFocused && rawFocusedActivityGroupKey) {\n return handleHeaderTransition(direction);\n }\n\n // Handle navigation from a focused activity\n const groupKey = getGroupKeyByActivityKey(focusedActivityKey);\n const [firstActivityKey, lastActivityKey] = getGroupBoundaries(groupKey);\n const groupState = groupKey ? getGroupState(groupKey) : undefined;\n\n // In group special cases\n if (groupKey) {\n if (direction === 'up') {\n // For expanded groups: only focus header when going up from first activity\n // For collapsed groups: focus header when going up from any activity in the group\n if ((firstActivityKey === focusedActivityKey && !groupState?.isCollapsed) || groupState?.isCollapsed) {\n // From first activity in expanded group OR any activity in collapsed group, go to group header\n focusByActivityKey(focusedActivityKey, false);\n focusByGroupKey(groupKey);\n return;\n }\n } else if (direction === 'down') {\n // Special handling for collapsed groups: when moving down from any activity in a collapsed group,\n // jump to the next visible element outside the group\n if (groupState?.isCollapsed) {\n const nextActivityKey = getNextActivityLinear(lastActivityKey, direction);\n return handleGroupTransition(lastActivityKey, nextActivityKey, direction);\n }\n }\n }\n\n // Handle regular linear navigation\n const nextActivityKey = getNextActivityLinear(focusedActivityKey, direction);\n if (nextActivityKey) {\n return handleGroupTransition(focusedActivityKey, nextActivityKey, direction);\n }\n },\n [\n activeGroupDescendantId,\n focusByActivityKey,\n focusByGroupKey,\n focusedActivityKeyRef,\n getGroupBoundaries,\n getGroupKeyByActivityKey,\n getGroupState,\n getNextActivityLinear,\n handleDeltaNavigation,\n handleGroupTransition,\n handleHeaderTransition,\n rawFocusedActivityGroupKeyRef,\n renderingActivityKeysRef\n ]\n );\n\n const contextValue = useMemo<TranscriptFocusContextType>(\n () => ({\n activeDescendantIdState: Object.freeze([activeDescendantId]) as readonly [string],\n activeGroupDescendantIdState: Object.freeze([activeGroupDescendantId]) as readonly [string],\n focusByActivityKey,\n focusByGroupKey,\n focusedActivityKeyState: Object.freeze([focusedActivityKey]) as readonly [string],\n focusedExplicitlyState: Object.freeze([!!rawFocusedActivityKey]) as readonly [boolean],\n focusedGroupKeyState: Object.freeze([rawFocusedActivityGroupKey]) as readonly [string],\n focusRelativeActivity,\n getDescendantIdByActivityKey,\n getGroupDescendantIdByActivityKey\n }),\n [\n activeDescendantId,\n activeGroupDescendantId,\n focusByActivityKey,\n focusByGroupKey,\n focusedActivityKey,\n focusRelativeActivity,\n getDescendantIdByActivityKey,\n getGroupDescendantIdByActivityKey,\n rawFocusedActivityGroupKey,\n rawFocusedActivityKey\n ]\n );\n\n return <TranscriptFocusContext.Provider value={contextValue}>{children}</TranscriptFocusContext.Provider>;\n};\n\nTranscriptFocusComposer.displayName = 'TranscriptFocusComposer';\n\nTranscriptFocusComposer.propTypes = {\n // PropTypes is not fully compatible with TypeScript.\n // @ts-ignore\n containerRef: PropTypes.shape({\n current: PropTypes.instanceOf(HTMLElement)\n }).isRequired\n};\n\nexport default memo(TranscriptFocusComposer);\n","import { useCallback, useRef, useState } from 'react';\n\nimport type { Dispatch, MutableRefObject, SetStateAction } from 'react';\n\nexport default function useStateRef<T>(\n initialValue?: T\n): readonly [T, Dispatch<SetStateAction<T>>, MutableRefObject<T>] {\n const [_, forceRender] = useState<unknown>();\n const valueRef: MutableRefObject<T> = useRef<T>(initialValue);\n\n const setter: Dispatch<SetStateAction<T>> = useCallback(\n (value: SetStateAction<T>) => {\n const { current } = valueRef;\n\n value = value instanceof Function ? value(current) : value;\n\n if (current !== value) {\n valueRef.current = value;\n\n forceRender({});\n }\n },\n [forceRender, valueRef]\n );\n\n return Object.freeze([valueRef.current, setter, valueRef]) as readonly [\n T,\n Dispatch<SetStateAction<T>>,\n MutableRefObject<T>\n ];\n}\n","import computeScrollIntoView from 'compute-scroll-into-view';\n\n/**\n * Calls `targetElement.scrollIntoView({ block: 'nearest' })`.\n *\n * If browser do not support options for `scrollIntoView`, fallback to polyfill.\n */\nexport default function scrollIntoViewWithBlockNearest(targetElement: HTMLElement): void {\n // Checks if `scrollIntoView` support options or not.\n // - https://github.com/Modernizr/Modernizr/issues/1568#issuecomment-419457972\n // - https://stackoverflow.com/questions/46919627/is-it-possible-to-test-for-scrollintoview-browser-compatibility\n if ('scrollBehavior' in document.documentElement.style) {\n return targetElement.scrollIntoView({ block: 'nearest' });\n }\n\n // We should only move transcript scrollable, and not other scrollable, such as document.body which is from the hosting page.\n const [action] = computeScrollIntoView(targetElement, { block: 'nearest' });\n\n action.el.scrollTop = action.top;\n}\n","import { useActivityLogicalGroupingContext } from './private/ActivityLogicalGroupingContext';\n\nexport default function useGetLogicalGroupBoundaries(): (groupKey: string) => [string | undefined, string | undefined] {\n return useActivityLogicalGroupingContext().getGroupBoundaries;\n}\n","import useTranscriptFocusContext from './private/useContext';\n\nexport default function useFocusRelativeActivity(): (delta: number) => void {\n return useTranscriptFocusContext().focusRelativeActivity;\n}\n","import useTranscriptFocusContext from './private/useContext';\n\nexport default function useFocusedExplicitly(): readonly [boolean] {\n return useTranscriptFocusContext().focusedExplicitlyState;\n}\n","import useTranscriptFocusContext from './private/useContext';\n\nexport default function useFocusedKey(): readonly [string] {\n const context = useTranscriptFocusContext();\n return context.focusedGroupKeyState[0] ? context.focusedGroupKeyState : context.focusedActivityKeyState;\n}\n","import { reactNode, validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport React, { forwardRef, useCallback, useRef } from 'react';\nimport { object, optional, pipe, readonly, string, type InferOutput } from 'valibot';\n\nimport useNavigatorPlatform from '../../hooks/internal/useNavigatorPlatform';\nimport { orSelf as firstTabbableDescendantOrSelf } from '../firstTabbableDescendant';\nimport AccessKeySinkContext from './internal/Context';\n\nconst surfacePropsSchema = pipe(\n object({\n children: optional(reactNode()),\n className: optional(string()),\n role: optional(string())\n }),\n readonly()\n);\n\ntype SurfaceProps = InferOutput<typeof surfacePropsSchema>;\n\nconst Surface = forwardRef<HTMLDivElement, SurfaceProps>((props, ref) => {\n const { children, className, role } = validateProps(surfacePropsSchema, props);\n\n const [{ apple }] = useNavigatorPlatform();\n const contextRef = useRef({ focii: [] });\n\n const handleKeyUp = useCallback(\n event => {\n const { altKey, ctrlKey, key, shiftKey } = event;\n\n // On Apple, most modern browsers use CTRL + OPTION as modifiers.\n // Otherwise, we use ALT + SHIFT as modifierse.\n if (altKey && (apple ? ctrlKey : shiftKey)) {\n const focii = contextRef.current.focii.filter(entry => entry.keys.includes(key));\n\n const currentFocus = focii.findIndex(\n ({ ref: { current } }) => current === document.activeElement || current.contains(document.activeElement)\n );\n const nextFocus = focii[(currentFocus + 1) % focii.length];\n\n if (nextFocus) {\n event.preventDefault();\n event.stopPropagation();\n\n const tabbable = firstTabbableDescendantOrSelf(nextFocus.ref.current);\n\n tabbable && tabbable.focus();\n }\n }\n },\n [apple]\n );\n\n return (\n <AccessKeySinkContext.Provider value={contextRef.current}>\n <div className={className} onKeyUp={handleKeyUp} ref={ref} role={role}>\n {children}\n </div>\n </AccessKeySinkContext.Provider>\n );\n});\n\nexport default Surface;\nexport { surfacePropsSchema, type SurfaceProps };\n","const {\n navigator: { userAgent }\n} = window;\n\nconst IE_FOCUSABLE_LIST = [\n 'a',\n 'body',\n 'button',\n 'frame',\n 'iframe',\n 'img',\n 'input',\n 'isindex',\n 'object',\n 'select',\n 'textarea'\n];\n\nconst IS_FIREFOX = /Firefox\\//iu.test(userAgent);\nconst IS_IE = /Trident\\//iu.test(userAgent);\n\nexport default function getTabIndex(element: HTMLElement): number | null {\n const { tabIndex } = element;\n\n if (IS_IE) {\n const tabIndexAttribute = element.attributes.getNamedItem('tabindex');\n\n if (!tabIndexAttribute || !tabIndexAttribute.specified) {\n return ~IE_FOCUSABLE_LIST.indexOf(element.nodeName.toLowerCase()) ? 0 : null;\n }\n } else if (!~tabIndex) {\n const attr = element.getAttribute('tabindex');\n\n if (attr === null || (attr === '' && !IS_FIREFOX)) {\n return null;\n }\n }\n\n return tabIndex;\n}\n","import getTabIndex from './TypeFocusSink/getTabIndex';\n\nconst ALWAYS_TRUE_FN = () => true;\n\nconst SELECTOR =\n 'a[href], audio, button, details, details summary, embed, iframe, input, object, rect, select, svg[focusable], textarea, video, [tabindex]';\n\nexport default function firstTabbableDescendant(element, filter = ALWAYS_TRUE_FN) {\n if (!element) {\n return;\n }\n\n // This is best-effort for finding a tabbable element.\n // For a comprehensive list, please refer to https://allyjs.io/data-tables/focusable.html and update this list accordingly.\n const focusables = [].filter.call(element.querySelectorAll(SELECTOR), filter);\n\n return [].find.call(focusables, focusable => {\n const tabIndex = getTabIndex(focusable);\n\n return typeof tabIndex === 'number' && tabIndex >= 0;\n });\n}\n\nfunction orSelf(element) {\n if (!element) {\n return;\n }\n\n // \"msMatchesSelector\" is vendor-prefixed version of \"matches\".\n if ((element.matches || element['msMatchesSelector']).call(element, SELECTOR)) {\n return element;\n }\n\n return firstTabbableDescendant(element);\n}\n\nexport { orSelf };\n","import { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport React, { memo } from 'react';\nimport { boolean, object, optional, pipe, readonly, string, type InferInput } from 'valibot';\n\nimport DefaultAvatar from '../Middleware/Avatar/DefaultAvatar';\n\nconst avatarPropsSchema = pipe(\n object({\n 'aria-hidden': optional(boolean()),\n className: optional(string()),\n fromUser: optional(boolean())\n }),\n readonly()\n);\n\ntype AvatarProps = InferInput<typeof avatarPropsSchema>;\n\n/** @deprecated Please use `useRenderAvatar` hook instead. */\nfunction Avatar(props: AvatarProps) {\n const { 'aria-hidden': ariaHidden = false, className, fromUser } = validateProps(avatarPropsSchema, props);\n\n console.warn(\n 'botframework-webchat: <Avatar> component is deprecated and will be removed on or after 2022-02-25. Please use `useRenderAvatar` hook instead.'\n );\n\n return <DefaultAvatar aria-hidden={ariaHidden} className={className} fromUser={fromUser} />;\n}\n\nexport default memo(Avatar);\nexport { avatarPropsSchema, type AvatarProps };\n","/* eslint no-console: \"off\" */\n\nimport { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport { hooks } from 'botframework-webchat-api';\nimport React, { Fragment, memo, useEffect } from 'react';\nimport { object, optional, pipe, readonly, string, unknown, type InferInput } from 'valibot';\n\nimport useStyleSet from './hooks/useStyleSet';\nimport ScreenReaderText from './ScreenReaderText';\n\nconst { useLocalizer, useTrackException } = hooks;\n\n/**\n * @deprecated This component is deprecated and will be removed on or after 2027-08-16.\n */\nconst errorBoxPropsSchema = pipe(\n object({\n error: unknown(),\n type: optional(string())\n }),\n readonly()\n);\n\n/**\n * @deprecated This component is deprecated and will be removed on or after 2027-08-16.\n */\ntype ErrorBoxProps = InferInput<typeof errorBoxPropsSchema>;\n\n/**\n * @deprecated This component is deprecated and will be removed on or after 2027-08-16.\n */\nfunction ErrorBox(props: ErrorBoxProps) {\n const { error, type = '' } = validateProps(errorBoxPropsSchema, props);\n\n const [{ errorBox: errorBoxStyleSet }] = useStyleSet();\n const localize = useLocalizer();\n const trackException = useTrackException();\n\n useEffect(() => {\n let rectifiedError: Error;\n\n if (error instanceof Error) {\n rectifiedError = error;\n } else {\n rectifiedError = new Error('Unknown error occured');\n rectifiedError.cause = error;\n }\n\n trackException(rectifiedError, false);\n }, [error, trackException]);\n\n return (\n <Fragment>\n <ScreenReaderText text={localize('ACTIVITY_ERROR_BOX_TITLE')} />\n <div className={errorBoxStyleSet}>\n <div>{type}</div>\n {/* The callstack between production and development are different, thus, we should hide it for visual regression test */}\n {error instanceof Error ? (\n <details>\n <summary>{error.message}</summary>\n <pre>{error.stack}</pre>\n </details>\n ) : (\n // eslint-disable-next-line no-magic-numbers\n <pre>{JSON.stringify(error, null, 2)}</pre>\n )}\n </div>\n </Fragment>\n );\n}\n\nexport default memo(ErrorBox);\nexport { errorBoxPropsSchema, type ErrorBoxProps };\n","/* eslint react/no-unused-prop-types: off */\n/* eslint react/require-default-props: off */\n\nimport { reactNode, validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport {\n type ActivityMiddleware,\n type ActivityStatusMiddleware,\n type AttachmentForScreenReaderMiddleware,\n type AttachmentMiddleware,\n type AvatarMiddleware,\n type CardActionMiddleware,\n type GroupActivitiesMiddleware,\n type ScrollToEndButtonMiddleware,\n type SendBoxMiddleware,\n type SendBoxToolbarMiddleware,\n type StyleOptions,\n type ToastMiddleware,\n type TypingIndicatorMiddleware\n} from 'botframework-webchat-api';\nimport { StyleOptionsComposer } from 'botframework-webchat-api/internal.js';\nimport { type Polymiddleware } from 'botframework-webchat-api/middleware.js';\nimport React, { memo, useContext, useMemo, type ReactNode } from 'react';\nimport { array, custom, function_, is, object, optional, pipe, readonly } from 'valibot';\n\nimport Context, { type ThemeContextType } from './private/Context';\n\nconst themeProviderPropsSchema = pipe(\n object({\n children: optional(reactNode()),\n styleOptions: optional(custom<StyleOptions>(value => is(object({}), value))),\n\n /** @deprecated Use `polymiddleware` instead, this will be removed on or after 2027-08-16. */\n activityMiddleware: optional(pipe(array(custom<ActivityMiddleware>(value => is(function_(), value))))),\n activityStatusMiddleware: optional(pipe(array(custom<ActivityStatusMiddleware>(value => is(function_(), value))))),\n attachmentForScreenReaderMiddleware: optional(\n pipe(array(custom<AttachmentForScreenReaderMiddleware>(value => is(function_(), value))))\n ),\n attachmentMiddleware: optional(pipe(array(custom<AttachmentMiddleware>(value => is(function_(), value))))),\n avatarMiddleware: optional(pipe(array(custom<AvatarMiddleware>(value => is(function_(), value))))),\n cardActionMiddleware: optional(pipe(array(custom<CardActionMiddleware>(value => is(function_(), value))))),\n groupActivitiesMiddleware: optional(\n pipe(array(custom<GroupActivitiesMiddleware>(value => is(function_(), value))))\n ),\n polymiddleware: optional(pipe(array(custom<Polymiddleware>(value => is(function_(), value))))),\n scrollToEndButtonMiddleware: optional(\n pipe(array(custom<ScrollToEndButtonMiddleware>(value => is(function_(), value))))\n ),\n sendBoxMiddleware: optional(pipe(array(custom<SendBoxMiddleware>(value => is(function_(), value))))),\n sendBoxToolbarMiddleware: optional(pipe(array(custom<SendBoxToolbarMiddleware>(value => is(function_(), value))))),\n toastMiddleware: optional(pipe(array(custom<ToastMiddleware>(value => is(function_(), value))))),\n typingIndicatorMiddleware: optional(pipe(array(custom<TypingIndicatorMiddleware>(value => is(function_(), value)))))\n }),\n readonly()\n);\n\n// We cannot use InferInput<> here because the array need to be readonly but InferInput omitted the readonly.\ntype ThemeProviderProps = {\n readonly children?: ReactNode | undefined;\n readonly styleOptions?: object | undefined;\n /** @deprecated Use `polymiddleware` instead, this will be removed on or after 2027-08-16. */\n readonly activityMiddleware?: readonly ActivityMiddleware[] | undefined;\n readonly activityStatusMiddleware?: readonly ActivityStatusMiddleware[] | undefined;\n readonly attachmentForScreenReaderMiddleware?: readonly AttachmentForScreenReaderMiddleware[] | undefined;\n readonly attachmentMiddleware?: readonly AttachmentMiddleware[] | undefined;\n readonly avatarMiddleware?: readonly AvatarMiddleware[] | undefined;\n readonly cardActionMiddleware?: readonly CardActionMiddleware[] | undefined;\n readonly groupActivitiesMiddleware?: readonly GroupActivitiesMiddleware[] | undefined;\n readonly polymiddleware?: readonly Polymiddleware[] | undefined;\n readonly scrollToEndButtonMiddleware?: readonly ScrollToEndButtonMiddleware[] | undefined;\n readonly sendBoxMiddleware?: readonly SendBoxMiddleware[] | undefined;\n readonly sendBoxToolbarMiddleware?: readonly SendBoxToolbarMiddleware[] | undefined;\n readonly toastMiddleware?: readonly ToastMiddleware[] | undefined;\n readonly typingIndicatorMiddleware?: readonly TypingIndicatorMiddleware[] | undefined;\n};\n\nconst EMPTY_ARRAY = Object.freeze([] as const);\n\nconst ThemeProvider = (props: ThemeProviderProps) => {\n const {\n activityMiddleware,\n activityStatusMiddleware,\n attachmentForScreenReaderMiddleware,\n attachmentMiddleware,\n avatarMiddleware,\n cardActionMiddleware,\n children,\n groupActivitiesMiddleware,\n polymiddleware,\n scrollToEndButtonMiddleware,\n sendBoxMiddleware,\n sendBoxToolbarMiddleware,\n styleOptions,\n toastMiddleware,\n typingIndicatorMiddleware\n } = validateProps(themeProviderPropsSchema, props);\n\n const existingContext = useContext(Context);\n\n // TODO: [P1] We should reduce boilerplate code.\n const mergedActivityMiddleware = useMemo<ThemeContextType['activityMiddleware']>(\n () => Object.freeze([...(activityMiddleware || []), ...existingContext.activityMiddleware]),\n [activityMiddleware, existingContext.activityMiddleware]\n );\n\n const mergedActivityStatusMiddleware = useMemo<ThemeContextType['activityStatusMiddleware']>(\n () => Object.freeze([...(activityStatusMiddleware || EMPTY_ARRAY), ...existingContext.activityStatusMiddleware]),\n [activityStatusMiddleware, existingContext.activityStatusMiddleware]\n );\n\n const mergedAttachmentForScreenReaderMiddleware = useMemo<ThemeContextType['attachmentForScreenReaderMiddleware']>(\n () =>\n Object.freeze([\n ...(attachmentForScreenReaderMiddleware || EMPTY_ARRAY),\n ...existingContext.attachmentForScreenReaderMiddleware\n ]),\n [attachmentForScreenReaderMiddleware, existingContext.attachmentForScreenReaderMiddleware]\n );\n\n const mergedAttachmentMiddleware = useMemo<ThemeContextType['attachmentMiddleware']>(\n () => Object.freeze([...(attachmentMiddleware || EMPTY_ARRAY), ...existingContext.attachmentMiddleware]),\n [attachmentMiddleware, existingContext.attachmentMiddleware]\n );\n\n const mergedAvatarMiddleware = useMemo<ThemeContextType['avatarMiddleware']>(\n () => Object.freeze([...(avatarMiddleware || EMPTY_ARRAY), ...existingContext.avatarMiddleware]),\n [avatarMiddleware, existingContext.avatarMiddleware]\n );\n\n const mergedCardActionMiddleware = useMemo<ThemeContextType['cardActionMiddleware']>(\n () => Object.freeze([...(cardActionMiddleware || EMPTY_ARRAY), ...existingContext.cardActionMiddleware]),\n [cardActionMiddleware, existingContext.cardActionMiddleware]\n );\n\n const mergedGroupActivitiesMiddleware = useMemo<ThemeContextType['groupActivitiesMiddleware']>(\n () => Object.freeze([...(groupActivitiesMiddleware || EMPTY_ARRAY), ...existingContext.groupActivitiesMiddleware]),\n [groupActivitiesMiddleware, existingContext.groupActivitiesMiddleware]\n );\n\n const mergedPolymiddleware = useMemo<ThemeContextType['polymiddleware']>(\n () => Object.freeze([...(polymiddleware || EMPTY_ARRAY), ...existingContext.polymiddleware]),\n [polymiddleware, existingContext.polymiddleware]\n );\n\n const mergedScrollToEndButtonMiddleware = useMemo<ThemeContextType['scrollToEndButtonMiddleware']>(\n () =>\n Object.freeze([...(scrollToEndButtonMiddleware || EMPTY_ARRAY), ...existingContext.scrollToEndButtonMiddleware]),\n [scrollToEndButtonMiddleware, existingContext.scrollToEndButtonMiddleware]\n );\n\n const mergedSendBoxMiddleware = useMemo<ThemeContextType['sendBoxMiddleware']>(\n () => Object.freeze([...(sendBoxMiddleware || EMPTY_ARRAY), ...existingContext.sendBoxMiddleware]),\n [sendBoxMiddleware, existingContext.sendBoxMiddleware]\n );\n\n const mergedSendBoxToolbarMiddleware = useMemo<ThemeContextType['sendBoxToolbarMiddleware']>(\n () => Object.freeze([...(sendBoxToolbarMiddleware || EMPTY_ARRAY), ...existingContext.sendBoxToolbarMiddleware]),\n [sendBoxToolbarMiddleware, existingContext.sendBoxToolbarMiddleware]\n );\n\n const mergedToastMiddleware = useMemo<ThemeContextType['toastMiddleware']>(\n () => Object.freeze([...(toastMiddleware || EMPTY_ARRAY), ...existingContext.toastMiddleware]),\n [toastMiddleware, existingContext.toastMiddleware]\n );\n\n const mergedTypingIndicatorMiddleware = useMemo<ThemeContextType['typingIndicatorMiddleware']>(\n () => Object.freeze([...(typingIndicatorMiddleware || EMPTY_ARRAY), ...existingContext.typingIndicatorMiddleware]),\n [typingIndicatorMiddleware, existingContext.typingIndicatorMiddleware]\n );\n\n const context = useMemo(\n () => ({\n activityMiddleware: mergedActivityMiddleware,\n activityStatusMiddleware: mergedActivityStatusMiddleware,\n attachmentForScreenReaderMiddleware: mergedAttachmentForScreenReaderMiddleware,\n attachmentMiddleware: mergedAttachmentMiddleware,\n avatarMiddleware: mergedAvatarMiddleware,\n cardActionMiddleware: mergedCardActionMiddleware,\n groupActivitiesMiddleware: mergedGroupActivitiesMiddleware,\n polymiddleware: mergedPolymiddleware,\n scrollToEndButtonMiddleware: mergedScrollToEndButtonMiddleware,\n sendBoxMiddleware: mergedSendBoxMiddleware,\n sendBoxToolbarMiddleware: mergedSendBoxToolbarMiddleware,\n toastMiddleware: mergedToastMiddleware,\n typingIndicatorMiddleware: mergedTypingIndicatorMiddleware\n }),\n [\n mergedActivityMiddleware,\n mergedActivityStatusMiddleware,\n mergedAttachmentForScreenReaderMiddleware,\n mergedAttachmentMiddleware,\n mergedAvatarMiddleware,\n mergedCardActionMiddleware,\n mergedGroupActivitiesMiddleware,\n mergedPolymiddleware,\n mergedScrollToEndButtonMiddleware,\n mergedSendBoxMiddleware,\n mergedSendBoxToolbarMiddleware,\n mergedToastMiddleware,\n mergedTypingIndicatorMiddleware\n ]\n );\n\n return (\n <StyleOptionsComposer styleOptions={styleOptions}>\n <Context.Provider value={context}>{children}</Context.Provider>\n </StyleOptionsComposer>\n );\n};\n\nThemeProvider.displayName = 'ThemeProvider';\n\nexport default memo(ThemeProvider);\nexport { themeProviderPropsSchema, type ThemeProviderProps };\n"],"mappings":"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","names":["component_exports","__export","Surface_default","AttachmentBar_default","AudioContent_default","Avatar_default","BasicConnectivityStatus_default","BasicSendBox_default","BasicSendBoxToolbar_default","BasicToaster_default","BasicTranscript_default","BasicWebChat_default","Bubble_default","Composer_default","DictationInterims_default","ErrorBox_default","FileContent_default","HTMLVideoContent_default","ImageContent_default","LocalizedString_default","MicrophoneButton_default","ReactWebChat_default","SendButton_default","SendStatus_default","TextBox_default","Speak_default","SuggestedActions_default","TextArea_default","TextContent_default","ThemeProvider_default","Timestamp_default","UploadButton_default","VideoContent_default","VimeoContent_default","YouTubeContent_default","g","f","h","i","j","k","m","b","a","l","c","e","d","n","require_global_this","__commonJSMin","exports","module","check","it","require_fails","exec","require_function_bind_native","fails","S","test","require_function_apply","NATIVE_BIND","er","FunctionPrototype","apply","call","require_function_uncurry_this","uncurryThisWithBind","fn","require_classof_raw","uncurryThis","b","toString","stringSlice","require_function_uncurry_this_clause","classofRaw","tr","require_is_callable","documentAll","argument","require_descriptors","require_function_call","require_object_property_is_enumerable","$propertyIsEnumerable","getOwnPropertyDescriptor","NASHORN_BUG","V","descriptor","require_create_property_descriptor","bitmap","value","require_indexed_object","classof","$Object","split","require_is_null_or_undefined","require_require_object_coercible","isNullOrUndefined","ir","$TypeError","require_to_indexed_object","IndexedObject","Vt","requireObjectCoercible","Sr","require_is_object","isCallable","q","require_path","require_get_built_in","path","nr","globalThis","d","aFunction","variable","namespace","method","require_object_is_prototype_of","require_environment_user_agent","navigator","userAgent","require_environment_v8_version","$","process","Deno","versions","v8","match","version","require_symbol_constructor_detection","V8_VERSION","oe","$String","symbol","require_use_symbol_as_uid","NATIVE_SYMBOL","ae","require_is_symbol","getBuiltIn","C","isPrototypeOf","Ir","USE_SYMBOL_AS_UID","ue","$Symbol","require_try_to_string","require_a_callable","tryToString","or","require_get_method","aCallable","x","P","func","require_ordinary_to_primitive","T","isObject","I","input","pref","val","require_is_pure","require_define_global_property","defineProperty","key","require_shared_store","IS_PURE","G","defineGlobalProperty","Ti","SHARED","store","require_shared","ar","require_to_object","require_has_own_property","toObject","Pi","hasOwnProperty","require_uid","id","postfix","require_well_known_symbol","shared","fe","hasOwn","A","uid","pe","Symbol","WellKnownSymbolsStore","createWellKnownSymbol","name","require_to_primitive","isSymbol","se","getMethod","Pr","ordinaryToPrimitive","qi","wellKnownSymbol","g","TO_PRIMITIVE","exoticToPrim","result","require_to_property_key","toPrimitive","Di","require_document_create_element","document","EXISTS","require_ie8_dom_define","DESCRIPTORS","w","createElement","he","require_object_get_own_property_descriptor","propertyIsEnumerableModule","$t","createPropertyDescriptor","Er","toIndexedObject","ee","toPropertyKey","ye","IE8_DOM_DEFINE","me","$getOwnPropertyDescriptor","O","require_is_forced","replacement","isForced","feature","detection","data","normalize","POLYFILL","NATIVE","string","require_function_bind_context","Qr","bind","that","require_v8_prototype_define_bug","require_an_object","require_object_define_property","V8_PROTOTYPE_DEFINE_BUG","Yi","anObject","D","$defineProperty","ENUMERABLE","CONFIGURABLE","WRITABLE","Attributes","current","require_create_non_enumerable_property","definePropertyModule","cr","object","require_export","Hr","Gi","be","sr","createNonEnumerableProperty","vr","wrapConstructor","NativeConstructor","Wrapper","a","c","options","source","TARGET","GLOBAL","STATIC","PROTO","nativeSource","target","targetPrototype","FORCED","USE_NATIVE","VIRTUAL_PROTOTYPE","sourceProperty","targetProperty","nativeProperty","resultProperty","require_add_to_unscopables","require_does_not_exceed_safe_integer","MAX_SAFE_INTEGER","require_math_trunc","ceil","floor","n","require_to_integer_or_infinity","trunc","an","number","require_to_length","toIntegerOrInfinity","xr","min","len","require_length_of_array_like","toLength","cn","obj","require_to_absolute_index","max","index","length","integer","require_create_property","require_es_array_to_spliced","_","addToUnscopables","en","doesNotExceedSafeInteger","nn","lengthOfArrayLike","Se","toAbsoluteIndex","createProperty","dn","$Array","start","deleteCount","actualStart","argumentsLength","k","insertCount","actualDeleteCount","newLen","require_entry_unbind","require_to_spliced","Re","entryUnbind","qn","parent","mn","require_esnext_array_to_spliced","Tn","On","En","In","require_environment","userAgentStartsWith","require_environment_is_node","ENVIRONMENT","Pe","require_define_built_in","require_function_uncurry_this_accessor","require_is_possible_prototype","require_a_possible_prototype","isPossiblePrototype","Mn","require_object_set_prototype_of","uncurryThisAccessor","An","aPossiblePrototype","Un","CORRECT_SETTER","setter","proto","require_to_string_tag_support","TO_STRING_TAG","require_classof","TO_STRING_TAG_SUPPORT","Nr","CORRECT_ARGUMENTS","tryGet","tag","require_object_to_string","Ar","require_set_to_string_tag","Wn","TAG","SET_METHOD","require_define_built_in_accessor","require_set_species","defineBuiltInAccessor","Hn","SPECIES","CONSTRUCTOR_NAME","Constructor","require_an_instance","Prototype","require_inspect_source","functionToString","require_is_constructor","inspectSource","_e","noop","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","called","require_a_constructor","isConstructor","so","require_species_constructor","aConstructor","vo","defaultConstructor","require_html","require_array_slice","require_validate_arguments_length","passed","required","require_environment_is_ios","require_task","html","qo","arraySlice","mo","validateArgumentsLength","To","IS_IOS","Ne","IS_NODE","Cr","set","clear","Dispatch","Function","MessageChannel","String","counter","queue","ONREADYSTATECHANGE","$location","defer","channel","port","run","runner","eventListener","event","globalPostMessageDefer","handler","args","require_safe_get_built_in","require_queue","Queue","item","entry","tail","next","require_environment_is_ios_pebble","require_environment_is_webos_webkit","require_microtask","safeGetBuiltIn","Ao","macrotask","$e","Ge","IS_IOS_PEBBLE","Uo","IS_WEBOS_WEBKIT","Lo","MutationObserver","Promise","microtask","notify","toggle","node","promise","then","flush","error","require_host_report_errors","require_perform","require_weak_map_basic_detection","WeakMap","require_shared_key","keys","require_hidden_keys","require_internal_state","NATIVE_WEAK_MAP","Zo","sharedKey","ta","hiddenKeys","na","OBJECT_ALREADY_INITIALIZED","TypeError","get","has","enforce","getterFor","TYPE","state","metadata","STATE","require_promise_native_constructor","require_promise_constructor_detection","NativePromiseConstructor","z","NativePromisePrototype","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT","FORCED_PROMISE_CONSTRUCTOR","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","resolve","FakePromise","constructor","require_new_promise_capability","PromiseCapability","reject","$$resolve","$$reject","require_es_promise_constructor","defineBuiltIn","we","setPrototypeOf","Ln","setToStringTag","zn","setSpecies","Zn","anInstance","eo","speciesConstructor","po","task","Yo","hostReportErrors","Jo","perform","Fr","InternalStateModule","sa","PromiseConstructorDetection","J","newPromiseCapabilityModule","U","PROMISE","NATIVE_PROMISE_SUBCLASSING","getInternalPromiseState","setInternalState","PromiseConstructor","PromisePrototype","newPromiseCapability","newGenericPromiseCapability","DISPATCH_EVENT","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","REJECTED","HANDLED","UNHANDLED","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","isThenable","callReaction","reaction","ok","domain","exited","onHandleUnhandled","isReject","reactions","onUnhandled","dispatchEvent","reason","IS_UNHANDLED","isUnhandled","unwrap","internalReject","internalResolve","wrapper","executor","onFulfilled","onRejected","require_iterators","require_is_array_iterator_method","Iterators","ut","ITERATOR","ArrayPrototype","require_get_iterator_method","require_get_iterator","getIteratorMethod","st","usingIterator","iteratorMethod","require_iterator_close","iterator","kind","innerResult","innerError","require_iterate","isArrayIteratorMethod","Ua","getIterator","Ga","iteratorClose","Wa","Result","stopped","ResultPrototype","iterable","unboundFunction","AS_ENTRIES","IS_RECORD","IS_ITERATOR","INTERRUPTED","iterFn","step","stop","condition","$iterator","callFn","require_check_correctness_of_iteration","SAFE_CLOSING","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","require_promise_statics_incorrect_iteration","checkCorrectnessOfIteration","ru","require_es_promise_all","iterate","ct","PROMISE_STATICS_INCORRECT_ITERATION","lt","capability","$promiseResolve","values","remaining","alreadyCalled","require_es_promise_catch","require_es_promise_race","require_es_promise_reject","r","capabilityReject","require_promise_resolve","promiseCapability","require_es_promise_resolve","promiseResolve","su","PromiseConstructorWrapper","CHECK_WRAPPER","require_es_promise","Da","tu","nu","ou","au","lu","require_es_promise_with_resolvers","require_with_resolvers","fu","dt","promiseWithResolvers","yu","require_esnext_promise_with_resolvers","hu","mu","Tu","gu","kebabCase","ofs","setMetaTag","contentMap","meta","BuildInfo","#name","#map","#object","#commit","createBuildInfo","createBuildInfo_default","once","done","warnOnce","message","FORBIDDEN_PROPERTY_NAMES","OBJECT_PROTOTYPE","EMPTY_ARRAY","singleToArray","singleOrArray","import_to_spliced","n","Pn","import_with_resolvers","n","Su","APIComposer","extractSendBoxMiddleware","extractSendBoxToolbarMiddleware","hooks","DecoratorComposer","StoreDebugAPIRegistry","classNames","MarkdownIt","PropTypes","React","memo","useCallback","useEffect","useMemo","useRef","useState","SayComposer","React","PropTypes","React","React","memo","boolean","object","optional","pipe","readonly","string","audioContentPropsSchema","pipe","object","optional","string","boolean","readonly","AudioContent","props","alt","autoPlay","loop","src","o","audioContentStyleSet","useStyleSet","React","AudioContent_default","memo","AudioAttachment","attachment","audioAttachmentStyleSet","useStyleSet","React","AudioContent_default","PropTypes","AudioAttachment_default","PropTypes","React","hooks","classNames","React","memo","boolean","number","object","optional","pipe","readonly","string","useByteFormatter","useDirection","useLocalizer","hooks","ROOT_STYLE","ALLOWED_PROTOCOLS","isAllowedProtocol","url","fileContentBadgePropsSchema","pipe","object","optional","boolean","string","number","readonly","FileContentBadge","props","downloadIcon","fileName","size","o","direction","formatByte","localizedSize","React","ComponentIcon_default","classNames","fileContentPropsSchema","FileContent","className","href","fileContentStyleSet","useStyleSet","localize","localizeBytes","rootClassName","useStyleToEmotionObject","sanitizedHref","alt","FileContent_default","memo","FileAttachment","attachments","attachmentSizes","attachment","attachmentIndex","size","React","FileContent_default","PropTypes","FileAttachment_default","React","memo","custom","is","object","optional","pipe","readonly","string","union","toByteArray","PATTERN","DEFAULT_CONTENT_TYPE","parse","dataURI","match","contentType","encoding","base64","readDataURIToBlob","parsed","React","memo","classNames","React","memo","CustomPropertyNames","CustomPropertyNames_default","CSSTokens","_","key","CustomPropertyNames_default","CSSTokens_default","ROOT_STYLE","CSSTokens_default","FixedWidthImage","memo","alt","className","src","React","classNames","useStyleToEmotionObject","FixedWidthImage_default","ImageContent","memo","alt","src","React","FixedWidthImage_default","ImageContent_default","imageAttachmentPropsSchema","pipe","object","custom","value","is","union","string","optional","readonly","ImageAttachment","memo","props","attachment","o","imageURL","blob","readDataURIToBlob","React","ImageContent_default","ImageAttachment_default","React","memo","any","custom","is","object","optional","pipe","readonly","startsWith","string","hooks","React","memo","useMemo","any","object","optional","pipe","readonly","string","getOrgSchemaMessage","isAIGeneratedActivity","activity","hooks","getOrgSchemaMessage","onErrorResumeNext","orgSchemaClaimSchema","cx","React","memo","useCallback","useMemo","useRef","useRefFrom","custom","object","optional","parse","pipe","readonly","string","isOfType","React","memo","useCallback","useMemo","Extract","wrapWith","useRefFrom","hooks","React","memo","useCallback","useEffect","useRef","useState","React","memo","useMemo","object","optional","pipe","readonly","string","markdownablePropsSchema","pipe","object","optional","string","readonly","Markdownable","className","id","text","renderMarkdownAsHTML","useRenderMarkdownAsHTML","innerHTML","useMemo","React","Markdownable_default","memo","hooks","cx","React","forwardRef","Fragment","useCallback","useRef","boolean","custom","number","object","optional","pipe","readonly","string","classes","TextArea_module_default","_text_area0","_text_area_shared0","classes","_text_area__hidden0","classes","_text_area_input0","classes","_text_area__in_completion0","classes","_text_area_doppelganger0","classes","_text_area__scroll0","classes","useUIState","hooks","TextAreaPropsSchema","pipe","object","optional","string","c","boolean","custom","value","number","readonly","TextArea","forwardRef","rawProps","ref","props","o","uiState","classNames","St","TextArea_module_default","isInCompositionRef","useRef","disabled","handleCompositionEnd","useCallback","handleCompositionStart","handleKeyDown","event","React","cx","Fragment","TextArea_default","useContext","createContext","ActivityFeedbackContext","ActivityFeedbackContext_default","useActivityFeedbackHooks","useContext","ActivityFeedbackContext_default","orgSchemaUserReviewSchema","safeParse","getDisclaimerFromActivity","action","parseResult","classes","FeedbackForm_module_default","_feedback_form__form_header0","_feedback_form__form0","classes","_feedback_form0","classes","_feedback_form__vote_button_bar0","classes","_feedback_form__text_area0","classes","_feedback_form__submit_button0","classes","_feedback_form__submission_button_bar0","classes","_feedback_form__cancel_button0","classes","_feedback_form__form_footer0","classes","_feedback_form__text_box0","classes","useLocalizer","hooks","FeedbackForm","classNames","St","FeedbackForm_module_default","useFeedbackText","useSelectedAction","useActivityFeedbackHooks","feedbackFormHeaderId","useUniqueId","disclaimerId","selectedAction","hasFocus","setHasFocus","useState","userFeedback","setUserFeedback","feedbackTextAreaRef","useRef","localize","disclaimer","getDisclaimerFromActivity","handleMessageChange","useCallback","value","useEffect","React","TextArea_default","testIds_default","Markdownable_default","FeedbackForm_default","memo","React","memo","literal","object","pipe","readonly","union","hooks","orgSchemaActionSchema","orgSchemaVoteActionSchema","React","memo","useCallback","useMemo","useRef","useRefFrom","literal","object","pipe","readonly","string","union","isOfType","createPropagation","ActivityFeedbackFocusPropagationScope","useListenToActivityFeedbackFocus","usePropagateActivityFeedbackFocus","hooks","cx","React","forwardRef","memo","useCallback","useMemo","useRefFrom","boolean","function_","literal","object","optional","pipe","readonly","string","union","cx","React","memo","Tooltip","children","className","position","tooltipClassName","useStyleSet","React","cx","Tooltip_default","memo","React","memo","boolean","literal","object","optional","pipe","readonly","string","union","thumbButtonImagePropsSchema","pipe","object","optional","string","union","literal","boolean","readonly","ThumbButtonImage","memo","props","className","direction","filled","o","React","ComponentIcon_default","ThumbButton_Image_default","classes","ThumbButton_module_default","_thumb_button__large0","_thumb_button__input0","classes","_thumb_button0","classes","_thumb_button__has_submitted0","classes","_thumb_button__tooltip0","classes","_thumb_button__image__is_filled0","classes","_thumb_button__image__is_stroked0","classes","_thumb_button__image0","classes","useLocalizer","hooks","thumbButtonPropsSchema","pipe","object","union","literal","optional","string","boolean","function_","readonly","ThumbButton","props","ref","as","className","direction","disabled","name","onClick","pressed","size","submitted","title","o","localize","onClickRef","useRefFrom","classNames","St","ThumbButton_module_default","buttonTitle","useMemo","handleClickOrChange","useCallback","handleKeyDown","event","React","cx","testIds_default","ThumbButton_Image_default","Tooltip_default","ThumbButton_default","memo","forwardRef","isOfType","isActionRequireReview","action","firstResult","canActionResubmit","action","isActionRequireReview","useLocalizer","useStyleOptions","hooks","feedbackVoteButtonPropsSchema","pipe","object","union","orgSchemaActionSchema","orgSchemaVoteActionSchema","literal","string","readonly","FeedbackVoteButton","props","useHasSubmitted","useSelectedActions","useActivityFeedbackHooks","action","as","name","o","feedbackActionsPlacement","hasSubmitted","selectedAction","setSelectedAction","actionRef","useRefFrom","buttonRef","useRef","direction","useMemo","isOfType","localize","selectedActionRef","handleClick","useCallback","disabled","canActionResubmit","useListenToActivityFeedbackFocus","target","React","ThumbButton_default","isActionRequireReview","FeedbackVoteButton_default","memo","feedbackVoteButtonBarPropsSchema","pipe","object","union","literal","readonly","FeedbackVoteButtonBar","props","classNames","St","FeedbackForm_module_default","buttonAs","o","useActions","useActivityFeedbackHooks","actions","name","useUniqueId","React","action","index","FeedbackVoteButton_default","FeedbackVoteButtonBar_default","memo","hooks","orgSchemaActionSchema","getOrgSchemaMessage","isOfType","random","React","memo","useCallback","useMemo","useRef","useState","wrapWith","useRefFrom","useStateWithRef","custom","is","object","optional","parse","pipe","readonly","safeParse","deepFreeze","DANGEROUS_PROPERTY_NAMES","getSafeOwnPropertyNames","object","name","isBlankNode","node","id","isUnconnectedBlankNode","object","isBlankNode","name","visitOnce","visited","value","dereferenceBlankNodesInline","objects","blankNodeIdMap","objectsToVisit1","shouldVisit1","visitOnce","object","indices","getSafeOwnPropertyNames","index","value","isBlankNode","isUnconnectedBlankNode","objectsToVisit2","shouldVisit2","blankNode","dereferenceBlankNodes","graph","nextObjects","deepFreeze","is","literal","object","optional","string","union","activityWithFeedbackLoopSchemaWithDisclaimer","activityWithFeedbackLoopSchemaWithoutDisclaimer","feedbackLoopSchema","hasDisclaimer","activity","hasFeedbackLoop","getDisclaimerFromFeedbackLoop","activity","hasDisclaimer","usePonyfill","usePostActivity","hooks","activityFeedbackComposerPropsSchema","pipe","object","custom","value","is","optional","c","readonly","DEBOUNCE_TIMEOUT","patchActions","activity","actions","action","random","deprecatedFeedbackLoopChannelData","parse","orgSchemaActionSchema","ActivityFeedbackComposer","props","children","activityFromProps","o","clearTimeout","setTimeout","feedbackText","setFeedbackText","feedbackTextRef","useStateWithRef","useMemo","hasFeedbackLoop","getDisclaimerFromFeedbackLoop","activityRef","useRefFrom","actionStateRef","useRef","_","setForceRefresh","useState","setActionStateWithRefresh","useCallback","actionState","rawActions","graph","dereferenceBlankNodes","messageThing","getOrgSchemaMessage","reactActions","isOfType","voteActions","result","item","parseResult","safeParse","output","error","activeOrCompletedAction","actionStateForActions","actionsRef","postActivity","hasSubmitted","hasSubmittedRef","submit","_id","_actionStatus","rest","isLegacyAction","isActionRequireReview","entity","selectedAction","actionStatus","autoSubmitTimeoutRef","setSelectedAction","shouldAllowResubmit","canActionResubmit","id","selectedActionState","actionsState","feedbackTextState","hasSubmittedState","activityState","focusFeedbackButton","usePropagateActivityFeedbackFocus","useActions","useActivity","useFeedbackText","useFocusFeedbackButton","useHasSubmitted","useSelectedActions","useSubmit","context","React","ActivityFeedbackContext_default","ActivityFeedbackComposer_default","memo","wrapWith","ActivityFeedbackFocusPropagationScope","InternalActivityFeedback","classNames","St","FeedbackForm_module_default","useActions","useFeedbackText","useFocusFeedbackButton","useHasSubmitted","useSelectedAction","useSubmit","useActivityFeedbackHooks","_","setFeedbackText","actions","hasSubmitted","selectedAction","setSelectedAction","focusFeedbackButton","submit","firstActionRequireReview","useMemo","isActionRequireReview","selectedActionRef","useRefFrom","handleReset","useCallback","handleSubmit","event","handleKeyDown","isExpanded","isOfType","React","FeedbackVoteButtonBar_default","FeedbackForm_default","ActivityFeedback","wrapWith","ActivityFeedbackComposer_default","Extract","ActivityFeedback_default","memo","cx","React","memo","useCallback","useRefFrom","custom","object","optional","pipe","readonly","string","React","memo","React","memo","classes","LinkDefinitions_module_default","_link_definitions__list_item_box__as_button0","_link_definitions__header_accessory0","classes","_link_definitions__header_section0","classes","_link_definitions__list_item_body0","classes","_link_definitions__header_section__left0","classes","_link_definitions__header_chevron0","classes","_link_definitions__header_text0","classes","_link_definitions__list0","classes","_link_definitions__badge0","classes","_link_definitions__message_sensitivity_label_icon0","classes","_link_definitions__message_sensitivity_label_text0","classes","_link_definitions__list_item_box__as_link0","classes","_link_definitions__list_item_body_main0","classes","_link_definitions__list_item_main_text0","classes","_link_definitions0","classes","_link_definitions__list_item0","classes","_link_definitions__open_in_new_window_icon0","classes","_link_definitions__list_item_badge0","classes","_link_definitions__list_item_text0","classes","_link_definitions__message_sensitivity_label0","classes","_link_definitions__list_item_box0","classes","_link_definitions__header0","classes","Badge","memo","value","classNames","St","LinkDefinitions_module_default","React","Badge_default","cx","React","classes","TextContent_module_default","_text_content__is_markdown0","_text_content__markdown0","classes","_text_content0","classes","_text_content__generated_badge0","classes","_text_content__activity_actions0","classes","_text_content__open_in_new_window_icon0","classes","OpenInNewWindowIcon","className","classNames","St","TextContent_module_default","React","cx","OpenInNewWindowIcon_default","ItemBody","memo","badgeName","badgeTitle","identifier","isExternal","text","classNames","St","LinkDefinitions_module_default","React","Badge_default","OpenInNewWindowIcon_default","ItemBody_default","extractHostnameWithSubdomain","urlString","host","port","protocol","linkDefinitionItemPropsSchema","pipe","object","optional","string","custom","value","readonly","LinkDefinitionItem","memo","props","badgeName","badgeTitle","identifier","onClick","sanitizedHref","text","o","classNames","St","LinkDefinitions_module_default","onClickRef","useRefFrom","handleClick","useCallback","event","current","customEvent","React","cx","ItemBody_default","extractHostnameWithSubdomain","LinkDefinitionItem_default","hooks","cx","random","React","Children","useCallback","useMemo","useRef","useState","useLocalizer","useStyleOptions","hooks","childrenCount","childrenMap","Children","REFERENCE_LIST_HEADER_IDS","uniqueId","count","random","LinkDefinitions","accessoryComponentType","accessoryProps","children","id","useState","localizeWithPlural","summaryRef","useRef","classNames","St","LinkDefinitions_module_default","referenceListDefaultOpen","headerText","defaultOpenString","useMemo","handleToggle","useCallback","event","summary","details","isDetailsOpen","React","cx","ComponentIcon_default","child","LinkDefinitions_default","getFirstBaseOfSoftwareSourceCode","messageThing","jsonLinkedDataTypes","useCallback","useSanitizeHrefCallback","transformHTMLContent","useTransformHTMLContent","useCallback","href","anchorElement","fragment","transformedAnchorElement","cx","hooks","fromMarkdown","useLayoutEffect","useMemo","useRef","useState","useRefFrom","useLocalizer","useStyleOptions","hooks","EMPTY_DEFINITIONS","useStreamingMarkdownWithDefinitions","containerRef","markdown","finalize","renderMarkdown","useWebChatUIContext","styleOptions","localize","transformHTMLContent","useTransformHTMLContent","styleOptionsRef","useRefFrom","classNames","St","RenderMarkdown_module_default","externalLinkAlt","containerClassName","useMemo","cx","hasStreamingSupport","previousMarkdownRef","useRef","streamingRenderer","definitions","setDefinitions","useState","useLayoutEffect","container","prev","isAppendOnly","chunk","options","fallbackHTML","fallbackDefinitions","fromMarkdown","node","documentFragment","parseDocumentFragmentFromString","wrapper","useReactContext","createContext","defaultContextValue","Context","Context_default","useContext","useReactContext","Context_default","useShowModal","useContext","hooks","cx","React","memo","useCallback","useEffect","useRef","useState","instance","nullable","object","optional","pipe","readonly","string","any","check","is","object","pipe","readonly","refObject","baseSchema","message","value","refObject_default","classes","ActivityCopyButton_module_default","_activity_copy_button__copy_announcement0","_activity_copy_button0","classes","_activity_copy_button__copied0","classes","_activity_button__icon0","classes","_activity_button__text0","classes","_activity_copy_button__copied_text0","classes","useLocalizer","useUIState","hooks","activityCopyButtonPropsSchema","pipe","object","optional","string","refObject_default","nullable","instance","readonly","ActivityCopyButton","props","className","targetRef","o","classNames","St","ActivityCopyButton_module_default","permissionGranted","setPermissionGranted","useState","uiState","buttonRef","useRef","localize","queueStaticElement","useQueueStaticElement","copiedText","copyText","disabled","useEffect","current","handleAnimationEnd","handleClick","useCallback","htmlText","plainText","error","React","unmounted","ActivityButton_default","cx","ActivityCopyButton_default","memo","hooks","React","memo","useCallback","boolean","object","optional","pipe","readonly","string","hooks","onErrorResumeNext","MarkdownIt","React","memo","useMemo","MarkdownIt","iterator","md","ruleName","tokenType","scan","state","env","blkIdx","inlineTokens","i","TRANSPARENT_GIF","internalMarkdownIt","ZERO_WIDTH_SPACE_TOKEN","setTokenAttribute","attrs","name","value","index","entry","betterLinks","markdown","tokens","decorateLink","linkOptions","indexOfLinkCloseToken","type","updatedTokens","linkOpenToken","linkCloseToken","href","textContent","content","decoration","ariaLabel","asButton","className","iconAlt","iconClassName","rel","target","title","wrapZeroWidthSpace","iconTokens","betterLinks_default","allowedSchemes","linkDefinitions","externalLinkAlt","defaultDecorateLink","href","textContent","linkOptions","decoration","ariaLabelSegments","classes","linkDefinition","url","protocol","onErrorResumeNext","scheme","className","value","classNamesString","useLocalizer","hooks","markdownIt","MarkdownIt","betterLinks_default","isPlural","props","LocalizedString","linkClassName","onDecorateLink","stringIds","values","localize","env","useMemo","html","React","LocalizedString_default","memo","cx","React","Fragment","memo","object","optional","pipe","readonly","string","classes","ViewCodeDialog_module_default","_view_code_dialog__header0","_view_code_dialog0","classes","_view_code_dialog__title0","classes","_view_code_dialog__body0","classes","_view_code_dialog__footer0","classes","codeContentPropsSchema","pipe","object","optional","c","string","readonly","CodeContent","props","children","className","code","language","title","o","CodeBlock","useCodeBlockTag","classNames","St","ViewCodeDialog_module_default","React","Fragment","cx","CodeContent_default","memo","useLocalizer","hooks","activityViewCodeButtonPropsSchema","pipe","object","optional","string","boolean","readonly","ActivityViewCodeButton","props","className","code","language","title","isAIGenerated","o","classNames","St","ViewCodeDialog_module_default","showModal","useShowModal","localize","showCodeModal","useCallback","React","CodeContent_default","LocalizedString_default","ActivityButton_default","ActivityViewCodeButton_default","memo","cx","React","Fragment","memo","useMemo","object","optional","pipe","readonly","string","classes","CitationModal_module_default","_citation_modal_dialog__header0","_citation_modal_dialog0","classes","_citation_modal_dialog__body0","classes","citationModalContentPropsSchema","pipe","object","optional","string","readonly","CitationModalContent","props","headerText","markdown","o","classNames","St","CitationModal_module_default","renderMarkdownAsHTML","useRenderMarkdownAsHTML","html","useMemo","React","Fragment","cx","CitationModalContent_default","memo","cx","React","memo","useMemo","boolean","object","optional","pipe","readonly","string","classNames","React","Fragment","memo","boolean","object","optional","pipe","readonly","string","shieldIconPropsSchema","ShieldIcon","props","className","fillColor","hasLock","o","ShieldIcon_default","messageSensitivityLabelPropsSchema","pipe","object","optional","string","boolean","readonly","MessageSensitivityLabel","props","className","color","isEncrypted","name","title","o","classNames","St","LinkDefinitions_module_default","React","cx","useMemo","ShieldIcon_default","MessageSensitivityLabel_default","memo","isHTMLButtonElement","button","useLocalizer","useStyleOptions","hooks","markdownTextContentPropsSchema","pipe","object","custom","optional","c","string","readonly","isCitationURL","url","onErrorResumeNext","isCitingInline","claim","MarkdownTextContent","props","activity","children","markdown","o","citationModalClassNames","St","CitationModal_module_default","textContentClassNames","TextContent_module_default","feedbackActionsPlacement","contentRef","useRef","localize","graph","useMemo","dereferenceBlankNodes","showModal","useShowModal","markdownDefinitions","useStreamingMarkdownWithDefinitions","messageThing","getOrgSchemaMessage","citationModalDialogLabel","showClaimModal","useCallback","title","text","altText","React","CitationModalContent_default","sanitizeHref","useSanitizeHrefCallback","entries","markdownDefinition","messageCitation","parse","orgSchemaClaimSchema","position","rootLevelClaim","type","sanitizedHref","appearance","entriesRef","useRefFrom","handleClick","event","targetElement","buttonElement","isHTMLButtonElement","entry","key","messageSensitivityLabelProps","usageInfo","firstPattern","encryptionStatus","keyword","getEntryMainText","getEntryBadgeName","getEntryDescription","firstSoftwareSourceCodeBase","getFirstBaseOfSoftwareSourceCode","cx","LinkDefinitions_default","MessageSensitivityLabel_default","LinkDefinitionItem_default","ActivityViewCodeButton_default","isAIGeneratedActivity","ActivityCopyButton_default","ActivityFeedback_default","MarkdownTextContent_default","memo","cx","React","Fragment","memo","object","optional","pipe","readonly","string","plainTextContentPropsSchema","pipe","object","optional","c","string","readonly","PlainTextContent","props","children","text","o","classNames","St","TextContent_module_default","React","Fragment","line","cx","PlainTextContent_default","memo","useLocalizer","hooks","textContentPropsSchema","pipe","object","any","optional","string","readonly","TextContent","props","activity","contentType","text","o","classNames","St","TextContent_module_default","supportMarkdown","useRenderMarkdownAsHTML","localize","generatedBadge","useMemo","isAIGeneratedActivity","React","MarkdownTextContent_default","PlainTextContent_default","TextContent_default","memo","directLineAttachmentSchema","pipe","object","optional","string","readonly","textAttachmentPropsSchema","any","custom","value","is","startsWith","TextAttachment","props","activity","content","contentType","o","React","TextContent_default","TextAttachment_default","memo","classNames","PropTypes","React","React","memo","boolean","object","optional","pipe","readonly","string","React","memo","boolean","object","optional","pipe","readonly","string","htmlVideoContentPropsSchema","pipe","object","optional","string","boolean","readonly","HTMLVideoContent","props","alt","autoPlay","loop","poster","src","o","videoContentStyleSet","useStyleSet","React","HTMLVideoContent_default","memo","hooks","React","memo","boolean","object","optional","pipe","readonly","string","useLocalizer","hooks","vimeoContentPropsSchema","pipe","object","optional","string","boolean","readonly","VimeoContent","props","alt","autoPlay","embedID","loop","o","vimeoContentStyleSet","useStyleSet","localize","search","title","React","VimeoContent_default","memo","hooks","React","memo","boolean","object","optional","pipe","readonly","string","useLocalizer","hooks","youTubeContentPropsSchema","pipe","object","optional","string","boolean","readonly","YouTubeContent","props","alt","autoPlay","embedID","loop","o","youTubeContentStyleSet","useStyleSet","localize","search","title","React","YouTubeContent_default","memo","YOUTUBE_DOMAIN","YOUTUBE_WWW_DOMAIN","YOUTUBE_SHORT_DOMAIN","YOUTUBE_WWW_SHORT_DOMAIN","VIMEO_DOMAIN","VIMEO_WWW_DOMAIN","parseURL","url","urlLike","hostname","pathname","search","videoContentPropsSchema","pipe","object","optional","string","boolean","readonly","VideoContent","props","alt","autoPlay","loop","poster","src","o","lastSegment","searchParams","React","VimeoContent_default","YouTubeContent_default","HTMLVideoContent_default","VideoContent_default","memo","ROOT_STYLE","VideoAttachment","attachment","videoAttachmentStyleSet","useStyleSet","rootClassName","useStyleToEmotionObject","React","classNames","VideoContent_default","PropTypes","VideoAttachment_default","isTextAttachment","attachment","createCoreMiddleware","next","args","activity","role","contentType","contentUrl","thumbnailUrl","isText","React","FileAttachment_default","AudioAttachment_default","ImageAttachment_default","VideoAttachment_default","TextAttachment_default","LowPriorityDecoratorComposer","React","memo","createActivityGroupingMiddleware","hooks","React","Fragment","memo","array","custom","is","object","pipe","readonly","contextComponentType","useContext","createContextAndHook","RenderingActivitiesContext_default","useActivityRendererMap","useContext","hooks","React","memo","useCallback","useMemo","hooks","classNames","PropTypes","React","forwardRef","memo","useCallback","useMemo","useRef","useRefFrom","hooks","React","Fragment","memo","useCallback","useMemo","Say","SayUtterance","useRefFrom","any","array","object","optional","pipe","readonly","string","React","memo","literal","object","pipe","readonly","string","union","classes","SayAlt_module_default","_say_alt0","sayAltPropsSchema","pipe","object","union","literal","string","readonly","SayAlt","props","speak","o","classNames","St","SayAlt_module_default","React","SayAlt_default","memo","useMarkActivityAsSpoken","useStyleOptions","useVoiceSelector","hooks","speakableActivitySchema","pipe","object","optional","array","any","string","readonly","speakPropsSchema","Speak","props","activity","o","showSpokenText","webSpeechPonyfill","useWebSpeechPonyfill","activityRef","useRefFrom","markActivityAsSpoken","selectVoice","markAsSpoken","useCallback","singleLine","useMemo","attachments","speak","text","attachment","line","speechSynthesisUtterance","React","Fragment","SayUtterance","Say","SayAlt_default","Speak_default","memo","RestrictedDebugAPI","BREAKPOINT_NAMES","RestrictedActivityDebugAPI","getActivity","RestrictedActivityDebugAPI_default","useFocusByActivityKey","useTranscriptFocusContext","useGetDescendantIdByActivityKey","useTranscriptFocusContext","hooks","useEffect","useMemo","useState","SENDING","SEND_FAILED","SENT","textFormatToContentType","textFormat","walk","document","walker","nodes","results","node","childNodes","HTML_INLINE_TAGS","htmlTextAlternatives","nodeType","tagName","textContent","activityAltText","activity","renderMarkdownAsHTML","fallbackText","text","textFormatToContentType","useAvatarForBot","useGetKeyByActivity","useLocalizer","useSendStatusByActivityKey","hooks","ACTIVITY_NUM_ATTACHMENTS_ALT_IDS","useActivityAccessibleName","activity","bodyRef","botInitials","interactiveType","setInteractiveType","useState","sendStatusByActivityKey","fromSelf","getKeyByActivity","localize","localizeWithPlural","numAttachments","renderMarkdownAsHTML","useRenderMarkdownAsHTML","activityInteractiveFootNoteAlt","activityInteractiveReasonInteractiveContentAlt","activityInteractiveReasonLinkAlt","activityInteractiveReasonSendFailedAlt","activityKey","useMemo","greetingAlt","interactiveTypeRef","useValueRef","messageTextAlt","activityAltText","numAttachmentsAlt","isSendFailed","SEND_FAILED","accessibleName","useEffect","hasLinks","hasWidgets","tabbableElements","useActivityKeysByRead","useGetHasAcknowledgedByActivityKey","useGetKeyByActivity","hooks","ActivityRow","forwardRef","activity","children","ref","activeDescendantId","useActiveDescendantId","readActivityKeys","activityRef","useRefFrom","bodyRef","useRef","focusByActivityKey","useFocusByActivityKey","getKeyByActivity","shouldSpeak","accessibleName","useActivityAccessibleName","activityKey","acknowledged","activityKeyRef","descendantId","useGetDescendantIdByActivityKey","descendantLabelId","isActiveDescendant","read","focusSelf","useCallback","withFocus","handleDescendantFocus","handleLeaveFocusTrap","handleMouseDownCapture","focusTrapChildren","useMemo","React","activityIdRef","handleFormData","event","webchatIncludeActivityId","webchatIncludeActivityKey","prevArticleRef","restrictedDebugAPI","RestrictedActivityDebugAPI_default","debugAPI","wrappedRef","el","TranscriptFocusContent_default","classNames","FocusTrap_default","Speak_default","TranscriptFocusContentOverlay_default","android","TranscriptFocusContentActiveDescendant_default","ScreenReaderText_default","TranscriptFocusIndicator_default","PropTypes","ActivityRow_default","memo","hooks","LegacyActivityContextProvider","React","memo","useMemo","custom","is","object","optional","pipe","readonly","useStyleOptions","hooks","webChatActivitySchema","custom","value","is","object","legacyActivityComposerPropsSchema","pipe","optional","c","readonly","LegacyActivityBridgeComposer","props","activity","children","o","bubbleFromUserNubOffset","bubbleNubOffset","groupTimestamp","showAvatarInGroup","firstActivityInSenderGroup","useFirstActivity","firstActivityInStatusGroup","lastActivityInSenderGroup","useLastActivity","lastActivityInStatusGroup","hideAllTimestamps","isFirstInSenderGroup","isFirstInStatusGroup","isLastInSenderGroup","isLastInStatusGroup","isTopSideBotNub","isZeroOrPositive","isTopSideUserNub","hideTimestamp","isTopSideNub","showCallout","context","useMemo","React","LegacyActivityContextProvider","LegacyActivityBridgeComposer_default","memo","useGetKeyByActivity","hooks","RenderActivity","activity","activityElementMapRef","useActivityElementMapRef","getKeyByActivity","activityKey","useMemo","activityCallbackRef","useCallback","activityElement","activityRendererMap","useActivityRendererMap","activityNode","React","ActivityRow_default","LegacyActivityBridgeComposer_default","RenderActivity_default","memo","useGetKeyByActivity","hooks","renderActivityGroupingPropsSchema","pipe","object","array","custom","value","is","readonly","RenderActivityGrouping","props","activities","o","activityRendererMap","useActivityRendererMap","getKeyByActivity","React","Fragment","activity","RenderActivity_default","RenderActivityGrouping_default","memo","React","memo","useMemo","any","array","minLength","object","optional","parse","pipe","readonly","transform","senderGroupingPropsSchema","pipe","object","array","any","transform","value","minLength","readonly","optional","c","SenderGrouping","props","activities","children","parse","firstActivity","lastActivity","context","useMemo","React","SenderGroupingContext_default","SenderGrouping_default","memo","React","memo","useMemo","any","array","minLength","object","optional","parse","pipe","readonly","transform","statusGroupingPropsSchema","pipe","object","array","any","transform","value","minLength","readonly","optional","c","StatusGrouping","props","activities","children","parse","firstActivity","lastActivity","context","useMemo","React","StatusGroupingContext_default","StatusGrouping_default","memo","createDefaultActivityGroupingDecoratorMiddleware","createActivityGroupingMiddleware","groupingName","SenderGrouping_default","StatusGrouping_default","PartGrouping_default","RenderActivityGrouping_default","middleware","createDefaultActivityGroupingDecoratorMiddleware","BuiltInDecorator","children","React","LowPriorityDecoratorComposer","BuiltInDecorator_default","memo","hooks","useSetDictateState","Constants","PropTypes","React","useCallback","useEffect","DictateComposer","useResumeAudioContext","resumeAudioContext","useWebSpeechPonyfill","useDictateInterims","useDictateState","useEmitTypingIndicator","useLanguage","useSendBoxValue","useSendTypingIndicator","useShouldSpeakIncomingActivity","useStopDictate","useStyleOptions","useSubmitSendBox","useUIState","hooks","DICTATING","IDLE","STARTING","Constants","Dictation","onError","setDictateAbortable","useSettableDictateAbortable","setDictateInterims","setSendBox","setShouldSpeakIncomingActivity","SpeechGrammarList","SpeechRecognition","useWebSpeechPonyfill","speechRecognitionContinuous","dictateState","sendTypingIndicator","speechLanguage","uiState","emitTypingIndicator","resumeAudioContext","useResumeAudioContext","setDictateState","useSetDictateState","stopDictate","submitSendBox","handleDictate","useCallback","confidence","transcript","handleDictating","abortable","results","interims","handleEnd","handleError","event","useEffect","React","DictateComposer","PropTypes","Dictation_default","createOnEventShim","target","currentListeners","name","listener","current","SpeechSynthesisEvent","type","utterance","SpeechSynthesisUtterance","text","createOnEventShim","value","SpeechSynthesisVoice","SpeechSynthesis","speechSynthesis","hooks","useEffect","useTrackDimension","hooks","Tracker","webSpeechPonyfill","useWebSpeechPonyfill","trackDimension","speechRecognitionCapability","speechSynthesisCapability","speechSynthesis","useEffect","checkSupport","UITracker_default","createActivityPolymiddlewareFromLegacy","getActivityLivestreamingMetadata","getOrgSchemaMessage","isVoiceTranscriptActivity","React","hooks","FilmComposer","createBasicStyleSetForReactFilm","Flipper","useScrollBarWidth","useScrolling","useReactFilmStyleSetClassNames","cx","PropTypes","React","memo","useMemo","hooks","useItemContainerCallbackRef","useScrollableCallbackRef","cx","PropTypes","React","hooks","cx","React","memo","boolean","literal","object","optional","pipe","readonly","string","union","classes","Bubble_module_default","_bubble__nub0","_bubble__content0","classes","_bubble__nub_pad0","classes","_bubble__show_nub0","classes","_bubble__nub_on_top0","classes","_bubble__hide_nub0","classes","_bubble__from_user0","classes","_bubble__nub_outline0","classes","_bubble0","classes","useStyleOptions","hooks","acuteNubSVG","nubSize","strokeWidth","side","upSideDown","classNames","halfNubSize","halfStrokeWidth","horizontalTransform","verticalTransform","p1","p2","p3","React","bubblePropsSchema","pipe","object","optional","boolean","c","string","union","literal","readonly","Bubble","props","ariaHidden","children","className","fromUser","nub","o","bubbleBorderWidth","bubbleFromUserBorderWidth","bubbleFromUserNubSize","bubbleNubSize","bubbleNubOffset","bubbleFromUserNubOffset","St","Bubble_module_default","borderWidth","nubOffset","cx","isZeroOrPositive","Bubble_default","memo","hooks","cx","PropTypes","React","classes","CarouselFilmStripAttachment_module_default","_carousel_filmstrip_attachment__show_avatar0","_carousel_filmstrip_attachment0","classes","_carousel_filmstrip_attachment__hide_nub0","classes","_carousel_filmstrip_attachment__show_nub0","classes","_carousel_filmstrip_attachment__focus0","classes","_carousel_filmstrip_attachment__hide_avatar0","classes","useLocalizer","hooks","CarouselFilmStripAttachment","activity","attachment","className","fromUser","hasAvatar","hideNub","index","renderAttachment","showAvatar","showNub","localize","classNames","St","CarouselFilmStripAttachment_module_default","attachedAlt","React","cx","ScreenReaderText_default","Bubble_default","PropTypes","CarouselFilmStripAttachment_default","classes","CarouselFilmStrip_module_default","_carousel_filmstrip__show_nub0","_carousel_filmstrip__content0","classes","_carousel_filmstrip__message0","classes","_carousel_filmstrip__top_callout0","classes","_carousel_filmstrip__complimentary0","classes","_carousel_filmstrip__filler0","classes","_carousel_filmstrip__nub_pad0","classes","_carousel_filmstrip__hide_nub0","classes","_carousel_filmstrip__status0","classes","_carousel_filmstrip__alignment_pad0","classes","_carousel_filmstrip__no_message0","classes","_carousel_filmstrip__hide_avatar0","classes","_carousel_filmstrip__avatar_gutter0","classes","_carousel_filmstrip__bubble0","classes","_carousel_filmstrip__avatar0","classes","_carousel_filmstrip__main0","classes","_carousel_filmstrip0","classes","_carousel_filmstrip__extra_trailing0","classes","_carousel_filmstrip__show_avatar0","classes","_carousel_filmstrip__attachments0","classes","_carousel_filmstrip__complimentary_content0","classes","useAvatarForBot","useAvatarForUser","useLocalizer","useStyleOptions","hooks","CarouselFilmStrip","activity","className","hideTimestamp","renderActivityStatus","renderAttachment","renderAvatar","showCallout","bubbleNubOffset","bubbleNubSize","bubbleFromUserNubOffset","bubbleFromUserNubSize","botInitials","userInitials","localize","showActivityStatus","classNames","St","CarouselFilmStrip_module_default","itemContainerCallbackRef","useItemContainerCallbackRef","scrollableCallbackRef","useScrollableCallbackRef","attachments","messageBackDisplayText","role","text","textFormat","activityDisplayText","fromUser","greetingAlt","initials","nubOffset","nubSize","otherInitials","otherNubSize","hasAvatar","hasOtherAvatar","hasNub","hasOtherNub","topAlignedCallout","isZeroOrPositive","extraTrailing","showAvatar","showNub","hideNub","React","cx","ScreenReaderText_default","Bubble_default","textFormatToContentType","attachment","index","CarouselFilmStripAttachment_default","PropTypes","CarouselFilmStrip_default","classes","CarouselLayout_module_default","_carousel_layout0","useDirection","useLocalizer","useStyleOptions","hooks","CarouselLayoutCore","activity","hideTimestamp","renderActivityStatus","renderAttachment","renderAvatar","showCallout","filmRootClassName","useReactFilmStyleSetClassNames","direction","scrollBarWidth","useScrollBarWidth","scrolling","useScrolling","leftSideFlipper","localize","rightSideFlipper","classNames","St","CarouselLayout_module_default","nextAlt","previousAlt","leftFlipperAriaLabel","rightFlipperAriaLabel","React","cx","CarouselFilmStrip_default","Flipper","PropTypes","CarouselLayout","props","attachments","nonce","useNonce","filmStyleSet","useMemo","createBasicStyleSetForReactFilm","stylesRoot","styleOptions","FilmComposer","CarouselLayout_default","memo","hooks","ActivityBorderDecorator","getActivityLivestreamingMetadata","getOrgSchemaMessage","getVoiceActivityRole","getVoiceActivityText","isVoiceActivity","cx","React","memo","useCallback","useMemo","cx","React","memo","boolean","object","optional","pipe","readonly","string","attachmentRowPropsSchema","pipe","object","string","optional","c","boolean","readonly","AttachmentRow","props","attachedAlt","children","fromUser","hasAvatar","hasNub","showBubble","o","classNames","St","StackedLayout_module_default","React","ScreenReaderText_default","Bubble_default","cx","AttachmentRow_default","memo","cx","React","memo","object","optional","pipe","readonly","string","classes","CodeBlockContent_module_default","_code_block_content0","_code_block_content__title0","classes","_code_block_content__code_block0","classes","_code_block_content__header0","classes","codeBlockContentPropsSchema","pipe","object","string","optional","readonly","CodeBlockContent","props","code","language","title","o","classNames","St","CodeBlockContent_module_default","CodeBlock","useCodeBlockTag","React","cx","CodeBlockContent_default","memo","cx","random","React","memo","useCallback","useRef","useState","object","optional","pipe","readonly","string","classes","CollapsibleContent_module_default","_collapsible_content__summary_text0","_collapsible_content0","classes","_collapsible_content__summary0","classes","_collapsible_content__content0","classes","_collapsible_content__chevron0","classes","collapsibleContentPropsSchema","pipe","object","c","optional","string","readonly","uniqueId","count","random","CollapsibleContent","props","children","summary","summaryClassName","o","id","useState","classNames","St","CollapsibleContent_module_default","summaryRef","useRef","handleToggle","useCallback","event","details","isDetailsOpen","React","cx","ComponentIcon_default","CollapsibleContent_default","memo","useAvatarForBot","useAvatarForUser","useLocalizer","useGetKeyByActivity","useStyleOptions","hooks","StackedLayoutInner","memo","activity","children","fromUser","hasAvatar","hasDisplayText","hasNub","id","renderAvatar","renderBubbleContent","showAvatar","showNub","botInitials","localize","classNames","St","StackedLayout_module_default","messageThing","useMemo","getOrgSchemaMessage","greetingAlt","React","StackedLayoutMain_default","cx","ScreenReaderText_default","Bubble_default","ActivityBorderDecorator","StackedLayout","hideTimestamp","renderActivityStatus","renderAttachment","showCallout","styleOptions","userInitials","ariaLabelId","useUniqueId","bubbleNubOffset","bubbleNubSize","bubbleFromUserNubOffset","bubbleFromUserNubSize","isMessageOrTyping","attachments","getVoiceActivityRole","messageBackDisplayText","isCollapsible","creativeWorkStatus","isLivestreaming","getActivityLivestreamingMetadata","activityDisplayText","isVoiceActivity","getVoiceActivityText","initials","nubOffset","nubSize","otherInitials","otherNubSize","activityKey","isInGroup","useGetLogicalGroupKey","hasOtherAvatar","hasOtherNub","topAlignedCallout","isZeroOrPositive","extraTrailing","showStatus","renderMainBubbleContent","useCallback","title","withStatus","StackedLayoutMessageStatus_default","textFormatToContentType","attachmentChildren","syntheticAttachments","attachmentAlt","AttachmentRow_default","firstSoftwareSourceCode","getFirstBaseOfSoftwareSourceCode","CodeBlockContent_default","attachment","index","renderCollapsibleBubbleContent","CollapsibleContent_default","StackedLayoutRoot_default","StackedLayoutStatus_default","StackedLayout_default","shouldFilterActivity","activity","messageThing","type","isVoiceTranscriptActivity","getActivityLivestreamingMetadata","createCoreActivityMiddleware","next","args","isMessageOrTyping","getOrgSchemaMessage","renderAttachment","props","React","CarouselLayout_default","StackedLayout_default","defaultActivityPolymiddleware","createActivityPolymiddlewareFromLegacy","defaultActivityPolymiddleware_default","React","hooks","React","memo","useCallback","any","literal","object","pipe","readonly","union","hooks","PropTypes","React","useCallback","hooks","isForbiddenPropertyName","PropTypes","React","useCallback","useMemo","updateIn","isForbiddenPropertyName","createCustomEvent","name","eventInitDict","event","key","value","random","randomId","maxLength","useInternalMarkdownIt","useWebChatUIContext","useInternalMarkdownIt_default","walkMarkdownTokens","tokens","walker","token","nextToken","useStyleOptions","hooks","replaceAnchorWithButton","markdownTokens","walkMarkdownTokens","markdownToken","updateIn","name","value","InlineMarkdown","children","onReference","references","markdownIt","useInternalMarkdownIt_default","accent","styleToClassName","useStyleToEmotionObject","className","useMemo","reference","hrefToRef","refToHref","ref","href","randomId","html","tree","key","isForbiddenPropertyName","updatedTree","handleClick","useCallback","event","createCustomEvent","React","PropTypes","InlineMarkdown_default","useLocalizer","hooks","MARKDOWN_REFERENCES","SendFailedRetry","onRetryClick","handleReference","useCallback","data","sendFailedText","React","InlineMarkdown_default","PropTypes","SendFailedRetry_default","classes","ActivityStatus_module_default","_activity_status_slot0","_activity_status__slotted0","classes","_activity_status__originator0","classes","_activity_status__originator__has_link0","classes","_activity_status0","classes","useLocalizer","usePostActivity","hooks","sendStatusPropsSchema","pipe","object","any","union","literal","SENDING","SEND_FAILED","SENT","readonly","SendStatus","props","activity","sendStatus","o","focus","useFocus","localize","postActivity","classNames","St","ActivityStatus_module_default","handleRetryClick","useCallback","sendingText","React","SendFailedRetry_default","SendStatus_default","memo","createSendStatusMiddleware","next","activity","sendState","args","SENDING","SEND_FAILED","React","SendStatus_default","React","Fragment","hooks","React","Fragment","boolean","date","number","object","optional","pipe","readonly","string","union","useDateFormatter","useLocalizer","hooks","absoluteTimePropsSchema","pipe","object","optional","boolean","union","date","number","string","readonly","AbsoluteTime","props","hide","value","o","localize","absoluteTime","React","Fragment","ScreenReaderText_default","AbsoluteTime_default","hooks","getOrgSchemaMessage","orgSchemaActionSchema","orgSchemaClaimSchema","cx","React","memo","useMemo","parse","cx","React","memo","object","pipe","readonly","string","undefinedable","originatorPropsSchema","pipe","object","undefinedable","string","readonly","Originator","memo","props","name","slogan","url","o","sanitizeHref","useSanitizeHrefCallback","classNames","St","ActivityStatus_module_default","sanitizedHref","text","React","cx","Originator_default","React","memo","cx","StatusSlot","children","className","classNames","St","ActivityStatus_module_default","React","cx","StatusSlot_default","memo","hooks","React","memo","date","number","object","pipe","readonly","string","union","hooks","React","Fragment","date","number","object","pipe","readonly","string","union","hooks","random","useCallback","useState","hooks","useEffect","usePonyfill","useTimer","at","fn","clearTimeout","Date","setTimeout","ms","timeout","usePonyfill","hooks","nextTimer","origin","interval","Date","time","now","useForceRenderAtInterval","fn","ponyfill","timer","setTimer","useState","handler","useCallback","random","useTimer","useDateFormatter","useLocalizer","usePonyfill","useRelativeTimeFormatter","hooks","TIMER_INTERVAL","relativeTimePropsSchema","pipe","object","union","date","number","string","readonly","RelativeTime","props","value","o","Date","formatDate","formatRelativeTime","localize","dateValue","useForceRenderAtInterval","React","Fragment","ScreenReaderText_default","RelativeTime_default","useStyleOptions","hooks","timestampPropsSchema","pipe","object","union","date","number","string","readonly","Timestamp","props","timestamp","o","timestampFormat","React","RelativeTime_default","AbsoluteTime_default","Timestamp_default","memo","useStyleOptions","hooks","warnRootLevelThings","Or","OthersActivityStatus","memo","activity","className","slotted","feedbackActionsPlacement","classNames","St","ActivityStatus_module_default","timestamp","graph","useMemo","dereferenceBlankNodes","messageThing","getOrgSchemaMessage","claimInterpreter","parse","orgSchemaClaimSchema","firstClaim","type","claim","replyAction","orgSchemaActionSchema","React","cx","StatusSlot_default","Timestamp_default","Originator_default","ActivityFeedback_default","OthersActivityStatus_default","cx","React","memo","SelftActivityStatus","memo","activity","className","slotted","classNames","St","ActivityStatus_module_default","timestamp","React","cx","Timestamp_default","SelfActivityStatus_default","createTimestampMiddleware","args","activity","hideTimestamp","React","Fragment","AbsoluteTime_default","OthersActivityStatus_default","SelfActivityStatus_default","createCoreMiddleware","createSendStatusMiddleware","createTimestampMiddleware","React","hooks","React","useLocalizer","AudioAttachment","label","AudioAttachment_default","hooks","PropTypes","React","useLocalizer","FileAttachment","name","label","FileAttachment_default","hooks","React","useLocalizer","ImageAttachment","label","ImageAttachment_default","hooks","PropTypes","React","useLocalizer","TextAttachment","content","label","TextAttachment_default","hooks","React","useLocalizer","VideoAttachment","label","VideoAttachment_default","createCoreMiddleware","next","args","role","attachment","contentType","contentUrl","thumbnailUrl","isText","React","FileAttachment_default","AudioAttachment_default","ImageAttachment_default","VideoAttachment_default","TextAttachment_default","avatarComponent","createAvatarPolymiddleware","classNames","React","memo","boolean","never","object","optional","pipe","readonly","string","hooks","classNames","React","memo","boolean","object","pipe","readonly","useAvatarForBot","useAvatarForUser","hooks","ROOT_STYLE","imageAvatarPropsSchema","pipe","object","boolean","readonly","ImageAvatar","props","fromUser","o","avatarImageForBot","avatarImageForUser","imageAvatarStyleSet","useStyleSet","rootClassName","useStyleToEmotionObject","React","classNames","ImageAvatar_default","memo","hooks","classNames","React","memo","boolean","object","optional","pipe","readonly","useAvatarForBot","useAvatarForUser","hooks","ROOT_STYLE","initialsAvatarPropsSchema","pipe","object","optional","boolean","readonly","InitialsAvatar","props","fromUser","o","avatarInitialsForBot","avatarInitialsForUser","initialsAvatarStyleSet","useStyleSet","rootClassName","useStyleToEmotionObject","React","classNames","InitialsAvatar_default","memo","ROOT_STYLE","defaultAvatarPropsSchema","pipe","object","optional","boolean","never","string","readonly","DefaultAvatar","props","ariaHidden","className","fromUser","o","avatarStyleSet","useStyleSet","rootClassName","useStyleToEmotionObject","React","classNames","InitialsAvatar_default","ImageAvatar_default","DefaultAvatar_default","memo","createDefaultAvatarMiddleware","styleOptions","botAvatarImage","botAvatarInitials","userAvatarImage","userAvatarInitials","createAvatarPolymiddleware","_next","activity","fromUser","avatarComponent","DefaultAvatar_default","createDefaultAvatarPolymiddleware_default","getScheme","href","matches","ALLOWED_SCHEMES","createDefaultCardActionMiddleware","next","args","type","value","getSignInUrl","ie11","newWindow","popup","url","hooks","classNames","React","useRef","useLocalizer","useStyleOptions","hooks","newMessagesAccessKey","ScrollToEndButton","onClick","focusRef","useRef","scrollToEndButtonStyleSet","useStyleSet","scrollToEndButtonBehavior","localize","localizeAccessKey","useLocalizeAccessKey","shouldShowNewMessagesButton","text","liveRegionText","useFocusAccessKeyEffect","useLiveRegion","React","classNames","ScrollToEndButton_default","createScrollToEndButtonMiddleware","atEnd","scrollToEndButtonBehavior","unread","ScrollToEndButton_default","React","hooks","classNames","PropTypes","React","useCallback","useMemo","PropTypes","React","DismissIcon","className","DismissIcon_default","hooks","isForbiddenPropertyName","PropTypes","React","PropTypes","React","CheckMarkIcon","ariaLabel","className","CheckMarkIcon_default","PropTypes","React","ExclamationMarkIcon","ariaLabel","className","ExclamationMarkIcon_default","useLocalizer","hooks","NotificationIcon","className","level","localize","prefixes","prefix","isForbiddenPropertyName","React","CheckMarkIcon_default","ExclamationMarkIcon_default","PropTypes","NotificationIcon_default","useInternalRenderMarkdownInline","internalRenderMarkdownInline","useWebChatUIContext","useInternalRenderMarkdownInline_default","useDismissNotification","useLocalizer","hooks","ROOT_STYLE","BasicToast","alt","id","level","message","toastStyleSet","useStyleSet","contentId","useMemo","randomId","localize","dismissNotification","renderMarkdownInline","useInternalRenderMarkdownInline_default","rootClassName","useStyleToEmotionObject","handleDismiss","useCallback","html","React","classNames","NotificationIcon_default","ScreenReaderText_default","DismissIcon_default","PropTypes","BasicToast_default","createToastMiddleware","notification","React","BasicToast_default","createToastMiddleware_default","createCoreMiddleware","next","args","id","createToastMiddleware_default","createCoreMiddleware_default","hooks","classNames","React","hooks","classNames","React","useDirection","useLocalizer","hooks","ROOT_STYLE","TypingAnimation","typingAnimationStyleSet","useStyleSet","direction","localize","rootClassName","useStyleToEmotionObject","React","ScreenReaderText_default","classNames","testIds_default","TypingAnimation_default","useDirection","useLocalizer","hooks","DotIndicator","typingIndicatorStyleSet","useStyleSet","direction","localize","React","classNames","TypingAnimation_default","createCoreMiddleware","visible","mathRandom","React","memo","useCallback","useMemo","hooks","useMemo","useRef","classes","CodeBlock_module_default","_code_block__theme__github_dark_default0","_code_block__body0","classes","_code_block0","classes","_code_block__theme__github_light_default0","classes","useStyleOptions","useLocalizer","hooks","CodeBlock","#connected","#originalFragment","#updateTask","value","theme","_name","oldValue","newValue","updated","code","language","options","document","result","highlightedCodeFragment","parseDocumentFragmentFromString","args","defaultHighlightCode","useCodeBlockProps","copyButtonTagName","highlightCode","useCodeHighlighter","localize","codeBlockTheme","copyButtonAltCopied","copyButtonAltCopy","propsChangedEventTarget","useMemo","propsRef","useRef","useReactCodeBlockClass","codeBlockTarget","codeBlockPropsRef","classNames","St","CodeBlock_module_default","#prevProps","#props","#handlePropsChange","props","prevProps","body","cx","React","memo","useCallback","useState","useRefFrom","useStateWithRef","createElement","render","unmountComponentAtNode","ConnectionState","wrapAsCustomElement","component","propKeys","attributeNames","key","#connected","propMap","#propMap","value","#getProps","propEntries","name","_oldValue","newValue","prevProps","classes","CodeBlockCopyButton_module_default","_code_block_copy_button0","_code_block_copy_button__icon0","classes","_code_block_copy_button__icon__copied0","classes","_code_block_copy_button__copied0","classes","CodeBlockCopyButton","memo","className","copiedAlt","copyAlt","value","classNames","St","CodeBlockCopyButton_module_default","disabled","setDisabled","disabledRef","useStateWithRef","pressed","setPressed","useState","valueRef","useRefFrom","handleClick","useCallback","obsoleted","state","error","handleAnimationEnd","React","cx","testIds_default","ComponentIcon_default","CodeBlockCopyButtonElement","wrapAsCustomElement","CustomElementsComposer","children","hash","useMemo","mathRandom","registerCustomElement","useCallback","tagName","customElementConstructor","fullTagName","codeBlockCopyButtonTagName","CodeBlockCopyButtonElement","CodeBlockClass","useReactCodeBlockClass","codeBlockTagName","context","React","CustomElementsContext_default","CustomElementsComposer_default","memo","React","memo","useMemo","HTMLContentTransformComposer","memo","children","middleware","transform","useMemo","enhancer","chain","fn","fragment","result","paragraph","context","React","HTMLContentTransformContext_default","HTMLContentTransformComposer_default","hooks","classNames","React","memo","useCallback","useEffect","useMemo","useState","useRefFrom","useConnectivityStatus","useLocalizer","useSendBoxAttachments","useSendBoxValue","useSubmitSendBox","hooks","SUBMIT_ERROR_MESSAGE_STYLE","SendBoxComposer","children","attachments","connectivityStatus","error","setError","useState","sendBoxValue","apiSubmitSendBox","focus","useFocus","localize","scrollToEnd","useScrollToEnd","styleToEmotionObject","useStyleToEmotionObject","submitErrorMessageId","useUniqueId","errorMessageStringMap","useMemo","focusRef","useRefFrom","scrollToEndRef","submitErrorMessageClassName","submitErrorMessageIdState","submitErrorRef","submit","useCallback","setFocus","submitError","context","hasValue","useEffect","errorMessage","useLiveRegion","React","classNames","Context_default","SendBoxComposer_default","memo","React","memo","useCallback","useMemo","useState","hooks","classNames","React","memo","useCallback","useLayoutEffect","useRef","useLocalizer","hooks","ModalDialog","memo","ariaLabel","ariaLabelledBy","children","className","onDismiss","modalDialogStyleSet","useStyleSet","dialogRef","useRef","closeButtonAlt","handleCloseButtonClick","useCallback","useLayoutEffect","React","classNames","ComponentIcon_default","Popover_default","ModalDialogComposer","memo","children","renderFunctionAndDialogInit","setRenderFunctionAndDialogInit","useState","close","useCallback","showModal","render","init","context","useMemo","React","Context_default","Popover_default","ModalDialogComposer_default","React","memo","useEffect","useMemo","useState","ReducedMotionComposer","memo","children","shouldReduceMotionQueryList","useMemo","shouldReduceMotion","setShouldReduceMotion","useState","shouldReduceMotionState","context","useEffect","handleChange","matches","React","Context_default","ReducedMotionComposer_default","useContext","createContext","EMPTY_ARRAY","Context_default","useTheme","useContext","Context_default","hooks","React","useStyleOptions","hooks","HideableSendBox","className","hideSendBox","React","BasicSendBox_default","createMiddleware","createMiddleware_default","hooks","React","memo","hooks","classNames","random","React","memo","useCallback","useRef","useState","useRefFrom","object","pipe","readonly","string","classNames","React","ROOT_STYLE","AttachmentIcon","checked","rootClassName","useStyleToEmotionObject","React","classNames","ComponentIcon_default","AttachmentIcon_default","useSendBoxAttachments","useLocalizer","useStyleOptions","useUIState","hooks","ROOT_STYLE","PREVENT_DEFAULT_HANDLER","event","uploadButtonPropsSchema","pipe","object","string","readonly","UploadButton","props","className","o","sendAttachmentOn","uploadAccept","uploadMultiple","uploadButtonStyleSet","useStyleSet","inputKey","setInputKey","useState","sendBoxAttachments","setSendBoxAttachments","uiState","focus","useFocus","inputRef","useRef","localize","makeThumbnail","useMakeThumbnail","rootClassName","useStyleToEmotionObject","submit","useSubmit","disabled","sendAttachmentOnRef","useRefFrom","sendBoxAttachmentsRef","uploadFileString","handleClick","useCallback","handleFileChange","currentTarget","blob","entry","thumbnailURL","random","React","classNames","IconButton_default","AttachmentIcon_default","UploadButton_default","memo","useStyleOptions","hooks","BasicSendBoxToolbar","className","disableFileUpload","React","UploadButton_default","BasicSendBoxToolbar_default","memo","createMiddleware","BasicSendBoxToolbar_default","createMiddleware_default","normalizeStyleOptions","createActivitiesStyle","createActivityButtonStyle","createActivityButtonStyle","AudioAttachment","CSSTokens_default","AudioContent","AutoResizeTextArea","primaryFont","createAvatarStyle","avatarBorderRadius","CSSTokens_default","createBasicTranscriptStyleSet","paddingRegular","primaryFont","transcriptActivityVisualKeyboardIndicatorColor","transcriptActivityVisualKeyboardIndicatorStyle","transcriptActivityVisualKeyboardIndicatorWidth","transcriptTerminatorBackgroundColor","transcriptTerminatorBorderRadius","transcriptTerminatorColor","transcriptTerminatorFontSize","transcriptVisualKeyboardIndicatorColor","transcriptVisualKeyboardIndicatorStyle","transcriptVisualKeyboardIndicatorWidth","isForbiddenPropertyName","mirrorStyle","mirrorSelector","styles","mirrored","key","value","patchedKey","match","relative","createBubbleStyle","bubbleBackground","bubbleBorderColor","bubbleBorderRadius","bubbleBorderStyle","bubbleBorderWidth","bubbleFromUserBackground","bubbleFromUserBorderColor","bubbleFromUserBorderRadius","bubbleFromUserBorderStyle","bubbleFromUserBorderWidth","bubbleFromUserNubOffset","bubbleFromUserNubSize","bubbleFromUserTextColor","bubbleMinHeight","bubbleNubOffset","bubbleNubSize","bubbleTextColor","messageActivityWordBreak","paddingRegular","transitionDuration","botNubCornerRadius","userNubCornerRadius","mirrorStyle","CarouselFilmStrip","avatarSize","bubbleMessageMaxWidth","paddingRegular","transitionDuration","CSSTokens_default","mirrorStyle","CarouselFilmStripAttachment","avatarSize","paddingRegular","transcriptVisualKeyboardIndicatorColor","transcriptVisualKeyboardIndicatorStyle","transcriptVisualKeyboardIndicatorWidth","transitionDuration","CSSTokens_default","mirrorStyle","CarouselFlipper","transcriptOverlayButtonBackground","transcriptOverlayButtonBackgroundOnDisabled","transcriptOverlayButtonBackgroundOnFocus","transcriptOverlayButtonBackgroundOnHover","transcriptOverlayButtonColor","transcriptOverlayButtonColorOnDisabled","transcriptOverlayButtonColorOnFocus","transcriptOverlayButtonColorOnHover","createChatHistoryBoxStyleSet","createCitationModalDialogStyle","ConnectivityNotification","connectivityMarginLeftRight","connectivityMarginTopBottom","connectivityTextSize","notificationText","primaryFont","createDictationInterimsStyle","paddingRegular","primaryFont","createErrorBoxStyle","monospaceFont","primaryFont","createErrorNotificationStyle","connectivityIconPadding","connectivityMarginLeftRight","connectivityMarginTopBottom","connectivityTextSize","failedConnectivity","primaryFont","createFileContentStyle","accent","bubbleTextColor","paddingRegular","primaryFont","createImageAvatarStyle","CSSTokens_default","createInitialsAvatarStyle","accent","botAvatarBackgroundColor","userAvatarBackgroundColor","CSSTokens_default","FORCED_COLORS_SELECTOR","NOT_FORCED_COLORS_SELECTOR","DARK_THEME_SELECTOR","LIGHT_THEME_SELECTOR","createLinkDefinitionsStyleSet","CSSTokens_default","FORCED_COLORS_SELECTOR","NOT_FORCED_COLORS_SELECTOR","createMicrophoneButtonStyle","microphoneButtonColorOnDictate","DARK_THEME_SELECTOR","LIGHT_THEME_SELECTOR","createModalDialogStyleSet","CSSTokens_default","NOT_FORCED_COLORS_SELECTOR","FORCED_COLORS_SELECTOR","createMarkdownStyle","CSSTokens_default","FORCED_COLORS_SELECTOR","NOT_FORCED_COLORS_SELECTOR","Root_default","backgroundColor","height","width","zIndex","createScrollToEndButtonStyle","paddingRegular","primaryFont","scrollToEndButtonFontSize","transcriptOverlayButtonBackground","transcriptOverlayButtonBackgroundOnFocus","transcriptOverlayButtonBackgroundOnHover","transcriptOverlayButtonColor","transcriptOverlayButtonColorOnFocus","transcriptOverlayButtonColorOnHover","stringifyNumericPixel","value","createSendBoxStyle","paddingRegular","primaryFont","sendBoxBackground","sendBoxBorderBottom","sendBoxBorderLeft","sendBoxBorderRight","sendBoxBorderTop","sendBoxHeight","createSendBoxButtonStyle","sendBoxButtonColor","sendBoxButtonColorOnActive","sendBoxButtonColorOnDisabled","sendBoxButtonColorOnFocus","sendBoxButtonColorOnHover","sendBoxButtonKeyboardFocusIndicatorBorderColor","sendBoxButtonKeyboardFocusIndicatorBorderRadius","sendBoxButtonKeyboardFocusIndicatorBorderStyle","sendBoxButtonKeyboardFocusIndicatorBorderWidth","sendBoxButtonKeyboardFocusIndicatorInset","sendBoxButtonShadeBorderRadius","sendBoxButtonShadeColor","sendBoxButtonShadeColorOnActive","sendBoxButtonShadeColorOnDisabled","sendBoxButtonShadeColorOnFocus","sendBoxButtonShadeColorOnHover","sendBoxButtonShadeInset","sendBoxHeight","subtle","createSendBoxTextBoxStyle","paddingRegular","primaryFont","sendBoxDisabledTextColor","sendBoxMaxHeight","sendBoxPlaceholderColor","sendBoxTextColor","subtle","createSendStatusStyle","CSSTokens_default","toByteArray","DEFAULT_IMAGE_BASE64","DEFAULT_IMAGE_TYPE","defaultImageBlobURL","createSpinnerAnimationStyle","spinnerAnimationBackgroundImage","spinnerAnimationHeight","spinnerAnimationWidth","spinnerAnimationPadding","createStackedLayoutStyle","bubbleAttachmentMaxWidth","bubbleAttachmentMinWidth","bubbleMessageMaxWidth","bubbleMessageMinWidth","paddingRegular","transitionDuration","CSSTokens_default","createSuggestedActionStyle","accent","paddingRegular","paddingWide","primaryFont","suggestedActionBorderRadius","suggestedActionBackgroundColor","suggestedActionBorderColor","suggestedActionBorderStyle","suggestedActionBorderWidth","suggestedActionTextColor","suggestedActionBackgroundColorOnActive","suggestedActionBorderColorOnActive","suggestedActionBorderStyleOnActive","suggestedActionBorderWidthOnActive","suggestedActionTextColorOnActive","suggestedActionBackgroundColorOnDisabled","suggestedActionBorderColorOnDisabled","suggestedActionBorderStyleOnDisabled","suggestedActionBorderWidthOnDisabled","suggestedActionTextColorOnDisabled","suggestedActionBackgroundColorOnFocus","suggestedActionBorderColorOnFocus","suggestedActionBorderStyleOnFocus","suggestedActionBorderWidthOnFocus","suggestedActionTextColorOnFocus","suggestedActionBackgroundColorOnHover","suggestedActionBorderColorOnHover","suggestedActionBorderStyleOnHover","suggestedActionBorderWidthOnHover","suggestedActionTextColorOnHover","suggestedActionKeyboardFocusIndicatorBorderColor","suggestedActionKeyboardFocusIndicatorBorderRadius","suggestedActionKeyboardFocusIndicatorBorderStyle","suggestedActionKeyboardFocusIndicatorBorderWidth","suggestedActionKeyboardFocusIndicatorInset","suggestedActionHeight","suggestedActionImageHeight","suggestedActionsStackedLayoutButtonMaxHeight","subtle","createSuggestedActionsStyle","paddingRegular","suggestedActionsCarouselFlipperSize","suggestedActionsFlowMaxHeight","suggestedActionsStackedHeight","suggestedActionsStackedOverflow","suggestedActionsVisualKeyboardIndicatorColor","suggestedActionsVisualKeyboardIndicatorStyle","suggestedActionsVisualKeyboardIndicatorWidth","transcriptOverlayButtonBackground","transcriptOverlayButtonBackgroundOnDisabled","transcriptOverlayButtonBackgroundOnFocus","transcriptOverlayButtonBackgroundOnHover","transcriptOverlayButtonColor","transcriptOverlayButtonColorOnDisabled","transcriptOverlayButtonColorOnFocus","transcriptOverlayButtonColorOnHover","createTextContentStyle","CSSTokens_default","ThumbButton_default","CSSTokens_default","createToastStyle","primaryFont","toasterHeight","toastErrorColor","toastFontSize","toastIconWidth","toastInfoColor","toastSuccessColor","toastTextPadding","toastWarnColor","createToasterStyle","primaryFont","toasterHeight","toasterMaxHeight","toastErrorBackgroundColor","toastErrorColor","toasterSingularMaxHeight","toastFontSize","toastIconWidth","toastInfoBackgroundColor","toastInfoColor","toastSeparatorColor","toastSuccessBackgroundColor","toastSuccessColor","toastWarnBackgroundColor","toastWarnColor","Tooltip_default","toByteArray","DEFAULT_IMAGE_BASE64","DEFAULT_IMAGE_TYPE","defaultImageBlobURL","createTypingAnimationStyle","typingAnimationBackgroundImage","typingAnimationHeight","typingAnimationWidth","createTypingIndicatorStyle","paddingRegular","createUploadButtonStyle","sendBoxButtonColor","sendBoxButtonColorOnFocus","sendBoxButtonColorOnHover","sendBoxHeight","subtle","createVideoAttachmentStyle","createVideoContentStyle","videoHeight","createVimeoContentStyle","videoHeight","createWarningNotificationStyle","connectivityIconPadding","connectivityMarginLeftRight","connectivityMarginTopBottom","connectivityTextSize","primaryFont","slowConnectivity","notificationText","createYouTubeContentStyle","videoHeight","createStyleSet","styleOptions","strictStyleOptions","normalizeStyleOptions","createActivitiesStyle","createActivityButtonStyle","AudioAttachment","AudioContent","AutoResizeTextArea","createAvatarStyle","createBasicTranscriptStyleSet","createBubbleStyle","CarouselFilmStrip","CarouselFilmStripAttachment","CarouselFlipper","ConnectivityNotification","createDictationInterimsStyle","createErrorBoxStyle","createErrorNotificationStyle","createFileContentStyle","createImageAvatarStyle","createInitialsAvatarStyle","createMicrophoneButtonStyle","Root_default","createScrollToEndButtonStyle","createSendBoxStyle","createSendBoxButtonStyle","createSendBoxTextBoxStyle","createSpinnerAnimationStyle","createStackedLayoutStyle","createSuggestedActionStyle","createSuggestedActionsStyle","createToastStyle","createToasterStyle","createTypingAnimationStyle","createTypingIndicatorStyle","createUploadButtonStyle","createVideoAttachmentStyle","createVideoContentStyle","createVimeoContentStyle","createWarningNotificationStyle","createYouTubeContentStyle","createChatHistoryBoxStyleSet","createCitationModalDialogStyle","createLinkDefinitionsStyleSet","createModalDialogStyleSet","createMarkdownStyle","createSendStatusStyle","createTextContentStyle","ThumbButton_default","Tooltip_default","useStyleOptions","classNames","random","React","forwardRef","memo","useMemo","object","optional","pipe","readonly","string","undefinedable","customPropertiesContainerPropsSchema","pipe","object","optional","c","string","undefinedable","readonly","webchatCustomPropertiesClass","uniqueId","random","hasBundleStyleOptions","styleOptions","CustomPropertiesContainer","props","ref","children","className","nonce","o","useStyleOptions","styleElements","classNameState","useMemo","accent","avatarSize","borderAnimationColor1","borderAnimationColor2","borderAnimationColor3","bubbleAttachmentMaxWidth","bubbleAttachmentMinWidth","bubbleBackground","bubbleBorderColor","bubbleBorderRadius","bubbleBorderStyle","bubbleBorderWidth","bubbleFromUserBackground","bubbleFromUserBorderColor","bubbleFromUserBorderRadius","bubbleFromUserBorderStyle","bubbleFromUserBorderWidth","bubbleFromUserNubOffset","bubbleFromUserNubSize","bubbleFromUserTextColor","bubbleTextColor","bubbleImageMaxHeight","bubbleImageMinHeight","bubbleMessageMaxWidth","bubbleMessageMinWidth","bubbleMinHeight","bubbleNubOffset","bubbleNubSize","fontSizeSmall","markdownExternalLinkIconImage","messageActivityWordBreak","monospaceFont","paddingRegular","primaryFont","sendBoxAttachmentBarMaxHeight","subtle","timestampColor","transcriptActivityVisualKeyboardIndicatorColor","transcriptActivityVisualKeyboardIndicatorStyle","transcriptActivityVisualKeyboardIndicatorWidth","transcriptOverlayButtonBackground","transcriptOverlayButtonBackgroundOnDisabled","transcriptOverlayButtonBackgroundOnFocus","transcriptOverlayButtonBackgroundOnHover","transcriptOverlayButtonColor","transcriptOverlayButtonColorOnDisabled","transcriptOverlayButtonColorOnFocus","transcriptOverlayButtonColorOnHover","transcriptTerminatorBackgroundColor","transcriptTerminatorBorderRadius","transcriptTerminatorColor","transcriptTerminatorFontSize","transcriptVisualKeyboardIndicatorColor","transcriptVisualKeyboardIndicatorStyle","transcriptVisualKeyboardIndicatorWidth","transitionDuration","transitionEasing","bundleStyleProps","cardPushButtonBackgroundColor","cardPushButtonTextColor","CustomPropertyNames_default","randomClass","contents","style","r","React","classNames","Ot","CSSCustomPropertiesContainer_default","memo","forwardRef","useStyleOptions","React","memo","never","object","optional","pipe","readonly","string","undefinedable","componentStyleContent","createComponentStyleElements","r","createComponentStyleElements_default","componentStylesheetPropsSchema","pipe","object","optional","never","undefinedable","string","readonly","styleElements","createComponentStyleElements_default","ComponentStylesheet","props","nonce","o","stylesRoot","useStyleOptions","React","Ot","ComponentStylesheet_default","memo","updateIn","updateMarkdownItAttrs","token","updater","attrs","map","nextMap","addTargetBlankToHyperlinksMarkdown","tokens","walkMarkdownTokens","token","updateMarkdownItAttrs","attrs","isForbiddenPropertyName","mapMap","map","mapper","result","key","value","useGetActivityByKey","useReferenceGrammarID","useStyleOptions","useTrackException","hooks","styleSetToEmotionObjects","styleToEmotionObject","styleSet","mapMap","style","key","ROOT_STYLE","ComposerCoreUI","memo","children","nonce","storeDebugAPI","internalLiveRegionFadeAfter","rootClassName","useStyleToEmotionObject","rootRef","useRef","trackException","dictationOnError","useCallback","errorEvent","nativeError","useEffect","current","React","CSSCustomPropertiesContainer_default","classNames","CustomElementsComposer_default","FocusSendBoxScope","ScrollRelativeTranscriptScope","LiveRegionTwinComposer_default","ModalDialogComposer_default","SendBoxComposer_default","ActivityLogicalGroupingComposer_default","Dictation_default","ComposerCore","extraStyleSet","renderMarkdown","suggestedActionsAccessKey","webSpeechPonyfillFactory","dictateAbortable","setDictateAbortable","useState","referenceGrammarID","styleOptions","focusTranscriptCallbacksRef","internalMarkdownIt","useMemo","MarkdownIt","scrollToCallbacksRef","scrollToEndCallbacksRef","internalRenderMarkdownInline","markdown","tree","patchedTree","addTargetBlankToHyperlinksMarkdown","patchedStyleSet","createStyleSet","webSpeechPonyfill","ponyfill","speechSynthesis","SpeechSynthesisUtterance","scrollPositionObserversRef","dispatchScrollPosition","event","observer","observeScrollPosition","target","transcriptFocusObserversRef","numTranscriptFocusObservers","setNumTranscriptFocusObservers","getActivityByKey","dispatchTranscriptFocusByActivityKey","prevActivityKey","activityKey","observeTranscriptFocus","context","SayComposer","WebChatUIContext_default","PropTypes","Composer","activityMiddleware","activityStatusMiddleware","attachmentForScreenReaderMiddleware","attachmentMiddleware","avatarMiddleware","cardActionMiddleware","decoratorMiddleware","htmlContentTransformMiddleware","polymiddleware","scrollToEndButtonMiddleware","sendBoxMiddlewareFromProps","sendBoxToolbarMiddlewareFromProps","toastMiddleware","typingIndicatorMiddleware","composerProps","onTelemetry","theme","useTheme","patchedActivityMiddleware","xi","Ot","patchedActivityStatusMiddleware","createCoreMiddleware","patchedAttachmentForScreenReaderMiddleware","patchedAttachmentMiddleware","patchedAvatarMiddleware","patchedCardActionMiddleware","createDefaultCardActionMiddleware","defaultAvatarPolymiddleware","createDefaultAvatarPolymiddleware_default","patchedPolymiddleware","defaultActivityPolymiddleware_default","patchedToastMiddleware","createCoreMiddleware_default","patchedTypingIndicatorMiddleware","patchedScrollToEndButtonMiddleware","createScrollToEndButtonMiddleware","sendBoxMiddleware","extractSendBoxMiddleware","createMiddleware_default","sendBoxToolbarMiddleware","extractSendBoxToolbarMiddleware","StoreDebugAPIRegistry","APIComposer","downscaleImageToDataURL","ComponentStylesheet_default","StyleToEmotionObjectComposer","HTMLContentTransformComposer_default","ReducedMotionComposer_default","BuiltInDecorator_default","DecoratorComposer","UITracker_default","Composer_default","PropTypes","React","SendBoxMiddlewareProxy","hooks","classNames","React","memo","useRef","object","optional","pipe","readonly","string","hooks","React","hooks","React","useLocalizer","hooks","ConnectivityStatusConnected","localize","React","ScreenReaderText_default","Connected_default","hooks","classNames","React","Fragment","memo","useState","boolean","object","optional","pipe","readonly","useCallback","useState","useForceRender","setForceRender","useForceRender_default","hooks","classNames","React","useDirection","hooks","SpinnerAnimation","spinnerAnimationStyleSet","useStyleSet","direction","React","classNames","SpinnerAnimation_default","hooks","classNames","PropTypes","React","useDirection","ICON_SIZE_FACTOR","WarningNotificationIcon","className","size","direction","WarningNotificationIcon_default","useDirection","useLocalizer","usePonyfill","useStyleOptions","hooks","connectivityStatusConnectingPropsSchema","pipe","object","optional","boolean","readonly","ConnectivityStatusConnecting","props","reconnect","o","Date","slowConnectionAfter","connectivityNotificationStyleSet","warningNotificationStyleSet","useStyleSet","direction","initialRenderAt","useState","forceRender","useForceRender_default","localize","initialConnectionText","interruptedConnectionText","slowConnectionText","useTimer","React","Fragment","ScreenReaderText_default","classNames","WarningNotificationIcon_default","SpinnerAnimation_default","Connecting_default","memo","hooks","classNames","React","hooks","classNames","PropTypes","React","useDirection","ICON_SIZE_FACTOR","ErrorNotificationIcon","className","size","direction","ErrorNotificationIcon_default","useDirection","useLocalizer","hooks","ConnectivityStatusFailedToConnect","errorNotificationStyleSet","useStyleSet","direction","localize","failedConnectionText","React","ScreenReaderText_default","classNames","ErrorNotificationIcon_default","FailedToConnect_default","hooks","classNames","React","useDirection","useLocalizer","hooks","ConnectivityStatusJavaScriptError","errorNotificationStyleSet","useStyleSet","direction","localize","renderErrorNotificationText","React","ScreenReaderText_default","classNames","ErrorNotificationIcon_default","JavaScriptError_default","useDebouncedNotifications","hooks","BasicConnectivityStatus","className","connectivityStatus","React","Connecting_default","JavaScriptError_default","FailedToConnect_default","Connected_default","BasicConnectivityStatus_default","hooks","classNames","React","Fragment","memo","useCallback","useEffect","useMemo","useRef","useState","PropTypes","React","CollapseIcon","className","CollapseIcon_default","PropTypes","React","ExpandIcon","className","ExpandIcon_default","useDebouncedNotifications","useLocalizer","useRenderToast","hooks","ROOT_STYLE","LEVEL_AS_NUMBER","LEVEL_AS_NUMBER_KEYS","getLevelAsNumber","level","compareLevel","x","y","sortNotifications","map","PASSTHRU_FN","value","TOAST_ACCORDION_IDS","BasicToaster","className","instanceId","useMemo","randomId","toasterStyleSet","useStyleSet","debouncedNotifications","expanded","setExpanded","useState","localizeWithPlural","renderToast","renderMarkdownInline","useInternalRenderMarkdownInline_default","rootClassName","useStyleToEmotionObject","handleToggleExpand","useCallback","sortedNotifications","sortedNotificationsWithChildren","notification","children","expandable","highestLevel","expandableElementId","headerElementId","useEffect","notifiedElements","useRef","useLiveRegion","toAnnounce","React","Fragment","classNames","NotificationIcon_default","CollapseIcon_default","ExpandIcon_default","id","BasicToaster_default","memo","hooks","classNames","React","forwardRef","Fragment","memo","useCallback","useMemo","useRef","ReactScrollToBottomComposer","ReactScrollToBottomPanel","useObserveScrollPosition","useScrollTo","useScrollToEnd","useSticky","wrapWith","classNames","React","memo","object","optional","pipe","readonly","string","chatHistoryBoxPropsSchema","pipe","object","optional","c","string","readonly","ChatHistoryBox","props","children","className","o","chatHistoryBox","useStyleSet","React","classNames","ChatHistoryBox_default","memo","hooks","classNames","React","memo","object","optional","pipe","readonly","useDirection","hooks","chatHistoryToolbarPropsSchema","c","ChatHistoryToolbar","props","children","o","direction","ChatHistoryToolbar_default","hooks","React","Fragment","memo","useCallback","useMemo","useAnimatingToEnd","useAtEnd","useScrollToEnd","useSticky","useRefFrom","useRenderingActivityKeys","useContext","useActivityKeysByRead","useCreateScrollToEndButtonRenderer","useMarkActivityKeyAsRead","useStyleOptions","hooks","useScrollToEndRenderResult","terminatorRef","renderingActivityKeys","useRenderingActivityKeys","sticky","useSticky","animatingToEnd","useAnimatingToEnd","atEnd","useAtEnd","unreadActivityKeys","styleOptions","focusByActivityKey","useFocusByActivityKey","markActivityKeyAsRead","scrollToEnd","useScrollToEnd","renderingActivityKeysRef","useRefFrom","nextUnreadActivityKeys","useMemo","nextUnreadActivityKeysRef","unread","key","handleScrollToEndButtonClick","useCallback","firstUnreadRenderingActivityKey","renderScrollToEndButton","ScrollToEndButton","children","React","Fragment","ScrollToEndButton_default","memo","ActivityGroupingDecorator","React","Fragment","memo","contextComponentType","useContext","createContextAndHook","GroupedRenderingActivitiesContext_default","useGroupedRenderingActivities","useContext","ActivityTreeGroup","memo","group","React","ActivityGroupingDecorator","child","ActivityTree","useGroupedRenderingActivities","Fragment","ActivityTree_default","hooks","React","memo","useEffect","useMemo","useRef","hooks","classNames","React","Fragment","useMemo","any","object","pipe","readonly","hooks","React","Fragment","useCreateAttachmentForScreenReaderRenderer","useLocalizer","ACTIVITY_NUM_ATTACHMENTS_ALT_IDS","LiveRegionAttachments","activity","attachments","createAttachmentForScreenReaderRenderer","localizeWithPlural","attachmentForScreenReaderRenderers","attachment","numGenericAttachments","numAttachmentsAlt","render","index","LiveRegionAttachments_default","React","memo","any","array","object","pipe","readonly","liveRegionSuggestedActionsPropSchema","pipe","object","array","any","readonly","LiveRegionSuggestedActions","props","suggestedActions","o","React","action","index","computeSuggestedActionText","LiveRegionSuggestedActions_default","memo","useAvatarForBot","useLocalizer","hooks","ROOT_STYLE","liveRegionActivityPropsSchema","pipe","object","any","readonly","LiveRegionActivity","props","activity","o","botInitials","role","type","fallbackText","localize","renderMarkdownAsHTML","useRenderMarkdownAsHTML","rootClassName","useStyleToEmotionObject","textAlt","useMemo","activityAltText","greetingAlt","validFallbackText","React","classNames","Fragment","LiveRegionSuggestedActions_default","LiveRegionAttachments_default","LiveRegionActivity_default","hooks","memo","useMemo","useEffect","useRef","usePrevious","value","ref","isPresentational","activity","channelData","fallbackText","useGetActivityByKey","useLocalizer","useSendStatusByActivityKey","hooks","LiveRegionSendFailed","sendStatusByActivityKey","getActivityByKey","localize","activityKeysOfSendFailed","useMemo","key","sendStatus","SEND_FAILED","isPresentational","liveRegionSendFailedAlt","prevActivityKeysOfSendFailed","usePrevious","hasNewSendFailed","useLiveRegion","SendFailed_default","memo","hooks","useEffect","useRef","useActiveTyping","arrayEquals","x","y","value","index","useTypistNames","activeTyping","prevTypistNamesStateRef","sortedActiveTypingFromOthersValues","role","typistNamesState","name","prevTypistNamesState","nextTypistNamesState","useActivities","useGetKeyByActivity","useLocalizer","hooks","LiveRegionTranscript","activityElementMapRef","accessKey","useSuggestedActionsAccessKey","activities","typistNames","useTypistNames","getKeyByActivity","localize","localizeAccessKeyAsAccessibleName","useLocalizeAccessKey","queueStaticElement","useQueueStaticElement","liveRegionInteractiveLabelAlt","liveRegionInteractiveWithLinkLabelAlt","typingIndicator","liveRegionSuggestedActionsLabelAlt","keyedActivities","useMemo","intermediate","activity","prevRenderingActivitiesRef","useRef","useEffect","prevRenderingActivities","appendedActivities","key","isPresentational","React","LiveRegionActivity_default","hasNewLink","hasNewWidget","tabbableElements","hasSuggestedActions","SendFailed_default","LiveRegionTranscript_default","memo","React","useCallback","custom","function_","instance","is","nullable","object","optional","pipe","readonly","string","any","check","is","object","pipe","mutableRefObject","baseSchema","message","value","mutableRefObject_default","focusRedirectorPropsSchema","pipe","object","optional","string","custom","value","is","function_","mutableRefObject_default","nullable","instance","readonly","FocusRedirector","props","className","onFocus","redirectRef","o","handleFocus","useCallback","React","FocusRedirector_default","INPUTTABLE_KEY","INPUTTABLE_KEY_KEYS","inputtableKey","key","useDispatchScrollPosition","useWebChatUIContext","useDispatchTranscriptFocusByActivityKey","useWebChatUIContext","useEffect","removeInline","array","items","item","index","useRegisterFocusTranscript","callback","focusTranscriptCallbacksRef","useWebChatUIContext","useEffect","focusTranscriptCallbacks","removeInline","useEffect","useRegisterScrollTo","callback","scrollToCallbacksRef","useWebChatUIContext","useEffect","scrollToCallbacks","removeInline","useEffect","useRegisterScrollTo","callback","scrollToEndCallbacksRef","useWebChatUIContext","useEffect","scrollToEndCallbacks","removeInline","React","memo","useMemo","useRef","ChatHistoryDOMComposer","children","activityElementRef","useRef","context","useMemo","React","ChatHistoryDOMContext_default","ChatHistoryDOMComposer_default","memo","hooks","React","memo","useMemo","object","optional","parse","pipe","readonly","useRenderingActivities","useContext","useGetKeyByActivity","useGroupActivitiesByName","useStyleOptions","hooks","groupedRenderingActivitiesComposerPropsSchema","pipe","object","optional","c","readonly","GroupedRenderingActivitiesComposer","props","children","parse","groupActivitiesBy","activities","useRenderingActivities","getKeyByActivity","groupActivitiesByName","numRenderingActivitiesState","useMemo","groupedRenderingActivitiesState","run","groups","name","nextNames","grouping","context","React","GroupedRenderingActivitiesContext_default","GroupedRenderingActivitiesComposer_default","memo","useNumRenderingActivities","useContext","useBuildRenderActivityCallback","hooks","React","memo","useCallback","useMemo","useReduceMemo","useActivities","useActivityKeys","useGetActivitiesByKey","useGetKeyByActivity","hooks","RenderingActivitiesComposer","children","activities","activityKeys","getActivitiesByKey","getKeyByActivity","activitiesOfLatestRevision","useMemo","activity","activitiesWithSameKey","renderActivity","useBuildRenderActivityCallback","activityRendererMap","useReduceMemo","useCallback","renderer","activityRendererMapState","renderingActivitiesState","renderingActivityKeysState","keys","key","contextValue","React","RenderingActivitiesContext_default","RenderingActivitiesComposer_default","memo","random","PropTypes","React","memo","useCallback","useMemo","useCallback","useRef","useState","useStateRef","initialValue","_","forceRender","valueRef","setter","value","current","computeScrollIntoView","scrollIntoViewWithBlockNearest","targetElement","action","useGetLogicalGroupBoundaries","useContext","uniqueId","count","random","TranscriptFocusComposer","children","containerRef","rawFocusedActivityGroupKey","setRawFocusedActivityGroupKey","rawFocusedActivityGroupKeyRef","useStateRef","renderingActivityKeys","useRenderingActivityKeys","setRawFocusedActivityKey","rawFocusedActivityKeyRef","getGroupBoundaries","useGetLogicalGroupBoundaries","getGroupKeyByActivityKey","useGetLogicalGroupKey","getGroupState","useGetGroupState","prefix","useMemo","getDescendantIdByActivityKey","useCallback","activityKey","getGroupDescendantIdByGroupKey","groupKey","getGroupDescendantIdByActivityKey","renderingActivityKeysRef","useValueRef","prevRenderingActivityKeys","usePrevious","rawFocusedActivityKey","focusedActivityKey","focusedActivityKeyRef","activeDescendantId","activeGroupDescendantId","handleFocus","activeDescendantElement","scrollIntoViewWithBlockNearest","focusByGroupKey","withFocus","groupDescendantId","focusByActivityKey","key","getNextActivityLinear","currentActivityKey","direction","orderedActivityKeys","currentIndex","nextIndex","handleHeaderTransition","currentGroupKey","currentGroupState","firstActivityKey","lastActivityKey","lastGroupActivityIndex","nextActivityKey","nextGroupKey","prevActivityKey","prevGroupKey","handleGroupTransition","nextGroupState","handleDeltaNavigation","delta","targetActivityKey","targetIndex","focusRelativeActivity","isHeaderFocused","groupState","contextValue","React","Context_default","PropTypes","TranscriptFocusComposer_default","memo","useFocusRelativeActivity","useTranscriptFocusContext","useFocusedExplicitly","useTranscriptFocusContext","useFocusedKey","context","useTranscriptFocusContext","useActivityKeys","useDirection","useGetActivityByKey","useGetKeyByActivityId","useLastAcknowledgedActivityKey","useLocalizer","useMarkActivityKeyAsRead","useMarkAllAsAcknowledged","useStyleOptions","hooks","ROOT_STYLE","InternalTranscript","memo","forwardRef","className","terminatorRef","ref","activeDescendantId","useActiveDescendantId","direction","focusedKey","useFocusedKey","focusedExplicitly","useFocusedExplicitly","focusElementMapRef","useActivityElementMapRef","focus","useFocus","focusByActivityKey","useFocusByActivityKey","focusRelativeActivity","useFocusRelativeActivity","getActivityByKey","getKeyByActivityId","localize","rootClassName","useStyleToEmotionObject","rootElementRef","useRef","focusedKeyRef","useValueRef","transcriptAriaLabel","callbackRef","useCallback","element","numRenderingActivities","useNumRenderingActivities","scrollToBottomScrollTo","useScrollTo","scrollToBottomScrollToEnd","useScrollToEnd","scrollTo","position","behavior","activityId","scrollTop","activityBoundingBoxElement","scrollableElement","activityBoundingBoxElementClientRect","scrollableElementClientRect","activityHeight","activityY","scrollableHeight","activityOffsetTop","scrollToEnd","scrollRelative","displacement","rootElement","scrollable","nextScrollTop","useRegisterScrollTo","useRegisterScrollRelativeTranscript","markActivityKeyAsRead","dispatchScrollPositionWithActivityId","useDispatchScrollPosition","handleScrollPosition","scrollableClientBottom","activityElements","activityKeyJustAboveScrollBottom","elementClientRect","activity","useObserveScrollPosition","handleTranscriptKeyDown","event","target","fromEndOfTranscriptIndicator","fromTranscript","handled","focusElement","handleTranscriptKeyDownCapture","altKey","ctrlKey","key","metaKey","inputtableKey","useRegisterFocusTranscript","dispatchTranscriptFocusByActivityKey","useDispatchTranscriptFocusByActivityKey","useMemo","handleFocus","currentTarget","handleFocusFiller","useObserveFocusVisible","hasAnyChild","React","TranscriptFocusArea_default","android","classNames","LiveRegionTranscript_default","FocusRedirector_default","InternalTranscriptScrollable","ActivityTree_default","Fragment","TranscriptFocusTerminator_default","children","onFocusFiller","activitiesStyleSet","useStyleSet","sticky","useSticky","markAllAsAcknowledged","prevSticky","usePrevious","transcriptRoleDescription","stickyChangedToTrue","ReactScrollToBottomPanel","TranscriptActivityList_default","BasicTypingIndicator_default","useScroller","activityElementMapRef","activityKeys","lastAcknowledgedActivityKey","styleOptions","activityKeysRef","lastAcknowledgedActivityKeyRef","styleOptionsRef","offsetHeight","autoScrollSnapOnActivity","autoScrollSnapOnActivityOffset","autoScrollSnapOnPage","autoScrollSnapOnPageOffset","patchedAutoScrollSnapOnActivity","patchedAutoScrollSnapOnPage","patchedAutoScrollSnapOnActivityOffset","patchedAutoScrollSnapOnPageOffset","activityElementMap","values","lastAcknowledgedActivityKeyIndex","renderingActivityKeys","firstUnacknowledgedActivityElementIndex","acknowledgedActivityKey","index","nthUnacknowledgedActivityElement","nthUnacknowledgedActivityBoundingBoxElement","nthUnacknowledgedActivityOffsetTop","firstUnacknowledgedActivityElement","firstUnacknowledgedActivityBoundingBoxElement","firstUnacknowledgedActivityOffsetTop","BasicTranscript","stylesRoot","nonce","useNonce","containerRef","scroller","ChatHistoryBox_default","RenderingActivitiesComposer_default","TranscriptFocusComposer_default","ReactScrollToBottomComposer","ChatHistoryToolbar_default","ScrollToEndButton_default","GroupedRenderingActivitiesComposer_default","BasicTranscript_default","wrapWith","ChatHistoryDOMComposer_default","React","forwardRef","useCallback","useRef","object","optional","pipe","readonly","string","userAgent","IE_FOCUSABLE_LIST","IS_FIREFOX","IS_IE","getTabIndex","element","tabIndex","tabIndexAttribute","attr","ALWAYS_TRUE_FN","SELECTOR","firstTabbableDescendant","element","filter","focusables","focusable","tabIndex","getTabIndex","orSelf","surfacePropsSchema","pipe","object","optional","c","string","readonly","Surface","forwardRef","props","ref","children","className","role","o","apple","useNavigatorPlatform","contextRef","useRef","handleKeyUp","useCallback","event","altKey","ctrlKey","key","shiftKey","focii","entry","currentFocus","current","nextFocus","tabbable","orSelf","React","Context_default","Surface_default","useStyleOptions","hooks","ROOT_STYLE","CONNECTIVITY_STATUS_STYLE","SEND_BOX_CSS","TOASTER_STYLE","TRANSCRIPT_STYLE","basicWebChatPropsSchema","pipe","object","optional","string","readonly","BasicWebChat","props","className","role","o","rootRef","useRef","rootStyleSet","useStyleSet","options","styleToEmotionObject","useStyleToEmotionObject","connectivityStatusClassName","rootClassName","sendBoxClassName","toasterClassName","transcriptClassName","React","Surface_default","classNames","BasicToaster_default","BasicTranscript_default","BasicConnectivityStatus_default","SendBoxMiddlewareProxy","BasicWebChat_default","memo","ReactWebChat","className","role","composerProps","React","Composer_default","BasicWebChat_default","_","composerPropTypesWithoutChildren","PropTypes","ReactWebChat_default","React","memo","boolean","object","optional","pipe","readonly","string","avatarPropsSchema","pipe","object","optional","boolean","string","readonly","Avatar","props","ariaHidden","className","fromUser","o","React","DefaultAvatar_default","Avatar_default","memo","hooks","React","Fragment","memo","useEffect","object","optional","pipe","readonly","string","unknown","useLocalizer","useTrackException","hooks","errorBoxPropsSchema","pipe","object","unknown","optional","string","readonly","ErrorBox","props","error","type","o","errorBoxStyleSet","useStyleSet","localize","trackException","useEffect","rectifiedError","React","Fragment","ScreenReaderText_default","ErrorBox_default","memo","StyleOptionsComposer","React","memo","useContext","useMemo","array","custom","function_","is","object","optional","pipe","readonly","themeProviderPropsSchema","pipe","object","optional","c","custom","value","is","array","function_","readonly","EMPTY_ARRAY","ThemeProvider","props","activityMiddleware","activityStatusMiddleware","attachmentForScreenReaderMiddleware","attachmentMiddleware","avatarMiddleware","cardActionMiddleware","children","groupActivitiesMiddleware","polymiddleware","scrollToEndButtonMiddleware","sendBoxMiddleware","sendBoxToolbarMiddleware","styleOptions","toastMiddleware","typingIndicatorMiddleware","o","existingContext","useContext","Context_default","mergedActivityMiddleware","useMemo","mergedActivityStatusMiddleware","mergedAttachmentForScreenReaderMiddleware","mergedAttachmentMiddleware","mergedAvatarMiddleware","mergedCardActionMiddleware","mergedGroupActivitiesMiddleware","mergedPolymiddleware","mergedScrollToEndButtonMiddleware","mergedSendBoxMiddleware","mergedSendBoxToolbarMiddleware","mergedToastMiddleware","mergedTypingIndicatorMiddleware","context","React","StyleOptionsComposer","ThemeProvider_default","memo"]}
|