Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# See here for image contents: https://github.com/microsoft/vscode-dev-containers/tree/v0.192.0/containers/javascript-node/.devcontainer/base.Dockerfile

# [Choice] Node.js version: 16, 14, 12
ARG VARIANT="16-buster"
FROM mcr.microsoft.com/vscode/devcontainers/javascript-node:0-${VARIANT}

# [Optional] Uncomment this section to install additional OS packages.
# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
# && apt-get -y install --no-install-recommends <your-package-list-here>

# [Optional] Uncomment if you want to install an additional version of node using nvm
# ARG EXTRA_NODE_VERSION=10
# RUN su node -c "source /usr/local/share/nvm/nvm.sh && nvm install ${EXTRA_NODE_VERSION}"

# [Optional] Uncomment if you want to install more global node modules
# RUN su node -c "npm install -g <your-package-list-here>"
29 changes: 29 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at:
// https://github.com/microsoft/vscode-dev-containers/tree/v0.192.0/containers/javascript-node
{
"name": "Node.js",
"build": {
"dockerfile": "Dockerfile",
// Update 'VARIANT' to pick a Node version: 12, 14, 16
"args": { "VARIANT": "14" }
},

// Set *default* container specific settings.json values on container create.
"settings": {},

// Add the IDs of extensions you want installed when the container is created.
"extensions": ["dbaeumer.vscode-eslint", "compulim.compulim-vscode-closetag", "esbenp.prettier-vscode"],

// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [],

// Use 'postCreateCommand' to run commands after the container is created.
"postCreateCommand": "npm install && npm run bootstrap && npm run build",

// Comment out connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root.
"remoteUser": "node",

"features": {
"docker-in-docker": "latest"
}
}
44 changes: 44 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,50 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
- Style options are renamed: `suggestedActionDisabledXXX` become `suggestedActionXXXOnDisabled`
- Fixes [#4028](https://github.com/microsoft/BotFramework-WebChat/issues/4028). Added new keyboard focus indicator for send box buttons, by [@compulim](https://github.com/compulim), in PR [#4035](https://github.com/microsoft/BotFramework-WebChat/pull/4035)
- New style options are introduced: `sendBoxButtonXXXOnActive`, `sendBoxButtonXXXOnFocus`, `sendBoxButtonXXXOnHover`, `sendBoxButtonKeyboardFocusIndicatorXXX`
- Fixes [#4015](https://github.com/microsoft/BotFramework-WebChat/issues/4015). Added `role="heading"` to titles of rich card, by [@compulim](https://github.com/compulim), in PR [#4074](https://github.com/microsoft/BotFramework-WebChat/pull/4074)

### Changed

- Bumped all dependencies to the latest versions, by [@compulim](https://github.com/compulim) in PR [#4074](https://github.com/microsoft/BotFramework-WebChat/pull/4074)
- Production dependencies
- [`@babel/runtime@7.15.4`](https://npmjs.com/package/@babel/runtime)
- [`adaptivecards@2.10.0`](https://npmjs.com/package/adaptivecards)
- [`base64-arraybuffer@1.0.1`](https://npmjs.com/package/base64-arraybuffer)
- [`core-js@3.18.3`](https://npmjs.com/package/core-js)
- [`markdown-it-attrs-es5@2.0.1`](https://npmjs.com/package/markdown-it-attrs-es5)
- [`react-film@3.1.0`](https://npmjs.com/package/react-film)
- [`react-say@2.1.0`](https://npmjs.com/package/react-say)
- [`react-scroll-to-bottom@4.2.0`](https://npmjs.com/package/react-scroll-to-bottom)
- Development dependencies
- [`@babel/cli@^7.15.7`](https://npmjs.com/package/@babel/cli)
- [`@babel/core@^7.15.8`](https://npmjs.com/package/@babel/core)
- [`@babel/plugin-proposal-object-rest-spread@^7.15.6`](https://npmjs.com/package/@babel/plugin-proposal-object-rest-spread)
- [`@babel/plugin-transform-runtime@^7.15.8`](https://npmjs.com/package/@babel/plugin-transform-runtime)
- [`@babel/preset-env@^7.15.8`](https://npmjs.com/package/@babel/preset-env)
- [`@babel/preset-typescript@^7.15.0`](https://npmjs.com/package/@babel/preset-typescript)
- [`@types/node@^16.10.9`](https://npmjs.com/package/@types/node)
- [`@types/react@^17.0.29`](https://npmjs.com/package/@types/react)
- [`@typescript-eslint/eslint-plugin@^4.33.0`](https://npmjs.com/package/@typescript-eslint/eslint-plugin)
- [`@typescript-eslint/parser@^4.33.0`](https://npmjs.com/package/@typescript-eslint/parser)
- [`babel-jest@^27.2.5`](https://npmjs.com/package/babel-jest)
- [`concurrently@^6.3.0`](https://npmjs.com/package/concurrently)
- [`core-js@^3.18.3`](https://npmjs.com/package/core-js)
- [`esbuild@^0.12.29`](https://npmjs.com/package/esbuild)
- [`eslint-plugin-prettier@^3.4.1`](https://npmjs.com/package/eslint-plugin-prettier)
- [`eslint-plugin-react@^7.26.1`](https://npmjs.com/package/eslint-plugin-react)
- [`eslint@^7.32.0`](https://npmjs.com/package/eslint)
- [`istanbul-lib-coverage@^3.0.2`](https://npmjs.com/package/istanbul-lib-coverage)
- [`jest-environment-node@^27.2.5`](https://npmjs.com/package/jest-environment-node)
- [`jest@^27.2.5`](https://npmjs.com/package/jest)
- [`node-fetch@^2.6.5`](https://npmjs.com/package/node-fetch)
- [`prettier@^2.4.1`](https://npmjs.com/package/prettier)
- [`restify@^8.6.0`](https://npmjs.com/package/restify)
- [`selenium-webdriver@^4.0.0`](https://npmjs.com/package/selenium-webdriver)
- [`serve@^12.0.1`](https://npmjs.com/package/serve)
- [`strip-ansi@^6.0.1`](https://npmjs.com/package/strip-ansi)
- [`terser-webpack-plugin@^5.2.4`](https://npmjs.com/package/terser-webpack-plugin)
- [`webpack-cli@^4.9.0`](https://npmjs.com/package/webpack-cli)
- [`webpack@^5.58.2`](https://npmjs.com/package/webpack)

### Samples

Expand Down
2 changes: 1 addition & 1 deletion __tests__/.prettierrc.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
arrowParens: avoid
bracketSpacing: true
jsxBracketSameLine: false
bracketSameLine: false
printWidth: 120
proseWrap: preserve
quoteProps: as-needed
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
33 changes: 33 additions & 0 deletions __tests__/html/accessibility.heroCard.heading.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<!DOCTYPE html>
<html lang="en-US">
<head>
<link href="/assets/index.css" rel="stylesheet" type="text/css" />
<script crossorigin="anonymous" src="/test-harness.js"></script>
<script crossorigin="anonymous" src="/test-page-object.js"></script>
<script crossorigin="anonymous" src="/__dist__/webchat-es5.js"></script>
</head>
<body>
<div id="webchat"></div>
<script>
run(async function () {
const store = testHelpers.createStore();
const directLine = WebChat.createDirectLine({ token: await testHelpers.token.fetchDirectLineToken() });
const baseProps = { directLine, store };
const webChatElement = document.getElementById('webchat');

WebChat.renderWebChat(baseProps, webChatElement);

await pageConditions.uiConnected();

await pageObjects.sendMessageViaSendBox('herocard', { waitForSend: true });
await pageConditions.minNumActivitiesShown(2);
await pageConditions.scrollToBottomCompleted();

expect(document.querySelector('.ac-textBlock[role="heading"]')).toHaveProperty(
'innerText',
'Details about image 1'
);
});
</script>
</body>
</html>
6 changes: 6 additions & 0 deletions __tests__/html/accessibility.heroCard.heading.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
/** @jest-environment ./packages/test/harness/src/host/jest/WebDriverEnvironment.js */

describe('accessibility requirement for hero card', () => {
test('should have title text with role="heading"', () =>
runHTML('accessibility.heroCard.heading'));
});
Loading