botframework-webchat-component 4.18.1-main.20260511.8fcd02a → 4.18.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/botframework-webchat-component.d.mts +2312 -62
- package/dist/botframework-webchat-component.internal.d.mts +3 -68
- package/dist/botframework-webchat-component.internal.mjs +2 -1
- package/dist/botframework-webchat-component.internal.mjs.LEGAL.txt +0 -0
- package/dist/botframework-webchat-component.mjs +11 -1
- package/dist/botframework-webchat-component.mjs.LEGAL.txt +0 -0
- package/dist/botframework-webchat-component.mjs.map +1 -1
- package/dist/chunk-X37JABN5.mjs +5 -0
- package/dist/chunk-X37JABN5.mjs.LEGAL.txt +0 -0
- package/dist/chunk-X37JABN5.mjs.map +1 -0
- package/dist/metafile-esm.json +1 -1
- package/internal.js +1 -1
- package/lib/Activity/Avatar.d.ts +10 -0
- package/lib/Activity/Avatar.d.ts.map +1 -0
- package/lib/Activity/Avatar.js +35 -0
- package/lib/Activity/Bubble.d.ts +11 -0
- package/lib/Activity/Bubble.d.ts.map +1 -0
- package/lib/Activity/Bubble.js +137 -0
- package/lib/Activity/CarouselFilmStrip.js +264 -0
- package/lib/Activity/CarouselFilmStripAttachment.js +93 -0
- package/lib/Activity/CarouselLayout.js +133 -0
- package/lib/Activity/SayAlt.js +31 -0
- package/lib/Activity/Speak.d.ts +8 -0
- package/lib/Activity/Speak.d.ts.map +1 -0
- package/lib/Activity/Speak.js +99 -0
- package/lib/Activity/StackedLayout.d.ts +17 -0
- package/lib/Activity/StackedLayout.d.ts.map +1 -0
- package/lib/Activity/StackedLayout.js +233 -0
- package/lib/ActivityStatus/AbsoluteTime.js +38 -0
- package/lib/ActivityStatus/OthersActivityStatus.d.ts +8 -0
- package/lib/ActivityStatus/OthersActivityStatus.d.ts.map +1 -0
- package/lib/ActivityStatus/OthersActivityStatus.js +105 -0
- package/lib/ActivityStatus/SelfActivityStatus.d.ts +8 -0
- package/lib/ActivityStatus/SelfActivityStatus.d.ts.map +1 -0
- package/lib/ActivityStatus/SelfActivityStatus.js +37 -0
- package/lib/ActivityStatus/SendStatus/SendStatus.d.ts +10 -0
- package/lib/ActivityStatus/SendStatus/SendStatus.d.ts.map +1 -0
- package/lib/ActivityStatus/SendStatus/SendStatus.js +58 -0
- package/lib/ActivityStatus/SendStatus/private/SendFailedRetry.js +35 -0
- package/lib/ActivityStatus/Slotted.d.ts +7 -0
- package/lib/ActivityStatus/Slotted.d.ts.map +1 -0
- package/lib/ActivityStatus/Slotted.js +31 -0
- package/lib/ActivityStatus/Timestamp.d.ts +7 -0
- package/lib/ActivityStatus/Timestamp.d.ts.map +1 -0
- package/lib/ActivityStatus/Timestamp.js +36 -0
- package/lib/ActivityStatus/private/Feedback/Feedback.d.ts +8 -0
- package/lib/ActivityStatus/private/Feedback/Feedback.d.ts.map +1 -0
- package/lib/ActivityStatus/private/Feedback/Feedback.js +67 -0
- package/lib/ActivityStatus/private/Feedback/private/ThumbButton.Image.d.ts +9 -0
- package/lib/ActivityStatus/private/Feedback/private/ThumbButton.Image.d.ts.map +1 -0
- package/lib/ActivityStatus/private/Feedback/private/ThumbButton.Image.js +34 -0
- package/lib/ActivityStatus/private/Feedback/private/ThumbButton.d.ts +9 -0
- package/lib/ActivityStatus/private/Feedback/private/ThumbButton.d.ts.map +1 -0
- package/lib/ActivityStatus/private/Feedback/private/ThumbButton.js +57 -0
- package/lib/ActivityStatus/private/Feedback/private/VoteButton.d.ts +10 -0
- package/lib/ActivityStatus/private/Feedback/private/VoteButton.d.ts.map +1 -0
- package/lib/ActivityStatus/private/Feedback/private/VoteButton.js +43 -0
- package/lib/ActivityStatus/private/Feedback/private/icons/ThumbDislike16Filled.d.ts +7 -0
- package/lib/ActivityStatus/private/Feedback/private/icons/ThumbDislike16Filled.d.ts.map +1 -0
- package/lib/ActivityStatus/private/Feedback/private/icons/ThumbDislike16Filled.js +28 -0
- package/lib/ActivityStatus/private/Feedback/private/icons/ThumbDislike16Regular.d.ts +7 -0
- package/lib/ActivityStatus/private/Feedback/private/icons/ThumbDislike16Regular.d.ts.map +1 -0
- package/lib/ActivityStatus/private/Feedback/private/icons/ThumbDislike16Regular.js +28 -0
- package/lib/ActivityStatus/private/Feedback/private/icons/ThumbLike16Filled.d.ts +7 -0
- package/lib/ActivityStatus/private/Feedback/private/icons/ThumbLike16Filled.d.ts.map +1 -0
- package/lib/ActivityStatus/private/Feedback/private/icons/ThumbLike16Filled.js +28 -0
- package/lib/ActivityStatus/private/Feedback/private/icons/ThumbLike16Regular.d.ts +7 -0
- package/lib/ActivityStatus/private/Feedback/private/icons/ThumbLike16Regular.d.ts.map +1 -0
- package/lib/ActivityStatus/private/Feedback/private/icons/ThumbLike16Regular.js +28 -0
- package/lib/ActivityStatus/private/Originator.d.ts +8 -0
- package/lib/ActivityStatus/private/Originator.d.ts.map +1 -0
- package/lib/ActivityStatus/private/Originator.js +29 -0
- package/lib/ActivityStatus/private/RelativeTime.js +37 -0
- package/lib/Assets/TypingAnimation.js +47 -0
- package/lib/Attachment/Assets/DownloadIcon.js +35 -0
- package/lib/Attachment/AudioAttachment.js +38 -0
- package/lib/Attachment/AudioContent.d.ts +11 -0
- package/lib/Attachment/AudioContent.d.ts.map +1 -0
- package/lib/Attachment/AudioContent.js +51 -0
- package/lib/Attachment/FileAttachment.js +43 -0
- package/lib/Attachment/FileContent.d.ts +10 -0
- package/lib/Attachment/FileContent.d.ts.map +1 -0
- package/lib/Attachment/FileContent.js +120 -0
- package/lib/Attachment/HTMLVideoContent.d.ts +11 -0
- package/lib/Attachment/HTMLVideoContent.d.ts.map +1 -0
- package/lib/Attachment/HTMLVideoContent.js +51 -0
- package/lib/Attachment/ImageAttachment.js +41 -0
- package/lib/Attachment/ImageContent.d.ts +8 -0
- package/lib/Attachment/ImageContent.d.ts.map +1 -0
- package/lib/Attachment/ImageContent.js +41 -0
- package/lib/Attachment/Text/TextAttachment.d.ts +12 -0
- package/lib/Attachment/Text/TextAttachment.d.ts.map +1 -0
- package/lib/Attachment/Text/TextAttachment.js +27 -0
- package/lib/Attachment/Text/TextContent.d.ts +10 -0
- package/lib/Attachment/Text/TextContent.d.ts.map +1 -0
- package/lib/Attachment/Text/TextContent.js +34 -0
- package/lib/Attachment/Text/private/CitationModalContent.d.ts +8 -0
- package/lib/Attachment/Text/private/CitationModalContent.d.ts.map +1 -0
- package/lib/Attachment/Text/private/CitationModalContent.js +45 -0
- package/lib/Attachment/Text/private/MarkdownTextContent.d.ts +9 -0
- package/lib/Attachment/Text/private/MarkdownTextContent.d.ts.map +1 -0
- package/lib/Attachment/Text/private/MarkdownTextContent.js +204 -0
- package/lib/Attachment/Text/private/MessageSensitivityLabel.d.ts +12 -0
- package/lib/Attachment/Text/private/MessageSensitivityLabel.d.ts.map +1 -0
- package/lib/Attachment/Text/private/MessageSensitivityLabel.js +38 -0
- package/lib/Attachment/Text/private/PlainTextContent.d.ts +7 -0
- package/lib/Attachment/Text/private/PlainTextContent.d.ts.map +1 -0
- package/lib/Attachment/Text/private/PlainTextContent.js +35 -0
- package/lib/Attachment/Text/private/ShieldIcon.d.ts +9 -0
- package/lib/Attachment/Text/private/ShieldIcon.d.ts.map +1 -0
- package/lib/Attachment/Text/private/ShieldIcon.js +39 -0
- package/lib/Attachment/Text/private/isHTMLButtonElement.d.ts +2 -0
- package/lib/Attachment/Text/private/isHTMLButtonElement.d.ts.map +1 -0
- package/lib/Attachment/Text/private/isHTMLButtonElement.js +10 -0
- package/lib/Attachment/VideoAttachment.js +45 -0
- package/lib/Attachment/VideoContent.d.ts +11 -0
- package/lib/Attachment/VideoContent.d.ts.map +1 -0
- package/lib/Attachment/VideoContent.js +103 -0
- package/lib/Attachment/VimeoContent.d.ts +10 -0
- package/lib/Attachment/VimeoContent.d.ts.map +1 -0
- package/lib/Attachment/VimeoContent.js +59 -0
- package/lib/Attachment/YouTubeContent.d.ts +10 -0
- package/lib/Attachment/YouTubeContent.d.ts.map +1 -0
- package/lib/Attachment/YouTubeContent.js +60 -0
- package/lib/Attachment/createMiddleware.d.ts +3 -0
- package/lib/Attachment/createMiddleware.d.ts.map +1 -0
- package/lib/Attachment/createMiddleware.js +64 -0
- package/lib/Attachment/private/types/WebChatAttachment.d.ts +9 -0
- package/lib/Attachment/private/types/WebChatAttachment.d.ts.map +1 -0
- package/lib/Attachment/private/types/WebChatAttachment.js +2 -0
- package/lib/Avatar/ImageAvatar.js +59 -0
- package/lib/Avatar/InitialsAvatar.js +57 -0
- package/lib/BasicConnectivityStatus.js +46 -0
- package/lib/BasicToast.js +103 -0
- package/lib/BasicToaster.js +176 -0
- package/lib/BasicTranscript.d.ts +7 -0
- package/lib/BasicTranscript.d.ts.map +1 -0
- package/lib/BasicTranscript.js +735 -0
- package/lib/BasicTypingIndicator.d.ts +6 -0
- package/lib/BasicTypingIndicator.d.ts.map +1 -0
- package/lib/BasicTypingIndicator.js +54 -0
- package/lib/BasicWebChat.d.ts +9 -0
- package/lib/BasicWebChat.d.ts.map +1 -0
- package/lib/BasicWebChat.js +90 -0
- package/lib/Composer.d.ts +50 -0
- package/lib/Composer.d.ts.map +1 -0
- package/lib/Composer.js +336 -0
- package/lib/ConnectivityStatus/Assets/ErrorNotificationIcon.js +47 -0
- package/lib/ConnectivityStatus/Assets/SpinnerAnimation.js +32 -0
- package/lib/ConnectivityStatus/Assets/WarningNotificationIcon.js +47 -0
- package/lib/ConnectivityStatus/Connected.js +20 -0
- package/lib/ConnectivityStatus/Connecting.js +82 -0
- package/lib/ConnectivityStatus/FailedToConnect.js +41 -0
- package/lib/ConnectivityStatus/JavaScriptError.js +41 -0
- package/lib/Dictation.js +158 -0
- package/lib/ErrorBox.d.ts +8 -0
- package/lib/ErrorBox.d.ts.map +1 -0
- package/lib/ErrorBox.js +42 -0
- package/lib/LinkDefinition/LinkDefinitionItem.d.ts +12 -0
- package/lib/LinkDefinition/LinkDefinitionItem.d.ts.map +1 -0
- package/lib/LinkDefinition/LinkDefinitionItem.js +57 -0
- package/lib/LinkDefinition/LinkDefinitions.d.ts +12 -0
- package/lib/LinkDefinition/LinkDefinitions.d.ts.map +1 -0
- package/lib/LinkDefinition/LinkDefinitions.js +69 -0
- package/lib/LinkDefinition/index.d.ts +4 -0
- package/lib/LinkDefinition/index.d.ts.map +1 -0
- package/lib/LinkDefinition/index.js +21 -0
- package/lib/LinkDefinition/private/Badge.d.ts +7 -0
- package/lib/LinkDefinition/private/Badge.d.ts.map +1 -0
- package/lib/LinkDefinition/private/Badge.js +20 -0
- package/lib/LinkDefinition/private/Chevron.d.ts +4 -0
- package/lib/LinkDefinition/private/Chevron.d.ts.map +1 -0
- package/lib/LinkDefinition/private/Chevron.js +27 -0
- package/lib/LinkDefinition/private/ItemBody.d.ts +11 -0
- package/lib/LinkDefinition/private/ItemBody.d.ts.map +1 -0
- package/lib/LinkDefinition/private/ItemBody.js +41 -0
- package/lib/LinkDefinition/private/OpenInNewWindowIcon.d.ts +7 -0
- package/lib/LinkDefinition/private/OpenInNewWindowIcon.d.ts.map +1 -0
- package/lib/LinkDefinition/private/OpenInNewWindowIcon.js +23 -0
- package/lib/LinkDefinition/private/extractHostnameWithSubdomain.d.ts +2 -0
- package/lib/LinkDefinition/private/extractHostnameWithSubdomain.d.ts.map +1 -0
- package/lib/LinkDefinition/private/extractHostnameWithSubdomain.js +24 -0
- package/lib/LinkDefinition/private/extractHostnameWithSubdomain.spec.d.ts +2 -0
- package/lib/LinkDefinition/private/extractHostnameWithSubdomain.spec.d.ts.map +1 -0
- package/lib/LiveRegion/LiveRegionActivity.d.ts +9 -0
- package/lib/LiveRegion/LiveRegionActivity.d.ts.map +1 -0
- package/lib/LiveRegion/LiveRegionActivity.js +70 -0
- package/lib/LiveRegion/private/LiveRegionAttachments.d.ts +11 -0
- package/lib/LiveRegion/private/LiveRegionAttachments.d.ts.map +1 -0
- package/lib/LiveRegion/private/LiveRegionAttachments.js +53 -0
- package/lib/LiveRegion/private/LiveRegionSuggestedActions.d.ts +8 -0
- package/lib/LiveRegion/private/LiveRegionSuggestedActions.d.ts.map +1 -0
- package/lib/LiveRegion/private/LiveRegionSuggestedActions.js +37 -0
- package/lib/Middleware/Activity/createCoreMiddleware.d.ts +3 -0
- package/lib/Middleware/Activity/createCoreMiddleware.d.ts.map +1 -0
- package/lib/Middleware/Activity/createCoreMiddleware.js +95 -0
- package/lib/Middleware/ActivityStatus/createCoreMiddleware.d.ts +3 -0
- package/lib/Middleware/ActivityStatus/createCoreMiddleware.d.ts.map +1 -0
- package/lib/Middleware/ActivityStatus/createCoreMiddleware.js +13 -0
- package/lib/Middleware/ActivityStatus/createSendStatusMiddleware.d.ts +3 -0
- package/lib/Middleware/ActivityStatus/createSendStatusMiddleware.d.ts.map +1 -0
- package/lib/Middleware/ActivityStatus/createSendStatusMiddleware.js +41 -0
- package/lib/Middleware/ActivityStatus/createTimestampMiddleware.d.ts +3 -0
- package/lib/Middleware/ActivityStatus/createTimestampMiddleware.d.ts.map +1 -0
- package/lib/Middleware/ActivityStatus/createTimestampMiddleware.js +48 -0
- package/lib/Middleware/AttachmentForScreenReader/AudioAttachment.js +18 -0
- package/lib/Middleware/AttachmentForScreenReader/FileAttachment.js +28 -0
- package/lib/Middleware/AttachmentForScreenReader/ImageAttachment.js +18 -0
- package/lib/Middleware/AttachmentForScreenReader/TextAttachment.js +28 -0
- package/lib/Middleware/AttachmentForScreenReader/VideoAttachment.js +18 -0
- package/lib/Middleware/AttachmentForScreenReader/createCoreMiddleware.d.ts +3 -0
- package/lib/Middleware/AttachmentForScreenReader/createCoreMiddleware.d.ts.map +1 -0
- package/lib/Middleware/AttachmentForScreenReader/createCoreMiddleware.js +61 -0
- package/lib/Middleware/Avatar/createCoreMiddleware.d.ts +11 -0
- package/lib/Middleware/Avatar/createCoreMiddleware.d.ts.map +1 -0
- package/lib/Middleware/Avatar/createCoreMiddleware.js +82 -0
- package/lib/Middleware/CardAction/createCoreMiddleware.js +108 -0
- package/lib/Middleware/ScrollToEndButton/ScrollToEndButton.js +52 -0
- package/lib/Middleware/ScrollToEndButton/createScrollToEndButtonMiddleware.d.ts +3 -0
- package/lib/Middleware/ScrollToEndButton/createScrollToEndButtonMiddleware.d.ts.map +1 -0
- package/lib/Middleware/ScrollToEndButton/createScrollToEndButtonMiddleware.js +27 -0
- package/lib/Middleware/Toast/createCoreMiddleware.d.ts +4 -0
- package/lib/Middleware/Toast/createCoreMiddleware.d.ts.map +1 -0
- package/lib/Middleware/Toast/createCoreMiddleware.js +27 -0
- package/lib/Middleware/TypingIndicator/createCoreMiddleware.d.ts +3 -0
- package/lib/Middleware/TypingIndicator/createCoreMiddleware.d.ts.map +1 -0
- package/lib/Middleware/TypingIndicator/createCoreMiddleware.js +47 -0
- package/lib/ReactWebChat.d.ts +42 -0
- package/lib/ReactWebChat.d.ts.map +1 -0
- package/lib/ReactWebChat.js +52 -0
- package/lib/ScreenReaderText.d.ts +9 -0
- package/lib/ScreenReaderText.d.ts.map +1 -0
- package/lib/ScreenReaderText.js +58 -0
- package/lib/SendBox/Assets/MicrophoneIcon.js +25 -0
- package/lib/SendBox/Assets/SendIcon.js +45 -0
- package/lib/SendBox/AutoResizeTextArea.d.ts +24 -0
- package/lib/SendBox/AutoResizeTextArea.d.ts.map +1 -0
- package/lib/SendBox/AutoResizeTextArea.js +113 -0
- package/lib/SendBox/BasicSendBox.d.ts +9 -0
- package/lib/SendBox/BasicSendBox.d.ts.map +1 -0
- package/lib/SendBox/BasicSendBox.js +123 -0
- package/lib/SendBox/DictationInterims.d.ts +7 -0
- package/lib/SendBox/DictationInterims.d.ts.map +1 -0
- package/lib/SendBox/DictationInterims.js +68 -0
- package/lib/SendBox/IconButton.d.ts +11 -0
- package/lib/SendBox/IconButton.d.ts.map +1 -0
- package/lib/SendBox/IconButton.js +73 -0
- package/lib/SendBox/MicrophoneButton.d.ts +10 -0
- package/lib/SendBox/MicrophoneButton.d.ts.map +1 -0
- package/lib/SendBox/MicrophoneButton.js +160 -0
- package/lib/SendBox/SendButton.d.ts +7 -0
- package/lib/SendBox/SendButton.d.ts.map +1 -0
- package/lib/SendBox/SendButton.js +53 -0
- package/lib/SendBox/SuggestedAction.d.ts +16 -0
- package/lib/SendBox/SuggestedAction.d.ts.map +1 -0
- package/lib/SendBox/SuggestedAction.js +166 -0
- package/lib/SendBox/SuggestedActions.d.ts +7 -0
- package/lib/SendBox/SuggestedActions.d.ts.map +1 -0
- package/lib/SendBox/SuggestedActions.js +256 -0
- package/lib/SendBox/TextBox.d.ts +24 -0
- package/lib/SendBox/TextBox.d.ts.map +1 -0
- package/lib/SendBox/TextBox.js +252 -0
- package/lib/SendBox/createMiddleware.d.ts +4 -0
- package/lib/SendBox/createMiddleware.d.ts.map +1 -0
- package/lib/SendBox/createMiddleware.js +38 -0
- package/lib/SendBoxToolbar/Assets/AttachmentIcon.d.ts +7 -0
- package/lib/SendBoxToolbar/Assets/AttachmentIcon.d.ts.map +1 -0
- package/lib/SendBoxToolbar/Assets/AttachmentIcon.js +63 -0
- package/lib/SendBoxToolbar/BasicSendBoxToolbar.d.ts +6 -0
- package/lib/SendBoxToolbar/BasicSendBoxToolbar.d.ts.map +1 -0
- package/lib/SendBoxToolbar/BasicSendBoxToolbar.js +32 -0
- package/lib/SendBoxToolbar/UploadButton.d.ts +7 -0
- package/lib/SendBoxToolbar/UploadButton.d.ts.map +1 -0
- package/lib/SendBoxToolbar/UploadButton.js +156 -0
- package/lib/SendBoxToolbar/createMiddleware.d.ts +4 -0
- package/lib/SendBoxToolbar/createMiddleware.d.ts.map +1 -0
- package/lib/SendBoxToolbar/createMiddleware.js +20 -0
- package/lib/Styles/CSSTokens.d.ts +16 -0
- package/lib/Styles/CSSTokens.d.ts.map +1 -0
- package/lib/Styles/CSSTokens.js +19 -0
- package/lib/Styles/CustomPropertyNames.d.ts +13 -0
- package/lib/Styles/CustomPropertyNames.d.ts.map +1 -0
- package/lib/Styles/CustomPropertyNames.js +24 -0
- package/lib/Styles/StyleSet/Activities.d.ts +5 -0
- package/lib/Styles/StyleSet/Activities.d.ts.map +1 -0
- package/lib/Styles/StyleSet/Activities.js +13 -0
- package/lib/Styles/StyleSet/AudioAttachment.d.ts +6 -0
- package/lib/Styles/StyleSet/AudioAttachment.d.ts.map +1 -0
- package/lib/Styles/StyleSet/AudioAttachment.js +15 -0
- package/lib/Styles/StyleSet/AudioContent.d.ts +4 -0
- package/lib/Styles/StyleSet/AudioContent.d.ts.map +1 -0
- package/lib/Styles/StyleSet/AudioContent.js +12 -0
- package/lib/Styles/StyleSet/AutoResizeTextArea.d.ts +37 -0
- package/lib/Styles/StyleSet/AutoResizeTextArea.d.ts.map +1 -0
- package/lib/Styles/StyleSet/AutoResizeTextArea.js +45 -0
- package/lib/Styles/StyleSet/Avatar.d.ts +9 -0
- package/lib/Styles/StyleSet/Avatar.d.ts.map +1 -0
- package/lib/Styles/StyleSet/Avatar.js +18 -0
- package/lib/Styles/StyleSet/BasicTranscript.d.ts +85 -0
- package/lib/Styles/StyleSet/BasicTranscript.d.ts.map +1 -0
- package/lib/Styles/StyleSet/BasicTranscript.js +110 -0
- package/lib/Styles/StyleSet/Bubble.d.ts +5 -0
- package/lib/Styles/StyleSet/Bubble.d.ts.map +1 -0
- package/lib/Styles/StyleSet/Bubble.js +153 -0
- package/lib/Styles/StyleSet/CSSCustomProperties.d.ts +16 -0
- package/lib/Styles/StyleSet/CSSCustomProperties.d.ts.map +1 -0
- package/lib/Styles/StyleSet/CSSCustomProperties.js +27 -0
- package/lib/Styles/StyleSet/CarouselFilmStrip.d.ts +5 -0
- package/lib/Styles/StyleSet/CarouselFilmStrip.d.ts.map +1 -0
- package/lib/Styles/StyleSet/CarouselFilmStrip.js +90 -0
- package/lib/Styles/StyleSet/CarouselFilmStripAttachment.d.ts +3 -0
- package/lib/Styles/StyleSet/CarouselFilmStripAttachment.d.ts.map +1 -0
- package/lib/Styles/StyleSet/CarouselFilmStripAttachment.js +57 -0
- package/lib/Styles/StyleSet/CarouselFlipper.d.ts +27 -0
- package/lib/Styles/StyleSet/CarouselFlipper.d.ts.map +1 -0
- package/lib/Styles/StyleSet/CarouselFlipper.js +42 -0
- package/lib/Styles/StyleSet/CitationModalDialog.d.ts +8 -0
- package/lib/Styles/StyleSet/CitationModalDialog.d.ts.map +1 -0
- package/lib/Styles/StyleSet/CitationModalDialog.js +16 -0
- package/lib/Styles/StyleSet/ConnectivityNotification.d.ts +13 -0
- package/lib/Styles/StyleSet/ConnectivityNotification.d.ts.map +1 -0
- package/lib/Styles/StyleSet/ConnectivityNotification.js +26 -0
- package/lib/Styles/StyleSet/Constants.d.ts +6 -0
- package/lib/Styles/StyleSet/Constants.d.ts.map +1 -0
- package/lib/Styles/StyleSet/Constants.js +15 -0
- package/lib/Styles/StyleSet/DictationInterims.d.ts +13 -0
- package/lib/Styles/StyleSet/DictationInterims.d.ts.map +1 -0
- package/lib/Styles/StyleSet/DictationInterims.js +22 -0
- package/lib/Styles/StyleSet/ErrorBox.d.ts +33 -0
- package/lib/Styles/StyleSet/ErrorBox.d.ts.map +1 -0
- package/lib/Styles/StyleSet/ErrorBox.js +43 -0
- package/lib/Styles/StyleSet/ErrorNotification.d.ts +23 -0
- package/lib/Styles/StyleSet/ErrorNotification.d.ts.map +1 -0
- package/lib/Styles/StyleSet/ErrorNotification.js +36 -0
- package/lib/Styles/StyleSet/FileContent.d.ts +32 -0
- package/lib/Styles/StyleSet/FileContent.d.ts.map +1 -0
- package/lib/Styles/StyleSet/FileContent.js +43 -0
- package/lib/Styles/StyleSet/ImageAvatar.d.ts +7 -0
- package/lib/Styles/StyleSet/ImageAvatar.d.ts.map +1 -0
- package/lib/Styles/StyleSet/ImageAvatar.js +15 -0
- package/lib/Styles/StyleSet/InitialsAvatar.d.ts +19 -0
- package/lib/Styles/StyleSet/InitialsAvatar.d.ts.map +1 -0
- package/lib/Styles/StyleSet/InitialsAvatar.js +31 -0
- package/lib/Styles/StyleSet/KeyboardHelp.d.ts +152 -0
- package/lib/Styles/StyleSet/KeyboardHelp.d.ts.map +1 -0
- package/lib/Styles/StyleSet/KeyboardHelp.js +168 -0
- package/lib/Styles/StyleSet/LinkDefinitions.d.ts +165 -0
- package/lib/Styles/StyleSet/LinkDefinitions.d.ts.map +1 -0
- package/lib/Styles/StyleSet/LinkDefinitions.js +180 -0
- package/lib/Styles/StyleSet/MicrophoneButton.d.ts +13 -0
- package/lib/Styles/StyleSet/MicrophoneButton.d.ts.map +1 -0
- package/lib/Styles/StyleSet/MicrophoneButton.js +21 -0
- package/lib/Styles/StyleSet/ModalDialog.d.ts +94 -0
- package/lib/Styles/StyleSet/ModalDialog.d.ts.map +1 -0
- package/lib/Styles/StyleSet/ModalDialog.js +98 -0
- package/lib/Styles/StyleSet/RenderMarkdown.d.ts +51 -0
- package/lib/Styles/StyleSet/RenderMarkdown.d.ts.map +1 -0
- package/lib/Styles/StyleSet/RenderMarkdown.js +67 -0
- package/lib/Styles/StyleSet/Root.d.ts +8 -0
- package/lib/Styles/StyleSet/Root.d.ts.map +1 -0
- package/lib/Styles/StyleSet/Root.js +19 -0
- package/lib/Styles/StyleSet/ScrollToEndButton.d.ts +36 -0
- package/lib/Styles/StyleSet/ScrollToEndButton.d.ts.map +1 -0
- package/lib/Styles/StyleSet/ScrollToEndButton.js +55 -0
- package/lib/Styles/StyleSet/SendBox.d.ts +24 -0
- package/lib/Styles/StyleSet/SendBox.d.ts.map +1 -0
- package/lib/Styles/StyleSet/SendBox.js +37 -0
- package/lib/Styles/StyleSet/SendBoxButton.d.ts +79 -0
- package/lib/Styles/StyleSet/SendBoxButton.d.ts.map +1 -0
- package/lib/Styles/StyleSet/SendBoxButton.js +112 -0
- package/lib/Styles/StyleSet/SendBoxTextBox.d.ts +41 -0
- package/lib/Styles/StyleSet/SendBoxTextBox.d.ts.map +1 -0
- package/lib/Styles/StyleSet/SendBoxTextBox.js +57 -0
- package/lib/Styles/StyleSet/SendStatus.d.ts +19 -0
- package/lib/Styles/StyleSet/SendStatus.d.ts.map +1 -0
- package/lib/Styles/StyleSet/SendStatus.js +29 -0
- package/lib/Styles/StyleSet/SingleAttachmentActivity.d.ts +11 -0
- package/lib/Styles/StyleSet/SingleAttachmentActivity.d.ts.map +1 -0
- package/lib/Styles/StyleSet/SingleAttachmentActivity.js +21 -0
- package/lib/Styles/StyleSet/SlottedActivityStatus.d.ts +12 -0
- package/lib/Styles/StyleSet/SlottedActivityStatus.d.ts.map +1 -0
- package/lib/Styles/StyleSet/SlottedActivityStatus.js +22 -0
- package/lib/Styles/StyleSet/SpinnerAnimation.d.ts +15 -0
- package/lib/Styles/StyleSet/SpinnerAnimation.d.ts.map +1 -0
- package/lib/Styles/StyleSet/SpinnerAnimation.js +34 -0
- package/lib/Styles/StyleSet/StackedLayout.d.ts +63 -0
- package/lib/Styles/StyleSet/StackedLayout.d.ts.map +1 -0
- package/lib/Styles/StyleSet/StackedLayout.js +77 -0
- package/lib/Styles/StyleSet/SuggestedAction.d.ts +94 -0
- package/lib/Styles/StyleSet/SuggestedAction.d.ts.map +1 -0
- package/lib/Styles/StyleSet/SuggestedAction.js +152 -0
- package/lib/Styles/StyleSet/SuggestedActions.d.ts +139 -0
- package/lib/Styles/StyleSet/SuggestedActions.d.ts.map +1 -0
- package/lib/Styles/StyleSet/SuggestedActions.js +165 -0
- package/lib/Styles/StyleSet/TextContent.d.ts +24 -0
- package/lib/Styles/StyleSet/TextContent.d.ts.map +1 -0
- package/lib/Styles/StyleSet/TextContent.js +34 -0
- package/lib/Styles/StyleSet/ThumbButton.d.ts +32 -0
- package/lib/Styles/StyleSet/ThumbButton.d.ts.map +1 -0
- package/lib/Styles/StyleSet/ThumbButton.js +44 -0
- package/lib/Styles/StyleSet/Toast.d.ts +65 -0
- package/lib/Styles/StyleSet/Toast.d.ts.map +1 -0
- package/lib/Styles/StyleSet/Toast.js +83 -0
- package/lib/Styles/StyleSet/Toaster.d.ts +111 -0
- package/lib/Styles/StyleSet/Toaster.d.ts.map +1 -0
- package/lib/Styles/StyleSet/Toaster.js +137 -0
- package/lib/Styles/StyleSet/TypingAnimation.d.ts +8 -0
- package/lib/Styles/StyleSet/TypingAnimation.d.ts.map +1 -0
- package/lib/Styles/StyleSet/TypingAnimation.js +26 -0
- package/lib/Styles/StyleSet/TypingIndicator.d.ts +11 -0
- package/lib/Styles/StyleSet/TypingIndicator.d.ts.map +1 -0
- package/lib/Styles/StyleSet/TypingIndicator.js +19 -0
- package/lib/Styles/StyleSet/UploadButton.d.ts +14 -0
- package/lib/Styles/StyleSet/UploadButton.d.ts.map +1 -0
- package/lib/Styles/StyleSet/UploadButton.js +27 -0
- package/lib/Styles/StyleSet/VideoAttachment.d.ts +2 -0
- package/lib/Styles/StyleSet/VideoAttachment.d.ts.map +1 -0
- package/lib/Styles/StyleSet/VideoAttachment.js +10 -0
- package/lib/Styles/StyleSet/VideoContent.d.ts +6 -0
- package/lib/Styles/StyleSet/VideoContent.d.ts.map +1 -0
- package/lib/Styles/StyleSet/VideoContent.js +14 -0
- package/lib/Styles/StyleSet/VimeoContent.d.ts +7 -0
- package/lib/Styles/StyleSet/VimeoContent.d.ts.map +1 -0
- package/lib/Styles/StyleSet/VimeoContent.js +15 -0
- package/lib/Styles/StyleSet/WarningNotification.d.ts +22 -0
- package/lib/Styles/StyleSet/WarningNotification.d.ts.map +1 -0
- package/lib/Styles/StyleSet/WarningNotification.js +37 -0
- package/lib/Styles/StyleSet/YouTubeContent.d.ts +7 -0
- package/lib/Styles/StyleSet/YouTubeContent.d.ts.map +1 -0
- package/lib/Styles/StyleSet/YouTubeContent.js +15 -0
- package/lib/Styles/createStyleSet.d.ts +1803 -0
- package/lib/Styles/createStyleSet.d.ts.map +1 -0
- package/lib/Styles/createStyleSet.js +121 -0
- package/lib/Styles/mirrorStyle.js +40 -0
- package/lib/Toast/CheckMarkIcon.js +36 -0
- package/lib/Toast/CollapseIcon.js +32 -0
- package/lib/Toast/DismissIcon.js +32 -0
- package/lib/Toast/ExclamationMarkIcon.js +34 -0
- package/lib/Toast/ExpandIcon.js +32 -0
- package/lib/Toast/NotificationIcon.js +46 -0
- package/lib/Toast/createToastMiddleware.d.ts +4 -0
- package/lib/Toast/createToastMiddleware.d.ts.map +1 -0
- package/lib/Toast/createToastMiddleware.js +26 -0
- package/lib/Transcript/ActivityRow.d.ts +9 -0
- package/lib/Transcript/ActivityRow.d.ts.map +1 -0
- package/lib/Transcript/ActivityRow.js +137 -0
- package/lib/Transcript/FocusTrap.d.ts +9 -0
- package/lib/Transcript/FocusTrap.d.ts.map +1 -0
- package/lib/Transcript/FocusTrap.js +76 -0
- package/lib/Transcript/KeyboardHelp.d.ts +4 -0
- package/lib/Transcript/KeyboardHelp.d.ts.map +1 -0
- package/lib/Transcript/KeyboardHelp.js +562 -0
- package/lib/Transcript/LiveRegion/SendFailed.d.ts +14 -0
- package/lib/Transcript/LiveRegion/SendFailed.d.ts.map +1 -0
- package/lib/Transcript/LiveRegion/SendFailed.js +90 -0
- package/lib/Transcript/LiveRegion/isPresentational.d.ts +9 -0
- package/lib/Transcript/LiveRegion/isPresentational.d.ts.map +1 -0
- package/lib/Transcript/LiveRegion/isPresentational.js +30 -0
- package/lib/Transcript/LiveRegionTranscript.d.ts +8 -0
- package/lib/Transcript/LiveRegionTranscript.d.ts.map +1 -0
- package/lib/Transcript/LiveRegionTranscript.js +178 -0
- package/lib/Transcript/types.d.ts +2 -0
- package/lib/Transcript/types.d.ts.map +1 -0
- package/lib/Transcript/types.js +2 -0
- package/lib/Transcript/useActivityAccessibleName.d.ts +11 -0
- package/lib/Transcript/useActivityAccessibleName.d.ts.map +1 -0
- package/lib/Transcript/useActivityAccessibleName.js +103 -0
- package/lib/Transcript/useTypistNames.d.ts +3 -0
- package/lib/Transcript/useTypistNames.d.ts.map +1 -0
- package/lib/Transcript/useTypistNames.js +50 -0
- package/lib/TranscriptActivity.d.ts +17 -0
- package/lib/TranscriptActivity.d.ts.map +1 -0
- package/lib/TranscriptActivity.js +48 -0
- package/lib/Utils/AccessKeySink/Surface.js +74 -0
- package/lib/Utils/AccessKeySink/internal/Context.js +11 -0
- package/lib/Utils/AccessKeySink/internal/useContext.js +13 -0
- package/lib/Utils/AccessKeySink/useFocusAccessKeyEffect.js +34 -0
- package/lib/Utils/AccessibleButton.d.ts +11 -0
- package/lib/Utils/AccessibleButton.d.ts.map +1 -0
- package/lib/Utils/AccessibleButton.js +78 -0
- package/lib/Utils/AccessibleInputText.d.ts +22 -0
- package/lib/Utils/AccessibleInputText.d.ts.map +1 -0
- package/lib/Utils/AccessibleInputText.js +114 -0
- package/lib/Utils/AccessibleTextArea.d.ts +20 -0
- package/lib/Utils/AccessibleTextArea.d.ts.map +1 -0
- package/lib/Utils/AccessibleTextArea.js +105 -0
- package/lib/Utils/CroppedImage.js +61 -0
- package/lib/Utils/FocusRedirector.d.ts +9 -0
- package/lib/Utils/FocusRedirector.d.ts.map +1 -0
- package/lib/Utils/FocusRedirector.js +61 -0
- package/lib/Utils/InlineMarkdown.js +166 -0
- package/lib/Utils/JSONLinkedData/BlankNode.d.ts +15 -0
- package/lib/Utils/JSONLinkedData/BlankNode.d.ts.map +1 -0
- package/lib/Utils/JSONLinkedData/BlankNode.js +2 -0
- package/lib/Utils/JSONLinkedData/__snapshots__/dereferenceBlankNodes.spec.ts.snap +92 -0
- package/lib/Utils/JSONLinkedData/dereferenceBlankNodes.d.ts +16 -0
- package/lib/Utils/JSONLinkedData/dereferenceBlankNodes.d.ts.map +1 -0
- package/lib/Utils/JSONLinkedData/dereferenceBlankNodes.js +96 -0
- package/lib/Utils/JSONLinkedData/dereferenceBlankNodes.spec.d.ts +2 -0
- package/lib/Utils/JSONLinkedData/dereferenceBlankNodes.spec.d.ts.map +1 -0
- package/lib/Utils/JSONLinkedData/getSafeOwnPropertyNames.d.ts +10 -0
- package/lib/Utils/JSONLinkedData/getSafeOwnPropertyNames.d.ts.map +1 -0
- package/lib/Utils/JSONLinkedData/getSafeOwnPropertyNames.js +22 -0
- package/lib/Utils/JSONLinkedData/isBlankNode.d.ts +10 -0
- package/lib/Utils/JSONLinkedData/isBlankNode.d.ts.map +1 -0
- package/lib/Utils/JSONLinkedData/isBlankNode.js +22 -0
- package/lib/Utils/JSONLinkedData/isBlankNode.spec.d.ts +2 -0
- package/lib/Utils/JSONLinkedData/isBlankNode.spec.d.ts.map +1 -0
- package/lib/Utils/JSONLinkedData/isUnconnectedBlankNode.d.ts +10 -0
- package/lib/Utils/JSONLinkedData/isUnconnectedBlankNode.d.ts.map +1 -0
- package/lib/Utils/JSONLinkedData/isUnconnectedBlankNode.js +21 -0
- package/lib/Utils/JSONLinkedData/isUnconnectedBlankNode.spec.d.ts +2 -0
- package/lib/Utils/JSONLinkedData/isUnconnectedBlankNode.spec.d.ts.map +1 -0
- package/lib/Utils/JSONLinkedData/visitOnce.d.ts +2 -0
- package/lib/Utils/JSONLinkedData/visitOnce.d.ts.map +1 -0
- package/lib/Utils/JSONLinkedData/visitOnce.js +17 -0
- package/lib/Utils/LocalizedString.d.ts +26 -0
- package/lib/Utils/LocalizedString.d.ts.map +1 -0
- package/lib/Utils/LocalizedString.js +138 -0
- package/lib/Utils/TypeFocusSink/Context.js +14 -0
- package/lib/Utils/TypeFocusSink/FocusBox.js +91 -0
- package/lib/Utils/TypeFocusSink/getTabIndex.d.ts +2 -0
- package/lib/Utils/TypeFocusSink/getTabIndex.d.ts.map +1 -0
- package/lib/Utils/TypeFocusSink/getTabIndex.js +27 -0
- package/lib/Utils/TypeFocusSink/index.js +18 -0
- package/lib/Utils/TypeFocusSink/inputtableKey.d.ts +2 -0
- package/lib/Utils/TypeFocusSink/inputtableKey.d.ts.map +1 -0
- package/lib/Utils/TypeFocusSink/inputtableKey.js +28 -0
- package/lib/Utils/TypeFocusSink/navigableEvent.js +59 -0
- package/lib/Utils/activityAltText.d.ts +8 -0
- package/lib/Utils/activityAltText.d.ts.map +1 -0
- package/lib/Utils/activityAltText.js +79 -0
- package/lib/Utils/addTargetBlankToHyperlinksMarkdown.js +34 -0
- package/lib/Utils/betterLinks.d.ts +28 -0
- package/lib/Utils/betterLinks.d.ts.map +1 -0
- package/lib/Utils/betterLinks.js +142 -0
- package/lib/Utils/computeSuggestedActionText.d.ts +3 -0
- package/lib/Utils/computeSuggestedActionText.d.ts.map +1 -0
- package/lib/Utils/computeSuggestedActionText.js +24 -0
- package/lib/Utils/createCSSKey.js +16 -0
- package/lib/Utils/createCustomEvent.js +34 -0
- package/lib/Utils/detectBrowser.js +27 -0
- package/lib/Utils/downscaleImageToDataURL/WorkerJob.d.ts +16 -0
- package/lib/Utils/downscaleImageToDataURL/WorkerJob.d.ts.map +1 -0
- package/lib/Utils/downscaleImageToDataURL/WorkerJob.js +2 -0
- package/lib/Utils/downscaleImageToDataURL/downscaleImageToDataURLUsingBrowser.d.ts +2 -0
- package/lib/Utils/downscaleImageToDataURL/downscaleImageToDataURLUsingBrowser.d.ts.map +1 -0
- package/lib/Utils/downscaleImageToDataURL/downscaleImageToDataURLUsingBrowser.js +90 -0
- package/lib/Utils/downscaleImageToDataURL/downscaleImageToDataURLUsingWorker.d.ts +4 -0
- package/lib/Utils/downscaleImageToDataURL/downscaleImageToDataURLUsingWorker.d.ts.map +1 -0
- package/lib/Utils/downscaleImageToDataURL/downscaleImageToDataURLUsingWorker.js +198 -0
- package/lib/Utils/downscaleImageToDataURL/downscaleImageToDataURLUsingWorker.worker.js +96 -0
- package/lib/Utils/downscaleImageToDataURL/index.d.ts +2 -0
- package/lib/Utils/downscaleImageToDataURL/index.d.ts.map +1 -0
- package/lib/Utils/downscaleImageToDataURL/index.js +44 -0
- package/lib/Utils/filterMap.js +28 -0
- package/lib/Utils/findAncestor.d.ts +2 -0
- package/lib/Utils/findAncestor.d.ts.map +1 -0
- package/lib/Utils/findAncestor.js +15 -0
- package/lib/Utils/firstTabbableDescendant.js +40 -0
- package/lib/Utils/getActivityUniqueId.d.ts +3 -0
- package/lib/Utils/getActivityUniqueId.d.ts.map +1 -0
- package/lib/Utils/getActivityUniqueId.js +11 -0
- package/lib/Utils/intersectionOf.d.ts +5 -0
- package/lib/Utils/intersectionOf.d.ts.map +1 -0
- package/lib/Utils/intersectionOf.js +27 -0
- package/lib/Utils/isZeroOrPositive.d.ts +5 -0
- package/lib/Utils/isZeroOrPositive.d.ts.map +1 -0
- package/lib/Utils/isZeroOrPositive.js +14 -0
- package/lib/Utils/mapMap.js +27 -0
- package/lib/Utils/parseDocumentFromString.d.ts +2 -0
- package/lib/Utils/parseDocumentFromString.d.ts.map +1 -0
- package/lib/Utils/parseDocumentFromString.js +11 -0
- package/lib/Utils/randomId.js +15 -0
- package/lib/Utils/readDataURIToBlob.js +44 -0
- package/lib/Utils/removeInline.js +18 -0
- package/lib/Utils/scrollIntoViewWithBlockNearest.d.ts +7 -0
- package/lib/Utils/scrollIntoViewWithBlockNearest.d.ts.map +1 -0
- package/lib/Utils/scrollIntoViewWithBlockNearest.js +38 -0
- package/lib/Utils/serializeDocumentIntoString.d.ts +2 -0
- package/lib/Utils/serializeDocumentIntoString.d.ts.map +1 -0
- package/lib/Utils/serializeDocumentIntoString.js +27 -0
- package/lib/Utils/shallowEquals.js +21 -0
- package/lib/Utils/singleToArray.d.ts +2 -0
- package/lib/Utils/singleToArray.d.ts.map +1 -0
- package/lib/Utils/singleToArray.js +10 -0
- package/lib/Utils/supportPseudoClass.d.ts +2 -0
- package/lib/Utils/supportPseudoClass.d.ts.map +1 -0
- package/lib/Utils/supportPseudoClass.js +21 -0
- package/lib/Utils/tabbableElements.d.ts +2 -0
- package/lib/Utils/tabbableElements.d.ts.map +1 -0
- package/lib/Utils/tabbableElements.js +20 -0
- package/lib/Utils/textFormatToContentType.js +17 -0
- package/lib/Utils/updateMarkdownAttrs.js +16 -0
- package/lib/Utils/walkMarkdownTokens.js +19 -0
- package/lib/hooks/index.d.ts +22 -0
- package/lib/hooks/index.d.ts.map +1 -0
- package/lib/hooks/index.js +152 -0
- package/lib/hooks/internal/BypassSpeechSynthesisPonyfill.js +278 -0
- package/lib/hooks/internal/UITracker.js +39 -0
- package/lib/hooks/internal/WebChatUIContext.d.ts +8 -0
- package/lib/hooks/internal/WebChatUIContext.d.ts.map +1 -0
- package/lib/hooks/internal/WebChatUIContext.js +11 -0
- package/lib/hooks/internal/createWaitUntilable.d.ts +5 -0
- package/lib/hooks/internal/createWaitUntilable.d.ts.map +1 -0
- package/lib/hooks/internal/createWaitUntilable.js +50 -0
- package/lib/hooks/internal/createWaitUntilable.spec.d.ts +2 -0
- package/lib/hooks/internal/createWaitUntilable.spec.d.ts.map +1 -0
- package/lib/hooks/internal/private/createOnEventShim.d.ts +5 -0
- package/lib/hooks/internal/private/createOnEventShim.d.ts.map +1 -0
- package/lib/hooks/internal/private/createOnEventShim.js +25 -0
- package/lib/hooks/internal/private/createOnEventShim.spec.d.ts +2 -0
- package/lib/hooks/internal/private/createOnEventShim.spec.d.ts.map +1 -0
- package/lib/hooks/internal/useChanged.d.ts +9 -0
- package/lib/hooks/internal/useChanged.d.ts.map +1 -0
- package/lib/hooks/internal/useChanged.js +21 -0
- package/lib/hooks/internal/useDispatchScrollPosition.js +12 -0
- package/lib/hooks/internal/useDispatchTranscriptFocusByActivityKey.d.ts +2 -0
- package/lib/hooks/internal/useDispatchTranscriptFocusByActivityKey.d.ts.map +1 -0
- package/lib/hooks/internal/useDispatchTranscriptFocusByActivityKey.js +12 -0
- package/lib/hooks/internal/useEnterKeyHint.js +18 -0
- package/lib/hooks/internal/useFocusVisible.d.ts +3 -0
- package/lib/hooks/internal/useFocusVisible.d.ts.map +1 -0
- package/lib/hooks/internal/useFocusVisible.js +37 -0
- package/lib/hooks/internal/useFocusWithin.d.ts +3 -0
- package/lib/hooks/internal/useFocusWithin.d.ts.map +1 -0
- package/lib/hooks/internal/useFocusWithin.js +38 -0
- package/lib/hooks/internal/useForceRender.js +24 -0
- package/lib/hooks/internal/useForceRenderAtInterval.d.ts +3 -0
- package/lib/hooks/internal/useForceRenderAtInterval.d.ts.map +1 -0
- package/lib/hooks/internal/useForceRenderAtInterval.js +57 -0
- package/lib/hooks/internal/useInternalMarkdownIt.js +14 -0
- package/lib/hooks/internal/useInternalRenderMarkdownInline.js +16 -0
- package/lib/hooks/internal/useLocalizeAccessKey.d.ts +2 -0
- package/lib/hooks/internal/useLocalizeAccessKey.d.ts.map +1 -0
- package/lib/hooks/internal/useLocalizeAccessKey.js +38 -0
- package/lib/hooks/internal/useMemoWithPrevious.d.ts +3 -0
- package/lib/hooks/internal/useMemoWithPrevious.d.ts.map +1 -0
- package/lib/hooks/internal/useMemoWithPrevious.js +20 -0
- package/lib/hooks/internal/useMemoized.d.ts +11 -0
- package/lib/hooks/internal/useMemoized.d.ts.map +1 -0
- package/lib/hooks/internal/useMemoized.js +82 -0
- package/lib/hooks/internal/useMemoized.spec.jsx +159 -0
- package/lib/hooks/internal/useNavigatorPlatform.js +31 -0
- package/lib/hooks/internal/useNonce.js +14 -0
- package/lib/hooks/internal/useObserveFocusVisible.d.ts +3 -0
- package/lib/hooks/internal/useObserveFocusVisible.d.ts.map +1 -0
- package/lib/hooks/internal/useObserveFocusVisible.js +201 -0
- package/lib/hooks/internal/usePrevious.d.ts +2 -0
- package/lib/hooks/internal/usePrevious.d.ts.map +1 -0
- package/lib/hooks/internal/usePrevious.js +17 -0
- package/lib/hooks/internal/useRegisterFocusTranscript.js +27 -0
- package/lib/hooks/internal/useRegisterScrollTo.js +27 -0
- package/lib/hooks/internal/useRegisterScrollToEnd.js +25 -0
- package/lib/hooks/internal/useReplaceEmoticon.js +58 -0
- package/lib/hooks/internal/useResumeAudioContext.d.ts +2 -0
- package/lib/hooks/internal/useResumeAudioContext.d.ts.map +1 -0
- package/lib/hooks/internal/useResumeAudioContext.js +23 -0
- package/lib/hooks/internal/useSendBoxFocusRef.js +12 -0
- package/lib/hooks/internal/useSettableDictateAbortable.js +15 -0
- package/lib/hooks/internal/useStateRef.d.ts +3 -0
- package/lib/hooks/internal/useStateRef.d.ts.map +1 -0
- package/lib/hooks/internal/useStateRef.js +30 -0
- package/lib/hooks/internal/useStyleToEmotionObject.js +12 -0
- package/lib/hooks/internal/useSuggestedActionsAccessKey.js +14 -0
- package/lib/hooks/internal/useTimer.d.ts +5 -0
- package/lib/hooks/internal/useTimer.d.ts.map +1 -0
- package/lib/hooks/internal/useTimer.js +46 -0
- package/lib/hooks/internal/useTranscriptActivityElementsRef.js +12 -0
- package/lib/hooks/internal/useTranscriptFocusRef.js +12 -0
- package/lib/hooks/internal/useUniqueId.d.ts +2 -0
- package/lib/hooks/internal/useUniqueId.d.ts.map +1 -0
- package/lib/hooks/internal/useUniqueId.js +19 -0
- package/lib/hooks/internal/useValueRef.d.ts +3 -0
- package/lib/hooks/internal/useValueRef.d.ts.map +1 -0
- package/lib/hooks/internal/useValueRef.js +24 -0
- package/lib/hooks/internal/useWebChatUIContext.js +17 -0
- package/lib/hooks/sendBoxFocus.d.ts +7 -0
- package/lib/hooks/sendBoxFocus.d.ts.map +1 -0
- package/lib/hooks/sendBoxFocus.js +13 -0
- package/lib/hooks/transcriptScrollRelative.d.ts +7 -0
- package/lib/hooks/transcriptScrollRelative.d.ts.map +1 -0
- package/lib/hooks/transcriptScrollRelative.js +13 -0
- package/lib/hooks/useDictateAbortable.d.ts +2 -0
- package/lib/hooks/useDictateAbortable.d.ts.map +1 -0
- package/lib/hooks/useDictateAbortable.js +22 -0
- package/lib/hooks/useFocus.d.ts +2 -0
- package/lib/hooks/useFocus.d.ts.map +1 -0
- package/lib/hooks/useFocus.js +65 -0
- package/lib/hooks/useMakeThumbnail.d.ts +2 -0
- package/lib/hooks/useMakeThumbnail.d.ts.map +1 -0
- package/lib/hooks/useMakeThumbnail.js +74 -0
- package/lib/hooks/useObserveScrollPosition.d.ts +3 -0
- package/lib/hooks/useObserveScrollPosition.d.ts.map +1 -0
- package/lib/hooks/useObserveScrollPosition.js +31 -0
- package/lib/hooks/useObserveTranscriptFocus.d.ts +5 -0
- package/lib/hooks/useObserveTranscriptFocus.d.ts.map +1 -0
- package/lib/hooks/useObserveTranscriptFocus.js +31 -0
- package/lib/hooks/useRenderMarkdownAsHTML.d.ts +5 -0
- package/lib/hooks/useRenderMarkdownAsHTML.d.ts.map +1 -0
- package/lib/hooks/useRenderMarkdownAsHTML.js +62 -0
- package/lib/hooks/useScrollDown.d.ts +4 -0
- package/lib/hooks/useScrollDown.d.ts.map +1 -0
- package/lib/hooks/useScrollDown.js +20 -0
- package/lib/hooks/useScrollTo.d.ts +5 -0
- package/lib/hooks/useScrollTo.d.ts.map +1 -0
- package/lib/hooks/useScrollTo.js +22 -0
- package/lib/hooks/useScrollToEnd.d.ts +2 -0
- package/lib/hooks/useScrollToEnd.d.ts.map +1 -0
- package/lib/hooks/useScrollToEnd.js +21 -0
- package/lib/hooks/useScrollUp.d.ts +4 -0
- package/lib/hooks/useScrollUp.d.ts.map +1 -0
- package/lib/hooks/useScrollUp.js +20 -0
- package/lib/hooks/useSendFiles.d.ts +5 -0
- package/lib/hooks/useSendFiles.d.ts.map +1 -0
- package/lib/hooks/useSendFiles.js +63 -0
- package/lib/hooks/useSendMessage.d.ts +8 -0
- package/lib/hooks/useSendMessage.d.ts.map +1 -0
- package/lib/hooks/useSendMessage.js +102 -0
- package/lib/hooks/useStyleSet.d.ts +3 -0
- package/lib/hooks/useStyleSet.d.ts.map +1 -0
- package/lib/hooks/useStyleSet.js +13 -0
- package/lib/hooks/useWebSpeechPonyfill.d.ts +3 -0
- package/lib/hooks/useWebSpeechPonyfill.d.ts.map +1 -0
- package/lib/hooks/useWebSpeechPonyfill.js +12 -0
- package/lib/index.d.ts +330 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +164 -0
- package/lib/internal.d.ts +4 -0
- package/lib/internal.d.ts.map +1 -0
- package/lib/internal.js +21 -0
- package/lib/providers/ActivityTree/ActivityTreeComposer.d.ts +7 -0
- package/lib/providers/ActivityTree/ActivityTreeComposer.d.ts.map +1 -0
- package/lib/providers/ActivityTree/ActivityTreeComposer.js +90 -0
- package/lib/providers/ActivityTree/private/Context.d.ts +9 -0
- package/lib/providers/ActivityTree/private/Context.d.ts.map +1 -0
- package/lib/providers/ActivityTree/private/Context.js +10 -0
- package/lib/providers/ActivityTree/private/types.d.ts +10 -0
- package/lib/providers/ActivityTree/private/types.d.ts.map +1 -0
- package/lib/providers/ActivityTree/private/types.js +2 -0
- package/lib/providers/ActivityTree/private/useActivitiesWithRenderer.d.ts +4 -0
- package/lib/providers/ActivityTree/private/useActivitiesWithRenderer.d.ts.map +1 -0
- package/lib/providers/ActivityTree/private/useActivitiesWithRenderer.js +36 -0
- package/lib/providers/ActivityTree/private/useActivityTreeWithRenderer.d.ts +5 -0
- package/lib/providers/ActivityTree/private/useActivityTreeWithRenderer.d.ts.map +1 -0
- package/lib/providers/ActivityTree/private/useActivityTreeWithRenderer.js +147 -0
- package/lib/providers/ActivityTree/private/useContext.d.ts +3 -0
- package/lib/providers/ActivityTree/private/useContext.d.ts.map +1 -0
- package/lib/providers/ActivityTree/private/useContext.js +18 -0
- package/lib/providers/ActivityTree/useActivityTreeWithRenderer.d.ts +8 -0
- package/lib/providers/ActivityTree/useActivityTreeWithRenderer.d.ts.map +1 -0
- package/lib/providers/ActivityTree/useActivityTreeWithRenderer.js +14 -0
- package/lib/providers/LiveRegionTwin/LiveRegionTwinComposer.d.ts +37 -0
- package/lib/providers/LiveRegionTwin/LiveRegionTwinComposer.d.ts.map +1 -0
- package/lib/providers/LiveRegionTwin/LiveRegionTwinComposer.js +145 -0
- package/lib/providers/LiveRegionTwin/private/Context.d.ts +10 -0
- package/lib/providers/LiveRegionTwin/private/Context.d.ts.map +1 -0
- package/lib/providers/LiveRegionTwin/private/Context.js +11 -0
- package/lib/providers/LiveRegionTwin/private/LiveRegionTwinContainer.d.ts +12 -0
- package/lib/providers/LiveRegionTwin/private/LiveRegionTwinContainer.d.ts.map +1 -0
- package/lib/providers/LiveRegionTwin/private/LiveRegionTwinContainer.js +77 -0
- package/lib/providers/LiveRegionTwin/private/types.d.ts +8 -0
- package/lib/providers/LiveRegionTwin/private/types.d.ts.map +1 -0
- package/lib/providers/LiveRegionTwin/private/types.js +2 -0
- package/lib/providers/LiveRegionTwin/private/useContext.d.ts +3 -0
- package/lib/providers/LiveRegionTwin/private/useContext.d.ts.map +1 -0
- package/lib/providers/LiveRegionTwin/private/useContext.js +18 -0
- package/lib/providers/LiveRegionTwin/private/useMarkAllAsRenderedEffect.d.ts +2 -0
- package/lib/providers/LiveRegionTwin/private/useMarkAllAsRenderedEffect.d.ts.map +1 -0
- package/lib/providers/LiveRegionTwin/private/useMarkAllAsRenderedEffect.js +20 -0
- package/lib/providers/LiveRegionTwin/private/useStaticElementEntries.d.ts +3 -0
- package/lib/providers/LiveRegionTwin/private/useStaticElementEntries.d.ts.map +1 -0
- package/lib/providers/LiveRegionTwin/private/useStaticElementEntries.js +12 -0
- package/lib/providers/LiveRegionTwin/useQueueStaticElement.d.ts +8 -0
- package/lib/providers/LiveRegionTwin/useQueueStaticElement.d.ts.map +1 -0
- package/lib/providers/LiveRegionTwin/useQueueStaticElement.js +17 -0
- package/lib/providers/ModalDialog/ModalDialogComposer.d.ts +7 -0
- package/lib/providers/ModalDialog/ModalDialogComposer.d.ts.map +1 -0
- package/lib/providers/ModalDialog/ModalDialogComposer.js +51 -0
- package/lib/providers/ModalDialog/private/Context.d.ts +13 -0
- package/lib/providers/ModalDialog/private/Context.d.ts.map +1 -0
- package/lib/providers/ModalDialog/private/Context.js +24 -0
- package/lib/providers/ModalDialog/private/Popover.d.ts +10 -0
- package/lib/providers/ModalDialog/private/Popover.d.ts.map +1 -0
- package/lib/providers/ModalDialog/private/Popover.js +79 -0
- package/lib/providers/ModalDialog/private/useContext.d.ts +4 -0
- package/lib/providers/ModalDialog/private/useContext.d.ts.map +1 -0
- package/lib/providers/ModalDialog/private/useContext.js +13 -0
- package/lib/providers/ModalDialog/useClose.d.ts +3 -0
- package/lib/providers/ModalDialog/useClose.d.ts.map +1 -0
- package/lib/providers/ModalDialog/useClose.js +12 -0
- package/lib/providers/ModalDialog/useShowModal.d.ts +3 -0
- package/lib/providers/ModalDialog/useShowModal.d.ts.map +1 -0
- package/lib/providers/ModalDialog/useShowModal.js +12 -0
- package/lib/providers/RovingTabIndex/RovingTabIndexComposer.d.ts +8 -0
- package/lib/providers/RovingTabIndex/RovingTabIndexComposer.d.ts.map +1 -0
- package/lib/providers/RovingTabIndex/RovingTabIndexComposer.js +163 -0
- package/lib/providers/RovingTabIndex/private/Context.d.ts +8 -0
- package/lib/providers/RovingTabIndex/private/Context.d.ts.map +1 -0
- package/lib/providers/RovingTabIndex/private/Context.js +17 -0
- package/lib/providers/RovingTabIndex/private/useContext.d.ts +2 -0
- package/lib/providers/RovingTabIndex/private/useContext.d.ts.map +1 -0
- package/lib/providers/RovingTabIndex/private/useContext.js +18 -0
- package/lib/providers/RovingTabIndex/useItemRef.d.ts +3 -0
- package/lib/providers/RovingTabIndex/useItemRef.d.ts.map +1 -0
- package/lib/providers/RovingTabIndex/useItemRef.js +19 -0
- package/lib/providers/Theme/ThemeProvider.d.ts +7 -0
- package/lib/providers/Theme/ThemeProvider.d.ts.map +1 -0
- package/lib/providers/Theme/ThemeProvider.js +103 -0
- package/lib/providers/Theme/private/Context.d.ts +19 -0
- package/lib/providers/Theme/private/Context.d.ts.map +1 -0
- package/lib/providers/Theme/private/Context.js +26 -0
- package/lib/providers/Theme/useTheme.d.ts +2 -0
- package/lib/providers/Theme/useTheme.d.ts.map +1 -0
- package/lib/providers/Theme/useTheme.js +13 -0
- package/lib/providers/TranscriptFocus/TranscriptFocusComposer.d.ts +7 -0
- package/lib/providers/TranscriptFocus/TranscriptFocusComposer.d.ts.map +1 -0
- package/lib/providers/TranscriptFocus/TranscriptFocusComposer.js +153 -0
- package/lib/providers/TranscriptFocus/private/Context.d.ts +12 -0
- package/lib/providers/TranscriptFocus/private/Context.d.ts.map +1 -0
- package/lib/providers/TranscriptFocus/private/Context.js +11 -0
- package/lib/providers/TranscriptFocus/private/useContext.d.ts +2 -0
- package/lib/providers/TranscriptFocus/private/useContext.d.ts.map +1 -0
- package/lib/providers/TranscriptFocus/private/useContext.js +18 -0
- package/lib/providers/TranscriptFocus/useActiveDescendantId.d.ts +2 -0
- package/lib/providers/TranscriptFocus/useActiveDescendantId.d.ts.map +1 -0
- package/lib/providers/TranscriptFocus/useActiveDescendantId.js +12 -0
- package/lib/providers/TranscriptFocus/useFocusByActivityKey.d.ts +8 -0
- package/lib/providers/TranscriptFocus/useFocusByActivityKey.d.ts.map +1 -0
- package/lib/providers/TranscriptFocus/useFocusByActivityKey.js +18 -0
- package/lib/providers/TranscriptFocus/useFocusRelativeActivity.d.ts +2 -0
- package/lib/providers/TranscriptFocus/useFocusRelativeActivity.d.ts.map +1 -0
- package/lib/providers/TranscriptFocus/useFocusRelativeActivity.js +12 -0
- package/lib/providers/TranscriptFocus/useFocusedActivityKey.d.ts +2 -0
- package/lib/providers/TranscriptFocus/useFocusedActivityKey.d.ts.map +1 -0
- package/lib/providers/TranscriptFocus/useFocusedActivityKey.js +12 -0
- package/lib/providers/TranscriptFocus/useFocusedExplicitly.d.ts +2 -0
- package/lib/providers/TranscriptFocus/useFocusedExplicitly.d.ts.map +1 -0
- package/lib/providers/TranscriptFocus/useFocusedExplicitly.js +12 -0
- package/lib/providers/TranscriptFocus/useGetDescendantIdByActivityKey.d.ts +2 -0
- package/lib/providers/TranscriptFocus/useGetDescendantIdByActivityKey.d.ts.map +1 -0
- package/lib/providers/TranscriptFocus/useGetDescendantIdByActivityKey.js +12 -0
- package/lib/providers/internal/SendBox/SendBoxComposer.d.ts +4 -0
- package/lib/providers/internal/SendBox/SendBoxComposer.d.ts.map +1 -0
- package/lib/providers/internal/SendBox/SendBoxComposer.js +161 -0
- package/lib/providers/internal/SendBox/private/Context.d.ts +4 -0
- package/lib/providers/internal/SendBox/private/Context.d.ts.map +1 -0
- package/lib/providers/internal/SendBox/private/Context.js +11 -0
- package/lib/providers/internal/SendBox/private/types.d.ts +8 -0
- package/lib/providers/internal/SendBox/private/types.d.ts.map +1 -0
- package/lib/providers/internal/SendBox/private/types.js +2 -0
- package/lib/providers/internal/SendBox/private/useContext.d.ts +3 -0
- package/lib/providers/internal/SendBox/private/useContext.d.ts.map +1 -0
- package/lib/providers/internal/SendBox/private/useContext.js +17 -0
- package/lib/providers/internal/SendBox/useErrorMessageId.d.ts +12 -0
- package/lib/providers/internal/SendBox/useErrorMessageId.d.ts.map +1 -0
- package/lib/providers/internal/SendBox/useErrorMessageId.js +22 -0
- package/lib/providers/internal/SendBox/useSubmit.d.ts +14 -0
- package/lib/providers/internal/SendBox/useSubmit.d.ts.map +1 -0
- package/lib/providers/internal/SendBox/useSubmit.js +20 -0
- package/lib/tsconfig.json +18 -0
- package/lib/types/ContextOf.d.ts +4 -0
- package/lib/types/ContextOf.d.ts.map +1 -0
- package/lib/types/ContextOf.js +2 -0
- package/lib/types/PropsOf.d.ts +3 -0
- package/lib/types/PropsOf.d.ts.map +1 -0
- package/lib/types/PropsOf.js +2 -0
- package/lib/types/ScrollPosition.d.ts +6 -0
- package/lib/types/ScrollPosition.d.ts.map +1 -0
- package/lib/types/ScrollPosition.js +2 -0
- package/lib/types/internal/FocusTranscriptInit.d.ts +4 -0
- package/lib/types/internal/FocusTranscriptInit.d.ts.map +1 -0
- package/lib/types/internal/FocusTranscriptInit.js +2 -0
- package/lib/types/internal/SendStatus.d.ts +7 -0
- package/lib/types/internal/SendStatus.d.ts.map +1 -0
- package/lib/types/internal/SendStatus.js +19 -0
- package/lib/types/internal/TypeOfArray.d.ts +2 -0
- package/lib/types/internal/TypeOfArray.d.ts.map +1 -0
- package/lib/types/internal/TypeOfArray.js +2 -0
- package/lib/withEmoji/private/UndoEntry.d.ts +9 -0
- package/lib/withEmoji/private/UndoEntry.d.ts.map +1 -0
- package/lib/withEmoji/private/UndoEntry.js +69 -0
- package/lib/withEmoji/private/useUndoStack.d.ts +6 -0
- package/lib/withEmoji/private/useUndoStack.d.ts.map +1 -0
- package/lib/withEmoji/private/useUndoStack.js +64 -0
- package/lib/withEmoji/withEmoji.d.ts +15 -0
- package/lib/withEmoji/withEmoji.d.ts.map +1 -0
- package/lib/withEmoji/withEmoji.js +128 -0
- package/package.json +81 -146
- package/src/Activity/Avatar.tsx +23 -20
- package/src/Activity/Bubble.tsx +70 -45
- package/src/Activity/CarouselFilmStrip.js +112 -31
- package/src/Activity/CarouselFilmStripAttachment.js +15 -14
- package/src/Activity/CarouselLayout.js +17 -16
- package/src/Activity/SayAlt.js +26 -0
- package/src/Activity/Speak.tsx +42 -84
- package/src/Activity/StackedLayout.tsx +198 -265
- package/src/ActivityStatus/AbsoluteTime.js +32 -0
- package/src/ActivityStatus/OthersActivityStatus.tsx +53 -52
- package/src/ActivityStatus/SelfActivityStatus.tsx +8 -11
- package/src/ActivityStatus/SendStatus/SendStatus.tsx +23 -23
- package/src/ActivityStatus/Slotted.tsx +26 -0
- package/src/ActivityStatus/Timestamp.tsx +12 -17
- package/src/ActivityStatus/private/Feedback/Feedback.tsx +60 -0
- package/src/ActivityStatus/private/Feedback/private/ThumbButton.Image.tsx +30 -0
- package/src/ActivityStatus/private/Feedback/private/ThumbButton.tsx +54 -0
- package/src/ActivityStatus/private/Feedback/private/VoteButton.tsx +36 -0
- package/src/ActivityStatus/private/Feedback/private/icons/ThumbDislike16Filled.tsx +16 -0
- package/src/ActivityStatus/private/Feedback/private/icons/ThumbDislike16Regular.tsx +16 -0
- package/src/ActivityStatus/private/Feedback/private/icons/ThumbLike16Filled.tsx +16 -0
- package/src/ActivityStatus/private/Feedback/private/icons/ThumbLike16Regular.tsx +16 -0
- package/src/ActivityStatus/private/Originator.tsx +10 -33
- package/src/ActivityStatus/private/RelativeTime.js +31 -0
- package/src/Assets/TypingAnimation.js +1 -3
- package/src/Attachment/Assets/DownloadIcon.js +29 -0
- package/src/Attachment/AudioContent.tsx +29 -20
- package/src/Attachment/FileContent.tsx +46 -46
- package/src/Attachment/HTMLVideoContent.tsx +27 -21
- package/src/Attachment/ImageAttachment.js +37 -0
- package/src/Attachment/ImageContent.tsx +27 -13
- package/src/Attachment/Text/TextAttachment.tsx +14 -38
- package/src/Attachment/Text/TextContent.tsx +16 -40
- package/src/Attachment/Text/private/CitationModalContent.tsx +21 -28
- package/src/Attachment/Text/private/MarkdownTextContent.tsx +126 -223
- package/src/Attachment/Text/private/MessageSensitivityLabel.tsx +34 -47
- package/src/Attachment/Text/private/PlainTextContent.tsx +14 -24
- package/src/Attachment/Text/private/ShieldIcon.tsx +34 -52
- package/src/Attachment/VideoAttachment.js +1 -1
- package/src/Attachment/VideoContent.tsx +27 -21
- package/src/Attachment/VimeoContent.tsx +25 -21
- package/src/Attachment/YouTubeContent.tsx +25 -21
- package/src/Avatar/ImageAvatar.js +49 -0
- package/src/Avatar/InitialsAvatar.js +50 -0
- package/src/BasicConnectivityStatus.js +7 -7
- package/src/BasicToast.js +1 -1
- package/src/BasicToaster.js +8 -47
- package/src/BasicTranscript.tsx +587 -402
- package/src/BasicWebChat.tsx +34 -28
- package/src/Composer.tsx +128 -226
- package/src/ConnectivityStatus/Connecting.js +72 -0
- package/src/Dictation.js +24 -16
- package/src/ErrorBox.tsx +26 -54
- package/src/LinkDefinition/LinkDefinitionItem.tsx +21 -51
- package/src/LinkDefinition/LinkDefinitions.tsx +19 -84
- package/src/LinkDefinition/index.ts +4 -6
- package/src/LinkDefinition/private/Badge.tsx +1 -12
- package/src/LinkDefinition/private/Chevron.tsx +21 -0
- package/src/LinkDefinition/private/ItemBody.tsx +15 -24
- package/src/LinkDefinition/private/OpenInNewWindowIcon.tsx +13 -20
- package/src/LinkDefinition/private/extractHostnameWithSubdomain.spec.ts +0 -2
- package/src/LinkDefinition/private/extractHostnameWithSubdomain.ts +1 -1
- package/src/LiveRegion/LiveRegionActivity.tsx +18 -18
- package/src/LiveRegion/private/LiveRegionSuggestedActions.tsx +25 -34
- package/src/Middleware/Activity/createCoreMiddleware.tsx +102 -0
- package/src/Middleware/ActivityStatus/createTimestampMiddleware.tsx +2 -2
- package/src/Middleware/Avatar/createCoreMiddleware.tsx +76 -0
- package/src/Middleware/ScrollToEndButton/ScrollToEndButton.js +45 -0
- package/src/ReactWebChat.tsx +8 -3
- package/src/ScreenReaderText.tsx +34 -27
- package/src/SendBox/Assets/MicrophoneIcon.js +12 -0
- package/src/SendBox/Assets/SendIcon.js +36 -0
- package/src/SendBox/AutoResizeTextArea.tsx +64 -28
- package/src/SendBox/BasicSendBox.tsx +29 -30
- package/src/SendBox/DictationInterims.tsx +21 -32
- package/src/SendBox/IconButton.tsx +30 -32
- package/src/SendBox/MicrophoneButton.tsx +23 -29
- package/src/SendBox/SendButton.tsx +21 -26
- package/src/SendBox/SuggestedAction.tsx +72 -60
- package/src/SendBox/SuggestedActions.tsx +9 -6
- package/src/SendBox/TextBox.tsx +39 -57
- package/src/SendBoxToolbar/Assets/AttachmentIcon.tsx +23 -6
- package/src/SendBoxToolbar/BasicSendBoxToolbar.tsx +2 -4
- package/src/SendBoxToolbar/UploadButton.tsx +26 -47
- package/src/Styles/CustomPropertyNames.ts +6 -66
- package/src/Styles/StyleSet/AudioAttachment.ts +3 -3
- package/src/Styles/StyleSet/Avatar.ts +3 -4
- package/src/Styles/StyleSet/CSSCustomProperties.ts +46 -0
- package/src/Styles/StyleSet/CarouselFilmStrip.ts +7 -9
- package/src/Styles/StyleSet/CarouselFilmStripAttachment.ts +4 -3
- package/src/Styles/StyleSet/ErrorBox.ts +2 -2
- package/src/Styles/StyleSet/FileContent.ts +1 -2
- package/src/Styles/StyleSet/ImageAvatar.ts +5 -8
- package/src/Styles/StyleSet/InitialsAvatar.ts +5 -4
- package/src/Styles/StyleSet/KeyboardHelp.ts +204 -0
- package/src/Styles/StyleSet/LinkDefinitions.ts +11 -17
- package/src/Styles/StyleSet/MicrophoneButton.ts +1 -1
- package/src/Styles/StyleSet/ModalDialog.ts +8 -14
- package/src/Styles/StyleSet/RenderMarkdown.ts +0 -35
- package/src/Styles/StyleSet/ScrollToEndButton.ts +11 -0
- package/src/Styles/StyleSet/SendBox.ts +7 -54
- package/src/Styles/StyleSet/SendBoxButton.ts +5 -7
- package/src/Styles/StyleSet/SendBoxTextBox.ts +1 -6
- package/src/Styles/StyleSet/SendStatus.ts +0 -12
- package/src/Styles/StyleSet/SingleAttachmentActivity.ts +18 -0
- package/src/Styles/StyleSet/SlottedActivityStatus.ts +16 -0
- package/src/Styles/StyleSet/SpinnerAnimation.ts +1 -3
- package/src/Styles/StyleSet/StackedLayout.ts +9 -18
- package/src/Styles/StyleSet/SuggestedAction.ts +13 -1
- package/src/Styles/StyleSet/TextContent.ts +2 -17
- package/src/Styles/StyleSet/ThumbButton.ts +24 -77
- package/src/Styles/StyleSet/TypingAnimation.ts +1 -3
- package/src/Styles/createStyleSet.ts +14 -14
- package/src/Transcript/ActivityRow.tsx +39 -100
- package/src/Transcript/FocusTrap.tsx +38 -96
- package/src/Transcript/KeyboardHelp.tsx +319 -0
- package/src/Transcript/LiveRegion/SendFailed.tsx +10 -8
- package/src/Transcript/LiveRegionTranscript.tsx +62 -11
- package/src/TranscriptActivity.tsx +64 -0
- package/src/Utils/AccessKeySink/Surface.js +56 -0
- package/src/Utils/AccessibleButton.tsx +49 -64
- package/src/Utils/AccessibleInputText.tsx +106 -97
- package/src/Utils/AccessibleTextArea.tsx +41 -10
- package/src/Utils/CroppedImage.js +45 -0
- package/src/Utils/FocusRedirector.tsx +26 -31
- package/src/Utils/InlineMarkdown.js +1 -6
- package/src/Utils/JSONLinkedData/__snapshots__/dereferenceBlankNodes.spec.ts.snap +17 -17
- package/src/Utils/JSONLinkedData/dereferenceBlankNodes.spec.ts +0 -2
- package/src/Utils/JSONLinkedData/dereferenceBlankNodes.ts +1 -1
- package/src/Utils/JSONLinkedData/getSafeOwnPropertyNames.ts +2 -2
- package/src/Utils/JSONLinkedData/isUnconnectedBlankNode.spec.ts +0 -2
- package/src/Utils/LocalizedString.tsx +3 -3
- package/src/Utils/addTargetBlankToHyperlinksMarkdown.spec.js +4 -4
- package/src/Utils/downscaleImageToDataURL/downscaleImageToDataURLUsingBrowser.ts +0 -2
- package/src/Utils/downscaleImageToDataURL/downscaleImageToDataURLUsingWorker.ts +4 -4
- package/src/Utils/firstTabbableDescendant.js +1 -0
- package/src/Utils/parseDocumentFromString.ts +5 -0
- package/src/Utils/readDataURIToBlob.js +31 -0
- package/src/Utils/serializeDocumentIntoString.ts +10 -0
- package/src/Utils/singleToArray.ts +3 -0
- package/src/Utils/supportPseudoClass.ts +1 -1
- package/src/Utils/tabbableElements.ts +1 -7
- package/src/Utils/textFormatToContentType.js +12 -0
- package/src/Utils/updateMarkdownAttrs.spec.js +14 -14
- package/src/Utils/walkMarkdownTokens.spec.js +1 -1
- package/src/hooks/index.ts +0 -4
- package/src/hooks/internal/UITracker.js +1 -1
- package/src/hooks/internal/WebChatUIContext.ts +1 -19
- package/src/hooks/internal/createWaitUntilable.spec.ts +2 -4
- package/src/hooks/internal/createWaitUntilable.ts +1 -1
- package/src/hooks/internal/private/createOnEventShim.spec.ts +0 -2
- package/src/hooks/internal/useForceRenderAtInterval.ts +6 -6
- package/src/hooks/internal/useMemoWithPrevious.ts +16 -0
- package/src/hooks/internal/useMemoized.spec.jsx +3 -3
- package/src/hooks/internal/useMemoized.ts +1 -1
- package/src/hooks/internal/useNonce.js +7 -0
- package/src/hooks/internal/useObserveFocusVisible.ts +1 -0
- package/src/hooks/internal/useStateRef.ts +1 -1
- package/src/hooks/internal/useStyleToEmotionObject.js +5 -0
- package/src/hooks/sendBoxFocus.ts +2 -6
- package/src/hooks/transcriptScrollRelative.ts +3 -6
- package/src/hooks/useObserveScrollPosition.ts +0 -3
- package/src/hooks/useObserveTranscriptFocus.ts +3 -9
- package/src/hooks/useRenderMarkdownAsHTML.ts +29 -32
- package/src/hooks/useSendFiles.ts +1 -4
- package/src/index.ts +125 -30
- package/src/internal.ts +4 -0
- package/src/providers/ActivityTree/ActivityTreeComposer.tsx +90 -0
- package/src/providers/ActivityTree/private/Context.ts +12 -0
- package/src/providers/ActivityTree/private/types.ts +12 -0
- package/src/providers/ActivityTree/private/useActivitiesWithRenderer.ts +40 -0
- package/src/providers/ActivityTree/private/useActivityTreeWithRenderer.ts +140 -0
- package/src/providers/ActivityTree/private/useContext.ts +15 -0
- package/src/providers/ActivityTree/useActivityTreeWithRenderer.ts +16 -0
- package/src/providers/LiveRegionTwin/LiveRegionTwinComposer.tsx +172 -0
- package/src/providers/LiveRegionTwin/private/Context.ts +15 -0
- package/src/providers/LiveRegionTwin/private/LiveRegionTwinContainer.tsx +39 -27
- package/src/providers/LiveRegionTwin/private/useContext.ts +8 -2
- package/src/providers/LiveRegionTwin/useQueueStaticElement.ts +2 -2
- package/src/providers/ModalDialog/private/Popover.tsx +15 -5
- package/src/providers/RovingTabIndex/RovingTabIndexComposer.tsx +23 -20
- package/src/providers/Theme/ThemeProvider.tsx +40 -119
- package/src/providers/Theme/private/Context.ts +18 -18
- package/src/providers/TranscriptFocus/TranscriptFocusComposer.tsx +68 -325
- package/src/providers/TranscriptFocus/private/Context.ts +0 -4
- package/src/providers/TranscriptFocus/useActiveDescendantId.ts +1 -4
- package/src/providers/TranscriptFocus/useFocusRelativeActivity.ts +1 -1
- package/src/providers/internal/SendBox/SendBoxComposer.tsx +38 -30
- package/src/tsconfig.json +14 -8
- package/LICENSE +0 -21
- package/boot/deprecated/component.js +0 -7
- package/boot/deprecated/component.mjs +0 -5
- package/boot/deprecated/decorator.js +0 -7
- package/boot/deprecated/decorator.mjs +0 -5
- package/boot/deprecated/hook.js +0 -7
- package/boot/deprecated/hook.mjs +0 -5
- package/boot/deprecated/internal.js +0 -7
- package/boot/deprecated/internal.mjs +0 -5
- package/component.js +0 -3
- package/decorator.js +0 -3
- package/dist/TextBox-BEU2rUID.d.mts +0 -46
- package/dist/TextBox-BEU2rUID.d.ts +0 -46
- package/dist/_dtsroll-chunks/BlpMO3PT-empty-object.d.ts +0 -34
- package/dist/_dtsroll-chunks/Cha1SOtx-botframework-webchat-styles.react.d.ts +0 -38
- package/dist/botframework-webchat-component.component.css +0 -2
- package/dist/botframework-webchat-component.component.css.map +0 -1
- package/dist/botframework-webchat-component.component.d.mts +0 -9
- package/dist/botframework-webchat-component.component.d.ts +0 -9
- package/dist/botframework-webchat-component.component.js +0 -2
- package/dist/botframework-webchat-component.component.js.map +0 -1
- package/dist/botframework-webchat-component.component.mjs +0 -2
- package/dist/botframework-webchat-component.component.mjs.map +0 -1
- package/dist/botframework-webchat-component.css +0 -2
- package/dist/botframework-webchat-component.css.map +0 -1
- package/dist/botframework-webchat-component.d.ts +0 -88
- package/dist/botframework-webchat-component.decorator.css +0 -2
- package/dist/botframework-webchat-component.decorator.css.map +0 -1
- package/dist/botframework-webchat-component.decorator.d.mts +0 -28
- package/dist/botframework-webchat-component.decorator.d.ts +0 -28
- package/dist/botframework-webchat-component.decorator.js +0 -2
- package/dist/botframework-webchat-component.decorator.js.map +0 -1
- package/dist/botframework-webchat-component.decorator.mjs +0 -2
- package/dist/botframework-webchat-component.decorator.mjs.map +0 -1
- package/dist/botframework-webchat-component.hook.css +0 -2
- package/dist/botframework-webchat-component.hook.css.map +0 -1
- package/dist/botframework-webchat-component.hook.d.mts +0 -7
- package/dist/botframework-webchat-component.hook.d.ts +0 -7
- package/dist/botframework-webchat-component.hook.js +0 -2
- package/dist/botframework-webchat-component.hook.js.map +0 -1
- package/dist/botframework-webchat-component.hook.mjs +0 -2
- package/dist/botframework-webchat-component.hook.mjs.map +0 -1
- package/dist/botframework-webchat-component.internal.css +0 -2
- package/dist/botframework-webchat-component.internal.css.map +0 -1
- package/dist/botframework-webchat-component.internal.d.ts +0 -70
- package/dist/botframework-webchat-component.internal.js +0 -2
- package/dist/botframework-webchat-component.internal.js.map +0 -1
- package/dist/botframework-webchat-component.js +0 -2
- package/dist/botframework-webchat-component.js.map +0 -1
- package/dist/chunk-4RQ5J3J3.js +0 -2
- package/dist/chunk-4RQ5J3J3.js.map +0 -1
- package/dist/chunk-4WXVF7XF.mjs +0 -2
- package/dist/chunk-4WXVF7XF.mjs.map +0 -1
- package/dist/chunk-5OYC2I56.mjs +0 -2
- package/dist/chunk-5OYC2I56.mjs.map +0 -1
- package/dist/chunk-DGWIYV3B.mjs +0 -77
- package/dist/chunk-DGWIYV3B.mjs.map +0 -1
- package/dist/chunk-GGPWEZXC.js +0 -2
- package/dist/chunk-GGPWEZXC.js.map +0 -1
- package/dist/chunk-I6DJ35K3.mjs +0 -2
- package/dist/chunk-I6DJ35K3.mjs.map +0 -1
- package/dist/chunk-I6EXXZUN.js +0 -2
- package/dist/chunk-I6EXXZUN.js.map +0 -1
- package/dist/chunk-NT7YOW62.js +0 -2
- package/dist/chunk-NT7YOW62.js.map +0 -1
- package/dist/chunk-NY34QMS5.js +0 -77
- package/dist/chunk-NY34QMS5.js.map +0 -1
- package/dist/chunk-RTB757EJ.js +0 -2
- package/dist/chunk-RTB757EJ.js.map +0 -1
- package/dist/chunk-RVS2VADF.mjs +0 -2
- package/dist/chunk-RVS2VADF.mjs.map +0 -1
- package/dist/chunk-THSKGXBF.mjs +0 -2
- package/dist/chunk-THSKGXBF.mjs.map +0 -1
- package/dist/chunk-TMUNLKZW.js +0 -2
- package/dist/chunk-TMUNLKZW.js.map +0 -1
- package/dist/chunk-UKBRB4EA.mjs +0 -2
- package/dist/chunk-UKBRB4EA.mjs.map +0 -1
- package/dist/component-BtSxgJS5.d.mts +0 -539
- package/dist/component-Fyy8iCRE.d.ts +0 -539
- package/dist/hook-DDJUuUA1.d.mts +0 -2255
- package/dist/hook-D_UtTAp5.d.ts +0 -2255
- package/dist/metafile-cjs.json +0 -1
- package/hook.js +0 -3
- package/src/Activity/AttachmentRow.tsx +0 -56
- package/src/Activity/Bubble.module.css +0 -131
- package/src/Activity/CarouselFilmStrip.module.css +0 -155
- package/src/Activity/CarouselFilmStripAttachment.module.css +0 -38
- package/src/Activity/CarouselLayout.module.css +0 -30
- package/src/Activity/CodeBlockContent.module.css +0 -40
- package/src/Activity/CodeBlockContent.tsx +0 -42
- package/src/Activity/CollapsibleContent.module.css +0 -43
- package/src/Activity/CollapsibleContent.tsx +0 -68
- package/src/Activity/SayAlt.module.css +0 -4
- package/src/Activity/SayAlt.tsx +0 -25
- package/src/Activity/StackedLayout.module.css +0 -233
- package/src/Activity/StackedLayoutMain.tsx +0 -36
- package/src/Activity/StackedLayoutMessageStatus.tsx +0 -57
- package/src/Activity/StackedLayoutRoot.tsx +0 -71
- package/src/Activity/StackedLayoutStatus.tsx +0 -36
- package/src/Activity/private/MessageStatusLoader.module.css +0 -18
- package/src/Activity/private/MessageStatusLoader.tsx +0 -27
- package/src/ActivityDebug/RestrictedActivityDebugAPI.ts +0 -15
- package/src/ActivityDebug/index.ts +0 -1
- package/src/ActivityFeedback/ActivityFeedback.tsx +0 -88
- package/src/ActivityFeedback/private/FeedbackForm.module.css +0 -123
- package/src/ActivityFeedback/private/FeedbackForm.tsx +0 -83
- package/src/ActivityFeedback/private/FeedbackVoteButton.tsx +0 -88
- package/src/ActivityFeedback/private/FeedbackVoteButtonBar.tsx +0 -40
- package/src/ActivityFeedback/private/ThumbButton.Image.tsx +0 -35
- package/src/ActivityFeedback/private/ThumbButton.module.css +0 -91
- package/src/ActivityFeedback/private/ThumbButton.tsx +0 -103
- package/src/ActivityFeedback/private/canActionResubmit.ts +0 -6
- package/src/ActivityFeedback/private/getDisclaimerFromFeedbackLoop.ts +0 -10
- package/src/ActivityFeedback/private/getDisclaimerFromReviewAction.ts +0 -12
- package/src/ActivityFeedback/private/hasFeedbackLoop.ts +0 -42
- package/src/ActivityFeedback/private/isActionRequireReview.ts +0 -10
- package/src/ActivityFeedback/providers/ActivityFeedbackComposer.tsx +0 -372
- package/src/ActivityFeedback/providers/private/ActivityFeedbackContext.ts +0 -24
- package/src/ActivityFeedback/providers/private/FocusPropagation.ts +0 -10
- package/src/ActivityFeedback/providers/useActivityFeedbackHooks.ts +0 -6
- package/src/ActivityStatus/AbsoluteTime.tsx +0 -37
- package/src/ActivityStatus/ActivityStatus.module.css +0 -31
- package/src/ActivityStatus/StatusSlot.tsx +0 -17
- package/src/ActivityStatus/private/RelativeTime.tsx +0 -43
- package/src/Attachment/ImageAttachment.tsx +0 -58
- package/src/Attachment/Text/TextContent.module.css +0 -45
- package/src/Attachment/Text/private/ActivityButton.module.css +0 -45
- package/src/Attachment/Text/private/ActivityButton.tsx +0 -71
- package/src/Attachment/Text/private/ActivityCopyButton.module.css +0 -45
- package/src/Attachment/Text/private/ActivityCopyButton.tsx +0 -109
- package/src/Attachment/Text/private/ActivityViewCodeButton.tsx +0 -66
- package/src/Attachment/Text/private/CitationModal.module.css +0 -9
- package/src/Attachment/Text/private/CodeContent.tsx +0 -44
- package/src/Attachment/Text/private/Markdownable.tsx +0 -39
- package/src/Attachment/Text/private/ViewCodeDialog.module.css +0 -59
- package/src/Attachment/Text/private/isAIGeneratedActivity.ts +0 -5
- package/src/Avatar/ImageAvatar.tsx +0 -48
- package/src/Avatar/InitialsAvatar.tsx +0 -55
- package/src/BuiltInDecorator.tsx +0 -17
- package/src/ChatHistory/ChatHistoryBox.tsx +0 -27
- package/src/ChatHistory/ChatHistoryToolbar.tsx +0 -36
- package/src/ChatHistory/private/ScrollToEndButton.tsx +0 -105
- package/src/ConnectivityStatus/Connecting.tsx +0 -77
- package/src/Icon/ComponentIcon.module.css +0 -113
- package/src/Icon/ComponentIcon.tsx +0 -59
- package/src/Icon/index.ts +0 -1
- package/src/LinkDefinition/LinkDefinitions.module.css +0 -209
- package/src/Middleware/Activity/defaultActivityPolymiddleware.tsx +0 -104
- package/src/Middleware/ActivityGrouping/createDefaultActivityGroupingDecoratorMiddleware.tsx +0 -21
- package/src/Middleware/ActivityGrouping/ui/LegacyActivityBridgeComposer.tsx +0 -91
- package/src/Middleware/ActivityGrouping/ui/PartGrouping/CollapsibleGrouping.module.css +0 -76
- package/src/Middleware/ActivityGrouping/ui/PartGrouping/CollapsibleGrouping.tsx +0 -97
- package/src/Middleware/ActivityGrouping/ui/PartGrouping/CollapsibleGroupingList.tsx +0 -30
- package/src/Middleware/ActivityGrouping/ui/PartGrouping/CollapsibleGroupingTitle.tsx +0 -29
- package/src/Middleware/ActivityGrouping/ui/PartGrouping/PartGrouping.tsx +0 -52
- package/src/Middleware/ActivityGrouping/ui/PartGrouping/private/PartGroupingActivity.module.css +0 -29
- package/src/Middleware/ActivityGrouping/ui/PartGrouping/private/PartGroupingActivity.tsx +0 -258
- package/src/Middleware/ActivityGrouping/ui/PartGrouping/private/usePartGroupingLogicalGroup.ts +0 -41
- package/src/Middleware/ActivityGrouping/ui/RenderActivity.tsx +0 -37
- package/src/Middleware/ActivityGrouping/ui/RenderActivityGrouping.tsx +0 -41
- package/src/Middleware/ActivityGrouping/ui/SenderGrouping/SenderGrouping.tsx +0 -49
- package/src/Middleware/ActivityGrouping/ui/SenderGrouping/private/SenderGroupingContext.ts +0 -18
- package/src/Middleware/ActivityGrouping/ui/SenderGrouping/private/useSenderGroupingContext.ts +0 -6
- package/src/Middleware/ActivityGrouping/ui/SenderGrouping/useFirstActivity.ts +0 -6
- package/src/Middleware/ActivityGrouping/ui/SenderGrouping/useLastActivity.ts +0 -6
- package/src/Middleware/ActivityGrouping/ui/StatusGrouping/StatusGrouping.tsx +0 -49
- package/src/Middleware/ActivityGrouping/ui/StatusGrouping/private/StatusGroupingContext.ts +0 -18
- package/src/Middleware/ActivityGrouping/ui/StatusGrouping/private/useStatusGroupingContext.ts +0 -6
- package/src/Middleware/ActivityGrouping/ui/StatusGrouping/useFirstActivity.ts +0 -6
- package/src/Middleware/ActivityGrouping/ui/StatusGrouping/useLastActivity.ts +0 -6
- package/src/Middleware/Avatar/DefaultAvatar.tsx +0 -61
- package/src/Middleware/Avatar/createDefaultAvatarPolymiddleware.tsx +0 -22
- package/src/Middleware/ScrollToEndButton/ScrollToEndButton.tsx +0 -58
- package/src/SendBox/AttachmentBar/AttachmentBar.module.css +0 -32
- package/src/SendBox/AttachmentBar/AttachmentBar.tsx +0 -71
- package/src/SendBox/AttachmentBar/AttachmentBarItem.module.css +0 -137
- package/src/SendBox/AttachmentBar/AttachmentBarItem.tsx +0 -103
- package/src/SendBox/AttachmentBar/ItemDeleteButton.tsx +0 -61
- package/src/SendBox/AttachmentBar/ItemPreview.tsx +0 -52
- package/src/SendBox/AttachmentBar/Preview/FilePreview.module.css +0 -35
- package/src/SendBox/AttachmentBar/Preview/FilePreview.tsx +0 -63
- package/src/SendBox/AttachmentBar/Preview/ImagePreview.module.css +0 -5
- package/src/SendBox/AttachmentBar/Preview/ImagePreview.tsx +0 -46
- package/src/SendBox/AttachmentBar/Preview/sendBoxAttachment.ts +0 -13
- package/src/SendBox/AttachmentBar/index.ts +0 -3
- package/src/Styles/CSSCustomPropertiesContainer.tsx +0 -195
- package/src/Styles/StyleSet/ActivityButton.ts +0 -49
- package/src/Styles/StyleSet/ActivityCopyButton.ts +0 -40
- package/src/Styles/StyleSet/ChatHistoryBox.ts +0 -22
- package/src/Styles/StyleSet/CodeBlock.ts +0 -39
- package/src/Styles/StyleSet/CodeBlockCopyButton.ts +0 -71
- package/src/Styles/StyleSet/Tooltip.ts +0 -66
- package/src/Styles/StyleSet/ViewCodeDialog.ts +0 -70
- package/src/Styles/StyleSet/types/StyleSet.ts +0 -11
- package/src/TextArea/TextArea.module.css +0 -75
- package/src/TextArea/TextArea.tsx +0 -126
- package/src/TextArea/index.ts +0 -1
- package/src/Tooltip/index.ts +0 -1
- package/src/Tooltip/private/Tooltip.tsx +0 -26
- package/src/Transcript/ActivityTree.tsx +0 -35
- package/src/Transcript/TranscriptFocus/TranscriptActivityList.tsx +0 -22
- package/src/Transcript/TranscriptFocus/TranscriptFocus.module.css +0 -117
- package/src/Transcript/TranscriptFocus/TranscriptFocusArea.tsx +0 -27
- package/src/Transcript/TranscriptFocus/TranscriptFocusContent.tsx +0 -34
- package/src/Transcript/TranscriptFocus/TranscriptFocusContentActiveDescendant.tsx +0 -26
- package/src/Transcript/TranscriptFocus/TranscriptFocusContentBody.tsx +0 -20
- package/src/Transcript/TranscriptFocus/TranscriptFocusContentOverlay.tsx +0 -20
- package/src/Transcript/TranscriptFocus/TranscriptFocusIndicator.tsx +0 -28
- package/src/Transcript/TranscriptFocus/TranscriptFocusTerminator.tsx +0 -42
- package/src/Transcript/TranscriptFocus/TranscriptFocusTerminatorBody.tsx +0 -20
- package/src/Transcript/TranscriptFocus/TranscriptFocusTerminatorText.tsx +0 -20
- package/src/Transcript/TranscriptFocus/index.ts +0 -25
- package/src/Transcript/hooks/useRenderActivityProps.ts +0 -88
- package/src/Utils/AccessKeySink/Surface.tsx +0 -63
- package/src/Utils/FixedWidthImage.tsx +0 -60
- package/src/Utils/createIconComponent.tsx +0 -126
- package/src/Utils/orgSchema/getFirstBaseOfSoftwareSourceCode.ts +0 -15
- package/src/Utils/parseDocumentFragmentFromString.ts +0 -9
- package/src/Utils/readDataURIToBlob.ts +0 -37
- package/src/Utils/serializeDocumentFragmentIntoString.ts +0 -3
- package/src/Utils/textFormatToContentType.ts +0 -14
- package/src/__tests__/addMetaTag.spec.js +0 -8
- package/src/__tests__/addMetaTag.spec.mjs +0 -8
- package/src/boot/component.ts +0 -45
- package/src/boot/decorator.ts +0 -1
- package/src/boot/hook.ts +0 -116
- package/src/boot/internal.ts +0 -15
- package/src/buildInfo.ts +0 -9
- package/src/decorator/index.ts +0 -3
- package/src/decorator/private/BorderFlair.module.css +0 -566
- package/src/decorator/private/BorderFlair.tsx +0 -39
- package/src/decorator/private/BorderLoader.module.css +0 -53
- package/src/decorator/private/BorderLoader.tsx +0 -24
- package/src/decorator/private/WebChatDecorator.tsx +0 -64
- package/src/decorator/stylesheet/DecoratorStylesheet.tsx +0 -33
- package/src/decorator/stylesheet/createDecoratorStyleElements.ts +0 -8
- package/src/env.d.ts +0 -11
- package/src/hooks/RenderMarkdown.module.css +0 -102
- package/src/hooks/internal/codeHighlighter/index.ts +0 -3
- package/src/hooks/internal/codeHighlighter/private/CodeHighlighterComposer.tsx +0 -32
- package/src/hooks/internal/codeHighlighter/private/createCodeHighlighterComposer.tsx +0 -32
- package/src/hooks/internal/codeHighlighter/private/defaultHighlightCode.tsx +0 -22
- package/src/hooks/internal/styleToEmotionObject/index.ts +0 -1
- package/src/hooks/internal/styleToEmotionObject/private/StyleToEmotionObjectComposer.tsx +0 -20
- package/src/hooks/internal/styleToEmotionObject/private/createStyleToEmotionObjectComposer.tsx +0 -22
- package/src/hooks/internal/useEmotion.ts +0 -37
- package/src/hooks/internal/useFeedbackActions.ts +0 -120
- package/src/hooks/internal/useNonce.ts +0 -7
- package/src/hooks/internal/useSanitizeHrefCallback.ts +0 -37
- package/src/hooks/useStreamingMarkdownWithDefinitions.ts +0 -193
- package/src/providers/ActivityLogicalGrouping/ActivityLogicalGroupingComposer.ts +0 -100
- package/src/providers/ActivityLogicalGrouping/index.ts +0 -7
- package/src/providers/ActivityLogicalGrouping/private/ActivityLogicalGroupingContext.ts +0 -31
- package/src/providers/ActivityLogicalGrouping/private/useStateWithOptimisticRef.ts +0 -13
- package/src/providers/ActivityLogicalGrouping/useAddLogicalGrouping.ts +0 -5
- package/src/providers/ActivityLogicalGrouping/useGetGroupState.ts +0 -5
- package/src/providers/ActivityLogicalGrouping/useGetLogicalGroupBoundaries.ts +0 -5
- package/src/providers/ActivityLogicalGrouping/useGetLogicalGroupKey.ts +0 -5
- package/src/providers/ActivityLogicalGrouping/useRemoveLogicalGrouping.ts +0 -5
- package/src/providers/ChatHistoryDOM/ChatHistoryDOMComposer.tsx +0 -18
- package/src/providers/ChatHistoryDOM/private/ChatHistoryDOMContext.ts +0 -11
- package/src/providers/ChatHistoryDOM/useActivityElementRef.ts +0 -6
- package/src/providers/CustomElements/CustomElementsComposer.tsx +0 -58
- package/src/providers/CustomElements/customElements/CodeBlock.module.css +0 -35
- package/src/providers/CustomElements/customElements/CodeBlock.ts +0 -230
- package/src/providers/CustomElements/customElements/CodeBlockCopyButton.module.css +0 -63
- package/src/providers/CustomElements/customElements/CodeBlockCopyButton.tsx +0 -108
- package/src/providers/CustomElements/customElements/wrapAsCustomElement.ts +0 -85
- package/src/providers/CustomElements/private/CustomElementsContext.ts +0 -15
- package/src/providers/CustomElements/private/useCustomElementsContext.ts +0 -6
- package/src/providers/CustomElements/useCodeBlockCopyButtonTagName.ts +0 -8
- package/src/providers/CustomElements/useCodeBlockTagName.ts +0 -19
- package/src/providers/GroupedRenderingActivities/GroupedRenderingActivities.ts +0 -10
- package/src/providers/GroupedRenderingActivities/GroupedRenderingActivitiesComposer.tsx +0 -87
- package/src/providers/GroupedRenderingActivities/private/GroupedRenderingActivitiesContext.ts +0 -14
- package/src/providers/GroupedRenderingActivities/private/group.spec.ts +0 -31
- package/src/providers/GroupedRenderingActivities/private/group.ts +0 -19
- package/src/providers/GroupedRenderingActivities/private/pick.spec.ts +0 -35
- package/src/providers/GroupedRenderingActivities/private/pick.ts +0 -20
- package/src/providers/GroupedRenderingActivities/useGroupedRenderingActivities.ts +0 -6
- package/src/providers/GroupedRenderingActivities/useNumRenderingActivities.ts +0 -5
- package/src/providers/HTMLContentTransformCOR/HTMLContentTransformComposer.tsx +0 -41
- package/src/providers/HTMLContentTransformCOR/index.ts +0 -8
- package/src/providers/HTMLContentTransformCOR/private/HTMLContentTransformContext.ts +0 -34
- package/src/providers/HTMLContentTransformCOR/private/useHTMLContentTransformContext.ts +0 -6
- package/src/providers/HTMLContentTransformCOR/useTransformHTMLContent.ts +0 -187
- package/src/providers/LiveRegionTwin/index.ts +0 -3
- package/src/providers/LiveRegionTwin/private/LiveRegionTwinComposer.ts +0 -27
- package/src/providers/LiveRegionTwin/private/createLiveRegionTwinComposer.tsx +0 -155
- package/src/providers/LiveRegionTwin/useLiveRegion.ts +0 -27
- package/src/providers/ReducedMotion/ReducedMotionComposer.tsx +0 -35
- package/src/providers/ReducedMotion/private/Context.ts +0 -22
- package/src/providers/ReducedMotion/private/useContext.ts +0 -8
- package/src/providers/ReducedMotion/useShouldReduceMotion.ts +0 -5
- package/src/providers/RenderingActivities/RenderingActivitiesComposer.tsx +0 -103
- package/src/providers/RenderingActivities/private/RenderingActivitiesContext.ts +0 -15
- package/src/providers/RenderingActivities/useActivityRendererMap.ts +0 -9
- package/src/providers/RenderingActivities/useRenderingActivities.ts +0 -7
- package/src/providers/RenderingActivities/useRenderingActivityKeys.ts +0 -5
- package/src/providers/TranscriptFocus/TranscriptFocusComposer.spec.tsx +0 -611
- package/src/providers/TranscriptFocus/useFocusByGroupKey.ts +0 -11
- package/src/providers/TranscriptFocus/useFocusedKey.ts +0 -6
- package/src/providers/TranscriptFocus/useGetGroupDescendantIdByActivityKey.ts +0 -5
- package/src/providers/createContextAndHook.ts +0 -23
- package/src/stylesheet/ComponentStylesheet.tsx +0 -33
- package/src/stylesheet/createComponentStyleElements.ts +0 -8
- package/src/testIds.ts +0 -17
- package/src/types/internal/mutableRefObject.ts +0 -40
- package/src/types/internal/refObject.ts +0 -40
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/__w/1/s/BotFramework-WebChat/packages/component/dist/chunk-RTB757EJ.js","../src/hooks/internal/WebChatUIContext.ts","../src/hooks/internal/useWebChatUIContext.js","../src/hooks/useStyleSet.ts","../src/providers/HTMLContentTransformCOR/useTransformHTMLContent.ts","../src/providers/CustomElements/private/CustomElementsContext.ts","../src/providers/CustomElements/private/useCustomElementsContext.ts","../src/providers/CustomElements/useCodeBlockTagName.ts","../src/providers/HTMLContentTransformCOR/private/useHTMLContentTransformContext.ts","../src/providers/HTMLContentTransformCOR/private/HTMLContentTransformContext.ts","../src/hooks/useRenderMarkdownAsHTML.ts","unplugin-lightningcss:/__w/1/s/BotFramework-WebChat/packages/component/src/hooks/RenderMarkdown.module.css?css_module","../src/providers/ReducedMotion/private/useContext.ts","../src/providers/ReducedMotion/private/Context.ts","../src/providers/ReducedMotion/useShouldReduceMotion.ts","../src/hooks/internal/useSettableDictateAbortable.js","../src/hooks/useDictateAbortable.ts","../src/hooks/sendBoxFocus.ts","../src/hooks/useFocus.ts","../src/hooks/internal/createWaitUntilable.ts","../src/hooks/useMakeThumbnail.ts","../src/Utils/downscaleImageToDataURL/downscaleImageToDataURLUsingBrowser.ts","../src/Utils/downscaleImageToDataURL/downscaleImageToDataURLUsingWorker.worker.js","../src/Utils/downscaleImageToDataURL/downscaleImageToDataURLUsingWorker.ts","../src/Utils/downscaleImageToDataURL/index.ts","../src/hooks/useObserveScrollPosition.ts","../src/hooks/useObserveTranscriptFocus.ts","../src/hooks/useScrollDown.ts","../src/hooks/transcriptScrollRelative.ts","../src/hooks/useScrollTo.ts","../src/hooks/useScrollToEnd.ts","../src/hooks/useScrollUp.ts","../src/hooks/useSendFiles.ts","../src/hooks/useSendMessage.ts","../src/hooks/useWebSpeechPonyfill.ts","../src/BasicTypingIndicator.tsx","../src/testIds.ts","../src/SendBox/AttachmentBar/AttachmentBar.tsx","unplugin-lightningcss:/__w/1/s/BotFramework-WebChat/packages/component/src/SendBox/AttachmentBar/AttachmentBar.module.css?css_module","../src/SendBox/AttachmentBar/AttachmentBarItem.tsx","../src/SendBox/BasicSendBox.tsx","../src/providers/internal/SendBox/private/Context.ts","../src/providers/internal/SendBox/private/useContext.ts","../src/providers/internal/SendBox/useErrorMessageId.ts","../src/SendBox/DictationInterims.tsx","../src/SendBox/MicrophoneButton.tsx","../src/Utils/supportPseudoClass.ts","../src/hooks/internal/useNonce.ts","../src/hooks/internal/useValueRef.ts","../src/hooks/internal/useObserveFocusVisible.ts","../src/hooks/internal/useFocusVisible.ts","../src/Utils/AccessibleButton.tsx","../src/SendBox/IconButton.tsx","../src/SendBox/SendButton.tsx","../src/providers/internal/SendBox/useSubmit.ts","../src/SendBox/SuggestedActions.tsx","../src/Utils/computeSuggestedActionText.ts","../src/hooks/internal/useFocusWithin.ts","../src/providers/RovingTabIndex/RovingTabIndexComposer.tsx","../src/providers/RovingTabIndex/private/Context.ts","../src/SendBox/SuggestedAction.tsx","../src/hooks/internal/useNavigatorPlatform.js","../src/hooks/internal/useLocalizeAccessKey.ts","../src/hooks/internal/useSuggestedActionsAccessKey.js","../src/providers/RovingTabIndex/useItemRef.ts","../src/providers/RovingTabIndex/private/useContext.ts","../src/Utils/AccessKeySink/useFocusAccessKeyEffect.js","../src/Utils/AccessKeySink/internal/Context.js","../src/Utils/AccessKeySink/internal/useContext.js","../src/SendBox/TextBox.tsx","../src/hooks/internal/useEnterKeyHint.js","../src/Utils/AccessibleInputText.tsx","../src/Utils/TypeFocusSink/navigableEvent.js","../src/withEmoji/withEmoji.tsx","../src/withEmoji/private/UndoEntry.ts","../src/withEmoji/private/useUndoStack.ts"],"names":["context","createContext","WebChatUIContext_default","useWebChatUIContext","useContext","useStyleSet","CustomElementsContext","CustomElementsContext_default","useCustomElementsContext","useCodeBlockTag","codeBlockTagName","useMemo","memo","props","createElement","HTMLContentTransformContext","HTMLContentTransformContext_default","useHTMLContentTransformContext","useLocalizer","hooks","DEFAULT_ALLOWED_TAGS","tag","attributes","useTransformHTMLContent","transform","externalLinkAlt","useCallback","documentFragment","classes","RenderMarkdown_module_default","_render_markdown__message_activity0","_render_markdown0","_render_markdown__adaptive_cards0","useStyleOptions","useRenderMarkdownAsHTML","mode","renderMarkdown","styleOptions","localize","transformHTMLContent","classNames","St","containerClassName","cx","markdown","html","parseDocumentFragmentFromString","rootElement","serializeDocumentFragmentIntoString","defaultContextValue","Context","Context_default","useReactContext","useShouldReduceMotion","useSettableDictateAbortable","dictateAbortable","setDictateAbortable","useDictateAbortable","FocusSendBoxScope","useRegisterFocusSendBox","useFocusSendBox","createPropagation","createWaitUntilable","object","allPromises","promise","numPromise","useFocus","focusSendBox","focusTranscriptCallbacksRef","where","options","getPromise","callback","keepAspectRatio","width","height","maxWidth","maxHeight","aspectRatio","createCanvas","canvas","loadImageFromBlob","blob","blobURL","resolve","reject","image","error","downscaleImageToDataURLUsingBrowser","type","quality","downscaleImageToDataURLUsingWorker_worker_default","blobToDataURL","reader","event","data","arrayBuffer","port","imageBitmap","dimension","offscreenCanvas","dataURL","err","createWorker","fn","url","worker","message","workerPromise","getWorker","checkSupportOffscreenCanvas","hasOffscreenCanvas","isOffscreenCanvasSupportGetContext2D","checkSupportWebWorkerPromise","checkSupportWebWorker","checkSupportPromise","checkSupport","result","downscaleImageToDataURLUsingWorker","port1","port2","stack","downscaleImageToDataURL","useTrackTiming","makeThumbnail","file","contentType","useMakeThumbnail","trackTiming","styleOptionsRef","useRefFrom","enableUploadThumbnail","uploadThumbnailContentType","uploadThumbnailHeight","uploadThumbnailQuality","uploadThumbnailWidth","useObserveScrollPosition","observer","deps","observeScrollPosition","useEffect","useObserveTranscriptFocus","observeTranscriptFocus","ScrollRelativeTranscriptScope","useRegisterScrollRelativeTranscript","useScrollRelativeTranscript","useScrollDown","scrollRelative","useScrollTo","scrollToCallbacksRef","args","useScrollToEnd","scrollToEndCallbacksRef","useScrollUp","useAPISendFiles","useSendFiles","sendFiles","files","thumbnailURL","useAPISendMessage","useSendMessage","sendMessage","text","method","channelData","attachments","useWebSpeechPonyfill","useActiveTyping","useRenderTypingIndicator","useTypingIndicatorVisible","activeTyping","role","BasicTypingIndicator","visible","typing","renderTypingIndicator","React","Fragment","BasicTypingIndicator_default","testIds","testIds_default","AttachmentBar_module_default","_send_box_attachment_bar0","_send_box_attachment_bar__as_thumbnail0","_send_box_attachment_bar__as_list_item0","_send_box_attachment_bar__box0","SendBoxContext","useSendBoxContext","useSubmitErrorMessageId","DICTATING","STARTING","STOPPING","Constants","useDictateInterims","useDictateState","ROOT_STYLE","dictationInterimsPropsSchema","pipe","optional","string","readonly","DictationInterims","className","o","dictateInterims","dictateState","dictationInterimsStyleSet","rootClassName","useStyleToEmotionObject","interim","index","DictationInterims_default","supportPseudoClass","pseudoClass","nonce","styleElement","useNonce","useValueRef","value","ref","useRef","readOnlyRef","usePonyfill","INPUT_TYPES_ALLOW_LIST","focusTriggersKeyboardModality","el","isContentEditable","readOnly","tagName","createEventSubscription","target","types","handler","subscribed","useObserveFocusVisibleForLegacyBrowsers","targetRef","onFocusVisibleRef","Date","blurSinceRef","hadKeyboardEventRef","hasFocusVisibleRef","eventSubscription","_a","setHasFocusVisible","nextHasFocusVisible","handleKeyDown","handlePointerDown","handleFocus","handleBlur","handleVisibilityChange","useObserveFocusVisibleForModernBrowsers","current","useObserveFocusVisible","onFocusVisible","nonceRef","useFocusVisible","focusVisible","setFocusVisible","useState","handleFocusVisible","PREVENT_DEFAULT_HANDLER","accessibleButtonPropsSchema","boolean","c","custom","is","function_","number","literal","AccessibleButton","forwardRef","ariaHidden","ariaKeyShortcuts","children","dataTestId","disabled","onClick","tabIndex","title","AccessibleButton_default","iconButtonPropsSchema","IconButton","alt","dataTestid","sendBoxButtonStyleSet","sendBoxButtonAlignment","buttonRef","IconButton_default","DictateState","useSendBoxValue","useShouldSpeakIncomingActivity","useStartDictate","useStopDictate","useUIState","useMicrophoneButtonClick","setSendBox","setShouldSpeakIncomingActivity","webSpeechPonyfill","startDictate","stopDictate","speechSynthesis","SpeechSynthesisUtterance","primeSpeechSynthesis","memoize","utterance","useMicrophoneButtonDisabled","abortable","uiState","MicrophoneButton","microphoneButtonStyleSet","click","dictating","useLiveRegion","ComponentIcon_default","MicrophoneButton_default","useSubmit","useDirection","sendButtonPropsSchema","SendButton","direction","submit","handleClick","SendButton_default","computeSuggestedActionText","cardAction","useFocusWithin","focusWithin","setFocusWithin","targetElement","RovingTabIndexContext","rovingTabIndexContextProps","union","RovingTabIndexComposer","onEscapeKey","orientation","activeItemIndexRef","itemRefsRef","refreshTabIndices","activeItemIndex","setActiveItemIndex","valueOrFunction","_b","_c","nextActiveItemIndex","key","vertical","itemIndices","_","nextIndex","itemEffector","contextValue","RovingTabIndexComposer_default","ANDROID_PATTERN","APPLE_PATTERN","LINUX_PATTERN","WINDOWS_PATTERN","useNavigatorPlatform","platform","android","apple","windows","linux","useLocalizeAccessKey","accessKey","useSuggestedActionsAccessKey","suggestedActionsAccessKey","useRovingTabIndexContext","throwOnUndefined","useItemRef","itemIndex","AccessKeySinkContext","useAccessKeySinkContext","removeInline","array","item","useFocusAccessKeyEffect","entry","usePerformCardAction","useSuggestedActionsHooks","suggestedActionPropsSchema","any","SuggestedAction","buttonText","displayText","imageAlt","textClassName","setSuggestedActions","suggestedActionsStackedLayoutButtonTextWrap","suggestedActionStyleSet","focus","focusRef","localizeAccessKeyAsAriaKeyShortcuts","performCardAction","scrollToEnd","SuggestedAction_default","SuggestedActionCarouselContainer","label","suggestedActionsCarouselFlipperBoxWidth","suggestedActionsCarouselFlipperCursor","suggestedActionsCarouselFlipperSize","suggestedActionsStyleSet","filmStyleSet","createBasicStyleSetForReactFilm","nextFlipperAriaLabel","previousFlipperAriaLabel","focusedWithin","leftFlipperAriaLabel","rightFlipperAriaLabel","ReactFilm","PropTypes","SuggestedActionFlowContainer","child","SuggestedActionStackedContainer","SuggestedActions","suggestedActions","suggestedActionLayout","handleEscapeKey","imageAltText","SuggestedActions_default","useEnterKeyHint","elementRef","enterKeyHint","AccessibleInputTextPropsSchema","picklist","AccessibleInputText","rawProps","forwardedRef","ariaErrorMessage","ariaLabel","dataId","onChange","onFocus","onKeyDown","onKeyDownCapture","onKeyPress","onSelect","placeholder","AccessibleInputText_default","navigableEvent","altKey","autocompleteAttribute","autocomplete","list","_group","_selectionEnd","_selectionStart","_value","UndoEntry","selectionStart","selectionEnd","group","__privateAdd","__privateSet","__privateGet","useUndoStack","undoStackRef","push","element","undoStack","firstEntry","undo","lastEntry","WithEmojiController","componentProps","componentType","emojiMap","innerRef","inputElementRef","onChangeRef","valueRef","handleChange","currentTarget","emoticon","emoji","length","nextValue"],"mappings":"AAAA,+NAAsE,sDAA8E,4ECA/F,IA0B/CA,EAAAA,CAAUC,kCAAAA,KAA2B,CAAwB,CAAA,CAE5DC,EAAAA,aAAQF,EAAAA,CC5Bf,SAIOG,CAAAA,CAAAA,CAAuC,CAC5C,IAAMH,CAAAA,CAAUI,+BAAAA,EAA2B,CAAA,CAE3C,EAAA,CAAI,CAACJ,CAAAA,CACH,MAAM,IAAI,KAAA,CAAM,8EAA8E,CAAA,CAGhG,OAAOA,CACT,CCRe,SAARK,CAAAA,CAAAA,CAAgG,CACrG,OAAO,MAAA,CAAO,MAAA,CAAO,CAACF,CAAAA,CAAoB,CAAA,CAAE,QAAQ,CAAU,CAChE,CCNA,kEAAsB,ICIhBG,EAAAA,CAAwBL,kCAAAA,IACxB,KAAA,CAAM,CAAC,CAAA,CAAgC,CACzC,GAAA,CAAA,CAAM,CACJ,MAAM,IAAI,KAAA,CAAM,iFAAiF,CACnG,CACF,CAAC,CACH,CAAA,CAEAK,EAAAA,CAAsB,WAAA,CAAc,uBAAA,CAEpC,IAAOC,EAAAA,CAAQD,EAAAA,CCXA,SAARE,EAAAA,CAAAA,CAAuE,CAC5E,OAAOJ,+BAAAA,EAAgC,CACzC,CCAe,SAARK,EAAAA,CAAAA,CAAmC,CACxC,GAAM,CAAE,gBAAA,CAAAC,CAAiB,CAAA,CAAIF,EAAAA,CAAyB,CAAA,CAEtD,OAAOG,4BAAAA,CACL,CAAA,EACE,MAAA,CAAO,MAAA,CAAO,CACZD,CAAAA,CACAE,yBAAAA,CAAMC,EACJC,kCAAAA,CAAcJ,CAAkB,CAAE,GAAGG,CAAAA,CAAO,KAAA,CAAOA,CAAAA,CAAM,SAAA,CAAW,SAAA,CAAW,KAAA,CAAU,CAAC,CAC5F,CACF,CAAU,CAAA,CACZ,CAACH,CAAgB,CACnB,CACF,CClBA,ICyBMK,EAAAA,CAA8Bd,kCAAAA,IAC9B,KAAA,CAAM,CAAC,CAAA,CAAsC,CAC/C,GAAA,CAAA,CAAM,CACJ,MAAM,IAAI,KAAA,CAAM,wFAAwF,CAC1G,CACF,CAAC,CACH,CAAA,CAEOe,EAAAA,aAAQD,EAAAA,CD9BA,SAARE,EAAAA,CAAAA,CAAmF,CACxF,OAAOb,+BAAAA,EAAsC,CAC/C,CJCA,GAAM,CAAE,YAAA,CAAAc,EAAa,CAAA,CAAIC,6BAAAA,CAEnBC,EAAAA,CAA2F,MAAA,CAAO,MAAA,CACtG,IAAI,GAAA,CAEA,CACE,CAAC,GAAA,CAAK,CAAC,YAAA,CAAc,OAAA,CAAS,MAAA,CAAQ,MAAA,CAAQ,KAAA,CAAO,QAAQ,CAAC,CAAA,CAC9D,CAAC,GAAA,CAAK,CAAC,CAAC,CAAA,CACR,CAAC,YAAA,CAAc,CAAC,CAAC,CAAA,CACjB,CAAC,IAAA,CAAM,CAAC,CAAC,CAAA,CACT,CAAC,QAAA,CAAU,CAAC,YAAA,CAAc,OAAA,CAAS,MAAA,CAAQ,OAAO,CAAC,CAAA,CACnD,CAAC,SAAA,CAAW,CAAC,CAAC,CAAA,CACd,CAAC,MAAA,CAAQ,CAAC,gBAAgB,CAAC,CAAA,CAC3B,CAAC,KAAA,CAAO,CAAC,CAAC,CAAA,CACV,CAAC,KAAA,CAAO,CAAC,CAAC,CAAA,CACV,CAAC,IAAA,CAAM,CAAC,CAAC,CAAA,CACT,CAAC,QAAA,CAAU,CAAC,gBAAA,CAAkB,UAAU,CAAC,CAAA,CACzC,CAAC,IAAA,CAAM,CAAC,CAAC,CAAA,CACT,CAAC,IAAA,CAAM,CAAC,CAAC,CAAA,CACT,CAAC,IAAA,CAAM,CAAC,CAAC,CAAA,CACT,CAAC,IAAA,CAAM,CAAC,CAAC,CAAA,CACT,CAAC,IAAA,CAAM,CAAC,CAAC,CAAA,CACT,CAAC,IAAA,CAAM,CAAC,CAAC,CAAA,CACT,CAAC,IAAA,CAAM,CAAC,CAAC,CAAA,CACT,CAAC,GAAA,CAAK,CAAC,CAAC,CAAA,CACR,CAAC,KAAA,CAAO,CAAC,KAAA,CAAO,YAAA,CAAc,OAAA,CAAS,KAAA,CAAO,OAAO,CAAC,CAAA,CACtD,CAAC,KAAA,CAAO,CAAC,CAAC,CAAA,CACV,CAAC,IAAA,CAAM,CAAC,CAAC,CAAA,CACT,CAAC,IAAA,CAAM,CAAC,CAAC,CAAA,CACT,CAAC,IAAA,CAAM,CAAC,CAAC,CAAA,CACT,CAAC,GAAA,CAAK,CAAC,CAAC,CAAA,CACR,CAAC,KAAA,CAAO,CAAC,OAAA,CAAS,gBAAgB,CAAC,CAAA,CACnC,CAAC,GAAA,CAAK,CAAC,CAAC,CAAA,CACR,CAAC,MAAA,CAAQ,CAAC,YAAA,CAAc,gBAAgB,CAAC,CAAA,CACzC,CAAC,QAAA,CAAU,CAAC,CAAC,CAAA,CACb,CAAC,QAAA,CAAU,CAAC,CAAC,CAAA,CACb,CAAC,OAAA,CAAS,CAAC,CAAC,CAAA,CACZ,CAAC,OAAA,CAAS,CAAC,CAAC,CAAA,CACZ,CAAC,IAAA,CAAM,CAAC,CAAC,CAAA,CACT,CAAC,OAAA,CAAS,CAAC,CAAC,CAAA,CACZ,CAAC,IAAA,CAAM,CAAC,CAAC,CAAA,CACT,CAAC,OAAA,CAAS,CAAC,CAAC,CAAA,CACZ,CAAC,IAAA,CAAM,CAAC,CAAC,CAAA,CACT,CAAC,IAAA,CAAM,CAAC,CAAC,CAAA,CAGT,CAAC,gBAAA,CAAkB,CAAC,UAAA,CAAY,KAAA,CAAO,MAAA,CAAQ,eAAe,CAAC,CAAA,CAC/D,CAAC,YAAA,CAAc,CAAC,UAAA,CAAY,KAAA,CAAO,MAAA,CAAQ,eAAe,CAAC,CAAA,CAC3D,CAAC,MAAA,CAAQ,CAAC,SAAA,CAAW,OAAA,CAAS,MAAA,CAAQ,UAAA,CAAY,SAAA,CAAW,gBAAA,CAAkB,WAAW,CAAC,CAAA,CAC3F,CAAC,QAAA,CAAU,CAAC,gBAAA,CAAkB,WAAW,CAAC,CAAA,CAC1C,CAAC,SAAA,CAAW,CAAC,OAAA,CAAS,MAAA,CAAQ,YAAY,CAAC,CAAA,CAC3C,CAAC,OAAA,CAAS,CAAC,eAAA,CAAiB,UAAA,CAAY,YAAA,CAAc,UAAU,CAAC,CAAA,CACjE,CAAC,IAAA,CAAM,CAAC,aAAA,CAAe,UAAA,CAAY,gBAAA,CAAkB,WAAW,CAAC,CAAA,CACjE,CAAC,eAAA,CAAiB,CAAC,gBAAA,CAAkB,kBAAkB,CAAC,CAAA,CACxD,CAAC,IAAA,CAAM,CAAC,aAAA,CAAe,UAAA,CAAY,gBAAA,CAAkB,WAAW,CAAC,CAAA,CACjE,CACE,IAAA,CACA,CACE,MAAA,CACA,OAAA,CACA,WAAA,CACA,QAAA,CACA,QAAA,CACA,UAAA,CACA,WAAA,CACA,SAAA,CACA,SAAA,CACA,SAAA,CACA,eAAA,CACA,QAAA,CACA,WAAA,CACA,aAAA,CACA,UAAA,CACA,gBAAA,CACA,WACF,CACF,CAAA,CACA,CAAC,OAAA,CAAS,CAAC,QAAA,CAAU,OAAO,CAAC,CAAA,CAC7B,CAAC,SAAA,CAAW,CAAC,QAAA,CAAU,OAAA,CAAS,OAAA,CAAS,QAAA,CAAU,SAAS,CAAC,CAAA,CAC7D,CAAC,UAAA,CAAY,CAAC,gBAAgB,CAAC,CAAA,CAC/B,CAAC,aAAA,CAAe,CAAC,CAAC,CAAA,CAClB,CAAC,OAAA,CAAS,CAAC,gBAAA,CAAkB,WAAW,CAAC,CAAA,CACzC,CAAC,MAAA,CAAQ,CAAC,KAAA,CAAO,gBAAA,CAAkB,WAAW,CAAC,CAAA,CAC/C,CAAC,IAAA,CAAM,CAAC,QAAA,CAAU,QAAA,CAAU,aAAA,CAAe,UAAA,CAAY,gBAAA,CAAkB,WAAW,CAAC,CAAA,CACrF,CACE,QAAA,CACA,CACE,WAAA,CACA,OAAA,CACA,QAAA,CACA,OAAA,CACA,iBAAA,CACA,yBAAA,CACA,wBAAA,CACA,uBAAA,CACA,4BAAA,CACA,2BAAA,CACA,gBAAA,CACA,eAAA,CACA,oBAAA,CACA,mBACF,CACF,CAAA,CACA,CAAC,OAAA,CAAS,CAAC,gBAAA,CAAkB,WAAW,CAAC,CAAA,CACzC,CACE,QAAA,CACA,CACE,aAAA,CACA,cAAA,CACA,sBAAA,CACA,eAAA,CACA,qBAAA,CACA,cAAA,CACA,aAAA,CACA,UAAA,CACA,gBAAA,CACA,WAAA,CACA,KACF,CACF,CAAA,CACA,CAAC,MAAA,CAAQ,CAAC,gBAAgB,CAAC,CAAA,CAC3B,CAAC,SAAA,CAAW,CAAC,gBAAA,CAAkB,kBAAkB,CAAC,CAAA,CAClD,CAAC,MAAA,CAAQ,CAAC,kBAAkB,CAAC,CAAA,CAC7B,CACE,QAAA,CACA,CACE,OAAA,CACA,UAAA,CACA,aAAA,CACA,YAAA,CACA,gBAAA,CACA,aAAA,CACA,OAAA,CACA,YAAA,CACA,eAAA,CACA,UAAA,CACA,aAAA,CACA,OAAA,CACA,cAAA,CACA,WAAA,CACA,cAAA,CACA,cAAA,CACA,MAAA,CACA,iBACF,CACF,CAAA,CACA,CAAC,KAAA,CAAO,CAAC,SAAA,CAAW,YAAA,CAAc,UAAA,CAAY,aAAA,CAAe,YAAY,CAAC,CAAA,CAC1E,CAAC,OAAA,CAAS,CAAC,aAAA,CAAe,UAAA,CAAY,gBAAA,CAAkB,WAAW,CAAC,CAAA,CACpE,CAAC,KAAA,CAAO,CAAC,UAAA,CAAY,aAAA,CAAe,YAAY,CAAC,CAAA,CACjD,CAAC,QAAA,CAAU,CAAC,aAAA,CAAe,OAAO,CAAC,CAAA,CACnC,CAAC,YAAA,CAAc,CAAC,QAAA,CAAU,aAAA,CAAe,OAAO,CAAC,CAAA,CACjD,CAAC,WAAA,CAAa,CAAC,eAAA,CAAiB,UAAU,CAAC,CAC7C,CAAA,CACA,GAAA,CACA,CAAC,CAACC,CAAAA,CAAKC,CAAU,CAAA,CAAA,EACf,CAACD,CAAAA,CAAK,MAAA,CAAO,MAAA,CAAO,CAAE,UAAA,CAAY,MAAA,CAAO,MAAA,CAAO,IAAI,GAAA,CAAIC,CAAU,CAAC,CAAE,CAAC,CAAC,CAI3E,CACF,CACF,CAAA,CAEe,SAARC,EAAAA,CAAAA,CAAqG,CAC1G,GAAM,CAACb,CAAgB,CAAA,CAAID,EAAAA,CAAgB,CAAA,CACrC,CAAE,SAAA,CAAAe,CAAU,CAAA,CAAIP,EAAAA,CAA+B,CAAA,CAG/CQ,CAAAA,CADWP,EAAAA,CAAa,CAAA,CACG,4BAA4B,CAAA,CAE7D,OAAOQ,gCAAAA,CACLC,EACEH,CAAAA,CAAU,CACR,WAAA,CAAaJ,EAAAA,CACb,gBAAA,CAAAV,CAAAA,CACA,gBAAA,CAAAiB,CAAAA,CACA,eAAA,CAAAF,CACF,CAAC,CAAA,CACH,CAACf,CAAAA,CAAkBe,CAAAA,CAAiBD,CAAS,CAC/C,CACF,CM1LA,mCAAmB,ICCbI,EAAAA,CAAU,CAAC,mCAAA,CAAoC,2CAAA,CAA4C,iBAAA,CAAkB,yBAAA,CAA0B,iCAAA,CAAkC,yCAAyC,CAAA,CACjNC,EAAAA,aAAQD,EAAAA,CAETE,EAAAA,CAAsCF,EAAAA,CAAQ,mCAAmC,CAAA,CAGvF,IAAMG,EAAAA,CAAoBH,EAAAA,CAAQ,iBAAiB,CAAA,CAGnD,IAAMI,EAAAA,CAAoCJ,EAAAA,CAAQ,iCAAiC,CAAA,CDEnF,GAAM,CAAE,YAAA,CAAAV,EAAAA,CAAc,eAAA,CAAAe,EAAgB,CAAA,CAAId,6BAAAA,CAQ3B,SAARe,EAAAA,CACLC,CAAAA,CAAqF,kBAAA,CACjD,CACpC,GAAM,CAAE,cAAA,CAAAC,CAAe,CAAA,CAAIjC,CAAAA,CAAoB,CAAA,CACzC,CAACkC,CAAY,CAAA,CAAIJ,EAAAA,CAAgB,CAAA,CACjCK,CAAAA,CAAWpB,EAAAA,CAAa,CAAA,CACxBqB,CAAAA,CAAuBhB,EAAAA,CAAwB,CAAA,CAE/CiB,CAAAA,CAAaC,gCAAAA,EAAgB,CAAA,CAE7BhB,CAAAA,CAAkBa,CAAAA,CAAS,4BAA4B,CAAA,CAEvDI,CAAAA,CAAqB/B,4BAAAA,CACzB,CAAA,EACEgC,qBAAAA,CAAGH,CAAW,iBAAiB,CAAA,CAAG,CAChC,CAACA,CAAAA,CAAW,iCAAiC,CAAC,CAAA,CAAGL,CAAAA,GAAS,gBAAA,CAC1D,CAACK,CAAAA,CAAW,2BAA2B,CAAC,CAAA,CAAGL,CAAAA,GAAS,gBAAA,CACpD,CAACK,CAAAA,CAAW,mCAAmC,CAAC,CAAA,CAC9CL,CAAAA,GAAS,iBAAA,EAAqBA,CAAAA,GAAS,gBAAA,EAAoBA,CAAAA,GAAS,gBACxE,CAAC,CAAA,CACH,CAACK,CAAAA,CAAYL,CAAI,CACnB,CAAA,CAIA,OAAOxB,4BAAAA,CACL,CAAA,EACEyB,CAAAA,EAAAA,CACCQ,CAAAA,EAAY,CACX,IAAMC,CAAAA,CAAOT,CAAAA,CAAeQ,CAAAA,CAAUP,CAAAA,CAAc,CAAE,eAAA,CAAAZ,CAAgB,CAAC,CAAA,CAEjEE,CAAAA,CAAmBY,CAAAA,CAAqBO,gCAAAA,CAAoC,CAAC,CAAA,CAE7EC,CAAAA,CAAc,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA,CAEhD,OAAAL,CAAAA,EAAsBK,CAAAA,CAAY,SAAA,CAAU,GAAA,CAAI,GAAGL,CAAAA,CAAmB,KAAA,CAAM,GAAG,CAAA,CAAE,MAAA,CAAO,OAAO,CAAC,CAAA,CAEhGK,CAAAA,CAAY,MAAA,CAAO,GAAGpB,CAAAA,CAAiB,UAAU,CAAA,CACjDA,CAAAA,CAAiB,MAAA,CAAOoB,CAAW,CAAA,CAE5BC,gCAAAA,CAAoD,CAC7D,CAAA,CAAA,CACF,CAACN,CAAAA,CAAoBjB,CAAAA,CAAiBW,CAAAA,CAAgBC,CAAAA,CAAcE,CAAoB,CAC1F,CACF,CEhEA,ICSMU,EAAAA,CAAoD,CACxD,uBAAA,CAAyB,CACvB,GAAA,CAAA,CAAM,CACJ,MAAM,IAAI,KAAA,CAAM,4EAA4E,CAC9F,CACF,CACF,CAAA,CAEMC,EAAAA,CAAUjD,kCAAAA,MAA2B,CAAO,MAAA,CAAO,CAAC,CAAA,CAAGgD,EAAmB,CAAC,CAAA,CAEjFC,EAAAA,CAAQ,WAAA,CAAc,uBAAA,CAEtB,IAAOC,EAAAA,CAAQD,EAAAA,CDhBA,SAAR9C,EAAAA,CAAAA,CAAyD,CAC9D,OAAOgD,+BAAAA,EAAuB,CAChC,CELe,SAARC,EAAAA,CAAAA,CAAmG,CACxG,OAAOjD,EAAAA,CAAW,CAAA,CAAE,uBACtB,CCFe,SAARkD,EAAAA,CAAAA,CAA+C,CACpD,GAAM,CAAE,gBAAA,CAAAC,CAAAA,CAAkB,mBAAA,CAAAC,CAAoB,CAAA,CAAIrD,CAAAA,CAAoB,CAAA,CAEtE,MAAO,CAACoD,CAAAA,CAAkBC,CAAmB,CAC/C,CCJe,SAARC,EAAAA,CAAAA,CAAkD,CAEvD,GAAM,CAACF,CAAgB,CAAA,CAAID,EAAAA,CAA4B,CAAA,CAEvD,MAAO,CAACC,CAAgB,CAC1B,CCNA,6CAAkC,GAI5B,CACJ,gBAAA,CAAkBG,EAAAA,CAClB,SAAA,CAAWC,EAAAA,CACX,YAAA,CAAcC,EAChB,CAAA,CAAIC,6CAAAA,CAAuC,CCT3C,SCEOC,EAAAA,CACLC,CAAAA,CACkD,CAClD,IAAMC,CAAAA,CAA+B,CAAC,CAAA,CAEtC,OAAO,MAAA,CAAO,MAAA,CAAO,CACnB,CACE,GAAGD,CAAAA,CACH,SAAA,CAAUE,CAAAA,CAAwB,CAChCD,CAAAA,CAAY,IAAA,CAAKC,CAAO,CAC1B,CACF,CAAA,CACA,KAAA,CAAA,CAAA,EAAY,CAOV,GAAA,CAAA,IAASC,CAAAA,CAAa,CAAA,CAEpB,MAAM,OAAA,CAAQ,GAAA,CAAIF,CAAW,CAAA,CAAE,IAAA,CAAK,CAAA,CAAA,EAAM,CAE1C,CAAC,CAAA,CAGGE,CAAAA,GAAeF,CAAAA,CAAY,MAAA,CAPNE,CAAAA,CAAaF,CAAAA,CAAY,MAAA,CAOlD,CAIJ,CACF,CAAC,CACH,CD5Be,SAARG,CAAAA,CAAAA,CAAsG,CAC3G,IAAMC,CAAAA,CAAeR,EAAAA,CAAgB,CAAA,CAC/B,CAAE,2BAAA,CAAAS,CAA4B,CAAA,CAAIlE,CAAAA,CAAoB,CAAA,CAE5D,OAAOuB,gCAAAA,MACC4C,CAAAA,EAAS,CACb,EAAA,CAAIA,CAAAA,GAAU,SAAA,EAAaA,CAAAA,GAAU,wBAAA,CAA0B,CAC7D,GAAM,CAACC,CAAAA,CAASC,CAAU,CAAA,CAAIV,EAAAA,CAAoB,CAAE,UAAA,CAAYQ,CAAAA,GAAU,wBAAyB,CAAC,CAAA,CAEpGF,CAAAA,CAAaG,CAAO,CAAA,CAEpB,MAAMC,CAAAA,CAAW,CACnB,CAAA,IAAO,CACL,GAAM,CAAC,CAAEA,CAAU,CAAA,CAAIV,EAAAA,CAAoB,CAAC,CAAC,CAAA,CAE7CO,CAAAA,CAA4B,OAAA,CAAQ,OAAA,CAAQI,CAAAA,EAAYA,CAAAA,CAAS,CAAC,CAAA,CAElE,MAAMD,CAAAA,CAAW,CACnB,CACF,CAAA,CACA,CAACJ,CAAAA,CAAcC,CAA2B,CAC5C,CACF,CE5BA,0CAE2B,SCFlBK,EAAAA,CACPC,CAAAA,CACAC,CAAAA,CACAC,CAAAA,CACAC,CAAAA,CACmC,CACnC,EAAA,CAAIH,CAAAA,CAAQE,CAAAA,EAAYD,CAAAA,CAASE,CAAAA,CAE/B,MAAO,CACL,MAAA,CAAAF,CAAAA,CACA,KAAA,CAAAD,CACF,CAAA,CAGF,IAAMI,CAAAA,CAAcJ,CAAAA,CAAQC,CAAAA,CAE5B,OAAIG,CAAAA,CAAcF,CAAAA,CAAWC,CAAAA,CAEpB,CACL,MAAA,CAAQD,CAAAA,CAAWE,CAAAA,CACnB,KAAA,CAAOF,CACT,CAAA,CAIK,CACL,MAAA,CAAQC,CAAAA,CACR,KAAA,CAAOA,CAAAA,CAAYC,CACrB,CACF,CAEA,SAASC,EAAAA,CAAaL,CAAAA,CAAeC,CAAAA,CAAmC,CACtE,IAAMK,CAAAA,CAAS,QAAA,CAAS,aAAA,CAAc,QAAQ,CAAA,CAE9C,OAAAA,CAAAA,CAAO,MAAA,CAASL,CAAAA,CAChBK,CAAAA,CAAO,KAAA,CAAQN,CAAAA,CAERM,CACT,CAEA,SAASC,EAAAA,CAAkBC,CAAAA,CAAuC,CAGhE,IAAMC,CAAAA,CAAU,GAAA,CAAI,eAAA,CAAgBD,CAAI,CAAA,CAExC,OAAO,IAAI,OAAA,CAA0B,CAACE,CAAAA,CAASC,CAAAA,CAAAA,EAAW,CACxD,IAAMC,CAAAA,CAAQ,QAAA,CAAS,aAAA,CAAc,KAAK,CAAA,CAE1CA,CAAAA,CAAM,gBAAA,CAAiB,OAAA,CAAS,CAAC,CAAE,KAAA,CAAAC,CAAM,CAAA,CAAA,EAAMF,CAAAA,CAAOE,CAAK,CAAC,CAAA,CAC5DD,CAAAA,CAAM,gBAAA,CAAiB,MAAA,CAAQ,CAAA,CAAA,EAAMF,CAAAA,CAAQE,CAAK,CAAC,CAAA,CACnDA,CAAAA,CAAM,YAAA,CAAa,KAAA,CAAOH,CAAO,CACnC,CAAC,CAAA,CAAE,OAAA,CAAQ,CAAA,CAAA,EAAM,CACf,GAAA,CAAI,eAAA,CAAgBA,CAAO,CAC7B,CAAC,CACH,CAEA,MAAA,SAAOK,EAAAA,CACLN,CAAAA,CACAN,CAAAA,CACAC,CAAAA,CACAY,CAAAA,CACAC,CAAAA,CACc,CACd,IAAMJ,CAAAA,CAAQ,MAAML,EAAAA,CAAkBC,CAAI,CAAA,CACpC,CAAE,MAAA,CAAAP,CAAAA,CAAQ,KAAA,CAAAD,CAAM,CAAA,CAAID,EAAAA,CAAgBa,CAAAA,CAAM,KAAA,CAAOA,CAAAA,CAAM,MAAA,CAAQV,CAAAA,CAAUC,CAAS,CAAA,CAClFG,CAAAA,CAASD,EAAAA,CAAaL,CAAAA,CAAOC,CAAM,CAAA,CACnC5E,CAAAA,CAAUiF,CAAAA,CAAO,UAAA,CAAW,IAAI,CAAA,CAEtC,EAAA,CAAI,CAACjF,CAAAA,CACH,MAAM,IAAI,KAAA,CAAM,iDAAiD,CAAA,CAGnE,OAAAA,CAAAA,CAAQ,SAAA,CAAUuF,CAAAA,CAAO,CAAA,CAAG,CAAA,CAAGZ,CAAAA,CAAOC,CAAM,CAAA,CAErC,IAAI,GAAA,CAAIK,CAAAA,CAAO,SAAA,CAAUS,CAAAA,CAAMC,CAAO,CAAC,CAChD,CClEe,SAARC,EAAAA,CAAAA,CAAoB,CACzB,SAASC,CAAAA,CAAcV,CAAAA,CAAM,CAC3B,OAAO,IAAI,OAAA,CAAQ,QAAA,CAAUE,CAAAA,CAASC,CAAAA,CAAQ,CAC5C,IAAMQ,CAAAA,CAAS,IAAI,UAAA,CAEnBA,CAAAA,CAAO,OAAA,CAAU,QAAA,CAAUC,CAAAA,CAAO,CAChCT,CAAAA,CAAOS,CAAAA,CAAM,KAAA,EAAS,IAAI,KAAA,CAAMA,CAAAA,CAAM,OAAO,CAAC,CAChD,CAAA,CAEAD,CAAAA,CAAO,SAAA,CAAY,QAAA,CAAA,CAAY,CAC7BT,CAAAA,CAAQS,CAAAA,CAAO,MAAM,CACvB,CAAA,CAEAA,CAAAA,CAAO,aAAA,CAAcX,CAAI,CAC3B,CAAC,CACH,CAEA,SAAST,CAAAA,CAAgBC,CAAAA,CAAOC,CAAAA,CAAQC,CAAAA,CAAUC,CAAAA,CAAW,CAC3D,EAAA,CAAIH,CAAAA,CAAQE,CAAAA,EAAYD,CAAAA,CAASE,CAAAA,CAE/B,MAAO,CACL,MAAA,CAAQF,CAAAA,CACR,KAAA,CAAOD,CACT,CAAA,CAGF,IAAMI,CAAAA,CAAcJ,CAAAA,CAAQC,CAAAA,CAE5B,OAAIG,CAAAA,CAAcF,CAAAA,CAAWC,CAAAA,CAEpB,CACL,MAAA,CAAQD,CAAAA,CAAWE,CAAAA,CACnB,KAAA,CAAOF,CACT,CAAA,CAIK,CACL,MAAA,CAAQC,CAAAA,CACR,KAAA,CAAOA,CAAAA,CAAYC,CACrB,CACF,CAEA,SAAA,CAAY,QAAA,CAAUgB,CAAAA,CAAO,CAC3B,IAAMC,CAAAA,CAAOD,CAAAA,CAAM,IAAA,CACbE,CAAAA,CAAcD,CAAAA,CAAK,WAAA,CACnBlB,CAAAA,CAAYkB,CAAAA,CAAK,SAAA,CACjBnB,CAAAA,CAAWmB,CAAAA,CAAK,QAAA,CAChBN,CAAAA,CAAOM,CAAAA,CAAK,IAAA,CACZL,CAAAA,CAAUK,CAAAA,CAAK,OAAA,CACfE,CAAAA,CAAOH,CAAAA,CAAM,KAAA,CAAM,CAAC,CAAA,CAE1B,OAAO,OAAA,CAAQ,OAAA,CAAQ,CAAA,CACpB,IAAA,CAAK,QAAA,CAAA,CAAY,CAChB,OAAO,iBAAA,CAAkB,IAAI,IAAA,CAAK,CAACE,CAAW,CAAC,CAAA,CAAG,CAAE,aAAA,CAAe,MAAO,CAAC,CAC7E,CAAC,CAAA,CACA,IAAA,CAAK,QAAA,CAAUE,CAAAA,CAAa,CAC3B,IAAMC,CAAAA,CAAY1B,CAAAA,CAAgByB,CAAAA,CAAY,KAAA,CAAOA,CAAAA,CAAY,MAAA,CAAQtB,CAAAA,CAAUC,CAAS,CAAA,CACtFF,CAAAA,CAASwB,CAAAA,CAAU,MAAA,CACnBzB,CAAAA,CAAQyB,CAAAA,CAAU,KAAA,CAClBC,CAAAA,CAAkB,IAAI,eAAA,CAAgB1B,CAAAA,CAAOC,CAAM,CAAA,CAGzD,OAFgByB,CAAAA,CAAgB,UAAA,CAAW,IAAI,CAAA,CAEvC,SAAA,CAAUF,CAAAA,CAAa,CAAA,CAAG,CAAA,CAAGxB,CAAAA,CAAOC,CAAM,CAAA,CAAA,CAG3ByB,CAAAA,CAAgB,aAAA,EAAiBA,CAAAA,CAAgB,MAAA,CAAA,CAAQ,IAAA,CAAKA,CAAe,CAAA,CAE/E,CAAE,IAAA,CAAMX,CAAAA,CAAM,OAAA,CAASC,CAAQ,CAAC,CACvD,CAAC,CAAA,CACA,IAAA,CAAK,QAAA,CAAUR,CAAAA,CAAM,CACpB,OAAOU,CAAAA,CAAcV,CAAI,CAC3B,CAAC,CAAA,CACA,IAAA,CAAK,QAAA,CAAUmB,CAAAA,CAAS,CACvB,OAAOJ,CAAAA,CAAK,WAAA,CAAY,CAAE,MAAA,CAAQI,CAAQ,CAAC,CAC7C,CAAC,CAAA,CACA,KAAA,CAAM,QAAA,CAAUC,CAAAA,CAAK,CACpB,OAAA,CAAQ,KAAA,CAAMA,CAAG,CAAA,CAEjBL,CAAAA,CAAK,WAAA,CAAY,CACf,KAAA,CAAO,CACL,OAAA,CAASK,CAAAA,CAAI,OAAA,CACb,KAAA,CAAOA,CAAAA,CAAI,KACb,CACF,CAAC,CACH,CAAC,CACL,CAAA,CAEA,WAAA,CAAY,OAAO,CACrB,CC/FA,SAASC,EAAAA,CAAaC,CAAAA,CAAiE,CACrF,IAAMtB,CAAAA,CAAO,IAAI,IAAA,CAAK,CAAC,CAAA,CAAA,EAAIsB,CAAE,CAAA,GAAA,CAAK,CAAA,CAAG,CAAE,IAAA,CAAM,iBAAkB,CAAC,CAAA,CAC1DC,CAAAA,CAAM,MAAA,CAAO,GAAA,CAAI,eAAA,CAAgBvB,CAAI,CAAA,CAE3C,OAAO,IAAI,OAAA,CAAgB,CAACE,CAAAA,CAASC,CAAAA,CAAAA,EAAW,CAC9C,IAAMqB,CAAAA,CAAS,IAAI,MAAA,CAAOD,CAAG,CAAA,CAE7BC,CAAAA,CAAO,OAAA,CAAU,CAAC,CAAE,KAAA,CAAAnB,CAAAA,CAAO,OAAA,CAAAoB,CAAQ,CAAA,CAAA,EAAMtB,CAAAA,CAAOE,CAAAA,EAAS,IAAI,KAAA,CAAMoB,CAAO,CAAC,CAAA,CAC3ED,CAAAA,CAAO,SAAA,CAAY,CAAC,CAAE,IAAA,CAAAX,CAAK,CAAA,CAAA,EAAMA,CAAAA,GAAS,OAAA,EAAWX,CAAAA,CAAQsB,CAAM,CACrE,CAAC,CAAA,CAAE,OAAA,CAAQ,CAAA,CAAA,EAAM,CACf,MAAA,CAAO,GAAA,CAAI,eAAA,CAAgBD,CAAG,CAChC,CAAC,CACH,CAEA,IAAIG,EAAAA,CAEJ,MAAA,SAAeC,EAAAA,CAAAA,CAA6B,CAC1C,IAAIH,CAAAA,CAEJ,OAAIE,EAAAA,CACFF,CAAAA,CAAS,MAAME,EAAAA,CAAAA,CAEfA,EAAAA,CAAgBL,EAAAA,CAAaZ,EAAc,CAAA,CAE3Ce,CAAAA,CAAS,MAAME,EAAAA,CACfF,CAAAA,CAAO,gBAAA,CAAiB,OAAA,CAAS,CAAA,CAAA,EAAM,CAErCE,EAAAA,CAAgB,IAAA,CAChBF,CAAAA,CAAO,SAAA,CAAU,CACnB,CAAC,CAAA,CAAA,CAGIA,CACT,CAMA,IAAMI,EAAAA,CAA8B,CAAA,CAAA,EAAM,CACxC,IAAMC,CAAAA,CACJ,OAAO,MAAA,CAAO,eAAA,EAAoB,WAAA,EAAA,CACjC,OAAO,MAAA,CAAO,eAAA,CAAgB,SAAA,CAAU,aAAA,EAAkB,WAAA,EAEzD,OAAQ,MAAA,CAAO,eAAA,CAAgB,SAAA,CAAkB,MAAA,EAAW,WAAA,CAAA,CAC5DC,CAAAA,CAEJ,EAAA,CAAID,CAAAA,CACF,GAAI,CACF,IAAI,eAAA,CAAgB,CAAA,CAAG,CAAC,CAAA,CAAE,UAAA,CAAW,IAAI,CAAA,CACzCC,CAAAA,CAAuC,CAAA,CACzC,CAAA,UAAQ,CACNA,CAAAA,CAAuC,CAAA,CACzC,CAGF,OAAO,OAAO,MAAA,CAAO,iBAAA,EAAsB,WAAA,EAAeD,CAAAA,EAAsBC,CAClF,CAAA,CAEIC,EAAAA,CAEJ,SAASC,EAAAA,CAAAA,CAA0C,CACjD,OACED,EAAAA,EAAAA,CACCA,EAAAA,CAAAA,CAAgC,KAAA,CAAA,CAAA,EAAY,CAC3C,EAAA,CAAI,OAAO,MAAA,CAAO,cAAA,EAAmB,WAAA,EAAe,OAAO,MAAA,CAAO,MAAA,EAAW,WAAA,CAC3E,MAAO,CAAA,CAAA,CAGT,IAAIP,CAAAA,CAEJ,GAAI,CACFA,CAAAA,CAAS,MAAMH,EAAAA,CAAa,kCAAkC,CAChE,CAAA,UAAQ,CACN,MAAO,CAAA,CACT,CAEA,OAAAG,CAAAA,CAAO,SAAA,CAAU,CAAA,CAEV,CAAA,CACT,CAAA,CAAA,CAAG,CAAA,CAEP,CAEA,IAAIS,EAAAA,CAEJ,SAASC,EAAAA,CAAAA,CAAiC,CACxC,OACED,EAAAA,EAAAA,CACCA,EAAAA,CAAAA,CAAuB,KAAA,CAAA,CAAA,EAAY,CAClC,GAAI,CAGF,MAAA,CAFgB,MAAM,OAAA,CAAQ,GAAA,CAAI,CAACL,EAAAA,CAA4B,CAAA,CAAGI,EAAAA,CAAsB,CAAC,CAAC,CAAA,CAAA,CAE3E,KAAA,CAAMG,CAAAA,EAAUA,CAAM,CACvC,CAAA,UAAQ,CACN,MAAO,CAAA,CACT,CACF,CAAA,CAAA,CAAG,CAAA,CAEP,CAEe,SAARC,EAAAA,CACLpC,CAAAA,CACAN,CAAAA,CACAC,CAAAA,CACAY,CAAAA,CACAC,CAAAA,CACc,CACd,OAAO,IAAI,OAAA,CAAa,CAACN,CAAAA,CAASC,CAAAA,CAAAA,EAAW,CAC3C,GAAM,CAAE,KAAA,CAAAkC,CAAAA,CAAO,KAAA,CAAAC,CAAM,CAAA,CAAI,IAAI,cAAA,CAE7BD,CAAAA,CAAM,SAAA,CAAY,CAAC,CAAE,IAAA,CAAAxB,CAAK,CAAA,CAAA,EAAuC,CAC/D,EAAA,CAAI,OAAA,GAAWA,CAAAA,CAAM,CACnB,GAAM,CAAE,OAAA,CAAAY,CAAAA,CAAS,KAAA,CAAAc,CAAM,CAAA,CAAI1B,CAAAA,CAAK,KAAA,CAE1BO,CAAAA,CAAM,IAAI,KAAA,CAAMK,CAAO,CAAA,CAE7BL,CAAAA,CAAI,KAAA,CAAQmB,CAAAA,CAEZpC,CAAAA,CAAOiB,CAAG,CACZ,CAAA,KACElB,CAAAA,CAAQ,IAAI,GAAA,CAAIW,CAAAA,CAAK,MAAM,CAAC,CAAA,CAG9BwB,CAAAA,CAAM,KAAA,CAAM,CAAA,CACZC,CAAAA,CAAM,KAAA,CAAM,CACd,CAAA,CAEA,OAAA,CAAQ,GAAA,CAAI,CAACtC,CAAAA,CAAK,WAAA,CAAY,CAAA,CAAG2B,EAAAA,CAAU,CAAC,CAAC,CAAA,CAAE,IAAA,CAAK,CAAC,CAACb,CAAAA,CAAaU,CAAM,CAAA,CAAA,EACvEA,CAAAA,CAAO,WAAA,CAAY,CAAE,WAAA,CAAAV,CAAAA,CAAa,SAAA,CAAAnB,CAAAA,CAAW,QAAA,CAAAD,CAAAA,CAAU,OAAA,CAAAc,CAAAA,CAAS,IAAA,CAAAD,CAAK,CAAA,CAAgB,CAACO,CAAAA,CAAawB,CAAK,CAAC,CAC3G,CACF,CAAC,CACH,CClIA,MAAA,SAAOE,EAAAA,CACLxC,CAAAA,CACAN,CAAAA,CACAC,CAAAA,CACAY,CAAAA,CACAC,CAAAA,CACc,CACd,OAAI,MAAM0B,EAAAA,CAAc,CAAA,CACfE,EAAAA,CAAmCpC,CAAAA,CAAMN,CAAAA,CAAUC,CAAAA,CAAWY,CAAAA,CAAMC,CAAO,CAAA,CAG7EF,EAAAA,CAAoCN,CAAAA,CAAMN,CAAAA,CAAUC,CAAAA,CAAWY,CAAAA,CAAMC,CAAO,CACrF,CJXA,GAAM,CAAE,eAAA,CAAA1D,EAAAA,CAAiB,cAAA,CAAA2F,EAAe,CAAA,CAAIzG,6BAAAA,CAE5C,MAAA,SAAe0G,EAAAA,CACbC,CAAAA,CACAnD,CAAAA,CACAC,CAAAA,CACAmD,CAAAA,CACApC,CAAAA,CAC0B,CAC1B,GAAI,CACF,OAAO,MAAMgC,EAAAA,CAAwBG,CAAAA,CAAMnD,CAAAA,CAAOC,CAAAA,CAAQmD,CAAAA,CAAapC,CAAO,CAChF,CAAA,KAAA,CAASH,CAAAA,CAAO,CACd,OAAA,CAAQ,IAAA,CAAK,CAAA,2CAAA,EAA8CA,CAAK,CAAA,CAAA,CAAG,CACrE,CACF,CAEe,SAARwC,CAAAA,CAAAA,CAAgH,CACrH,GAAM,CAAC3F,CAAY,CAAA,CAAIJ,EAAAA,CAAgB,CAAA,CACjCgG,CAAAA,CAAcL,EAAAA,CAAgC,CAAA,CAE9CM,CAAAA,CAAkBC,oCAAAA,CAAuB,CAAA,CAK/C,OAAOzG,gCAAAA,CACJoG,CAAAA,CAAYC,CAAAA,CAAAA,EAA+D,CAC1E,GAAM,CACJ,OAAA,CAAS,CACP,qBAAA,CAAAK,CAAAA,CACA,0BAAA,CAAAC,CAAAA,CACA,qBAAA,CAAAC,CAAAA,CACA,sBAAA,CAAAC,CAAAA,CACA,oBAAA,CAAAC,CACF,CACF,CAAA,CAAIN,CAAAA,CAEJ,OAAIE,CAAAA,EAAAA,CAA0BL,CAAAA,EAAAA,CAAgBD,EAAAA,WAAgB,IAAA,CAAOA,CAAAA,CAAK,IAAA,CAAO,EAAA,CAAA,CAAA,CAAK,UAAA,CAAW,QAAQ,CAAA,CAChGG,CAAAA,CACL,yBAAA,CACAJ,EAAAA,CACEC,CAAAA,CACAU,CAAAA,CACAF,CAAAA,CACAD,CAAAA,CACAE,CACF,CACF,CAAA,CAGK,OAAA,CAAQ,OAAA,CAAmB,KAAA,CAAS,CAC7C,CAAA,CACA,CAACL,CAAAA,CAAiBD,CAAW,CAC/B,CACF,CK5DA,SAKOQ,EAAAA,CACLC,CAAAA,CACAC,CAAAA,CACM,CACF,OAAOD,CAAAA,EAAa,UAAA,CAAA,CAGtBA,CAAAA,CAAW,KAAA,CAAA,CAEX,OAAA,CAAQ,IAAA,CAAK,+FAA+F,CAAA,CAAA,CACnG,OAAOC,CAAAA,EAAS,WAAA,EAAe,CAAC,KAAA,CAAM,OAAA,CAAQA,CAAI,CAAA,EAC3D,OAAA,CAAQ,IAAA,CACN,2GACF,CAAA,CAGF,GAAM,CAAE,qBAAA,CAAAC,CAAsB,CAAA,CAAIzI,CAAAA,CAAoB,CAAA,CAGtD0I,8BAAAA,CAAU,CAAA,EAAMH,CAAAA,EAAYE,CAAAA,CAAsBF,CAAQ,CAAA,CAAG,CAAC,GAAIC,CAAAA,EAAQ,CAAC,CAAA,CAAID,CAAAA,CAAUE,CAAqB,CAAC,CACjH,CCzBA,SAKOE,EAAAA,CACLJ,CAAAA,CACAC,CAAAA,CACM,CACF,OAAOD,CAAAA,EAAa,UAAA,CAAA,CAGtBA,CAAAA,CAAW,KAAA,CAAA,CAEX,OAAA,CAAQ,IAAA,CAAK,gGAAgG,CAAA,CAAA,CACpG,OAAOC,CAAAA,EAAS,WAAA,EAAe,CAAC,KAAA,CAAM,OAAA,CAAQA,CAAI,CAAA,EAC3D,OAAA,CAAQ,IAAA,CACN,4GACF,CAAA,CAGF,GAAM,CAAE,sBAAA,CAAAI,CAAuB,CAAA,CAAI5I,CAAAA,CAAoB,CAAA,CAEvD0I,8BAAAA,CACE,CAAA,EAAMH,CAAAA,EAAYK,CAAAA,CAAuBL,CAAQ,CAAA,CAEjD,CAAC,GAAIC,CAAAA,EAAQ,CAAC,CAAA,CAAID,CAAAA,CAAUK,CAAsB,CACpD,CACF,CC5BA,GCIM,CACJ,gBAAA,CAAkBC,EAAAA,CAClB,SAAA,CAAWC,EAAAA,CACX,YAAA,CAAcC,EAChB,CAAA,CAAIrF,6CAAAA,CAAmD,CDLxC,SAARsF,EAAAA,CAAAA,CAA+E,CACpF,IAAMC,CAAAA,CAAiBF,EAAAA,CAA4B,CAAA,CAEnD,OAAOxH,gCAAAA,CAAY6C,EAAW6E,CAAAA,CAAe,CAAE,SAAA,CAAW,MAAA,CAAQ,GAAG7E,CAAQ,CAAC,CAAA,CAAG,CAAC6E,CAAc,CAAC,CACnG,CEPA,SAKOC,EAAAA,CAAAA,CAGG,CACR,GAAM,CAAE,oBAAA,CAAAC,CAAqB,CAAA,CAAInJ,CAAAA,CAAoB,CAAA,CAErD,OAAOuB,gCAAAA,CACL,GAAI6H,CAAAA,CAAAA,EAASD,CAAAA,CAAqB,OAAA,CAAQ,OAAA,CAAQ7E,CAAAA,EAAYA,CAAAA,CAAS,GAAG8E,CAAI,CAAC,CAAA,CAC/E,CAACD,CAAoB,CACvB,CACF,CCfA,SAIOE,EAAAA,CAAAA,CAA8C,CACnD,GAAM,CAAE,uBAAA,CAAAC,CAAwB,CAAA,CAAItJ,CAAAA,CAAoB,CAAA,CAExD,OAAOuB,gCAAAA,CACL,CAAA,EAAM+H,CAAAA,CAAwB,OAAA,CAAQ,OAAA,CAAQhF,CAAAA,EAAYA,CAAAA,CAAS,CAAE,QAAA,CAAU,QAAS,CAAC,CAAC,CAAA,CAC1F,CAACgF,CAAuB,CAC1B,CACF,CCXA,SAGOC,EAAAA,CAAAA,CAA6E,CAClF,IAAMN,CAAAA,CAAiBF,EAAAA,CAA4B,CAAA,CAEnD,OAAOxH,gCAAAA,CAAY6C,EAAW6E,CAAAA,CAAe,CAAE,SAAA,CAAW,IAAA,CAAM,GAAG7E,CAAQ,CAAC,CAAA,CAAG,CAAC6E,CAAc,CAAC,CACjG,CCPA,GAKM,CAAE,YAAA,CAAcO,EAAgB,CAAA,CAAIxI,6BAAAA,CAO3B,SAARyI,EAAAA,CAAAA,CAAkE,CACvE,IAAM/B,CAAAA,CAAgBG,CAAAA,CAAiB,CAAA,CACjC6B,CAAAA,CAAYF,EAAAA,CAAgB,CAAA,CAElC,OAAOjI,gCAAAA,CACLoI,EAAS,CAAA,CAIN,MAAA,QAAA,CAAA,CAAkB,CACjBA,CAAAA,EACEA,CAAAA,CAAM,MAAA,EACND,CAAAA,CACE,MAAM,OAAA,CAAQ,GAAA,CACZC,CAAAA,CAAM,GAAA,CAA+BhC,CAAAA,EAEnCD,CAAAA,CACEC,CAAAA,CACA,sBAAA,CAAuB,IAAA,CAAKA,CAAAA,CAAK,IAAI,CAAA,CAAI,SAAA,CAAY,0BACvD,CAAA,CAAE,IAAA,CAAKiC,CAAAA,EAAAA,CAAiB,CACtB,IAAA,CAAMjC,CAAAA,CAAK,IAAA,CACX,IAAA,CAAMA,CAAAA,CAAK,IAAA,CACX,SAAA,CAAWiC,CAAAA,EAAA,IAAA,CAAA,KAAA,CAAA,CAAAA,CAAAA,CAAc,QAAA,CAAA,CAAA,CAIzB,GAAA,CAAK,GAAA,CAAI,eAAA,CAAgB,IAAI,IAAA,CAAK,CAACjC,CAAI,CAAA,CAAG,CAAE,IAAA,CAAM,0BAA2B,CAAC,CAAC,CACjF,CAAA,CAAE,CACJ,CACF,CACF,CACJ,CAAA,CAAA,CAAG,CACL,CAAA,CACA,CAACD,CAAAA,CAAegC,CAAS,CAC3B,CACF,CC/CA,GAMM,CAAE,cAAA,CAAgBG,EAAkB,CAAA,CAAI7I,6BAAAA,CAW/B,SAAR8I,EAAAA,CAAAA,CAA+C,CACpD,IAAMpC,CAAAA,CAAgBG,CAAAA,CAAiB,CAAA,CACjCkC,CAAAA,CAAcF,EAAAA,CAAkB,CAAA,CAEtC,OAAOtI,gCAAAA,KACL,CAAOyI,CAAAA,CAAMC,CAAAA,CAAQ,CAAE,WAAA,CAAAC,CAAAA,CAAa,WAAA,CAAAC,CAAY,CAAA,CAAI,CAAC,CAAA,CAAA,EAAM,CACzDJ,CAAAA,CAAYC,CAAAA,CAAMC,CAAAA,CAAQ,CACxB,WAAA,CAAaE,CAAAA,CACT,MAAM,OAAA,CAAQ,GAAA,CACZ,CAAC,GAAGA,CAAW,CAAA,CAAE,GAAA,CAAI,KAAA,CAAO,CAAE,IAAA,CAAAnF,CAAAA,CAAM,YAAA,CAAA4E,CAAa,CAAA,CAAA,EAAA,CAC3C,CAACA,CAAAA,EAAgB5E,EAAAA,WAAgB,IAAA,EAAA,CACnC4E,CAAAA,CAAe,MAAMlC,CAAAA,CAAc1C,CAAI,CAAA,CAAA,CAGlC,CAAE,IAAA,CAAAA,CAAAA,CAAM,YAAA,CAAA4E,CAAa,CAAA,CAC7B,CACH,CAAA,CACA,CAAC,CAAA,CACL,WAAA,CAAAM,CACF,CAAC,CACH,CAAA,CACA,CAACxC,CAAAA,CAAeqC,CAAW,CAC7B,CACF,CCpCe,SAARK,CAAAA,CAAAA,CAA6D,CAClE,MAAO,CAACpK,CAAAA,CAAoB,CAAA,CAAE,iBAAiB,CACjD,CCNA,GAGM,CAAE,eAAA,CAAAqK,EAAAA,CAAiB,wBAAA,CAAAC,EAAyB,CAAA,CAAItJ,6BAAAA,CAEtD,SAASuJ,EAAAA,CAAAA,CAAgD,CACvD,GAAM,CAACC,CAAY,CAAA,CAAIH,EAAAA,CAAgB,CAAA,CAEvC,OAAO7J,4BAAAA,CACL,CAAA,EACE,MAAA,CAAO,MAAA,CAAO,CACZ,CAAC,CAAC,MAAA,CAAO,MAAA,CAAOgK,CAAY,CAAA,CAAE,IAAA,CAE5B,CAAC,CAAE,IAAA,CAAAC,CAAAA,CAAM,IAAA,CAAAlF,CAAK,CAAA,CAAA,EAAMkF,CAAAA,GAAS,MAAA,EAAUlF,CAAAA,GAAS,YAClD,CACF,CAAC,CAAA,CACH,CAACiF,CAAY,CACf,CACF,CAEA,IAAME,EAAAA,CAAuB,CAAA,CAAA,EAAM,CACjC,GAAM,CAACF,CAAY,CAAA,CAAIH,EAAAA,CAAgB,CAAA,CACjC,CAACM,CAAO,CAAA,CAAIJ,EAAAA,CAA0B,CAAA,CACtC,CAACK,CAAM,CAAA,CAAIP,EAAAA,CAAgB,CAAA,CAAA,CAAQ,CAAA,CACnCQ,CAAAA,CAAwBP,EAAAA,CAAyB,CAAA,CAEvD,OAAOQ,eAAAA,CAAA,aAAA,CAACC,eAAAA,CAAA,IAAA,CAAUF,CAAAA,CAAsB,CAAE,YAAA,CAAAL,CAAAA,CAAc,MAAA,CAAAI,CAAAA,CAAQ,OAAA,CAAAD,CAAQ,CAAC,CAAE,CAC7E,CAAA,CAEOK,EAAAA,aAAQN,EAAAA,CC7Bf,IAAMO,EAAAA,CAAU,CACd,mBAAA,CAAqB,wBAAA,CACrB,UAAA,CAAY,aAAA,CACZ,cAAA,CAAgB,iBAAA,CAChB,eAAA,CAAiB,kBAAA,CACjB,oBAAA,CAAsB,yBAAA,CACtB,wBAAA,CAA0B,8BAAA,CAC1B,oCAAA,CAAsC,4CAAA,CACtC,uBAAA,CAAyB,4BAAA,CACzB,gBAAA,CAAkB,qBAAA,CAClB,cAAA,CAAgB,oBAAA,CAChB,qBAAA,CAAuB,yBAAA,CACvB,eAAA,CAAiB,kBAAA,CACjB,cAAA,CAAgB,kBAClB,CAAA,CAEOC,CAAAA,aAAQD,EAAAA,CChBf,gGAEe,kCAI2D,ICLpExJ,EAAAA,CAAU,CAAC,yBAAA,CAA0B,iCAAA,CAAkC,uCAAA,CAAwC,+CAAA,CAAgD,uCAAA,CAAwC,+CAAA,CAAgD,8BAAA,CAA+B,sCAAsC,CAAA,CAC3T0J,EAAAA,CAAQ1J,EAAAA,CAET2J,EAAAA,CAA4B3J,EAAAA,CAAQ,yBAAyB,CAAA,CAGnE,IAAM4J,EAAAA,CAA0C5J,EAAAA,CAAQ,uCAAuC,CAAA,CAG/F,IAAM6J,EAAAA,CAA0C7J,EAAAA,CAAQ,uCAAuC,CAAA,CAG/F,IAAM8J,EAAAA,CAAiC9J,EAAAA,CAAQ,8BAA8B,CAAA,CCb7E,oECE0B,ICEpB+J,EAAAA,CAAiB1L,kCAAAA,KAAuC,CAAS,CAAA,CAEhEkD,EAAAA,aAAQwI,EAAAA,CCAA,SAARC,EAAAA,CAAAA,CAAkD,CACvD,IAAM5L,CAAAA,CAAUI,+BAAAA,EAAkB,CAAA,CAElC,EAAA,CAAI,CAACJ,CAAAA,CACH,MAAM,IAAI,KAAA,CAAM,oFAAoF,CAAA,CAGtG,OAAOA,CACT,CCFe,SAAR6L,EAAAA,CAAAA,CAA0E,CAC/E,OAAOD,EAAAA,CAAkB,CAAA,CAAE,yBAC7B,CCZA,GAWM,CACJ,YAAA,CAAc,CAAE,SAAA,CAAAE,EAAAA,CAAW,QAAA,CAAAC,EAAAA,CAAU,QAAA,CAAAC,EAAS,CAChD,CAAA,CAAIC,kCAAAA,CAEE,CAAE,kBAAA,CAAAC,EAAAA,CAAoB,eAAA,CAAAC,EAAAA,CAAiB,YAAA,CAAAjL,EAAa,CAAA,CAAIC,6BAAAA,CAExDiL,EAAAA,CAAa,CACjB,UAAA,CAAY,QAAA,CACZ,OAAA,CAAS,MACX,CAAA,CAEMC,EAAAA,CAA+BC,2BAAAA,6BACnCvI,CACE,SAAA,CAAWwI,+BAAAA,6BAASC,CAAQ,CAC9B,CAAC,CAAA,CACDC,+BAAAA,CACF,CAAA,CAIA,SAASC,EAAAA,CAAkB7L,CAAAA,CAA+B,CACxD,GAAM,CAAE,SAAA,CAAA8L,CAAU,CAAA,CAAIC,gCAAAA,EAAcP,CAA8BxL,CAAK,CAAA,CAEjE,CAACgM,CAAe,CAAA,CAAIX,EAAAA,CAAmB,CAAA,CACvC,CAACY,CAAY,CAAA,CAAIX,EAAAA,CAAgB,CAAA,CACjC,CAAC,CAAE,iBAAA,CAAmBY,CAA0B,CAAC,CAAA,CAAI1M,CAAAA,CAAY,CAAA,CACjEiC,CAAAA,CAAWpB,EAAAA,CAAa,CAAA,CACxB8L,CAAAA,CAAgBC,gCAAAA,CAAwB,CAAEb,EAAU,CAAA,CAAI,EAAA,CAE9D,OAAOU,CAAAA,GAAiBf,EAAAA,EAAYe,CAAAA,GAAiBd,EAAAA,CACnDf,eAAAA,CAAA,aAAA,CAAC,GAAA,CAAA,CACC,SAAA,CAAWzI,kCAAAA,CAAWuK,CAA4B,EAAA,CAAIC,CAAAA,CAAeL,CAAAA,CAAW,QAAQ,CAAA,CACxF,aAAA,CAAatB,CAAAA,CAAQ,gBAAA,CAAA,CAEpByB,CAAAA,GAAiBf,EAAAA,EAAYzJ,CAAAA,CAAS,uBAAuB,CAChE,CAAA,CAEAwK,CAAAA,GAAiBhB,EAAAA,EAAAA,CACde,CAAAA,CAAgB,MAAA,CACf5B,eAAAA,CAAA,aAAA,CAAC,GAAA,CAAA,CACC,SAAA,CAAWzI,kCAAAA,CAAWuK,CAA4B,EAAA,CAAIC,CAAAA,CAAeL,CAAAA,CAAW,WAAW,CAAA,CAC3F,aAAA,CAAatB,CAAAA,CAAQ,gBAAA,CAAA,CAEpBwB,CAAAA,CAAgB,GAAA,CAAI,CAACK,CAAAA,CAASC,CAAAA,CAAAA,EAC7BlC,eAAAA,CAAA,aAAA,CAAC,MAAA,CAAA,CAAK,GAAA,CAAKkC,CAAAA,CAAAA,CACRD,CAAAA,CAAQ,MAEX,CACD,CACH,CAAA,CAEAjC,eAAAA,CAAA,aAAA,CAAC,GAAA,CAAA,CACC,SAAA,CAAWzI,kCAAAA,CAAWuK,CAA4B,EAAA,CAAIC,CAAAA,CAAeL,CAAAA,CAAW,QAAQ,CAAA,CACxF,aAAA,CAAatB,CAAAA,CAAQ,gBAAA,CAAA,CAEpB/I,CAAAA,CAAS,wBAAwB,CACpC,CAAA,CAGR,CAKA,IAAO8K,EAAAA,CAAQxM,yBAAAA,EAAsB,CAAA,CC1ErC,iGAGoB,SCLbyM,EAAAA,CAAoCC,CAAAA,CAAqBC,CAAAA,CAAyB,CACvF,IAAMC,CAAAA,CAAe,QAAA,CAAS,aAAA,CAAc,OAAO,CAAA,CAEnDD,CAAAA,EAASC,CAAAA,CAAa,YAAA,CAAa,OAAA,CAASD,CAAK,CAAA,CACjD,QAAA,CAAS,IAAA,CAAK,WAAA,CAAYC,CAAY,CAAA,CAEtC,GAAI,CACF,OAAAA,CAAAA,CAAa,KAAA,CAAM,UAAA,CAAW,MAAA,CAASF,CAAAA,CAAc,IAAA,CAAM,CAAC,CAAA,CAErD,CAAA,CACT,CAAA,UAAQ,CACN,MAAO,CAAA,CACT,CAAA,OAAE,CACA,QAAA,CAAS,IAAA,CAAK,WAAA,CAAYE,CAAY,CACxC,CACF,CCde,SAARC,EAAAA,CAAAA,CAA2D,CAChE,GAAM,CAAE,KAAA,CAAAF,CAAM,CAAA,CAAIpN,CAAAA,CAAoB,CAAA,CAEtC,OAAO,MAAA,CAAO,MAAA,CAAO,CAACoN,CAAK,CAAC,CAC9B,CCLA,SAEOG,EAAAA,CAAgCC,CAAAA,CAAwB,CAC7D,IAAMC,CAAAA,CAAMC,2BAAAA,CAAU,CAChBC,CAAAA,CAAcnN,4BAAAA,CAClB,CAAA,EACE,MAAA,CAAO,MAAA,CACL,CAAC,CAAA,CACD,CACE,OAAA,CAAS,CACP,GAAA,CAAK,CAAA,CAAA,EAAMiN,CAAAA,CAAI,OACjB,CACF,CACF,CAAA,CACF,CAAC,CACH,CAAA,CAEA,OAAAA,CAAAA,CAAI,OAAA,CAAUD,CAAAA,CAEPG,CACT,CCdA,GAAM,CAAE,WAAA,CAAAC,EAAY,CAAA,CAAI5M,6BAAAA,CAElB6M,EAAAA,CAAyB,CAC7B,MAAA,CACA,gBAAA,CACA,UAAA,CACA,OAAA,CACA,OAAA,CACA,QAAA,CACA,UAAA,CACA,QAAA,CACA,KAAA,CACA,MAAA,CACA,MAAA,CACA,KAAA,CACA,MACF,CAAA,CASA,SAASC,EAAAA,CAA8BC,CAAAA,CAAqD,CAC1F,GAAM,CAAE,iBAAA,CAAAC,CAAAA,CAAmB,QAAA,CAAAC,CAAAA,CAAU,OAAA,CAAAC,CAAAA,CAAS,IAAA,CAAA3I,CAAK,CAAA,CAAIwI,CAAAA,CAEvD,OACGG,CAAAA,GAAY,OAAA,EAAWL,EAAAA,CAAuB,QAAA,CAAStI,CAAI,CAAA,EAAK,CAAC0I,CAAAA,EACjEC,CAAAA,GAAY,UAAA,EAAc,CAACD,CAAAA,EAC5BD,CAEJ,CAEA,SAASG,EAAAA,CACPC,CAAAA,CACAC,CAAAA,CACAC,CAAAA,CAIA,CACA,IAAIC,CAAAA,CAgBJ,MAAO,CACL,KAAA,CARkB,CAAA,CAAA,EAAM,CACpBA,CAAAA,EAAAA,CACFF,CAAAA,CAAM,OAAA,CAAQ9I,CAAAA,EAAQ6I,CAAAA,CAAO,mBAAA,CAAoB7I,CAAAA,CAAM+I,CAAO,CAAC,CAAA,CAC/DC,CAAAA,CAAa,KAAA,CAAA,CAEjB,CAAA,CAIE,MAAA,CAhBgB,CAAA,CAAA,EAAM,CACjBA,CAAAA,EAAAA,CACHF,CAAAA,CAAM,OAAA,CAAQ9I,CAAAA,EAAQ6I,CAAAA,CAAO,gBAAA,CAAiB7I,CAAAA,CAAM+I,CAAO,CAAC,CAAA,CAC5DC,CAAAA,CAAa,CAAA,CAAA,CAEjB,CAYA,CACF,CAMA,SAASC,EAAAA,CACPC,CAAAA,CACAC,CAAAA,CACA,CACA,GAAM,CAAC,CAAE,IAAA,CAAAC,CAAK,CAAC,CAAA,CAAIf,EAAAA,CAAY,CAAA,CAEzBgB,CAAAA,CAAelB,2BAAAA,CAAQ,CAAA,CACvBmB,CAAAA,CAAsBnB,2BAAAA,CAAO,CAAI,CAAA,CACjCoB,CAAAA,CAAqBpB,2BAAAA,CAAO,CAAK,CAAA,CAEjCqB,CAAAA,CAAoBvO,4BAAAA,CACxB,CAAA,EACE2N,EAAAA,CACE,QAAA,CACA,CACE,WAAA,CACA,WAAA,CACA,SAAA,CACA,aAAA,CACA,aAAA,CACA,WAAA,CACA,WAAA,CACA,YAAA,CACA,UACF,CAAA,CACAvI,CAAAA,EAAS,CArGjB,IAAAoJ,CAAAA,CAAAA,CAAAA,CAsGeA,CAAAA,CAAApJ,CAAAA,CAAM,MAAA,CAAuB,QAAA,CAAA,EAA7B,IAAA,CAAA,KAAA,CAAA,CAAAoJ,CAAAA,CAAuC,WAAA,CAAA,CAAA,CAAA,GAAkB,MAAA,EAAA,CAC5DH,CAAAA,CAAoB,OAAA,CAAU,CAAA,CAAA,CAC9BE,CAAAA,CAAkB,KAAA,CAAM,CAAA,CAE5B,CACF,CAAA,CACF,CAACF,CAAmB,CACtB,CAAA,CAEMI,CAAAA,CAAqB1N,gCAAAA,CACzB2N,EAAuB,CACjBJ,CAAAA,CAAmB,OAAA,GAAYI,CAAAA,EAAAA,CACjCJ,CAAAA,CAAmB,OAAA,CAAUI,CAAAA,CAC7BA,CAAAA,EAAAA,CAAuBR,CAAAA,EAAA,IAAA,EAAAA,CAAAA,CAAmB,OAAA,CAAA,CAAA,CAAA,CAE9C,CAAA,CACA,CAACI,CAAAA,CAAoBJ,CAAiB,CACxC,CAAA,CAEMS,CAAAA,CAAgB5N,gCAAAA,CACnBqE,EAAyB,CACpBA,CAAAA,CAAM,MAAA,EAAUA,CAAAA,CAAM,OAAA,EAAWA,CAAAA,CAAM,OAAA,EAAA,CAIvCA,CAAAA,CAAM,MAAA,GAAW6I,CAAAA,CAAU,OAAA,EAC7BQ,CAAAA,CAAmB,CAAA,CAAI,CAAA,CAGzBJ,CAAAA,CAAoB,OAAA,CAAU,CAAA,CAAA,CAChC,CAAA,CACA,CAACA,CAAAA,CAAqBI,CAAAA,CAAoBR,CAAS,CACrD,CAAA,CAEMW,CAAAA,CAAoB7N,gCAAAA,CAAY,CAAA,EAAM,CAC1CsN,CAAAA,CAAoB,OAAA,CAAU,CAAA,CAChC,CAAA,CAAG,CAACA,CAAmB,CAAC,CAAA,CAElBQ,CAAAA,CAAc9N,gCAAAA,CACjB,CAAE,MAAA,CAAA6M,CAAO,CAAA,CAAA,EAAa,CACrBA,CAAAA,GAAWK,CAAAA,CAAU,OAAA,EAAA,CAClBI,CAAAA,CAAoB,OAAA,EAAWf,EAAAA,CAA8BM,CAA0B,CAAA,CAAA,EACxFa,CAAAA,CAAmB,CAAA,CAAI,CAC3B,CAAA,CACA,CAACJ,CAAAA,CAAqBI,CAAAA,CAAoBR,CAAS,CACrD,CAAA,CAEMa,CAAAA,CAAa/N,gCAAAA,CAChBqE,EAAiB,CACZA,CAAAA,CAAM,MAAA,GAAW6I,CAAAA,CAAU,OAAA,EAAWK,CAAAA,CAAmB,OAAA,EAAA,CAC3DF,CAAAA,CAAa,OAAA,CAAUD,CAAAA,CAAK,GAAA,CAAI,CAAA,CAEhCM,CAAAA,CAAmB,CAAA,CAAK,CAAA,CAE5B,CAAA,CACA,CAACL,CAAAA,CAAcD,CAAAA,CAAMG,CAAAA,CAAoBG,CAAAA,CAAoBR,CAAS,CACxE,CAAA,CAEMc,CAAAA,CAAyBhO,gCAAAA,CAAY,CAAA,EAAM,CAC3C,QAAA,CAAS,eAAA,GAAoB,QAAA,EAAA,CAI3BoN,CAAAA,CAAK,GAAA,CAAI,CAAA,CAAIC,CAAAA,CAAa,OAAA,CAAU,GAAA,EAAA,CACtCC,CAAAA,CAAoB,OAAA,CAAU,CAAA,CAAA,CAAA,CAGhCE,CAAAA,CAAkB,MAAA,CAAO,CAAA,CAE7B,CAAA,CAAG,CAACH,CAAAA,CAAcD,CAAAA,CAAMI,CAAAA,CAAmBF,CAAmB,CAAC,CAAA,CAE/DnG,8BAAAA,CAAU,CAAA,EAAA,CACR,QAAA,CAAS,gBAAA,CAAiB,SAAA,CAAWyG,CAAAA,CAAe,CAAA,CAAI,CAAA,CACxD,QAAA,CAAS,gBAAA,CAAiB,WAAA,CAAaC,CAAAA,CAAmB,CAAA,CAAI,CAAA,CAC9D,QAAA,CAAS,gBAAA,CAAiB,aAAA,CAAeA,CAAAA,CAAmB,CAAA,CAAI,CAAA,CAChE,QAAA,CAAS,gBAAA,CAAiB,YAAA,CAAcA,CAAAA,CAAmB,CAAA,CAAI,CAAA,CAC/D,QAAA,CAAS,gBAAA,CAAiB,kBAAA,CAAoBG,CAAAA,CAAwB,CAAA,CAAI,CAAA,CAEnE,CAAA,CAAA,EAAM,CACX,QAAA,CAAS,mBAAA,CAAoB,SAAA,CAAWJ,CAAa,CAAA,CACrD,QAAA,CAAS,mBAAA,CAAoB,WAAA,CAAaC,CAAiB,CAAA,CAC3D,QAAA,CAAS,mBAAA,CAAoB,aAAA,CAAeA,CAAiB,CAAA,CAC7D,QAAA,CAAS,mBAAA,CAAoB,YAAA,CAAcA,CAAiB,CAAA,CAC5D,QAAA,CAAS,mBAAA,CAAoB,kBAAA,CAAoBG,CAAsB,CACzE,CAAA,CAAA,CACC,CAACJ,CAAAA,CAAeC,CAAAA,CAAmBG,CAAsB,CAAC,CAAA,CAE7D7G,8BAAAA,CAAU,CAAA,EAAM,CACd,GAAM,CAAE,OAAA,CAAS0F,CAAO,CAAA,CAAIK,CAAAA,CAE5B,OAAAL,CAAAA,CAAO,gBAAA,CAAiB,MAAA,CAAQkB,CAAAA,CAAY,CAAA,CAAI,CAAA,CAChDlB,CAAAA,CAAO,gBAAA,CAAiB,OAAA,CAASiB,CAAAA,CAAa,CAAA,CAAI,CAAA,CAE3C,CAAA,CAAA,EAAM,CACXjB,CAAAA,CAAO,mBAAA,CAAoB,MAAA,CAAQkB,CAAU,CAAA,CAC7ClB,CAAAA,CAAO,mBAAA,CAAoB,OAAA,CAASiB,CAAW,CACjD,CAIF,CAAA,CAAG,CAACC,CAAAA,CAAYD,CAAAA,CAAaZ,CAAS,CAAC,CAAA,CAEvC/F,8BAAAA,CAAU,CAAA,EAAA,CACRqG,CAAAA,CAAkB,MAAA,CAAO,CAAA,CAElB,CAAA,CAAA,EAAMA,CAAAA,CAAkB,KAAA,CAAM,CAAA,CAAA,CACpC,CAACA,CAAiB,CAAC,CACxB,CAEA,SAASS,EAAAA,CACPf,CAAAA,CACAC,CAAAA,CACA,CACA,IAAMW,CAAAA,CAAc9N,gCAAAA,CAAY,CAAA,EAAM,CACpC,GAAM,CAAE,OAAA,CAAAkO,CAAQ,CAAA,CAAIhB,CAAAA,CAAAA,CAIjBgB,CAAAA,CAAQ,OAAA,EAAYA,CAAAA,CAAQ,iBAAA,CAAA,CAAwD,IAAA,CACnFA,CAAAA,CACA,gBACF,CAAA,EAAA,CAEAf,CAAAA,EAAA,IAAA,EAAAA,CAAAA,CAAmB,OAAA,CAAA,CAAA,CAEvB,CAAA,CAAG,CAACA,CAAAA,CAAmBD,CAAS,CAAC,CAAA,CAEjC/F,8BAAAA,CAAU,CAAA,EAAM,CACd,GAAM,CAAE,OAAA,CAAS0F,CAAO,CAAA,CAAIK,CAAAA,CAE5B,OAAAL,CAAAA,CAAO,gBAAA,CAAiB,OAAA,CAASiB,CAAW,CAAA,CAErC,CAAA,CAAA,EAAMjB,CAAAA,CAAO,mBAAA,CAAoB,OAAA,CAASiB,CAAW,CAK9D,CAAA,CAAG,CAACA,CAAAA,CAAaZ,CAAAA,CAAWA,CAAAA,CAAU,OAAO,CAAC,CAChD,CAEe,SAARiB,EAAAA,CAAwCjB,CAAAA,CAAmCkB,CAAAA,CAA4B,CAC5G,GAAM,CAACvC,CAAK,CAAA,CAAIE,EAAAA,CAAS,CAAA,CACnBoB,CAAAA,CAAoBnB,EAAAA,CAAYoC,CAAc,CAAA,CAI9CC,CAAAA,CAAWlC,2BAAAA,CAAY,CAAA,CAIDlN,4BAAAA,CAAQ,CAAA,EAAM0M,EAAAA,CAAmB,gBAAA,CAAkB0C,CAAAA,CAAS,OAAO,CAAA,CAAG,CAACA,CAAQ,CAAC,CAAA,CAM1GJ,EAAAA,CAAwCf,CAAAA,CAAWC,CAAiB,CAAA,CAGpEF,EAAAA,CAAwCC,CAAAA,CAAWC,CAAiB,CAExE,CCnQe,SAARmB,EAAAA,CAAiCpB,CAAAA,CAA8C,CACpF,GAAM,CAACqB,CAAAA,CAAcC,CAAe,CAAA,CAAIC,6BAAAA,CAAS,CAAK,CAAA,CAEhDV,CAAAA,CAAa/N,gCAAAA,CAAY,CAAA,EAAMwO,CAAAA,CAAgB,CAAA,CAAK,CAAA,CAAG,CAACA,CAAe,CAAC,CAAA,CACxEE,CAAAA,CAAqB1O,gCAAAA,CAAY,CAAA,EAAMwO,CAAAA,CAAgB,CAAA,CAAI,CAAA,CAAG,CAACA,CAAe,CAAC,CAAA,CAErF,OAAAL,EAAAA,CAAuBjB,CAAAA,CAAWwB,CAAkB,CAAA,CAEpDvH,8BAAAA,CAAU,CAAA,EAAM,CACd,GAAM,CAAE,OAAA,CAAA+G,CAAQ,CAAA,CAAIhB,CAAAA,CAEpB,OAAAgB,CAAAA,CAAQ,gBAAA,CAAiB,MAAA,CAAQH,CAAU,CAAA,CAEpC,CAAA,CAAA,EAAMG,CAAAA,CAAQ,mBAAA,CAAoB,MAAA,CAAQH,CAAU,CAC7D,CAAA,CAAG,CAACA,CAAAA,CAAYb,CAAS,CAAC,CAAA,CAEnB,CAACqB,CAAY,CACtB,CClBA,IAgBMI,EAAAA,CAA0BtK,CAAAA,EAASA,CAAAA,CAAM,cAAA,CAAe,CAAA,CAExDuK,EAAAA,CAA8BhE,2BAAAA,6BAClCvI,CACE,aAAA,CAAewI,+BAAAA,8BAASgE,CAAS,CAAA,CACjC,mBAAA,CAAqBhE,+BAAAA,6BAASC,CAAQ,CAAA,CACtC,QAAA,CAAUD,+BAAAA,gCAASiE,CAAW,CAAA,CAC9B,SAAA,CAAWjE,+BAAAA,6BAASC,CAAQ,CAAA,CAC5B,aAAA,CAAeD,+BAAAA,6BAASC,CAAQ,CAAA,CAChC,QAAA,CAAUD,+BAAAA,8BAASgE,CAAS,CAAA,CAC5B,OAAA,CAASE,6BAAAA,CAA6C9C,EAAS+C,yBAAAA,gCAAGC,CAAU,CAAGhD,CAAK,CAAC,CAAA,CACrF,QAAA,CAAUpB,+BAAAA,6BAASqE,CAAQ,CAAA,CAC3B,KAAA,CAAOrE,+BAAAA,6BAASC,CAAQ,CAAA,CACxB,IAAA,CAAMqE,8BAAAA,QAAgB,CACxB,CAAC,CAAA,CACDpE,+BAAAA,CACF,CAAA,CAsBMqE,EAAAA,CAAmBC,+BAAAA,CAErB,CACE,aAAA,CAAeC,CAAAA,CACf,mBAAA,CAAqBC,CAAAA,CACrB,QAAA,CAAAC,CAAAA,CACA,SAAA,CAAAvE,CAAAA,CACA,aAAA,CAAewE,CAAAA,CACf,QAAA,CAAAC,CAAAA,CACA,OAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,KAAA,CAAAC,CACF,CAAA,CACA3D,CAAAA,CAAAA,EAEA3C,eAAAA,CAAA,aAAA,CAAC,QAAA,CAAA,CACC,eAAA,CAAemG,CAAAA,EAAY,KAAA,CAAA,CAC3B,aAAA,CAAaJ,CAAAA,CACb,mBAAA,CAAmBC,CAAAA,CACnB,SAAA,CAAWtE,CAAAA,CACX,aAAA,CAAawE,CAAAA,CACb,OAAA,CAASC,CAAAA,CAAWf,EAAAA,CAA0BgB,CAAAA,CAC9C,GAAA,CAAKzD,CAAAA,CACL,QAAA,CAAUwD,CAAAA,CAAW,CAAA,CAAA,CAAKE,CAAAA,CAC1B,KAAA,CAAOC,CAAAA,CACP,IAAA,CAAK,QAAA,CAAA,CAEJL,CACH,CAEJ,CAAA,CAEAJ,EAAAA,CAAiB,WAAA,CAAc,kBAAA,CAE/B,IAAOU,EAAAA,CAAQ5Q,yBAAAA,EAAqB,CAAA,CCjFpC,GAAM,CAAE,eAAA,CAAAqB,EAAgB,CAAA,CAAId,6BAAAA,CAEtBsQ,EAAAA,CAAwBnF,2BAAAA,6BAC5BvI,CACE,GAAA,CAAKwI,+BAAAA,6BAASC,CAAQ,CAAA,CACtB,QAAA,CAAUD,+BAAAA,gCAASiE,CAAW,CAAA,CAC9B,SAAA,CAAWjE,+BAAAA,6BAASC,CAAQ,CAAA,CAC5B,aAAA,CAAeD,+BAAAA,6BAASC,CAAQ,CAAA,CAChC,QAAA,CAAUD,+BAAAA,8BAASgE,CAAS,CAAA,CAC5B,OAAA,CAAShE,+BAAAA,6BAASkE,CAA6C9C,EAAS+C,yBAAAA,gCAAGC,CAAU,CAAGhD,CAAK,CAAC,CAAC,CACjG,CAAC,CAAA,CACDlB,+BAAAA,CACF,CAAA,CAIA,SAASiF,EAAAA,CAAW7Q,CAAAA,CAAwB,CAC1C,GAAM,CACJ,GAAA,CAAA8Q,CAAAA,CACA,QAAA,CAAAT,CAAAA,CACA,SAAA,CAAAvE,CAAAA,CACA,aAAA,CAAeiF,CAAAA,CACf,QAAA,CAAAR,CAAAA,CACA,OAAA,CAAAC,CACF,CAAA,CAAIzE,gCAAAA,EAAc6E,CAAuB5Q,CAAK,CAAA,CAExC,CAAC,CAAE,aAAA,CAAegR,CAAsB,CAAC,CAAA,CAAIxR,CAAAA,CAAY,CAAA,CACzD,CAAC,CAAE,sBAAA,CAAAyR,CAAuB,CAAC,CAAA,CAAI7P,EAAAA,CAAgB,CAAA,CAC/C8P,CAAAA,CAAYlE,2BAAAA,CAA0B,CAEtC,CAACoC,CAAY,CAAA,CAAID,EAAAA,CAAgB+B,CAAS,CAAA,CAEhD,OACE9G,eAAAA,CAAA,aAAA,CAACuG,EAAAA,CAAA,CACC,SAAA,CAAWhP,kCAAAA,CACTqP,CAAwB,EAAA,CACxB,sBAAA,CACA,CACE,qCAAA,CAAuC5B,CAAAA,CACvC,+BAAA,CAAiC6B,CAAAA,GAA2B,QAAA,EAAYA,CAAAA,GAA2B,KACrG,CAAA,CACAnF,CACF,CAAA,CACA,aAAA,CAAaiF,CAAAA,CACb,QAAA,CAAUR,CAAAA,CACV,OAAA,CAASA,CAAAA,CAAW,KAAA,CAAA,CAAYC,CAAAA,CAChC,GAAA,CAAKU,CAAAA,CACL,KAAA,CAAOJ,CAAAA,CACP,IAAA,CAAK,QAAA,CAAA,CAEL1G,eAAAA,CAAA,aAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,6BAAA,CAA8B,CAAA,CAC5CiG,CAAAA,CACDjG,eAAAA,CAAA,aAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,gDAAA,CAAiD,CAClE,CAEJ,CAEA,IAAO+G,EAAAA,CAAQpR,yBAAAA,EAAe,CAAA,CPjD9B,GAAM,CAAE,YAAA,CAAAqR,CAAa,CAAA,CAAIhG,kCAAAA,CAEnB,CACJ,kBAAA,CAAAC,EAAAA,CACA,eAAA,CAAAC,EAAAA,CACA,YAAA,CAAAjL,EAAAA,CACA,eAAA,CAAAgR,EAAAA,CACA,8BAAA,CAAAC,EAAAA,CACA,eAAA,CAAAC,EAAAA,CACA,cAAA,CAAAC,EAAAA,CACA,UAAA,CAAAC,EACF,CAAA,CAAInR,6BAAAA,CAEEiL,EAAAA,CAAa,CACjB,OAAA,CAAS,MAAA,CAIT,cAAA,CAAgB,CACd,KAAA,CAAO,aAAA,CACP,MAAA,CAAQ,CAAA,CACR,IAAA,CAAM,CAAA,GAAA,CACN,QAAA,CAAU,QAAA,CACV,QAAA,CAAU,UAAA,CACV,GAAA,CAAK,CAAA,CACL,UAAA,CAAY,QAAA,CACZ,KAAA,CAAO,CACT,CACF,CAAA,CAEA,SAASmG,EAAAA,CAAAA,CAAuC,CAC9C,GAAM,CAAC,CAAEC,CAAU,CAAA,CAAIN,EAAAA,CAAgB,CAAA,CACjC,CAAC,CAAEO,CAA8B,CAAA,CAAIN,EAAAA,CAA+B,CAAA,CACpE,CAACtF,CAAe,CAAA,CAAIX,EAAAA,CAAmB,CAAA,CACvC,CAACY,CAAY,CAAA,CAAIX,EAAAA,CAAgB,CAAA,CACjC,CAACuG,CAAiB,CAAA,CAAInI,CAAAA,CAAqB,CAAA,CAC3CoI,CAAAA,CAAeP,EAAAA,CAAgB,CAAA,CAC/BQ,CAAAA,CAAcP,EAAAA,CAAe,CAAA,CAE7B,CAAE,eAAA,CAAAQ,CAAAA,CAAiB,wBAAA,CAAAC,CAAyB,CAAA,CAAIJ,CAAAA,EAAqB,CAAC,CAAA,CAEtE,CAACK,CAAoB,CAAA,CAAI5C,6BAAAA,CAAS,CAAA,EACtC6C,kCAAAA,CAASH,CAAAA,CAAiBC,CAAAA,CAAAA,EAA6B,CACrD,EAAA,CAAID,CAAAA,EAAmBC,CAAAA,CAA0B,CAC/C,IAAMG,CAAAA,CAAY,IAAIH,CAAAA,CAAyB,EAAE,CAAA,CAEjD,CAACG,CAAAA,CAAU,KAAK,CAAA,CAAIJ,CAAAA,CAAgB,SAAA,CAAU,CAAA,CAC9CA,CAAAA,CAAgB,KAAA,CAAMI,CAAS,CACjC,CACF,CAAC,CACH,CAAA,CAIA,OAAOvR,gCAAAA,CAAY,CAAA,EAAM,CACnBoL,CAAAA,GAAiBmF,CAAAA,CAAa,UAAA,CAChCQ,CAAAA,CAA+B,CAAA,CAAK,CAAA,CAC3B3F,CAAAA,GAAiBmF,CAAAA,CAAa,SAAA,CAAA,CACvCW,CAAAA,CAAY,CAAA,CACZJ,CAAAA,CAAW3F,CAAAA,CAAgB,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA,CAAA,CAEpC4F,CAAAA,CAA+B,CAAA,CAAK,CAAA,CACpCE,CAAAA,CAAa,CAAA,CAAA,CAGfI,CAAAA,CAAqBF,CAAAA,CAAiBC,CAAwB,CAChE,CAAA,CAAG,CACDjG,CAAAA,CACAC,CAAAA,CACAiG,CAAAA,CACAP,CAAAA,CACAC,CAAAA,CACAI,CAAAA,CACAC,CAAAA,CACAH,CAAAA,CACAC,CACF,CAAC,CACH,CAEA,SAASM,EAAAA,CAAAA,CAAyC,CAChD,GAAM,CAACC,CAAS,CAAA,CAAI1P,EAAAA,CAAoB,CAAA,CAClC,CAACqJ,CAAY,CAAA,CAAIX,EAAAA,CAAgB,CAAA,CACjC,CAACiH,CAAO,CAAA,CAAId,EAAAA,CAAW,CAAA,CAE7B,MAAO,CACLc,CAAAA,GAAY,UAAA,EACVtG,CAAAA,GAAiBmF,CAAAA,CAAa,QAAA,EAC9BnF,CAAAA,GAAiBmF,CAAAA,CAAa,QAAA,EAC7BnF,CAAAA,GAAiBmF,CAAAA,CAAa,SAAA,EAAa,CAACkB,CACjD,CACF,CAMA,IAAME,EAAAA,CAAmB,CAAC,CAAE,SAAA,CAAA1G,CAAU,CAAA,CAAA,EAA6B,CACjE,GAAM,CAAC,CAAE,gBAAA,CAAkB2G,CAAyB,CAAC,CAAA,CAAIjT,CAAAA,CAAY,CAAA,CAC/D,CAACyM,CAAY,CAAA,CAAIX,EAAAA,CAAgB,CAAA,CACjC,CAACiF,CAAQ,CAAA,CAAI8B,EAAAA,CAA4B,CAAA,CACzCK,CAAAA,CAAQhB,EAAAA,CAAyB,CAAA,CACjCjQ,CAAAA,CAAWpB,EAAAA,CAAa,CAAA,CACxB8L,CAAAA,CAAgBC,gCAAAA,CAAwB,CAAEb,EAAU,CAAA,CAAI,EAAA,CAExDoH,CAAAA,CAAY1G,CAAAA,GAAiBmF,CAAAA,CAAa,SAAA,CAE1CrL,CAAAA,CAAUtE,CAAAA,CACdkR,CAAAA,CAAY,yCAAA,CAA4C,0CAC1D,CAAA,CAEA,OAAAC,gCAAAA,CAAc,CAAA,EAAM7M,CAAAA,EAAWqE,eAAAA,CAAA,aAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,oCAAA,CAAA,CAAsCrE,CAAQ,CAAA,CAAQ,CAACA,CAAO,CAAC,CAAA,CAG3GqE,eAAAA,CAAA,aAAA,CAAC,KAAA,CAAA,CACC,eAAA,CAAc,gCAAA,CACd,SAAA,CAAWzI,kCAAAA,4BACT,CACA,CAAE,uCAAA,CAAyCgR,CAAU,CAAA,CACrDF,CAAAA,CAA2B,EAAA,CAC3BtG,CAAAA,CAAAA,CACCL,CAAAA,EAAa,EAAA,CAAA,CAAM,EACtB,CAAA,CAAA,CAEA1B,eAAAA,CAAA,aAAA,CAAC+G,EAAAA,CAAA,CACC,GAAA,CAAK1P,CAAAA,CAAS,6BAA6B,CAAA,CAC3C,SAAA,CAAU,oCAAA,CACV,aAAA,CAAa+I,CAAAA,CAAQ,uBAAA,CACrB,QAAA,CAAU+F,CAAAA,CACV,OAAA,CAASmC,CAAAA,CAAAA,CAETtI,eAAAA,CAAA,aAAA,CAACyI,kBAAAA,CAAA,CACC,UAAA,CAAW,MAAA,CACX,SAAA,CAAU,2DAAA,CACV,IAAA,CAAK,YAAA,CACP,CACF,CAAA,CACAzI,eAAAA,CAAA,aAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,SAAA,CAAU,EAAA,CAAG,gCAAA,CAAA,CACzBrE,CACH,CACF,CAEJ,CAAA,CAEAyM,EAAAA,CAAiB,WAAA,CAAc,kBAAA,CAE/B,IAAOM,EAAAA,CAAQ/S,yBAAAA,EAAqB,CAAA,CQnKpC,SCcOgT,EAAAA,CAAAA,CAAsE,CAC3E,OAAOhI,EAAAA,CAAkB,CAAA,CAAE,MAC7B,CDNA,GAAM,CAAE,YAAA,CAAAiI,EAAAA,CAAc,YAAA,CAAA3S,EAAAA,CAAc,UAAA,CAAAoR,EAAW,CAAA,CAAInR,6BAAAA,CAE7C2S,EAAAA,CAAwBxH,2BAAAA,6BAC5BvI,CACE,SAAA,CAAWwI,+BAAAA,6BAASC,CAAQ,CAC9B,CAAC,CAAA,CACDC,+BAAAA,CACF,CAAA,CAIA,SAASsH,EAAAA,CAAWlT,CAAAA,CAAwB,CAC1C,GAAM,CAACmT,CAAS,CAAA,CAAIH,EAAAA,CAAa,CAAA,CAC3B,CAAE,SAAA,CAAAlH,CAAU,CAAA,CAAIC,gCAAAA,EAAckH,CAAuBjT,CAAK,CAAA,CAE1D,CAACuS,CAAO,CAAA,CAAId,EAAAA,CAAW,CAAA,CACvBhQ,CAAAA,CAAWpB,EAAAA,CAAa,CAAA,CACxB+S,CAAAA,CAASL,EAAAA,CAAU,CAAA,CAEnBM,CAAAA,CAAcxS,gCAAAA,CAAY,CAAA,EAAMuS,CAAAA,CAAO,CAAE,QAAA,CAAU,wBAAyB,CAAC,CAAA,CAAG,CAACA,CAAM,CAAC,CAAA,CAE9F,OACEhJ,eAAAA,CAAA,aAAA,CAAC+G,EAAAA,CAAA,CACC,GAAA,CAAK1P,CAAAA,CAAS,4BAA4B,CAAA,CAC1C,SAAA,CAAWE,kCAAAA,sBAAW,CAAwBmK,CAAS,CAAA,CACvD,QAAA,CAAUyG,CAAAA,GAAY,UAAA,CACtB,OAAA,CAASc,CAAAA,CAAAA,CAETjJ,eAAAA,CAAA,aAAA,CAACyI,kBAAAA,CAAA,CACC,UAAA,CAAW,MAAA,CACX,SAAA,CAAU,oBAAA,CACV,SAAA,CAAWM,CAAAA,GAAc,KAAA,CAAQ,KAAA,CAAQ,QAAA,CACzC,IAAA,CAAK,MAAA,CACP,CACF,CAEJ,CAEA,IAAOG,EAAAA,CAAQJ,EAAAA,CE9Cf,6FAEsB,uCAE4D,SCF3EK,EAAAA,CAA4CC,CAAAA,CAAkC,CAEnF,GAAM,CAAE,KAAA,CAAA9C,CAAM,CAAA,CAAI8C,CAAAA,CACZ,CAAE,IAAA,CAAA3O,CAAAA,CAAM,KAAA,CAAAiI,CAAM,CAAA,CAAI0G,CAAAA,CAExB,OAAI3O,CAAAA,GAAS,aAAA,CACJ6L,CAAAA,EAAS8C,CAAAA,CAAW,WAAA,CAClB9C,CAAAA,EAAAA,CAEA,OAAO5D,CAAAA,EAAU,QAAA,CACnBA,CAAAA,CAGF,IAAA,CAAK,SAAA,CAAUA,CAAK,CAAA,CAC7B,CClBA,SAIO2G,EAAAA,CAAgC1F,CAAAA,CAAuD,CAC5F,GAAM,CAAC2F,CAAAA,CAAaC,CAAc,CAAA,CAAIrE,6BAAAA,CAAS,CAAK,CAAA,CAE9CV,CAAAA,CAAa/N,gCAAAA,CAAY,CAAA,EAAM8S,CAAAA,CAAe,CAAA,CAAK,CAAA,CAAG,CAACA,CAAc,CAAC,CAAA,CACtEhF,CAAAA,CAAc9N,gCAAAA,CACjB,CAAE,MAAA,CAAA6M,CAAO,CAAA,CAAA,EAAkB,CAThC,IAAAY,CAAAA,CAUM,IAAMsF,CAAAA,CAAgBlG,CAAAA,CAEtBiG,CAAAA,CAAe5F,CAAAA,CAAU,OAAA,GAAY6F,CAAAA,EAAiB,CAAC,CAAA,CAAA,CAACtF,CAAAA,CAAAP,CAAAA,CAAU,OAAA,CAAA,EAAV,IAAA,EAAAO,CAAAA,CAAmB,QAAA,CAASsF,CAAAA,CAAAA,CAAc,CACpG,CAAA,CACA,CAACD,CAAAA,CAAgB5F,CAAS,CAC5B,CAAA,CAEA,OAAA/F,8BAAAA,CAAU,CAAA,EAAA,CACR,QAAA,CAAS,gBAAA,CAAiB,MAAA,CAAQ4G,CAAU,CAAA,CAC5C,QAAA,CAAS,gBAAA,CAAiB,OAAA,CAASD,CAAW,CAAA,CAEvC,CAAA,CAAA,EAAM,CACX,QAAA,CAAS,mBAAA,CAAoB,MAAA,CAAQC,CAAU,CAAA,CAC/C,QAAA,CAAS,mBAAA,CAAoB,OAAA,CAASD,CAAW,CACnD,CAAA,CAAA,CACC,CAACC,CAAAA,CAAYD,CAAW,CAAC,CAAA,CAErB,MAAA,CAAO,MAAA,CAAO,CAAC+E,CAAW,CAAC,CACpC,CCzBA,ICKMG,EAAAA,CAAwBzU,kCAAAA,CAC5B,YAAA,CAAc,CAAA,CAAA,EAAM,CAGlB,MAAM,IAAI,KAAA,CAAM,iDAAiD,CACnE,CACF,CAAC,CAAA,CAEMkD,EAAAA,CAAQuR,EAAAA,CDNf,IAAMC,EAAAA,CAA6BrI,2BAAAA,6BACjCvI,CACE,QAAA,CAAUwI,+BAAAA,gCAASiE,CAAW,CAAA,CAC9B,WAAA,CAAajE,+BAAAA,6BAASkE,CAAmB9C,EAAS+C,yBAAAA,gCAAGC,CAAU,CAAGhD,CAAK,CAAC,CAAC,CAAA,CACzE,WAAA,CAAapB,+BAAAA,4BAASqI,CAAO/D,8BAAAA,YAAoB,CAAA,CAAGA,8BAAAA,UAAkB,CAAC,CAAC,CAAA,CAAG,YAAY,CACzF,CAAC,CAAA,CACDpE,+BAAAA,CACF,CAAA,CAIA,SAASoI,EAAAA,CAAuBhU,CAAAA,CAAmC,CACjE,GAAM,CAAE,QAAA,CAAAqQ,CAAAA,CAAU,WAAA,CAAA4D,CAAAA,CAAa,WAAA,CAAAC,CAAY,CAAA,CAAInI,gCAAAA,EAAc+H,CAA4B9T,CAAK,CAAA,CAExFmU,CAAAA,CAAqBnH,2BAAAA,CAAQ,CAAA,CAC7BoH,CAAAA,CAAcpH,2BAAAA,CAAmB,CAAC,CAAA,CAElCqH,CAAAA,CAAoBxT,gCAAAA,CAAY,CAAA,EAAM,CAC1C,GAAM,CAAE,OAAA,CAASyT,CAAgB,CAAA,CAAIH,CAAAA,CAErCC,CAAAA,CAAY,OAAA,CAAQ,OAAA,CAAQ,CAAC,CAAE,OAAA,CAAArF,CAAQ,CAAA,CAAGzC,CAAAA,CAAAA,EAAU,CAClDyC,CAAAA,EAAA,IAAA,EAAAA,CAAAA,CAAS,YAAA,CAAa,UAAA,CAAYuF,CAAAA,GAAoBhI,CAAAA,CAAQ,GAAA,CAAM,IAAA,CACtE,CAAC,CACH,CAAA,CAAG,CAAC6H,CAAkB,CAAC,CAAA,CAEjBI,CAAAA,CAAqB1T,gCAAAA,CACxB2T,EAA0D,CApC/D,IAAAlG,CAAAA,CAAAmG,CAAAA,CAAAC,CAAAA,CAsCM,IAAIC,CAAAA,CAEA,OAAOH,CAAAA,EAAoB,QAAA,CAC7BG,CAAAA,CAAsBH,CAAAA,CAEtBG,CAAAA,CAAsBH,CAAAA,CAAgBL,CAAAA,CAAmB,OAAO,CAAA,CAK9DQ,CAAAA,EAAuB,CAAA,CAAA,CAACrG,CAAAA,CAAA8F,CAAAA,CAAY,OAAA,CAAQ,CAACO,CAAmB,CAAA,CAAA,EAAxC,IAAA,EAAArG,CAAAA,CAA2C,OAAA,CAAA,EAAA,CACrEqG,CAAAA,CAAsB,CAAA,CAAA,CAGpBR,CAAAA,CAAmB,OAAA,GAAYQ,CAAAA,EAAAA,CACjCR,CAAAA,CAAmB,OAAA,CAAUQ,CAAAA,CAE7BN,CAAAA,CAAkB,CAAA,CAAA,CAClBK,CAAAA,CAAAA,CAAAD,CAAAA,CAAAL,CAAAA,CAAY,OAAA,CAAQ,CAACO,CAAmB,CAAA,CAAA,EAAxC,IAAA,CAAA,KAAA,CAAA,CAAAF,CAAAA,CAA2C,OAAA,CAAA,EAA3C,IAAA,EAAAC,CAAAA,CAAoD,KAAA,CAAA,CAAA,CAExD,CAAA,CACA,CAACP,CAAAA,CAAoBC,CAAAA,CAAaC,CAAiB,CACrD,CAAA,CAEM1F,CAAAA,CAAc9N,gCAAAA,CAClBqE,EAAS,CACP,GAAM,CAAE,MAAA,CAAAwI,CAAO,CAAA,CAAIxI,CAAAA,CAEboH,CAAAA,CAAQ8H,CAAAA,CAAY,OAAA,CAAQ,SAAA,CAAU,CAAC,CAAE,OAAA,CAAArF,CAAQ,CAAA,CAAA,EAAMA,CAAAA,GAAYrB,CAAM,CAAA,CAE/E,CAACpB,CAAAA,EAASiI,CAAAA,CAAmBjI,CAAK,CACpC,CAAA,CACA,CAAC8H,CAAAA,CAAaG,CAAkB,CAClC,CAAA,CAEM9F,CAAAA,CAAgB5N,gCAAAA,CACpBqE,EAAS,CACP,GAAM,CAAE,GAAA,CAAA0P,CAAI,CAAA,CAAI1P,CAAAA,CACV2P,CAAAA,CAAWX,CAAAA,GAAgB,UAAA,CAEjC,MAAA,CAAQU,CAAAA,CAAK,CACX,IAAK,WAAA,CACL,IAAK,YAAA,CACL,IAAK,MAAA,CACL,IAAK,OAAA,CACH,EAAA,CAAKC,CAAAA,EAAYD,CAAAA,GAAQ,YAAA,EAAkB,CAACC,CAAAA,EAAYD,CAAAA,GAAQ,WAAA,CAC9D,MAAA,CAGFL,CAAAA,CAAmBzH,CAAAA,EAAS,CAG1B,IAAMgI,CAAAA,CAAcV,CAAAA,CAAY,OAAA,CAAQ,GAAA,CAAI,CAACW,CAAAA,CAAGzI,CAAAA,CAAAA,EAAUA,CAAK,CAAA,CACzD0I,CAAAA,CAAYF,CAAAA,CAAY,OAAA,CAAQhI,CAAK,CAAA,CAAI,CAAA,CAE/C,OAAIkI,CAAAA,EAAaF,CAAAA,CAAY,MAAA,CACpBA,CAAAA,CAAY,CAAC,CAAA,CAGfA,CAAAA,CAAY,CAACE,CAAS,CAC/B,CAAC,CAAA,CAED,KAAA,CAEF,IAAK,WAAA,CACL,IAAK,SAAA,CACL,IAAK,MAAA,CACL,IAAK,IAAA,CACH,EAAA,CAAKH,CAAAA,EAAYD,CAAAA,GAAQ,WAAA,EAAiB,CAACC,CAAAA,EAAYD,CAAAA,GAAQ,SAAA,CAC7D,MAAA,CAGFL,CAAAA,CAAmBzH,CAAAA,EAAS,CAG1B,IAAMgI,CAAAA,CAAcV,CAAAA,CAAY,OAAA,CAAQ,GAAA,CAAI,CAACW,CAAAA,CAAGzI,CAAAA,CAAAA,EAAUA,CAAK,CAAA,CACzD0I,CAAAA,CAAYF,CAAAA,CAAY,OAAA,CAAQhI,CAAK,CAAA,CAAI,CAAA,CAE/C,OAAIkI,CAAAA,CAAY,CAAA,CACPF,CAAAA,CAAYA,CAAAA,CAAY,MAAA,CAAS,CAAC,CAAA,CAGpCA,CAAAA,CAAY,CAACE,CAAS,CAC/B,CAAC,CAAA,CAED,KAAA,CAEF,IAAK,MAAA,CACHT,CAAAA,CAAmB,CAAC,CAAA,CACpB,KAAA,CAEF,IAAK,KAAA,CACHA,CAAAA,CAAmB,CAAA,CAAA,CAAQ,CAAA,CAC3B,KAAA,CAEF,IAAK,QAAA,CACH,EAAA,CAAI,CAACN,CAAAA,CAEH,MAAA,CAGFA,CAAAA,CAAY,CAAA,CACZ,KAAA,CAEF,OAAA,CACE,MACJ,CAEA/O,CAAAA,CAAM,cAAA,CAAe,CAAA,CACrBA,CAAAA,CAAM,eAAA,CAAgB,CACxB,CAAA,CACA,CAACqP,CAAAA,CAAoBN,CAAAA,CAAaC,CAAW,CAC/C,CAAA,CAEMe,CAAAA,CAAepU,gCAAAA,CAClBkM,CAAAA,CAAKT,CAAAA,CAAAA,EAAU,CACd,GAAM,CAAE,OAAA,CAAAyC,CAAQ,CAAA,CAAIhC,CAAAA,CAEpB,OAAAqH,CAAAA,CAAY,OAAA,CAAQ,CAAC9H,CAAK,CAAA,CAAIS,CAAAA,CAE9BgC,CAAAA,CAAQ,gBAAA,CAAiB,OAAA,CAASJ,CAAW,CAAA,CAC7CI,CAAAA,CAAQ,gBAAA,CAAiB,SAAA,CAAWN,CAAa,CAAA,CAEjDM,CAAAA,CAAQ,YAAA,CAAa,UAAA,CAAYoF,CAAAA,CAAmB,OAAA,GAAY7H,CAAAA,CAAQ,GAAA,CAAM,IAAI,CAAA,CAE3E,CAAA,CAAA,EAAM,CACXyC,CAAAA,CAAQ,mBAAA,CAAoB,OAAA,CAASJ,CAAW,CAAA,CAChDI,CAAAA,CAAQ,mBAAA,CAAoB,SAAA,CAAWN,CAAa,CAAA,CAEpD,OAAO2F,CAAAA,CAAY,OAAA,CAAQ,CAAC9H,CAAK,CACnC,CACF,CAAA,CACA,CAAC6H,CAAAA,CAAoBxF,CAAAA,CAAaF,CAAa,CACjD,CAAA,CAEMyG,CAAAA,CAAepV,4BAAAA,CACnB,CAAA,EAAA,CAAO,CACL,YAAA,CAAAmV,CACF,CAAA,CAAA,CACA,CAACA,CAAY,CACf,CAAA,CAIA,OAAAjN,8BAAAA,CAAU,CAAA,EAAM,CACduM,CAAAA,CAAmBzH,CAAAA,EAASA,CAAK,CACnC,CAAC,CAAA,CAEM1C,eAAAA,CAAA,aAAA,CAAC9H,EAAAA,CAAsB,QAAA,CAAtB,CAA+B,KAAA,CAAO4S,CAAAA,CAAAA,CAAe7E,CAAS,CACxE,CAEA,IAAO8E,EAAAA,CAAQpV,yBAAAA,EAA2B,CAAA,CE7L1C,ICEMqV,EAAAA,CAAkB,4BAAA,CAClBC,EAAAA,CAAgB,4BAAA,CAChBC,EAAAA,CAAgB,WAAA,CAChBC,EAAAA,CAAkB,SAAA,CAET,SAARC,EAAAA,CAAAA,CAAwC,CAC7C,GAAM,CACJ,SAAA,CAAW,CAAE,QAAA,CAAAC,CAAS,CACxB,CAAA,CAAI,MAAA,CAEJ,OAAO3V,4BAAAA,CAAQ,CAAA,EAAM,CAInB,IAAM4V,CAAAA,CAAUN,EAAAA,CAAgB,IAAA,CAAKK,CAAQ,CAAA,CACvCE,CAAAA,CAAQN,EAAAA,CAAc,IAAA,CAAKI,CAAQ,CAAA,CACnCG,CAAAA,CAAUL,EAAAA,CAAgB,IAAA,CAAKE,CAAQ,CAAA,CAEvCI,CAAAA,CAAQ,CAACH,CAAAA,EAAWJ,EAAAA,CAAc,IAAA,CAAKG,CAAQ,CAAA,CAErD,MAAO,CACL,CACE,OAAA,CAAAC,CAAAA,CACA,KAAA,CAAAC,CAAAA,CACA,KAAA,CAAAE,CAAAA,CACA,OAAA,CAAAD,CACF,CACF,CACF,CAAA,CAAG,CAACH,CAAQ,CAAC,CACf,CC1BA,GAAM,CAAE,YAAA,CAAApV,EAAa,CAAA,CAAIC,6BAAAA,CAEV,SAARwV,EAAAA,CAAsCjR,CAAAA,CAA+C,CAC1F,GAAM,CAAC,CAAE,KAAA,CAAA8Q,CAAM,CAAC,CAAA,CAAIH,EAAAA,CAAqB,CAAA,CACnC/T,CAAAA,CAAWpB,EAAAA,CAAa,CAAA,CAE9B,OAAOQ,gCAAAA,CACLkV,EAAa,CACX,EAAA,CAAI,CAACA,CAAAA,EAAa,OAAOA,CAAAA,EAAc,QAAA,EAAY,CAACA,CAAAA,CAAU,MAAA,CAC5D,MAAM,IAAI,KAAA,CAAM,8DAA8D,CAAA,CAGhF,OAAIlR,CAAAA,GAAS,iBAAA,CAEJpD,CAAAA,CAASkU,CAAAA,CAAQ,wBAAA,CAA2B,gBAAA,CAAkBI,CAAAA,CAAU,CAAC,CAAC,CAAA,CAAA,CAM3EJ,CAAAA,CAAQ,mBAAA,CAAsB,YAAA,CAAA,CAAgBI,CAAAA,CAAU,CAAC,CACnE,CAAA,CACA,CAACJ,CAAAA,CAAOlU,CAAAA,CAAUoD,CAAI,CACxB,CACF,CC3Be,SAARmR,EAAAA,CAAAA,CAAgD,CACrD,GAAM,CAAE,yBAAA,CAAAC,CAA0B,CAAA,CAAI3W,CAAAA,CAAoB,CAAA,CAE1D,MAAO,CAAC2W,CAAyB,CACnC,CCNA,SCIOC,EAAAA,CAA0CC,CAAAA,CAAmB,CAAA,CAAA,CAAM,CACxE,IAAMjB,CAAAA,CAAe3V,+BAAAA,EAAgC,CAAA,CAErD,EAAA,CAAI4W,CAAAA,EAAoB,CAACjB,CAAAA,CACvB,MAAM,IAAI,KAAA,CAAM,2FAA2F,CAAA,CAG7G,OAAOA,CACT,CDPe,SAARkB,EAAAA,CAAmDC,CAAAA,CAAoD,CAC5G,IAAMtJ,CAAAA,CAAMC,2BAAAA,CAAU,CAEhB,CAAE,YAAA,CAAAiI,CAAa,CAAA,CAAIiB,EAAAA,CAAW,CAAA,CAEpC,OAAAlO,8BAAAA,CAAU,CAAA,EAAMiN,CAAAA,CAAalI,CAAAA,CAAKsJ,CAAS,CAAC,CAAA,CAErCtJ,CACT,CEbA,ICEMuJ,EAAAA,CAAuBlX,kCAAAA,CAAc,CAEpCkD,EAAAA,aAAQgU,EAAAA,CCAA,SAARC,EAAAA,CAAAA,CAA2C,CAChD,OAAOhX,+BAAAA,EAA+B,CACxC,CFFA,SAASiX,EAAAA,CAAaC,CAAAA,CAAOC,CAAAA,CAAM,CACjC,IAAMpK,CAAAA,CAAQmK,CAAAA,CAAM,OAAA,CAAQC,CAAI,CAAA,CAEhC,CAACpK,CAAAA,EAASmK,CAAAA,CAAM,MAAA,CAAOnK,CAAAA,CAAO,CAAC,CACjC,CAEe,SAARqK,EAAAA,CAAyC/B,CAAAA,CAAK7H,CAAAA,CAAK,CACxD,EAAA,CAAI6H,CAAAA,EAAO,OAAOA,CAAAA,EAAQ,QAAA,CACxB,MAAM,IAAI,KAAA,CAAM,sEAAsE,CAAA,CACjF,EAAA,CAAI,CAAC7H,CAAAA,EAAO,CAAA,CAAE,SAAA,GAAaA,CAAAA,CAAAA,CAChC,MAAM,IAAI,KAAA,CAAM,4EAA4E,CAAA,CAG9F,IAAM5N,CAAAA,CAAUoX,EAAAA,CAAwB,CAAA,CAExCvO,8BAAAA,CAAU,CAAA,EAAM,CACd,EAAA,CAAI4M,CAAAA,CAAK,CACP,IAAMgC,CAAAA,CAAQ,CAAE,IAAA,CAAMhC,CAAAA,CAAI,KAAA,CAAM,OAAO,CAAA,CAAG,GAAA,CAAA7H,CAAI,CAAA,CAE9C,OAAA5N,CAAAA,CAAQ,KAAA,CAAM,IAAA,CAAKyX,CAAK,CAAA,CAEjB,CAAA,CAAA,EAAMJ,EAAAA,CAAarX,CAAAA,CAAQ,KAAA,CAAOyX,CAAK,CAChD,CACF,CAAA,CAAG,CAACzX,CAAAA,CAASyV,CAAAA,CAAK7H,CAAG,CAAC,CACxB,CNTA,GAAM,CAAE,YAAA,CAAAiG,EAAAA,CAAc,oBAAA,CAAA6D,EAAAA,CAAsB,eAAA,CAAAzV,EAAAA,CAAiB,wBAAA,CAAA0V,EAAAA,CAA0B,UAAA,CAAArF,EAAW,CAAA,CAAInR,6BAAAA,CAEhGiL,EAAAA,CAAa,CACjB,6BAAA,CAA+B,CAC7B,OAAA,CAAS,MAAA,CACT,QAAA,CAAU,QACZ,CACF,CAAA,CAEMwL,EAAAA,CAA6BtL,2BAAAA,6BACjCvI,CACE,UAAA,CAAYyI,6BAAAA,CAAO,CACnB,SAAA,CAAWD,+BAAAA,6BAASC,CAAQ,CAAA,CAC5B,WAAA,CAAaD,+BAAAA,6BAASC,CAAQ,CAAA,CAC9B,KAAA,CAAOD,+BAAAA,6BAASC,CAAQ,CAAA,CACxB,QAAA,CAAUD,+BAAAA,6BAASC,CAAQ,CAAA,CAC3B,SAAA,CAAWoE,6BAAAA,CAAO,CAClB,IAAA,CAAMrE,+BAAAA,6BAASC,CAAQ,CAAA,CACvB,aAAA,CAAeD,+BAAAA,6BAASC,CAAQ,CAAA,CAChC,IAAA,CAAMD,+BAAAA,4BACJqI,CACE/D,8BAAAA,MAAc,CAAA,CACdA,8BAAAA,cAAsB,CAAA,CACtBA,8BAAAA,QAAgB,CAAA,CAChBA,8BAAAA,aAAqB,CAAA,CACrBA,8BAAAA,SAAiB,CAAA,CACjBA,8BAAAA,WAAmB,CAAA,CACnBA,8BAAAA,WAAmB,CAAA,CACnBA,8BAAAA,UAAkB,CAAA,CAClBA,8BAAAA,WAAmB,CAAA,CACnBA,8BAAAA,QAAgB,CAClB,CAAC,CACH,CAAA,CACA,KAAA,CAAOgH,0BAAAA,CACT,CAAC,CAAA,CACDpL,+BAAAA,CACF,CAAA,CAIA,SAASqL,EAAAA,CAAgBjX,CAAAA,CAA6B,CACpD,GAAM,CACJ,UAAA,CAAAkX,CAAAA,CACA,SAAA,CAAApL,CAAAA,CACA,WAAA,CAAAqL,CAAAA,CAAc,EAAA,CACd,KAAA,CAAAzS,CAAAA,CAAQ,EAAA,CACR,QAAA,CAAA0S,CAAAA,CACA,SAAA,CAAAf,CAAAA,CACA,IAAA,CAAA/M,CAAAA,CAAO,EAAA,CACP,aAAA,CAAA+N,CAAAA,CACA,IAAA,CAAAxS,CAAAA,CACA,KAAA,CAAAiI,CACF,CAAA,CAAIf,gCAAAA,EAAcgL,CAA4B/W,CAAK,CAAA,CAE7C,CAAC+U,CAAAA,CAAGuC,CAAmB,CAAA,CAAIR,EAAAA,CAAyB,CAAA,CAAE,mBAAA,CAAoB,CAAA,CAC1E,CAAC,CAAE,2CAAA,CAAAS,CAA4C,CAAC,CAAA,CAAInW,EAAAA,CAAgB,CAAA,CACpE,CAAC,CAAE,eAAA,CAAiBoW,CAAwB,CAAC,CAAA,CAAIhY,CAAAA,CAAY,CAAA,CAC7D,CAACuW,CAAS,CAAA,CAAIC,EAAAA,CAA6B,CAAA,CAC3C,CAAC7C,CAAS,CAAA,CAAIH,EAAAA,CAAa,CAAA,CAC3B,CAACT,CAAO,CAAA,CAAId,EAAAA,CAAW,CAAA,CACvBgG,CAAAA,CAAQnU,CAAAA,CAAS,CAAA,CACjBoU,CAAAA,CAAWtB,EAAAA,CAA8BC,CAAS,CAAA,CAClDsB,CAAAA,CAAsC7B,EAAAA,CAAqB,mBAAmB,CAAA,CAC9E8B,CAAAA,CAAoBf,EAAAA,CAAqB,CAAA,CACzC1K,CAAAA,CAAgBC,gCAAAA,CAAwB,CAAEb,EAAU,CAAA,CAAI,EAAA,CACxDsM,CAAAA,CAAclP,EAAAA,CAAe,CAAA,CAE7B,CAACyG,EAAY,CAAA,CAAID,EAAAA,CAAgBuI,CAAQ,CAAA,CAEzCrE,CAAAA,CAAcxS,gCAAAA,CACjB,CAAE,MAAA,CAAA6M,CAAO,CAAA,CAAA,EAAM,CAAA,CACb,MAAA,QAAA,CAAA,CAAkB,CAIjB,MAAM+J,CAAAA,CAAM,wBAAwB,CAAA,CAIpCG,CAAAA,CAAkB,CAAE,WAAA,CAAAT,CAAAA,CAAa,IAAA,CAAA7N,CAAAA,CAAM,IAAA,CAAAzE,CAAAA,CAAM,KAAA,CAAAiI,CAAM,CAAA,CAA2B,CAAE,MAAA,CAAAY,CAAO,CAAC,CAAA,CAGxF7I,CAAAA,GAAS,SAAA,EAAayS,CAAAA,CAAoB,CAAC,CAAC,CAAA,CAE5CO,CAAAA,CAAY,CACd,CAAA,CAAA,CAAG,CACL,CAAA,CACA,CAACV,CAAAA,CAAaM,CAAAA,CAAOG,CAAAA,CAAmBC,CAAAA,CAAaP,CAAAA,CAAqBhO,CAAAA,CAAMzE,CAAAA,CAAMiI,CAAK,CAC7F,CAAA,CAEA,OAAA6J,EAAAA,CAAwBZ,CAAAA,CAAW2B,CAAQ,CAAA,CAGzCtN,eAAAA,CAAA,aAAA,CAACuG,EAAAA,CAAA,CACE,GAAIoF,CAAAA,CAAY,CAAE,mBAAA,CAAqB4B,CAAAA,CAAoC5B,CAAS,CAAE,CAAA,CAAI,CAAC,CAAA,CAC5F,SAAA,CAAWpU,kCAAAA,2BACT,CACA,CACE,0CAAA,CAA4CyN,EAAAA,CAC5C,gCAAA,CAAkC+D,CAAAA,GAAc,KAAA,CAChD,qCAAA,CAAuCoE,CACzC,CAAA,CACApL,CAAAA,CACAqL,CAAAA,CAA0B,EAAA,CAC1B1L,CACF,CAAA,CACA,aAAA,CAAatB,CAAAA,CAAQ,qBAAA,CACrB,QAAA,CAAU+H,CAAAA,GAAY,UAAA,CACtB,OAAA,CAASc,CAAAA,CACT,GAAA,CAAKqE,CAAAA,CACL,IAAA,CAAK,QAAA,CAAA,CAEJhT,CAAAA,EACC0F,eAAAA,CAAA,aAAA,CAAC,KAAA,CAAA,CACC,GAAA,CAAKgN,CAAAA,CACL,SAAA,CAAWzV,kCAAAA,kCACT,CACAwR,CAAAA,GAAc,KAAA,EAAS,uCACzB,CAAA,CACA,GAAA,CAAKzO,CAAAA,CACP,CAAA,CAEF0F,eAAAA,CAAA,aAAA,CAAC,MAAA,CAAA,CAAK,SAAA,CAAWzI,kCAAAA,iCAAW,CAAmC0V,CAAa,CAAA,CAAA,CAAIH,CAAW,CAAA,CAC3F9M,eAAAA,CAAA,aAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,qDAAA,CAAsD,CACvE,CAEJ,CAEA,IAAO0N,EAAAA,CAAQ/X,yBAAAA,EAAoB,CAAA,CLlInC,GAAM,CAAE,YAAA,CAAAiT,EAAAA,CAAc,YAAA,CAAA3S,EAAAA,CAAc,eAAA,CAAAe,EAAAA,CAAiB,wBAAA,CAAA0V,EAAyB,CAAA,CAAIxW,6BAAAA,CAE5EiL,EAAAA,CAAa,CACjB,8BAAA,CAAgC,CAC9B,iFAAA,CAAmF,CACjF,OAAA,CAAS,MAAA,CACT,QAAA,CAAU,MACZ,CAAA,CAEA,+EAAA,CAAiF,CAC/E,OAAA,CAAS,MAAA,CACT,aAAA,CAAe,QACjB,CACF,CACF,CAAA,CAEMwM,EAAAA,CAAmC,CAAC,CAAE,QAAA,CAAA1H,CAAAA,CAAU,SAAA,CAAAvE,CAAAA,CAAW,KAAA,CAAAkM,CAAM,CAAA,CAAA,EAAM,CAC3E,GAAM,CACJ,CACE,uCAAA,CAAAC,CAAAA,CACA,qCAAA,CAAAC,CAAAA,CACA,mCAAA,CAAAC,CACF,CACF,CAAA,CAAI/W,EAAAA,CAAgB,CAAA,CACd,CAAC,CAAE,gBAAA,CAAkBgX,CAAyB,CAAC,CAAA,CAAI5Y,CAAAA,CAAY,CAAA,CAC/D,CAAC2T,CAAS,CAAA,CAAIH,EAAAA,CAAa,CAAA,CAC3B,CAACtG,CAAK,CAAA,CAAIE,EAAAA,CAAS,CAAA,CACnBnL,CAAAA,CAAWpB,EAAAA,CAAa,CAAA,CACxB0M,CAAAA,CAAMC,2BAAAA,CAAO,CACbb,CAAAA,CAAgBC,gCAAAA,CAAwB,CAAEb,EAAU,CAAA,CAAI,EAAA,CAExD8M,CAAAA,CAAevY,4BAAAA,CACnB,CAAA,EACEwY,4CAAAA,CACE,QAAA,CAAU,CAAA,CAAA,CACV,MAAA,CAAQJ,CAAAA,CACR,eAAA,CAAiBD,CAAAA,CACjB,WAAA,CAAaE,CACf,CAAC,CAAA,CACH,CACEF,CAAAA,CACAC,CAAAA,CACAC,CACF,CACF,CAAA,CACMI,CAAAA,CAAuB9W,CAAAA,CAAS,oCAAoC,CAAA,CACpE+W,CAAAA,CAA2B/W,CAAAA,CAAS,wCAAwC,CAAA,CAE5E,CAACgX,CAAa,CAAA,CAAIhF,EAAAA,CAAe1G,CAAG,CAAA,CACpC2L,CAAAA,CAAuBvF,CAAAA,GAAc,KAAA,CAAQoF,CAAAA,CAAuBC,CAAAA,CACpEG,CAAAA,CAAwBxF,CAAAA,GAAc,KAAA,CAAQqF,CAAAA,CAA2BD,CAAAA,CAE/E,OAGEnO,eAAAA,CAAA,aAAA,CAAC,KAAA,CAAA,CACC,YAAA,CAAY4N,CAAAA,CACZ,kBAAA,CAAiB,YAAA,CACjB,SAAA,CAAWrW,kCAAAA,4BACT,CACA,6CAAA,CACA,CACE,0CAAA,CAA4C8W,CAAAA,CAC5C,iCAAA,CAAmCtF,CAAAA,GAAc,KACnD,CAAA,CACAhH,CAAAA,CACAiM,CAAAA,CAA2B,EAAA,CAAA,CAC1BtM,CAAAA,EAAa,EAAA,CAAA,CAAM,EACtB,CAAA,CACA,GAAA,CAAKiB,CAAAA,CACL,IAAA,CAAK,SAAA,CAAA,CAEJ,CAAC,CAACsD,CAAAA,EAAY,CAAC,CAACjG,eAAAA,CAAM,QAAA,CAAS,KAAA,CAAMiG,CAAQ,CAAA,EAC5CjG,eAAAA,CAAA,aAAA,CAACwO,oBAAAA,CAAA,CACC,UAAA,CAAY,CAAA,CAAA,CACZ,SAAA,CAAU,sCAAA,CACV,GAAA,CAAKzF,CAAAA,CACL,uBAAA,CAAyB,CAAA,CAAA,CACzB,oBAAA,CAAsBuF,CAAAA,CACtB,KAAA,CAAOhM,CAAAA,CACP,qBAAA,CAAuBiM,CAAAA,CACvB,QAAA,CAAU,CAAA,CAAA,CACV,aAAA,CAAe,CAAA,CAAA,CACf,QAAA,CAAUN,CAAAA,CAAAA,CAEThI,CACH,CAAA,CAEFjG,eAAAA,CAAA,aAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,6CAAA,CAA8C,CAC/D,CAEJ,CAAA,CAEA2N,EAAAA,CAAiC,YAAA,CAAe,CAC9C,QAAA,CAAU,KAAA,CAAA,CACV,SAAA,CAAW,KAAA,CACb,CAAA,CAEAA,EAAAA,CAAiC,SAAA,CAAY,CAC3C,QAAA,CAAUc,mBAAAA,CAAU,GAAA,CACpB,SAAA,CAAWA,mBAAAA,CAAU,MAAA,CACrB,KAAA,CAAOA,mBAAAA,CAAU,MAAA,CAAO,UAC1B,CAAA,CAEA,IAAMC,EAAAA,CAA+B,CAAC,CAAE,QAAA,CAAAzI,CAAAA,CAAU,SAAA,CAAAvE,CAAAA,CAAW,KAAA,CAAAkM,CAAM,CAAA,CAAA,EAAM,CACvE,GAAM,CAAC,CAAE,gBAAA,CAAkBI,CAAyB,CAAC,CAAA,CAAI5Y,CAAAA,CAAY,CAAA,CAC/D2M,CAAAA,CAAgBC,gCAAAA,CAAwB,CAAEb,EAAU,CAAA,CAAI,EAAA,CAE9D,OACEnB,eAAAA,CAAA,aAAA,CAAC,KAAA,CAAA,CACC,YAAA,CAAY4N,CAAAA,CACZ,kBAAA,CAAiB,YAAA,CACjB,SAAA,CAAWrW,kCAAAA,4BACT,CACA,yCAAA,CACAwK,CAAAA,CACAiM,CAAAA,CAA2B,EAAA,CAAA,CAC1BtM,CAAAA,EAAa,EAAA,CAAA,CAAM,EACtB,CAAA,CACA,IAAA,CAAK,SAAA,CAAA,CAEJ,CAAC,CAACuE,CAAAA,EAAY,CAAC,CAACjG,eAAAA,CAAM,QAAA,CAAS,KAAA,CAAMiG,CAAQ,CAAA,EAC5CjG,eAAAA,CAAA,aAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,sCAAA,CAAA,CACZA,eAAAA,CAAM,QAAA,CAAS,GAAA,CAAIiG,CAAAA,CAAU0I,CAAAA,EAC5B3O,eAAAA,CAAA,aAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,2CAAA,CAAA,CAA6C2O,CAAM,CACnE,CACH,CAAA,CAEF3O,eAAAA,CAAA,aAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,6CAAA,CAA8C,CAC/D,CAEJ,CAAA,CAEA0O,EAAAA,CAA6B,YAAA,CAAe,CAC1C,QAAA,CAAU,KAAA,CAAA,CACV,SAAA,CAAW,KAAA,CACb,CAAA,CAEAA,EAAAA,CAA6B,SAAA,CAAY,CACvC,QAAA,CAAUD,mBAAAA,CAAU,GAAA,CACpB,SAAA,CAAWA,mBAAAA,CAAU,MAAA,CACrB,KAAA,CAAOA,mBAAAA,CAAU,MAAA,CAAO,UAC1B,CAAA,CAEA,IAAMG,EAAAA,CAAkC,CAAC,CAAE,QAAA,CAAA3I,CAAAA,CAAU,SAAA,CAAAvE,CAAAA,CAAW,KAAA,CAAAkM,CAAM,CAAA,CAAA,EAAM,CAC1E,GAAM,CAAC,CAAE,gBAAA,CAAkBI,CAAyB,CAAC,CAAA,CAAI5Y,CAAAA,CAAY,CAAA,CAC/D2M,CAAAA,CAAgBC,gCAAAA,CAAwB,CAAEb,EAAU,CAAA,CAAI,EAAA,CAE9D,OACEnB,eAAAA,CAAA,aAAA,CAAC,KAAA,CAAA,CACC,YAAA,CAAY4N,CAAAA,CACZ,kBAAA,CAAiB,UAAA,CACjB,SAAA,CAAWrW,kCAAAA,4BACT,CACA,4CAAA,CACAwK,CAAAA,CACAiM,CAAAA,CAA2B,EAAA,CAAA,CAC1BtM,CAAAA,EAAa,EAAA,CAAA,CAAM,EACtB,CAAA,CACA,IAAA,CAAK,SAAA,CAAA,CAEJ,CAAC,CAACuE,CAAAA,EAAY,CAAC,CAACjG,eAAAA,CAAM,QAAA,CAAS,KAAA,CAAMiG,CAAQ,CAAA,EAC5CjG,eAAAA,CAAA,aAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,mCAAA,CAAA,CAAqCiG,CAAS,CAAA,CAE/DjG,eAAAA,CAAA,aAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,6CAAA,CAA8C,CAC/D,CAEJ,CAAA,CAEA4O,EAAAA,CAAgC,YAAA,CAAe,CAC7C,QAAA,CAAU,KAAA,CAAA,CACV,SAAA,CAAW,KAAA,CACb,CAAA,CAEAA,EAAAA,CAAgC,SAAA,CAAY,CAC1C,QAAA,CAAUH,mBAAAA,CAAU,GAAA,CACpB,SAAA,CAAWA,mBAAAA,CAAU,MAAA,CACrB,KAAA,CAAOA,mBAAAA,CAAU,MAAA,CAAO,UAC1B,CAAA,CAMA,IAAMI,EAAAA,CAAmB,CAAC,CAAE,SAAA,CAAAnN,CAAU,CAAA,CAAA,EAA6B,CACjE,GAAM,CAACoN,CAAgB,CAAA,CAAIpC,EAAAA,CAAyB,CAAA,CAAE,mBAAA,CAAoB,CAAA,CACpE,CAAC,CAAE,qBAAA,CAAAqC,CAAAA,CAAuB,2CAAA,CAAA5B,CAA4C,CAAC,CAAA,CAAInW,EAAAA,CAAgB,CAAA,CAC3FK,CAAAA,CAAWpB,EAAAA,CAAa,CAAA,CACxBoX,CAAAA,CAAQnU,CAAAA,CAAS,CAAA,CAEjB8V,CAAAA,CAAkBvY,gCAAAA,CAAY,CAAA,EAAM,CACxC4W,CAAAA,CAAM,SAAS,CACjB,CAAA,CAAG,CAACA,CAAK,CAAC,CAAA,CAEJO,CAAAA,CAAQvW,CAAAA,CAAS,6BAA6B,CAAA,CAE9C4O,CAAAA,CAAW6I,CAAAA,CAAiB,GAAA,CAAI,CAAC1F,CAAAA,CAAYlH,CAAAA,CAAAA,EAAU,CAC3D,GAAM,CAAE,WAAA,CAAA6K,CAAAA,CAAa,KAAA,CAAAzS,CAAAA,CAAO,YAAA,CAAA2U,CAAAA,CAAc,IAAA,CAAA/P,CAAAA,CAAM,IAAA,CAAAzE,CAAAA,CAAM,KAAA,CAAAiI,CAAM,CAAA,CAAI0G,CAAAA,CAmBhE,OACEpJ,eAAAA,CAAA,aAAA,CAAC,KAAA,CAAA,CAAI,SAAA,CAAU,sCAAA,CAAuC,GAAA,CAAKkC,CAAAA,CAAAA,CACzDlC,eAAAA,CAAA,aAAA,CAAC0N,EAAAA,CAAA,CACC,UAAA,CAAYvE,EAAAA,CAA2BC,CAAU,CAAA,CACjD,SAAA,CAAU,oCAAA,CACV,WAAA,CAAa2D,CAAAA,CACb,KAAA,CAAOzS,CAAAA,CAGP,QAAA,CAAUA,CAAAA,EAAAA,CAAU2U,CAAAA,EAAgB/P,CAAAA,CAAAA,CACpC,SAAA,CAAWgD,CAAAA,CACX,IAAA,CAAMhD,CAAAA,CACN,aAAA,CACE6P,CAAAA,GAA0B,SAAA,EAAa5B,CAAAA,CACnC,2DAAA,CACA,yCAAA,CAEN,IAAA,CAAM1S,CAAAA,CACN,KAAA,CAAOiI,CAAAA,CACT,CACF,CAEJ,CAAC,CAAA,CAGD,OAAKuD,CAAAA,CAAS,MAAA,CAIV8I,CAAAA,GAA0B,MAAA,CAE1B/O,eAAAA,CAAA,aAAA,CAAC+K,EAAAA,CAAA,CAAuB,WAAA,CAAaiE,CAAAA,CAAAA,CACnChP,eAAAA,CAAA,aAAA,CAAC0O,EAAAA,CAAA,CAA6B,SAAA,CAAWhN,CAAAA,CAAW,KAAA,CAAOkM,CAAAA,CAAAA,CACxD3H,CACH,CACF,CAAA,CAEO8I,CAAAA,GAA0B,SAAA,CAEjC/O,eAAAA,CAAA,aAAA,CAAC+K,EAAAA,CAAA,CAAuB,WAAA,CAAaiE,CAAAA,CAAiB,WAAA,CAAY,UAAA,CAAA,CAChEhP,eAAAA,CAAA,aAAA,CAAC4O,EAAAA,CAAA,CAAgC,SAAA,CAAWlN,CAAAA,CAAW,KAAA,CAAOkM,CAAAA,CAAAA,CAC3D3H,CACH,CACF,CAAA,CAKFjG,eAAAA,CAAA,aAAA,CAAC+K,EAAAA,CAAA,CAAuB,WAAA,CAAaiE,CAAAA,CAAAA,CACnChP,eAAAA,CAAA,aAAA,CAAC2N,EAAAA,CAAA,CAAiC,SAAA,CAAWjM,CAAAA,CAAW,KAAA,CAAOkM,CAAAA,CAAAA,CAC5D3H,CACH,CACF,CAAA,CA1BO,IA4BX,CAAA,CAEOiJ,EAAAA,aAAQL,EAAAA,CcjSf,0DAC4B,SCCrBM,EAAAA,CAAiCC,CAAAA,CAAYC,CAAAA,CAAc,CAGhEzR,8BAAAA,CAAU,CAAA,EAAM,CACd,GAAM,CAAE,OAAA,CAAA+G,CAAQ,CAAA,CAAIyK,CAAAA,CAEhBzK,CAAAA,EAAAA,CACFA,CAAAA,CAAQ,YAAA,CAAe0K,CAAAA,CAE3B,CAAA,CAAG,CAACA,CAAAA,CAAcD,CAAU,CAAC,CAC/B,CCkCA,IAAME,EAAAA,CAAiCjO,2BAAAA,6BACrCvI,CACE,mBAAA,CAAqBwI,+BAAAA,6BAASC,CAAQ,CAAA,CACtC,YAAA,CAAcD,+BAAAA,6BAASC,CAAQ,CAAA,CAC/B,SAAA,CAAWD,+BAAAA,6BAASC,CAAQ,CAAA,CAC5B,SAAA,CAAWD,+BAAAA,6BAASC,CAAQ,CAAA,CAC5B,aAAA,CAAeD,+BAAAA,6BAASC,CAAQ,CAAA,CAChC,QAAA,CAAUD,+BAAAA,8BAASgE,CAAS,CAAA,CAC5B,YAAA,CAAchE,+BAAAA,6BAASC,CAAQ,CAAA,CAC/B,SAAA,CAAWD,+BAAAA,+BAASiO,CAAU,SAAA,CAAW,OAAA,CAAS,MAAA,CAAQ,SAAA,CAAW,QAAA,CAAU,KAAA,CAAO,MAAA,CAAQ,KAAK,CAAC,CAAC,CAAA,CACrG,QAAA,CAAUjO,+BAAAA,6BAASkE,CAA6C9C,EAAS,OAAOA,CAAAA,EAAU,UAAU,CAAC,CAAA,CACrG,OAAA,CAASpB,+BAAAA,6BAASkE,CAA4C9C,EAAS,OAAOA,CAAAA,EAAU,UAAU,CAAC,CAAA,CACnG,OAAA,CAASpB,+BAAAA,6BAASkE,CAA4C9C,EAAS,OAAOA,CAAAA,EAAU,UAAU,CAAC,CAAA,CACnG,SAAA,CAAWpB,+BAAAA,6BAASkE,CAA+C9C,EAAS,OAAOA,CAAAA,EAAU,UAAU,CAAC,CAAA,CACxG,gBAAA,CAAkBpB,+BAAAA,6BAASkE,CAA+C9C,EAAS,OAAOA,CAAAA,EAAU,UAAU,CAAC,CAAA,CAC/G,UAAA,CAAYpB,+BAAAA,6BAASkE,CAA+C9C,EAAS,OAAOA,CAAAA,EAAU,UAAU,CAAC,CAAA,CACzG,QAAA,CAAUpB,+BAAAA,6BAASkE,CAA4C9C,EAAS,OAAOA,CAAAA,EAAU,UAAU,CAAC,CAAA,CACpG,WAAA,CAAapB,+BAAAA,6BAASC,CAAQ,CAAA,CAC9B,QAAA,CAAUD,+BAAAA,8BAASgE,CAAS,CAAA,CAC5B,QAAA,CAAUhE,+BAAAA,6BAASqE,CAAQ,CAAA,CAC3B,IAAA,CAAMC,8BAAAA,MAAc,CAAA,CACpB,KAAA,CAAOtE,+BAAAA,6BAASC,CAAQ,CAC1B,CAAC,CAAA,CACDC,+BAAAA,CACF,CAAA,CAIMgO,EAAAA,CAAsB1J,+BAAAA,CAAwD2J,CAAAA,CAAUC,CAAAA,CAAAA,EAAiB,CAC7G,GAAM,CACJ,mBAAA,CAAqBC,CAAAA,CACrB,YAAA,CAAcC,CAAAA,CACd,SAAA,CAAAlO,CAAAA,CACA,SAAA,CAAWmO,CAAAA,CACX,aAAA,CAAe3J,CAAAA,CACf,QAAA,CAAAC,CAAAA,CACA,YAAA,CAAAkJ,CAAAA,CACA,QAAA,CAAAS,CAAAA,CACA,OAAA,CAAA1J,CAAAA,CACA,OAAA,CAAA2J,CAAAA,CACA,SAAA,CAAAC,CAAAA,CACA,gBAAA,CAAAC,CAAAA,CACA,UAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,WAAA,CAAAC,CAAAA,CACA,QAAA,CAAAjN,CAAAA,CACA,QAAA,CAAAkD,CAAAA,CACA,KAAA,CAAA3D,CAAAA,CACA,GAAG9M,CACL,CAAA,CAAI+L,gCAAAA,EAAc2N,CAAgCG,CAAQ,CAAA,CAEpD9L,CAAAA,CAAYf,2BAAAA,IAA6B,CAAA,CAEzCD,CAAAA,CAAM+M,CAAAA,EAAgB/L,CAAAA,CAE5B,OAAAwL,EAAAA,CAAgBxM,CAAAA,CAAK0M,CAAY,CAAA,CAG/BrP,eAAAA,CAAA,aAAA,CAAC,OAAA,CAAA,CACC,eAAA,CAAemG,CAAAA,EAAY,KAAA,CAAA,CAC3B,mBAAA,CAAmBwJ,CAAAA,CACnB,YAAA,CAAYC,CAAAA,CACZ,SAAA,CAAWlO,CAAAA,CACX,SAAA,CAASmO,CAAAA,CACT,aAAA,CAAa3J,CAAAA,CACb,QAAA,CAAUC,CAAAA,CAAW,KAAA,CAAA,CAAY2J,CAAAA,CACjC,OAAA,CAAS1J,CAAAA,CACT,OAAA,CAASD,CAAAA,CAAW,KAAA,CAAA,CAAY4J,CAAAA,CAChC,SAAA,CAAW5J,CAAAA,CAAW,KAAA,CAAA,CAAY6J,CAAAA,CAClC,gBAAA,CAAkB7J,CAAAA,CAAW,KAAA,CAAA,CAAY8J,CAAAA,CACzC,UAAA,CAAY9J,CAAAA,CAAW,KAAA,CAAA,CAAY+J,CAAAA,CACnC,QAAA,CAAU/J,CAAAA,CAAW,KAAA,CAAA,CAAYgK,CAAAA,CACjC,WAAA,CAAaC,CAAAA,CACb,QAAA,CAAUjN,CAAAA,EAAYgD,CAAAA,CACtB,GAAA,CAAKxD,CAAAA,CACL,QAAA,CAAUwD,CAAAA,CAAW,CAAA,CAAA,CAAKE,CAAAA,CAC1B,KAAA,CAAO3D,CAAAA,CACN,GAAG9M,CAAAA,CACJ,IAAA,CAAK,MAAA,CACP,CAEJ,CAAC,CAAA,CAED4Z,EAAAA,CAAoB,WAAA,CAAc,qBAAA,CAElC,IAAOa,EAAAA,CAAQb,EAAAA,CC/HA,SAARc,EAAAA,CAAgCxV,CAAAA,CAAO,CAC5C,GAAM,CACJ,MAAA,CAAAyV,CAAAA,CACA,MAAA,CAAAjN,CAAAA,CACA,MAAA,CAAQ,CAAE,OAAA,CAAAF,CAAQ,CACpB,CAAA,CAAItI,CAAAA,CAEE0V,CAAAA,CAAwBlN,CAAAA,CAAO,YAAA,CAAa,cAAc,CAAA,CAC1DmN,CAAAA,CAAeD,CAAAA,EAAyBA,CAAAA,GAA0B,KAAA,CAQxE,EAAA,CAAIpN,CAAAA,GAAY,OAAA,CAAS,CACvB,GAAM,CAAE,IAAA,CAAAsN,CAAAA,CAAM,IAAA,CAAAjW,CAAAA,CAAM,KAAA,CAAAiI,CAAM,CAAA,CAAIY,CAAAA,CAG9B,EAAA,CACE7I,CAAAA,GAAS,QAAA,EACTA,CAAAA,GAAS,UAAA,EACTA,CAAAA,GAAS,MAAA,EACTA,CAAAA,GAAS,OAAA,EACTA,CAAAA,GAAS,OAAA,EACTA,CAAAA,GAAS,OAAA,EACTA,CAAAA,GAAS,QAAA,CAET,MAAO,CAAA,CAAA,CACF,EAAA,CACLA,CAAAA,GAAS,OAAA,EACTA,CAAAA,GAAS,UAAA,EACTA,CAAAA,GAAS,QAAA,EACTA,CAAAA,GAAS,KAAA,EACTA,CAAAA,GAAS,MAAA,EACTA,CAAAA,GAAS,KAAA,CACT,CACA,EAAA,CAAIgW,CAAAA,EAAgBC,CAAAA,CAElB,MAAO,CAAA,CAAA,CACF,EAAA,CAAIH,CAAAA,EAAU,CAAC7N,CAAAA,CAGpB,MAAO,CAAA,CAEX,CACF,CAAA,IAAO,CAAA,EAAA,CAAIU,CAAAA,GAAY,QAAA,CAErB,MAAO,CAAA,CAAA,CACF,EAAA,CAAIA,CAAAA,GAAY,UAAA,CAAA,CACrB,EAAA,CAAI,CAACqN,CAAAA,EAAAA,CAAiBF,CAAAA,EAAU,CAACjN,CAAAA,CAAO,KAAA,CAAA,CAEtC,MAAO,CAAA,CAAA,CAAA,KAAA,EAAA,CAEAA,CAAAA,CAAO,YAAA,CAAa,iBAAiB,CAAA,GAAM,MAAA,CAAA,CACpD,EAAA,CAAIiN,CAAAA,EAAU,CAACjN,CAAAA,CAAO,SAAA,CAEpB,MAAO,CAAA,CAAA,CAAA,KAGT,MAAO,CAAA,CAAA,CAEX,CCnEA,6FACsB,ICDtBqN,EAAAA,CAAAC,EAAAA,CAAAC,EAAAA,CAAAC,EAAAA,CAAqBC,EAAAA,CAArB,KAA+B,CAC7B,WAAA,CAAYrO,CAAAA,CAAesO,CAAAA,CAA+BC,CAAAA,CAA6BC,CAAAA,CAA2B,CAOlHC,gCAAAA,IAAA,CAAAR,EAAAA,CAAAA,CACAQ,gCAAAA,IAAA,CAAAP,EAAAA,CAAAA,CACAO,gCAAAA,IAAA,CAAAN,EAAAA,CAAAA,CACAM,gCAAAA,IAAA,CAAAL,EAAAA,CAAAA,CATEM,gCAAAA,IAAA,CAAKT,EAAAA,CAASO,CAAAA,CAAAA,CACdE,gCAAAA,IAAA,CAAKR,EAAAA,CAAgBK,CAAAA,CAAAA,CACrBG,gCAAAA,IAAA,CAAKP,EAAAA,CAAkBG,CAAAA,CAAAA,CACvBI,gCAAAA,IAAA,CAAKN,EAAAA,CAASpO,CAAAA,CAChB,CAOA,IAAI,KAAA,CAAA,CAA4B,CAC9B,OAAO2O,gCAAAA,IAAA,CAAKV,EAAAA,CACd,CAEA,IAAI,cAAA,CAAA,CAAgC,CAClC,OAAOU,gCAAAA,IAAA,CAAKR,EAAAA,CACd,CAEA,IAAI,YAAA,CAAA,CAA8B,CAChC,OAAOQ,gCAAAA,IAAA,CAAKT,EAAAA,CACd,CAEA,IAAI,KAAA,CAAA,CAAgB,CAClB,OAAOS,gCAAAA,IAAA,CAAKP,EAAAA,CACd,CACF,CAAA,CApBEH,EAAAA,CAAA,IAAA,OAAA,CACAC,EAAAA,CAAA,IAAA,OAAA,CACAC,EAAAA,CAAA,IAAA,OAAA,CACAC,EAAAA,CAAA,IAAA,OAAA,CCPa,SAARQ,EAAAA,CACLlC,CAAAA,CACgE,CAChE,IAAMmC,CAAAA,CAAe3O,2BAAAA,CAAqB,CAAC,CAAA,CAErC4O,CAAAA,CAAO/a,gCAAAA,CACVya,EAA+B,CAC9B,GAAM,CAAE,OAAA,CAASO,CAAQ,CAAA,CAAIrC,CAAAA,CAE7B,EAAA,CAAI,CAACqC,CAAAA,CACH,MAAA,CAGF,GAAM,CAAE,OAAA,CAASC,CAAU,CAAA,CAAIH,CAAAA,CAEzB,CAACI,CAAU,CAAA,CAAID,CAAAA,CACf,CAAE,YAAA,CAAAT,CAAAA,CAAc,cAAA,CAAAD,CAAAA,CAAgB,KAAA,CAAAtO,CAAM,CAAA,CAAI+O,CAAAA,CAAAA,CAE5C,CAACP,CAAAA,EAASA,CAAAA,GAAAA,CAAUS,CAAAA,EAAA,IAAA,CAAA,KAAA,CAAA,CAAAA,CAAAA,CAAY,KAAA,CAAA,CAAA,EAAA,CAClCjP,CAAAA,GAAAA,CAAUiP,CAAAA,EAAA,IAAA,CAAA,KAAA,CAAA,CAAAA,CAAAA,CAAY,KAAA,CAAA,EAASD,CAAAA,CAAU,KAAA,CAAM,CAAA,CAE/CA,CAAAA,CAAU,OAAA,CAAQ,IAAIX,EAAAA,CAAUrO,CAAAA,CAAOsO,CAAAA,CAAgBC,CAAAA,CAAcC,CAAK,CAAC,CAAA,CAE/E,CAAA,CACA,CAAC9B,CAAAA,CAAYmC,CAAY,CAC3B,CAAA,CAEMK,CAAAA,CAAOnb,gCAAAA,CAAY,CAAA,EAAM,CAC7B,GAAM,CAAE,OAAA,CAASgb,CAAQ,CAAA,CAAIrC,CAAAA,CAE7B,EAAA,CAAI,CAACqC,CAAAA,CACH,MAAA,CAGF,GAAM,CAAE,OAAA,CAASC,CAAU,CAAA,CAAIH,CAAAA,CAC3BM,CAAAA,CAEJ,GAAA,CAAA,CAAOH,CAAAA,CAAU,MAAA,EAAA,CACf,CAACG,CAAS,CAAA,CAAIH,CAAAA,CAAAA,CAEVG,CAAAA,EAAA,IAAA,CAAA,KAAA,CAAA,CAAAA,CAAAA,CAAW,KAAA,CAAA,GAAUJ,CAAAA,CAAQ,KAAA,CAAA,CAAA,CAC/BC,CAAAA,CAAU,KAAA,CAAM,CAAA,CAMhBG,CAAAA,CAAAA,CACFJ,CAAAA,CAAQ,KAAA,CAAQI,CAAAA,CAAU,KAAA,CAE1BJ,CAAAA,CAAQ,cAAA,CAAiBI,CAAAA,CAAU,cAAA,CACnCJ,CAAAA,CAAQ,YAAA,CAAeI,CAAAA,CAAU,YAAA,CAAA,CAEjCJ,CAAAA,CAAQ,KAAA,CAAQ,EAEpB,CAAA,CAAG,CAACrC,CAAAA,CAAYmC,CAAY,CAAC,CAAA,CAE7B,OAAO,MAAA,CAAO,MAAA,CAAO,CAAE,IAAA,CAAAC,CAAAA,CAAM,IAAA,CAAAI,CAAK,CAAC,CACrC,CFnCA,SAASE,EAAAA,CAIP,CACA,cAAA,CAAAC,CAAAA,CACA,aAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CAAW,IAAI,GAAA,CACf,QAAA,CAAAC,CAAAA,CACA,QAAA,CAAApC,CACF,CAAA,CAMI,CACF,GAAM,CAAE,KAAA,CAAApN,CAAM,CAAA,CAAIqP,CAAAA,CACZI,CAAAA,CAAkBvP,2BAAAA,IAAc,CAAA,CAChCwP,CAAAA,CAAclV,oCAAAA,CAAmB,CAAA,CAEjC,CAAE,IAAA,CAAAsU,CAAAA,CAAM,IAAA,CAAAI,CAAK,CAAA,CAAIN,EAAAA,CAAaa,CAAe,CAAA,CAC7CE,CAAAA,CAAWnV,oCAAAA,CAAgB,CAAA,CAE3BoV,CAAAA,CAAe7b,gCAAAA,CAClB,CAAE,aAAA,CAAA8b,CAAc,CAAA,CAAA,EAAM,CApD3B,IAAArO,CAAAA,CAqDM,GAAM,CAAE,YAAA,CAAA+M,CAAAA,CAAc,cAAA,CAAAD,CAAAA,CAAgB,KAAA,CAAAtO,CAAM,CAAA,CAAI6P,CAAAA,CAEhD,EAAA,CACE,OAAOtB,CAAAA,EAAiB,QAAA,EACxB,OAAOD,CAAAA,EAAmB,QAAA,EAC1BA,CAAAA,GAAmBC,CAAAA,EACnBvO,CAAAA,EACAA,CAAAA,CAAM,MAAA,GAAA,CAAY2P,CAAAA,CAAS,OAAA,EAAW,EAAA,CAAA,CAAI,MAAA,CAAS,CAAA,CAEnD,GAAA,CAAA,GAAW,CAACG,CAAAA,CAAUC,CAAK,CAAA,GAAKR,CAAAA,CAAS,OAAA,CAAQ,CAAA,CAAG,CAClD,GAAM,CAAE,MAAA,CAAAS,CAAO,CAAA,CAAIF,CAAAA,CAEnB,EAAA,CAAI9P,CAAAA,CAAM,KAAA,CAAMuO,CAAAA,CAAeyB,CAAAA,CAAQzB,CAAY,CAAA,GAAMuB,CAAAA,CAAU,CACjEhB,CAAAA,CAAK,CAAA,CAEL,IAAMmB,CAAAA,CAAY,CAAA,EAAA","file":"/__w/1/s/BotFramework-WebChat/packages/component/dist/chunk-RTB757EJ.js","sourcesContent":[null,"import { createContext, type MutableRefObject } from 'react';\n\nimport { type FocusTranscriptInit } from '../../types/internal/FocusTranscriptInit';\n\nexport type ContextType = {\n focusTranscriptCallbacksRef: MutableRefObject<((init?: FocusTranscriptInit | undefined) => Promise<void>)[]>;\n nonce: string | undefined;\n\n // TODO: [P0] Infer the following types.\n dictateAbortable: any;\n dispatchScrollPosition: any;\n dispatchTranscriptFocusByActivityKey: any;\n internalMarkdownItState: [any];\n internalRenderMarkdownInline: any;\n numTranscriptFocusObservers: any;\n observeScrollPosition: any;\n observeTranscriptFocus: any;\n renderMarkdown: any;\n scrollToCallbacksRef: any;\n scrollToEndCallbacksRef: any;\n setDictateAbortable: any;\n styleSet: any;\n suggestedActionsAccessKey: any;\n webSpeechPonyfill: any;\n};\n\nconst context = createContext<ContextType>(undefined as ContextType);\n\nexport default context;\n","import { useContext } from 'react';\n\nimport WebChatUIContext from './WebChatUIContext';\n\nexport default function useWebChatUIContext() {\n const context = useContext(WebChatUIContext);\n\n if (!context) {\n throw new Error('This hook can only be used on a component that is a descendant of <Composer>');\n }\n\n return context;\n}\n","import type createStyleSet from '../Styles/createStyleSet';\nimport useWebChatUIContext from './internal/useWebChatUIContext';\n\n// TODO: Seems type of value is `string`.\nexport default function useStyleSet(): readonly [Record<keyof ReturnType<typeof createStyleSet>, any>] {\n return Object.freeze([useWebChatUIContext().styleSet] as const);\n}\n","import { hooks } from 'botframework-webchat-api';\nimport { useCallback } from 'react';\n\nimport useCodeBlockTag from '../CustomElements/useCodeBlockTagName';\nimport useHTMLContentTransformContext from './private/useHTMLContentTransformContext';\n\nconst { useLocalizer } = hooks;\n\nconst DEFAULT_ALLOWED_TAGS: ReadonlyMap<string, Readonly<{ attributes: ReadonlySet<string> }>> = Object.freeze(\n new Map(\n (\n [\n ['a', ['aria-label', 'class', 'href', 'name', 'rel', 'target']],\n ['b', []],\n ['blockquote', []],\n ['br', []],\n ['button', ['aria-label', 'class', 'type', 'value']],\n ['caption', []],\n ['code', ['data-math-type']],\n ['del', []],\n ['div', []],\n ['em', []],\n ['figure', ['data-math-type', 'tabindex']],\n ['h1', []],\n ['h2', []],\n ['h3', []],\n ['h4', []],\n ['h5', []],\n ['h6', []],\n ['hr', []],\n ['i', []],\n ['img', ['alt', 'aria-label', 'class', 'src', 'title']],\n ['ins', []],\n ['li', []],\n ['nl', []],\n ['ol', []],\n ['p', []],\n ['pre', ['class', 'data-math-type']],\n ['s', []],\n ['span', ['aria-label', 'data-math-type']],\n ['strike', []],\n ['strong', []],\n ['table', []],\n ['tbody', []],\n ['td', []],\n ['tfoot', []],\n ['th', []],\n ['thead', []],\n ['tr', []],\n ['ul', []],\n\n // Followings are for MathML elements, from https://developer.mozilla.org/en-US/docs/Web/MathML.\n ['annotation-xml', ['encoding', 'src', 'name', 'definitionURL']],\n ['annotation', ['encoding', 'src', 'name', 'definitionURL']],\n ['math', ['display', 'xmlns', 'mode', 'overflow', 'alttext', 'mathbackground', 'mathcolor']],\n ['merror', ['mathbackground', 'mathcolor']],\n ['mfenced', ['close', 'open', 'separators']],\n ['mfrac', ['linethickness', 'numalign', 'denomalign', 'bevelled']],\n ['mi', ['mathvariant', 'mathsize', 'mathbackground', 'mathcolor']],\n ['mmultiscripts', ['subscriptshift', 'superscriptshift']],\n ['mn', ['mathvariant', 'mathsize', 'mathbackground', 'mathcolor']],\n [\n 'mo',\n [\n 'form',\n 'fence',\n 'separator',\n 'lspace',\n 'rspace',\n 'stretchy',\n 'symmetric',\n 'maxsize',\n 'minsize',\n 'largeop',\n 'movablelimits',\n 'accent',\n 'linebreak',\n 'mathvariant',\n 'mathsize',\n 'mathbackground',\n 'mathcolor'\n ]\n ],\n ['mover', ['accent', 'align']],\n ['mpadded', ['height', 'width', 'depth', 'lspace', 'voffset']],\n ['mphantom', ['mathbackground']],\n ['mprescripts', []],\n ['mroot', ['mathbackground', 'mathcolor']],\n ['mrow', ['dir', 'mathbackground', 'mathcolor']],\n ['ms', ['lquote', 'rquote', 'mathvariant', 'mathsize', 'mathbackground', 'mathcolor']],\n [\n 'mspace',\n [\n 'linebreak',\n 'width',\n 'height',\n 'depth',\n 'mediummathspace',\n 'negativemediummathspace',\n 'negativethickmathspace',\n 'negativethinmathspace',\n 'negativeverythickmathspace',\n 'negativeverythinmathspace',\n 'thickmathspace',\n 'thinmathspace',\n 'verythickmathspace',\n 'verythinmathspace'\n ]\n ],\n ['msqrt', ['mathbackground', 'mathcolor']],\n [\n 'mstyle',\n [\n 'scriptlevel',\n 'displaystyle',\n 'scriptsizemultiplier',\n 'scriptminsize',\n 'infixlinebreakstyle',\n 'decimalpoint',\n 'mathvariant',\n 'mathsize',\n 'mathbackground',\n 'mathcolor',\n 'dir'\n ]\n ],\n ['msub', ['subscriptshift']],\n ['msubsup', ['subscriptshift', 'superscriptshift']],\n ['msup', ['superscriptshift']],\n [\n 'mtable',\n [\n 'align',\n 'rowalign',\n 'columnalign',\n 'groupalign',\n 'alignmentscope',\n 'columnwidth',\n 'width',\n 'rowspacing',\n 'columnspacing',\n 'rowlines',\n 'columnlines',\n 'frame',\n 'framespacing',\n 'equalrows',\n 'equalcolumns',\n 'displaystyle',\n 'side',\n 'minlabelspacing'\n ]\n ],\n ['mtd', ['rowspan', 'columnspan', 'rowalign', 'columnalign', 'groupalign']],\n ['mtext', ['mathvariant', 'mathsize', 'mathbackground', 'mathcolor']],\n ['mtr', ['rowalign', 'columnalign', 'groupalign']],\n ['munder', ['accentunder', 'align']],\n ['munderover', ['accent', 'accentunder', 'align']],\n ['semantics', ['definitionURL', 'encoding']]\n ] satisfies [string, string[]][]\n ).map(\n ([tag, attributes]) =>\n [tag, Object.freeze({ attributes: Object.freeze(new Set(attributes)) })] satisfies [\n string,\n Readonly<{ attributes: ReadonlySet<string> }>\n ]\n )\n )\n);\n\nexport default function useTransformHTMLContent(): (documentFragment: DocumentFragment) => DocumentFragment {\n const [codeBlockTagName] = useCodeBlockTag();\n const { transform } = useHTMLContentTransformContext();\n\n const localize = useLocalizer();\n const externalLinkAlt = localize('MARKDOWN_EXTERNAL_LINK_ALT');\n\n return useCallback(\n documentFragment =>\n transform({\n allowedTags: DEFAULT_ALLOWED_TAGS,\n codeBlockTagName,\n documentFragment,\n externalLinkAlt\n }),\n [codeBlockTagName, externalLinkAlt, transform]\n );\n}\n","import { createContext } from 'react';\n\nexport type CustomElementsContextType = Readonly<{ codeBlockTagName: string; codeBlockCopyButtonTagName: string }>;\n\nconst CustomElementsContext = createContext<CustomElementsContextType>(\n new Proxy({} as CustomElementsContextType, {\n get() {\n throw new Error('botframework-webchat: Cannot use this hook outside of <CustomElementsComposer>.');\n }\n })\n);\n\nCustomElementsContext.displayName = 'CustomElementsContext';\n\nexport default CustomElementsContext;\n","import { useContext } from 'react';\nimport CustomElementsContext, { type CustomElementsContextType } from './CustomElementsContext';\n\nexport default function useCustomElementsContext(): CustomElementsContextType {\n return useContext(CustomElementsContext);\n}\n","import { createElement, memo, useMemo } from 'react';\n\nimport { CodeBlockProps } from './customElements/CodeBlock';\nimport useCustomElementsContext from './private/useCustomElementsContext';\n\nexport default function useCodeBlockTag() {\n const { codeBlockTagName } = useCustomElementsContext();\n\n return useMemo(\n () =>\n Object.freeze([\n codeBlockTagName,\n memo((props: CodeBlockProps) =>\n createElement(codeBlockTagName, { ...props, class: props.className, className: undefined })\n )\n ] as const),\n [codeBlockTagName]\n );\n}\n","import { useContext } from 'react';\nimport HTMLContentTransformContext, { type HTMLContentTransformContextType } from './HTMLContentTransformContext';\n\nexport default function useHTMLContentTransformContext(): HTMLContentTransformContextType {\n return useContext(HTMLContentTransformContext);\n}\n","import { createContext } from 'react';\n\nexport type HTMLContentTransformRequest = Readonly<{\n allowedTags: ReadonlyMap<\n string,\n Readonly<{\n // TODO: Ultimately, we could allowlist a cherry-picked instance of element, but not all elements sharing the same tag name.\n attributes: ReadonlySet<string>;\n }>\n >;\n codeBlockTagName: string;\n documentFragment: DocumentFragment;\n externalLinkAlt: string;\n}>;\n\nexport type HTMLContentTransformFunction = (request: HTMLContentTransformRequest) => DocumentFragment;\n\nexport type HTMLContentTransformEnhancer = (next: HTMLContentTransformFunction) => HTMLContentTransformFunction;\n\nexport type HTMLContentTransformMiddleware = () => HTMLContentTransformEnhancer;\n\nexport type HTMLContentTransformContextType = Readonly<{\n transform: HTMLContentTransformFunction;\n}>;\n\nconst HTMLContentTransformContext = createContext<HTMLContentTransformContextType>(\n new Proxy({} as HTMLContentTransformContextType, {\n get() {\n throw new Error('botframework-webchat: This hook can only be used under <HTMLContentTransformComposer>.');\n }\n })\n);\n\nexport default HTMLContentTransformContext;\n","import { cx } from '@emotion/css';\nimport { hooks, StrictStyleOptions } from 'botframework-webchat-api';\nimport { useMemo } from 'react';\n\nimport { useTransformHTMLContent } from '../providers/HTMLContentTransformCOR/index';\nimport parseDocumentFragmentFromString from '../Utils/parseDocumentFragmentFromString';\nimport serializeDocumentFragmentIntoString from '../Utils/serializeDocumentFragmentIntoString';\nimport useWebChatUIContext from './internal/useWebChatUIContext';\nimport { useStyles } from '@msinternal/botframework-webchat-styles/react';\n\nimport styles from './RenderMarkdown.module.css';\n\nconst { useLocalizer, useStyleOptions } = hooks;\n\ntype RenderMarkdownAsHTMLFn = (\n markdown: string,\n styleOptions?: Readonly<StrictStyleOptions>,\n options?: Readonly<{ externalLinkAlt: string }>\n) => string;\n\nexport default function useRenderMarkdownAsHTML(\n mode: 'accessible name' | 'adaptive cards' | 'citation modal' | 'message activity' = 'message activity'\n): RenderMarkdownAsHTMLFn | undefined {\n const { renderMarkdown } = useWebChatUIContext();\n const [styleOptions] = useStyleOptions();\n const localize = useLocalizer();\n const transformHTMLContent = useTransformHTMLContent();\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--adaptive-cards']]: mode === 'adaptive cards',\n [classNames['render-markdown--citation']]: mode === 'citation modal',\n [classNames['render-markdown--message-activity']]:\n mode !== 'accessible name' && mode !== 'adaptive cards' && mode !== 'citation modal'\n }),\n [classNames, mode]\n );\n\n // For 'message activity' mode, streaming rendering is available via useStreamingMarkdownWithDefinitions hook.\n // This hook still returns a full-render function for backward compatibility and other consumers.\n return useMemo(\n () =>\n renderMarkdown &&\n (markdown => {\n const html = renderMarkdown(markdown, styleOptions, { externalLinkAlt });\n\n const documentFragment = transformHTMLContent(parseDocumentFragmentFromString(html));\n\n const rootElement = document.createElement('div');\n\n containerClassName && rootElement.classList.add(...containerClassName.split(' ').filter(Boolean));\n\n rootElement.append(...documentFragment.childNodes);\n documentFragment.append(rootElement);\n\n return serializeDocumentFragmentIntoString(documentFragment);\n }),\n [containerClassName, externalLinkAlt, renderMarkdown, styleOptions, transformHTMLContent]\n );\n}\n","import \"/__w/1/s/BotFramework-WebChat/packages/component/src/hooks/RenderMarkdown.module_built.css\";\nconst classes = {\"render-markdown--message-activity\":\"wlkyN3a_render-markdown--message-activity\",\"render-markdown\":\"wlkyN3a_render-markdown\",\"render-markdown--adaptive-cards\":\"wlkyN3a_render-markdown--adaptive-cards\"}\nexport default classes\n\nconst _render_markdown__message_activity0 = classes[\"render-markdown--message-activity\"]\nexport { _render_markdown__message_activity0 as \"render-markdown--message-activity\" }\n\nconst _render_markdown0 = classes[\"render-markdown\"]\nexport { _render_markdown0 as \"render-markdown\" }\n\nconst _render_markdown__adaptive_cards0 = classes[\"render-markdown--adaptive-cards\"]\nexport { _render_markdown__adaptive_cards0 as \"render-markdown--adaptive-cards\" }\n","import { useContext as useReactContext } from 'react';\n\nimport { type ContextOf } from '../../../types/ContextOf';\nimport Context from './Context';\n\nexport default function useContext(): ContextOf<typeof Context> {\n return useReactContext(Context);\n}\n","import { createContext } from 'react';\n\ntype ContextType = Readonly<{\n shouldReduceMotionState: readonly [boolean];\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 shouldReduceMotionState: {\n get() {\n throw new Error('shouldReduceMotionState cannot be used outside of <ReducedMotionComposer>.');\n }\n }\n};\n\nconst Context = createContext<ContextType>(Object.create({}, defaultContextValue));\n\nContext.displayName = 'ReducedMotionComposer';\n\nexport default Context;\n","import useContext from './private/useContext';\n\nexport default function useShouldReduceMotion(): ReturnType<typeof useContext>['shouldReduceMotionState'] {\n return useContext().shouldReduceMotionState;\n}\n","import useWebChatUIContext from './useWebChatUIContext';\n\nexport default function useSettableDictateAbortable() {\n const { dictateAbortable, setDictateAbortable } = useWebChatUIContext();\n\n return [dictateAbortable, setDictateAbortable];\n}\n","import useSettableDictateAbortable from './internal/useSettableDictateAbortable';\n\nexport default function useDictateAbortable(): [boolean] {\n // We are only exporting a read-only version of dictateAbortable.\n const [dictateAbortable] = useSettableDictateAbortable();\n\n return [dictateAbortable];\n}\n","import { WaitUntilable } from './internal/createWaitUntilable';\nimport { createPropagation } from 'use-propagate';\n\nexport type SendBoxFocusOptions = WaitUntilable<{ noKeyboard: boolean }>;\n\nconst {\n PropagationScope: FocusSendBoxScope,\n useListen: useRegisterFocusSendBox,\n usePropagate: useFocusSendBox\n} = createPropagation<SendBoxFocusOptions>();\n\nexport { FocusSendBoxScope, useRegisterFocusSendBox, useFocusSendBox };\n","import { useCallback } from 'react';\n\nimport createWaitUntilable from './internal/createWaitUntilable';\nimport useWebChatUIContext from './internal/useWebChatUIContext';\nimport { useFocusSendBox } from './sendBoxFocus';\n\nexport default function useFocus(): (where?: 'main' | 'sendBox' | 'sendBoxWithoutKeyboard') => Promise<void> {\n const focusSendBox = useFocusSendBox();\n const { focusTranscriptCallbacksRef } = useWebChatUIContext();\n\n return useCallback(\n async where => {\n if (where === 'sendBox' || where === 'sendBoxWithoutKeyboard') {\n const [options, getPromise] = createWaitUntilable({ noKeyboard: where === 'sendBoxWithoutKeyboard' });\n\n focusSendBox(options);\n\n await getPromise();\n } else {\n const [, getPromise] = createWaitUntilable({});\n\n focusTranscriptCallbacksRef.current.forEach(callback => callback());\n\n await getPromise();\n }\n },\n [focusSendBox, focusTranscriptCallbacksRef]\n );\n}\n","export type WaitUntilable<T> = T & { waitUntil: (promise: Promise<void>) => void };\n\nexport default function createWaitUntilable<T extends Record<any, any>>(\n object: T\n): readonly [WaitUntilable<T>, () => Promise<void>] {\n const allPromises: Promise<void>[] = [];\n\n return Object.freeze([\n {\n ...object,\n waitUntil(promise: Promise<void>) {\n allPromises.push(promise);\n }\n },\n async () => {\n // Implements the logic of ExtendableEvent.waitUntil.\n // When calling waitUntil(), new promises can be added by calling waitUntil() again.\n // It should wait until no new promises are added.\n\n // From excerpt of https://developer.mozilla.org/en-US/docs/Web/API/ExtendableEvent/waitUntil:\n // \"The waitUntil() method must be initially called within the event callback, but after that it can be called multiple times, until all the promises passed to it settle.\"\n for (let numPromise = 0; ; numPromise = allPromises.length) {\n // eslint-disable-next-line no-await-in-loop\n await Promise.all(allPromises).then(() => {\n // Intentionally left blank.\n });\n\n // Wait until all promise changes are settled.\n if (numPromise === allPromises.length) {\n break;\n }\n }\n }\n ]);\n}\n","import { hooks } from 'botframework-webchat-api';\nimport { useCallback } from 'react';\nimport { useRefFrom } from 'use-ref-from';\n\nimport downscaleImageToDataURL from '../Utils/downscaleImageToDataURL/index';\n\nconst { useStyleOptions, useTrackTiming } = hooks;\n\nasync function makeThumbnail(\n file: File,\n width: number,\n height: number,\n contentType: string,\n quality: number\n): Promise<URL | undefined> {\n try {\n return await downscaleImageToDataURL(file, width, height, contentType, quality);\n } catch (error) {\n console.warn(`Web Chat: Failed to downscale image due to ${error}.`);\n }\n}\n\nexport default function useMakeThumbnail(): (file: File, contentType?: string | undefined) => Promise<undefined | URL> {\n const [styleOptions] = useStyleOptions();\n const trackTiming = useTrackTiming<undefined | URL>();\n\n const styleOptionsRef = useRefFrom(styleOptions);\n\n // TODO: [P3] We need to find revokeObjectURL on the UI side\n // Redux store should not know about the browser environment\n // One fix is to use ArrayBuffer instead of object URL, but that would requires change to DirectLineJS\n return useCallback(\n (file: File, contentType?: string | undefined): Promise<undefined | URL> => {\n const {\n current: {\n enableUploadThumbnail,\n uploadThumbnailContentType,\n uploadThumbnailHeight,\n uploadThumbnailQuality,\n uploadThumbnailWidth\n }\n } = styleOptionsRef;\n\n if (enableUploadThumbnail && (contentType || (file instanceof File ? file.type : '')).startsWith('image/')) {\n return trackTiming(\n 'sendFiles:makeThumbnail',\n makeThumbnail(\n file,\n uploadThumbnailWidth,\n uploadThumbnailHeight,\n uploadThumbnailContentType,\n uploadThumbnailQuality\n )\n );\n }\n\n return Promise.resolve<undefined>(undefined);\n },\n [styleOptionsRef, trackTiming]\n );\n}\n","function keepAspectRatio(\n width: number,\n height: number,\n maxWidth: number,\n maxHeight: number\n): { height: number; width: number } {\n if (width < maxWidth && height < maxHeight) {\n // Photo is smaller than both maximum dimensions, take it as-is\n return {\n height,\n width\n };\n }\n\n const aspectRatio = width / height;\n\n if (aspectRatio > maxWidth / maxHeight) {\n // Photo is wider than maximum dimension, downscale it based on maxWidth.\n return {\n height: maxWidth / aspectRatio,\n width: maxWidth\n };\n }\n\n // Photo is taller than maximum dimension, downscale it based on maxHeight.\n return {\n height: maxHeight,\n width: maxHeight * aspectRatio\n };\n}\n\nfunction createCanvas(width: number, height: number): HTMLCanvasElement {\n const canvas = document.createElement('canvas');\n\n canvas.height = height;\n canvas.width = width;\n\n return canvas;\n}\n\nfunction loadImageFromBlob(blob: Blob): Promise<HTMLImageElement> {\n // Blob is only loaded in <img> created inline and not presented in HTML.\n // eslint-disable-next-line no-restricted-properties\n const blobURL = URL.createObjectURL(blob);\n\n return new Promise<HTMLImageElement>((resolve, reject) => {\n const image = document.createElement('img');\n\n image.addEventListener('error', ({ error }) => reject(error));\n image.addEventListener('load', () => resolve(image));\n image.setAttribute('src', blobURL);\n }).finally(() => {\n URL.revokeObjectURL(blobURL);\n });\n}\n\nexport default async function downscaleImageToDataURLUsingBrowser(\n blob: Blob,\n maxWidth: number,\n maxHeight: number,\n type: string,\n quality: number\n): Promise<URL> {\n const image = await loadImageFromBlob(blob);\n const { height, width } = keepAspectRatio(image.width, image.height, maxWidth, maxHeight);\n const canvas = createCanvas(width, height);\n const context = canvas.getContext('2d');\n\n if (!context) {\n throw new Error('botframework-webchat: Failed to get 2D context.');\n }\n\n context.drawImage(image, 0, 0, width, height);\n\n return new URL(canvas.toDataURL(type, quality));\n}\n","/* eslint object-shorthand: \"off\" */\n/* eslint prefer-destructuring: \"off\" */\n/* eslint prefer-arrow-callback: \"off\" */\n\n// This file is the entrypoint of Web Worker and is minimally transpiled through Babel.\n// Do not include any dependencies here because they will not be bundled.\n\n// This file will also get loaded by IE11, please make sure you hand-transpile it correctly.\n\nexport default function () {\n function blobToDataURL(blob) {\n return new Promise(function (resolve, reject) {\n const reader = new FileReader();\n\n reader.onerror = function (event) {\n reject(event.error || new Error(event.message));\n };\n\n reader.onloadend = function () {\n resolve(reader.result);\n };\n\n reader.readAsDataURL(blob);\n });\n }\n\n function keepAspectRatio(width, height, maxWidth, maxHeight) {\n if (width < maxWidth && height < maxHeight) {\n // Photo is smaller than both maximum dimensions, take it as-is\n return {\n height: height,\n width: width\n };\n }\n\n const aspectRatio = width / height;\n\n if (aspectRatio > maxWidth / maxHeight) {\n // Photo is wider than maximum dimension, downscale it based on maxWidth.\n return {\n height: maxWidth / aspectRatio,\n width: maxWidth\n };\n }\n\n // Photo is taller than maximum dimension, downscale it based on maxHeight.\n return {\n height: maxHeight,\n width: maxHeight * aspectRatio\n };\n }\n\n onmessage = function (event) {\n const data = event.data;\n const arrayBuffer = data.arrayBuffer;\n const maxHeight = data.maxHeight;\n const maxWidth = data.maxWidth;\n const type = data.type;\n const quality = data.quality;\n const port = event.ports[0];\n\n return Promise.resolve()\n .then(function () {\n return createImageBitmap(new Blob([arrayBuffer]), { resizeQuality: 'high' });\n })\n .then(function (imageBitmap) {\n const dimension = keepAspectRatio(imageBitmap.width, imageBitmap.height, maxWidth, maxHeight);\n const height = dimension.height;\n const width = dimension.width;\n const offscreenCanvas = new OffscreenCanvas(width, height);\n const context = offscreenCanvas.getContext('2d');\n\n context.drawImage(imageBitmap, 0, 0, width, height);\n\n // Firefox quirks: 68.0.1 call named OffscreenCanvas.convertToBlob as OffscreenCanvas.toBlob.\n const convertToBlob = (offscreenCanvas.convertToBlob || offscreenCanvas.toBlob).bind(offscreenCanvas);\n\n return convertToBlob({ type: type, quality: quality });\n })\n .then(function (blob) {\n return blobToDataURL(blob);\n })\n .then(function (dataURL) {\n return port.postMessage({ result: dataURL });\n })\n .catch(function (err) {\n console.error(err);\n\n port.postMessage({\n error: {\n message: err.message,\n stack: err.stack\n }\n });\n });\n };\n\n postMessage('ready');\n}\n","import workerFunction from './downscaleImageToDataURLUsingWorker.worker';\nimport { type WorkerJob, type WorkerReturnValue } from './WorkerJob';\n\nfunction createWorker(fn: ((...args: unknown[]) => unknown) | string): Promise<Worker> {\n const blob = new Blob([`(${fn})()`], { type: 'text/javascript' });\n const url = window.URL.createObjectURL(blob);\n\n return new Promise<Worker>((resolve, reject) => {\n const worker = new Worker(url);\n\n worker.onerror = ({ error, message }) => reject(error || new Error(message));\n worker.onmessage = ({ data }) => data === 'ready' && resolve(worker);\n }).finally(() => {\n window.URL.revokeObjectURL(url);\n });\n}\n\nlet workerPromise;\n\nasync function getWorker(): Promise<Worker> {\n let worker;\n\n if (workerPromise) {\n worker = await workerPromise;\n } else {\n workerPromise = createWorker(workerFunction);\n\n worker = await workerPromise;\n worker.addEventListener('error', () => {\n // Current worker errored out, will create a new worker next time.\n workerPromise = null;\n worker.terminate();\n });\n }\n\n return worker;\n}\n\n// We are using a lazy-check because:\n// 1. OffscreenCanvas.getContext has a toll\n// 2. Developers could bring polyfills\n\nconst checkSupportOffscreenCanvas = () => {\n const hasOffscreenCanvas =\n typeof window.OffscreenCanvas !== 'undefined' &&\n (typeof window.OffscreenCanvas.prototype.convertToBlob !== 'undefined' ||\n // Firefox quirks: 68.0.1 call named OffscreenCanvas.convertToBlob as OffscreenCanvas.toBlob.\n typeof (window.OffscreenCanvas.prototype as any).toBlob !== 'undefined');\n let isOffscreenCanvasSupportGetContext2D;\n\n if (hasOffscreenCanvas) {\n try {\n new OffscreenCanvas(1, 1).getContext('2d');\n isOffscreenCanvasSupportGetContext2D = true;\n } catch {\n isOffscreenCanvasSupportGetContext2D = false;\n }\n }\n\n return typeof window.createImageBitmap !== 'undefined' && hasOffscreenCanvas && isOffscreenCanvasSupportGetContext2D;\n};\n\nlet checkSupportWebWorkerPromise;\n\nfunction checkSupportWebWorker(): Promise<boolean> {\n return (\n checkSupportWebWorkerPromise ||\n (checkSupportWebWorkerPromise = (async () => {\n if (typeof window.MessageChannel === 'undefined' || typeof window.Worker === 'undefined') {\n return false;\n }\n\n let worker;\n\n try {\n worker = await createWorker('function(){postMessage(\"ready\")}');\n } catch {\n return false;\n }\n\n worker.terminate();\n\n return true;\n })())\n );\n}\n\nlet checkSupportPromise: Promise<boolean>;\n\nfunction checkSupport(): Promise<boolean> {\n return (\n checkSupportPromise ||\n (checkSupportPromise = (async () => {\n try {\n const results = await Promise.all([checkSupportOffscreenCanvas(), checkSupportWebWorker()]);\n\n return results.every(result => result);\n } catch {\n return false;\n }\n })())\n );\n}\n\nexport default function downscaleImageToDataURLUsingWorker(\n blob: Blob | File,\n maxWidth: number,\n maxHeight: number,\n type: string,\n quality: number\n): Promise<URL> {\n return new Promise<URL>((resolve, reject) => {\n const { port1, port2 } = new MessageChannel();\n\n port1.onmessage = ({ data }: MessageEvent<WorkerReturnValue>) => {\n if ('error' in data) {\n const { message, stack } = data.error;\n\n const err = new Error(message);\n\n err.stack = stack;\n\n reject(err);\n } else {\n resolve(new URL(data.result));\n }\n\n port1.close();\n port2.close();\n };\n\n Promise.all([blob.arrayBuffer(), getWorker()]).then(([arrayBuffer, worker]) =>\n worker.postMessage({ arrayBuffer, maxHeight, maxWidth, quality, type } as WorkerJob, [arrayBuffer, port2])\n );\n });\n}\n\nexport { checkSupport };\n","import downscaleImageToDataURLUsingBrowser from './downscaleImageToDataURLUsingBrowser';\nimport downscaleImageToDataURLUsingWorker, {\n checkSupport as supportWorker\n} from './downscaleImageToDataURLUsingWorker';\n\nexport default async function downscaleImageToDataURL(\n blob: Blob | File,\n maxWidth: number,\n maxHeight: number,\n type: string,\n quality: number\n): Promise<URL> {\n if (await supportWorker()) {\n return downscaleImageToDataURLUsingWorker(blob, maxWidth, maxHeight, type, quality);\n }\n\n return downscaleImageToDataURLUsingBrowser(blob, maxWidth, maxHeight, type, quality);\n}\n","import { useEffect } from 'react';\n\nimport ScrollPosition from '../types/ScrollPosition';\nimport useWebChatUIContext from './internal/useWebChatUIContext';\n\nexport default function useObserveScrollPosition(\n observer: (scrollPosition: ScrollPosition) => void,\n deps: any[]\n): void {\n if (typeof observer !== 'function') {\n // This is for shortcutting invalid props.\n // eslint-disable-next-line react-hooks/immutability\n observer = undefined;\n\n console.warn('botframework-webchat: First argument passed to \"useObserveScrollPosition\" must be a function.');\n } else if (typeof deps !== 'undefined' && !Array.isArray(deps)) {\n console.warn(\n 'botframework-webchat: Second argument passed to \"useObserveScrollPosition\" must be an array if specified.'\n );\n }\n\n const { observeScrollPosition } = useWebChatUIContext();\n\n /* eslint-disable-next-line react-hooks/exhaustive-deps */\n useEffect(() => observer && observeScrollPosition(observer), [...(deps || []), observer, observeScrollPosition]);\n}\n","import { useEffect } from 'react';\nimport type { WebChatActivity } from 'botframework-webchat-core';\n\nimport useWebChatUIContext from './internal/useWebChatUIContext';\n\nexport default function useObserveTranscriptFocus(\n observer: ((event: { activity: WebChatActivity }) => void) | undefined,\n deps: any[]\n): void {\n if (typeof observer !== 'function') {\n // Shortcut for disabling the observer.\n // eslint-disable-next-line react-hooks/immutability\n observer = undefined;\n\n console.warn('botframework-webchat: First argument passed to \"useObserveTranscriptFocus\" must be a function.');\n } else if (typeof deps !== 'undefined' && !Array.isArray(deps)) {\n console.warn(\n 'botframework-webchat: Second argument passed to \"useObserveTranscriptFocus\" must be an array if specified.'\n );\n }\n\n const { observeTranscriptFocus } = useWebChatUIContext();\n\n useEffect(\n () => observer && observeTranscriptFocus(observer),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [...(deps || []), observer, observeTranscriptFocus]\n );\n}\n","import { useCallback } from 'react';\nimport { useScrollRelativeTranscript } from './transcriptScrollRelative';\n\nexport default function useScrollDown(): (options?: { displacement: number }) => void {\n const scrollRelative = useScrollRelativeTranscript();\n\n return useCallback(options => scrollRelative({ direction: 'down', ...options }), [scrollRelative]);\n}\n","import { createPropagation } from 'use-propagate';\n\nexport type TranscriptScrollRelativeOptions = { direction: 'down' | 'up'; displacement?: number };\n\nconst {\n PropagationScope: ScrollRelativeTranscriptScope,\n useListen: useRegisterScrollRelativeTranscript,\n usePropagate: useScrollRelativeTranscript\n} = createPropagation<TranscriptScrollRelativeOptions>();\n\nexport { ScrollRelativeTranscriptScope, useRegisterScrollRelativeTranscript, useScrollRelativeTranscript };\n","import { useCallback } from 'react';\n\nimport ScrollPosition from '../types/ScrollPosition';\nimport useWebChatUIContext from './internal/useWebChatUIContext';\n\nexport default function useScrollTo(): (\n position: ScrollPosition,\n scrollToOptions: { behavior?: 'auto' | 'smooth' }\n) => void {\n const { scrollToCallbacksRef } = useWebChatUIContext();\n\n return useCallback(\n (...args) => scrollToCallbacksRef.current.forEach(callback => callback(...args)),\n [scrollToCallbacksRef]\n );\n}\n","import { useCallback } from 'react';\n\nimport useWebChatUIContext from './internal/useWebChatUIContext';\n\nexport default function useScrollToEnd(): () => void {\n const { scrollToEndCallbacksRef } = useWebChatUIContext();\n\n return useCallback(\n () => scrollToEndCallbacksRef.current.forEach(callback => callback({ behavior: 'smooth' })),\n [scrollToEndCallbacksRef]\n );\n}\n","import { useCallback } from 'react';\nimport { useScrollRelativeTranscript } from './transcriptScrollRelative';\n\nexport default function useScrollUp(): (options?: { displacement: number }) => void {\n const scrollRelative = useScrollRelativeTranscript();\n\n return useCallback(options => scrollRelative({ direction: 'up', ...options }), [scrollRelative]);\n}\n","import { hooks } from 'botframework-webchat-api';\nimport { useCallback } from 'react';\n\nimport useMakeThumbnail from './useMakeThumbnail';\n\nconst { useSendFiles: useAPISendFiles } = hooks;\n\ntype PostActivityFile = Parameters<ReturnType<typeof useAPISendFiles>>[0][0];\n\n/**\n * @deprecated This hook will be removed on or after 2026-04-03. Please use `useSendMessage` instead.\n */\nexport default function useSendFiles(): (files: readonly File[]) => void {\n const makeThumbnail = useMakeThumbnail();\n const sendFiles = useAPISendFiles();\n\n return useCallback(\n files => {\n // We intentionally not returning a Promise.\n // This is the because the Promise returned never tell if the message has successfully sent or not.\n // Until we have that signal, we should not return Promise.\n (async function () {\n files &&\n files.length &&\n sendFiles(\n await Promise.all(\n files.map<Promise<PostActivityFile>>(file =>\n // To maintain backward compatibility, this hook should look at file extension instead of MIME type.\n makeThumbnail(\n file,\n /\\.(gif|jpe?g|png)$/iu.test(file.name) ? 'image/*' : 'application/octet-stream'\n ).then(thumbnailURL => ({\n name: file.name,\n size: file.size,\n thumbnail: thumbnailURL?.toString(),\n // The URL is passed to chat adapter and should be treated as binary.\n // Just in case the chat adapter naively echo back, it should show up as binary.\n // eslint-disable-next-line no-restricted-properties\n url: URL.createObjectURL(new Blob([file], { type: 'application/octet-stream' }))\n }))\n )\n )\n );\n })();\n },\n [makeThumbnail, sendFiles]\n );\n}\n","import { hooks } from 'botframework-webchat-api';\nimport { type SendBoxAttachment } from 'botframework-webchat-core';\nimport { useCallback } from 'react';\n\nimport useMakeThumbnail from './useMakeThumbnail';\n\nconst { useSendMessage: useAPISendMessage } = hooks;\n\ntype SendMessage = (\n text?: string,\n method?: string,\n init?: {\n attachments?: Iterable<SendBoxAttachment> | undefined;\n channelData?: any;\n }\n) => void;\n\nexport default function useSendMessage(): SendMessage {\n const makeThumbnail = useMakeThumbnail();\n const sendMessage = useAPISendMessage();\n\n return useCallback<SendMessage>(\n async (text, method, { channelData, attachments } = {}) => {\n sendMessage(text, method, {\n attachments: attachments\n ? await Promise.all(\n [...attachments].map(async ({ blob, thumbnailURL }) => {\n if (!thumbnailURL && blob instanceof File) {\n thumbnailURL = await makeThumbnail(blob);\n }\n\n return { blob, thumbnailURL };\n })\n )\n : [],\n channelData\n });\n },\n [makeThumbnail, sendMessage]\n );\n}\n","import { WebSpeechPonyfill } from 'botframework-webchat-api';\n\nimport useWebChatUIContext from './internal/useWebChatUIContext';\n\nexport default function useWebSpeechPonyfill(): [WebSpeechPonyfill] {\n return [useWebChatUIContext().webSpeechPonyfill];\n}\n","import { hooks } from 'botframework-webchat-api';\nimport React, { Fragment, useMemo } from 'react';\n\nconst { useActiveTyping, useRenderTypingIndicator } = hooks;\n\nfunction useTypingIndicatorVisible(): readonly [boolean] {\n const [activeTyping] = useActiveTyping();\n\n return useMemo(\n () =>\n Object.freeze([\n !!Object.values(activeTyping).some(\n // Show typing indicator if anyone is typing and not livestreaming.\n ({ role, type }) => role !== 'user' && type !== 'livestream'\n )\n ]),\n [activeTyping]\n );\n}\n\nconst BasicTypingIndicator = () => {\n const [activeTyping] = useActiveTyping();\n const [visible] = useTypingIndicatorVisible();\n const [typing] = useActiveTyping(Infinity);\n const renderTypingIndicator = useRenderTypingIndicator();\n\n return <Fragment>{renderTypingIndicator({ activeTyping, typing, visible })}</Fragment>;\n};\n\nexport default BasicTypingIndicator;\n\nexport { useTypingIndicatorVisible };\n","const testIds = {\n codeBlockCopyButton: 'code block copy button',\n copyButton: 'copy button',\n feedbackButton: 'feedback button',\n feedbackSendBox: 'feedback sendbox',\n sendBoxAttachmentBar: 'send box attachment bar',\n sendBoxAttachmentBarItem: 'send box attachment bar item',\n sendBoxAttachmentBarItemDeleteButton: 'send box attachment bar item delete button',\n sendBoxMicrophoneButton: 'send box microphone button',\n sendBoxSpeechBox: 'send box speech box',\n sendBoxTextBox: 'send box text area',\n suggestedActionButton: 'suggested action button',\n typingIndicator: 'typing indicator',\n viewCodeButton: 'view code button'\n};\n\nexport default testIds;\n","import { hooks } from 'botframework-webchat-api';\nimport { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport cx from 'classnames';\nimport React, { memo, useCallback, useMemo } from 'react';\nimport { useRefFrom } from 'use-ref-from';\nimport { useStyles } from '@msinternal/botframework-webchat-styles/react';\nimport { object, optional, pipe, readonly, string, type InferInput } from 'valibot';\n\nimport styles from './AttachmentBar.module.css';\nimport testIds from '../../testIds';\nimport AttachmentBarItem from './AttachmentBarItem';\n\nconst { useSendBoxAttachments, useStyleOptions } = hooks;\n\nconst sendBoxAttachmentBarPropsSchema = pipe(\n object({\n className: optional(string())\n }),\n readonly()\n);\n\ntype SendBoxAttachmentBarProps = InferInput<typeof sendBoxAttachmentBarPropsSchema>;\n\nfunction SendBoxAttachmentBar(props: SendBoxAttachmentBarProps) {\n const { className } = validateProps(sendBoxAttachmentBarPropsSchema, props);\n\n const [sendBoxAttachments, setSendBoxAttachments] = useSendBoxAttachments();\n const classNames = useStyles(styles);\n const [{ sendBoxAttachmentBarMaxThumbnail }] = useStyleOptions();\n\n const mode = useMemo(\n () => (sendBoxAttachments.length > sendBoxAttachmentBarMaxThumbnail ? 'list item' : 'thumbnail'),\n [sendBoxAttachmentBarMaxThumbnail, sendBoxAttachments]\n );\n\n const sendBoxAttachmentsRef = useRefFrom(sendBoxAttachments);\n\n const handleAttachmentDelete = useCallback(\n ({ attachment }) =>\n setSendBoxAttachments(\n sendBoxAttachmentsRef.current.filter(sendBoxAttachment => sendBoxAttachment !== attachment)\n ),\n [setSendBoxAttachments, sendBoxAttachmentsRef]\n );\n\n return (\n sendBoxAttachments.length > 0 && (\n <div\n className={cx(\n classNames['send-box-attachment-bar'],\n {\n [classNames['send-box-attachment-bar--as-list-item']]: mode === 'list item',\n [classNames['send-box-attachment-bar--as-thumbnail']]: mode === 'thumbnail'\n },\n className\n )}\n data-testid={testIds.sendBoxAttachmentBar}\n >\n <div className={classNames['send-box-attachment-bar__box']}>\n {sendBoxAttachments.map((attachment, index) => (\n // eslint-disable-next-line react/no-array-index-key\n <AttachmentBarItem attachment={attachment} key={index} mode={mode} onDelete={handleAttachmentDelete} />\n ))}\n </div>\n </div>\n )\n );\n}\n\nexport default memo(SendBoxAttachmentBar);\nexport { sendBoxAttachmentBarPropsSchema, type SendBoxAttachmentBarProps };\n","import \"/__w/1/s/BotFramework-WebChat/packages/component/src/SendBox/AttachmentBar/AttachmentBar.module_built.css\";\nconst classes = {\"send-box-attachment-bar\":\"wAcnLYa_send-box-attachment-bar\",\"send-box-attachment-bar--as-thumbnail\":\"wAcnLYa_send-box-attachment-bar--as-thumbnail\",\"send-box-attachment-bar--as-list-item\":\"wAcnLYa_send-box-attachment-bar--as-list-item\",\"send-box-attachment-bar__box\":\"wAcnLYa_send-box-attachment-bar__box\"}\nexport default classes\n\nconst _send_box_attachment_bar0 = classes[\"send-box-attachment-bar\"]\nexport { _send_box_attachment_bar0 as \"send-box-attachment-bar\" }\n\nconst _send_box_attachment_bar__as_thumbnail0 = classes[\"send-box-attachment-bar--as-thumbnail\"]\nexport { _send_box_attachment_bar__as_thumbnail0 as \"send-box-attachment-bar--as-thumbnail\" }\n\nconst _send_box_attachment_bar__as_list_item0 = classes[\"send-box-attachment-bar--as-list-item\"]\nexport { _send_box_attachment_bar__as_list_item0 as \"send-box-attachment-bar--as-list-item\" }\n\nconst _send_box_attachment_bar__box0 = classes[\"send-box-attachment-bar__box\"]\nexport { _send_box_attachment_bar__box0 as \"send-box-attachment-bar__box\" }\n","import { hooks } from 'botframework-webchat-api';\nimport { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport { type SendBoxAttachment } from 'botframework-webchat-core';\nimport { useStyles } from '@msinternal/botframework-webchat-styles/react';\nimport cx from 'classnames';\nimport React, { memo, useCallback, useEffect, useMemo, useRef } from 'react';\nimport { useRefFrom } from 'use-ref-from';\nimport {\n custom,\n function_,\n instance,\n is,\n object,\n optional,\n picklist,\n pipe,\n readonly,\n union,\n type InferInput\n} from 'valibot';\n\nimport { useFocus } from '../../hooks';\nimport testIds from '../../testIds';\nimport DeleteButton from './ItemDeleteButton';\nimport Preview from './ItemPreview';\nimport styles from './AttachmentBarItem.module.css';\n\nconst { useLocalizer } = hooks;\n\nconst sendBoxAttachmentBarItemPropsSchema = pipe(\n object({\n attachment: pipe(\n object({\n blob: union([instance(Blob), instance(File)]),\n thumbnailURL: optional(instance(URL))\n }),\n readonly()\n ),\n mode: picklist(['list item', 'thumbnail']),\n onDelete: optional(\n custom<(event: Readonly<{ attachment: SendBoxAttachment }>) => void>(value => is(function_(), value))\n )\n }),\n readonly()\n);\n\ntype SendBoxAttachmentBarItemProps = InferInput<typeof sendBoxAttachmentBarItemPropsSchema>;\n\nfunction SendBoxAttachmentBarItem(props: SendBoxAttachmentBarItemProps) {\n const { attachment, mode, onDelete } = validateProps(sendBoxAttachmentBarItemPropsSchema, props);\n\n const classNames = useStyles(styles);\n const attachmentRef = useRefFrom(attachment);\n const elementRef = useRef<HTMLDivElement>(null);\n const focus = useFocus();\n const localize = useLocalizer();\n const onDeleteRef = useRefFrom(onDelete);\n const shownRef = useRef<boolean>(false);\n\n const attachmentName = useMemo(\n () =>\n attachment.blob instanceof File\n ? attachment.blob.name\n : attachment.thumbnailURL\n ? localize('SEND_BOX_ATTACHMENT_BAR_GENERIC_IMAGE_ALT')\n : localize('SEND_BOX_ATTACHMENT_BAR_GENERIC_FILE_ALT'),\n [attachment, localize]\n );\n\n const handleDeleteButtonClick = useCallback(() => {\n onDeleteRef.current?.({ attachment: attachmentRef.current });\n\n // After delete, focus back to the send box.\n focus('sendBox');\n }, [attachmentRef, focus, onDeleteRef]);\n\n // If the item is newly added, scroll it into view.\n useEffect(() => {\n if (!shownRef.current) {\n shownRef.current = true;\n\n elementRef.current?.scrollIntoView();\n }\n }, [elementRef, shownRef]);\n\n return (\n <div\n className={cx(classNames['send-box-attachment-bar-item'], {\n [classNames['send-box-attachment-bar-item--as-list-item']]: mode === 'list item',\n [classNames['send-box-attachment-bar-item--as-thumbnail']]: mode === 'thumbnail'\n })}\n data-testid={testIds.sendBoxAttachmentBarItem}\n ref={elementRef}\n title={attachmentName}\n >\n <Preview attachment={attachment} attachmentName={attachmentName} mode={mode} />\n <DeleteButton attachmentName={attachmentName} onClick={handleDeleteButtonClick} />\n </div>\n );\n}\n\nexport default memo(SendBoxAttachmentBarItem);\nexport { sendBoxAttachmentBarItemPropsSchema, type SendBoxAttachmentBarItemProps };\n","import { SendBoxToolbarMiddlewareProxy, hooks } from 'botframework-webchat-api';\nimport { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport { Constants } from 'botframework-webchat-core';\nimport classNames from 'classnames';\nimport React, { memo } from 'react';\nimport { object, optional, pipe, readonly, string, type InferInput } from 'valibot';\n\nimport { useStyleToEmotionObject } from '../hooks/internal/styleToEmotionObject';\nimport useStyleSet from '../hooks/useStyleSet';\nimport useWebSpeechPonyfill from '../hooks/useWebSpeechPonyfill';\nimport useErrorMessageId from '../providers/internal/SendBox/useErrorMessageId';\nimport { AttachmentBar } from './AttachmentBar/index';\nimport DictationInterims from './DictationInterims';\nimport MicrophoneButton from './MicrophoneButton';\nimport SendButton from './SendButton';\nimport SuggestedActions from './SuggestedActions';\nimport TextBox from './TextBox';\n\nconst {\n DictateState: { DICTATING, STARTING }\n} = Constants;\n\nconst { useDirection, useDictateState, useStyleOptions } = hooks;\n\nconst ROOT_STYLE = {\n '&.webchat__send-box': {\n '& .webchat__send-box__button': { flexShrink: 0 },\n '& .webchat__send-box__dictation-interims': { flex: 10000 },\n '& .webchat__send-box__microphone-button': { flex: 1 },\n '& .webchat__send-box__text-box': { flex: 10000 }\n }\n};\n\nfunction useSendBoxSpeechInterimsVisible(): [boolean] {\n const [dictateState] = useDictateState();\n\n return [dictateState === STARTING || dictateState === DICTATING];\n}\n\nconst basicSendBoxPropsSchema = pipe(\n object({\n className: optional(string())\n }),\n readonly()\n);\n\ntype BasicSendBoxProps = InferInput<typeof basicSendBoxPropsSchema>;\n\nfunction BasicSendBox(props: BasicSendBoxProps) {\n const { className } = validateProps(basicSendBoxPropsSchema, props);\n\n const [{ sendBoxButtonAlignment }] = useStyleOptions();\n const [{ sendBox: sendBoxStyleSet }] = useStyleSet();\n const [{ SpeechRecognition = undefined } = {}] = useWebSpeechPonyfill();\n const [direction] = useDirection();\n const [errorMessageId] = useErrorMessageId();\n const [speechInterimsVisible] = useSendBoxSpeechInterimsVisible();\n const styleToEmotionObject = useStyleToEmotionObject();\n\n const rootClassName = styleToEmotionObject(ROOT_STYLE) + '';\n\n const supportSpeechRecognition = !!SpeechRecognition;\n\n const buttonClassName = classNames('webchat__send-box__button', {\n 'webchat__send-box__button--align-bottom': sendBoxButtonAlignment === 'bottom',\n 'webchat__send-box__button--align-stretch': sendBoxButtonAlignment !== 'bottom' && sendBoxButtonAlignment !== 'top',\n 'webchat__send-box__button--align-top': sendBoxButtonAlignment === 'top'\n });\n\n return (\n <div\n aria-describedby={errorMessageId}\n aria-errormessage={errorMessageId}\n aria-invalid={!!errorMessageId}\n className={classNames('webchat__send-box', sendBoxStyleSet + '', rootClassName + '', (className || '') + '')}\n dir={direction}\n role=\"form\"\n >\n <SuggestedActions />\n <div className=\"webchat__send-box__main\">\n <AttachmentBar className=\"webchat__send-box__attachment-bar\" />\n <SendBoxToolbarMiddlewareProxy className={buttonClassName} request={undefined} />\n <div className=\"webchat__send-box__editable\">\n {speechInterimsVisible ? (\n <DictationInterims className=\"webchat__send-box__dictation-interims\" />\n ) : (\n <TextBox className=\"webchat__send-box__text-box\" />\n )}\n </div>\n {supportSpeechRecognition ? (\n <MicrophoneButton className={classNames(buttonClassName, 'webchat__send-box__microphone-button')} />\n ) : (\n <SendButton className={buttonClassName} />\n )}\n </div>\n </div>\n );\n}\n\nexport default memo(BasicSendBox);\nexport { basicSendBoxPropsSchema, useSendBoxSpeechInterimsVisible, type BasicSendBoxProps };\n","import { createContext } from 'react';\n\nimport type { ContextType } from './types';\n\nconst SendBoxContext = createContext<ContextType | undefined>(undefined);\n\nexport default SendBoxContext;\n","import { useContext } from 'react';\n\nimport Context from './Context';\n\nimport type { ContextType } from './types';\n\nexport default function useSendBoxContext(): ContextType {\n const context = useContext(Context);\n\n if (!context) {\n throw new Error('botframework-webchat internal: This hook can only be used under <SendBoxComposer>.');\n }\n\n return context;\n}\n","import useSendBoxContext from './private/useContext';\n\n/**\n * Subscribes to the `IDREF` of the error message occurred when the user submit the send box.\n *\n * This `IDREF` is intended to be use as the value for `aria-errormessage` and `aria-invalid` attribute.\n *\n * For example, if the user is clicking on the send button without a message, we will read an alert saying \"cannot\n * send empty message.\" This `IDREF` will be the HTML element of the hidden alert element.\n *\n * If there are no errors when submitting the send box, the `IDREF` will be `undefined`.\n */\nexport default function useSubmitErrorMessageId(): readonly [string | undefined] {\n return useSendBoxContext().submitErrorMessageIdState;\n}\n","/* eslint react/no-array-index-key: \"off\" */\n\nimport { hooks } from 'botframework-webchat-api';\nimport { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport { Constants } from 'botframework-webchat-core';\nimport classNames from 'classnames';\nimport React, { memo } from 'react';\nimport { object, optional, pipe, readonly, string, type InferInput } from 'valibot';\n\nimport { useStyleToEmotionObject } from '../hooks/internal/styleToEmotionObject';\nimport useStyleSet from '../hooks/useStyleSet';\nimport testIds from '../testIds';\n\nconst {\n DictateState: { DICTATING, STARTING, STOPPING }\n} = Constants;\n\nconst { useDictateInterims, useDictateState, useLocalizer } = hooks;\n\nconst ROOT_STYLE = {\n alignItems: 'center',\n display: 'flex'\n};\n\nconst dictationInterimsPropsSchema = pipe(\n object({\n className: optional(string())\n }),\n readonly()\n);\n\ntype DictationInterimsProps = InferInput<typeof dictationInterimsPropsSchema>;\n\nfunction DictationInterims(props: DictationInterimsProps) {\n const { className } = validateProps(dictationInterimsPropsSchema, props);\n\n const [dictateInterims] = useDictateInterims();\n const [dictateState] = useDictateState();\n const [{ dictationInterims: dictationInterimsStyleSet }] = useStyleSet();\n const localize = useLocalizer();\n const rootClassName = useStyleToEmotionObject()(ROOT_STYLE) + '';\n\n return dictateState === STARTING || dictateState === STOPPING ? (\n <p\n className={classNames(dictationInterimsStyleSet + '', rootClassName, className, 'status')}\n data-testid={testIds.sendBoxSpeechBox}\n >\n {dictateState === STARTING && localize('SPEECH_INPUT_STARTING')}\n </p>\n ) : (\n dictateState === DICTATING &&\n (dictateInterims.length ? (\n <p\n className={classNames(dictationInterimsStyleSet + '', rootClassName, className, 'dictating')}\n data-testid={testIds.sendBoxSpeechBox}\n >\n {dictateInterims.map((interim, index) => (\n <span key={index}>\n {interim}\n \n </span>\n ))}\n </p>\n ) : (\n <p\n className={classNames(dictationInterimsStyleSet + '', rootClassName, className, 'status')}\n data-testid={testIds.sendBoxSpeechBox}\n >\n {localize('SPEECH_INPUT_LISTENING')}\n </p>\n ))\n );\n}\n\n// TODO: [P3] After speech started, when clicking on the transcript, it should\n// stop the dictation and allow the user to type-correct the transcript\n\nexport default memo(DictationInterims);\nexport { dictationInterimsPropsSchema, type DictationInterimsProps };\n","// This is required for aria-controls.\n/* eslint react/forbid-dom-props: \"off\" */\n\nimport { hooks } from 'botframework-webchat-api';\nimport { Constants } from 'botframework-webchat-core';\nimport classNames from 'classnames';\nimport memoize from 'memoize-one';\nimport React, { memo, useCallback, useState } from 'react';\n\nimport { useStyleToEmotionObject } from '../hooks/internal/styleToEmotionObject';\nimport useDictateAbortable from '../hooks/useDictateAbortable';\nimport useStyleSet from '../hooks/useStyleSet';\nimport useWebSpeechPonyfill from '../hooks/useWebSpeechPonyfill';\nimport { useLiveRegion } from '../providers/LiveRegionTwin';\nimport { ComponentIcon } from '../Icon';\nimport IconButton from './IconButton';\nimport testIds from '../testIds';\n\nconst { DictateState } = Constants;\n\nconst {\n useDictateInterims,\n useDictateState,\n useLocalizer,\n useSendBoxValue,\n useShouldSpeakIncomingActivity,\n useStartDictate,\n useStopDictate,\n useUIState\n} = hooks;\n\nconst ROOT_STYLE = {\n display: 'flex',\n\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\n '& > .sr-only': {\n color: 'transparent',\n height: 1,\n left: -10000,\n overflow: 'hidden',\n position: 'absolute',\n top: 0,\n whiteSpace: 'nowrap',\n width: 1\n }\n};\n\nfunction useMicrophoneButtonClick(): () => void {\n const [, setSendBox] = useSendBoxValue();\n const [, setShouldSpeakIncomingActivity] = useShouldSpeakIncomingActivity();\n const [dictateInterims] = useDictateInterims();\n const [dictateState] = useDictateState();\n const [webSpeechPonyfill] = useWebSpeechPonyfill();\n const startDictate = useStartDictate();\n const stopDictate = useStopDictate();\n\n const { speechSynthesis, SpeechSynthesisUtterance } = webSpeechPonyfill || {};\n\n const [primeSpeechSynthesis] = useState(() =>\n memoize((speechSynthesis, SpeechSynthesisUtterance) => {\n if (speechSynthesis && SpeechSynthesisUtterance) {\n const utterance = new SpeechSynthesisUtterance('');\n\n [utterance.voice] = speechSynthesis.getVoices();\n speechSynthesis.speak(utterance);\n }\n })\n );\n\n // TODO: [P2] We should revisit this function later\n // The click() logic seems local to the component, but may not be generalized across all implementations.\n return useCallback(() => {\n if (dictateState === DictateState.WILL_START) {\n setShouldSpeakIncomingActivity(false);\n } else if (dictateState === DictateState.DICTATING) {\n stopDictate();\n setSendBox(dictateInterims.join(' '));\n } else {\n setShouldSpeakIncomingActivity(false);\n startDictate();\n }\n\n primeSpeechSynthesis(speechSynthesis, SpeechSynthesisUtterance);\n }, [\n dictateInterims,\n dictateState,\n primeSpeechSynthesis,\n setSendBox,\n setShouldSpeakIncomingActivity,\n speechSynthesis,\n SpeechSynthesisUtterance,\n startDictate,\n stopDictate\n ]);\n}\n\nfunction useMicrophoneButtonDisabled(): [boolean] {\n const [abortable] = useDictateAbortable();\n const [dictateState] = useDictateState();\n const [uiState] = useUIState();\n\n return [\n uiState === 'disabled' ||\n dictateState === DictateState.STARTING ||\n dictateState === DictateState.STOPPING ||\n (dictateState === DictateState.DICTATING && !abortable)\n ];\n}\n\ntype MicrophoneButtonProps = Readonly<{\n className?: string | undefined;\n}>;\n\nconst MicrophoneButton = ({ className }: MicrophoneButtonProps) => {\n const [{ microphoneButton: microphoneButtonStyleSet }] = useStyleSet();\n const [dictateState] = useDictateState();\n const [disabled] = useMicrophoneButtonDisabled();\n const click = useMicrophoneButtonClick();\n const localize = useLocalizer();\n const rootClassName = useStyleToEmotionObject()(ROOT_STYLE) + '';\n\n const dictating = dictateState === DictateState.DICTATING;\n\n const message = localize(\n dictating ? 'SPEECH_INPUT_MICROPHONE_BUTTON_OPEN_ALT' : 'SPEECH_INPUT_MICROPHONE_BUTTON_CLOSE_ALT'\n );\n\n useLiveRegion(() => message && <div className=\"webchat__microphone-button__status\">{message}</div>, [message]);\n\n return (\n <div\n aria-controls=\"webchatSendBoxMicrophoneButton\"\n className={classNames(\n 'webchat__microphone-button',\n { 'webchat__microphone-button--dictating': dictating },\n microphoneButtonStyleSet + '',\n rootClassName,\n (className || '') + ''\n )}\n >\n <IconButton\n alt={localize('TEXT_INPUT_SPEAK_BUTTON_ALT')}\n className=\"webchat__microphone-button__button\"\n data-testid={testIds.sendBoxMicrophoneButton}\n disabled={disabled}\n onClick={click}\n >\n <ComponentIcon\n appearance=\"text\"\n className=\"webchat__microphone-icon webchat__microphone-button__icon\"\n icon=\"microphone\"\n />\n </IconButton>\n <div className=\"sr-only\" id=\"webchatSendBoxMicrophoneButton\">\n {message}\n </div>\n </div>\n );\n};\n\nMicrophoneButton.displayName = 'MicrophoneButton';\n\nexport default memo(MicrophoneButton);\n\nexport { useMicrophoneButtonClick, useMicrophoneButtonDisabled };\n","// This function is adopted from https://stackoverflow.com/questions/8531940/how-to-detect-if-browser-support-specified-css-pseudo-class\nexport default function supportPseudoClass(pseudoClass: string, nonce?: string): boolean {\n const styleElement = document.createElement('style');\n\n nonce && styleElement.setAttribute('nonce', nonce);\n document.head.appendChild(styleElement);\n\n try {\n styleElement.sheet.insertRule('html' + pseudoClass + '{}', 0);\n\n return true;\n } catch {\n return false;\n } finally {\n document.head.removeChild(styleElement);\n }\n}\n","import useWebChatUIContext from './useWebChatUIContext';\n\nexport default function useNonce(): readonly [string | undefined] {\n const { nonce } = useWebChatUIContext();\n\n return Object.freeze([nonce]);\n}\n","// TODO: [P0] #4133 Don't copy.\nimport { RefObject, useMemo, useRef } from 'react';\n\nexport default function useValueRef<T>(value: T): RefObject<T> {\n const ref = useRef<T>();\n const readOnlyRef = useMemo(\n () =>\n Object.create(\n {},\n {\n current: {\n get: () => ref.current\n }\n }\n ),\n []\n );\n\n ref.current = value;\n\n return readOnlyRef;\n}\n","import { hooks } from 'botframework-webchat-api';\nimport { MutableRefObject, RefObject, useCallback, useEffect, useMemo, useRef } from 'react';\n\nimport supportPseudoClass from '../../Utils/supportPseudoClass';\nimport useNonce from './useNonce';\nimport useValueRef from './useValueRef';\n\nconst { usePonyfill } = hooks;\n\nconst INPUT_TYPES_ALLOW_LIST = [\n 'date',\n 'datetime-local',\n 'datetime',\n 'email',\n 'month',\n 'number',\n 'password',\n 'search',\n 'tel',\n 'text',\n 'time',\n 'url',\n 'week'\n];\n\n/**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} el\n * @return {boolean}\n */\nfunction focusTriggersKeyboardModality(el: HTMLInputElement | HTMLTextAreaElement): boolean {\n const { isContentEditable, readOnly, tagName, type } = el;\n\n return (\n (tagName === 'INPUT' && INPUT_TYPES_ALLOW_LIST.includes(type) && !readOnly) ||\n (tagName === 'TEXTAREA' && !readOnly) ||\n isContentEditable\n );\n}\n\nfunction createEventSubscription(\n target: Element | Node,\n types: string[],\n handler: (event: Event) => void\n): {\n pause: () => void;\n resume: () => void;\n} {\n let subscribed: true;\n\n const subscribe = () => {\n if (!subscribed) {\n types.forEach(type => target.addEventListener(type, handler));\n subscribed = true;\n }\n };\n\n const unsubscribe = () => {\n if (subscribed) {\n types.forEach(type => target.removeEventListener(type, handler));\n subscribed = undefined;\n }\n };\n\n return {\n pause: unsubscribe,\n resume: subscribe\n };\n}\n\n// TODO: Add tests\n// 1. Focus via keyboard vs. mouse\n// 2. Focus via keyboard, switch app, switch back (expect to get another focusVisible after switch back)\n// 3. Focus via mouse, switch app, switch back (do NOT expect to get another focusVisible after switch back)\nfunction useObserveFocusVisibleForLegacyBrowsers(\n targetRef: RefObject<HTMLElement>,\n onFocusVisibleRef: MutableRefObject<() => void>\n) {\n const [{ Date }] = usePonyfill();\n // This polyfill algorithm is adopted from https://github.com/WICG/focus-visible.\n const blurSinceRef = useRef(0);\n const hadKeyboardEventRef = useRef(true);\n const hasFocusVisibleRef = useRef(false);\n\n const eventSubscription = useMemo(\n () =>\n createEventSubscription(\n document,\n [\n 'mousemove',\n 'mousedown',\n 'mouseup',\n 'pointermove',\n 'pointerdown',\n 'pointerup',\n 'touchmove',\n 'touchstart',\n 'touchend'\n ],\n event => {\n if ((event.target as HTMLElement).nodeName?.toLowerCase() !== 'html') {\n hadKeyboardEventRef.current = false;\n eventSubscription.pause();\n }\n }\n ),\n [hadKeyboardEventRef]\n );\n\n const setHasFocusVisible = useCallback(\n nextHasFocusVisible => {\n if (hasFocusVisibleRef.current !== nextHasFocusVisible) {\n hasFocusVisibleRef.current = nextHasFocusVisible;\n nextHasFocusVisible && onFocusVisibleRef?.current();\n }\n },\n [hasFocusVisibleRef, onFocusVisibleRef]\n );\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent) => {\n if (event.altKey || event.ctrlKey || event.metaKey) {\n return;\n }\n\n if (event.target === targetRef.current) {\n setHasFocusVisible(true);\n }\n\n hadKeyboardEventRef.current = true;\n },\n [hadKeyboardEventRef, setHasFocusVisible, targetRef]\n );\n\n const handlePointerDown = useCallback(() => {\n hadKeyboardEventRef.current = false;\n }, [hadKeyboardEventRef]);\n\n const handleFocus = useCallback(\n ({ target }: Event) => {\n target === targetRef.current &&\n (hadKeyboardEventRef.current || focusTriggersKeyboardModality(target as HTMLInputElement)) &&\n setHasFocusVisible(true);\n },\n [hadKeyboardEventRef, setHasFocusVisible, targetRef]\n );\n\n const handleBlur = useCallback(\n (event: Event) => {\n if (event.target === targetRef.current && hasFocusVisibleRef.current) {\n blurSinceRef.current = Date.now();\n\n setHasFocusVisible(false);\n }\n },\n [blurSinceRef, Date, hasFocusVisibleRef, setHasFocusVisible, targetRef]\n );\n\n const handleVisibilityChange = useCallback(() => {\n if (document.visibilityState === 'hidden') {\n // The element is blurred due to \"visibilityState\" set to \"hidden\".\n // 100ms is referenced from the WICG polyfill.\n // eslint-disable-next-line no-magic-numbers\n if (Date.now() - blurSinceRef.current < 100) {\n hadKeyboardEventRef.current = true;\n }\n\n eventSubscription.resume();\n }\n }, [blurSinceRef, Date, eventSubscription, hadKeyboardEventRef]);\n\n useEffect(() => {\n document.addEventListener('keydown', handleKeyDown, true);\n document.addEventListener('mousedown', handlePointerDown, true);\n document.addEventListener('pointerdown', handlePointerDown, true);\n document.addEventListener('touchstart', handlePointerDown, true);\n document.addEventListener('visibilitychange', handleVisibilityChange, true);\n\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n document.removeEventListener('mousedown', handlePointerDown);\n document.removeEventListener('pointerdown', handlePointerDown);\n document.removeEventListener('touchstart', handlePointerDown);\n document.removeEventListener('visibilitychange', handleVisibilityChange);\n };\n }, [handleKeyDown, handlePointerDown, handleVisibilityChange]);\n\n useEffect(() => {\n const { current: target } = targetRef;\n\n target.addEventListener('blur', handleBlur, true);\n target.addEventListener('focus', handleFocus, true);\n\n return () => {\n target.removeEventListener('blur', handleBlur);\n target.removeEventListener('focus', handleFocus);\n };\n\n // We specifically add \"targetRef.current\" here.\n // If the target element changed, we should reattach our event listeners.\n }, [handleBlur, handleFocus, targetRef]);\n\n useEffect(() => {\n eventSubscription.resume();\n\n return () => eventSubscription.pause();\n }, [eventSubscription]);\n}\n\nfunction useObserveFocusVisibleForModernBrowsers(\n targetRef: RefObject<HTMLElement>,\n onFocusVisibleRef: MutableRefObject<() => void>\n) {\n const handleFocus = useCallback(() => {\n const { current } = targetRef;\n\n if (\n // \"msMatchesSelector\" is vendor-prefixed version of \"matches\".\n (current.matches || (current['msMatchesSelector'] as (selector: string) => boolean)).call(\n current,\n ':focus-visible'\n )\n ) {\n onFocusVisibleRef?.current();\n }\n }, [onFocusVisibleRef, targetRef]);\n\n useEffect(() => {\n const { current: target } = targetRef;\n\n target.addEventListener('focus', handleFocus);\n\n return () => target.removeEventListener('focus', handleFocus);\n\n // We specifically add \"targetRef.current\" here.\n // If the target element changed, we should reattach our event listeners.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [handleFocus, targetRef, targetRef.current]);\n}\n\nexport default function useObserveFocusVisible(targetRef: RefObject<HTMLElement>, onFocusVisible: () => void) {\n const [nonce] = useNonce();\n const onFocusVisibleRef = useValueRef(onFocusVisible);\n\n // The nonce is use for browser capabilities. Just in case the \"nonce\" had changed unexpectedly, the capabilities of the browser should never change.\n // Thus, we are using an initial version of \"nonce\". In case web devs changed the \"nonce\" to an invalid value, we won't break rules of hooks (as stated below).\n const nonceRef = useRef(nonce);\n\n // \":focus-visible\" selector is supported from Chrome/Edge 86+ and not supported in IE11 or Safari.\n // Doing a capability check on pseudo classes requires injecting a stylesheet, thus nonce is needed.\n const supportFocusVisible = useMemo(() => supportPseudoClass(':focus-visible', nonceRef.current), [nonceRef]);\n\n // Since \"supportPseudoClass\" is a browser capability, the result should be constant during the page lifetime.\n // Thus, running hooks conditionally is okay here.\n if (supportFocusVisible) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useObserveFocusVisibleForModernBrowsers(targetRef, onFocusVisibleRef);\n } else {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useObserveFocusVisibleForLegacyBrowsers(targetRef, onFocusVisibleRef);\n }\n}\n","import { RefObject, useCallback, useEffect, useState } from 'react';\n\nimport useObserveFocusVisible from './useObserveFocusVisible';\n\nexport default function useFocusVisible(targetRef: RefObject<HTMLElement>): [boolean] {\n const [focusVisible, setFocusVisible] = useState(false);\n\n const handleBlur = useCallback(() => setFocusVisible(false), [setFocusVisible]);\n const handleFocusVisible = useCallback(() => setFocusVisible(true), [setFocusVisible]);\n\n useObserveFocusVisible(targetRef, handleFocusVisible);\n\n useEffect(() => {\n const { current } = targetRef;\n\n current.addEventListener('blur', handleBlur);\n\n return () => current.removeEventListener('blur', handleBlur);\n }, [handleBlur, targetRef]);\n\n return [focusVisible];\n}\n","/* eslint no-magic-numbers: [\"error\", { \"ignore\": [-1] }] */\n\nimport { reactNode } from '@msinternal/botframework-webchat-react-valibot';\nimport React, { forwardRef, memo, type MouseEventHandler } from 'react';\nimport {\n boolean,\n custom,\n function_,\n is,\n literal,\n number,\n object,\n optional,\n pipe,\n readonly,\n string,\n type InferInput\n} from 'valibot';\n\nconst PREVENT_DEFAULT_HANDLER = event => event.preventDefault();\n\nconst accessibleButtonPropsSchema = pipe(\n object({\n 'aria-hidden': optional(boolean()),\n 'aria-keyshortcuts': optional(string()),\n children: optional(reactNode()),\n className: optional(string()),\n 'data-testid': optional(string()),\n disabled: optional(boolean()),\n onClick: custom<MouseEventHandler<HTMLButtonElement>>(value => is(function_(), value)),\n tabIndex: optional(number()),\n title: optional(string()),\n type: literal('button')\n }),\n readonly()\n);\n\ntype AccessibleButtonProps = InferInput<typeof accessibleButtonPropsSchema>;\n\n// Differences between <button> and <AccessibleButton>:\n// - Disable behavior\n// - When the widget is disabled\n// - Set \"aria-disabled\" attribute to \"true\"\n// - Set \"readonly\" attribute\n// - Set \"tabIndex\" to -1\n// - Remove \"onClick\" handler\n// - Why this is needed\n// - Browser compatibility: when the widget is disabled, different browser send focus to different places\n// - When the widget become disabled, it's reasonable to keep the focus on the same widget for an extended period of time\n// - When the user presses TAB after the current widget is disabled, it should jump to the next non-disabled widget\n\n// Developers using this accessible widget will need to:\n// - Style the disabled widget themselves, using CSS query `:disabled, [aria-disabled=\"true\"] {}`\n// - Modify all code that check disabled through \"disabled\" attribute to use aria-disabled=\"true\" instead\n// - aria-disabled=\"true\" is the source of truth\n// - If the widget is contained by a <form>, the developer need to filter out some `onSubmit` event caused by this widget\n\nconst AccessibleButton = forwardRef<HTMLButtonElement, AccessibleButtonProps>(\n (\n {\n 'aria-hidden': ariaHidden,\n 'aria-keyshortcuts': ariaKeyShortcuts,\n children,\n className,\n 'data-testid': dataTestId,\n disabled,\n onClick,\n tabIndex,\n title\n },\n ref\n ) => (\n <button\n aria-disabled={disabled || undefined}\n aria-hidden={ariaHidden}\n aria-keyshortcuts={ariaKeyShortcuts}\n className={className}\n data-testid={dataTestId}\n onClick={disabled ? PREVENT_DEFAULT_HANDLER : onClick}\n ref={ref}\n tabIndex={disabled ? -1 : tabIndex}\n title={title}\n type=\"button\"\n >\n {children}\n </button>\n )\n);\n\nAccessibleButton.displayName = 'AccessibleButton';\n\nexport default memo(AccessibleButton);\nexport { accessibleButtonPropsSchema, type AccessibleButtonProps };\n","import { hooks } from 'botframework-webchat-api';\nimport { reactNode, validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport classNames from 'classnames';\nimport React, { memo, useRef, type MouseEventHandler } from 'react';\nimport { boolean, custom, function_, is, object, optional, pipe, readonly, string, type InferInput } from 'valibot';\n\nimport useFocusVisible from '../hooks/internal/useFocusVisible';\nimport useStyleSet from '../hooks/useStyleSet';\nimport AccessibleButton from '../Utils/AccessibleButton';\n\nconst { useStyleOptions } = hooks;\n\nconst iconButtonPropsSchema = pipe(\n object({\n alt: optional(string()),\n children: optional(reactNode()),\n className: optional(string()),\n 'data-testid': optional(string()),\n disabled: optional(boolean()),\n onClick: optional(custom<MouseEventHandler<HTMLButtonElement>>(value => is(function_(), value)))\n }),\n readonly()\n);\n\ntype IconButtonProps = InferInput<typeof iconButtonPropsSchema>;\n\nfunction IconButton(props: IconButtonProps) {\n const {\n alt,\n children,\n className,\n 'data-testid': dataTestid,\n disabled,\n onClick\n } = validateProps(iconButtonPropsSchema, props);\n\n const [{ sendBoxButton: sendBoxButtonStyleSet }] = useStyleSet();\n const [{ sendBoxButtonAlignment }] = useStyleOptions();\n const buttonRef = useRef<HTMLButtonElement>();\n\n const [focusVisible] = useFocusVisible(buttonRef);\n\n return (\n <AccessibleButton\n className={classNames(\n sendBoxButtonStyleSet + '',\n 'webchat__icon-button',\n {\n 'webchat__icon-button--focus-visible': focusVisible,\n 'webchat__icon-button--stretch': sendBoxButtonAlignment !== 'bottom' && sendBoxButtonAlignment !== 'top'\n },\n className\n )}\n data-testid={dataTestid}\n disabled={disabled}\n onClick={disabled ? undefined : onClick}\n ref={buttonRef}\n title={alt}\n type=\"button\"\n >\n <div className=\"webchat__icon-button__shade\" />\n {children}\n <div className=\"webchat__icon-button__keyboard-focus-indicator\" />\n </AccessibleButton>\n );\n}\n\nexport default memo(IconButton);\nexport { iconButtonPropsSchema, type IconButtonProps };\n","import { hooks } from 'botframework-webchat-api';\nimport { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport classNames from 'classnames';\nimport React, { useCallback } from 'react';\nimport { object, optional, pipe, readonly, string, type InferInput } from 'valibot';\n\nimport { ComponentIcon } from '../Icon';\nimport useSubmit from '../providers/internal/SendBox/useSubmit';\nimport IconButton from './IconButton';\n\nconst { useDirection, useLocalizer, useUIState } = hooks;\n\nconst sendButtonPropsSchema = pipe(\n object({\n className: optional(string())\n }),\n readonly()\n);\n\ntype SendButtonProps = InferInput<typeof sendButtonPropsSchema>;\n\nfunction SendButton(props: SendButtonProps) {\n const [direction] = useDirection();\n const { className } = validateProps(sendButtonPropsSchema, props);\n\n const [uiState] = useUIState();\n const localize = useLocalizer();\n const submit = useSubmit();\n\n const handleClick = useCallback(() => submit({ setFocus: 'sendBoxWithoutKeyboard' }), [submit]);\n\n return (\n <IconButton\n alt={localize('TEXT_INPUT_SEND_BUTTON_ALT')}\n className={classNames('webchat__send-button', className)}\n disabled={uiState === 'disabled'}\n onClick={handleClick}\n >\n <ComponentIcon\n appearance=\"text\"\n className=\"webchat__send-icon\"\n direction={direction === 'rtl' ? 'rtl' : 'follow'}\n icon=\"send\"\n />\n </IconButton>\n );\n}\n\nexport default SendButton;\nexport { sendButtonPropsSchema, type SendButtonProps };\n","import useSendBoxContext from './private/useContext';\n\ntype SubmitOptions = {\n setFocus?: 'main' | 'sendBox' | 'sendBoxWithoutKeyboard';\n};\n\n/**\n * Returns a callback function, when called, will send the value of the text box as a message.\n *\n * If the message cannot be send immediately, for example, the message is empty. An error message will be read\n * and the error message element can be referenced by `useErrorMessageId()` hook.\n *\n * If the message can be send, after the message is queued, regardless whether it send successfully or not, the text box will be cleared.\n */\nexport default function useSubmit(): (submitOptions?: SubmitOptions) => void {\n return useSendBoxContext().submit;\n}\n","/* eslint react/no-array-index-key: \"off\" */\n\nimport { hooks } from 'botframework-webchat-api';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport React, { useCallback, useMemo, useRef } from 'react';\nimport { createBasicStyleSet as createBasicStyleSetForReactFilm, ReactFilm } from 'react-film';\n\nimport computeSuggestedActionText from '../Utils/computeSuggestedActionText';\nimport { useStyleToEmotionObject } from '../hooks/internal/styleToEmotionObject';\nimport useFocusWithin from '../hooks/internal/useFocusWithin';\nimport useNonce from '../hooks/internal/useNonce';\nimport useFocus from '../hooks/useFocus';\nimport useStyleSet from '../hooks/useStyleSet';\nimport RovingTabIndexComposer from '../providers/RovingTabIndex/RovingTabIndexComposer';\nimport SuggestedAction from './SuggestedAction';\n\nconst { useDirection, useLocalizer, useStyleOptions, useSuggestedActionsHooks } = hooks;\n\nconst ROOT_STYLE = {\n '&.webchat__suggested-actions': {\n '&.webchat__suggested-actions--flow-layout .webchat__suggested-actions__flow-box': {\n display: 'flex',\n flexWrap: 'wrap'\n },\n\n '&.webchat__suggested-actions--stack-layout .webchat__suggested-actions__stack': {\n display: 'flex',\n flexDirection: 'column'\n }\n }\n};\n\nconst SuggestedActionCarouselContainer = ({ children, className, label }) => {\n const [\n {\n suggestedActionsCarouselFlipperBoxWidth,\n suggestedActionsCarouselFlipperCursor,\n suggestedActionsCarouselFlipperSize\n }\n ] = useStyleOptions();\n const [{ suggestedActions: suggestedActionsStyleSet }] = useStyleSet();\n const [direction] = useDirection();\n const [nonce] = useNonce();\n const localize = useLocalizer();\n const ref = useRef();\n const rootClassName = useStyleToEmotionObject()(ROOT_STYLE) + '';\n\n const filmStyleSet = useMemo(\n () =>\n createBasicStyleSetForReactFilm({\n autoHide: false,\n cursor: suggestedActionsCarouselFlipperCursor,\n flipperBoxWidth: suggestedActionsCarouselFlipperBoxWidth,\n flipperSize: suggestedActionsCarouselFlipperSize\n }),\n [\n suggestedActionsCarouselFlipperBoxWidth,\n suggestedActionsCarouselFlipperCursor,\n suggestedActionsCarouselFlipperSize\n ]\n );\n const nextFlipperAriaLabel = localize('SUGGESTED_ACTIONS_FLIPPER_NEXT_ALT');\n const previousFlipperAriaLabel = localize('SUGGESTED_ACTIONS_FLIPPER_PREVIOUS_ALT');\n\n const [focusedWithin] = useFocusWithin(ref);\n const leftFlipperAriaLabel = direction === 'rtl' ? nextFlipperAriaLabel : previousFlipperAriaLabel;\n const rightFlipperAriaLabel = direction === 'rtl' ? previousFlipperAriaLabel : nextFlipperAriaLabel;\n\n return (\n // TODO: The content of suggested actions should be the labelled by the activity.\n // That means, when the user focus into the suggested actions, it should read similar to \"Bot said, what's your preference of today? Suggested actions has items: apple button, orange button, banana button.\"\n <div\n aria-label={label}\n aria-orientation=\"horizontal\"\n className={classNames(\n 'webchat__suggested-actions',\n 'webchat__suggested-actions--carousel-layout',\n {\n 'webchat__suggested-actions--focus-within': focusedWithin,\n 'webchat__suggested-actions--rtl': direction === 'rtl'\n },\n rootClassName,\n suggestedActionsStyleSet + '',\n (className || '') + ''\n )}\n ref={ref}\n role=\"toolbar\"\n >\n {!!children && !!React.Children.count(children) && (\n <ReactFilm\n autoCenter={false}\n className=\"webchat__suggested-actions__carousel\"\n dir={direction}\n flipperBlurFocusOnClick={true}\n leftFlipperAriaLabel={leftFlipperAriaLabel}\n nonce={nonce}\n rightFlipperAriaLabel={rightFlipperAriaLabel}\n showDots={false}\n showScrollBar={false}\n styleSet={filmStyleSet}\n >\n {children}\n </ReactFilm>\n )}\n <div className=\"webchat__suggested-actions__focus-indicator\" />\n </div>\n );\n};\n\nSuggestedActionCarouselContainer.defaultProps = {\n children: undefined,\n className: undefined\n};\n\nSuggestedActionCarouselContainer.propTypes = {\n children: PropTypes.any,\n className: PropTypes.string,\n label: PropTypes.string.isRequired\n};\n\nconst SuggestedActionFlowContainer = ({ children, className, label }) => {\n const [{ suggestedActions: suggestedActionsStyleSet }] = useStyleSet();\n const rootClassName = useStyleToEmotionObject()(ROOT_STYLE) + '';\n\n return (\n <div\n aria-label={label}\n aria-orientation=\"horizontal\"\n className={classNames(\n 'webchat__suggested-actions',\n 'webchat__suggested-actions--flow-layout',\n rootClassName,\n suggestedActionsStyleSet + '',\n (className || '') + ''\n )}\n role=\"toolbar\"\n >\n {!!children && !!React.Children.count(children) && (\n <div className=\"webchat__suggested-actions__flow-box\">\n {React.Children.map(children, child => (\n <div className=\"webchat__suggested-actions__flow-item-box\">{child}</div>\n ))}\n </div>\n )}\n <div className=\"webchat__suggested-actions__focus-indicator\" />\n </div>\n );\n};\n\nSuggestedActionFlowContainer.defaultProps = {\n children: undefined,\n className: undefined\n};\n\nSuggestedActionFlowContainer.propTypes = {\n children: PropTypes.any,\n className: PropTypes.string,\n label: PropTypes.string.isRequired\n};\n\nconst SuggestedActionStackedContainer = ({ children, className, label }) => {\n const [{ suggestedActions: suggestedActionsStyleSet }] = useStyleSet();\n const rootClassName = useStyleToEmotionObject()(ROOT_STYLE) + '';\n\n return (\n <div\n aria-label={label}\n aria-orientation=\"vertical\"\n className={classNames(\n 'webchat__suggested-actions',\n 'webchat__suggested-actions--stacked-layout',\n rootClassName,\n suggestedActionsStyleSet + '',\n (className || '') + ''\n )}\n role=\"toolbar\"\n >\n {!!children && !!React.Children.count(children) && (\n <div className=\"webchat__suggested-actions__stack\">{children}</div>\n )}\n <div className=\"webchat__suggested-actions__focus-indicator\" />\n </div>\n );\n};\n\nSuggestedActionStackedContainer.defaultProps = {\n children: undefined,\n className: undefined\n};\n\nSuggestedActionStackedContainer.propTypes = {\n children: PropTypes.any,\n className: PropTypes.string,\n label: PropTypes.string.isRequired\n};\n\ntype SuggestedActionsProps = Readonly<{\n className?: string;\n}>;\n\nconst SuggestedActions = ({ className }: SuggestedActionsProps) => {\n const [suggestedActions] = useSuggestedActionsHooks().useSuggestedActions();\n const [{ suggestedActionLayout, suggestedActionsStackedLayoutButtonTextWrap }] = useStyleOptions();\n const localize = useLocalizer();\n const focus = useFocus();\n\n const handleEscapeKey = useCallback(() => {\n focus('sendBox');\n }, [focus]);\n\n const label = localize('SUGGESTED_ACTIONS_LABEL_ALT');\n\n const children = suggestedActions.map((cardAction, index) => {\n const { displayText, image, imageAltText, text, type, value } = cardAction as {\n displayText?: string;\n image?: string;\n imageAltText?: string;\n text?: string;\n type:\n | 'call'\n | 'downloadFile'\n | 'imBack'\n | 'messageBack'\n | 'openUrl'\n | 'playAudio'\n | 'playVideo'\n | 'postBack'\n | 'showImage'\n | 'signin';\n value?: { [key: string]: any } | string;\n };\n\n return (\n <div className=\"webchat__suggested-actions__item-box\" key={index}>\n <SuggestedAction\n buttonText={computeSuggestedActionText(cardAction)}\n className=\"webchat__suggested-actions__button\"\n displayText={displayText}\n image={image}\n // Image alt text should use `imageAltText` field and fallback to `text` field.\n // https://github.com/microsoft/botframework-sdk/blob/main/specs/botframework-activity/botframework-activity.md#image-alt-text\n imageAlt={image && (imageAltText || text)}\n itemIndex={index}\n text={text}\n textClassName={\n suggestedActionLayout === 'stacked' && suggestedActionsStackedLayoutButtonTextWrap\n ? 'webchat__suggested-actions__button-text-stacked-text-wrap'\n : 'webchat__suggested-actions__button-text'\n }\n type={type}\n value={value}\n />\n </div>\n );\n });\n\n // If there are no suggested actions, we will render nothing.\n if (!children.length) {\n return null;\n }\n\n if (suggestedActionLayout === 'flow') {\n return (\n <RovingTabIndexComposer onEscapeKey={handleEscapeKey}>\n <SuggestedActionFlowContainer className={className} label={label}>\n {children}\n </SuggestedActionFlowContainer>\n </RovingTabIndexComposer>\n );\n } else if (suggestedActionLayout === 'stacked') {\n return (\n <RovingTabIndexComposer onEscapeKey={handleEscapeKey} orientation=\"vertical\">\n <SuggestedActionStackedContainer className={className} label={label}>\n {children}\n </SuggestedActionStackedContainer>\n </RovingTabIndexComposer>\n );\n }\n\n return (\n <RovingTabIndexComposer onEscapeKey={handleEscapeKey}>\n <SuggestedActionCarouselContainer className={className} label={label}>\n {children}\n </SuggestedActionCarouselContainer>\n </RovingTabIndexComposer>\n );\n};\n\nexport default SuggestedActions;\n","import type { DirectLineCardAction } from 'botframework-webchat-core';\n\n// Please refer to this article to find out how to compute the \"button text\" for suggested action.\n// https://github.com/Microsoft/botframework-sdk/blob/main/specs/botframework-activity/botframework-activity.md#card-action\nexport default function computeSuggestedActionText(cardAction: DirectLineCardAction) {\n // \"CardAction\" must contains at least image or title.\n const { title } = cardAction as { title?: string };\n const { type, value } = cardAction;\n\n if (type === 'messageBack') {\n return title || cardAction.displayText;\n } else if (title) {\n return title;\n } else if (typeof value === 'string') {\n return value;\n }\n\n return JSON.stringify(value);\n}\n","import { useCallback, useEffect, useState } from 'react';\n\nimport type { RefObject } from 'react';\n\nexport default function useFocusWithin(targetRef: RefObject<HTMLElement>): readonly [boolean] {\n const [focusWithin, setFocusWithin] = useState(false);\n\n const handleBlur = useCallback(() => setFocusWithin(false), [setFocusWithin]);\n const handleFocus = useCallback(\n ({ target }: FocusEvent) => {\n const targetElement = target as HTMLElement;\n\n setFocusWithin(targetRef.current === targetElement || !!targetRef.current?.contains(targetElement));\n },\n [setFocusWithin, targetRef]\n );\n\n useEffect(() => {\n document.addEventListener('blur', handleBlur);\n document.addEventListener('focus', handleFocus);\n\n return () => {\n document.removeEventListener('blur', handleBlur);\n document.removeEventListener('focus', handleFocus);\n };\n }, [handleBlur, handleFocus]);\n\n return Object.freeze([focusWithin]) as readonly [boolean];\n}\n","/* eslint complexity: [\"error\", 50] */\n\nimport { reactNode, validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport React, { memo, useCallback, useEffect, useMemo, useRef, type MutableRefObject } from 'react';\nimport { custom, function_, is, literal, object, optional, pipe, readonly, union, type InferInput } from 'valibot';\n\nimport RovingTabIndexContext, { type RovingTabIndexContextType } from './private/Context';\n\ntype ItemRef = MutableRefObject<HTMLElement | undefined>;\n\nconst rovingTabIndexContextProps = pipe(\n object({\n children: optional(reactNode()),\n onEscapeKey: optional(custom<() => void>(value => is(function_(), value))),\n orientation: optional(union([literal('horizontal'), literal('vertical')]), 'horizontal')\n }),\n readonly()\n);\n\ntype RovingTabIndexContextProps = InferInput<typeof rovingTabIndexContextProps>;\n\nfunction RovingTabIndexComposer(props: RovingTabIndexContextProps) {\n const { children, onEscapeKey, orientation } = validateProps(rovingTabIndexContextProps, props);\n\n const activeItemIndexRef = useRef(0);\n const itemRefsRef = useRef<ItemRef[]>([]);\n\n const refreshTabIndices = useCallback(() => {\n const { current: activeItemIndex } = activeItemIndexRef;\n\n itemRefsRef.current.forEach(({ current }, index) => {\n current?.setAttribute('tabindex', activeItemIndex === index ? '0' : '-1');\n });\n }, [activeItemIndexRef]);\n\n const setActiveItemIndex = useCallback(\n (valueOrFunction: number | ((value: number) => number)) => {\n // All calls to this function is expected to be under event handlers (post-rendering).\n let nextActiveItemIndex;\n\n if (typeof valueOrFunction === 'number') {\n nextActiveItemIndex = valueOrFunction;\n } else {\n nextActiveItemIndex = valueOrFunction(activeItemIndexRef.current);\n }\n\n // If the index points to no item, fallback to the first item.\n // This make sure at least one of the item in the container is selected.\n if (nextActiveItemIndex && !itemRefsRef.current[+nextActiveItemIndex]?.current) {\n nextActiveItemIndex = 0;\n }\n\n if (activeItemIndexRef.current !== nextActiveItemIndex) {\n activeItemIndexRef.current = nextActiveItemIndex;\n\n refreshTabIndices();\n itemRefsRef.current[+nextActiveItemIndex]?.current?.focus();\n }\n },\n [activeItemIndexRef, itemRefsRef, refreshTabIndices]\n );\n\n const handleFocus = useCallback(\n event => {\n const { target } = event;\n\n const index = itemRefsRef.current.findIndex(({ current }) => current === target);\n\n ~index && setActiveItemIndex(index);\n },\n [itemRefsRef, setActiveItemIndex]\n );\n\n const handleKeyDown = useCallback<(event: KeyboardEvent) => void>(\n event => {\n const { key } = event;\n const vertical = orientation === 'vertical';\n\n switch (key) {\n case 'ArrowDown':\n case 'ArrowRight':\n case 'Down': // IE11\n case 'Right': // IE11\n if ((vertical && key === 'ArrowRight') || (!vertical && key === 'ArrowDown')) {\n return;\n }\n\n setActiveItemIndex(value => {\n // The `itemRefsRef` array could be a sparse array.\n // Thus, the next item may not be immediately next to the current one.\n const itemIndices = itemRefsRef.current.map((_, index) => index);\n const nextIndex = itemIndices.indexOf(value) + 1;\n\n if (nextIndex >= itemIndices.length) {\n return itemIndices[0];\n }\n\n return itemIndices[+nextIndex];\n });\n\n break;\n\n case 'ArrowLeft':\n case 'ArrowUp':\n case 'Left': // IE11\n case 'Up': // IE11\n if ((vertical && key === 'ArrowLeft') || (!vertical && key === 'ArrowUp')) {\n return;\n }\n\n setActiveItemIndex(value => {\n // The `itemRefsRef` array could be a sparse array.\n // Thus, the next item may not be immediately next to the current one.\n const itemIndices = itemRefsRef.current.map((_, index) => index);\n const nextIndex = itemIndices.indexOf(value) - 1;\n\n if (nextIndex < 0) {\n return itemIndices[itemIndices.length - 1];\n }\n\n return itemIndices[+nextIndex];\n });\n\n break;\n\n case 'Home':\n setActiveItemIndex(0);\n break;\n\n case 'End':\n setActiveItemIndex(Infinity);\n break;\n\n case 'Escape':\n if (!onEscapeKey) {\n // If the \"onEscapeKey\" prop is not passed, don't call preventDefault() and stopPropagation().\n return;\n }\n\n onEscapeKey();\n break;\n\n default:\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n },\n [setActiveItemIndex, onEscapeKey, orientation]\n );\n\n const itemEffector = useCallback(\n (ref, index) => {\n const { current } = ref;\n\n itemRefsRef.current[+index] = ref;\n\n current.addEventListener('focus', handleFocus);\n current.addEventListener('keydown', handleKeyDown);\n\n current.setAttribute('tabindex', activeItemIndexRef.current === index ? '0' : '-1');\n\n return () => {\n current.removeEventListener('focus', handleFocus);\n current.removeEventListener('keydown', handleKeyDown);\n\n delete itemRefsRef.current[+index];\n };\n },\n [activeItemIndexRef, handleFocus, handleKeyDown]\n );\n\n const contextValue = useMemo<RovingTabIndexContextType>(\n () => ({\n itemEffector\n }),\n [itemEffector]\n );\n\n // This hook run on every render to rectify `activeItemIndexRef`.\n // So it will always point to an existing item or first item if available.\n useEffect(() => {\n setActiveItemIndex(value => value);\n });\n\n return <RovingTabIndexContext.Provider value={contextValue}>{children}</RovingTabIndexContext.Provider>;\n}\n\nexport default memo(RovingTabIndexComposer);\nexport { rovingTabIndexContextProps, type RovingTabIndexContext };\n","import { createContext } from 'react';\n\nimport type { MutableRefObject } from 'react';\n\ntype RovingTabIndexContextType = {\n itemEffector: <T extends HTMLElement>(ref: MutableRefObject<T>, index: number) => () => void;\n};\n\nconst RovingTabIndexContext = createContext<RovingTabIndexContextType>({\n itemEffector: () => {\n // This will be implemented when using in <RovingTabIndexComposer>.\n // We have a check over there to make sure we did implement it.\n throw new Error('botframework-webchat internal: Not implemented.');\n }\n});\n\nexport default RovingTabIndexContext;\n\nexport type { RovingTabIndexContextType };\n","import { hooks } from 'botframework-webchat-api';\nimport { type DirectLineCardAction } from 'botframework-webchat-core';\nimport { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport classNames from 'classnames';\nimport React, { memo, useCallback, type MouseEventHandler } from 'react';\nimport { any, literal, number, object, optional, pipe, readonly, string, union, type InferInput } from 'valibot';\n\nimport { useStyleToEmotionObject } from '../hooks/internal/styleToEmotionObject';\nimport useFocusVisible from '../hooks/internal/useFocusVisible';\nimport useLocalizeAccessKey from '../hooks/internal/useLocalizeAccessKey';\nimport useSuggestedActionsAccessKey from '../hooks/internal/useSuggestedActionsAccessKey';\nimport useFocus from '../hooks/useFocus';\nimport useScrollToEnd from '../hooks/useScrollToEnd';\nimport useStyleSet from '../hooks/useStyleSet';\nimport useItemRef from '../providers/RovingTabIndex/useItemRef';\nimport testIds from '../testIds';\nimport AccessibleButton from '../Utils/AccessibleButton';\nimport useFocusAccessKeyEffect from '../Utils/AccessKeySink/useFocusAccessKeyEffect';\n\nconst { useDirection, usePerformCardAction, useStyleOptions, useSuggestedActionsHooks, useUIState } = hooks;\n\nconst ROOT_STYLE = {\n '&.webchat__suggested-action': {\n display: 'flex',\n overflow: 'hidden' // Prevent image from leaking; object-fit does not work with IE11\n }\n};\n\nconst suggestedActionPropsSchema = pipe(\n object({\n buttonText: string(),\n className: optional(string()),\n displayText: optional(string()),\n image: optional(string()),\n imageAlt: optional(string()),\n itemIndex: number(),\n text: optional(string()),\n textClassName: optional(string()),\n type: optional(\n union([\n literal('call'),\n literal('downloadFile'),\n literal('imBack'),\n literal('messageBack'),\n literal('openUrl'),\n literal('playAudio'),\n literal('playVideo'),\n literal('postBack'),\n literal('showImage'),\n literal('signin')\n ])\n ),\n value: any()\n }),\n readonly()\n);\n\ntype SuggestedActionProps = InferInput<typeof suggestedActionPropsSchema>;\n\nfunction SuggestedAction(props: SuggestedActionProps) {\n const {\n buttonText,\n className,\n displayText = '',\n image = '',\n imageAlt,\n itemIndex,\n text = '',\n textClassName,\n type,\n value\n } = validateProps(suggestedActionPropsSchema, props);\n\n const [_, setSuggestedActions] = useSuggestedActionsHooks().useSuggestedActions();\n const [{ suggestedActionsStackedLayoutButtonTextWrap }] = useStyleOptions();\n const [{ suggestedAction: suggestedActionStyleSet }] = useStyleSet();\n const [accessKey] = useSuggestedActionsAccessKey();\n const [direction] = useDirection();\n const [uiState] = useUIState();\n const focus = useFocus();\n const focusRef = useItemRef<HTMLButtonElement>(itemIndex);\n const localizeAccessKeyAsAriaKeyShortcuts = useLocalizeAccessKey('aria-keyshortcuts');\n const performCardAction = usePerformCardAction();\n const rootClassName = useStyleToEmotionObject()(ROOT_STYLE) + '';\n const scrollToEnd = useScrollToEnd();\n\n const [focusVisible] = useFocusVisible(focusRef);\n\n const handleClick = useCallback<MouseEventHandler<HTMLButtonElement>>(\n ({ target }) => {\n (async function () {\n // We need to focus to the send box before we are performing this card action.\n // The will make sure the focus is always on Web Chat.\n // Otherwise, the focus may momentarily send to `document.body` and screen reader will be confused.\n await focus('sendBoxWithoutKeyboard');\n\n // TODO: [P3] #XXX We should not destruct DirectLineCardAction into React props and pass them in. It makes typings difficult.\n // Instead, we should pass a \"cardAction\" props.\n performCardAction({ displayText, text, type, value } as DirectLineCardAction, { target });\n\n // Since \"openUrl\" action do not submit, the suggested action buttons do not hide after click.\n type === 'openUrl' && setSuggestedActions([]);\n\n scrollToEnd();\n })();\n },\n [displayText, focus, performCardAction, scrollToEnd, setSuggestedActions, text, type, value]\n );\n\n useFocusAccessKeyEffect(accessKey, focusRef);\n\n return (\n <AccessibleButton\n {...(accessKey ? { 'aria-keyshortcuts': localizeAccessKeyAsAriaKeyShortcuts(accessKey) } : {})}\n className={classNames(\n 'webchat__suggested-action',\n {\n 'webchat__suggested-action--focus-visible': focusVisible,\n 'webchat__suggested-action--rtl': direction === 'rtl',\n 'webchat__suggested-action--wrapping': suggestedActionsStackedLayoutButtonTextWrap\n },\n rootClassName,\n suggestedActionStyleSet + '',\n className\n )}\n data-testid={testIds.suggestedActionButton}\n disabled={uiState === 'disabled'}\n onClick={handleClick}\n ref={focusRef}\n type=\"button\"\n >\n {image && (\n <img\n alt={imageAlt}\n className={classNames(\n 'webchat__suggested-action__image',\n direction === 'rtl' && 'webchat__suggested-action__image--rtl'\n )}\n src={image}\n />\n )}\n <span className={classNames('webchat__suggested-action__text', textClassName)}>{buttonText}</span>\n <div className=\"webchat__suggested-action__keyboard-focus-indicator\" />\n </AccessibleButton>\n );\n}\n\nexport default memo(SuggestedAction);\nexport { suggestedActionPropsSchema, type SuggestedActionProps };\n","import { useMemo } from 'react';\n\nconst ANDROID_PATTERN = /^(android|linux armv7l)/giu;\nconst APPLE_PATTERN = /^(mac|ipad|iphone|ipod)/giu;\nconst LINUX_PATTERN = /^linux/giu;\nconst WINDOWS_PATTERN = /^win/giu;\n\nexport default function useNavigatorPlatform() {\n const {\n navigator: { platform }\n } = window;\n\n return useMemo(() => {\n // This list is very limited. Please use with care. Please refer to this link for details.\n // https://stackoverflow.com/questions/19877924/what-is-the-list-of-possible-values-for-navigator-platform-as-of-today\n\n const android = ANDROID_PATTERN.test(platform);\n const apple = APPLE_PATTERN.test(platform);\n const windows = WINDOWS_PATTERN.test(platform);\n\n const linux = !android && LINUX_PATTERN.test(platform);\n\n return [\n {\n android,\n apple,\n linux,\n windows\n }\n ];\n }, [platform]);\n}\n","import { hooks } from 'botframework-webchat-api';\nimport { useCallback } from 'react';\n\nimport useNavigatorPlatform from './useNavigatorPlatform';\n\nconst { useLocalizer } = hooks;\n\nexport default function useLocalizeAccessKey(type: 'accessible name' | 'aria-keyshortcuts') {\n const [{ apple }] = useNavigatorPlatform();\n const localize = useLocalizer();\n\n return useCallback(\n accessKey => {\n if (!accessKey || typeof accessKey !== 'string' || !accessKey.length) {\n throw new Error('useLocalizeAccessKey: \"accessKey\" must be a non-empty string');\n }\n\n if (type === 'accessible name') {\n // This will localize as \"Alt + Shift + A\".\n return localize(apple ? 'ACCESS_KEY_FOR_MAC_ALT' : 'ACCESS_KEY_ALT', accessKey[0]);\n }\n\n // \"aria-keyshortcuts\" do not need to be localized, it should be \"alt+shift+a\".\n // On Mac, \"AltGraph\" is preferred over \"Option\" key.\n // https://w3c.github.io/aria/#aria-keyshortcuts\n return (apple ? 'Control+AltGraph+' : 'Alt+Shift+') + accessKey[0];\n },\n [apple, localize, type]\n );\n}\n","import useWebChatUIContext from './useWebChatUIContext';\n\nexport default function useSuggestedActionsAccessKey() {\n const { suggestedActionsAccessKey } = useWebChatUIContext();\n\n return [suggestedActionsAccessKey];\n}\n","import { useEffect, useRef } from 'react';\nimport useContext from './private/useContext';\n\nimport type { MutableRefObject } from 'react';\n\nexport default function useItemRef<T extends HTMLElement>(itemIndex: number): MutableRefObject<T | undefined> {\n const ref = useRef<T>();\n\n const { itemEffector } = useContext();\n\n useEffect(() => itemEffector(ref, itemIndex));\n\n return ref;\n}\n","import { useContext } from 'react';\n\nimport RovingTabIndexContext from './Context';\n\nexport default function useRovingTabIndexContext(throwOnUndefined = true) {\n const contextValue = useContext(RovingTabIndexContext);\n\n if (throwOnUndefined && !contextValue) {\n throw new Error('botframework-webchat internal: This hook can only be used under <RovingTabIndexComposer>.');\n }\n\n return contextValue;\n}\n","import { useEffect } from 'react';\n\nimport useAccessKeySinkContext from './internal/useContext';\n\nfunction removeInline(array, item) {\n const index = array.indexOf(item);\n\n ~index && array.splice(index, 1);\n}\n\nexport default function useFocusAccessKeyEffect(key, ref) {\n if (key && typeof key !== 'string') {\n throw new Error('useFocusAccessKeyEffect: If defined, \"key\" must be of type \"string\".');\n } else if (!ref || !('current' in ref)) {\n throw new Error('useFocusAccessKeyEffect: \"ref\" must be defined and has \"current\" property.');\n }\n\n const context = useAccessKeySinkContext();\n\n useEffect(() => {\n if (key) {\n const entry = { keys: key.split(/\\s+/gu), ref };\n\n context.focii.push(entry);\n\n return () => removeInline(context.focii, entry);\n }\n }, [context, key, ref]);\n}\n","import { createContext } from 'react';\n\nconst AccessKeySinkContext = createContext();\n\nexport default AccessKeySinkContext;\n","import { useContext } from 'react';\n\nimport AccessKeySinkContext from './Context';\n\nexport default function useAccessKeySinkContext() {\n return useContext(AccessKeySinkContext);\n}\n","import { hooks } from 'botframework-webchat-api';\nimport { usePonyfill } from 'botframework-webchat-api/hook.js';\nimport classNames from 'classnames';\nimport React, { useCallback, useMemo, useRef } from 'react';\n\nimport AccessibleInputText from '../Utils/AccessibleInputText';\nimport navigableEvent from '../Utils/TypeFocusSink/navigableEvent';\nimport { useStyleToEmotionObject } from '../hooks/internal/styleToEmotionObject';\nimport { useRegisterFocusSendBox, type SendBoxFocusOptions } from '../hooks/sendBoxFocus';\nimport useScrollDown from '../hooks/useScrollDown';\nimport useScrollUp from '../hooks/useScrollUp';\nimport useStyleSet from '../hooks/useStyleSet';\nimport useSubmit from '../providers/internal/SendBox/useSubmit';\nimport withEmoji from '../withEmoji/withEmoji';\nimport AutoResizeTextArea from './AutoResizeTextArea';\n\nimport type { MutableRefObject } from 'react';\nimport testIds from '../testIds';\n\nconst { useLocalizer, useSendBoxValue, useStopDictate, useStyleOptions, useUIState } = hooks;\n\nconst DEFAULT_INPUT_MODE = 'text';\n\nconst ROOT_STYLE = {\n '&.webchat__send-box-text-box': {\n display: 'flex',\n\n '& .webchat__send-box-text-box__input, & .webchat__send-box-text-box__text-area': {\n flex: 1\n }\n }\n};\n\n/**\n * Submits the text box and optionally set the focus after send.\n */\ntype SubmitTextBoxFunction = {\n /**\n * Submits the text box, without setting the focus after send.\n *\n * @deprecated Instead of passing `false`, you should leave the `setFocus` argument `undefined`.\n */\n (setFocus: false): void;\n\n /**\n * Submits the text box and optionally set the focus after send.\n */\n (setFocus?: 'sendBox' | 'sendBoxWithoutKeyboard'): void;\n};\n\nfunction useTextBoxSubmit(): SubmitTextBoxFunction {\n const submit = useSubmit();\n\n return useCallback<SubmitTextBoxFunction>(\n (setFocus?: false | 'sendBox' | 'sendBoxWithoutKeyboard') => submit({ setFocus: setFocus || undefined }),\n [submit]\n );\n}\n\nfunction useTextBoxValue(): [string, (textBoxValue: string) => void] {\n const [value, setValue] = useSendBoxValue();\n const stopDictate = useStopDictate();\n\n const setter = useCallback<(nextValue: string) => void>(\n nextValue => {\n if (typeof nextValue !== 'string') {\n throw new Error('botframework-webchat: First argument passed to useTextBoxValue() must be a string.');\n }\n\n setValue(nextValue);\n stopDictate();\n },\n [setValue, stopDictate]\n );\n\n return [value, setter];\n}\n\nconst PREVENT_DEFAULT_HANDLER = event => event.preventDefault();\n\nconst SingleLineTextBox = withEmoji(AccessibleInputText);\nconst MultiLineTextBox = withEmoji(AutoResizeTextArea);\n\nconst TextBox = ({ className = '' }: Readonly<{ className?: string | undefined }>) => {\n const [value, setValue] = useSendBoxValue();\n const [{ sendBoxTextBox: sendBoxTextBoxStyleSet }] = useStyleSet();\n const [{ emojiSet, sendBoxTextWrap }] = useStyleOptions();\n const [uiState] = useUIState();\n const inputElementRef: MutableRefObject<HTMLInputElement & HTMLTextAreaElement> = useRef();\n const localize = useLocalizer();\n const rootClassName = useStyleToEmotionObject()(ROOT_STYLE) + '';\n const scrollDown = useScrollDown();\n const scrollUp = useScrollUp();\n const submitTextBox = useTextBoxSubmit();\n\n const disabled = uiState === 'disabled';\n const sendBoxString = localize('TEXT_INPUT_ALT');\n const typeYourMessageString = localize('TEXT_INPUT_PLACEHOLDER');\n\n const handleKeyPress = useCallback(\n event => {\n const { key, shiftKey } = event;\n\n if (key === 'Enter' && !shiftKey) {\n event.preventDefault();\n\n // If text box is submitted, focus on the send box\n submitTextBox('sendBox');\n }\n },\n [submitTextBox]\n );\n\n const handleSubmit = useCallback(\n event => {\n event.preventDefault();\n\n // Consider clearing the send box only after we received POST_ACTIVITY_PENDING\n // E.g. if the connection is bad, sending the message essentially do nothing but just clearing the send box\n submitTextBox();\n },\n [submitTextBox]\n );\n\n const handleKeyDownCapture = useCallback(\n event => {\n const { ctrlKey, metaKey, shiftKey } = event;\n\n if (ctrlKey || metaKey || shiftKey) {\n return;\n }\n\n // Navigable event means the end-user is focusing on an inputtable element, but it is okay to capture the arrow keys.\n if (navigableEvent(event)) {\n let handled = true;\n\n switch (event.key) {\n case 'End':\n scrollDown({ displacement: Infinity });\n break;\n\n case 'Home':\n scrollUp({ displacement: Infinity });\n break;\n\n case 'PageDown':\n scrollDown();\n break;\n\n case 'PageUp':\n scrollUp();\n break;\n\n default:\n handled = false;\n break;\n }\n\n if (handled) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n },\n [scrollDown, scrollUp]\n );\n\n const [{ requestAnimationFrame, requestIdleCallback }] = usePonyfill();\n const requestIdleCallbackWithPonyfill = useMemo(\n () => requestIdleCallback ?? ((callback: () => void) => requestAnimationFrame(callback)),\n [requestAnimationFrame, requestIdleCallback]\n );\n\n const focusCallback = useCallback(\n ({ noKeyboard, waitUntil }: SendBoxFocusOptions) => {\n waitUntil(\n (async () => {\n const { current } = inputElementRef;\n\n if (current) {\n // Setting `inputMode` to `none` temporarily to suppress soft keyboard in iOS.\n // We will revert the change once the end-user tap on the send box.\n // This code path is only triggered when the user press \"send\" button to send the message, instead of pressing ENTER key.\n if (noKeyboard) {\n if (current.getAttribute('inputmode') !== 'none') {\n // Collapse the virtual keybaord if it was expanded.\n current.setAttribute('inputmode', 'none');\n\n // iOS 26.3 quirks: `HTMLElement.focus()` does not pickup `inputmode=\"none\"` changes immediately.\n // We need to wait for next frame before calling `focus()`.\n // This is a regression from iOS 26.2.\n await new Promise<void>(resolve => requestIdleCallbackWithPonyfill(resolve));\n }\n } else if (current.hasAttribute('inputmode')) {\n // Expanding the virtual keyboard if it was collapsed.\n // However, we are not pausing here to workaround iOS 26.3 quirks.\n // If we pause here, it will not able to handle this scenario: focus on an activity on the transcript, press A, the letter A should be inputted into the send box.\n // In other words, if we pause here, the event will be send to the activity/transcript, instead of the newly focused send box.\n // This is related to BasicTranscript.handleTranscriptKeyDownCapture().\n current.removeAttribute('inputmode');\n }\n\n current?.focus();\n }\n })()\n );\n },\n [inputElementRef, requestIdleCallbackWithPonyfill]\n );\n\n useRegisterFocusSendBox(focusCallback);\n\n const handleClick = useCallback(\n ({ currentTarget }) => currentTarget.setAttribute('inputmode', DEFAULT_INPUT_MODE),\n []\n );\n\n const emojiMap = useMemo(() => new Map<string, string>(Object.entries(emojiSet)), [emojiSet]);\n\n return (\n <form\n aria-disabled={disabled}\n className={classNames(\n 'webchat__send-box-text-box',\n rootClassName,\n sendBoxTextBoxStyleSet + '',\n (className || '') + ''\n )}\n onSubmit={disabled ? PREVENT_DEFAULT_HANDLER : handleSubmit}\n >\n {!sendBoxTextWrap ? (\n <SingleLineTextBox\n aria-label={sendBoxString}\n className=\"webchat__send-box-text-box__input\"\n data-id=\"webchat-sendbox-input\"\n data-testid={testIds.sendBoxTextBox}\n disabled={disabled}\n emojiMap={emojiMap}\n enterKeyHint=\"send\"\n inputMode={DEFAULT_INPUT_MODE}\n onChange={setValue}\n onClick={handleClick}\n onKeyDownCapture={disabled ? undefined : handleKeyDownCapture}\n onKeyPress={disabled ? undefined : handleKeyPress}\n placeholder={typeYourMessageString}\n readOnly={disabled}\n ref={inputElementRef}\n type=\"text\"\n value={value}\n />\n ) : (\n <MultiLineTextBox\n aria-label={sendBoxString}\n className=\"webchat__send-box-text-box__text-area\"\n data-id=\"webchat-sendbox-input\"\n data-testid={testIds.sendBoxTextBox}\n disabled={disabled}\n emojiMap={emojiMap}\n enterKeyHint=\"send\"\n inputMode={DEFAULT_INPUT_MODE}\n onChange={setValue}\n onClick={handleClick}\n onKeyDownCapture={disabled ? undefined : handleKeyDownCapture}\n onKeyPress={disabled ? undefined : handleKeyPress}\n placeholder={typeYourMessageString}\n readOnly={disabled}\n ref={inputElementRef}\n rows={1}\n textAreaClassName=\"webchat__send-box-text-box__html-text-area\"\n value={value}\n />\n )}\n {disabled && <div className=\"webchat__send-box-text-box__glass\" />}\n </form>\n );\n};\n\nexport default TextBox;\n\nexport { useTextBoxSubmit, useTextBoxValue };\n","import { useEffect } from 'react';\n\nexport default function useEnterKeyHint(elementRef, enterKeyHint) {\n // The version of React we are using does not support the capitalized version of \"enterKeyHint\" yet.\n // To prevent warnings from React, we need to set it manually using attributes.\n useEffect(() => {\n const { current } = elementRef;\n\n if (current) {\n current.enterKeyHint = enterKeyHint;\n }\n }, [enterKeyHint, elementRef]);\n}\n","/* eslint no-magic-numbers: [\"error\", { \"ignore\": [-1] }] */\n\nimport { validateProps } from '@msinternal/botframework-webchat-react-valibot';\nimport React, {\n type ChangeEventHandler,\n type FocusEventHandler,\n forwardRef,\n type KeyboardEventHandler,\n type MouseEventHandler,\n type ReactEventHandler,\n useRef\n} from 'react';\nimport {\n boolean,\n custom,\n type InferInput,\n literal,\n number,\n object,\n optional,\n picklist,\n pipe,\n readonly,\n string\n} from 'valibot';\n\nimport useEnterKeyHint from '../hooks/internal/useEnterKeyHint';\n\n// Differences between <input type=\"text\"> and <AccessibleInputText>:\n// - Disable behavior\n// - When the widget is disabled\n// - Set \"aria-disabled\" attribute to \"true\"\n// - Set \"readonly\" attribute\n// - Set \"tabIndex\" to -1\n// - Remove \"onChange\" handler\n// - Why this is needed\n// - Browser compatibility: when the widget is disabled, different browser send focus to different places\n// - When the widget is disabled, it's reasonable to keep the focus on the same widget for an extended period of time\n// - When the user presses TAB after the current widget is disabled, it should jump to the next non-disabled widget\n\n// Developers using this accessible widget will need to:\n// - Style the disabled widget themselves, using CSS query `:disabled, [aria-disabled=\"true\"] {}`\n// - Modify all the code that checks disabled through the \"disabled\" attribute to use aria-disabled=\"true\" instead\n// - aria-disabled=\"true\" is the source of truth\n// - If the widget is contained by a <form>, the developer need to filter out some `onSubmit` event caused by this widget\n\nconst AccessibleInputTextPropsSchema = pipe(\n object({\n 'aria-errormessage': optional(string()),\n 'aria-label': optional(string()),\n className: optional(string()),\n 'data-id': optional(string()),\n 'data-testid': optional(string()),\n disabled: optional(boolean()),\n enterKeyHint: optional(string()),\n inputMode: optional(picklist(['decimal', 'email', 'none', 'numeric', 'search', 'tel', 'text', 'url'])),\n onChange: optional(custom<ChangeEventHandler<HTMLInputElement>>(value => typeof value === 'function')),\n onClick: optional(custom<MouseEventHandler<HTMLInputElement>>(value => typeof value === 'function')),\n onFocus: optional(custom<FocusEventHandler<HTMLInputElement>>(value => typeof value === 'function')),\n onKeyDown: optional(custom<KeyboardEventHandler<HTMLInputElement>>(value => typeof value === 'function')),\n onKeyDownCapture: optional(custom<KeyboardEventHandler<HTMLInputElement>>(value => typeof value === 'function')),\n onKeyPress: optional(custom<KeyboardEventHandler<HTMLInputElement>>(value => typeof value === 'function')),\n onSelect: optional(custom<ReactEventHandler<HTMLInputElement>>(value => typeof value === 'function')),\n placeholder: optional(string()),\n readOnly: optional(boolean()),\n tabIndex: optional(number()),\n type: literal('text'),\n value: optional(string())\n }),\n readonly()\n);\n\ntype AccessibleInputTextProps = InferInput<typeof AccessibleInputTextPropsSchema>;\n\nconst AccessibleInputText = forwardRef<HTMLInputElement, AccessibleInputTextProps>((rawProps, forwardedRef) => {\n const {\n 'aria-errormessage': ariaErrorMessage,\n 'aria-label': ariaLabel,\n className,\n 'data-id': dataId,\n 'data-testid': dataTestId,\n disabled,\n enterKeyHint,\n onChange,\n onClick,\n onFocus,\n onKeyDown,\n onKeyDownCapture,\n onKeyPress,\n onSelect,\n placeholder,\n readOnly,\n tabIndex,\n value,\n ...props\n } = validateProps(AccessibleInputTextPropsSchema, rawProps);\n\n const targetRef = useRef<HTMLInputElement>(null);\n\n const ref = forwardedRef || targetRef;\n\n useEnterKeyHint(ref, enterKeyHint);\n\n return (\n <input\n aria-disabled={disabled || undefined}\n aria-errormessage={ariaErrorMessage}\n aria-label={ariaLabel}\n className={className}\n data-id={dataId}\n data-testid={dataTestId}\n onChange={disabled ? undefined : onChange}\n onClick={onClick}\n onFocus={disabled ? undefined : onFocus}\n onKeyDown={disabled ? undefined : onKeyDown}\n onKeyDownCapture={disabled ? undefined : onKeyDownCapture}\n onKeyPress={disabled ? undefined : onKeyPress}\n onSelect={disabled ? undefined : onSelect}\n placeholder={placeholder}\n readOnly={readOnly || disabled}\n ref={ref}\n tabIndex={disabled ? -1 : tabIndex}\n value={value}\n {...props}\n type=\"text\"\n />\n );\n});\n\nAccessibleInputText.displayName = 'AccessibleInputText';\n\nexport default AccessibleInputText;\nexport { AccessibleInputTextPropsSchema, type AccessibleInputTextProps };\n","// Navigable event means the end-user is focusing on an inputtable element, but it is okay to capture the arrow keys.\n// For example, if the end-user is on <button>, we can capture the arrow keys.\n// We can also capture arrow keys when the user is on a <textarea> without contents.\n// eslint-disable-next-line complexity\nexport default function navigableEvent(event) {\n const {\n altKey,\n target,\n target: { tagName }\n } = event;\n\n const autocompleteAttribute = target.getAttribute('autocomplete');\n const autocomplete = autocompleteAttribute && autocompleteAttribute !== 'off';\n\n // Generally, we allow up/down arrow keys on all elements captured here, except those handled by the user agent.\n // For example, if it is on <select>, we will ignore up/down arrow keys. Also true for textbox with autocomplete.\n\n // For some elements, user agent doesn't handle arrow keys when ALT key is held, so we can still handle ALT + UP/DOWN keys.\n // For example, user agent ignores ALT + UP/DOWN on <input type=\"text\"> with content.\n // Counter-example: user agent continues to handle ALT + UP/DOWN on <input type=\"number\">.\n if (tagName === 'INPUT') {\n const { list, type, value } = target;\n\n // These are buttons, up/down arrow keys are not handled by the user agent.\n if (\n type === 'button' ||\n type === 'checkbox' ||\n type === 'file' ||\n type === 'image' ||\n type === 'radio' ||\n type === 'reset' ||\n type === 'submit'\n ) {\n return true;\n } else if (\n type === 'email' ||\n type === 'password' ||\n type === 'search' ||\n type === 'tel' ||\n type === 'text' ||\n type === 'url'\n ) {\n if (autocomplete || list) {\n // \"autocomplete\" and \"list\" are comboboxes. Up/down arrow keys may be handled by the user agent.\n return true;\n } else if (altKey || !value) {\n // If the input has content, user agent will handle up/down arrow and it work similar to HOME/END keys.\n // \"altKey\" can be used; user agent ignores ALT + UP/DOWN.\n return true;\n }\n }\n } else if (tagName === 'SELECT') {\n // User agent handles up/down arrow keys for dropdown list.\n return false;\n } else if (tagName === 'TEXTAREA') {\n if (!autocomplete && (altKey || !target.value)) {\n // User agent handles up/down arrow keys for multiline text box if it has content or is auto-complete.\n return true;\n }\n } else if (target.getAttribute('contenteditable') === 'true') {\n if (altKey || !target.innerHTML) {\n // \"contenteditable\" element works like <textarea> minus \"autocomplete\".\n return true;\n }\n } else {\n return true;\n }\n}\n","import { useRefFrom } from 'use-ref-from';\nimport mergeRefs from 'merge-refs';\nimport React, {\n type ChangeEvent,\n type ComponentType,\n type FocusEvent,\n forwardRef,\n type KeyboardEvent,\n type SyntheticEvent,\n useCallback,\n useMemo,\n useRef,\n type Ref\n} from 'react';\n\nimport useUndoStack from './private/useUndoStack';\n\nexport type InputTargetProps<H> = {\n onChange?: (event: ChangeEvent<H>) => void;\n onFocus?: (event: FocusEvent<H>) => void;\n onKeyDown?: (event: KeyboardEvent<H>) => void;\n onSelect?: (event: SyntheticEvent<H>) => void;\n value?: string;\n};\n\ntype PropsOf<T> = T extends ComponentType<infer P> ? P : never;\n\nfunction WithEmojiController<\n T extends ComponentType<P>,\n P extends InputTargetProps<H> = PropsOf<T>,\n H extends HTMLInputElement | HTMLTextAreaElement = P extends InputTargetProps<infer H> ? H : never\n>({\n componentProps,\n componentType,\n emojiMap = new Map<string, string>(),\n innerRef,\n onChange\n}: Readonly<{\n componentProps: P;\n componentType: ComponentType<P>;\n emojiMap?: Map<string, string>;\n innerRef?: Ref<H>;\n onChange?: (value: string | undefined) => void;\n}>) {\n const { value } = componentProps;\n const inputElementRef = useRef<H>(null);\n const onChangeRef = useRefFrom(onChange);\n\n const { push, undo } = useUndoStack(inputElementRef);\n const valueRef = useRefFrom(value);\n\n const handleChange = useCallback<(event: ChangeEvent<H>) => void>(\n ({ currentTarget }) => {\n const { selectionEnd, selectionStart, value } = currentTarget;\n\n if (\n typeof selectionEnd === 'number' &&\n typeof selectionStart === 'number' &&\n selectionStart === selectionEnd &&\n value &&\n value.length === (valueRef.current || '').length + 1\n ) {\n for (const [emoticon, emoji] of emojiMap.entries()) {\n const { length } = emoticon;\n\n if (value.slice(selectionEnd - length, selectionEnd) === emoticon) {\n push();\n\n const nextValue = `${value.slice(0, selectionEnd - length)}${emoji}${value.slice(selectionEnd)}`;\n const nextSelectionEnd = selectionEnd + emoji.length - length;\n\n currentTarget.value = nextValue;\n\n currentTarget.selectionStart = selectionStart;\n currentTarget.selectionEnd = nextSelectionEnd;\n\n break;\n }\n }\n }\n\n value || push();\n\n onChangeRef.current?.(currentTarget.value);\n },\n [push, emojiMap, onChangeRef, valueRef]\n );\n\n const handleFocus = useCallback<(event: FocusEvent<H>) => void>(() => push(), [push]);\n\n const handleKeyDown = useCallback<(event: KeyboardEvent<H>) => void>(\n // eslint-disable-next-line complexity\n event => {\n const { ctrlKey, key, metaKey } = event;\n\n const uppercaseKey = key.toUpperCase();\n\n if ((ctrlKey || metaKey) && uppercaseKey === 'Z') {\n event.preventDefault();\n\n undo();\n\n onChangeRef.current?.(event.currentTarget.value);\n } else if (key === 'Backspace') {\n push('backspace');\n } else if (key === 'Delete') {\n push('delete');\n } else if (\n key === 'ArrowLeft' ||\n key === 'ArrowRight' ||\n key === 'ArrowUp' ||\n key === 'ArrowDown' ||\n key === 'Home' ||\n key === 'End' ||\n key === 'PageUp' ||\n key === 'PageDown' ||\n ((ctrlKey || metaKey) && uppercaseKey === 'A') ||\n ((ctrlKey || metaKey) && (uppercaseKey === 'V' || uppercaseKey === 'X'))\n ) {\n push();\n } else {\n push('change');\n }\n },\n [push, onChangeRef, undo]\n );\n\n useMemo(\n () => (!inputElementRef.current || inputElementRef.current.value !== value) && push(),\n [push, inputElementRef, value]\n );\n\n return React.createElement(componentType, {\n ...componentProps,\n onChange: handleChange,\n onFocus: handleFocus,\n onKeyDown: handleKeyDown,\n ref: mergeRefs(inputElementRef, innerRef)\n } as P);\n}\n\nexport default function withEmoji<\n T extends ComponentType<P>,\n P extends InputTargetProps<H> = PropsOf<T>,\n H extends HTMLInputElement | HTMLTextAreaElement = P extends InputTargetProps<infer H> ? H : never\n>(componentType: T) {\n const WithEmoji = forwardRef<\n H,\n Readonly<\n Omit<P, 'emojiMap' | 'onChange'> & {\n emojiMap?: Map<string, string>;\n onChange?: (value: string | undefined) => void;\n }\n >\n >(({ emojiMap, onChange, ...props }, ref) => (\n <WithEmojiController<T, P, H>\n // TODO: Do we have a type bug here?\n componentProps={props as unknown as P}\n componentType={componentType}\n emojiMap={emojiMap}\n innerRef={ref}\n onChange={onChange}\n />\n ));\n\n WithEmoji.displayName = `WithEmoji<${componentType.displayName}>`;\n\n return WithEmoji;\n}\n","export default class UndoEntry {\n constructor(value: string, selectionStart: number | null, selectionEnd: number | null, group: string | undefined) {\n this.#group = group;\n this.#selectionEnd = selectionEnd;\n this.#selectionStart = selectionStart;\n this.#value = value;\n }\n\n #group: string | undefined;\n #selectionEnd: number | null;\n #selectionStart: number | null;\n #value: string;\n\n get group(): string | undefined {\n return this.#group;\n }\n\n get selectionStart(): number | null {\n return this.#selectionStart;\n }\n\n get selectionEnd(): number | null {\n return this.#selectionEnd;\n }\n\n get value(): string {\n return this.#value;\n }\n}\n","import { type RefObject, useCallback, useRef } from 'react';\n\nimport UndoEntry from './UndoEntry';\n\nexport default function useUndoStack(\n elementRef: RefObject<HTMLInputElement | HTMLTextAreaElement>\n): Readonly<{ push: (group?: string) => void; undo: () => void }> {\n const undoStackRef = useRef<UndoEntry[]>([]);\n\n const push = useCallback(\n (group?: string | undefined) => {\n const { current: element } = elementRef;\n\n if (!element) {\n return;\n }\n\n const { current: undoStack } = undoStackRef;\n\n const [firstEntry] = undoStack;\n const { selectionEnd, selectionStart, value } = element;\n\n if (!group || group !== firstEntry?.group) {\n value === firstEntry?.value && undoStack.shift();\n\n undoStack.unshift(new UndoEntry(value, selectionStart, selectionEnd, group));\n }\n },\n [elementRef, undoStackRef]\n );\n\n const undo = useCallback(() => {\n const { current: element } = elementRef;\n\n if (!element) {\n return;\n }\n\n const { current: undoStack } = undoStackRef;\n let lastEntry: UndoEntry | undefined;\n\n while (undoStack.length) {\n [lastEntry] = undoStack;\n\n if (lastEntry?.value === element.value) {\n undoStack.shift();\n } else {\n break;\n }\n }\n\n if (lastEntry) {\n element.value = lastEntry.value;\n\n element.selectionStart = lastEntry.selectionStart;\n element.selectionEnd = lastEntry.selectionEnd;\n } else {\n element.value = '';\n }\n }, [elementRef, undoStackRef]);\n\n return Object.freeze({ push, undo });\n}\n"]}
|
package/dist/chunk-RVS2VADF.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{$ as g,A as l,B as A,C as m,D as v,E as p,O as T,P as B,aa as k,c as e,ca as R,g as t,i as s,k as i,m as u,o,p as r,s as n,t as a,u as c,x as d,y,z as S}from"./chunk-5OYC2I56.mjs";import{a as b}from"./chunk-I6DJ35K3.mjs";var D={};b(D,{useActiveTyping:()=>x,useActivities:()=>F,useActivityKeys:()=>M,useActivityKeysByRead:()=>f,useAvatarForBot:()=>C,useAvatarForUser:()=>G,useBuildRenderActivityCallback:()=>I,useByteFormatter:()=>K,useCapabilities:()=>h,useConnectivityStatus:()=>V,useCreateActivityRenderer:()=>E,useCreateActivityStatusRenderer:()=>L,useCreateAttachmentForScreenReaderRenderer:()=>P,useCreateAvatarRenderer:()=>w,useCreateScrollToEndButtonRenderer:()=>N,useDateFormatter:()=>U,useDebouncedNotifications:()=>H,useDictateAbortable:()=>u,useDictateInterims:()=>O,useDictateState:()=>z,useDirection:()=>W,useDisabled:()=>j,useDismissNotification:()=>q,useEmitTypingIndicator:()=>J,useFocus:()=>r,useGetActivitiesByKey:()=>Q,useGetActivityByKey:()=>X,useGetHasAcknowledgedByActivityKey:()=>Y,useGetKeyByActivity:()=>Z,useGetKeyByActivityId:()=>_,useGetSendTimeoutForActivity:()=>$,useGrammars:()=>ee,useGroupActivities:()=>te,useGroupActivitiesByName:()=>se,useGroupTimestamp:()=>ie,useLanguage:()=>ue,useLastAcknowledgedActivityKey:()=>oe,useLastReadActivityKey:()=>re,useLocalizer:()=>ne,useMakeThumbnail:()=>n,useMarkActivityAsSpoken:()=>ae,useMarkActivityKeyAsRead:()=>ce,useMarkAllAsAcknowledged:()=>de,useMicrophoneButtonClick:()=>T,useMicrophoneButtonDisabled:()=>B,useNotifications:()=>ye,useObserveScrollPosition:()=>a,useObserveTranscriptFocus:()=>c,usePerformCardAction:()=>Se,usePonyfill:()=>le,usePostActivity:()=>Ae,useReferenceGrammarID:()=>me,useRegisterFocusSendBox:()=>o,useRelativeTimeFormatter:()=>ve,useRenderAttachment:()=>pe,useRenderMarkdownAsHTML:()=>s,useRenderToast:()=>Te,useRenderTypingIndicator:()=>Be,useScrollDown:()=>d,useScrollTo:()=>y,useScrollToEnd:()=>S,useScrollUp:()=>l,useSendBoxAttachments:()=>ge,useSendBoxSpeechInterimsVisible:()=>R,useSendBoxValue:()=>ke,useSendEvent:()=>Re,useSendFiles:()=>A,useSendMessage:()=>m,useSendMessageBack:()=>be,useSendPostBack:()=>De,useSendStatusByActivityKey:()=>xe,useSendTimeoutForActivity:()=>Fe,useSendTypingIndicator:()=>Me,useSetNotification:()=>fe,useShouldReduceMotion:()=>i,useShouldSpeakIncomingActivity:()=>Ce,useStartDictate:()=>Ge,useStartVoice:()=>Ie,useStopDictate:()=>Ke,useStopVoice:()=>he,useStyleOptions:()=>Ve,useStyleSet:()=>e,useSubmitSendBox:()=>Ee,useSuggestedActions:()=>Le,useSuggestedActionsHooks:()=>Pe,useTextBoxSubmit:()=>g,useTextBoxValue:()=>k,useTimeoutForSend:()=>we,useTrackDimension:()=>Ne,useTrackEvent:()=>Ue,useTrackException:()=>He,useTrackTiming:()=>Oe,useTransformHTMLContent:()=>t,useTypingIndicatorVisible:()=>p,useUIState:()=>ze,useUserID:()=>We,useUsername:()=>je,useVoiceRecordingMuted:()=>qe,useVoiceSelector:()=>Je,useVoiceState:()=>Qe,useWebSpeechPonyfill:()=>v});import{useActiveTyping as x,useActivities as F,useActivityKeys as M,useActivityKeysByRead as f,useAvatarForBot as C,useAvatarForUser as G,useBuildRenderActivityCallback as I,useByteFormatter as K,useCapabilities as h,useConnectivityStatus as V,useCreateActivityRenderer as E,useCreateActivityStatusRenderer as L,useCreateAttachmentForScreenReaderRenderer as P,useCreateAvatarRenderer as w,useCreateScrollToEndButtonRenderer as N,useDateFormatter as U,useDebouncedNotifications as H,useDictateInterims as O,useDictateState as z,useDirection as W,useDisabled as j,useDismissNotification as q,useEmitTypingIndicator as J,useGetActivitiesByKey as Q,useGetActivityByKey as X,useGetHasAcknowledgedByActivityKey as Y,useGetKeyByActivity as Z,useGetKeyByActivityId as _,useGetSendTimeoutForActivity as $,useGrammars as ee,useGroupActivities as te,useGroupActivitiesByName as se,useGroupTimestamp as ie,useLanguage as ue,useLastAcknowledgedActivityKey as oe,useLastReadActivityKey as re,useLocalizer as ne,useMarkActivityAsSpoken as ae,useMarkActivityKeyAsRead as ce,useMarkAllAsAcknowledged as de,useNotifications as ye,usePerformCardAction as Se,usePonyfill as le,usePostActivity as Ae,useReferenceGrammarID as me,useRelativeTimeFormatter as ve,useRenderAttachment as pe,useRenderToast as Te,useRenderTypingIndicator as Be,useSendBoxAttachments as ge,useSendBoxValue as ke,useSendEvent as Re,useSendMessageBack as be,useSendPostBack as De,useSendStatusByActivityKey as xe,useSendTimeoutForActivity as Fe,useSendTypingIndicator as Me,useSetNotification as fe,useShouldSpeakIncomingActivity as Ce,useStartDictate as Ge,useStartVoice as Ie,useStopDictate as Ke,useStopVoice as he,useStyleOptions as Ve,useSubmitSendBox as Ee,useSuggestedActions as Le,useSuggestedActionsHooks as Pe,useTimeoutForSend as we,useTrackDimension as Ne,useTrackEvent as Ue,useTrackException as He,useTrackTiming as Oe,useUIState as ze,useUserID as We,useUsername as je,useVoiceRecordingMuted as qe,useVoiceSelector as Je,useVoiceState as Qe}from"botframework-webchat-api/hook.js";export{D as a,x as b,F as c,M as d,f as e,C as f,G as g,I as h,K as i,h as j,V as k,E as l,L as m,P as n,w as o,N as p,U as q,H as r,O as s,z as t,W as u,j as v,q as w,J as x,Q as y,X as z,Y as A,Z as B,_ as C,$ as D,ee as E,te as F,se as G,ie as H,ue as I,oe as J,re as K,ne as L,ae as M,ce as N,de as O,ye as P,Se as Q,le as R,Ae as S,me as T,ve as U,pe as V,Te as W,Be as X,ge as Y,ke as Z,Re as _,be as $,De as aa,xe as ba,Fe as ca,Me as da,fe as ea,Ce as fa,Ge as ga,Ie as ha,Ke as ia,he as ja,Ve as ka,Ee as la,Le as ma,Pe as na,we as oa,Ne as pa,Ue as qa,He as ra,Oe as sa,ze as ta,We as ua,je as va,qe as wa,Je as xa,Qe as ya};
|
|
2
|
-
//# sourceMappingURL=chunk-RVS2VADF.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/boot/hook.ts"],"sourcesContent":["export {\n useActiveTyping,\n useActivities,\n useActivityKeys,\n useActivityKeysByRead,\n useAvatarForBot,\n useAvatarForUser,\n useBuildRenderActivityCallback,\n useByteFormatter,\n useCapabilities,\n useConnectivityStatus,\n useCreateActivityRenderer,\n useCreateActivityStatusRenderer,\n useCreateAttachmentForScreenReaderRenderer,\n useCreateAvatarRenderer,\n useCreateScrollToEndButtonRenderer,\n useDateFormatter,\n useDebouncedNotifications,\n useDictateInterims,\n useDictateState,\n useDirection,\n useDisabled,\n useDismissNotification,\n useEmitTypingIndicator,\n useGetActivitiesByKey,\n useGetActivityByKey,\n useGetHasAcknowledgedByActivityKey,\n useGetKeyByActivity,\n useGetKeyByActivityId,\n useGetSendTimeoutForActivity,\n useGrammars,\n useGroupActivities,\n useGroupActivitiesByName,\n useGroupTimestamp,\n useLanguage,\n useLastAcknowledgedActivityKey,\n useLastReadActivityKey,\n useLocalizer,\n useMarkActivityAsSpoken,\n useMarkActivityKeyAsRead,\n useMarkAllAsAcknowledged,\n useNotifications,\n usePerformCardAction,\n usePonyfill,\n usePostActivity,\n useReferenceGrammarID,\n useRelativeTimeFormatter,\n useRenderAttachment,\n useRenderToast,\n useRenderTypingIndicator,\n useSendBoxAttachments,\n useSendBoxValue,\n useSendEvent,\n useSendMessageBack,\n useSendPostBack,\n useSendStatusByActivityKey,\n useSendTimeoutForActivity,\n useSendTypingIndicator,\n useSetNotification,\n useShouldSpeakIncomingActivity,\n useStartDictate,\n useStartVoice,\n useStopDictate,\n useStopVoice,\n useStyleOptions,\n useSubmitSendBox,\n useSuggestedActions,\n useSuggestedActionsHooks,\n useTimeoutForSend,\n useTrackDimension,\n useTrackEvent,\n useTrackException,\n useTrackTiming,\n useUIState,\n useUserID,\n useUsername,\n useVoiceRecordingMuted,\n useVoiceSelector,\n useVoiceState\n} from 'botframework-webchat-api/hook.js';\n\n// #region Overrides\nexport {\n // We are overwriting the `useSendFiles` hook from bf-wc-api and adding thumbnailing support.\n useSendFiles,\n // We are overwriting the `useSendMessage` hook from bf-wc-api and adding thumbnailing support.\n useSendMessage\n} from '../hooks/index';\n// #endregion\n\n// #region Adds\nexport {\n useDictateAbortable,\n useFocus,\n useMakeThumbnail,\n useMicrophoneButtonClick,\n useMicrophoneButtonDisabled,\n useObserveScrollPosition,\n useObserveTranscriptFocus,\n useRegisterFocusSendBox,\n useRenderMarkdownAsHTML,\n useScrollDown,\n useScrollTo,\n useScrollToEnd,\n useScrollUp,\n useSendBoxSpeechInterimsVisible,\n useShouldReduceMotion,\n useStyleSet,\n useTextBoxSubmit,\n useTextBoxValue,\n useTransformHTMLContent,\n useTypingIndicatorVisible,\n useWebSpeechPonyfill,\n type SendBoxFocusOptions\n} from '../hooks/index';\n// #endregion\n"],"mappings":"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","names":["hook_exports","__export","useActiveTyping","useActivities","useActivityKeys","useActivityKeysByRead","useAvatarForBot","useAvatarForUser","useBuildRenderActivityCallback","useByteFormatter","useCapabilities","useConnectivityStatus","useCreateActivityRenderer","useCreateActivityStatusRenderer","useCreateAttachmentForScreenReaderRenderer","useCreateAvatarRenderer","useCreateScrollToEndButtonRenderer","useDateFormatter","useDebouncedNotifications","useDictateAbortable","useDictateInterims","useDictateState","useDirection","useDisabled","useDismissNotification","useEmitTypingIndicator","useFocus","useGetActivitiesByKey","useGetActivityByKey","useGetHasAcknowledgedByActivityKey","useGetKeyByActivity","useGetKeyByActivityId","useGetSendTimeoutForActivity","useGrammars","useGroupActivities","useGroupActivitiesByName","useGroupTimestamp","useLanguage","useLastAcknowledgedActivityKey","useLastReadActivityKey","useLocalizer","useMakeThumbnail","useMarkActivityAsSpoken","useMarkActivityKeyAsRead","useMarkAllAsAcknowledged","useMicrophoneButtonClick","useMicrophoneButtonDisabled","useNotifications","useObserveScrollPosition","useObserveTranscriptFocus","usePerformCardAction","usePonyfill","usePostActivity","useReferenceGrammarID","useRegisterFocusSendBox","useRelativeTimeFormatter","useRenderAttachment","useRenderMarkdownAsHTML","useRenderToast","useRenderTypingIndicator","useScrollDown","useScrollTo","useScrollToEnd","useScrollUp","useSendBoxAttachments","useSendBoxSpeechInterimsVisible","useSendBoxValue","useSendEvent","useSendFiles","useSendMessage","useSendMessageBack","useSendPostBack","useSendStatusByActivityKey","useSendTimeoutForActivity","useSendTypingIndicator","useSetNotification","useShouldReduceMotion","useShouldSpeakIncomingActivity","useStartDictate","useStartVoice","useStopDictate","useStopVoice","useStyleOptions","useStyleSet","useSubmitSendBox","useSuggestedActions","useSuggestedActionsHooks","useTextBoxSubmit","useTextBoxValue","useTimeoutForSend","useTrackDimension","useTrackEvent","useTrackException","useTrackTiming","useTransformHTMLContent","useTypingIndicatorVisible","useUIState","useUserID","useUsername","useVoiceRecordingMuted","useVoiceSelector","useVoiceState","useWebSpeechPonyfill"]}
|