All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
Notes: web developers are advised to use ~
(tilde range) to select minor versions, which contains new features and/or fixes. Use ^
(caret range) to select major versions, which may contains breaking changes.
styleOptions.bubbleImageHeight
is being deprecated in favor ofstyleOptions.bubbleImageMaxHeight
andstyleOptions.bubbleImageMinHeight
. The option will be removed on or after 2026-07-05styleOptions.bubbleMaxWidth
/bubbleMinWidth
is being deprecated in favor ofstyleOptions.bubbleAttachmentMaxWidth
/bubbleAttachmentMinWidth
andstyleOptions.bubbleMessageMaxWidth
/bubbleMessageMinWidth
. The option will be removed on or after 2026-10-08- Moved to
micromark
for rendering Markdown, instead ofmarkdown-it
- Please refer to PR #5330 for details
- HTML sanitizer is moved from
renderMarkdown
to HTML content transformer middleware, please refer to PR #5338- If you customized
renderMarkdown
with a custom HTML sanitizer, please move the HTML sanitizer to the new HTML content transformer middleware
- If you customized
- (Experimental) Added pre-chat message with starter prompts in Fluent UI, in PR #5255 and #5263, by @compulim
- (Experimental) Added
isPrimary
props to Fluent UI send box. When set, will wire up withuseSendBoxValue
and works with starter prompts in pre-chat message, in PR #5257, by @compulim - (Experimental) Expand Fluent theme support to activities and transcript, in PR #5258, by @OEvgeny
- Added new Fluent UI theme variant "copilot" with updated styling and components, in PR #5258, by @OEvgeny
- Introduced
ActivityDecorator
component for enhanced message styling and layout, in PR #5258, by @OEvgeny - Added
CopilotMessageHeader
component for displaying bot information in the "copilot" variant, in PR #5258, by @OEvgeny - Updated Fluent theme styling to improve accessibility and visual consistency, in PR #5258, by @OEvgeny
- Fixed header font in copilot variant, in PR #5261, by @OEvgeny
- Added "Copy" button to bot messages in Fluent UI if it contains keyword
AllowCopy
, in PR #5259, #5262, and #5285, by @compulim - Resolves #4876 and #4939. Added support of informative message in livestreaming, by @compulim, in PR #5265
- Introduced centralized announcements approach via the new
usePushToLiveRegion
hook, in PR #5251, by @OEvgeny - Added keyboard shortcut for the "New Messages" button, in PR #5251, by @OEvgeny
- Added decorators for loading and completion states to the Fluent theme, in PR #5269, by @OEvgeny
- Added blueprint of starter prompts in the Fluent theme, in PR #5270, #5276, #5279, and #5284, by @OEvgeny and @compulim
- Added support for liner message activities in the Fluent theme, in PR #5272, by @OEvgeny
- Added new
uiState
props anduseUIState
hook, in PR #5276, by @compulim - (Experimental) Added support for using Web Chat inside a shadow DOM, in PR #5196, by @OEvgeny
- Added
styleOptions.stylesRoot
property allowing users to specify the root node where Web Chat styles should be placed, in PR #5196, by @OEvgeny - Added the
ThemeProvider.styles
property, allowing theme packages to place styles into the same root node as Web Chat, in PR #5196, by @OEvgeny - Added
nonce
for Fluent andreact-scroll-to-bottom
injected styles, in PR #5196, by @OEvgeny - Updated
react-scroll-to-bottom
to version4.2.1-main.53844f5
, in PR #5196, by @OEvgeny - Updated
react-film
to version3.1.1-main.f623bf6
, in PR #5196, by @OEvgeny
- Added
- (Experimental) Added CSS decorator support into Web Chat white-label experience, in PR #5312, by @OEvgeny
- Added
styleOptions.bubbleAttachmentMaxWidth
/bubbleAttachmentMinWidth
andstyleOptions.bubbleMessageMaxWidth
/bubbleMessageMinWidth
, in PR #5321, by @compulim - (Experimental) Added more CSS variables support, in PR #5321, by @compulim
- Added MathML/TeX block support in Markdown via
micromark-extension-math
andkatex
, in PR #5332, by @compulim - Added code viewer dialog with syntax highlighting, in PR #5335, by @OEvgeny
- Added copy button to code blocks, in PR #5334, by @compulim
- Added copy button to view code dialog, in PR #5336, by @compulim
- Added HTML content transformer middleware, in PR #5338 and #5347, by @compulim
- HTML content transformer is used by
useRenderMarkdown
to transform the result fromrenderMarkdown
- HTML sanitizer is moved from
renderMarkdown
into HTML content transformer for better coverage - Copy button is added to fenced code blocks (
<pre><code>
) - Configure HTML sanitizer via
request.allowedTags
- HTML content transformer is used by
- Added support for math blocks using
$$
delimiter alongside existing\[...\]
and\(...\)
notations, in PR #5381, by @OEvgeny
- Updated
useSuggestedActions
to return the activity the suggested actions originated from, in PR #5255, by @compulim - Improved focus trap implementation by preserving focus state and removing sentinels, in PR #5243, by @OEvgeny
- Reworked pre-chat activity layout to use author entity for improved consistency and flexibility, in PR #5274, by @OEvgeny
- Updated styles for suggested actions and attachments in Fluent theme to improve readability and consistency, in PR #5275, by @OEvgeny
- Moved from
redux-devtools-extension@2.13.9
to@redux/devtools-extension@3.3.0
, in PR #5292, by @compulim - Enhanced the visual presentation of the Fluent theme copilot variant, in PR #5293, by @OEvgeny
- Refactored spacing and layout for copilot variant in Fluent theme, improving visual consistency, in PR #5296, by @OEvgeny
- Added a content generated badge to AI-generated messages, in PR #5298, by @OEvgeny
- Resolved #4847. Migrated to npm workspaces from lerna, in PR #5301, by @compulim
- Resolved #5302. Migrated to
core-js-pure/Promise.withResolveers
fromp-defer
, in PR #5301, by @compulim - Improved message bubble layout in Fluent theme to allow growth beyond 450px up to 75% of container width, in PR #5324, by @OEvgeny
- Improved drop zone behavior and styling in Fluent theme, in PR #5328, by @OEvgeny
- Excluded side effects from module entry points to prevent global scope modifications, in PR #5329, by @OEvgeny
- Moved to
micromark
for rendering Markdown, instead ofmarkdown-it
, in PR #5330, by @compulim - Improved view code dialog UI in Fluent theme with better styling and accessibility, in PR #5337, by @OEvgeny
- Switched math block syntax from
$$
to Tex-style\[ \]
and\( \)
delimiters with improved rendering and error handling, in PR #5353, by @OEvgeny - Improved avatar display and grouping behavior by fixing rendering issues and activity sender identification, in PR #5346, by @OEvgeny
- Activity "copy" button will use
outerHTML
andtextContent
for clipboard content, in PR #5378, by @compulim
- Fixed #5256.
styleOptions.maxMessageLength
should support any JavaScript number value includingInfinity
, by @compulim, in PR #5255 - Fixes #4965. Removed keyboard helper screen in #5234, by @amirmursal and @OEvgeny
- Fixes #5268. Concluded livestream is sealed and activities received afterwards are ignored, and
streamSequence
is not required in final activity, in PR #5273, by @compulim - Fixes #5288. Fixed citation and sensitivity label bleeding when using Fluent skin pack, in PR #5287, by @compulim
- Fixes #5294. Fixed copy button animation reset to "Copied" after hiding and showing Web Chat, in PR #5295, by @compulim
- Fixes #5147. Added
punycode
to our dependencies asmarkdown-it
requires it but did not have it in theirpackage.json
, in PR #5301, by @compulim - Fixes #5306. Title and subtitle in pre-chat message activity should wrap, in PR #5307, by @compulim
- Fixes #5319. Some Markdown text are not rendered after HTML tags, in PR #5320, by @compulim
- Fixes #5323. Removed unused CSS class from carousel component, eliminating unintended styling, in PR #5325, by @OEvgeny
- Resolved CSS class name conflicts between component and fluent packages to prevent styling issues, in PR #5326, in PR #5327, by @OEvgeny
- Fixed #5350. Bundled
shiki
in component package, in PR #5349, by @compulim - Fixed modal dialog rendering to prevent visual flicker and improve UX when opening code views, in PR #5374, by @OEvgeny
- Fixed math parsing that could cause Web Chat to hang when processing certain LaTeX expressions, in PR #5377, by @OEvgeny
- Fixed long math formula should be scrollable, in PR #5380, by @compulim
- Deprecating
disabled
props anduseDisabled
hook in favor of newuiState
props anduseUIState
hook, in PR #5276, by @compulim
- (Experimental) Added initial decorators support, in PR #5205, by @OEvgeny
- Added
styleOptions.bubbleImageMaxHeight
andstyleOptions.bubbleImageMinHeight
for variable image height, in PR #5236, by @compulim
- Read deeper into citation objects in order to provide names, in PR #5215, by @beyackle2
- Improved performance for
useActivityWithRenderer
, in PR #5172, by @OEvgeny - Fixes #5162. Improved performance for
useActivityTreeWithRenderer
, in PR #5163, by @compulim - Fixes #5175.
PrecompiledGlobalize.js
is emitted instead of.cjs
, by @compulim in PR #5181 - Improved performance for
BasicTranscript
, in PR #5183, by @OEvgeny - Fixed potential memory usage issues caused by
useActivitiesWithRenderer
, in PR #5183, by @OEvgeny - Improved performance for
useMemoized
, in PR #5190, by @OEvgeny - Fixed send box zoomed in when clicked on mobile Safari, in PR #5192, by @OEvgeny
- Added missing support for chat history scroll with keyboard when Fluent send box is focused, in PR #5191, by @OEvgeny
- Fixed DTMF command usage sent by telephone keypad, in PR #5198, by @OEvgeny
- Fixed decorator import in legacy CommonJS environments, in #5231, by @OEvgeny
- Scoped
use-propagate
to individual WebChat instances to prevent interference between multiple instances, in PR #5248, by @OEvgeny
- Bumped all dependencies to the latest versions, by @compulim in PR #5174 and PR #5181
- Production dependencies
- Development dependencies
@fluentui/react-components@9.49.2
@types/node@20.12.11
@typescript-eslint/eslint-plugin@7.8.0
@typescript-eslint/parser@7.8.0
adm-zip@0.5.12
dotenv@16.4.5
esbuild@0.21.1
eslint-plugin-import@2.29.1
eslint-plugin-prettier@5.1.3
eslint-plugin-react-hooks@4.6.2
eslint-plugin-react@7.34.1
eslint-plugin-security@3.0.0
eslint@8.57.0
html-webpack-plugin@5.6.0
husky@9.0.11
jest-image-snapshot@6.4.0
lint-staged@15.2.2
nodemon@3.1.0
nopt@7.2.1
p-defer@4.0.1
prettier@3.2.5
selenium-webdriver@4.20.0
serve@14.2.3
source-map-loader@5.0.0
terser-webpack-plugin@5.3.10
tsd@0.31.0
type-fest@4.18.2
typescript@5.4.5
webpack@5.91.0
- Web Chat is not loading with error
Uncaught TypeError: Super constructor null of anonymous class is not a constructor
- A bug in webpack@>=5.84.1 is causing the issue. Please update to
webpack@>=5.90.0
- A bug in webpack@>=5.84.1 is causing the issue. Please update to
useSendMessage
hook is updated to support sending attachments with a message. To reduce complexity, theuseSendFiles
hook is being deprecated. The hook will be removed on or after 2026-04-03styleOptions.uploadThumbnailHeight
andstyleOptions.uploadThumbnailWidth
must be anumber
of pixelsuseSuggestedActions
type is updated to align with its actual implementation, by @OEvgeny, in PR #5122- Removed deprecated code:
connect*
,useRenderActivity
,useRenderActivityStatus
,useRenderAvatar
, in PR #5148, by @compulim - Added named exports in both CommonJS and ES Modules module format, in PR #5148, by @compulim
- Removed deprecated
useFocusSendBox()
hook, please useuseFocus('sendBox')
instead, in PR #5150, by @OEvgeny - HTML-in-Markdown is now supported. To disable this feature, set
styleOptions.markdownRenderHTML
tofalse
- Resolves #5083. Added
sendAttachmentOn
style option to send attachments and text in a single activity, by @ms-jb and @compulim, in PR #5123useSendMessage
hook is updated to support sending attachments with a messageuseSendBoxAttachments
hook is added to get/set attachments in the send box
- Resolves #5081. Added
uploadAccept
anduploadMultiple
style options, by @ms-jb, in PR #5048 - Added
sendBoxMiddleware
andsendBoxToolbarMiddleware
, by @compulim, in PR #5120 - (Experimental) Added
botframework-webchat-fluent-theme
package for applying Fluent UI theme to Web Chat, by @compulim and @OEvgeny- Initial commit, in PR #5120
- Inherits Fluent CSS palette if available, in PR #5122
- New send box with Fluent look-and-feel, in PR #5122
styleOptions.maxMessageLength
to specify maximum length of the outgoing message
- Drag-and-drop file support, in PR #5122
- Added telephone keypad (DTMF keypad), in PR #5122
- Fixed
botframework-webchat-fluent-theme/package.json
to export*.d.[m]ts
and default exports, in PR #5131 - Added support of
styleOptions.hideUploadButton
, in PR #5132 - Added
styleOptions.hideTelephoneKeypadButton
and default totrue
, in PR #5132 - Fit-and-finish on suggested actions and telephone keypad, in PR #5132
- Fixed to keep telephone keypad on-screen on click, in PR #5132
- Disabled send button and hid message length when telephone keypad is shown, in PR #5136
- Added dark theme support, in PR #5138
- Added an information message to the telephone keypad, in PR #5140
- Added animation to focus indicator and pixel-perfected, in PR #5143
- Integrated focus management for send box, in PR #5150, by @OEvgeny
- Added keyboard navigation support into suggested actions, in PR #5154, by @OEvgeny
- Fixes #5166. Fixed "attach file" button in iOS Safari should looks the same as on other platforms, in PR #5167, by @compulim
- (Experimental) Added
<LocalizeString />
component which can be used to localize strings, by @OEvgeny in PR #5140 - Added
<ThemeProvider>
component to apply theme pack to Web Chat, by @compulim, in PR #5120 - Added
useMakeThumbnail
hook option to create a thumbnail from the file given, by @compulim, in PR #5123 and #5122 - Added
moduleFormat
andtranspiler
build info to<meta>
tag, in PR #5148, by @compulim - Added support of rendering HTML-in-Markdown, in PR #5161 and PR #5164, by @compulim, @beyackle2, and @OEvgeny
- Resolves #5184. Added
channelData.webChat.styleOptions.typingIndicatorDuration
to override the default typing indicator duration on a per-activity basis, by @compulim, in PR #5141 - Resolves #4876 and #4939. Added support of livestreaming, by @compulim, in PR #5141
- Fixes #5050. Fixed focus should not blur briefly after tapping on a suggested action, by @compulim, in PR #5097
- Fixes #5111. Fixed keyboard help screen to use HTML description list, by @compulim, in PR #5116
- Fixes #5080. Fixed
dateToLocaleISOString
for handling sub-hour, by @marclundgren, in PR #5114 - Fixes #5146. Fixed chat history focus indicator should not show up on tap, by @OEvgeny, in PR #5145
- Fixes type portability issues by exporting types from all exported code, in PR #5148, by @compulim
- Fixes missing exports of
useNotifications
, in PR #5148, by @compulim - Fixes suggested actions keyboard navigation skips actions after suggested actions got updated, in PR #5150, by @OEvgeny
- Fixes #5155. Fixed "Super constructor null of anonymous class is not a constructor" error in CDN bundle by bumping to
webpack@5.91.0
, in PR #5156, by @compulim
- Moved pull request validation pipeline to GitHub Actions, by @compulim, in PR #4976
- Bumped all dependencies to the latest versions, by @compulim in PR #4973, PR #5115, PR #5148, and PR #5156
- Notes: Some components/features in Adaptive Cards are in preview and not ready for production use. Web Chat does not support these components and features
- Production dependencies
- Development dependencies
@types/dom-speech-recognition@0.0.4
@types/node@20.10.3
@types/react@16.14.60
@typescript-eslint/eslint-plugin@6.13.2
@typescript-eslint/parser@6.13.2
axe-core@4.8.2
babel-jest@29.7.0
concurrently@8.2.2
esbuild@0.19.8
eslint-config-prettier@9.1.0
eslint-plugin-import@2.29.0
eslint-plugin-prettier@5.0.1
eslint@8.55.0
istanbul-lib-coverage@3.2.2
jest-image-snapshot@6.3.0
jest@29.7.0
lint-staged@15.2.0
nodemon@3.0.2
prettier@3.1.0
read-pkg-up@11.0.0
read-pkg@9.0.1
selenium-webdriver@4.15.0
typescript@5.3.2
webpack@5.91.0
- Starting from 4.16.0, Internet Explorer is no longer supported
- After more than a year of the Internet Explorer 11 officially retirement, we decided to stop supporting Internet Explorer. This will help us to bring new features to Web Chat
- 4.15.9 is the last version which supports Internet Explorer in limited fashion
useTextBoxValue
setter will no longer replace emoticon with emoji, in PR #4861
- Fixes #4865. Fixed CTRL + Z should undo correctly, by @compulim, in PR #4861
- Fixes #4863. Disable dark theme for link references until chat history has dark theme support, by @compulim, in PR #4864
- Fixes #4866. Citation modal show fill screen width on mobile device and various fit-and-finish, by @compulim, in PR #4867
- Fixes #4878.
createStore
should return type ofRedux.Store
, by @compulim, in PR #4877 - Fixes #4957. Native chevron of the accordion in citation should be hidden, by @compulim, in PR #4958
- Fixes #4870. Originator should use
claimInterpreter
instead ofReplyAction/provider
, by @compulim, in PR #4910
- Resolves #4853. Shorten URLs in link definitions UI, by @compulim, in PR #4860
- Resolves #4840. Added feedback buttons in activity status, by @compulim, in PR #4846
- Resolves #4841. Added link definitions UI in Markdown, by @compulim, in PR #4846
- Resolves #4842. Added provenance in activity status, by @compulim, in PR #4846
- Resolves #4856. Added types for
useStyleSet
, by @compulim, in PR #4857
- Fixed #4875. Replaced
mdast
with@types/mdast
, by @compulim, in PR #4882
- Fixes #4718. In high contrast mode, Adaptive Card buttons, when pushed, should highlighted properly, by @compulim, in PR #4746
- Fixes #4721 and #4726. Adaptive Cards
TextBlock
heading elements should start at level 2, by @compulim, in PR #4747 - Fixes #3699. Correcting timestamp roundoff, by @compulim, in PR #4821
- Fixes #4849. Rendering an erroneous Adaptive Cards should bail out and not throw
MutationObserver
error, by @compulim, in PR #4852
- Bumped all dependencies to the latest versions, by @compulim in PR #4843
- Production dependencies
- Development dependencies
@types/node@20.5.8
@types/react@18.2.21
@typescript-eslint/eslint-plugin@6.5.0
@typescript-eslint/parser@6.5.0
axe-core@4.7.2
babel-jest@29.6.4
babel-loader@9.1.3
chalk@5.3.0
concurrently@8.2.1
dotenv@16.3.1
esbuild@0.19.2
eslint-plugin-prettier@5.0.0
eslint-plugin-react@7.33.2
eslint@8.48.0
jest-image-snapshot@6.2.0
jest-junit@16.0.0
jest-trx-results-processor@3.0.2
lerna@6.6.2
lint-staged@14.0.1
node-fetch@2.7.0
nodemon@3.0.1
nopt@7.2.0
prettier@3.0.3
read-pkg-up@10.1.0
read-pkg@8.1.0
selenium-webdriver@4.12.0
serve@14.2.1
terser-webpack-plugin@5.3.9
typescript@5.2.2
url-search-params-polyfill@8.2.4
webpack-cli@5.1.4
webpack-stats-plugin@1.1.3
webpack@5.88.2
- When
activity.channelData['webchat:fallback-text']
is present but empty, it will no longer appliesaria-hidden
to the activity- The activity will not be narrated through live region. However, when navigating the transcript, it will be narrated as empty
- To make an activity presentational or hide from screen reader, please use
activityMiddleware
to customize the rendering
- Resolved #4643. Decoupling
botframework-directlinejs
from business logic of Web Chat for better tree-shaking, by @compulim, in PR #4645 and PR #4648 - Resolved #4650. Added automated accessibility check using
axe-core
- Add
axe-core
in end-to-end tests, by @compulim, in PR #4704 - HTML test: using
<main>
for the root container, by @compulim, in PR #4684 and PR #4704 - HTML test: changed contrast ratio in tests that use different background colors, by @compulim, in PR #4686 and PR #4704
- Added
ponyfill
prop to<ReactWebChat>
/<Composer>
andcreateStoreWithOptions
, by @compulim, in PR #4662- This is for development scenarios where fake timer is needed and will only applies to Web Chat only
- HTML test: fix accessibility issues on HTML file, by @compulim, in PR #4685
- HTML test: ensure all images has alternate text, by @compulim, in PR #4704
- Adaptive Cards: always set
role
attribute, by @compulim, in PR #4704 - Adaptive Cards: update host config to use lighter color for disabled inputs, by @compulim, in PR #4704
- Keyboard help screen: remove
<header>
container, by @compulim, in PR #4704 - Live region: added
<label>
for input fields in Adaptive Cards, by @compulim, in PR #4704
- Add
- Fixes #4557. Flipper buttons in carousels and suggested actions is now renamed to "next/previous" from "left/right", by @compulim, in PR #4646
- Fixes #4652. Keyboard help screen, activity focus traps, and chat history terminator should not be hidden behind
aria-hidden
because they are focusable, by @compulim, in PR #4659 - Fixes #4665. Updated development server with latest ESBuild API, by @compulim, in PR #4662.
- Fixes #4706. Send button and ENTER key should function after reconnected, by @compulim, in PR #4707.
- Fixes #4708. Should function properly in browsers without
setImmediate
or without passingstore
prop, by @compulim, in PR #4709.
- Bumped all dependencies to the latest versions, by @compulim in PR #4647, PR #4655, and PR #4737
- Production dependencies
- Development dependencies
@types/node@18.14.1
@types/react@18.0.28
@typescript-eslint/eslint-plugin@5.53.0
@typescript-eslint/parser@5.53.0
adm-zip@0.5.10
babel-jest@29.4.3
babel-loader@9.1.2
chalk@5.2.0
concurrently@7.6.0
core-js@3.28.0
dotenv@16.0.3
esbuild@0.17.10
eslint-config-prettier@8.6.0
eslint-plugin-react@7.32.2
eslint-plugin-security@1.7.1
eslint@8.34.0
express@4.18.2
glob@8.1.0
http-proxy-middleware@2.0.6
husky@8.0.3
jest-image-snapshot@6.1.0
jest-junit@15.0.0
jest@29.4.3
lerna@6.5.1
lint-staged@13.1.2
node-dev@8.0.0
node-fetch@2.6.9
nopt@7.0.0
prettier@2.8.4
restify@11.1.0
selenium-webdriver@4.8.1
serve-handler@6.1.5
serve@14.2.0
source-map-loader@4.0.1
typescript@4.9.5
webpack-cli@5.0.1
webpack-stats-plugin@1.1.1
webpack@5.75.0
- Sample dependencies
@azure/storage-blob@12.13.0
@babel/cli@7.21.0
@babel/core@7.21.0
@babel/preset-env@7.20.2
@babel/preset-react@7.18.6
botbuilder-dialogs@4.19.1
botbuilder@4.19.1
classnames@2.3.2
dotenv@16.0.3
eslint-config-standard@17.0.0
eslint-plugin-import@2.27.5
http-proxy-middleware@2.0.6
node-dev@8.0.0
node-fetch@2.6.9
nodemon@2.0.20
react-dom@18.2.0
react-redux@8.0.5
react-scripts@5.0.1
react@18.2.0
redux@4.2.1
restify@11.1.0
uuid@9.0.0
- Bumped Docker containers, by @compulim, in PR #4654
- Added function to emit status change telemetry event for activities, by @Erli-ms, in PR #4631
- Added ability for developers to customize Web Chat by extending the default UI without having to re-implement existing components, by @dawolff-ms, in PR #4539
- Fixes #4558. In high contrast mode, "Retry" link button should use link color as defined by CSS System Colors, by @beyackle2 in PR #4537
- Fixes #4566. For YouTube and Vimeo
<iframe>
, addsandbox="allow-same-origin allow-scripts"
, by @compulim in PR #4567 - Fixes #4561. Header title of keyboard help dialog should be the
aria-labelledby
of the dialog and close button should be the first element of the header, by @compulim in PR #4609 - Fixes #4559. Keyboard help screen should be scrollable and its close button should appear correctly in light-themed high contrast mode, by @compulim in PR #4619
- Fixes #4623. Screen reader should read error when failed to send an empty message or offline, by @compulim in PR #4637
- Updated test harness to use Selenium Hub 4.6.0 and Chrome 107, by @compulim in PR #4540
- Fixes #4501. Outgoing activities restored from chat service should be marked as sent, by @compulim in PR #4532
- Fixes #4523. Bumped Microsoft Cognitive Services Speech SDK to
microsoft-cognitiveservices-speech-sdk@1.17.0
, by @compulim in PR #4533- Also bumped
web-speech-cognitive-services@7.1.3
- Also bumped
- Card action image alt text should use
imageAltText
field and fallback totext
field, by @compulim in PR #4333 - Fixes #4472. Removed
role
attributes for notification bar and use<div>
instead of<ul>
/<li>
, by @compulim in PR #4475 - Fixes #4393. Renders
<section role="feed">
only if there are one or more activities contained within, by @beyackle2 and @compulim, in PR #4420 - Fixes #4473. Bumped
strip-ansi@6.0.1
fortest-harness
as@^7
does not support CommonJS project, by @compulim in PR #4474 - Fixes #4476. When focus on the keyboard help screen, it should focus on the close button, by @compulim in PR #4479
- Fixes #4442. Change the keyboard help screen string "Leave message" to "Exit message", by @compulim in PR #4479
- Bumped Adaptive Cards to
adaptivecards@2.11.1
, by @compulim in PR #4424 - Bumped Microsoft Cognitive Services Speech SDK to
microsoft-cognitiveservices-speech-sdk@1.23.0
, by @compulim in PR #4435- Also bumped
web-speech-cognitive-services@7.1.2
- Also bumped
- Bumped all dependencies to the latest versions, by @compulim in PR #4423 and #4435
- Production dependencies
- Development dependencies
@babel/core@7.19.1
@babel/plugin-transform-runtime@7.19.1
@babel/plugin-transform-typescript@7.19.1
@babel/preset-env@7.19.1
@babel/runtime@7.19.0
@types/node@18.7.22
@types/react@18.0.21
@typescript-eslint/eslint-plugin@5.38.0
@typescript-eslint/parser@5.38.0
babel-jest@29.0.3
concurrently@7.4.0
core-js@3.25.3
dotenv@16.0.2
esbuild@0.15.9
eslint-plugin-react@7.31.8
eslint@8.24.0
jest-image-snapshot@5.2.0
jest-junit@14.0.1
jest@29.0.3
lerna@5.5.2
nodemon@2.0.20
terser-webpack-plugin@5.3.6
typescript@4.8.3
webpack-stats-plugin@1.1.0
- Fixes #4403. Patched Unicode CLDR database which caused file upload in Polish to appear blank, by @compulim, in PR #4404
- Fixes #4412. Fixed inconsistent in
packages/support/cldr-data/package.json
, by @compulim, in PR #4411
- Bumped all dependencies to the latest versions, by @compulim in PR #4392
- Production dependencies
- Development dependencies
@babel/cli@7.18.10
@babel/core@7.18.10
@babel/plugin-proposal-class-properties@7.18.6
@babel/plugin-proposal-object-rest-spread@7.18.9
@babel/plugin-transform-runtime@7.18.10
@babel/plugin-transform-typescript@7.18.12
@babel/preset-env@7.18.10
@babel/preset-react@7.18.6
@babel/preset-typescript@7.18.6
@babel/runtime@7.18.9
@emotion/react@11.10.0
@fluentui/react@8.87.1
@types/node@18.7.1
@types/react@18.0.17
@typescript-eslint/eslint-plugin@5.33.0
@typescript-eslint/parser@5.33.0
babel-jest@28.1.3
babel-loader@8.2.5
babel-plugin-transform-inline-environment-variables@0.4.4
concurrently@7.3.0
core-js@3.24.1
dotenv@16.0.1
error-stack-parser@2.1.4
esbuild@0.15.1
eslint-plugin-prettier@4.2.1
eslint-plugin-react-hooks@4.6.0
eslint-plugin-react@7.30.1
eslint-plugin-security@1.5.0
eslint@8.21.0
express@4.18.1
http-proxy-middleware@2.0.6
husky@8.0.1
jest-environment-node@28.1.3
jest-image-snapshot@5.1.0
jest-junit@14.0.0
jest-trx-results-processor@3.0.1
jest@28.1.3
lerna@5.4.0
lint-staged@13.0.3
node-dev@7.4.3
nodemon@2.0.19
nopt@6.0.0
prettier@2.7.1
react-scripts@5.0.1
selenium-webdriver@4.4.0
serve@14.0.1
source-map-loader@4.0.0
strip-ansi@7.0.1
terser-webpack-plugin@5.3.3
typescript@4.7.4
webpack-cli@4.10.0
webpack@5.74.0
- Suggested actions is now a
role="toolbar"
and adopted roving tab index- TAB key will now land on the container, instead of individual button
- While the focus is on the container, LEFT/RIGHT arrow keys are used to select different buttons (UP/DOWN for stacked layout)
- Visual focus indicator is now two tiered. The default styling is same as the one we use in chat history
- New style options added
suggestedActionsVisualKeyboardIndicatorColor
,suggestedActionsVisualKeyboardIndicatorStyle
,suggestedActionsVisualKeyboardIndicatorWidth
- New style options added
- Suggested actions container will be unmounted when there are no suggested action button to display
- Suggested actions container is not longer a live region. The suggested action buttons will now be narrated by the chat history live region
- Published NPM packages will now include
/dist
,/lib
, and/src
folders- The
/dist
folder was previously missing from our NPM packages
- The
- The
activity.channelData.state
property is being deprecated in favor of the updatedactivity.channelData['webchat:send-status']
property. Main differences include:- Previously, we would set the
state
property to"send failed"
when the chat adapter failed to send the activity, or after passing a timeout as defined instyleOptions.sendTimeout
- The new
'webchat:send-status'
property will be set to"send failed"
when the chat adapter fails to send the activity or after passing a hardcoded timeout of 5 minutes - See PR #4362 for details
- Previously, we would set the
- Resolves #4301. Updated
Dockerfile
to support secure container supply chain, by @compulim in PR #4303 - Resolves #4317. Updated
package.json
to allowlist/dist
,/lib
,/src
, by @compulim in PR #4318 - Resolves #4322. Improved error messages for sending activities, by @compulim in PR #4362
- Resolves #4211. Added new
useSendStatusByActivityKey
hook to check the UI send status of an outgoing activity, by @compulim in PR #4362- The send status returned by this hook is designed to display different UIs that reflect the "sending", "send failed" or "sent" status of the activity
- When modifying
styleOptions.sendTimeout
prop, the send status returned by this hook may transition from"send failed"
to"sending"
, and vice versa - This is different from the send status provided by the chat adapter, namely
activity.channelData['webchat:send-status']
- Fixes #4293 and #4296. Fixed accessibility issues for suggested actions, by @compulim, in PR #4314
- Centralized live region of suggested actions into chat history live region for better live region control
- Suggested actions container is now a
role="toolbar"
and uses roving tab index for multiple suggested action
- Fixes #4319. Fixed navigation keys not working in suggested actions under IE Mode, by @compulim, in PR #4320
- Fixes #4315. Cleaned up localization strings for suggested actions, by @compulim, in PR #4323
- Fixes #4294. Screen reader should not read message twice when navigating in the chat history, by @compulim, in PR #4323
- Fixes #4295. Screen reader should not read suggested actions twice when message arrive in live region, by @compulim, in PR #4323
- Fixes #4325.
aria-keyshortcuts
should use modifier keys according toKeyboardEvent
key values spec, by @compulim, in PR #4323 - Fixes #4327. In Adaptive Cards,
TextBlock
withstyle="heading"
should havearia-level
set, by @compulim, in PR #4329 - Fixes #3949. For accessibility reasons, buttons in Adaptive Cards should be
role="button"
instead ofrole="menubar"
/role="menuitem"
, by @compulim, in PR #4263 - Fixes #4211. Screen reader should read when an activity was failed to send, by @compulim, in PR #4362, also fixed:
- The "send failed" status on the activity should show up as soon as the chat adapter failed to send the activity
- Fixes #4312.
groupActivityMiddleware
returning invalid value should not throw exceptions, by @compulim, in PR #4378. - Fixes #4386. Clicking on Adaptive Cards should not throw exception under IE11, by @compulim, in PR #4387, also fixed:
- Prop type warning should not be shown for
<ActivityRow>
- Prop type warning should not be shown for
- Added
01.getting-started/l.sharepoint-web-part
for hosting Web Chat as a SharePoint web part, in PR #4385, by @compulim
- A new
type WebChatActivity
is introduced in thebotframework-webchat-core
package- If you are previously using the
type DirectLineActivity
, you may need to move to this new type - All Web Chat APIs will use the newer
type WebChatActivity
- The new
type WebChatActivity
is a well-defined type for handling activities inside Web Chat - The existing
type DirectLineActivity
will be used solely for communicating withtype DirectLineJSBotConnection
, a.k.a.botframework-directlinejs
package
- If you are previously using the
- Fixes #4102. Fixed
cldr-data-downloader
package not working properly on Windows, by @compulim in PR #4223 - Fixes #4232. Added
blob:
to allowed protocol list for file attachment UI (<FileContent>
), by @compulim in PR #4233 - Fixes #4204. Sort using
activity.channelData['webchat:sequence-id']
and fallback to epoch time ofactivity.timestamp
, by @compulim, in PR #4203 - Fixes #4264. Fixed focus trap should leave when the activity no longer contains any tabbable elements (including elements with
aria-disabled="true"
), by @compulim in PR #4265
- Bumped all dependencies to the latest versions, by @compulim in PR #4195 and PR #4230
- Production dependencies
- Development dependencies
@babel/cli@7.17.6
@babel/core@7.17.5
@babel/plugin-proposal-class-properties@7.16.7
@babel/plugin-proposal-object-rest-spread@7.17.3
@babel/plugin-transform-runtime@7.17.0
@babel/preset-env@7.16.11
@babel/preset-react@7.16.7
@babel/preset-typescript@7.16.7
@babel/runtime@7.17.2
@emotion/react@11.8.1
@fluentui/react@8.57.0
@types/node@17.0.21
@types/react-dom@16.8.5
@types/react@17.0.39
@typescript-eslint/eslint-plugin@5.13.0
@typescript-eslint/parser@5.13.0
adm-zip@0.5.9
babel-jest@27.5.1
babel-loader@8.2.3
babel-plugin-istanbul@6.1.1
base64-arraybuffer@1.0.2
botframework-directlinejs@0.15.1
concurrently@7.0.0
core-js@3.21.1
dotenv@16.0.0
error-stack-parser@2.0.7
esbuild@0.14.24
eslint-config-prettier@8.5.0
eslint-plugin-prettier@4.0.0
eslint-plugin-react-hooks@4.3.0
eslint-plugin-react@7.29.3
eslint@8.10.0
express@4.17.3
glob@7.2.0
global-agent@3.0.0
html-webpack-plugin@5.5.0
http-proxy-middleware@2.0.3
husky@7.0.4
istanbul-lib-coverage@3.2.0
jest-environment-node@27.5.1
jest-trx-results-processor@2.2.1
jest@27.5.1
lint-staged@12.3.4
memoize-one@6.0.0
node-dev@7.1.0
nodemon@2.0.15
prettier@2.5.1
prop-types@15.8.1
read-pkg-up@9.1.0
read-pkg@7.1.0
restify@8.6.1
selenium-webdriver@4.1.1
source-map-loader@3.0.1
terser-webpack-plugin@5.3.1
typescript@4.6.2
webpack-cli@4.9.2
webpack@5.70.0
- New
Map
object polyfill is required for IE11 when using NPM version of Web Chat:Map
object polyfill is not required when using ES5 bundle of Web Chat from our CDN (webchat-es5.js
)- If you are seeing new errors while loading NPM version of Web Chat under IE11, please add a polyfill
- We recommend
core-js
package, it can be loaded byimport 'core-js/features/map'
- Our current list of required polyfills can be found in
packages/bundle/src/polyfill.ts
- Style options are introduced to send button for improved accessibility:
suggestedActionBackground
andsuggestedActionXXXBackground
are being deprecated in favor ofsuggestedActionBackgroundColor
andsuggestedActionBackgroundColorOnXXX
respectively, for consistencies when porting to other platformssuggestedActionDisabledXXX
is being renamed tosuggestedActionXXXOnDisabled
, for consistencies with other style optionssuggestedActionXXXOnActive
,suggestedActionXXXOnFocus
,suggestedActionXXXOnHover
are introduced for styling per user gesturessuggestedActionKeyboardFocusIndicatorXXX
are introduced for styling the "focus ring" when focused using a keyboard
- Adds
eslint-plugin-security
, consolidate.eslintrc.yml
at project root, and treat warnings as errors, by @compulim, in PR #4079 - Adds allowed protocol list to file attachment and OAuth card, by @compulim, in PR #4143
- Fixes #4018. When using TAB or SHIFT + TAB key to focus on the transcript, it should select the last activity, by @compulim, in PR #4035
- Fixes #4020. With or without scan mode turned on, screen reader users should be able to press ENTER to focus on interactive activity, by @compulim, in PR #4041
- Fixes #4021. For screen reader usability, suggested actions container should not render "Is empty" alt text initially, by @compulim, in PR #4041
- Fixes #4029. Added new keyboard focus indicator for suggested actions, by @compulim, in PR #4035
- New style options are introduced:
suggestedActionXXXOnActive
,suggestedActionXXXOnFocus
,suggestedActionXXXOnHover
,suggestedActionKeyboardFocusIndicatorXXX
- Style options are renamed:
suggestedActionDisabledXXX
becomesuggestedActionXXXOnDisabled
- New style options are introduced:
- Fixes #4028. Added new keyboard focus indicator for send box buttons, by @compulim, in PR #4035
- New style options are introduced:
sendBoxButtonXXXOnActive
,sendBoxButtonXXXOnFocus
,sendBoxButtonXXXOnHover
,sendBoxButtonKeyboardFocusIndicatorXXX
- New style options are introduced:
- Fixes #4015. Added
role="heading"
to titles of rich card, by @compulim, in PR #4074 - Fixes #4081. Updated typing for
StyleOptions.suggestedActionsStackedOverflow
, by @compulim, in PR #4083 - Fixes #4075. Added
box-sizing: border-box
to all descendants under Adaptive Cards, by @compulim, in PR #4084 - Fixes #4104 and #4105. Fixed invalid entry in
core/package-lock.json
, removedplayground/host
, and added script to rebase URLs inpackage-lock.json
, by @compulim, in PR #4106 - Fixes #3933, #3934, #3994 and #4019, for various accessibility improvements, by @compulim, in PR #4108
- Added a new keyboard help screen
- Reduce repetitions when reading message content and briefier readings
- Separated hints for links and interactive widgets
- Focus trap when focus is on interactive attachments or Adaptive Cards
- Using
role="feed"
/role="article"
for chat history and its messages - Always assign a message to
aria-activedescendant
for chat history - Updated verbiage from "transcript" to "chat history"
- Fixed overlapping hit zone causing clicking on bottom edge of message bubble may focus on the next activity instead
- Fixed typings of
useFocus
anduseLocalizer
- Fixes #3165 and #4094. Allowlist
aria-label
for links in Markdown and skip unrecognized attributes or invalid curly brackets, by @compulim, in PR #4095 - Fixes #4190. Recent Markdown curly bracket fix should not break IE11 due to unsupported "u" flag in
RegExp
, by @compulim, in PR #4191 - Improved importability in vanilla Webpack 4 without
babel-loader
, by @compulim, in PR #5322
- Bumped all dependencies to the latest versions, by @compulim in PR #4074 and PR #4123
- Production dependencies
- Development dependencies
@babel/cli@7.15.7
@babel/core@7.15.8
@babel/plugin-proposal-object-rest-spread@7.15.6
@babel/plugin-transform-runtime@7.15.8
@babel/preset-env@7.15.8
@babel/preset-typescript@7.15.0
@types/node@16.10.9
@types/react@17.0.29
@typescript-eslint/eslint-plugin@4.33.0
@typescript-eslint/parser@4.33.0
babel-jest@27.2.5
botbuilder@4.15.0
concurrently@6.3.0
core-js@3.18.3
esbuild@0.12.29
eslint-plugin-prettier@3.4.1
eslint-plugin-react@7.26.1
eslint@7.32.0
istanbul-lib-coverage@3.0.2
jest-environment-node@27.2.5
jest-junit@13.0.0
jest@27.2.5
node-dev@7.1.0
node-fetch@2.6.7
prettier@2.4.1
react-scripts@5.0.0
restify@8.6.0
selenium-webdriver@4.0.0
serve@13.0.2
strip-ansi@6.0.1
terser-webpack-plugin@5.2.4
webpack-cli@4.9.0
webpack@5.58.2
- Fixes #4031. Updated
05.custom-components/b.send-typing-indicator
to reply withmessage
activity, instead oftyping
activity, in PR #4063, by @compulim
- QFE: Fixes #4403. Patched Unicode CLDR database which caused file upload in Polish to appear blank, by @compulim, in PR #4406
- Resolves #4017. In samples, moved
react-scripts
todevDependencies
, in PR #4023 - Forked
cldr-data
andcldr-data-downloader
, in PR #3998- Moved source code to under
./src
folder - Moved to
fs.readFileSync()
fromrequire()
when reading JSON files - Moved to
node:fs.mkdir()
and removedmkdirp
- Moved tests from
node:assert
to Jest - Updated Unicode CLDR download folder to
/dist/
folder from project root - Moved from Grunt/JSHint to
eslint
- Upgraded from CommonJS to ES Module
- Use
read-pkg-up
to determines parentpackage.json
- In Web Chat, since we use
lerna
to run theinstall
script, we need to relax howcldr-data
read from parentpackage.json
- In Web Chat, since we use
- Moved source code to under
- Updated peer dependency of
react
to>= 16.8.6
, in PR #3996 - Bumped all dependencies to the latest versions and sample bumps, by @compulim in PR #3996, PR #3998, and PR #4023
- Production dependencies
- Development dependencies
@babel/cli@7.14.5
@babel/core@7.14.6
@babel/plugin-proposal-class-properties@7.14.5
@babel/plugin-proposal-object-rest-spread@7.14.7
@babel/plugin-transform-runtime@7.14.5
@babel/preset-env@7.14.7
@babel/preset-react@7.14.5
@babel/preset-typescript@7.14.5
@babel/runtime@7.14.6
@emotion/react@11.4.0
@fluentui/react@8.22.3
@types/node@16.3.1
@types/react-dom@17.0.9
@types/react@17.0.14
@typescript-eslint/eslint-plugin@4.28.3
@typescript-eslint/parser@4.28.3
babel-jest@27.0.6
concurrently@6.2.0
core-js@3.15.2
dotenv@10.0.0
esbuild@0.12.15
eslint-plugin-prettier@3.4.0
eslint-plugin-react@7.24.0
eslint@7.30.0
http-proxy-middleware@2.0.1
husky@7.0.1
jest-environment-node@27.0.6
jest-image-snapshot@4.5.1
jest-junit@12.2.0
jest@27.0.6
lint-staged@11.0.0
node-dev@7.0.0
nodemon@2.0.12
p-defer@4.0.0
prettier@2.3.2
sanitize-html@2.4.0
selenium-webdriver@4.0.0-beta.4
serve@12.0.0
strip-ansi@6.0.0
typescript@4.3.5
webpack@5.45.1
- Dependencies used by samples
- A new style option
scrollToEndButtonBehavior
is introduced to control when the scroll to end button should show (formerly "new messages" button):styleOptions.hideScrollToEndButton
has been deprecated. To hide the scroll to end button, setstyleOptions.scrollToEndButtonBehavior
tofalse
;styleOptions.newMessageButtonFontSize
has been renamed tostyleOptions.scrollToEndButtonFontSize
to better reflect its purpose.
- Cleanup repo URLs to point to main branch, by @corinagum, in PR #3870
- Resolves #3557 and #3736. Improved test harness and added browser pooling, by @compulim, in PR #3871
- Resolves #3788. Added
localTimestamp
andlocalTimezone
(if available) to all outgoing activities, by @compulim, in PR #3896 - Resolves #3925. Added
scrollToEndButtonBehavior
to control when the scroll to end button should show, removedhideScrollToEndButton
, and renamednewMessagesButtonFontSize
toscrollToEndButtonFontSize
, by @compulim, in PR #3926.- Values for
scrollToEndButtonBehavior
:- If unset, will maintain same behavior as previous versions, same as
"unread"
; "unread"
will show when there are any unread and offscreen messages (default);"any"
will show when there are any offscreen messages;false
will always hide the button.
- If unset, will maintain same behavior as previous versions, same as
- Added new
scrollToEndButtonMiddleware
to customize the appearance of the scroll to end button.
- Values for
- Resolves #3752. Added typings (
*.d.ts
) for all public interfaces, by @compulim, in PR #3931 and #3946 - Resolves #2316. Added blessing/priming of
AudioContext
when clicking on microphone button, by @compulim, in PR #3974
- Fixes #3810. Removes
aria-hidden
from elements that have a focusable child, by @corinagum in PR #3836 - Fixes #3811. Removes erroneous
aria-labelledby
from carousel, by @corinagum in PR #3836 - Fixes #3814. Allow carousel's scrollable content to be tabbable, by @corinagum in PR #3841
- Fixes #3834. Ensure carousel attachments are read by AT on tab focus, by @corinagum in PR #3841
- Fixes #3812. Update
adaptiveCardHostConfig
to accessible text color-contrasts, by @corinagum in PR #3853 - Fixes #3816. De-bumped Node.js engine requirement for Direct Line Speech SDK to
>= 10.14.2
from>= 12.0.0
, by @compulim in PR #3854 - Fixes #3842. Updated
husky
,lint-staged
and correspondingprecommit
scripts, by @compulim, in PR #3871 - Improved test reliability and added snapshots to console of test harness in development mode, by @compulim, in PR #3891
- Fixes #3757. IE11: Send box should not be disabled after pressing ESCAPE key in the transcript, by @compulim, in PR #3902
- Fixes #3901. IE11: SVG icons for buttons should not be focusable, by @compulim, in PR #3902
- Fixes #3825. Add
role="presentation"
to all decorative<svg>
, by @compulim, in PR #3903 - Fixes #3360 and #3615. Use
channelData['webchat:fallback-text']
field for screen reader text, before stripping Markdown fromactivity.text
field, by @compulim, in PR #3917 - Fixes #3856. Fix missing typings, by @compulim and @corinagum, in PR #3931
- Fixes #3943. Auto-scroll should skip invisible activities, such as post back or event activity, by @compulim, in PR #3945
- Fixes #3947. Adaptive Cards: all action sets (which has
role="menubar"
) must have at least 1 or morerole="menuitem"
, by @compulim, in PR #3950 - Fixes #3823 and #3899. Fix speech recognition and synthesis on Safari, by @compulim, in PR #3974
- Fixes #3977. Fix bundle not work in Internet Explorer 11 due to
p-defer
, by @compulim, in PR #3978 - Fixes #3979. Fix Direct Line Speech should work in environments without microphone access, by @compulim, in PR #3980
- Bumped all dependencies to the latest versions and sample bumps, by @compulim in PR #3831, PR #3846, PR #3917, PR #3965, and PR #3966
- Development dependencies
@azure/storage-blob@12.5.0
@babel/cli@7.13.14
@babel/core@7.13.14
@babel/plugin-proposal-async-generator-functions@7.13.8
@babel/plugin-proposal-class-properties@7.13.0
@babel/plugin-proposal-object-rest-spread@7.13.8
@babel/plugin-transform-runtime@7.13.10
@babel/preset-env@7.13.12
@babel/preset-react@7.13.13
@babel/preset-typescript@7.13.0
@babel/runtime@7.13.10
@babel/standalone@7.13.14
@fluentui/react@8.9.0
@types/node@14.14.37
@types/react@17.0.3
@typescript-eslint/eslint-plugin@4.21.0
@typescript-eslint/parser@4.21.0
abort-controller-es5@1.2.0
abort-controller@3.0.0
babel-loader@8.2.2
base64-arraybuffer@0.2.0
botbuilder-dialogs@4.12.0
botbuilder@4.12.0
classnames@2.3.1
concurrently@6.0.1
copy-webpack-plugin@6.4.1
core-js@3.10.0
cross-env@7.0.3
css-loader@5.2.0
dotenv@8.2.0
eslint-config-standard@16.0.2
eslint-plugin-import@2.22.1
eslint-plugin-node@11.1.0
eslint-plugin-promise@4.3.1
eslint-plugin-react@7.23.1
eslint-plugin-react@7.23.1
eslint-plugin-standard@5.0.0
eslint@7.23.0
event-iterator@2.0.0
global-agent@2.2.0
html-webpack-plugin@4.5.2
http-proxy-middleware@1.1.0
husky@6.0.0
jest-image-snapshot@4.4.1
lerna@4.0.0
lint-staged@10.5.4
lolex@6.0.0
math-random@2.0.1
msal@1.4.9
node-dev@6.6.0
nodemon@2.0.7
office-ui-fabric-react@7.165.2
p-defer-es5@1.2.1
p-defer@3.0.0
prettier@2.2.1
react-redux@7.2.3
react-scripts@4.0.3
redux@4.0.5
restify@8.5.1
selenium-webdriver@4.0.0-beta.2
simple-update-in@2.2.0
source-map-loader@1.1.3
string-similarity@4.0.4
style-loader@2.0.0
uuid@8.3.2
webpack-cli@4.6.0
webpack-stats-plugin@1.0.3
webpack@4.46.0
- Production dependencies
- Development dependencies
- Resolves #3693. Bumped to
microsoft-cognitiveservices-speech-sdk@1.17.0
, by @compulim, in PR #3907
- Resolves #3087. External links in Markdown will now be appended with an "open in new window" icon and accessibility label, by @compulim in PR #3817
- Resolves #2100. Add types declarations for Style Options in api bundle, by @corinagum, in PR #3818
- Bumped all dependencies to the latest versions and sample bumps, by @corinagum in PR #3805
- Development dependencies
@babel/cli@7.13.10
@babel/core@7.13.10
@babel/plugin-proposal-class-properties@7.13.0
@babel/plugin-proposal-object-rest-spread@7.13.8
@babel/plugin-transform-runtime@7.13.10
@babel/preset-env@7.13.10
@babel/preset-react@7.12.13
@babel/preset-typescript@7.13.0
@babel/runtime@7.13.10
@types/node@14.14.35
@types/react@16.9.55
@typescript-eslint/eslint-plugin@4.18.0
@typescript-eslint/parser@4.18.0
babel-jest@26.6.3
eslint-plugin-prettier@3.3.1
eslint-plugin-react-hooks@4.2.0
eslint-plugin-react@7.22.0
eslint@7.22.0
husky@4.3.0
jest-image-snapshot@4.2.0
jest-junit@12.0.0
jest-trx-results-processor@2.2.0
jest@26.6.3
lint-staged@10.5.1
lolex@6.0.0
node-dev@6.4.0
node-fetch@2.6.1
prettier@2.2.1
source-map-loader@1.1.2
terser-webpack-plugin@4.2.3
typescript@4.2.3
webpack-cli@4.2.0
webpack-stats-plugin@1.0.2
webpack@4.44.2
- Production dependencies
- Development dependencies
- Resolves #3777. Added a new
adaptiveCardsParserMaxVersion
style options for selecting the maximum supported version when parsing an Adaptive Cards, by @compulim in PR #3778
- Fixes #3632. Update reaction button sample : Add replyToId to the postActivity object, by @amal-khalaf in PR #3769
- Fixes #2343. Add sample for Direct Line tokens, by @navzam, in PR #3779
- Resolves #2745. Added new
flow
layout to suggested actions, by @compulim in PR #3641 and PR #3748 - Added new style options to customize auto-scroll, by @compulim in PR #3653
- Set
autoScrollSnapOnActivity
totrue
to pause auto-scroll after more than one activity is shown, or a number to pause after X number of activities - Set
autoScrollSnapOnPage
totrue
to pause auto-scroll when a page is filled, or a number between0
and1
to pause after % of page is filled - Set
autoScrollSnapOnActivityOffset
andautoScrollSnapOnPageOffset
to a number (in pixels) to overscroll/underscroll after the pause
- Set
- Supports multiple transcripts in a single composition, by @compulim in PR #3653
- Resolves #3368. Added new
sendBoxButtonAlignment
for button alignment in multi-line text mode, by @compulim in PR #3668 - Resolves #3666. Added support of sovereign clouds when using Direct Line Speech, by @compulim in PR #3694
- Please refer to
DIRECT_LINE_SPEECH.md
for instructions
- Please refer to
- Resolves #2996. Added transcript navigation by keyboard navigation keys, by @compulim in PR #3703
- Resolves #3703. Fixed
enterKeyHint
props warning, by @compulim in PR #3703 - Resolves #3544. Send user ID from props to chat adapter, by @timenick in PR [#3544)(#3544).
- Resolves #3562. Add button word wrap to suggested actions stacked layout, by @corinagum, in PR #3728 and #3745
- Resolves #3658. Added new
containerRole
to default style options, by @nfreear in PR #3669 - Resolves #3754. Added new
useObserveTranscriptFocus
hook, by @compulim in PR #3755 - Translation for Yue, by @compulim in PR #3749
- Fixes #3278. Update
HOOKS.md
verbiage, by @corinagum in PR #3564 - Fixes #3534. Remove 2020 deprecations, by @corinagum in PR #3564 and #3728
- Fixes #3561. Remove MyGet mentions from samples, by @corinagum in PR #3564
- Fixes #3537. Fix some carousels improperly using aria-roledescription, by @corinagum in PR #3599
- Fixes #3483. IE11 anchors fixed to open securely without 'noreferrer' or 'noopener', by @corinagum in PR #3607
- Fixes #3565. Allow strikethrough
<s>
on sanitize markdown, by @corinagum in PR #3646 - Fixes #3672. Center the icon of send box buttons vertically and horizontally, by @compulim in PR #3673
- Fixes #3683. Activities should be acknowledged when user scrolls to bottom, by @compulim in PR #3684
- Fixes #3431. Race condition between the first bot activity and first user activity should not cause the first bot activity to be delayed, by @compulim in PR #3705
- Fixes #3676. Activities without text should not generate bogus
aria-labelledby
, by @compulim in PR #3697 - Fixes #3625. Update 'no screen reader for custom activity middleware' warning and add screen reader renderer documentation to
ACCESSIBILITY.md
, by @corinagum in PR #3689 - Fixes #3453. Fixes plain text file attachments to show download link when uploaded, by @corinagum in PR #3711
- Fixes #3612. Carousel flippers in suggested actions are given extra padding, by @compulim and @Quirinevwm in PR #3704
- Fixes #3411. With Direct Line Speech, clicking on microphone button during speech recognition should no longer stop working, by @compulim in PR #3694
- Although it no locker lock up microphone, clicking on the microphone button has no effect because Direct Line Speech does not support aborting speech recognition
- Fixes #3421. With Direct Line Speech, after not able to recognize any speech, it should no longer stop working, by @compulim in PR #3694
- Fixes #3616. [Accessibility documentation] Update activity timestamp grouping to match visual UI, by @amal-khalaf in PR #3708
- Fixes #3718. Fixed
webpack.config.js
to use default settings of['browser', 'module', 'main']
and resolved issues withuuid
package in IE11, by @compulim in PR #3726 - Fixes #3622. Apply pushed button style options and
aria-pressed
on Adaptive Cards selected buttons, by @amal-khalaf in PR #3710 - Fixes #3618. Fix Adaptive Cards anchors being disabled when Adaptive Cards is obsolete, by @corinagum in PR #3687
- Fixes #3747.
aria-pressed
andaria-role
is not properly set on Adaptive Cards submit buttons, by @amal-khalaf in PR #3744 - Fixes #3750. Debump Node.js engines requirements for some packages to
12.0.0
, by @compulim in PR #3753 - Fixes #3760. Use
<ErrorBoundary>
to wrap around attachment renderer, by @compulim in PR #3761 - Fixes #3764. Added
role="group"
to the focusable transcript to enablearia-activedescendant
, by @compulim in PR #3765
- Bumped all dependencies to the latest versions, by @compulim in PR #3594, PR #3694, and PR #3544
- Development dependencies
@babel/cli@7.12.1
@babel/core@7.12.3
@babel/plugin-proposal-class-properties@7.12.1
@babel/plugin-proposal-object-rest-spread@7.12.1
@babel/plugin-transform-runtime@7.12.1
@babel/preset-env@7.12.1
@babel/preset-react@7.12.5
@babel/preset-typescript@7.12.1
@babel/runtime@7.12.5
@types/node@14.14.6
@types/react@16.9.55
@typescript-eslint/eslint-plugin@4.6.1
@typescript-eslint/parser@4.6.1
babel-jest@26.6.3
eslint-plugin-prettier@3.1.4
eslint-plugin-react-hooks@4.2.0
eslint-plugin-react@7.21.5
eslint@7.12.1
husky@4.3.0
jest-image-snapshot@4.2.0
jest-junit@12.0.0
jest-trx-results-processor@2.2.0
jest@26.6.3
lint-staged@10.5.1
lolex@6.0.0
node-dev@6.2.0
node-fetch@2.6.1
prettier@2.1.2
source-map-loader@1.1.2
terser-webpack-plugin@4.2.3
typescript@4.0.5
webpack-cli@4.2.0
webpack-stats-plugin@1.0.2
webpack@4.44.2
- Production dependencies
- Development dependencies
- Resolves #3392 Bumped Adaptive Cards to 2.5.0, by @corinagum in PR #3630
- Fixes #3473. Fix samples using activityMiddleware (from 4.10.0 breaking changes), by @corinagum in PR #3601
- Fixes #3582. Fix Disable Adaptive Cards sample, by @corinagum in PR #3687
- Fixes #3434. Dispatched event, postBack, or messageBack + activityMiddleware causes fatal error, by @amal-khalaf in PR #3671
- Fixes #3215. Fix SSO samples
window.opener.postMessage
, by @corinagum in PR #3696
- Resolves #3281. Added documentation on speech permissions for Cordova apps on Android, by @corinagum, in PR #3508
- Resolves #3316. Refactored platform-neutral APIs into the new
api
package, to be reused on React Native component, in PR #3543 by @compulim- The new layering is
core
->api
->component
(HTML-only) ->bundle
- Includes composition mode, platform-neutral React hooks, and localization resources
- Most hooks are available in the new
api
package. Some hooks are only available on the existingcomponent
package, due to their platform dependency or coupling with visual components. For example, Web Worker, 2D canvas,useMicrophoneButton*
are not available on theapi
package - Most implementations of middleware are only available in
component
package due to their coupling with visual components or platform features. Some implementations, (e.g. card action middleware and activity grouping middleware) are available onapi
package. For example:- Carousel layout and stacked layout is only available on
component
package due to their coupling with their respective visual components - For card action middleware,
imBack
,messageBack
andpostBack
actions are available onapi
package, butcall
,openUrl
and other platform-dependent actions are only available oncomponent
package
- Carousel layout and stacked layout is only available on
activityMiddleware
,attachmentMiddleware
, etc, now support arrays for multiple middleware
- The new layering is
- Resolves #3535. Add Technical Support Guide for guidance on troubleshooting information and navigating the Web Chat repository, by @corinagum, in PR #3645
- Fixes #3489. [Accessibility]: Fix AT saying 'Bot undefined said', by @corinagum in PR #3524
- Fixes #3547. [Accessibility]: Add attachment middleware for screen reader, by @compulim in PR #3548
- Fixes #3371. [Accessibility]: Add alt property for image in HeroCards, by @corinagum in PR #3541
- Fixes #3310. Add quantity, tap and text field to ReceiptCards, by @corinagum in PR #3541
- Fixes #3514. Fix PoliCheck language errors, by @corinagum in PR #3545
- Fixes #3537. [Accessibility]: Ensure
aria-roledescription
is only used on elements with implicit/explicit role based off of WAI ARIA role attributes, by @corinagum in PR #3551, #3583, and #3587 - Fixes #3431. Activities should not be delayed due to missing activity of type "typing", by @compulim in PR #3554
- Fixes #3574. Creates workaround for Cognitive Services Speech SDK 1.13.1 regarding removed support of macOS/iOS, by @compulim in PR #3576
- Fixes #3570. Adaptive Card
speak
property should be narrated by screen reader, by @compulim in PR #3573 and PR #3584 - Fixes #3571. Error box should be hidden for Adaptive Card renderer when running in production mode, by @compulim in PR #3573
- Bumped development dependency
node-fetch@2.6.1
in PR #3467 by @dependabot - Bumped Cognitive Services Speech SDK to 1.13.1, by @compulim in PR #3432
- Fixes #3526. Add info on composition mode in sample 06.d, by @corinagum in PR #3541
- To support Content Security Policy,
glamor
is being replaced bycreate-emotion
. The CSS hash and rule name is being prefixed withwebchat--css
with a random value.
- Fixes #3431. Removed delay of first activity with
replyToId
pointing to a missing activity, by @compulim in PR #3450 - Fixes #3439. Use consistent return type in default CardActionContext.getSignInUrl(), by @stevengum in PR #3459
- Fixes #3444. Make suggested actions container height styleOption flexible, by @corinagum in PR #3456
- Bumped
botframework-directlinejs@0.13.1
, by @compulim in PR #3461 - Support Content Security Policy, in PR #3443 by @compulim
- Moved from
glamor@2.20.40
tocreate-emotion@10.0.27
- Inlined assets are now using
blob:
scheme, instead ofdata:
scheme - Detect Web Worker support by loading a dummy Web Worker, instead of checking
window.MessagePort
andwindow.Worker
- Data URI used in image of attachments will be converted to URL with scheme of
blob:
- Bumped dependencies
- Moved from
- Bumped all dependencies to the latest versions, by @corinagum in PR #3380, #3442
- Development dependencies
- Root package
@babel/plugin-proposal-class-properties@7.10.4
@babel/plugin-proposal-object-rest-spread@7.11.0
@babel/plugin-transform-runtime@7.11.0
@babel/preset-env@7.11.0
@babel/preset-react@7.10.4
@babel/preset-typescript@7.10.4
@babel/runtime@7.11.2
babel-jest@26.4.0
concurrently@5.3.0
core-js@3.6.5
global-agent@2.1.12
husky@4.2.5
jest@26.2.2
jest-image-snapshot@4.1.0
jest-junit@11.1.0
jest-trx-results-processor@2.0.3
lerna@3.22.1
lint-staged@10.2.13
prettier@2.0.5
serve@11.3.2
serve-handler@6.1.3
- Removed unused package
@azure/storage-blob@12.1.0
- Other packages
@babel/cli@7.10.5
@babel/core@7.11.0
@babel/plugin-proposal-class-properties@7.10.4
@babel/plugin-proposal-object-rest-spread@7.11.0
@babel/plugin-transform-runtime@7.11.0
@babel/preset-env@7.11.0
@babel/preset-react@7.10.4
@babel/preset-typescript@7.10.4
@types/node@14.6.0
@types/react@16.9.47
@typescript-eslint/eslint-plugin@3.10.1
@typescript-eslint/parser@3.10.1
babel-jest@26.2.2
concurrently@5.3.0
copy-webpack-plugin@6.0.3
core-js@3.6.5
cross-env@7.0.2
css-loader@4.2.0
eslint-plugin-prettier@3.1.4
eslint-plugin-react-hooks@4.1.0
eslint-plugin-react@7.20.6
eslint@7.7.0
global-agent@2.1.12
globalize-compiler@1.1.1
html-webpack-plugin@4.3.0
http-proxy-middleware@1.0.5
jest@26.2.2
node-dev@5.2.0
prettier@2.1.1
pug@3.0.0
serve@11.3.2
simple-update-in@2.2.0
source-map-loader@1.0.2
terser-webpack-plugin@4.1.0
typescript@4.0.2
webpack-cli@3.3.12
webpack-stats-plugin@0.3.2
webpack@4.44.1
- Root package
- Production dependencies
@babel/plugin-proposal-async-generator-functions@7.10.5
@babel/runtime@7.11.2
@babel/standalone@7.11.0
abort-controller-es5@1.2.0
botframework-directlinejs@0.13.0
core-js@3.6.5
event-iterator@2.0.0
event-target-shim-es5@1.2.0
expect@25.5.0
globalize@1.5.0
markdown-it-attrs-es5@1.2.0
markdown-it-attrs@3.0.3
markdown-it@11.0.0
math-random@2.0.1
memoize-one@5.1.1
mime@2.4.6
on-error-resume-next@1.1.0
p-defer@3.0.0
p-defer-es5@1.2.1
react-say@2.0.2-master.ee7cd76
react-scroll-to-bottom@3.0.1-master.9e2b9d8
sanitize-html@1.27.4
simple-update-in@2.2.0
url-search-params-polyfill@8.1.0
web-speech-cognitive-services@7.0.2-master.6004e4b
whatwg-fetch@3.4.0
- Development dependencies
- Added Content Security Policy sample, by @compulim, in PR #3443
- Update
create-react-app
-based samples to resolvep-defer
as peer dependency, by @compulim, in PR #3457 - Bump
encoding@0.1.13
in06.recomposing-ui/c.smart-display
, by @compulim, in PR #3458
- Due to the complexity, we are no longer exposing
<CarouselLayout>
and<StackedLayout>
. Please use<BasicTranscript>
to render the transcript instead. - With the new activity grouping feature:
- Customized avatar cannot be wider than
styleOptions.avatarSize
. If you want to show a wider avatar, please increasestyleOptions.avatarSize
. - If customized avatar is rendering
false
, bubble will still be padded to leave a gutter for the empty customized avatar. To hide gutter, please setstyleOptions.botAvatarInitials
andstyleOptions.userAvatarInitials
to falsy.
- Customized avatar cannot be wider than
- Default bubble nub offset is set to
0
, previously"bottom"
(or-0
)- Previously, we put the bubble nub at the bottom while keeping the avatar on top. This is not consistent in the new layout.
- By default, we will group avatar per status group.
- If you want to switch back to previous behaviors, please set
styleOptions.showAvatarInGroup
totrue
.
- If you want to switch back to previous behaviors, please set
- Default
botAvatarInitials
anduserAvatarInitials
is changed toundefined
, from""
(empty string)- When the initials is
undefined
, no gutter space will be reserved for the avatar. - When the initials is
""
(empty string), gutter space will be reserved, but not avatar will be shown.
- When the initials is
useRenderActivity
hook is being deprecated, in favor of the newuseCreateActivityRenderer
hook.useRenderActivityStatus
hook is being deprecated, in favor of the newuseCreateActivityStatusRenderer
hook.useRenderAvatar
hook is being deprecated, in favor of the newuseCreateAvatarRenderer
hook.
This change will impact middleware which use downstream result.
Previously, when a middleware is called, they are passed with a single argument.
Starting from 4.10.0, multiple arguments could be passed to the middleware. All middleware should pass all arguments to the downstream middleware. This change enables future extension to the middleware pattern.
For example, a passthrough middleware was:
() => next => card => next(card)
It should become:
() => next => (...args) => next(...args)
This also applies to the render function returned by activity middleware. The previous signature was:
() => next => card => children => next(card)(children)
It should become:
() => next => (...setupArgs) => (...renderArgs) => next(...setupArgs)(...renderArgs)
Note: Please read the following section for another change in the activity middleware signature for decorators.
This change will impact activity middleware used for decoration.
Previously, when an activity middleware hid a specific activity from view, it returned a function, () => false
.
Starting in 4.10.0, if an activity needs to be hidden from the view, the middleware should return false
instead of () => false
. This change allows transcript to correctly group activities and ignore activities that are not in view.
To avoid the TypeError: x is not a function
error, all middleware should be aware that downstream middleware may return false
instead of a function.
For example, when an event activity is hidden from the view, the terminator middleware will now return false
. All decoration middleware should check if the downstream result is false
(or falsy value), and return the value as-is to upstream middleware.
Previously, a simple decorator was:
() => next => (...setupArgs) => (...renderArgs) => {
const render = next(...setupArgs);
const element = render(...renderArgs);
return element && <div>{element}</div>;
}
It should check the result from downstream middleware. If it is falsy, it should return as-is to the upstream middleware:
() => next => (...setupArgs) => {
const render = next(...setupArgs);
return render && (...renderArgs) => {
const element = render(...renderArgs);
return element && <div>{element}</div>;
};
}
- Bumped all dependencies to the latest versions, by @compulim in PR #3380, #3388, and #3418
- Development dependencies
- Root package
@babel/plugin-proposal-class-properties@7.10.4
@babel/plugin-proposal-object-rest-spread@7.11.0
@babel/plugin-transform-runtime@7.11.0
@babel/preset-env@7.11.0
@babel/preset-react@7.10.4
@babel/preset-typescript@7.10.4
@babel/runtime@7.11.0
babel-jest@26.2.2
concurrently@5.2.0
core-js@3.6.5
global-agent@2.1.12
husky@4.2.5
jest@26.2.2
jest-image-snapshot@4.1.0
jest-junit@11.1.0
jest-trx-results-processor@2.0.3
lerna@3.22.1
lint-staged@10.2.11
prettier@2.0.5
serve@11.3.2
serve-handler@6.1.3
- Removed unused package
@azure/storage-blob@12.1.0
- Other packages
@babel/cli@7.10.5
@babel/core@7.11.0
@babel/plugin-proposal-class-properties@7.10.4
@babel/plugin-proposal-object-rest-spread@7.11.0
@babel/plugin-transform-runtime@7.11.0
@babel/preset-env@7.11.0
@babel/preset-react@7.10.4
@babel/preset-typescript@7.10.4
@types/node@14.0.27
@typescript-eslint/eslint-plugin@3.8.0
@typescript-eslint/parser@3.8.0
babel-jest@26.2.2
concurrently@5.2.0
copy-webpack-plugin@6.0.3
core-js@3.6.5
cross-env@7.0.2
css-loader@4.2.0
eslint-plugin-prettier@3.1.4
eslint-plugin-react-hooks@4.0.8
eslint-plugin-react@7.20.5
eslint@7.6.0
global-agent@2.1.12
globalize-compiler@1.1.1
html-webpack-plugin@4.3.0
http-proxy-middleware@1.0.5
jest@26.2.2
node-dev@5.1.0
prettier@2.0.5
pug@3.0.0
serve@11.3.2
simple-update-in@2.2.0
source-map-loader@1.0.1
terser-webpack-plugin@3.1.0
typescript@3.9.7
webpack-cli@3.3.12
webpack-stats-plugin@0.3.2
webpack@4.44.1
- Root package
- Production dependencies
@babel/plugin-proposal-async-generator-functions@7.10.5
@babel/runtime@7.11.0
@babel/standalone@7.11.0
abort-controller-es5@1.2.0
botframework-directlinejs@0.13.0
core-js@3.6.5
event-iterator@2.0.0
event-target-shim-es5@1.2.0
expect@25.5.0
globalize@1.5.0
markdown-it-attrs-es5@1.2.0
markdown-it-attrs@3.0.3
markdown-it@11.0.0
math-random@2.0.0
memoize-one@5.1.1
on-error-resume-next@1.1.0
p-defer-es5@1.2.1
react-say@2.0.1
sanitize-html@1.27.2
simple-update-in@2.2.0
url-search-params-polyfill@8.1.0
web-speech-cognitive-services@7.0.1
whatwg-fetch@3.2.0
- Development dependencies
- Resolves #3250. Added activity grouping feature, by @compulim, in PR #3365
- Resolves #3354. Added access key (ALT + SHIFT + A for Windows and CTRL + OPTION + A for Mac) to suggested actions, by @compulim, in PR #3367
- Resolves #3247. Support activity ID on
useObserveScrollPosition
anduseScrollTo
hook, by @compulim, in PR #3372 - Added support for Redux DevTools, by @tpdewolf and @compulim, in PR #3277
- Resolves #3249. Convert typed emoticons into Emoji, by @corinagum and @compulim, in PR #3405
- Fixes #2675. Added alt text to images in suggested actions, by @compulim in PR #3375
- Fixes #3383. Fixed notification toast should not break when most fields are
undefined
, by @compulim in PR #3384
- Fixes #2828. Updated
04.api/h.clear-after-idle
sample, by @compulim, in PR #3376 - Added custom Emoji set sample, by @corinagum, in PR #3405
- Resolves #3182. Added stacked suggested actions height properties, by @corinagum, in PR #3235
- Localized strings in Cantonese (
yue
), by @compulim, in PR #3289
- Fixes #3265. Fix styling specificity regression on microphone button, by @corinagum in PR #3276
- Fixes #3279. Fix relative timestamp errored out when showing a time before yesterday, by @compulim in PR #3282
- Fixes #3236, by @compulim in PR #3287
- Isolated screen reader only live region for incoming activities and added a new
<ScreenReaderActivity>
component - Removed screen reader text for activities outside of live region, including
<CarouselFilmstrip>
,<StackedLayout>
,<TextContent>
, and<Timestamp>
- Updated some accessibility texts
- Rectified activities render order by delaying activities with
replyToId
that reference an activity which is not ACK-ed, for up to 5 seconds - Disabled widgets will have
tabindex="-1"
set, instead ofdisabled
attribute - Remove
tabindex="-1"
from Adaptive Cards container - Hide activities of type
invoke
- Isolated screen reader only live region for incoming activities and added a new
- Fixes #3294. Fix blank screen on missing middlewares, by @compulim in PR #3295
- Fixes #3297. Fix
className
prop is not honored in<ReactWebChat>
, by @compulim in PR #3300
- Resolves #3218 and #2811. Adds documentation on reconnecting to a conversation in minimizable sample, by @corinagum, in PR #3239
- Resolves #2939. Sample for activity grouping, by @compulim, in PR #3415
- Affecting Adaptive Cards, legacy cards and suggested actions
- For
openUrl
card action, we are now allow-listing the URL scheme using the same allow list from the default Markdown + sanitize engine, which includesdata
,http
,https
,ftp
,mailto
,sip
, andtel
- To allow-list a different set of URL schemes, please implement the card action middleware to override this behavior
- For
- Resolves #3205. Added Direct Line App Service Extension protocol, by @compulim in PR #3206
- Resolves #3225. Support allowed scheme with
openUrl
card action, by @compulim in PR #3226 - Resolves #3252. Added
useObserveScrollPosition
anduseScrollTo
hooks, by @compulim in PR #3268 - Resolves #3271. Added composition mode, which splits up
<ReactWebChat>
into<Composer>
and<BasicWebChat>
, by @compulim in PR #3268
- Fixes #1340. Card container should not be focusable if they do not have
tapAction
, by @compulim in PR #3193 - Fixed #3196. Cards with
tapAction
should be executable by ENTER or SPACEBAR key, by @compulim in PR #3197 - Fixed #3203. "New messages" button should be narrated by assistive technology, by @compulim in PR #3204
- Fixed #3217. Make sure
rel="noopener noreferrer
is not sanitized, by @compulim in PR #3220 - Fixed #3223. Tap an
openUrl
card action should open URL in a new tab withnoopener noreferrer
set, by @compulim in PR #3224
- Bumped Adaptive Cards dependencies, by @compulim in PR #3193
- Bumped dependencies due to a bug in Babel and Node.js, by @compulim in PR #3177
- Development dependencies
- Production dependencies
- Updated localization strings for Estonian (Estonia) (
et-EE
), by @LiweiMa in PR #3183 - Bumped
botframework-directlinejs@0.12.0
, by @compulim in PR #3206
- Resolves #3205. Added Direct Line App Service Extension chat adapter sample, by @compulim in PR #3206
- Resolves #3271. Added enable composition mode sample, by @compulim in PR #3268
- Resolves #3252. Added save and restore scroll position sample, by @compulim in PR #3268
- Resolves #3271. Updated post activity event sample to use composition mode, by @compulim in PR #3268
- Resolves #2897. Moved from JUnit to VSTest reporter with file attachments, by @compulim in PR #2990
- Added
aria-label
attribute support for default Markdown engine, by @patniko in PR #3022 - Resolves #2969. Support sovereign cloud for Cognitive Services Speech Services, by @compulim in PR #3040
- Resolves #2481. Support selecting different audio input devices for Cognitive Services Speech Services, by @compulim in PR #3079
- Resolves #2850. Added new
useFocus
hook and deprecatinguseFocusSendBox
hook, by @compulim in PR #3123- Modify
setFocus
argument ofuseTextBoxSubmit
to supportmain
andsendBoxWithoutKeyboard
- Modify
- Fixes #1427. Support
disabled
prop and addedactionPerformedClassName
in Adaptive Card and other legacy cards, by @compulim in PR #3150
- Fixes #2989. Fix
observeOnce
to use ES Observable call pattern, by @compulim in PR #2993 - Fixes #3024. Using bridge package
markdown-it-attrs-es5
for consumingmarkdown-it-attrs
for IE11, by @compulim in PR #3025 - Fixes #2818. Fix user ID is not set when passing to embed as query parameter, by @p-nagpal in PR #3031
- Fixes #3026. Fix link
rel
attribute in therenderMarkdown
function, by @tdurnford in PR #3033 - Fixes #2933. Fix
text
should not be ignored inmessageBack
action in hero card, by @geea-develop and @compulim in PR #3003 - Fixes #2562. Fix timestamps should not stop updating, by @compulim in PR #3066
- Fixes #2953. Direct Line Speech should not synthesize when the
speak
property is falsy, by @compulim in PR #3059 - Fixes #2876.
messageBack
andpostBack
should send even if bothtext
andvalue
is falsy orundefined
, by @compulim in PR #3120 - Fixes #2668. Disable Web Audio on insecure connections, by @compulim in PR #3079
- Fixes #2850. After click suggested action, should focus to send box without keyboard, by @compulim in PR #3123
- Fixes #3133. Associate ARIA labels with buttons in hero card and Adaptive Cards, by @compulim in PR #3146.
- Remove browser-based detection from
<ScreenReaderText>
because it is no longer needed. - After stripping Markdown syntax for accessibility labels, cache the result to improve rendering performance.
- Skip stripping Markdown for non-Markdown text content.
- Remove browser-based detection from
- Fixes #3155. Patch incoming activities with null fields, by @compulim in PR #3154
- Fixes #2669 and #3136. The "New messages" button will be accessible through TAB key, inbetween the last read and first unread activity, by @compulim in PR #3150.
- After the "New message" button is clicked, focus will be moved to the first interactive UI of unread activity or the send box.
- Fixes #3135. If the current widget is disabled, it will keep focus until the next TAB key is pressed, by @compulim in PR #3150
- Bumped all dependencies to the latest versions, by @compulim in PR #2985, #3012 and #3150
- Development dependencies
- Root package
@azure/storage-blob@12.1.0
@babel/plugin-proposal-class-properties@7.8.3
@babel/plugin-proposal-object-rest-spread@7.8.3
@babel/plugin-transform-runtime@7.8.3
@babel/preset-env@7.8.7
@babel/preset-react@7.8.3
@babel/preset-typescript@7.8.3
@babel/runtime@7.8.7
babel-jest@25.1.0
concurrently@5.1.0
core-js@3.6.4
cross-env@7.0.2
get-port@5.1.1
husky@4.2.3
jest@25.1.0
jest-image-snapshot@2.12.0
lerna@3.20.2
lint-staged@10.1.1
selenium-webdriver@4.0.0-alpha.7
- Other packages
@babel/core@7.8.7
@babel/preset-env@7.8.7
babel-jest@25.1.0
babel-plugin-istanbul@6.0.0
concurrently@5.1.0
eslint-plugin-prettier@3.1.2
eslint-plugin-react-hooks@2.5.0
eslint-plugin-react@7.18.3
eslint@6.8.0
terser-webpack-plugin@2.3.5
typescript@3.8.3
webpack-cli@3.3.11
webpack-stats-plugin@0.3.1
webpack@4.42.0
- Root package
- Production dependencies
- Development dependencies
- Bumped Chrome Docker image to
3.141.59-zirconium
(Chrome 80.0.3987.106), by @compulim in PR #2992 - Added
4.8.0
toembed/servicingPlan.json
, by @compulim in PR #2986 - Bumped
microsoft-cognitiveservices-speech-sdk@1.10.1
andweb-speech-cognitive-services@6.1.0
, by @compulim in PR #3040 - Resolved #2886 and #2987, converged all references of
microsoft-cognitiveservices-speech-sdk
to reduce footprint, by @compulim in PR #3079
- Resolves #2806, added Single sign-on with On Behalf Of Token Authentication sample, by @tdurnford in #2865
- Resolves #2481, added selectable audio input device sample, by @compulim in PR #3079
- Resolves #1427, added disable cards after submission sample, by @compulim in PR #3150
- Fixes #3075. Fix usability issues around accessibility, by @compulim in PR #3076
- Fix timestamp should not be narrated more than once.
- Associate the activity text with its attachments, by adding a
role="region"
to the activity DOM element.
- Fixes #3074. Keep
props.locale
when sending to the bot, by @compulim in PR #3095 - Fixes #3096. Use
<ScreenReaderText>
instead ofaria-label
for message bubbles, by @compulim in PR #3097
- Localization
locale
prop:zh-YUE
has been renamed toyue
to conform with Unicode standard.zh-YUE
will continue to work with warnings- Most strings have been validated and retranslated by the Microsoft localization team, with the exception of English (US), Egyptian Arabic, Jordan Arabic, and Chinese Yue
- If the new strings are undesirable, please use the
overideLocalizedStrings
prop for customization - String IDs have been refreshed and now use a standard format
- If the new strings are undesirable, please use the
useLocalize
anduseLocalizeDate
is deprecated. Please useuseLocalizer
anduseDateFormatter
instead
- Customizable typing indicator: data and hook related to typing indicator are being revamped in PR #2912
lastTypingAt
reducer is deprecated, usetyping
instead. The newer reducer contains typing indicator from the useruseLastTypingAt()
hook is deprecated, useuseActiveTyping(duration?: number)
instead. For all typing information, passInfinity
toduration
argument
- Customizable activity status: new
nextVisibleActivity
to control activity status visibility- Previously, we use
timestampClassName
to control if the activity should show or hide timestamp. ThetimestampClassName
was added as aclass
attribute the DOM element which contains the timestamp - Today,
activity
andnextVisibleActivity
are passed to the middleware, so theactivityRendererMiddleware
can decide whether the timestamp should be shown or not. For example, developers can group timestamp based on activity type
- Previously, we use
- Resolves #2753. Added support for updating an activity by the ID, by @compulim in PR #2825
- Added custom hooks -
useTimer
anduseIntervalSince
- to replace the headlessTimer
component, by @tdurnford, in PR #2771 - Resolves #2720, added customizable activity status using
activityStatusMiddleware
props, by @compulim, in PR #2788 - Added default
onError
prop to theDictation
component, by @tonyanziano, in PR #2866 - Resolves #1976. Added RTL support with localization for Hebrew and Arabic, by @corinagum, in PR #2890
- Resolves #2755. Added notification system and toast UI, by @compulim, in PR #2883
- Please read this article on how to use notification
- Slow connection timer can now be set using
styleOptions.slowConnectionAfter
(in milliseconds)
- Resolves #2871. Moved typing indicator to transcript, by @compulim, in PR #2883
- Resolves #2756. Improved localizability and add override support for localized strings, by @compulim in PR #2894
- Will be translated into 44 languages, plus 2 community-contributed translations
- For details, please read the documentation on the localization
- Resolves #2213. Added customization for typing activity, by @compulim, in PR #2912
- Resolves #2754. Added telemetry system, by @compulim, in PR #2922
- Resolves #2857. Added the ability to customize the avatar on a per activity basis, by @compulim, in PR #2943
- Resolves #2944. Updated Azure locale mapping in embed page, by @compulim in PR #2965
- Fixes #2611. Fix sample 21: hooks errors, by @corinagum in PR #2740
- Fixes #2609. Fix sample 12: minimizable button is causing another reconnect on restore, by @compulim in PR #2758
- Fixes #2773. Import ES5 version of the following bundles, by @compulim in PR #2774
- Fixes the following issues and improves test reliability, by @compulim in PR #2777
- Fixes #2612. Wait until language change
- Fixes #2653. Scroll-to-bottom check will do 5 consecutive checks to determine stickiness.
- Fixes #2691. Wait until button is shown/hid before taking screenshot
- Fixes #2737. Use
driver.wait
for conditions - Fixes #2776. Wait until button is shown/hid before taking screenshot
- Use a new timeout
fetchImage
for images
- Fixes #2780. Added the
tel
protocol to theallowedSchema
in thesanitize-html
options, by @tdurnford in PR #2787 - Fixes #2747. Moved
Timestamp
into theSendStatus
component and removed theTimestamp
style set, by @tdurnford in PR #2786 - Fixes #2647. Update the
CroppedImage
componentPropType
, by @tdurnford in PR #2795 - Fixes #2794. Fix change locale sample, by @corinagum in PR #2798
- Fixes #2510. Host hybrid-react and clear-after-idle samples, by @corinagum in PR #2798
- Fixes #2772. Updated Adaptive Cards HostConfig to include container styles, by @tdurnford in PR #2810
- Fixes #2145. Updated Adaptive Cards styles to include action styles, by @tdurnford in PR #2810
- Fixes #2459. Updated Cognitive Services Speech Services to use latest fetch credentials signature, by @compulim in PR #2740
- Fixes #1673. Configured suggested action and carousel flippers to blur on click, by @tdunford in PR #2801
- Fixes #2822. Fixed
credentials
should returnauthorizationToken
andsubscriptionKey
as string and allow empty LUIS reference grammar ID, by @compulim in PR #2824 - Fixes #2751. Move documentation to docs folder, by @corinagum in PR #2832
- Fixes #2838. Fixed
concatMiddleware
should allow any middleware to call its downstream middleware twice, by @compulim in PR #2839 - Fixes #2864. Replaced
DownloadAttachment
andUploadAttachment
withFileAttachment
, which shows the download link and icon if the attachment contains thecontentUrl
, by @compulim in PR #2868 - Fixes #2877. Updated Cognitive Services Speech Services samples to use both pre-4.8 and 4.8 API signature, by @compulim in PR #2916
- Fixes #2757. New message indicator should only show up for new messages, by @compulim in PR #2915
- Fixes #2945. Toast should not overlap with each other, by @compulim in PR #2952
- Fixes #2946. Updated JSON filenames for localization strings, by @compulim in PR #2949
- Fixes #2560. Bumped to
react-dictate-button@1.2.2
to workaround a bug from Angular/zone.js, by @compulim in PR #2960 - Fixes #2923. Added
download
attribute to file attachment (<FileContent>
), by @compulim in PR #2963 - Fixes #2904. Fixed border radius when rendering bubble nub in RTL, by @compulim in PR #2943
- Fixes #2966. Collapsed toast should show at most 2 lines of text, by @compulim in PR #2967
- Fixes #2941, #2921, and #2948. Update documentation and fix redux sample, by @corinagum in PR #2968
- Fixes #2972. Compatibility fix for IE11, by @compulim in PR #2973
- Fixes #2977.
sr-Cyrl
andsr-Latn
should display Serbian texts, by @compulim in PR #2978 - Fixes #2979. Lock
microsoft-cognitiveservices-speech-sdk
to1.8.1
, by @compulim in PR #2980
- Bumped all dependencies to latest versions, by @corinagum in PR #2740
- Development dependencies
- Root package
@babel/plugin-proposal-class-properties@7.8.3
@babel/plugin-proposal-object-rest-spread@7.8.3
@babel/plugin-transform-runtime@7.8.3
@babel/preset-env@7.8.4
@babel/preset-react@7.8.3
@babel/preset-typescript@7.8.3
@babel/runtime@7.8.4
core-js@3.5.0
coveralls@3.0.9
husky@3.1.0
jest-image-snapshot@2.11.1
lerna@3.19.0
lint-staged@9.5.0
- Other packages
@babel/cli@7.8.4
@babel/core@7.8.4
@babel/plugin-proposal-class-properties@7.8.3
@babel/plugin-proposal-object-rest-spread@7.8.3
@babel/plugin-transform-runtime@7.8.3
@babel/preset-env@7.8.4
@babel/preset-react@7.8.3
@babel/preset-typescript@7.8.3
@types/node@12.12.18
@types/react@16.8.25
@typescript-eslint/eslint-plugin@2.12.0
@typescript-eslint/parser@2.12.0
copy-webpack-plugin@5.1.1
eslint-plugin-react-hooks@2.3.0
eslint-plugin-react@7.17.0
eslint@6.7.2
http-proxy-middleware@0.20.0
terser-webpack-plugin@2.3.0
typescript@3.7.3
webpack@4.41.3
- Root package
- Production dependencies
core
math-random@1.0.4
bundle
@babel/runtime@7.8.4
core-js@3.5.0
sanitize-html@1.20.0
component
sanitize-html@1.20.1
embed
@babel/runtime@7.8.4
core-js@3.5.0
- Development dependencies
- Resolves #2748, updated build scripts and CI pipeline, by @compulim, in PR #2767
component
: Bumpsreact-film@2.0.2
, by @tdurnford in PR #2801- Removes
sendTyping
and deprecation notes in PR #2845, by @corinagum, in PR #2918 component
: Bumpsreact-dictate-button@1.2.2
, by @compulim in PR #2960
- Bump samples to Web Chat 4.7.0, by @compulim in PR #2726
- Resolves #2641. Reorganize Web Chat samples, by @corinagum, in PR #2762
- Resolves #2755, added "how to use notification and customize the toast UI" sample, by @compulim, in PR #2883
- Resolves #2213. Added Customize Typing Indicator Demo, by @compulim, in PR #2912
- Resolves #2754. Added telemetry collection using Azure Application Insights and telemetry collection using Google Analytics, by @compulim, in PR #2922
- Resolves #2857. Added Customize Avatar Demo, by @compulim, in PR #2943
- Moved
core-js
from dev dependencies to dependencies inbotframework-directlinespeech-sdk
package, by @tonyanziano, in PR #2727
adaptiveCardHostConfig
is being renamed toadaptiveCardsHostConfig
- If you are using the deprecated
adaptiveCardHostConfig
, we will rename it automatically
- If you are using the deprecated
- Resolves #2539, added React hooks for customization, by @compulim, in the following PRs:
- PR #2540:
useActivities
,useReferenceGrammarID
,useSendBoxShowInterims
- PR #2541:
useStyleOptions
,useStyleSet
- PR #2542:
useLanguage
,useLocalize
,useLocalizeDate
- PR #2543:
useAdaptiveCardsHostConfig
,useAdaptiveCardsPackage
,useRenderMarkdownAsHTML
- PR #2544:
useAvatarForBot
,useAvatarForUser
- PR #2547:
useEmitTypingIndicator
,usePeformCardAction
,usePostActivity
,useSendEvent
,useSendFiles
,useSendMessage
,useSendMessageBack
,useSendPostBack
- PR #2548:
useDisabled
- PR #2549:
useSuggestedActions
- PR #2550:
useConnectivityStatus
,useGroupTimestamp
,useTimeoutForSend
,useUserID
,useUsername
- PR #2551:
useLastTypingAt
,useSendTypingIndicator
,useTypingIndicator
- PR #2552:
useFocusSendBox
,useScrollToEnd
,useSendBoxValue
,useSubmitSendBox
,useTextBoxSubmit
,useTextBoxValue
- PR #2553:
useDictateInterims
,useDictateState
,useGrammars
,useMarkActivityAsSpoken
,useMicrophoneButton
,useShouldSpeakIncomingActivity
,useStartDictate
,useStopDictate
,useVoiceSelector
,useWebSpeechPonyfill
- PR #2554:
useRenderActivity
,useRenderAttachment
- PR #2644: Added
internal/useWebChatUIContext
for cleaner code - PR #2652: Update samples to use hooks
- PR #2540:
- Bring your own Adaptive Cards package by specifying
adaptiveCardsPackage
prop, by @compulim in PR #2543 - Fixes #2597. Modify
watch
script tostart
and addtableflip
script for throwingnode_modules
, by @corinagum in PR #2598 - Adds Arabic Language Support, by @midineo, in PR #2593
- Adds
AdaptiveCardsComposer
andAdaptiveCardsContext
for composability for Adaptive Cards, by @compulim, in PR #2648 - Adds Direct Line Speech support, by @compulim in PR #2621
- Adds
microsoft-cognitiveservices-sdk@1.8.1
, in PR #2704
- Adds
- Fixes #2692. Rename sample 17 to 17.a, by @corinagum in PR #2695
- Fixes #2565. Fixed Adaptive Card host config should generate from style options with default options merged, by @compulim in PR #2566
- Resolves #2337. Remove Cognitive Services Preview warning, by @corinagum in PR #2578
- Fixes #2559. De-bump remark and strip-markdown, by @corinagum in PR #2576
- Fixes #2512. Adds check to ensure Adaptive Card's content is an Object, by @tdurnford in PR #2590
- Fixes #1780, #2277, and #2285. Make Suggested Actions accessible, Fix Markdown card in carousel being read multiple times, and label widgets of Connectivity Status and Suggested Actions containers, by @corinagum in PR #2613
- Fixes #2608. Focus will return to sendbox after clicking New Messages or a Suggested Actions button, by @corinagum in PR #2628
- Resolves #2597. Modify
watch
script tostart
and addtableflip
script for throwingnode_modules
, by @corinagum in PR #2598 - Resolves #1835. Adds
suggestedActionLayout
todefaultStyleOptions
, by @spyip, in PR #2596 - Resolves #2331. Updated timer to use React Hooks, by @spyip in PR #2546
- Resolves #2620. Adds Chinese localization files, by @spyip in PR #2631
- Fixes #2639. Fix passed in prop time from string to boolean, by @corinagum in PR #2640
component
: Updated timer to use functional component, by @spyip in PR #2546- Fixes #2651. Add
ends-with
string module to ES5 bundle, by @corinagum in PR #2654 - Fixes #2658. Fix rendering of markdown images in IE11, by @corinagum in PR #2659
- Fixes #2662 and #2666. Fix various issues related to Direct Line Speech, by @compulim in PR #2671
- Added triple-buffering to reduce pops/cracks.
- Enable Safari by upsampling to 48000 Hz.
- Support detailed output format on Web Chat side.
- Fixes #2700. Enable
<SayComposer>
and Adaptive Cards in recompose story, in PR #2649- Moved
<SayComposer>
from<BasicTranscript>
to<Composer>
- Moved WebSpeechPonyfill patching code from
<BasicTranscript>
to<Composer>
- Moved
- Fixes #2699. Disable speech recognition and synthesis when using Direct Line Speech under IE11, by @compulim, in PR #2649
- Fixes #2709. Reduce wasted render of activities by memoizing partial result of
<BasicTranscript>
, by @compulim in PR #2710 - Fixes #2710. Suggested actions container should persist for AT, by @corinagum in PR #2710
- Fixes #2718. Add
Object.is
polyfill for IE11, by @compulim in PR #2719 - Fixes #2723. Fix
renderMarkdown
should not be called if it isundefined
in minimal bundle, by @compulim in PR #2724 - Fixes #2655. "Taking longer than usual to connect" should not show up after reconnect succeeded, by @curiousite and @compulim in PR #2656
- Fixes #2942. Fix typing indicator should not show up for the user, by @compulim in PR #2950
- Bumped all dependencies to latest version, by @compulim, in PR #2533 and PR #2621
- Development dependencies
- Root package
@azure/storage-blob@12.0.0
@babel/plugin-proposal-class-properties@7.5.5
@babel/plugin-proposal-object-rest-spread@7.6.2
@babel/plugin-transform-runtime@7.6.2
@babel/preset-env@7.6.3
@babel/preset-react@7.6.3
@babel/preset-typescript@7.6.0
@babel/runtime@7.6.3
babel-jest@24.9.0
core-js@3.3.6
coveralls@3.0.7
husky@3.0.9
jest-image-snapshot@2.11.0
jest@24.9.0
lerna@3.18.3
lint-staged@9.4.2
selenium-webdriver@4.0.0-alpha.5
serve-handler@6.1.2
- Other packages
@babel/cli@7.6.4
@babel/core@7.6.4
@babel/plugin-proposal-class-properties@7.5.5
@babel/plugin-proposal-object-rest-spread@7.6.2
@babel/plugin-transform-runtime@7.6.2
@babel/preset-env@7.6.3
@babel/preset-react@7.6.3
@babel/preset-typescript@7.6.0
@types/node@12.12.3
@types/react@16.9.11
@typescript-eslint/eslint-plugin@2.6.0
@typescript-eslint/parser@2.6.0
babel-plugin-istanbul@5.2.0
concurrently@5.0.0
copy-webpack-plugin@5.0.4
eslint-plugin-prettier@3.1.1
eslint-plugin-react-hooks@2.2.0
eslint-plugin-react@7.16.0
eslint@6.6.0
http-proxy-middleware@0.20.0
jest@24.9.0
terser-webpack-plugin@2.2.1
typescript@3.6.4
webpack-cli@3.3.10
webpack@4.41.2
- Root package
- Production dependencies
core
@babel/runtime@7.6.3
jsonwebtoken@8.5.1
math-random
redux-saga@1.1.1
simple-update-in@2.1.1
bundle
@babel/runtime@7.6.3
core-js@3.3.6
markdown-it@10.0.0
memoize-one@5.1.1
sanitize-html@1.19.0
url-search-params-polyfill@7.0.0
component
bytes@3.1.0
memoize-one@5.1.1
react-dictate-button@1.2.1
react-redux@7.1.1
remark@11.0.1
sanitize-html@1.20.1
simple-update-in@2.1.1
strip-markdown@3.1.1
embed
@babel/runtime@7.6.3
core-js@3.3.6
- Development dependencies
component
: Bumpsadaptivecards@1.2.3
, by @corinagum in PR #2523- Bumps Chrome in Docker to 78.0.3904.70, by @spyip in PR #2545
bundle
: Webpack will now usewebpack-stats-plugin
instead ofwebpack-visualizer-plugin
, by @compulim in PR #2584- This will fix #2583 by not bringing in transient dependency of React
- To view the bundle stats, browse to https://chrisbateman.github.io/webpack-visualizer/ and drop the file
/packages/bundle/dist/stats.json
- Resolves #2674. Update embed docs, by @corinagum, in PR #2696
- Clear Conversation After Idle, by @tdurnford, in PR #2375
- Smart Display, by @compulim, in PR #2649
- We will no longer include
react
andreact-dom
in our NPM package, instead, we will requires peer dependencies ofreact@^16.8.6
andreact-dom@^16.8.6
*
: Bumps all dev dependencies to latest version, by @compulim, in PR #2182 and PR #2308*
: Bumps@babel/runtime@7.5.4
, by @compulim, in PR #2182*
: Bumps Docker container for headless Chrome toselenium/standalone-chrome:3.141.59-radium
, by @compulim, in PR #2182*
: Moves frombabel-plugin-version-transform
tobabel-plugin-transform-inline-environment-variables
, by @compulim, in PR #2182*
: Bumps ESLint and related dependencies to latest version, by @compulim, in PR #2185*
: Bumps React, Redux and their related dependencies to latest version, by @compulim, in PR #2184*
: Bumpslodash-*
(https://www.npmjs.com/package/lodash), by @compulim, in PR #2199- Bumps
web-speech-cognitive-services@4.0.1-master.6b2b9e3
, by @compulim in PR #2246, PR #2274, and PR #2338 - Fix for React hooks constraints: both app and component must share the same reference of
react
andreact-dom
, in PR #2274/
: Installreact
andreact-dom
todevDependencies
bundle
: Movereact
andreact-dom
fromdependencies
topeerDependencies
component
: Removereact
andreact-dom
fromdevDependencies
playground
: Removereact
andreact-dom
fromdependencies
samples/*
: Move to production version of Web Chat, and bump toreact@16.8.6
andreact-dom@16.8.6
- Moved the typing indicator to the send box and removed the typing indicator logic from the sagas, by @tdurnford, in PR #2321
component
: MoveComposer
to React hooks and functional components, by @compulim, in PR #2308component
: Fix #1818 Move to functional components by @corinagum, in PR #2322- Fix #2292. Added function to select voice to props,
selectVoice()
, by @compulim, in PR #2338 - Bumping dependencies, by @compulim, in PR #2500
*
:web-speech-cognitive-services@5.0.1
bundle
:botframework-directlinejs@0.11.6
component
:react-film@1.3.0
- Fixes #2328. Updating submitSendBoxSaga.js to send sendBoxValue.trim(), by @jimmyjames177414 in PR #2331
- Fixes #2160. Clear suggested actions after clicking on a suggested actions of type
openUrl
, by @tdurnford in PR #2190 - Fixes #1954. Estimate clock skew and adjust timestamp for outgoing activity, by @compulim in PR #2208
- Fixes #2240. Fix microphone button should be re-enabled after error, by @compulim in PR #2241
- Fixes #2250. Fix React warnings related prop types, by @compulim in PR #2253
- Fixes #2245. Fix speech synthesis not working on Safari by priming the engine on the first microphone button click, by @compulim in PR #2246
- Fixes #1514. Added reference grammar ID when using Cognitive Services Speech Services, by @compulim in PR #2246
- Fixes #1515. Added dynamic phrases when using Cognitive Services Speech Services, by @compulim in PR #2246
- Fixes #2273. Add
ScreenReaderText
component, by @corinagum in PR #2278 - Fixes #2231. Fallback to English (US) if date time formatting failed, by @compulim in PR #2286
- Fixes #2298. Speech synthesize errors to be ignored, by @compulim in PR #2300
- Fixes #2243. Fixed sagas to correctly mark activities with speaking attachments, by @tdurnford in PR #2320
- Fixes #2365. Fix Adaptive Card
pushButton
appearance on Chrome, by @corinagum in PR #2382 - Fixes #2379. Speech synthesis can be configured off by passing
null
, by @compulim in PR #2408 - Fixes #2418. Connectivity status should not waste-render every 400 ms, by @compulim in PR #2419
- Fixes #2415 and #2416. Fix receipt card rendering, by @compulim in PR #2417
- Fixes #2415 and #2416. Fix Adaptive Cards cannot be disabled on-the-fly, by @compulim in PR #2417
- Fixes #2360. Timestamp should update on language change, by @compulim in PR #2414
- Fixes #2428. Should interrupt speech synthesis after microphone button is clicked, by @compulim in PR #2429
- Fixes #2435. Fix microphone button getting stuck on voice-triggered expecting input hint without a speech synthesis engine, by @compulim in PR #2445
- Fixes #2472. Update samples to use repo's version of React, by @corinagum in PR #2478
- Fixes #2473. Fix samples 13 using wrong region for Speech Services credentials, by @compulim in PR #2482
- Fixes #2420. Fix saga error should not result in an unhandled exception, by @compulim in PR #2421
- Fixes #2513. Fix
core-js
not loading properly, by @compulim in PR #2514 - Fixes #2516. Disable microphone input for
expecting
input hint on Safari, by @compulim in PR #2517 and PR #2520 - Fixes #2518. Synthesis of bot activities with input hint expecting, should be interruptible, by @compulim in PR #2520
- Fixes #2519. On Safari, microphone should turn on after synthesis of bot activities with input hint expecting, by @compulim in PR #2520
- Fixes #2521.
webchat-es5.js
should not contains non-ES5 code and must be loadable by IE11, by @compulim in PR #2522 - Fixes #2524. Version was not burnt into source code correctly, by @compulim in PR #2525
- Resolves #2157, added
emitTypingIndicator
action and dispatcher, by @compulim, in PR #2413 - Resolves #2307. Added options to hide ScrollToEnd button, by @nt-7 in PR #2332
- Added bubble nub and style options, by @compulim, in PR #2137 and PR #2487
- Resolves #1808. Added documentation on activity types, by @corinagum in PR #2228
- Added
timestampFormat
option to the default style options and createdAbsoluteTime
component, by @tdurnford, in PR #2295 embed
: Added ES5 polyfills and dev server, by @compulim, in PR #2315- Resolves #2380. Added
botAvatarBackgroundColor
anduserAvatarBackgroundColor
to the default style options, by @tdurnford in PR #2384 - Added full screen capability to
IFRAME
in theYouTubeContent
andVimeoContent
components by @tdurnford in PR #2399 - Resolves #2461, added
isomorphic-react
andisomorphic-react-dom
packages, by @compulim and @corinagum, in PR #2478 and PR #2486 - Added missing Norwegian (nb-NO) translations, by @taarskog
- Added missing Italian (it-IT) translations, by @AntoT84
- Resolve #2481. Support alternative audio input source by adding
audioConfig
prop tocreateCognitiveServicesSpeechServicesPonyfillFactory
, by @corinagum, in PR #2491 - Added missing Finnish (fi-FI) translations, by @sk91swd, in PR #2501
- Single sign-on for Microsoft Teams apps, by @compulim in #2196
- Customize Web Chat with Reaction Buttons. Updated reaction handlers to send
messageReaction
activities, by @tdurnford in #2239 - Select voice for speech synthesis, by @compulim, in PR #2338
- Using different versions of React on a hosting app via NPM packages, by @compulim, in PR #2509
bundle
: Bumped DirectLineJS to support metadata when uploading attachments, in PR #2433botframework-directlinejs@0.11.5
- Removed DirectLineJS as a dev dependency for
component
because it was not referenced
- Fixes #2248. Remove download links from user-uploaded attachment without thumbnails, by @compulim in PR #2262
- Fixes Emulator:#1823. Fix Sendbox "Type your message" being read twice by AT, by @corinagum in PR #2423
- Fixes #2422. Store thumbnail URL using the activity's
attachment.thumbnailUrl
field, by @compulim in PR #2433
- Make thumbnails when uploading GIF/JPEG/PNG and store it in
channelData.attachmentThumbnails
, by @compulim, in PR #2206, requires modern browsers with following features: - Render thumbnail for image attachments using
activity.attachments[].thumbnailUrl
, by @compulim in PR #2433
- Fixes #2273. Add
ScreenReaderText
component, by @corinagum in PR #2278
- Fixes #2187. Bump core-js and update core-js modules on index-es5.js, by @corinagum in PR #2195
- Fixes #2193. Fix Adaptive Card/attachments do not get read by Narrator, by @corinagum in PR #2226
- Fixes #2150. Fix timestamps read by Narrator, by @corinagum in PR #2226
- Fixes #2250. Fix React warnings related prop types, by @compulim in PR #2253
*
: Addedeslint
to static code analysis, by @compulim, in PR #1970- Added pt-PT language, by @bodyzatva in PR #2005 and PR #2020
- Added documentation for using Web Chat dev build, by @corinagum, in PR #2074
- Added the Web Chat version to DirectLine's botAgent option, by @tdurnford, in PR #2101
- Added
richCardWrapTitle
todefaultStyleOptions
, by @tdurnford, in PR #2115 - Added test harness for speech recognition and synthesis for #2122, by @compulim, in PR #2153
*
: Bumps tolerna@3.13.4
, by @corinagum, in PR #1989*
: Bumps to:lerna@3.13.4
,react-scripts@3.0.0
,webpack@4.30.0
, by @corinagum, in PR #1965
bundle
: Bumps toadaptivecards@1.2.0
, by @corinagum, in PR #2064
- Fixes #1974. Update
/docs/
folder to/media/
and delete unused images, by @corinagum in PR #1975 - Fixes #1980. Changed
sendBoxTextArea
styles to break words longer than thetextarea
, by @tdurnford in PR #1986 - Fixes #1969. Move
styleSet
s related to Adaptive Cards to full bundle, by @corinagum in PR #1987 - Fixes #1429. Changed Markdown-It options to render newline characters correctly, by @tdurnford in PR #1988
- Fixes #1736. Fixed only first activity in a batch is spoken, by @compulim in PR #2016
- Fixes #2008. Fixed playground due to recent eslint changes, by @compulim in PR #2009
- Fixes #1876. Accessibility fixes on Web Chat transcript, by @corinagum in PR #2018
- Fixes #1829. Fixed long text not being synthesized by Cognitive Services by bumping to
react-say@1.2.0
, by @compulim in PR #2035 - Fixes #1982. Move to prettier! by @corinagum in PR #2038
- Fixes #1429. Added Markdown string preprocessing so the renderer will respect CRLF carriage returns (\r\n), by @tdurnford in PR #2055
- Fixes #2057. Added
sip:
protocol to sanitize HTML options, by @tdurnford in PR #2061 - Fixes #2062. Fixed Markdown rendering issue in cards, by @tdurnford in PR #2063
- Fixes #1896. Added data schema to render base64 images, by @denscollo in PR#2067
- Fixes #2068. Fixed Adaptive Cards validate and rich card speak issues, by @tdurnford in PR #2075
- Fixes #1966. Update Localization files for es-ES, ja-JP, zh-HANS, zh-HANT, zh-YUE, by @corinagum in PR #2077
- Fixes #2078. Update Localization files for tr-TR by @vefacaglar
- Fixes #2069. Fixed Markdown renderer issue in playground, by @tdurnford in PR#2073
- Fixes #1971. Fix mobile UX of Sendbox, SendButton, and SuggestedAction focus, by @corinagum in PR #2087
- Fixes #1627. Fixed timestamps randomly stopped from updating, by @compulim in PR #2090
- Fixes #2001. Strip Markdown from ARIA labels, so screen readers do not speak Markdown in text, by @corinagum in PR #2096
- Fixes #1926. Fixed scroll stickiness issue when submitting an Adaptive Card form with suggested actions opened, by @compulim in PR #2107
- Fixes #2110. Fixed sendBox input/textarea background color issue, by @tdurnford in PR #2111
- Fixes #2104. Remove deprecated
/master/webchat**.js
links from samples, by @corinagum in PR #2105 - Fixes #1863. Remove title, subtitle, and text of cards from being spoken by @corinagum in PR #2118
- Fixes #2134. Added
azure-pipelines.yml
for embed package, by @compulim in PR #2135 - Fixes #2106. Fix
AdaptiveCardHostConfig
warning associated with theCommonCard
component, by @tdurnford in PR #2108 - Fixes #1872. Fixed
observeOnce
to unsubscribe properly, by @compulim in PR #2140 - Fixes #2022. Fixed
"expectingInput"
ininputHint
is not respected, by @compulim and @corinagum in PR #2149 and PR #2166
*
: Single sign-on for enterprise apps, by @compulim in #2002*
: Upload to Azure Storage, by @compulim in #2127*
: Speech UI demo. Reconfigured to use Cognitive Services properly, by @compulim in PR #2132*
: Single sign-on for Intranet apps, by @compulim in #2144*
: Change locale on-the-fly, by @compulim in #2451
- Adds handling of reconnection, by @compulim, in PR #1880
- Adds embed page, by @compulim, in PR #1910, PR #1928 and PR #1938
- Deployment: Bumps to
blobxfer@1.7.1
, by @compulim, in PR #1897 - Deployment: Adds
charset
to content type of JavaScript files on CDN, by @compulim, in PR #1897 component
: Bumps toreact-film@1.2.1-master.db29968
, by @corinagum and @compulim, in PR #1900 and PR #1924- Build: Bumps to
@babel/*
, by @corinagum, in PR #1918 component
: Carousel flippers on carousel layout and suggested actions will use initial cursor style, by @compulim, in PR #1924
- Fixes #1423. Added sample for hosting WebChat in Angular, by @omarsourour in PR #1813
- Fixes#1767. Remove
cursor: pointer
from buttons, by @corinagum in PR #1819 - Fixes #1774. Add
styleSetOption
to allow word break. Default tobreak-word
, by @corinagum in PR #1832 - Fixes #1847. Bump react-say, which adds babel-runtime dependency, by @corinagum in PR #1849
- Adds #1524 Add Offline UI: connecting for the first time, by @corinagum, in PR #1866
- Fixes #1768. Add style options to be able to modify all Send Box borders, by @corinagum in PR #1871
- Fixes #1827. Remove renderer for unknown activities, by @corinagum in PR #1873
- Fixes #1586. Fix theming of suggested actions buttons, by @corinagum in PR #1883
- Fixes #1837, #1643. Fix style conflicts with bootstrap and bump
memoize-one
, by @corinagum in PR #1884 - Fixes #1877. Add viewport meta tag and fix a few sample links, by @corinagum in PR #1919
- Fixes #1789. Focus send box after message is being sent, by @corinagum in PR #1915
- Fixes #1920. Added disabled property to send button, by @tdurnford in PR #1922
- Fixes #1525. Add JavaScript error Offline UI, by @corinagum in PR #1927
- Fixes #1934. Fix spacing of empty ConnectivityStatus component, by @corinagum in PR #1939
- Fixes #1943. Fix extra vertical padding in IE11 and Firefox, by @compulim in PR #1949
- Fixes #1945. QA fixes for 4.4, by @corinagum in PR #1950
- Fixes #1947. Fix scrollbar in suggested action should be hidden in Firefox, remove gaps, and use style set for customizing
react-film
, by @compulim in PR #1953 - Fixes #1948. Fixed sample 04.api/g.chat-send-history to work with Firefox and Microsoft Edge, by @tdurnford in PR #1956
- Fixes #1304. Move Adaptive Cards from component to bundle, by @compulim and @corinagum in PR #1936
- Fixes #1990. Bump Adaptive Cards & fix textarea font-family from monospace to Web Chat's
primaryFont
, by @corinagum in PR #2064
- Resolves #1383. Added options to hide upload button, by @compulim in PR #1491
- Adds support of avatar image, thru
styleOptions.botAvatarImage
andstyleOptions.userAvatarImage
, in PR #1486 - Adds ability to style sendbox background and text color, thru
styleOptions.sendBoxBackground
andstyleOptions.sendBoxTextColor
, in PR #1575 core
: AddssendEvent
, in PR #1286core
: AddsCONNECT_FULFILLING
action to workaroundredux-saga
design decision, in PR #1286component
: Added missing Spanish (es-ES) by @schgressive in PR #1615- Adds missing Spanish (es-ES) by @schgressive in PR #1615
- Resolves #1602. Fix suggested actions regression of buttons, by @corinagum in PR #1616
component
: Allow font family and adaptive cards text color to be set via styleOptions, by @a-b-r-o-w-n, in PR #1670component
: Add fallback logic to browser which do not supportwindow.Intl
, by @compulim, in PR #1696*
: Addsusername
back to activity, fixed #1321, by @compulim, in PR #1682component
: Allow root component height and width customization viastyleOptions.rootHeight
andstyleOptions.rootWidth
, by @tonyanziano, in PR #1702component
: AddedcardActionMiddleware
to customize the behavior of card action, by @compulim, in PR #1704bundle
: Addwatermark
andstreamUrl
parameters to createDirectLine, by @corinagum, in PR #1817component
: Addedtextarea
option toSendBox
per issues #17 and #124, by @tdurnford, in PR #1889component
: AddedsuggestedAction
images per issue #1739, by @tdurnford, in PR #1909
- Bumps
botframework-directlinejs
to 0.11.4 in PR #1783 - Moves
botAvatarImage
anduserAvatarImage
tostyleOptions.botAvatarImage
andstyleOptions.userAvatarImage
respectively, in PR #1486 - Fixes string interpolation error in Russian localization and fallback for browsers without Intl support by @odysseus1973 in PR #1509
playground
: Bumps tobotframework-directlinejs@0.10.0
, in PR #1511playground
: Bumps toreact-scripts@2.1.1
, in PR #1535*
: Bumps toadaptivecards@1.1.2
, in #1558core
: Fixes #1344. Use random user ID if not specified, by @compulim in PR #1612component
: Bump toreact-film@1.1.2
andreact-scroll-to-bottom@1.3.1
, by @compulim, in PR #1621 and PR #1725- Expand german by @matmuenzel in PR #1740
- Update Russian and Japanese by @corinagum in PR #1747
- Update Spanish by @ckgrafico in PR #1757
- Update Danish by @simon_lfr in PR #1810
- Update Swedish by @pekspro in PR #1797
- Update Dutch by @imicknl in PR #1812
- Fixes #1360. Added
roles
to components of Web Chat, by @corinagum in PR #1462 - Fixes #1409. Added microphone status as screen reader only text, by @corinagum in PR #1490
- Fixes #1605, #1316, #1341, #1411. Fix color contrast ratios & downloadIcon narrator accessibility by @corinagum in PR #1494
- Fixes #1264, #1308, #1318, #1334,#1425. Update icons with accessibilty, Sent message accessibility, and fix sample README.md, @corinagum in PR #1506 and #1542
- Fixes #1512. Fix #1512: fix sanitization of anchors (allow title attributes), by @corinagum in PR #1530
- Fixes #1499.
- Fix screen reader handling of name, activity, and timestamp,
connectCarouselFilmStrip
: FixedbotAvatarInitials
anduserAvatarInitials
functionality from recent name change,BasicTranscript
: Fixed user activity should not be recreated after receive ACK from Direct Line,- by @corinagum in PR #1528
component
: Fix #1560, #1625 and #1635. Fixed carousel layout not showing date and alignment issues, by @compulim in PR #1561 and #1641playground
: Fixes #1562. Fixed timestamp grouping "Don't group" and added "Don't show timestamp", by @compulim in PR #1563component
: Fixes #1576. Rich card withouttap
should be rendered properly, by @compulim in PR #1577core
: Some sagas missed handling successive actions, in PR #1286core
:incomingActivitySaga
may throw null-ref exception if the first activity is from user, in PR #1286component
: Fixes #1328. Should not start microphone if input hint is set toignoringInput
, in PR #1286component
: Fixes outgoing typing indicators are not sent and acknowledged properly, in PR #1286- Fixes #1402. Add
messageBack
support, by @corinagum in PR #1581 - Fixes #1539. Fix outgoing typing indicators are not sent and acknowledged properly, in PR #1541
component
: Fix #1547. Fixed unhandled activity type should be forwarded to custom middleware, by @compulim in PR #1569playground
: Fix #1610. Fixed bot and user avatar initials not working, by @compulim in PR #1611bundle
: Fix #1613. Pass conversationId to DirectLineJS constructor, by @neetu-das in PR #1614component
: Fix #1626. FixedNumber.isNaN
is not available in IE11, by @compulim in PR #1628bundle
: Fix #1652. PasspollingInterval
to DirectLineJS constructor, by @neetu-das in PR #1655core
: Reworked logic on connect/disconnect for reliability on handling corner cases, by @compulim in PR #1649core
: Fix #1521. Add connectivity status component and update localization, by @corinagum in PR #1679core
: Fix #1057. Fixed suggested actions destined for other recipients should not show up, by @compulim in PR #1706component
: Fixed pt-br locale not being selected, addedX minutes ago
and missing translations, by @pedropacheco92 in PR #1745component
: Fix #1741 wherescrollToEndButton
does not havetype="button"
by @corinagum in PR #1743component
: Fix #1625 to updateREADME.md
by @corinagum in PR #1752
botAvatarImage
anduserAvatarImage
props, as they are moved insidestyleOptions
, in PR #1486sendTyping
props is now renamed tosendTypingIndicator
, by @compulim, in PR #1584
core
: Programmatic access to post activity, in #1568component
: Hide upload button, in #1491component
: Avatar image, in #1486core
: Incoming activity to JavaScript event, in #1567core
: Send welcome event, in PR #1286core
: Send typing indicator, in #1541component
: Password input activity, in #1569*
: Updated minimizable Web Chat sample to useWEB_CHAT/SEND_EVENT
action, in #1631component
: Hybrid speech engine, in #1617component
: Use Speech Services token for speech UI sample, in #1634component
: Selectable Activity, in #1624component
: Chat Send History, in #1678*
: UpdateREADME.md
's for samples 05-10 #1444 and improve accessibility of anchors #1681, by @corinagum in PR #1710component
: Customizing open URL behavior, in PR #1704
- Build: Development build now include instrumentation code, updated build scripts
npm run build
will build for development with instrumentation codenpm run prepublishOnly
will build for productionnpm run watch
will also run Webpack in watch loop
- Build: Automated testing using visual regression testing technique in #1323
- Docker-based automated testing using headless Chrome and Web Driver
- Screenshot comparison using
jest-image-snapshot
andpixelmatch
- Code is instrumented using
istanbul
- Test report is hosted on Coveralls
- Added French localization, by @tao1 in PR #1327
- Resolve #1344, by updating
README.md
and adding validation logic foruserID
props, in #1447- If
userID
props present and also embedded in Direct Line token, will use the one from Direct Line token - If
userID
props present, they must be string and not prefixed withdl_
, to avoid confusion betweenuserID
props and Direct Line embedded user ID (which is forgery-proof) - If
userID
props does not pass the validation test or not specified, Web Chat will usedefault-user
instead
- If
- Added support for Cognitive Services Speech to Text and Text to Speech in PR #1442
- Core: Saga will run after custom middleware, in #1331
- Custom middleware run before saga to allow user to modify default behavior
- Build: Bump dependencies, in #1303
@babel
@babel/cli@7.1.2
@babel/core@7.1.2
@babel/plugin-proposal-class-properties@7.1.0
@babel/plugin-proposal-object-rest-spread@7.0.0
@babel/plugin-transform-runtime@7.1.0
@babel/preset-env@7.1.0
@babel/preset-react@7.0.0
@babel/preset-typescript@7.1.0
@babel/runtime@7.1.2
concurrently@4.0.1
jest
babel-jest@23.6.0
jest@23.6.0
ts-jest@23.10.4
typescript@3.1.6
webpack
webpack@4.24.0
webpack-command@0.4.2
- Fixes Russian localization by @odysseus1973 in PR #1377
- Fixes #1397. Patched activities without
from
field, in PR #1405 - Fixes #1237. Added new sample called
migration
, by @corinagum in PR #1398 - Fixes #1332. Updated sample names and add table to README, by @corinagum in PR #1435
- Fixes #1125. Added error handling for Adaptive Card JSON render, by @corinagum in PR #1395
- Build: Webpack watch mode now emits non-minified code for shorter dev RTT, in #1331
- Backchannel: Inject custom data into every
POST_ACTIVITY
, in #1331 - UI: Minimizable Web Chat, in #1290
- Others: Using Web Chat v3, in #1287
- Speech: Cognitive Services Speech to Text and Text to Speech (both subscription key and authorization token flow)
- Speech: Cognitive Services Speech to Text using lexical result (text normalization)
- Initial release of Web Chat v4