Changelog
May 11, 2026 ยท View on GitHub
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.
Note:
- 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
Legends:
- ๐ฅ are breaking changes
- ๐ are known issues
- ๐งช are experimental changes
- ๐ซ are samples
- ๐ท๐ป are development environment changes
Unreleased
Breaking changes in this release:
- ๐ฅ
styleOptions.bubbleImageHeightis being deprecated in favor ofstyleOptions.bubbleImageMaxHeightandstyleOptions.bubbleImageMinHeight. The option will be removed on or after 2026-07-05 - ๐ฅ
styleOptions.bubbleMaxWidth/bubbleMinWidthis being deprecated in favor ofstyleOptions.bubbleAttachmentMaxWidth/bubbleAttachmentMinWidthandstyleOptions.bubbleMessageMaxWidth/bubbleMessageMinWidth. The option will be removed on or after 2026-10-08 - ๐ฅ Moved to
micromarkfor rendering Markdown, instead ofmarkdown-it- Please refer to PR #5330 for details
- ๐ฅ HTML sanitizer is moved from
renderMarkdownto HTML content transformer middleware, please refer to PR #5338- If you customized
renderMarkdownwith a custom HTML sanitizer, please move the HTML sanitizer to the new HTML content transformer middleware
- If you customized
- ๐ฅ
useGroupActivitieshook is being deprecated in favor of theuseGroupActivitiesByNamehook. The hook will be removed on or after 2027-05-04 - ๐ฅ
useSuggestedActions()hook is being deprecated in favor of theuseSuggestedActionsHooks().useSuggestedActions()hook. The hook will be removed on or after 2027-05-30 - ๐ฅ The following middleware should be created using their respective factory function:
- ๐ฅ
styleOptions.hideUploadButtonis being deprecated in favor ofstyleOptions.disableFileUpload. The option will be removed on or after 2027-07-14 - ๐ฅ
botframework-directlinespeech-sdkno longer ponyfillAbortController, it is supported by modern browsers, in PR #5530 - ๐ฅ
activityMiddlewareis being deprecated in favor ofpolymiddleware. It will be removed on or after 2027-08-16, related to PR #5515 - ๐ฅ Root-level (unconnected)
Claimentity is being deprecated, in PR #5564, by @compulim. It will be removed on or after 2027-08-29- Use
entities[@id=""][@type="Message"].citation[@type="Claim"]instead
- Use
- ๐ฅ
activityStatusMiddleware.nextVisibleActivityandactivityStatusMiddleware.sameTimestampGroupis removed after deprecation, in PR #5565, by @compulim - ๐ฅ
avatarMiddlewareis being deprecated in favor ofpolymiddleware. It will be removed on or after 2028-03-16, related to PR #5779
Added
- (Experimental) Added pre-chat message with starter prompts in Fluent UI, in PR #5255 and #5263, by @compulim
- (Experimental) Added
isPrimaryprops to Fluent UI send box. When set, will wire up withuseSendBoxValueand 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
ActivityDecoratorcomponent for enhanced message styling and layout, in PR #5258, by @OEvgeny - Added
CopilotMessageHeadercomponent 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
usePushToLiveRegionhook, 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
uiStateprops anduseUIStatehook, in PR #5276, by @compulim - (Experimental) Added support for using Web Chat inside a shadow DOM, in PR #5196, by @OEvgeny
- Added
styleOptions.stylesRootproperty allowing users to specify the root node where Web Chat styles should be placed, in PR #5196, by @OEvgeny - Added the
ThemeProvider.stylesproperty, allowing theme packages to place styles into the same root node as Web Chat, in PR #5196, by @OEvgeny - Added
noncefor Fluent andreact-scroll-to-bottominjected styles, in PR #5196, by @OEvgeny - Updated
react-scroll-to-bottomto version4.2.1-main.53844f5, in PR #5196, by @OEvgeny - Updated
react-filmto 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/bubbleAttachmentMinWidthandstyleOptions.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-mathandkatex, 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
useRenderMarkdownto transform the result fromrenderMarkdown - HTML sanitizer is moved from
renderMarkdowninto 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 - Added support for speech recognition initial silence timeout when using Azure Speech, in PR #5400, by @compulim
- Introduced syntax highlighting for markdown code blocks, in PR #5389, by @OEvgeny
- (Experimental) Added
feedbackActionsPlacementstyle option to control feedback button placement, in PR #5407, by @OEvgeny- New style option supports two values:
'activity-actions'and'activity-status'(default) - When set to
'activity-actions', feedback buttons are displayed in the activity actions toolbar - When set to
'activity-status', feedback buttons appear in the activity status area (default behavior)
- New style option supports two values:
- Added support for including activity ID and key into form data indicated by
data-webchat-include-activity-idanddata-webchat-include-activity-keyattributes, in PR #5418, by @OEvgeny - Added dedicated loading animation for messages in preparing state for Fluent theme, in PR #5423, by @OEvgeny
- Resolved #2661 and #5352. Added speech recognition continuous mode with barge-in support, in PR #5426, by @RushikeshGavali and @compulim
- Set
styleOptions.speechRecognitionContinuoustotruewith a Web Speech API provider with continuous mode support
- Set
- Added support of contentless activity in livestream, in PR #5430, by @compulim
- Added sliding dots typing indicator in Fluent theme, in PR #5447 and PR #5448, by @compulim
- (Experimental) Add an ability to pass
completionprop into Fluent send box and expose the component, in PR #5466, by @OEvgeny - Added feedback form for like/dislike button when
feedbackActionsPlacementis"activity-actions", in PR #5460, PR #5469, PR 5470, PR #5501 by @lexi-taylor, and @OEvgeny- ESCAPE key should reset the feedback form, in PR #5480, by @compulim, in PR #5493 by @lexi-taylor
- Added multi-dimensional grouping,
styleOptions.groupActivitiesBy, anduseGroupActivitiesByNamehook, in PR #5471, by @compulim- Existing behavior will be kept and activities will be grouped by
senderfollowed bystatus useGroupActivitiesByNameis favored over the existinguseGroupActivitieshook for performance reason- Middleware which support the new grouping name init argument should only compute the grouping if they match the grouping name, or the grouping name is not specified, otherwise, should do nothing and call the downstream middleware
- Existing behavior will be kept and activities will be grouped by
- Resolved #5463. Added attachment preview for
sendAttachmentOn: "send", in PR #5464, by @compulim, in PR #5492, by @OEvgeny- Attaching files will no longer remove previously attached files
- Updated Fluent theme to use the new attachment preview feature
- Added collapsible activity and activity with abstract handling, in PR #5506, in PR #5513, in PR #5771, by @OEvgeny
- Added
styleOptions.partGroupDefaultOpento configure whether part groups are open by default, defaults totrue - Added
styleOptions.referenceListDefaultOpento configure whether references are open by default, defaults totrue - In the Fluent theme "copilot" variant, part groups and references now default to closed
- Added
- Added
disableFileUploadflag to completelly disable file upload feature, in PR #5508, by @JamesNewbyAtMicrosoft- Deprecated
hideUploadButtonin favor ofdisableFileUpload. - Updated
BasicSendBoxToolbarto rely solely ondisableFileUpload.
- Deprecated
- Added support for livestreaming via
entities[type="streaminfo"]in PR #5517 by @kylerohn and @compulim - Added
polymiddleware, a new universal middleware for every UIs, by @compulim in PR #5515 and #5566 - New internal packages, by @compulim in PR #5515
@msinternal/botframework-webchat-api-middlewarefor middleware branch of API package@msinternal/botframework-webchat-debug-themepackage for enabling debugging scenarios@msinternal/botframework-webchat-react-hooksfor helpers for React hooks
- Added link sanitization and ESLint rules, in PR #5564, by @compulim
- Added blob URL sanitization and ESLint rules, in PR #5568, by @compulim
- Added visual message grouping following the
isPartOfproperty of theMessageentity, in PR #5553, in PR #5585, in PR #5590, in PR #5608, in PR #5773, by @OEvgeny- The mode is suitable for providing chain-of-thought reasoning
- Added visual indication of
creativeWorkStatusproperty inMessageentity:undefined- no indicator is shown'Incomplete'- show loader aside from the message'Published'- show checkmark aside from the message
- Added a
positionproperty support for theMessageentity- The
positionproperty takes precedence over existing sequence ID
- The
- Added support for explicit group status via
isPartOf.creativeWorkStatusandisPartOf.abstracton the HowTo entity- When the HowTo entity carries an explicit
creativeWorkStatus, it takes precedence over status derived from individual messages - When the HowTo entity carries an
abstract, it is used as the group header title
- When the HowTo entity carries an explicit
- Unified build info and injection of
<meta>tag, in PR #5571, by @compulim - Added documentation for
isPartOfproperty, in PR #5573, by @compulim fluent-theme: Changed dependencies to import solely from the "bundle" package, in PR #5584, by @compulim- Improved bundling, in PR #5588, by @compulim
- New named exports
api:botframework-webchat-api/hookbundle:botframework-webchat/component,botframework-webchat/decorator(internal-use),botframework-webchat/hookcomponent:botframework-webchat-component/component,botframework-webchat-component/hook
- New named exports
- (Experimental) Added support for importing via
<script type="module">, by @compulim in PR #5592- Added support for
botframework-webchat-fluent-themepackage, by @compulim in PR #5593 - Bundling vendor chunks, by @compulim in PR #5595
- Added deprecation notes for legacy imports, by @compulim in PR #5600
import { hooks } from 'botframework-webchat'should be replaced byimport * as hooks from 'botframework-webchat/hook.js'
- Added target to Chrome 100 and re-enable Lightning CSS for ESM builds, by @compulim in PR #5602
- Added support for
- Relaxed
roleprop to allow any string instead of ARIA landmark roles, in PR #5561, by @compulim - Cleaned up
<ThemeProvider>and various CSS related code, in PR #5611, by @compulim - (Experimental) Reworked the copilot variant to align with the modern Copilot UX, in PR #5630, by @OEvgeny, in PR #5634, by @OEvgeny, in PR #5656, by @OEvgeny
- Added loading animation for
copilot, andfluentvariants
- Added loading animation for
- New JSON-LD graph backend, by @compulim in PR #5622
- New debug API, by @compulim in PR #5663 and PR #5664, see
DEBUGGING.mdfor more- Debug into element: open F12, select the subject in Element pane, type
$0.webChat.debugger - Breakpoint: open F12, select the subject in Element pane, type
$0.webChat.breakpoint.incomingActivity
- Debug into element: open F12, select the subject in Element pane, type
- The
botframework-webchatpackage now uses CSS modules for styling purposes, in PR #5666, in PR #5677 by @OEvgeny - ๐ท๐ป Added
npm run build-browserscript for building test harness package only, in PR #5667, by @compulim - Added pull-based capabilities system for dynamically discovering adapter capabilities at runtime, in PR #5679, by @pranavjoshi001
- Added Speech-to-Speech (S2S) support for real-time voice conversations, in PR #5654, by @pranavjoshi
- Added core mute/unmute functionality for speech-to-speech via
useRecorderhook (silent chunks keep server connection alive), in PR #5688, by @pranavjoshi - ๐งช Added incremental streaming Markdown renderer for livestreaming, in PR #5799, by @OEvgeny
Changed
- Added streaming fast path in activity upsert to skip recomputation for mid-stream revisions, in PR #5796, by @OEvgeny
- Updated
useSuggestedActionsto 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.9to@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.withResolveersfromp-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
micromarkfor 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
outerHTMLandtextContentfor clipboard content, in PR #5378, by @compulim - Enabled icon customization in Fluent theme through CSS variables, in PR #5413, by @OEvgeny
- Bumped dependencies, by @compulim in PR #5385, PR #5400, PR #5426, PR #5427, PR #5476, PR #5516, PR #5529, PR #5532, PR #5659, PR #5661, PR #5768, and PR #5813, by @OEvgeny in PR #5662
- Production dependencies
@babel/runtime@7.29.2@emotion/css@11.13.5@redux-devtools/extension@4.0.0adaptivecards@3.0.6botframework-directlinejs@0.15.8core-js-pure@3.49.0core-js@3.49.0event-as-promise@2.0.1globalize@1.7.1html-react-parser@6.0.1inject-meta-tag@0.1.0iter-fest@0.3.1katex@0.16.45mdast-util-from-markdown@2.0.3merge-refs@2.0.0micromark-extension-gfm@3.0.0micromark-util-character@2.1.1micromark-util-sanitize-uri@2.0.1micromark@4.0.2microsoft-cognitiveservices-speech-sdk@1.49.0mime@4.1.0punycode@2.3.1react-chain-of-responsibility@0.4.2react-dictate-button@4.0.1react-film@4.0.0react-say@2.2.1react-scroll-to-bottom@4.2.1-main.53844f5react-wrap-with@0.1.0redux-saga@1.4.2sanitize-html@2.17.3shiki@2.5.0tagged-tag@1.0.0use-propagate@0.2.2use-reduce-memo@0.1.0use-ref-from@0.2.1use-state-with-ref@0.2.1uuid@8.3.2valibot@1.3.1web-speech-cognitive-services@8.1.4
- Development dependencies
@ast-grep/napi@0.42.1@babel/cli@7.28.6@babel/core@7.29.0@babel/plugin-transform-runtime@7.29.0@babel/plugin-transform-typescript@7.28.6@babel/preset-env@7.29.2@babel/preset-react@7.28.5@babel/preset-typescript@7.28.5@biomejs/biome@2.3.10@fluentui/react-provider@9.22.15@fluentui/tokens@1.0.0-alpha.23@happy-dom/jest-environment@20.0.11@jridgewell/sourcemap-codec@1.5.5@testduet/given-when-then@0.1.0@tsconfig/strictest@2.0.8@types/dom-speech-recognition@0.0.9@types/jest@29.5.14@types/mdast@4.0.4@types/node@25.6.0@types/react-dom@18.3.7@types/react-is@16.7.5@types/react@16.14.69@types/react@18.3.28@types/semver@7.7.1@types/use-sync-external-store@1.5.0@types/uuid@8.3.4@typescript-eslint/eslint-plugin@8.59.0@typescript-eslint/parser@8.59.0adaptivecards@3.0.2adm-zip@0.5.17axe-core@4.11.3babel-jest@29.7.0babel-plugin-istanbul@8.0.0base64-js@1.5.1bent@7.3.12botframework-directlinejs@0.15.8chalk@5.6.2compression@1.8.1concurrently@9.2.1core-js-pure@3.48.0core-js@3.48.0cross-env@10.1.0diff@8.0.2dotenv@17.4.2dtsroll@1.4.1esbuild@0.28.0eslint-config-prettier@10.1.8eslint-plugin-import@2.32.0eslint-plugin-local-rules@3.0.2eslint-plugin-prettier@5.5.5eslint-plugin-react-hooks@7.0.1eslint-plugin-react@7.37.5eslint-plugin-security@4.0.0eslint@8.57.1express@5.2.1glob@8.1.0handler-chain@0.1.1has-resolved@2.0.0html-react-parser@5.2.10http-proxy-middleware@2.0.9husky@9.1.7jest-image-snapshot@6.5.1jest-image-snapshot@6.5.2jest@29.7.0keep-a-changelog@2.7.1lint-staged@16.2.7micromark-util-types@2.0.2microsoft-cognitiveservices-speech-sdk@1.47.0minimatch@10.1.1nodemon@3.1.14nopt@9.0.0prettier@3.8.3progress@2.0.3q@1.5.1react-dom@16.8.6react-dom@18.3.1react-is@16.13.1react@16.8.6react@18.3.1read-package-up@12.0.0read-pkg@10.1.0selenium-webdriver@4.43.0selfsigned@5.5.0serve-handler@6.1.7serve@14.2.6simple-git@3.30.0tsd@0.33.0tsup@8.5.1type-fest@5.6.0typescript-plugin-css-modules@5.2.0typescript@6.0.3unplugin-lightningcss@0.4.3webpack-cli@7.0.2webpack@5.106.2yaml@2.8.3
- Production dependencies
- Fixed #5446. Embedded
uuidsomicrosoft-cognitiveservices-speech-sdkdo not need to use dynamic loading, as this could fail in Webpack 4 environment, in PR #5445, by @compulim - Fixed #5476. Modernizing components through memoization and use
valibotfor props validation, by @compulim - Ported
useSuggestedActionsto use React hooks as backend instead of Redux store, in PR #5489, by @compulim - Removed
StarterPromptsCardActionduringblueprintui state in PR #5477, by @jcheung824 - Removed
abort-controller-es5package inbotframework-directlinespeech-sdkpackage, in PR #5530, by @compulim - Removed
requestandrequest-progresspackage incldr-data-downloaderpackage, in PR #5530, by @copilot and @compulim - Added internal package
@msinternal/botframework-webchat-tsconfigto centralize TypeScript configuration files, in PR #5539, by @compulim - Bumped
react-chain-of-responsibilityto0.4.2version, by @OEvgeny in PR #5620, in PR #5624 - Bumped Chrome in Docker to 141 from 110, in PR #5619, by @compulim
- Bumped to
valibot@1.2.0, in PR #5650, by @compulim - Pinned to
botframework-directlinespeech-sdk@4.18.1-main.20251208.8ccadd6, by @OEvgeny in PR #5662, and unpinned in PR #5681 - Converted activity components to CSS Modules
- (Experimental) Added custom variants support for
botframework-webchat-fluent-themepackage, in PR #5675, by @OEvgeny - Improved adaptive cards rendering in copilot variant, in PR #5682, by @OEvgeny
- Bumped to
botframework-directlinejs@0.15.8to include support for the newstreamingproperty, by @pranavjoshi001, in PR #5686 - Removed unused deps
simple-git, by @compulim, in PR #5786 - Improved
ActivityKeyerComposerperformance for append scenarios by adding an incremental fast path that only processes newly-appended activities, in PR #5790, in PR #5797, by @OEvgeny - Improved livestream performance by pruning intermediate revision activities after a stream session is finalized, in PR #5798, by @OEvgeny
- Bumped to
adaptivecards@3.0.6in PR #5800 by @compulim
Deprecated
- ๐ซ Sample
01.getting-started/l.sharepoint-web-part,01.getting-started/k.direct-line-token, and samples under07.advanced-web-chat-appsis being archived and will no longer receive updates, in PR #5533, #5536, and #5537, by @compulim
Removed
- Removed
copilot-deprecatedvariant from Fluent theme, in PR #5644, by @OEvgeny - Deprecating
disabledprops anduseDisabledhook in favor of newuiStateprops anduseUIStatehook, in PR #5276, by @compulim useSuggestedActions()hook is being deprecated in favor of theuseSuggestedActionsHooks().useSuggestedActions()hook, in PR #5489, by @compulimactivityMiddlewareis being deprecated in favor ofpolymiddleware. It will be removed on or after 2027-08-16, related to PR #5515- Root-level (unconnected)
Claimentity is being deprecated, in PR #5564, by @compulim. It will be removed on or after 2027-08-29- Use
entities[@id=""][@type="Message"].citation[@type="Claim"]instead
- Use
activityStatusMiddleware.nextVisibleActivityandactivityStatusMiddleware.sameTimestampGroupis being deprecated and will be removed on or after 2022-07-22, in PR #4362, by @compulim- Removed legacy test harness, in PR #5655, by @compulim
- All tests are now either using
html2test harness or simple unit tests - Legacy and
html(html1) test harness are all migrated tohtml2
- All tests are now either using
avatarMiddlewareis being deprecated in favor ofpolymiddleware. It will be removed on or after 2028-03-16, related to PR #5779
Fixed
- Fixed #5256.
styleOptions.maxMessageLengthshould 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
streamSequenceis 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
punycodeto our dependencies asmarkdown-itrequires 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
shikiin 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
- Fixed #4948. Microphone should stop after initial silence, in PR #5385
- Fixed #5390. Fixed drop zone remaining visible when file is dropped outside of the zone, in PR #5394, in PR #5415, by @OEvgeny
- Improved accessibility across multiple components, in PR #5428, by @OEvgeny
- Fixed copy button screen reader announcement
- Added proper ARIA attributes to link definitions component
- Improved focus management for scroll to end button
- Fixed #5439. Fixed batched livestream activities are not recognized in the same session, in PR #5440, by @compulim
- Fixed #5452. With Fluent/Copilot theme, the typing indicator padding should not be squashed and bottom margin should not grow, in PR #5453, by @compulim and in PR #5495, by @OEvgeny
- Fixed #5461. On macOS and Fluent skinpack applied, using Japanese IME to input some Japanese text should not send them immediately, in PR #5462, by @compulim
- Fixed #5472, ensure proper inheritance from the outside of Web Chat for visibility CSS property when hidden, in PR #5473, by @OEvgeny
- Fixed #5474. Disable AMD glue code in bundle, in PR #5478, by @compulim
- Downstreamers who use our CommonJS and ES Modules output with esbuild will need to disable AMD themselves to prevent conflict with RequireJS
- Fixed #5479. Fixed feedback form buttons should not squash other buttons, in PR #5480, by @compulim
- Migrated to radio button for like/dislike where form submission is required
- Fixed long citation identifiers break activity layout, in PR #5507, by @OEvgeny
- Fixed
botframework-webchat-core/internalimport in legacy CommonJS environments, in #5509, by @OEvgeny - Updated file-based import with
.jsextension and removed the file extension from build config, by @compulim, in PR #5516 - Fixed #5518. Minimal bundled build should work properly, in PR #5507, by @compulim
- Fixed #5520. Version information should be injected when installed via npm, in PR #5521, by @compulim
- Fixed aria-label only announcing placeholder in feedback form, in PR #5567
- Fixed placing focus on the code block content, so it is possible to scroll code via keyboard, in PR #5575, by @OEvgeny
- Fixed #5581. Activities should be displayed after upgrading via
npm install, in PR #5582, by @compulim - Fixed Composer props types not resolving correctly in React 16 in PR #5580, by @lexi-taylor
- Fixed
npm startmay fail subsequently as builds are not fully flushed to/dist/, in PR #5599, by @compulim - Fixed published package types containing internal package references, in PR #5610, by @OEvgeny
- Fixed citation links are not properly matched against markdown links, in PR #5614, by @OEvgeny
- Fixed
botframework-webchat/decoratorimport in legacy CommonJS environments, in #5616, by @OEvgeny - Fixed
npm startfor efficiency and reliability, in PR #5621 and #5629, by @compulim - Fixed activity sorting introduced in PR #5622, part grouping, and livestreaming, by @compulim in PR #5635
- Fixed Content Security Policy documentation and sample in PR, by @compulim in PR #5648
- Added
img-src data:, required for icons
- Added
- Downgraded graph upsert conflict checks, by @compulim in PR #5674
- Fixed virtual keyboard should show up on tap after being suppressed, in iOS 26.2, by @compulim in PR #5678
- Fixed compatibility with
create-react-appby adding file extension tocore-jsimports, by @compulim in PR #5680 - Fixed virtual keyboard should be collapsed after being suppressed, in iOS 26.3, by @compulim in PR #5757
- Fixed Fluent/Copilot typing indicator animation background color, in PR #5770, by @OEvgeny
- Fixed
<AddFullBundle>should not re-render whenattachment[ForScreenReader]Middlewareis updated without noticeable different (iterateEquals), by @compulim, in PR #5779 - Fixed send box should narrate
aria-labelprop, by @compulim, in PR #5805
4.18.0 - 2024-07-10
Added
- (Experimental) Added initial decorators support, in PR #5205, by @OEvgeny
- Added
styleOptions.bubbleImageMaxHeightandstyleOptions.bubbleImageMinHeightfor variable image height, in PR #5236, by @compulim
Changed
- 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.0adm-zip@0.5.12dotenv@16.4.5esbuild@0.21.1eslint-plugin-import@2.29.1eslint-plugin-prettier@5.1.3eslint-plugin-react-hooks@4.6.2eslint-plugin-react@7.34.1eslint-plugin-security@3.0.0eslint@8.57.0html-webpack-plugin@5.6.0husky@9.0.11jest-image-snapshot@6.4.0lint-staged@15.2.2nodemon@3.1.0nopt@7.2.1p-defer@4.0.1prettier@3.2.5selenium-webdriver@4.20.0serve@14.2.3source-map-loader@5.0.0terser-webpack-plugin@5.3.10tsd@0.31.0type-fest@4.18.2typescript@5.4.5webpack@5.91.0
Fixed
- 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.jsis 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-propagateto individual WebChat instances to prevent interference between multiple instances, in PR #5248, by @OEvgeny
4.17.0 - 2024-05-06
Known issues in this release:
- ๐ 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
Breaking changes in this release:
- ๐ฅ
useSendMessagehook is updated to support sending attachments with a message. To reduce complexity, theuseSendFileshook is being deprecated. The hook will be removed on or after 2026-04-03 - ๐ฅ
styleOptions.uploadThumbnailHeightandstyleOptions.uploadThumbnailWidthmust be anumberof pixels - ๐ฅ
useSuggestedActionstype 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.markdownRenderHTMLtofalse
Added
- Resolves #5083. Added
sendAttachmentOnstyle option to send attachments and text in a single activity, by @ms-jb and @compulim, in PR #5123useSendMessagehook is updated to support sending attachments with a messageuseSendBoxAttachmentshook is added to get/set attachments in the send box
- Resolves #5081. Added
uploadAcceptanduploadMultiplestyle options, by @ms-jb, in PR #5048 - Added
sendBoxMiddlewareandsendBoxToolbarMiddleware, by @compulim, in PR #5120 and #5504- Instead of passing barebone middleware, use the
createSendBoxMiddleware()andcreateSendBoxToolbarMiddleware()factory function correspondingly, related to PR #5504
- Instead of passing barebone middleware, use the
- (Experimental) Added
botframework-webchat-fluent-themepackage 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.maxMessageLengthto 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.jsonto export*.d.[m]tsand default exports, in PR #5131 - Added support of
styleOptions.hideUploadButton, in PR #5132 - Added
styleOptions.hideTelephoneKeypadButtonand 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
useMakeThumbnailhook option to create a thumbnail from the file given, by @compulim, in PR #5123 and #5122 - Added
moduleFormatandtranspilerbuild 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.typingIndicatorDurationto 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
Changed
- 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.2axe-core@4.8.2babel-jest@29.7.0concurrently@8.2.2esbuild@0.19.8eslint-config-prettier@9.1.0eslint-plugin-import@2.29.0eslint-plugin-prettier@5.0.1eslint@8.55.0istanbul-lib-coverage@3.2.2jest-image-snapshot@6.3.0jest@29.7.0lint-staged@15.2.0nodemon@3.0.2prettier@3.1.0read-pkg-up@11.0.0read-pkg@9.0.1selenium-webdriver@4.15.0typescript@5.3.2webpack@5.91.0
Fixed
- 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
dateToLocaleISOStringfor 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
4.16.0 - 2023-11-16
Breaking changes in this release:
- ๐ฅ 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
- ๐ฅ
useTextBoxValuesetter will no longer replace emoticon with emoji, in PR #4861
Added
- 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
Changed
- Fixed #4875. Replaced
mdastwith@types/mdast, by @compulim, in PR #4882
Fixed
- 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.
createStoreshould 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
claimInterpreterinstead ofReplyAction/provider, by @compulim, in PR #4910
4.15.9 - 2023-08-25
Changed
- 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.0axe-core@4.7.2babel-jest@29.6.4babel-loader@9.1.3chalk@5.3.0concurrently@8.2.1dotenv@16.3.1esbuild@0.19.2eslint-plugin-prettier@5.0.0eslint-plugin-react@7.33.2eslint@8.48.0jest-image-snapshot@6.2.0jest-junit@16.0.0jest-trx-results-processor@3.0.2lerna@6.6.2lint-staged@14.0.1node-fetch@2.7.0nodemon@3.0.1nopt@7.2.0prettier@3.0.3read-pkg-up@10.1.0read-pkg@8.1.0selenium-webdriver@4.12.0serve@14.2.1terser-webpack-plugin@5.3.9typescript@5.2.2url-search-params-polyfill@8.2.4webpack-cli@5.1.4webpack-stats-plugin@1.1.3webpack@5.88.2
Fixed
- 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
TextBlockheading 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
MutationObservererror, by @compulim, in PR #4852
4.15.8 - 2023-06-06
Breaking changes in this release:
- ๐ฅ When
activity.channelData['webchat:fallback-text']is present but empty, it will no longer appliesaria-hiddento 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
activityMiddlewareto customize the rendering
Added
- Resolved #4643. Decoupling
botframework-directlinejsfrom 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-corein 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
ponyfillprop 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
roleattribute, 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
Changed
- 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.0adm-zip@0.5.10babel-jest@29.4.3babel-loader@9.1.2chalk@5.2.0concurrently@7.6.0core-js@3.28.0dotenv@16.0.3esbuild@0.17.10eslint-config-prettier@8.6.0eslint-plugin-react@7.32.2eslint-plugin-security@1.7.1eslint@8.34.0express@4.18.2glob@8.1.0http-proxy-middleware@2.0.6husky@8.0.3jest-image-snapshot@6.1.0jest-junit@15.0.0jest@29.4.3lerna@6.5.1lint-staged@13.1.2node-dev@8.0.0node-fetch@2.6.9nopt@7.0.0prettier@2.8.4restify@11.1.0selenium-webdriver@4.8.1serve-handler@6.1.5serve@14.2.0source-map-loader@4.0.1typescript@4.9.5webpack-cli@5.0.1webpack-stats-plugin@1.1.1webpack@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.6botbuilder-dialogs@4.19.1botbuilder@4.19.1classnames@2.3.2dotenv@16.0.3eslint-config-standard@17.0.0eslint-plugin-import@2.27.5http-proxy-middleware@2.0.6node-dev@8.0.0node-fetch@2.6.9nodemon@2.0.20react-dom@18.2.0react-redux@8.0.5react-scripts@5.0.1react@18.2.0redux@4.2.1restify@11.1.0uuid@9.0.0
- Bumped Docker containers, by @compulim, in PR #4654
Fixed
- 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-hiddenbecause 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
setImmediateor without passingstoreprop, by @compulim, in PR #4709.
4.15.7 - 2023-02-15
Added
- 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
Changed
- Updated test harness to use Selenium Hub 4.6.0 and Chrome 107, by @compulim in PR #4540
Fixed
- 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-labelledbyof 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
4.15.6 - 2022-12-01
Changed
- 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
Fixed
- Fixes #4501. Outgoing activities restored from chat service should be marked as sent, by @compulim in PR #4532
4.15.5 - 2022-11-16
Changed
- 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.0babel-jest@29.0.3concurrently@7.4.0core-js@3.25.3dotenv@16.0.2esbuild@0.15.9eslint-plugin-react@7.31.8eslint@8.24.0jest-image-snapshot@5.2.0jest-junit@14.0.1jest@29.0.3lerna@5.5.2nodemon@2.0.20terser-webpack-plugin@5.3.6typescript@4.8.3webpack-stats-plugin@1.1.0
Fixed
- Card action image alt text should use
imageAltTextfield and fallback totextfield, by @compulim in PR #4333 - Fixes #4472. Removed
roleattributes 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.1fortest-harnessas@^7does 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
4.15.4 - 2022-09-15
Changed
- 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.0babel-jest@28.1.3babel-loader@8.2.5babel-plugin-transform-inline-environment-variables@0.4.4concurrently@7.3.0core-js@3.24.1dotenv@16.0.1error-stack-parser@2.1.4esbuild@0.15.1eslint-plugin-prettier@4.2.1eslint-plugin-react-hooks@4.6.0eslint-plugin-react@7.30.1eslint-plugin-security@1.5.0eslint@8.21.0express@4.18.1http-proxy-middleware@2.0.6husky@8.0.1jest-environment-node@28.1.3jest-image-snapshot@5.1.0jest-junit@14.0.0jest-trx-results-processor@3.0.1jest@28.1.3lerna@5.4.0lint-staged@13.0.3node-dev@7.4.3nodemon@2.0.19nopt@6.0.0prettier@2.7.1react-scripts@5.0.1selenium-webdriver@4.4.0serve@14.0.1source-map-loader@4.0.0strip-ansi@7.0.1terser-webpack-plugin@5.3.3typescript@4.7.4webpack-cli@4.10.0webpack@5.74.0
Fixed
- 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
4.15.3 - 2022-08-10
Breaking changes in this release:
- ๐ฅ 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/srcfolders- The
/distfolder was previously missing from our NPM packages
- The
- ๐ฅ The
activity.channelData.stateproperty is being deprecated in favor of the updatedactivity.channelData['webchat:send-status']property. Main differences include:- Previously, we would set the
stateproperty 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
Added
- Added
01.getting-started/l.sharepoint-web-partfor hosting Web Chat as a SharePoint web part, in PR #4385, by @compulim
Changed
- Resolves #4301. Updated
Dockerfileto support secure container supply chain, by @compulim in PR #4303 - Resolves #4317. Updated
package.jsonto 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
useSendStatusByActivityKeyhook 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.sendTimeoutprop, 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']
- Resolves #4316. Using ESBuild as development server, by @compulim, in PR #4330
Fixed
- 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-keyshortcutsshould use modifier keys according toKeyboardEventkey values spec, by @compulim, in PR #4323 - Fixes #4327. In Adaptive Cards,
TextBlockwithstyle="heading"should havearia-levelset, 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.
groupActivityMiddlewarereturning 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
4.15.2 - 2022-05-09
Breaking changes in this release:
- ๐ฅ A new
type WebChatActivityis introduced in thebotframework-webchat-corepackage- 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 WebChatActivityis a well-defined type for handling activities inside Web Chat - The existing
type DirectLineActivitywill be used solely for communicating withtype DirectLineJSBotConnection, a.k.a.botframework-directlinejspackage
- If you are previously using the
Added
Changed
- 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.0adm-zip@0.5.9babel-jest@27.5.1babel-loader@8.2.3babel-plugin-istanbul@6.1.1base64-arraybuffer@1.0.2botframework-directlinejs@0.15.1concurrently@7.0.0core-js@3.21.1dotenv@16.0.0error-stack-parser@2.0.7esbuild@0.14.24eslint-config-prettier@8.5.0eslint-plugin-prettier@4.0.0eslint-plugin-react-hooks@4.3.0eslint-plugin-react@7.29.3eslint@8.10.0express@4.17.3glob@7.2.0global-agent@3.0.0html-webpack-plugin@5.5.0http-proxy-middleware@2.0.3husky@7.0.4istanbul-lib-coverage@3.2.0jest-environment-node@27.5.1jest-trx-results-processor@2.2.1jest@27.5.1lint-staged@12.3.4memoize-one@6.0.0node-dev@7.1.0nodemon@2.0.15prettier@2.5.1prop-types@15.8.1read-pkg-up@9.1.0read-pkg@7.1.0restify@8.6.1selenium-webdriver@4.1.1source-map-loader@3.0.1terser-webpack-plugin@5.3.1typescript@4.6.2webpack-cli@4.9.2webpack@5.70.0
Fixed
- Fixes #4102. Fixed
cldr-data-downloaderpackage 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
4.15.1 - 2022-03-04
Breaking changes in this release:
- ๐ฅ New
Mapobject polyfill is required for IE11 when using NPM version of Web Chat:Mapobject 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-jspackage, 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:
suggestedActionBackgroundandsuggestedActionXXXBackgroundare being deprecated in favor ofsuggestedActionBackgroundColorandsuggestedActionBackgroundColorOnXXXrespectively, for consistencies when porting to other platformssuggestedActionDisabledXXXis being renamed tosuggestedActionXXXOnDisabled, for consistencies with other style optionssuggestedActionXXXOnActive,suggestedActionXXXOnFocus,suggestedActionXXXOnHoverare introduced for styling per user gesturessuggestedActionKeyboardFocusIndicatorXXXare introduced for styling the "focus ring" when focused using a keyboard
Added
- Adds
eslint-plugin-security, consolidate.eslintrc.ymlat 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
Changed
- 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.0babel-jest@27.2.5botbuilder@4.15.0concurrently@6.3.0core-js@3.18.3esbuild@0.12.29eslint-plugin-prettier@3.4.1eslint-plugin-react@7.26.1eslint@7.32.0istanbul-lib-coverage@3.0.2jest-environment-node@27.2.5jest-junit@13.0.0jest@27.2.5node-dev@7.1.0node-fetch@2.6.7prettier@2.4.1react-scripts@5.0.0restify@8.6.0selenium-webdriver@4.0.0serve@13.0.2strip-ansi@6.0.1terser-webpack-plugin@5.2.4webpack-cli@4.9.0webpack@5.58.2
Fixed
- 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:
suggestedActionDisabledXXXbecomesuggestedActionXXXOnDisabled
- 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-boxto 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-activedescendantfor 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
useFocusanduseLocalizer
- Fixes #3165 and #4094. Allowlist
aria-labelfor 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 - Fixes #4196. Should render/mount to a detached DOM node without errors, by @compulim, in PR #4197
- ๐ซ Fixes #4031. Updated
05.custom-components/b.send-typing-indicatorto reply withmessageactivity, instead oftypingactivity, in PR #4063, by @compulim
4.14.2 - 2022-09-06
Fixed
- QFE: Fixes #4403. Patched Unicode CLDR database which caused file upload in Polish to appear blank, by @compulim, in PR #4406
4.14.1 - 2021-09-07
Changed
- Resolves #4017. In samples, moved
react-scriptstodevDependencies, in PR #4023 - Forked
cldr-dataandcldr-data-downloader, in PR #3998- Moved source code to under
./srcfolder - Moved to
fs.readFileSync()fromrequire()when reading JSON files - Moved to
node:fs.mkdir()and removedmkdirp - Moved tests from
node:assertto 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-upto determines parentpackage.json- In Web Chat, since we use
lernato run theinstallscript, we need to relax howcldr-dataread from parentpackage.json
- In Web Chat, since we use
- Moved source code to under
- Updated peer dependency of
reactto>= 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.3babel-jest@27.0.6concurrently@6.2.0core-js@3.15.2dotenv@10.0.0esbuild@0.12.15eslint-plugin-prettier@3.4.0eslint-plugin-react@7.24.0eslint@7.30.0http-proxy-middleware@2.0.1husky@7.0.1jest-environment-node@27.0.6jest-image-snapshot@4.5.1jest-junit@12.2.0jest@27.0.6lint-staged@11.0.0node-dev@7.0.0nodemon@2.0.12p-defer@4.0.0prettier@2.3.2sanitize-html@2.4.0selenium-webdriver@4.0.0-beta.4serve@12.0.0strip-ansi@6.0.0typescript@4.3.5webpack@5.45.1
- Dependencies used by samples
Fixed
4.14.0 - 2021-07-09
Breaking changes in this release:
- ๐ฅ A new style option
scrollToEndButtonBehavioris introduced to control when the scroll to end button should show (formerly "new messages" button):styleOptions.hideScrollToEndButtonhas been deprecated. To hide the scroll to end button, setstyleOptions.scrollToEndButtonBehaviortofalse;styleOptions.newMessageButtonFontSizehas been renamed tostyleOptions.scrollToEndButtonFontSizeto better reflect its purpose.
Added
- 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
localTimestampandlocalTimezone(if available) to all outgoing activities, by @compulim, in PR #3896 - Resolves #3925. Added
scrollToEndButtonBehaviorto control when the scroll to end button should show, removedhideScrollToEndButton, and renamednewMessagesButtonFontSizetoscrollToEndButtonFontSize, 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;falsewill always hide the button.
- If unset, will maintain same behavior as previous versions, same as
- Added new
scrollToEndButtonMiddlewareto 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
AudioContextwhen clicking on microphone button, by @compulim, in PR #3974
Changed
- 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.0abort-controller-es5@1.2.0abort-controller@3.0.0babel-loader@8.2.2base64-arraybuffer@0.2.0botbuilder-dialogs@4.12.0botbuilder@4.12.0classnames@2.3.1concurrently@6.0.1copy-webpack-plugin@6.4.1core-js@3.10.0cross-env@7.0.3css-loader@5.2.0dotenv@8.2.0eslint-config-standard@16.0.2eslint-plugin-import@2.22.1eslint-plugin-node@11.1.0eslint-plugin-promise@4.3.1eslint-plugin-react@7.23.1eslint-plugin-react@7.23.1eslint-plugin-standard@5.0.0eslint@7.23.0event-iterator@2.0.0global-agent@2.2.0html-webpack-plugin@4.5.2http-proxy-middleware@1.1.0husky@6.0.0jest-image-snapshot@4.4.1lerna@4.0.0lint-staged@10.5.4lolex@6.0.0math-random@2.0.1msal@1.4.9node-dev@6.6.0nodemon@2.0.7office-ui-fabric-react@7.165.2p-defer-es5@1.2.1p-defer@3.0.0prettier@2.2.1react-redux@7.2.3react-scripts@4.0.3redux@4.0.5restify@8.5.1selenium-webdriver@4.0.0-beta.2simple-update-in@2.2.0source-map-loader@1.1.3string-similarity@4.0.4style-loader@2.0.0uuid@8.3.2webpack-cli@4.6.0webpack-stats-plugin@1.0.3webpack@4.46.0
- Production dependencies
- Development dependencies
- Resolves #3693. Bumped to
microsoft-cognitiveservices-speech-sdk@1.17.0, by @compulim, in PR #3907
Fixed
- Fixes #3810. Removes
aria-hiddenfrom elements that have a focusable child, by @corinagum in PR #3836 - Fixes #3811. Removes erroneous
aria-labelledbyfrom 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
adaptiveCardHostConfigto 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.2from>= 12.0.0, by @compulim in PR #3854 - Fixes #3842. Updated
husky,lint-stagedand correspondingprecommitscripts, 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.textfield, 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
4.13.0 - 2021-04-05
Added
- 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
Changed
- 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.0babel-jest@26.6.3eslint-plugin-prettier@3.3.1eslint-plugin-react-hooks@4.2.0eslint-plugin-react@7.22.0eslint@7.22.0husky@4.3.0jest-image-snapshot@4.2.0jest-junit@12.0.0jest-trx-results-processor@2.2.0jest@26.6.3lint-staged@10.5.1lolex@6.0.0node-dev@6.4.0node-fetch@2.6.1prettier@2.2.1source-map-loader@1.1.2terser-webpack-plugin@4.2.3typescript@4.2.3webpack-cli@4.2.0webpack-stats-plugin@1.0.2webpack@4.44.2
- Production dependencies
- Development dependencies
Fixed
4.12.1 - 2021-03-16
Added
- Resolves #3777. Added a new
adaptiveCardsParserMaxVersionstyle options for selecting the maximum supported version when parsing an Adaptive Cards, by @compulim in PR #3778
Fixed
- Fixes #3773. Remove
replyToIdwhen using Direct Line Speech adapter, by @compulim in PR #3776 - ๐ซ 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
4.12.0 - 2021-03-01
Added
- Resolves #2745. Added new
flowlayout 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
autoScrollSnapOnActivitytotrueto pause auto-scroll after more than one activity is shown, or a number to pause after X number of activities - Set
autoScrollSnapOnPagetotrueto pause auto-scroll when a page is filled, or a number between0and1to pause after % of page is filled - Set
autoScrollSnapOnActivityOffsetandautoScrollSnapOnPageOffsetto 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
sendBoxButtonAlignmentfor 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.mdfor instructions
- Please refer to
- Resolves #2996. Added transcript navigation by keyboard navigation keys, by @compulim in PR #3703
- Resolves #3703. Fixed
enterKeyHintprops warning, by @compulim in PR #3703 - Resolves #3544. Send user ID from props to chat adapter, by @timenick in PR [#3544)(https://github.com/microsoft/BotFramework-WebChat/issues/3544).
- Resolves #3562. Add button word wrap to suggested actions stacked layout, by @corinagum, in PR #3728 and #3745
- Resolves #3658. Added new
containerRoleto default style options, by @nfreear in PR #3669 - Resolves #3754. Added new
useObserveTranscriptFocushook, by @compulim in PR #3755 - Translation for Yue, by @compulim in PR #3749
Changed
- 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.1babel-jest@26.6.3eslint-plugin-prettier@3.1.4eslint-plugin-react-hooks@4.2.0eslint-plugin-react@7.21.5eslint@7.12.1husky@4.3.0jest-image-snapshot@4.2.0jest-junit@12.0.0jest-trx-results-processor@2.2.0jest@26.6.3lint-staged@10.5.1lolex@6.0.0node-dev@6.2.0node-fetch@2.6.1prettier@2.1.2source-map-loader@1.1.2terser-webpack-plugin@4.2.3typescript@4.0.5webpack-cli@4.2.0webpack-stats-plugin@1.0.2webpack@4.44.2
- Production dependencies
- Development dependencies
- Resolves #3392 Bumped Adaptive Cards to 2.5.0, by @corinagum in PR #3630
Fixed
- Fixes #3278. Update
HOOKS.mdverbiage, 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.jsto use default settings of['browser', 'module', 'main']and resolved issues withuuidpackage in IE11, by @compulim in PR #3726 - Fixes #3622. Apply pushed button style options and
aria-pressedon 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-pressedandaria-roleis 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 - Fixed re-rendering Adaptive Card should not cause momentarily layout shift, by @OEvgeny, in PR #5494
- ๐ซ 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
4.11.0 - 2020-11-04
Added
- 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
apipackage, 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
apipackage. Some hooks are only available on the existingcomponentpackage, due to their platform dependency or coupling with visual components. For example, Web Worker, 2D canvas,useMicrophoneButton*are not available on theapipackage - Most implementations of middleware are only available in
componentpackage due to their coupling with visual components or platform features. Some implementations, (e.g. card action middleware and activity grouping middleware) are available onapipackage. For example:- Carousel layout and stacked layout is only available on
componentpackage due to their coupling with their respective visual components - For card action middleware,
imBack,messageBackandpostBackactions are available onapipackage, butcall,openUrland other platform-dependent actions are only available oncomponentpackage
- 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
Changed
- Bumped development dependency
node-fetch@2.6.1in PR #3467 by @dependabot - Bumped Cognitive Services Speech SDK to 1.13.1, by @compulim in PR #3432
Fixed
- 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-roledescriptionis 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
speakproperty 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
- ๐ซ Fixes #3526. Add info on composition mode in sample 06.d, by @corinagum in PR #3541
4.10.1 - 2020-09-09
Breaking changes in this release:
- ๐ฅ To support Content Security Policy,
glamoris being replaced bycreate-emotion. The CSS hash and rule name is being prefixed withwebchat--csswith a random value.
Added
Changed
- 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.40tocreate-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.MessagePortandwindow.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.2babel-jest@26.4.0concurrently@5.3.0core-js@3.6.5global-agent@2.1.12husky@4.2.5jest@26.2.2jest-image-snapshot@4.1.0jest-junit@11.1.0jest-trx-results-processor@2.0.3lerna@3.22.1lint-staged@10.2.13prettier@2.0.5serve@11.3.2serve-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.1babel-jest@26.2.2concurrently@5.3.0copy-webpack-plugin@6.0.3core-js@3.6.5cross-env@7.0.2css-loader@4.2.0eslint-plugin-prettier@3.1.4eslint-plugin-react-hooks@4.1.0eslint-plugin-react@7.20.6eslint@7.7.0global-agent@2.1.12globalize-compiler@1.1.1html-webpack-plugin@4.3.0http-proxy-middleware@1.0.5jest@26.2.2node-dev@5.2.0prettier@2.1.1pug@3.0.0serve@11.3.2simple-update-in@2.2.0source-map-loader@1.0.2terser-webpack-plugin@4.1.0typescript@4.0.2webpack-cli@3.3.12webpack-stats-plugin@0.3.2webpack@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.0abort-controller-es5@1.2.0botframework-directlinejs@0.13.0core-js@3.6.5event-iterator@2.0.0event-target-shim-es5@1.2.0expect@25.5.0globalize@1.5.0markdown-it-attrs-es5@1.2.0markdown-it-attrs@3.0.3markdown-it@11.0.0math-random@2.0.1memoize-one@5.1.1mime@2.4.6on-error-resume-next@1.1.0p-defer@3.0.0p-defer-es5@1.2.1react-say@2.0.2-master.ee7cd76react-scroll-to-bottom@3.0.1-master.9e2b9d8sanitize-html@1.27.4simple-update-in@2.2.0url-search-params-polyfill@8.1.0web-speech-cognitive-services@7.0.2-master.6004e4bwhatwg-fetch@3.4.0
- Development dependencies
- ๐ซ Update
create-react-app-based samples to resolvep-deferas peer dependency, by @compulim, in PR #3457 - ๐ซ Bump
encoding@0.1.13in06.recomposing-ui/c.smart-display, by @compulim, in PR #3458
Fixed
- Fixes #3431. Removed delay of first activity with
replyToIdpointing 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
4.10.0 - 2020-08-18
Breaking changes in this release:
- ๐ฅ 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.botAvatarInitialsandstyleOptions.userAvatarInitialsto 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.showAvatarInGrouptotrue.
- If you want to switch back to previous behaviors, please set
- ๐ฅ Default
botAvatarInitialsanduserAvatarInitialsis 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
- ๐ฅ
useRenderActivityhook is being deprecated, in favor of the newuseCreateActivityRendererhook. - ๐ฅ
useRenderActivityStatushook is being deprecated, in favor of the newuseCreateActivityStatusRendererhook. - ๐ฅ
useRenderAvatarhook is being deprecated, in favor of the newuseCreateAvatarRendererhook.
Changes in general middleware design
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.
Changes in activity middleware
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>;
};
}
Added
- 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
useObserveScrollPositionanduseScrollTohook, 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
- ๐ซ Added custom Emoji set sample, by @corinagum, in PR #3405
Changed
- 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.0babel-jest@26.2.2concurrently@5.2.0core-js@3.6.5global-agent@2.1.12husky@4.2.5jest@26.2.2jest-image-snapshot@4.1.0jest-junit@11.1.0jest-trx-results-processor@2.0.3lerna@3.22.1lint-staged@10.2.11prettier@2.0.5serve@11.3.2serve-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.0babel-jest@26.2.2concurrently@5.2.0copy-webpack-plugin@6.0.3core-js@3.6.5cross-env@7.0.2css-loader@4.2.0eslint-plugin-prettier@3.1.4eslint-plugin-react-hooks@4.0.8eslint-plugin-react@7.20.5eslint@7.6.0global-agent@2.1.12globalize-compiler@1.1.1html-webpack-plugin@4.3.0http-proxy-middleware@1.0.5jest@26.2.2node-dev@5.1.0prettier@2.0.5pug@3.0.0serve@11.3.2simple-update-in@2.2.0source-map-loader@1.0.1terser-webpack-plugin@3.1.0typescript@3.9.7webpack-cli@3.3.12webpack-stats-plugin@0.3.2webpack@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.0abort-controller-es5@1.2.0botframework-directlinejs@0.13.0core-js@3.6.5event-iterator@2.0.0event-target-shim-es5@1.2.0expect@25.5.0globalize@1.5.0markdown-it-attrs-es5@1.2.0markdown-it-attrs@3.0.3markdown-it@11.0.0math-random@2.0.0memoize-one@5.1.1on-error-resume-next@1.1.0p-defer-es5@1.2.1react-say@2.0.1sanitize-html@1.27.2simple-update-in@2.2.0url-search-params-polyfill@8.1.0web-speech-cognitive-services@7.0.1whatwg-fetch@3.2.0
- Development dependencies
Fixed
- 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-idlesample, by @compulim, in PR #3376
4.9.2 - 2020-07-14
Added
- Resolves #3182. Added stacked suggested actions height properties, by @corinagum, in PR #3235
- Localized strings in Cantonese (
yue), by @compulim, in PR #3289 - ๐ซ 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
Fixed
- 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
replyToIdthat reference an activity which is not ACK-ed, for up to 5 seconds - Disabled widgets will have
tabindex="-1"set, instead ofdisabledattribute - 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
classNameprop is not honored in<ReactWebChat>, by @compulim in PR #3300
4.9.1 - 2020-06-09
Breaking changes in this release:
- ๐ฅ Affecting Adaptive Cards, legacy cards and suggested actions
- For
openUrlcard 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
Added
- Resolves #3205. Added Direct Line App Service Extension protocol, by @compulim in PR #3206
- Resolves #3225. Support allowed scheme with
openUrlcard action, by @compulim in PR #3226 - Resolves #3252. Added
useObserveScrollPositionanduseScrollTohooks, by @compulim in PR #3268 - Resolves #3271. Added composition mode, which splits up
<ReactWebChat>into<Composer>and<BasicWebChat>, by @compulim in PR #3268 - ๐ซ 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
Changed
- 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 #3271. Updated post activity event sample to use composition mode, by @compulim in PR #3268
Fixed
- Fixes #1340. Card container should not be focusable if they do not have
tapAction, by @compulim in PR #3193 - Fixed #3196. Cards with
tapActionshould 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 noreferreris not sanitized, by @compulim in PR #3220 - Fixed #3223. Tap an
openUrlcard action should open URL in a new tab withnoopener noreferrerset, by @compulim in PR #3224
4.9.0 - 2020-05-11
Added
- Resolves #2897. Moved from JUnit to VSTest reporter with file attachments, by @compulim in PR #2990
- Added
aria-labelattribute 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
useFocushook and deprecatinguseFocusSendBoxhook, by @compulim in PR #3123- Modify
setFocusargument ofuseTextBoxSubmitto supportmainandsendBoxWithoutKeyboard
- Modify
- Fixes #1427. Support
disabledprop and addedactionPerformedClassNamein Adaptive Card and other legacy cards, by @compulim in PR #3150 - ๐ซ 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
Changed
- 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.7babel-jest@25.1.0concurrently@5.1.0core-js@3.6.4cross-env@7.0.2get-port@5.1.1husky@4.2.3jest@25.1.0jest-image-snapshot@2.12.0lerna@3.20.2lint-staged@10.1.1selenium-webdriver@4.0.0-alpha.7
- Other packages
@babel/core@7.8.7@babel/preset-env@7.8.7babel-jest@25.1.0babel-plugin-istanbul@6.0.0concurrently@5.1.0eslint-plugin-prettier@3.1.2eslint-plugin-react-hooks@2.5.0eslint-plugin-react@7.18.3eslint@6.8.0terser-webpack-plugin@2.3.5typescript@3.8.3webpack-cli@3.3.11webpack-stats-plugin@0.3.1webpack@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.0toembed/servicingPlan.json, by @compulim in PR #2986 - Bumped
microsoft-cognitiveservices-speech-sdk@1.10.1andweb-speech-cognitive-services@6.1.0, by @compulim in PR #3040 - Resolved #2886 and #2987, converged all references of
microsoft-cognitiveservices-speech-sdkto reduce footprint, by @compulim in PR #3079
Fixed
- Fixes #2989. Fix
observeOnceto use ES Observable call pattern, by @compulim in PR #2993 - Fixes #3024. Using bridge package
markdown-it-attrs-es5for consumingmarkdown-it-attrsfor 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
relattribute in therenderMarkdownfunction, by @tdurnford in PR #3033 - Fixes #2933. Fix
textshould not be ignored inmessageBackaction 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
speakproperty is falsy, by @compulim in PR #3059 - Fixes #2876.
messageBackandpostBackshould send even if bothtextandvalueis 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
4.8.1 - 2020-04-15
Fixed
- 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.localewhen sending to the bot, by @compulim in PR #3095 - Fixes #3096. Use
<ScreenReaderText>instead ofaria-labelfor message bubbles, by @compulim in PR #3097
4.8.0 - 2020-03-05
Breaking changes in this release:
- Localization
- ๐ฅ
localeprop:zh-YUEhas been renamed toyueto conform with Unicode standard.zh-YUEwill 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
overideLocalizedStringsprop for customization - String IDs have been refreshed and now use a standard format
- If the new strings are undesirable, please use the
- ๐ฅ
useLocalizeanduseLocalizeDateis deprecated. Please useuseLocalizeranduseDateFormatterinstead
- ๐ฅ
- Customizable typing indicator: data and hook related to typing indicator are being revamped in PR #2912
- ๐ฅ
lastTypingAtreducer is deprecated, usetypinginstead. The newer reducer contains typing indicator from the user - ๐ฅ
useLastTypingAt()hook is deprecated, useuseActiveTyping(duration?: number)instead. For all typing information, passInfinitytodurationargument
- ๐ฅ
- Customizable activity status: new
nextVisibleActivityto control activity status visibility- ๐ฅ Previously, we use
timestampClassNameto control if the activity should show or hide timestamp. ThetimestampClassNamewas added as aclassattribute the DOM element which contains the timestamp - ๐ฅ Today,
activityandnextVisibleActivityare passed to the middleware, so theactivityRendererMiddlewarecan decide whether the timestamp should be shown or not. For example, developers can group timestamp based on activity type
- ๐ฅ Previously, we use
Added
- Resolves #2753. Added support for updating an activity by the ID, by @compulim in PR #2825
- Added custom hooks -
useTimeranduseIntervalSince- to replace the headlessTimercomponent, by @tdurnford, in PR #2771 - Resolves #2720, added customizable activity status using
activityStatusMiddlewareprops, by @compulim, in PR #2788 - Added default
onErrorprop to theDictationcomponent, 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
- ๐ซ 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
Changed
- 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.4core-js@3.5.0coveralls@3.0.9husky@3.1.0jest-image-snapshot@2.11.1lerna@3.19.0lint-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.0copy-webpack-plugin@5.1.1eslint-plugin-react-hooks@2.3.0eslint-plugin-react@7.17.0eslint@6.7.2http-proxy-middleware@0.20.0terser-webpack-plugin@2.3.0typescript@3.7.3webpack@4.41.3
- Root package
- Production dependencies
coremath-random@1.0.4
bundle@babel/runtime@7.8.4core-js@3.5.0sanitize-html@1.20.0
componentsanitize-html@1.20.1
embed@babel/runtime@7.8.4core-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
sendTypingand 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
Fixed
- 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.waitfor conditions - Fixes #2776. Wait until button is shown/hid before taking screenshot
- Use a new timeout
fetchImagefor images
- Fixes #2780. Added the
telprotocol to theallowedSchemain thesanitize-htmloptions, by @tdurnford in PR #2787 - Fixes #2747. Moved
Timestampinto theSendStatuscomponent and removed theTimestampstyle set, by @tdurnford in PR #2786 - Fixes #2647. Update the
CroppedImagecomponentPropType, 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
credentialsshould returnauthorizationTokenandsubscriptionKeyas 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
concatMiddlewareshould allow any middleware to call its downstream middleware twice, by @compulim in PR #2839 - Fixes #2864. Replaced
DownloadAttachmentandUploadAttachmentwithFileAttachment, 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.2to workaround a bug from Angular/zone.js, by @compulim in PR #2960 - Fixes #2923. Added
downloadattribute 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-Cyrlandsr-Latnshould display Serbian texts, by @compulim in PR #2978 - Fixes #2979. Lock
microsoft-cognitiveservices-speech-sdkto1.8.1, by @compulim in PR #2980
4.7.1 - 2019-12-13
Changed
- Moved
core-jsfrom dev dependencies to dependencies inbotframework-directlinespeech-sdkpackage, by @tonyanziano, in PR #2727
4.7.0 - 2019-12-12
Breaking changes in this release:
- ๐ฅ
adaptiveCardHostConfigis being renamed toadaptiveCardsHostConfig- If you are using the deprecated
adaptiveCardHostConfig, we will rename it automatically
- If you are using the deprecated
Added
- 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/useWebChatUIContextfor cleaner code - PR #2652: Update samples to use hooks
- PR #2540:
- Bring your own Adaptive Cards package by specifying
adaptiveCardsPackageprop, by @compulim in PR #2543 - Fixes #2597. Modify
watchscript tostartand addtableflipscript for throwingnode_modules, by @corinagum in PR #2598 - Adds Arabic Language Support, by @midineo, in PR #2593
- Adds
AdaptiveCardsComposerandAdaptiveCardsContextfor 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
- ๐ซ Clear Conversation After Idle, by @tdurnford, in PR #2375
- ๐ซ Smart Display, by @compulim, in PR #2649
Changed
- 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.3babel-jest@24.9.0core-js@3.3.6coveralls@3.0.7husky@3.0.9jest-image-snapshot@2.11.0jest@24.9.0lerna@3.18.3lint-staged@9.4.2selenium-webdriver@4.0.0-alpha.5serve-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.0babel-plugin-istanbul@5.2.0concurrently@5.0.0copy-webpack-plugin@5.0.4eslint-plugin-prettier@3.1.1eslint-plugin-react-hooks@2.2.0eslint-plugin-react@7.16.0eslint@6.6.0http-proxy-middleware@0.20.0jest@24.9.0terser-webpack-plugin@2.2.1typescript@3.6.4webpack-cli@3.3.10webpack@4.41.2
- Root package
- Production dependencies
core@babel/runtime@7.6.3jsonwebtoken@8.5.1math-randomredux-saga@1.1.1simple-update-in@2.1.1
bundle@babel/runtime@7.6.3core-js@3.3.6markdown-it@10.0.0memoize-one@5.1.1sanitize-html@1.19.0url-search-params-polyfill@7.0.0
componentbytes@3.1.0memoize-one@5.1.1react-dictate-button@1.2.1react-redux@7.1.1remark@11.0.1sanitize-html@1.20.1simple-update-in@2.1.1strip-markdown@3.1.1
embed@babel/runtime@7.6.3core-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-plugininstead 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
Fixed
- 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
watchscript tostartand addtableflipscript for throwingnode_modules, by @corinagum in PR #2598 - Resolves #1835. Adds
suggestedActionLayouttodefaultStyleOptions, 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-withstring 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.ispolyfill for IE11, by @compulim in PR #2719 - Fixes #2723. Fix
renderMarkdownshould not be called if it isundefinedin 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
4.6.0 - 2019-10-31
Breaking changes in this release:
- ๐ฅ We will no longer include
reactandreact-domin our NPM package, instead, we will requires peer dependencies ofreact@^16.8.6andreact-dom@^16.8.6
Added
- Resolves #2157, added
emitTypingIndicatoraction 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
timestampFormatoption to the default style options and createdAbsoluteTimecomponent, by @tdurnford, in PR #2295 embed: Added ES5 polyfills and dev server, by @compulim, in PR #2315- Resolves #2380. Added
botAvatarBackgroundColoranduserAvatarBackgroundColorto the default style options, by @tdurnford in PR #2384 - Added full screen capability to
IFRAMEin theYouTubeContentandVimeoContentcomponents by @tdurnford in PR #2399 - Resolves #2461, added
isomorphic-reactandisomorphic-react-dompackages, 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
audioConfigprop 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
messageReactionactivities, 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
Changed
*: 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-transformtobabel-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
reactandreact-dom, in PR #2274/: Installreactandreact-domtodevDependenciesbundle: Movereactandreact-domfromdependenciestopeerDependenciescomponent: Removereactandreact-domfromdevDependenciesplayground: Removereactandreact-domfromdependenciessamples/*: Move to production version of Web Chat, and bump toreact@16.8.6andreact-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: MoveComposerto 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.1bundle:botframework-directlinejs@0.11.6component:react-film@1.3.0
Fixed
- 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
ScreenReaderTextcomponent, 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
pushButtonappearance 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-jsnot loading properly, by @compulim in PR #2514 - Fixes #2516. Disable microphone input for
expectinginput 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.jsshould 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
4.5.3 - 2019-10-10
Added
- 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
Changed
bundle: Bumped DirectLineJS to support metadata when uploading attachments, in PR #2433botframework-directlinejs@0.11.5- Removed DirectLineJS as a dev dependency for
componentbecause it was not referenced
Fixed
- 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.thumbnailUrlfield, by @compulim in PR #2433
4.5.2 - 2019-08-07
Fixed
- Fixes #2273. Add
ScreenReaderTextcomponent, by @corinagum in PR #2278
4.5.1 - 2019-08-01
Fixed
- 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
4.5.0 - 2019-07-10
Added
*: Addedeslintto 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
richCardWrapTitletodefaultStyleOptions, by @tdurnford, in PR #2115 - Added test harness for speech recognition and synthesis for #2122, by @compulim, in PR #2153
- ๐ซ 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
Changed
*: 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
Fixed
- Fixes #1974. Update
/docs/folder to/media/and delete unused images, by @corinagum in PR #1975 - Fixes #1980. Changed
sendBoxTextAreastyles to break words longer than thetextarea, by @tdurnford in PR #1986 - Fixes #1969. Move
styleSets 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**.jslinks 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.ymlfor embed package, by @compulim in PR #2135 - Fixes #2106. Fix
AdaptiveCardHostConfigwarning associated with theCommonCardcomponent, by @tdurnford in PR #2108 - Fixes #1872. Fixed
observeOnceto unsubscribe properly, by @compulim in PR #2140 - Fixes #2022. Fixed
"expectingInput"ininputHintis not respected, by @compulim and @corinagum in PR #2149 and PR #2166
4.4.1 - 2019-05-02
Added
- Adds handling of reconnection, by @compulim, in PR #1880
- Adds embed page, by @compulim, in PR #1910, PR #1928 and PR #1938
Changed
- Deployment: Bumps to
blobxfer@1.7.1, by @compulim, in PR #1897 - Deployment: Adds
charsetto 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
Fixed
- Fixes #1423. Added sample for hosting WebChat in Angular, by @omarsourour in PR #1813
- Fixes#1767. Remove
cursor: pointerfrom buttons, by @corinagum in PR #1819 - Fixes #1774. Add
styleSetOptionto 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
4.3.0 - 2019-03-04
Added
- Resolves #1383. Added options to hide upload button, by @compulim in PR #1491
- Adds support of avatar image, thru
styleOptions.botAvatarImageandstyleOptions.userAvatarImage, in PR #1486 - Adds ability to style sendbox background and text color, thru
styleOptions.sendBoxBackgroundandstyleOptions.sendBoxTextColor, in PR #1575 core: AddssendEvent, in PR #1286core: AddsCONNECT_FULFILLINGaction to workaroundredux-sagadesign 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*: Addsusernameback to activity, fixed #1321, by @compulim, in PR #1682component: Allow root component height and width customization viastyleOptions.rootHeightandstyleOptions.rootWidth, by @tonyanziano, in PR #1702component: AddedcardActionMiddlewareto customize the behavior of card action, by @compulim, in PR #1704bundle: AddwatermarkandstreamUrlparameters to createDirectLine, by @corinagum, in PR #1817component: Addedtextareaoption toSendBoxper issues #17 and #124, by @tdurnford, in PR #1889component: AddedsuggestedActionimages per issue #1739, by @tdurnford, in PR #1909- ๐ซ
core: Programmatic access to post activity, in #1568 - ๐ซ
component: Hide upload button, in #1491 - ๐ซ
component: Avatar image, in #1486 - ๐ซ
core: Incoming activity to JavaScript event, in #1567 - ๐ซ
core: Send welcome event, in PR #1286 - ๐ซ
core: Send typing indicator, in #1541 - ๐ซ
component: Password input activity, in #1569 - ๐ซ
component: Hybrid speech engine, in #1617 - ๐ซ
component: Use Speech Services token for speech UI sample, in #1634 - ๐ซ
component: Selectable Activity, in #1624 - ๐ซ
component: Chat Send History, in #1678 - ๐ซ
component: Customizing open URL behavior, in PR #1704
Changed
- Bumps
botframework-directlinejsto 0.11.4 in PR #1783 - Moves
botAvatarImageanduserAvatarImagetostyleOptions.botAvatarImageandstyleOptions.userAvatarImagerespectively, 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.2andreact-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
- ๐ซ
*: Updated minimizable Web Chat sample to useWEB_CHAT/SEND_EVENTaction, in #1631 - ๐ซ
*: UpdateREADME.md's for samples 05-10 #1444 and improve accessibility of anchors #1681, by @corinagum in PR #1710
Removed
botAvatarImageanduserAvatarImageprops, as they are moved insidestyleOptions, in PR #1486sendTypingprops is now renamed tosendTypingIndicator, by @compulim, in PR #1584
Fixed
- Fixes #1360. Added
rolesto 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: FixedbotAvatarInitialsanduserAvatarInitialsfunctionality 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 withouttapshould be rendered properly, by @compulim in PR #1577core: Some sagas missed handling successive actions, in PR #1286core:incomingActivitySagamay 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
messageBacksupport, 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.isNaNis not available in IE11, by @compulim in PR #1628bundle: Fix #1652. PasspollingIntervalto 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 agoand missing translations, by @pedropacheco92 in PR #1745component: Fix #1741 wherescrollToEndButtondoes not havetype="button"by @corinagum in PR #1743component: Fix #1625 to updateREADME.mdby @corinagum in PR #1752
4.2.0 - 2018-12-11
Added
- Build: Development build now include instrumentation code, updated build scripts
npm run buildwill build for development with instrumentation codenpm run prepublishOnlywill build for productionnpm run watchwill 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-snapshotandpixelmatch - Code is instrumented using
istanbul - Test report is hosted on Coveralls
- Added French localization, by @tao1 in PR #1327
- Resolve #1344, by updating
README.mdand adding validation logic foruserIDprops, in #1447- If
userIDprops present and also embedded in Direct Line token, will use the one from Direct Line token - If
userIDprops present, they must be string and not prefixed withdl_, to avoid confusion betweenuserIDprops and Direct Line embedded user ID (which is forgery-proof) - If
userIDprops does not pass the validation test or not specified, Web Chat will usedefault-userinstead
- If
- Added support for Cognitive Services Speech to Text and Text to Speech in PR #1442
- ๐ซ 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)
Changed
- 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.1jestbabel-jest@23.6.0jest@23.6.0ts-jest@23.10.4
typescript@3.1.6webpackwebpack@4.24.0webpack-command@0.4.2
- Fixes Russian localization by @odysseus1973 in PR #1377
Fixed
- Fixes #1397. Patched activities without
fromfield, 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
4.1.0 - 2018-10-31
Added
- Initial release of Web Chat v4