botframework-webchat-component
Version:
React component of botframework-webchat
98 lines (97 loc) • 14.3 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = createModalDialogStyleSet;
var _Constants = require("./Constants");
var _CSSTokens = _interopRequireDefault(require("../CSSTokens"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
// TODO: Temporarily disable dark theme until we defined the link color and stuff for Markdown.
var DARK_THEME_SELECTOR = '@media (forced-colors: none) and not (forced-colors: none)'; // Always return false
var LIGHT_THEME_SELECTOR = '@media (forced-colors: none)';
function createModalDialogStyleSet() {
var _webchat__modalDi, _webchat__modalDi3, _webchat__modalDi4, _webchat__modalDia;
return {
'&.webchat__modal-dialog': (_webchat__modalDia = {
fontFamily: _CSSTokens.default.FontPrimary,
maxHeight: 'calc(100% - 32px)',
maxWidth: 'calc(100% - 32px)',
width: '100%'
}, _defineProperty(_webchat__modalDia, _Constants.NOT_FORCED_COLORS_SELECTOR, {
backgroundColor: 'transparent',
border: 0
}), _defineProperty(_webchat__modalDia, '& .webchat__modal-dialog__box', (_webchat__modalDi = {
borderRadius: 2,
overflow: 'hidden',
margin: 'auto',
'@media screen and (max-width: 639px)': {
maxWidth: 'unset'
},
'@media screen and (min-width: 640px)': {
maxWidth: '60%',
minWidth: 'calc(640px - 32px)',
width: '60%'
}
}, _defineProperty(_webchat__modalDi, LIGHT_THEME_SELECTOR, {
// From Power BI:
// boxShadow: '0 6.4px 14.4px rgb(0 0 0 / 13%), 0 1.2px 3.6px rgb(0 0 0 / 11%)',
// From Fluent (depth-16 for teaching callouts):
// boxShadow: '0px 8px 16px rgba(0, 0, 0, 0.14), 0px 0px 2px rgba(0, 0, 0, 0.12)',
backgroundColor: 'White',
boxShadow: '0px 8px 16px rgba(0, 0, 0, 0.14), 0px 0px 2px rgba(0, 0, 0, 0.12)'
}), _defineProperty(_webchat__modalDi, DARK_THEME_SELECTOR, {
backgroundColor: 'Black',
boxShadow: '0px 8px 16px rgba(0, 0, 0, 0.28), 0px 0px 2px rgba(0, 0, 0, 0.24)',
color: 'White'
}), _defineProperty(_webchat__modalDi, _Constants.FORCED_COLORS_SELECTOR, {
// In high-contrast mode, we use "outline" instead of "box-shadow".
outlineColor: 'ButtonBorder',
outlineStyle: 'solid',
outlineWidth: 4
}), _webchat__modalDi)), _defineProperty(_webchat__modalDia, '& .webchat__modal-dialog__close-button-layout', {
float: 'right',
padding: _CSSTokens.default.PaddingRegular
}), _defineProperty(_webchat__modalDia, '& .webchat__modal-dialog__close-button', _defineProperty({
height: 30,
width: 30
}, _Constants.NOT_FORCED_COLORS_SELECTOR, {
appearance: 'none',
backgroundColor: 'transparent',
borderColor: 'transparent',
borderRadius: 4,
borderStyle: 'solid',
borderWidth: 2,
color: '#999',
outline: 0
})), _defineProperty(_webchat__modalDia, '& .webchat__modal-dialog__close-button:focus', (_webchat__modalDi3 = {}, _defineProperty(_webchat__modalDi3, LIGHT_THEME_SELECTOR, {
borderColor: 'black',
'&:active': {
backgroundColor: '#EDEBE9' // neutralLight (gray30)
},
'&:not(:active):hover': {
backgroundColor: '#F3F2F1' // neutralLighter (gray20)
}
}), _defineProperty(_webchat__modalDi3, DARK_THEME_SELECTOR, {
borderColor: 'white',
'&:active': {
backgroundColor: '#292827' // neutralLight (gray30)
},
'&:not(:active):hover': {
backgroundColor: '#252423' // neutralLight (gray30)
}
}), _webchat__modalDi3)), _defineProperty(_webchat__modalDia, '& .webchat__modal-dialog__close-button-image', (_webchat__modalDi4 = {
height: 10,
width: 10
}, _defineProperty(_webchat__modalDi4, LIGHT_THEME_SELECTOR, {
fill: '#323130' // neutralPrimary (gray160)
}), _defineProperty(_webchat__modalDi4, DARK_THEME_SELECTOR, {
fill: '#F3F2F1' // neutralPrimary (gray160)
}), _defineProperty(_webchat__modalDi4, _Constants.FORCED_COLORS_SELECTOR, {
fill: 'currentcolor'
}), _webchat__modalDi4)), _defineProperty(_webchat__modalDia, '& .webchat__modal-dialog__body', {
margin: "calc(".concat(_CSSTokens.default.PaddingRegular, " * 2)")
}), _webchat__modalDia)
};
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQ29uc3RhbnRzIiwicmVxdWlyZSIsIl9DU1NUb2tlbnMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0Iiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJfZGVmaW5lUHJvcGVydHkiLCJrZXkiLCJ2YWx1ZSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiREFSS19USEVNRV9TRUxFQ1RPUiIsIkxJR0hUX1RIRU1FX1NFTEVDVE9SIiwiY3JlYXRlTW9kYWxEaWFsb2dTdHlsZVNldCIsIl93ZWJjaGF0X19tb2RhbERpIiwiX3dlYmNoYXRfX21vZGFsRGkzIiwiX3dlYmNoYXRfX21vZGFsRGk0IiwiX3dlYmNoYXRfX21vZGFsRGlhIiwiZm9udEZhbWlseSIsIkNTU1Rva2VucyIsIkZvbnRQcmltYXJ5IiwibWF4SGVpZ2h0IiwibWF4V2lkdGgiLCJ3aWR0aCIsIk5PVF9GT1JDRURfQ09MT1JTX1NFTEVDVE9SIiwiYmFja2dyb3VuZENvbG9yIiwiYm9yZGVyIiwiYm9yZGVyUmFkaXVzIiwib3ZlcmZsb3ciLCJtYXJnaW4iLCJtaW5XaWR0aCIsImJveFNoYWRvdyIsImNvbG9yIiwiRk9SQ0VEX0NPTE9SU19TRUxFQ1RPUiIsIm91dGxpbmVDb2xvciIsIm91dGxpbmVTdHlsZSIsIm91dGxpbmVXaWR0aCIsImZsb2F0IiwicGFkZGluZyIsIlBhZGRpbmdSZWd1bGFyIiwiaGVpZ2h0IiwiYXBwZWFyYW5jZSIsImJvcmRlckNvbG9yIiwiYm9yZGVyU3R5bGUiLCJib3JkZXJXaWR0aCIsIm91dGxpbmUiLCJmaWxsIiwiY29uY2F0Il0sInNvdXJjZVJvb3QiOiJjb21wb25lbnQ6Ly8vIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvU3R5bGVzL1N0eWxlU2V0L01vZGFsRGlhbG9nLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZPUkNFRF9DT0xPUlNfU0VMRUNUT1IsIE5PVF9GT1JDRURfQ09MT1JTX1NFTEVDVE9SIH0gZnJvbSAnLi9Db25zdGFudHMnO1xuXG4vLyBUT0RPOiBUZW1wb3JhcmlseSBkaXNhYmxlIGRhcmsgdGhlbWUgdW50aWwgd2UgZGVmaW5lZCB0aGUgbGluayBjb2xvciBhbmQgc3R1ZmYgZm9yIE1hcmtkb3duLlxuY29uc3QgREFSS19USEVNRV9TRUxFQ1RPUiA9ICdAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IG5vbmUpIGFuZCBub3QgKGZvcmNlZC1jb2xvcnM6IG5vbmUpJzsgLy8gQWx3YXlzIHJldHVybiBmYWxzZVxuY29uc3QgTElHSFRfVEhFTUVfU0VMRUNUT1IgPSAnQG1lZGlhIChmb3JjZWQtY29sb3JzOiBub25lKSc7XG5cbmltcG9ydCBDU1NUb2tlbnMgZnJvbSAnLi4vQ1NTVG9rZW5zJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gY3JlYXRlTW9kYWxEaWFsb2dTdHlsZVNldCgpIHtcbiAgcmV0dXJuIHtcbiAgICAnJi53ZWJjaGF0X19tb2RhbC1kaWFsb2cnOiB7XG4gICAgICBmb250RmFtaWx5OiBDU1NUb2tlbnMuRm9udFByaW1hcnksXG4gICAgICBtYXhIZWlnaHQ6ICdjYWxjKDEwMCUgLSAzMnB4KScsXG4gICAgICBtYXhXaWR0aDogJ2NhbGMoMTAwJSAtIDMycHgpJyxcbiAgICAgIHdpZHRoOiAnMTAwJScsXG5cbiAgICAgIFtOT1RfRk9SQ0VEX0NPTE9SU19TRUxFQ1RPUl06IHtcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICBib3JkZXI6IDBcbiAgICAgIH0sXG5cbiAgICAgICcmIC53ZWJjaGF0X19tb2RhbC1kaWFsb2dfX2JveCc6IHtcbiAgICAgICAgYm9yZGVyUmFkaXVzOiAyLFxuICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgICAgIG1hcmdpbjogJ2F1dG8nLFxuXG4gICAgICAgICdAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MzlweCknOiB7XG4gICAgICAgICAgbWF4V2lkdGg6ICd1bnNldCdcbiAgICAgICAgfSxcblxuICAgICAgICAnQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjQwcHgpJzoge1xuICAgICAgICAgIG1heFdpZHRoOiAnNjAlJyxcbiAgICAgICAgICBtaW5XaWR0aDogJ2NhbGMoNjQwcHggLSAzMnB4KScsXG4gICAgICAgICAgd2lkdGg6ICc2MCUnXG4gICAgICAgIH0sXG5cbiAgICAgICAgW0xJR0hUX1RIRU1FX1NFTEVDVE9SXToge1xuICAgICAgICAgIC8vIEZyb20gUG93ZXIgQkk6XG4gICAgICAgICAgLy8gYm94U2hhZG93OiAnMCA2LjRweCAxNC40cHggcmdiKDAgMCAwIC8gMTMlKSwgMCAxLjJweCAzLjZweCByZ2IoMCAwIDAgLyAxMSUpJyxcbiAgICAgICAgICAvLyBGcm9tIEZsdWVudCAoZGVwdGgtMTYgZm9yIHRlYWNoaW5nIGNhbGxvdXRzKTpcbiAgICAgICAgICAvLyBib3hTaGFkb3c6ICcwcHggOHB4IDE2cHggcmdiYSgwLCAwLCAwLCAwLjE0KSwgMHB4IDBweCAycHggcmdiYSgwLCAwLCAwLCAwLjEyKScsXG4gICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnV2hpdGUnLFxuICAgICAgICAgIGJveFNoYWRvdzogJzBweCA4cHggMTZweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwcHggMHB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMTIpJ1xuICAgICAgICB9LFxuXG4gICAgICAgIFtEQVJLX1RIRU1FX1NFTEVDVE9SXToge1xuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJ0JsYWNrJyxcbiAgICAgICAgICBib3hTaGFkb3c6ICcwcHggOHB4IDE2cHggcmdiYSgwLCAwLCAwLCAwLjI4KSwgMHB4IDBweCAycHggcmdiYSgwLCAwLCAwLCAwLjI0KScsXG4gICAgICAgICAgY29sb3I6ICdXaGl0ZSdcbiAgICAgICAgfSxcblxuICAgICAgICBbRk9SQ0VEX0NPTE9SU19TRUxFQ1RPUl06IHtcbiAgICAgICAgICAvLyBJbiBoaWdoLWNvbnRyYXN0IG1vZGUsIHdlIHVzZSBcIm91dGxpbmVcIiBpbnN0ZWFkIG9mIFwiYm94LXNoYWRvd1wiLlxuICAgICAgICAgIG91dGxpbmVDb2xvcjogJ0J1dHRvbkJvcmRlcicsXG4gICAgICAgICAgb3V0bGluZVN0eWxlOiAnc29saWQnLFxuICAgICAgICAgIG91dGxpbmVXaWR0aDogNFxuICAgICAgICB9XG4gICAgICB9LFxuXG4gICAgICAnJiAud2ViY2hhdF9fbW9kYWwtZGlhbG9nX19jbG9zZS1idXR0b24tbGF5b3V0Jzoge1xuICAgICAgICBmbG9hdDogJ3JpZ2h0JyxcbiAgICAgICAgcGFkZGluZzogQ1NTVG9rZW5zLlBhZGRpbmdSZWd1bGFyXG4gICAgICB9LFxuXG4gICAgICAnJiAud2ViY2hhdF9fbW9kYWwtZGlhbG9nX19jbG9zZS1idXR0b24nOiB7XG4gICAgICAgIGhlaWdodDogMzAsXG4gICAgICAgIHdpZHRoOiAzMCxcblxuICAgICAgICBbTk9UX0ZPUkNFRF9DT0xPUlNfU0VMRUNUT1JdOiB7XG4gICAgICAgICAgYXBwZWFyYW5jZTogJ25vbmUnLFxuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgICBib3JkZXJDb2xvcjogJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgICBib3JkZXJSYWRpdXM6IDQsXG4gICAgICAgICAgYm9yZGVyU3R5bGU6ICdzb2xpZCcsXG4gICAgICAgICAgYm9yZGVyV2lkdGg6IDIsXG4gICAgICAgICAgY29sb3I6ICcjOTk5JyxcbiAgICAgICAgICBvdXRsaW5lOiAwXG4gICAgICAgIH1cbiAgICAgIH0sXG5cbiAgICAgICcmIC53ZWJjaGF0X19tb2RhbC1kaWFsb2dfX2Nsb3NlLWJ1dHRvbjpmb2N1cyc6IHtcbiAgICAgICAgW0xJR0hUX1RIRU1FX1NFTEVDVE9SXToge1xuICAgICAgICAgIGJvcmRlckNvbG9yOiAnYmxhY2snLFxuXG4gICAgICAgICAgJyY6YWN0aXZlJzoge1xuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnI0VERUJFOScgLy8gbmV1dHJhbExpZ2h0IChncmF5MzApXG4gICAgICAgICAgfSxcblxuICAgICAgICAgICcmOm5vdCg6YWN0aXZlKTpob3Zlcic6IHtcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNGM0YyRjEnIC8vIG5ldXRyYWxMaWdodGVyIChncmF5MjApXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIFtEQVJLX1RIRU1FX1NFTEVDVE9SXToge1xuICAgICAgICAgIGJvcmRlckNvbG9yOiAnd2hpdGUnLFxuXG4gICAgICAgICAgJyY6YWN0aXZlJzoge1xuICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnIzI5MjgyNycgLy8gbmV1dHJhbExpZ2h0IChncmF5MzApXG4gICAgICAgICAgfSxcblxuICAgICAgICAgICcmOm5vdCg6YWN0aXZlKTpob3Zlcic6IHtcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJyMyNTI0MjMnIC8vIG5ldXRyYWxMaWdodCAoZ3JheTMwKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcblxuICAgICAgJyYgLndlYmNoYXRfX21vZGFsLWRpYWxvZ19fY2xvc2UtYnV0dG9uLWltYWdlJzoge1xuICAgICAgICBoZWlnaHQ6IDEwLFxuICAgICAgICB3aWR0aDogMTAsXG5cbiAgICAgICAgW0xJR0hUX1RIRU1FX1NFTEVDVE9SXToge1xuICAgICAgICAgIGZpbGw6ICcjMzIzMTMwJyAvLyBuZXV0cmFsUHJpbWFyeSAoZ3JheTE2MClcbiAgICAgICAgfSxcblxuICAgICAgICBbREFSS19USEVNRV9TRUxFQ1RPUl06IHtcbiAgICAgICAgICBmaWxsOiAnI0YzRjJGMScgLy8gbmV1dHJhbFByaW1hcnkgKGdyYXkxNjApXG4gICAgICAgIH0sXG5cbiAgICAgICAgW0ZPUkNFRF9DT0xPUlNfU0VMRUNUT1JdOiB7XG4gICAgICAgICAgZmlsbDogJ2N1cnJlbnRjb2xvcidcbiAgICAgICAgfVxuICAgICAgfSxcblxuICAgICAgJyYgLndlYmNoYXRfX21vZGFsLWRpYWxvZ19fYm9keSc6IHtcbiAgICAgICAgbWFyZ2luOiBgY2FsYygke0NTU1Rva2Vucy5QYWRkaW5nUmVndWxhcn0gKiAyKWBcbiAgICAgIH1cbiAgICB9XG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLFVBQUEsR0FBQUMsT0FBQTtBQU1BLElBQUFDLFVBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUFxQyxTQUFBRSx1QkFBQUMsR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLEtBQUFFLE9BQUEsRUFBQUYsR0FBQTtBQUFBLFNBQUFHLGdCQUFBSCxHQUFBLEVBQUFJLEdBQUEsRUFBQUMsS0FBQSxRQUFBRCxHQUFBLElBQUFKLEdBQUEsSUFBQU0sTUFBQSxDQUFBQyxjQUFBLENBQUFQLEdBQUEsRUFBQUksR0FBQSxJQUFBQyxLQUFBLEVBQUFBLEtBQUEsRUFBQUcsVUFBQSxRQUFBQyxZQUFBLFFBQUFDLFFBQUEsb0JBQUFWLEdBQUEsQ0FBQUksR0FBQSxJQUFBQyxLQUFBLFdBQUFMLEdBQUE7QUFKckM7QUFDQSxJQUFNVyxtQkFBbUIsR0FBRyw0REFBNEQsQ0FBQyxDQUFDO0FBQzFGLElBQU1DLG9CQUFvQixHQUFHLDhCQUE4QjtBQUk1QyxTQUFTQyx5QkFBeUJBLENBQUEsRUFBRztFQUFBLElBQUFDLGlCQUFBLEVBQUFDLGtCQUFBLEVBQUFDLGtCQUFBLEVBQUFDLGtCQUFBO0VBQ2xELE9BQU87SUFDTCx5QkFBeUIsR0FBQUEsa0JBQUE7TUFDdkJDLFVBQVUsRUFBRUMsa0JBQVMsQ0FBQ0MsV0FBVztNQUNqQ0MsU0FBUyxFQUFFLG1CQUFtQjtNQUM5QkMsUUFBUSxFQUFFLG1CQUFtQjtNQUM3QkMsS0FBSyxFQUFFO0lBQU0sR0FBQXBCLGVBQUEsQ0FBQWMsa0JBQUEsRUFFWk8scUNBQTBCLEVBQUc7TUFDNUJDLGVBQWUsRUFBRSxhQUFhO01BQzlCQyxNQUFN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