From 12110b8903b1612083288f63071987982f7d0048 Mon Sep 17 00:00:00 2001 From: Eugene Olonov Date: Thu, 5 Nov 2026 12:43:55 -0800 Subject: [PATCH 1/3] Convert chat history box, image avatar, error box, transcript list and media attachments to CSS modules - 10 option-free style set entries move to CSS modules with webchat__ class names (useStyles + webChatPrefixedClassName); the 6 media entries share MediaAttachment.module.css - videoHeight reaches CSS as --webchat__height--video - activities: margin and padding-inline only, TranscriptFocus keeps padding-block - Scroll-to-end toolbar: inset-inline-end + its own dir, --rtl class dropped - @deprecated (since 4.19.3, removal on or after 2028-10-16) on the 10 entries - New tests: rtl/scrollToEndButton.html, styleOptions/videoHeight.html --- __tests__/html2/rtl/scrollToEndButton.html | 61 +++++++++++++++ .../rtl/scrollToEndButton.html.snap-1.png | Bin 0 -> 13846 bytes __tests__/html2/styleOptions/videoHeight.html | 59 ++++++++++++++ .../styleOptions/videoHeight.html.snap-1.png | Bin 0 -> 6054 bytes .../AnimationCardContent.module.css | 2 +- .../src/Attachment/AudioAttachment.js | 8 +- .../component/src/Attachment/AudioContent.tsx | 14 ++-- .../src/Attachment/HTMLVideoContent.tsx | 13 +-- .../src/Attachment/MediaAttachment.module.css | 74 ++++++++++++++++++ .../src/Attachment/VideoAttachment.js | 15 ++-- .../src/Attachment/VideoContent.spec.tsx | 4 +- .../component/src/Attachment/VimeoContent.tsx | 13 +-- .../src/Attachment/YouTubeContent.tsx | 13 +-- .../src/Avatar/ImageAvatar.module.css | 13 +++ packages/component/src/Avatar/ImageAvatar.tsx | 26 +++--- .../component/src/BasicTranscript.module.css | 3 + packages/component/src/BasicTranscript.tsx | 4 +- .../src/ChatHistory/ChatHistoryBox.module.css | 14 ++++ .../src/ChatHistory/ChatHistoryBox.tsx | 16 ++-- .../src/ChatHistory/ChatHistoryToolbar.tsx | 20 ++--- packages/component/src/ErrorBox.module.css | 31 ++++++++ packages/component/src/ErrorBox.tsx | 14 ++-- .../Styles/CSSCustomPropertiesContainer.tsx | 4 +- .../src/Styles/CustomPropertyNames.ts | 1 + .../src/Styles/StyleSet/Activities.ts | 5 ++ .../src/Styles/StyleSet/AudioAttachment.ts | 5 ++ .../src/Styles/StyleSet/AudioContent.ts | 5 ++ .../src/Styles/StyleSet/ChatHistoryBox.ts | 5 ++ .../component/src/Styles/StyleSet/ErrorBox.ts | 5 ++ .../src/Styles/StyleSet/ImageAvatar.ts | 5 ++ .../src/Styles/StyleSet/VideoAttachment.ts | 5 ++ .../src/Styles/StyleSet/VideoContent.ts | 5 ++ .../src/Styles/StyleSet/VimeoContent.ts | 5 ++ .../src/Styles/StyleSet/YouTubeContent.ts | 5 ++ .../component/src/Styles/createStyleSet.ts | 50 ++++++++++++ 35 files changed, 438 insertions(+), 84 deletions(-) create mode 100644 __tests__/html2/rtl/scrollToEndButton.html create mode 100644 __tests__/html2/rtl/scrollToEndButton.html.snap-1.png create mode 100644 __tests__/html2/styleOptions/videoHeight.html create mode 100644 __tests__/html2/styleOptions/videoHeight.html.snap-1.png create mode 100644 packages/component/src/Attachment/MediaAttachment.module.css create mode 100644 packages/component/src/Avatar/ImageAvatar.module.css create mode 100644 packages/component/src/ChatHistory/ChatHistoryBox.module.css create mode 100644 packages/component/src/ErrorBox.module.css diff --git a/__tests__/html2/rtl/scrollToEndButton.html b/__tests__/html2/rtl/scrollToEndButton.html new file mode 100644 index 0000000000..182cfd8520 --- /dev/null +++ b/__tests__/html2/rtl/scrollToEndButton.html @@ -0,0 +1,61 @@ + + + + + + +
+ + + + diff --git a/__tests__/html2/rtl/scrollToEndButton.html.snap-1.png b/__tests__/html2/rtl/scrollToEndButton.html.snap-1.png new file mode 100644 index 0000000000000000000000000000000000000000..734c851112236de0da1fa65547747f3ea82a9672 GIT binary patch literal 13846 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 i?gYNwg@s<(M^g_-6 literal 0 HcmV?d00001 diff --git a/__tests__/html2/styleOptions/videoHeight.html b/__tests__/html2/styleOptions/videoHeight.html new file mode 100644 index 0000000000..ad551e9325 --- /dev/null +++ b/__tests__/html2/styleOptions/videoHeight.html @@ -0,0 +1,59 @@ + + + + + + +
+ + + + diff --git a/__tests__/html2/styleOptions/videoHeight.html.snap-1.png b/__tests__/html2/styleOptions/videoHeight.html.snap-1.png new file mode 100644 index 0000000000000000000000000000000000000000..09005d6e11b5b647b2c70f402be4f2b71966d48d GIT binary patch literal 6054 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 literal 0 HcmV?d00001 diff --git a/packages/bundle/src/adaptiveCards/Attachment/AnimationCardContent.module.css b/packages/bundle/src/adaptiveCards/Attachment/AnimationCardContent.module.css index 506606a1ac..bfacfac7ac 100644 --- a/packages/bundle/src/adaptiveCards/Attachment/AnimationCardContent.module.css +++ b/packages/bundle/src/adaptiveCards/Attachment/AnimationCardContent.module.css @@ -26,7 +26,7 @@ display: block; } - /* Same two-tone focus indicator as video attachments, see `Styles/StyleSet/VideoAttachment.ts` in the component package. */ + /* Same two-tone focus indicator as video attachments, see `Attachment/MediaAttachment.module.css` in the component package. */ /* It follows the clipped top corners. When the bubble does not clip the video, the video is rounded like the indicator. */ > video:focus-visible { border-radius: inherit; diff --git a/packages/component/src/Attachment/AudioAttachment.js b/packages/component/src/Attachment/AudioAttachment.js index f04c6da71e..86824ba5dc 100644 --- a/packages/component/src/Attachment/AudioAttachment.js +++ b/packages/component/src/Attachment/AudioAttachment.js @@ -1,9 +1,11 @@ import { validateProps } from '@msinternal/botframework-webchat-react-valibot'; +import { useStyles, webChatPrefixedClassName } from '@msinternal/botframework-webchat-styles/react'; import React from 'react'; import { object, optional, pipe, readonly, string } from 'valibot'; import AudioContent from './AudioContent'; -import useStyleSet from '../hooks/useStyleSet'; + +import styles from './MediaAttachment.module.css'; const audioAttachmentPropsSchema = pipe( object({ @@ -21,10 +23,10 @@ const audioAttachmentPropsSchema = pipe( const AudioAttachment = props => { const { attachment } = validateProps(audioAttachmentPropsSchema, props); - const [{ audioAttachment: audioAttachmentStyleSet }] = useStyleSet(); + const classNames = useStyles(styles, webChatPrefixedClassName); return ( -
+
); diff --git a/packages/component/src/Attachment/AudioContent.tsx b/packages/component/src/Attachment/AudioContent.tsx index 711f5d55b2..bab37819c8 100644 --- a/packages/component/src/Attachment/AudioContent.tsx +++ b/packages/component/src/Attachment/AudioContent.tsx @@ -1,8 +1,9 @@ -import { validateProps } from '@msinternal/botframework-webchat-react-valibot'; +import { validateProps, type InferReactProps } from '@msinternal/botframework-webchat-react-valibot'; +import { useStyles, webChatPrefixedClassName } from '@msinternal/botframework-webchat-styles/react'; import React, { memo } from 'react'; -import { boolean, object, optional, pipe, readonly, string, type InferInput } from 'valibot'; +import { boolean, object, optional, pipe, readonly, string } from 'valibot'; -import useStyleSet from '../hooks/useStyleSet'; +import styles from './MediaAttachment.module.css'; const audioContentPropsSchema = pipe( object({ @@ -15,17 +16,18 @@ const audioContentPropsSchema = pipe( readonly() ); -type AudioContentProps = InferInput; +type AudioContentProps = InferReactProps; function AudioContent(props: AudioContentProps) { const { alt, autoPlay = false, loop = false, src } = validateProps(audioContentPropsSchema, props); - const [{ audioContent: audioContentStyleSet }] = useStyleSet(); + + const classNames = useStyles(styles, webChatPrefixedClassName); return (