botframework-webchat-component
Version:
React component of botframework-webchat
112 lines (110 loc) • 14.6 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = createSendBoxButtonStyle;
function createSendBoxButtonStyle(_ref) {
var sendBoxButtonColor = _ref.sendBoxButtonColor,
sendBoxButtonColorOnActive = _ref.sendBoxButtonColorOnActive,
sendBoxButtonColorOnDisabled = _ref.sendBoxButtonColorOnDisabled,
sendBoxButtonColorOnFocus = _ref.sendBoxButtonColorOnFocus,
sendBoxButtonColorOnHover = _ref.sendBoxButtonColorOnHover,
sendBoxButtonKeyboardFocusIndicatorBorderColor = _ref.sendBoxButtonKeyboardFocusIndicatorBorderColor,
sendBoxButtonKeyboardFocusIndicatorBorderRadius = _ref.sendBoxButtonKeyboardFocusIndicatorBorderRadius,
sendBoxButtonKeyboardFocusIndicatorBorderStyle = _ref.sendBoxButtonKeyboardFocusIndicatorBorderStyle,
sendBoxButtonKeyboardFocusIndicatorBorderWidth = _ref.sendBoxButtonKeyboardFocusIndicatorBorderWidth,
sendBoxButtonKeyboardFocusIndicatorInset = _ref.sendBoxButtonKeyboardFocusIndicatorInset,
sendBoxButtonShadeBorderRadius = _ref.sendBoxButtonShadeBorderRadius,
sendBoxButtonShadeColor = _ref.sendBoxButtonShadeColor,
sendBoxButtonShadeColorOnActive = _ref.sendBoxButtonShadeColorOnActive,
sendBoxButtonShadeColorOnDisabled = _ref.sendBoxButtonShadeColorOnDisabled,
sendBoxButtonShadeColorOnFocus = _ref.sendBoxButtonShadeColorOnFocus,
sendBoxButtonShadeColorOnHover = _ref.sendBoxButtonShadeColorOnHover,
sendBoxButtonShadeInset = _ref.sendBoxButtonShadeInset,
sendBoxHeight = _ref.sendBoxHeight,
subtle = _ref.subtle;
return {
'&.webchat__icon-button': {
alignItems: 'center',
appearance: 'none',
backgroundColor: 'Transparent',
border: 0,
display: 'flex',
fill: sendBoxButtonColor || subtle,
justifyContent: 'center',
outline: 0,
padding: 0,
position: 'relative',
width: sendBoxHeight,
// We use the sendBoxHeight, so the button looks square
'&:not(.webchat__icon-button--stretch)': {
height: sendBoxHeight
},
// Order of style preferences (based on effort of user gesture): disabled > active > hover > focus.
// Keyboard focus indicator styles applied by :focus-visible do not conflict with :active/:hover/:focus, so it is not included here.
'&:disabled, &[aria-disabled="true"]': {
fill: sendBoxButtonColorOnDisabled,
'& .webchat__icon-button__shade': {
backgroundColor: sendBoxButtonShadeColorOnDisabled
}
},
'&:not(:disabled):not([aria-disabled="true"])': {
'&:active': {
fill: sendBoxButtonColorOnActive,
'& .webchat__icon-button__shade': {
backgroundColor: sendBoxButtonShadeColorOnActive
}
},
'&:not(:active)': {
'&:hover': {
fill: sendBoxButtonColorOnHover,
'& .webchat__icon-button__shade': {
backgroundColor: sendBoxButtonShadeColorOnHover
}
},
'&:not(:hover)': {
'&:focus': {
fill: sendBoxButtonColorOnFocus,
'& .webchat__icon-button__shade': {
backgroundColor: sendBoxButtonShadeColorOnFocus
}
}
}
}
},
// On unsupported browser, :focus-visible and :not(:focus-visible) is always false.
// And it will turn the whole CSS selector ":unsupported, .truthy" to false.
'&:not(:focus-visible) .webchat__icon-button__keyboard-focus-indicator': {
display: 'none'
},
'&:not(.webchat__icon-button--focus-visible) .webchat__icon-button__keyboard-focus-indicator': {
display: 'none'
},
// Make sure all contents are in the same stacking context.
'& > *': {
position: 'relative'
},
'& .webchat__icon-button__shade': {
backgroundColor: sendBoxButtonShadeColor,
borderRadius: sendBoxButtonShadeBorderRadius,
bottom: sendBoxButtonShadeInset,
left: sendBoxButtonShadeInset,
position: 'absolute',
right: sendBoxButtonShadeInset,
top: sendBoxButtonShadeInset
},
'& .webchat__icon-button__keyboard-focus-indicator': {
borderColor: sendBoxButtonKeyboardFocusIndicatorBorderColor,
borderRadius: sendBoxButtonKeyboardFocusIndicatorBorderRadius,
borderStyle: sendBoxButtonKeyboardFocusIndicatorBorderStyle,
borderWidth: sendBoxButtonKeyboardFocusIndicatorBorderWidth,
bottom: sendBoxButtonKeyboardFocusIndicatorInset,
left: sendBoxButtonKeyboardFocusIndicatorInset,
position: 'absolute',
right: sendBoxButtonKeyboardFocusIndicatorInset,
top: sendBoxButtonKeyboardFocusIndicatorInset
}
}
};
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGVTZW5kQm94QnV0dG9uU3R5bGUiLCJfcmVmIiwic2VuZEJveEJ1dHRvbkNvbG9yIiwic2VuZEJveEJ1dHRvbkNvbG9yT25BY3RpdmUiLCJzZW5kQm94QnV0dG9uQ29sb3JPbkRpc2FibGVkIiwic2VuZEJveEJ1dHRvbkNvbG9yT25Gb2N1cyIsInNlbmRCb3hCdXR0b25Db2xvck9uSG92ZXIiLCJzZW5kQm94QnV0dG9uS2V5Ym9hcmRGb2N1c0luZGljYXRvckJvcmRlckNvbG9yIiwic2VuZEJveEJ1dHRvbktleWJvYXJkRm9jdXNJbmRpY2F0b3JCb3JkZXJSYWRpdXMiLCJzZW5kQm94QnV0dG9uS2V5Ym9hcmRGb2N1c0luZGljYXRvckJvcmRlclN0eWxlIiwic2VuZEJveEJ1dHRvbktleWJvYXJkRm9jdXNJbmRpY2F0b3JCb3JkZXJXaWR0aCIsInNlbmRCb3hCdXR0b25LZXlib2FyZEZvY3VzSW5kaWNhdG9ySW5zZXQiLCJzZW5kQm94QnV0dG9uU2hhZGVCb3JkZXJSYWRpdXMiLCJzZW5kQm94QnV0dG9uU2hhZGVDb2xvciIsInNlbmRCb3hCdXR0b25TaGFkZUNvbG9yT25BY3RpdmUiLCJzZW5kQm94QnV0dG9uU2hhZGVDb2xvck9uRGlzYWJsZWQiLCJzZW5kQm94QnV0dG9uU2hhZGVDb2xvck9uRm9jdXMiLCJzZW5kQm94QnV0dG9uU2hhZGVDb2xvck9uSG92ZXIiLCJzZW5kQm94QnV0dG9uU2hhZGVJbnNldCIsInNlbmRCb3hIZWlnaHQiLCJzdWJ0bGUiLCJhbGlnbkl0ZW1zIiwiYXBwZWFyYW5jZSIsImJhY2tncm91bmRDb2xvciIsImJvcmRlciIsImRpc3BsYXkiLCJmaWxsIiwianVzdGlmeUNvbnRlbnQiLCJvdXRsaW5lIiwicGFkZGluZyIsInBvc2l0aW9uIiwid2lkdGgiLCJoZWlnaHQiLCJib3JkZXJSYWRpdXMiLCJib3R0b20iLCJsZWZ0IiwicmlnaHQiLCJ0b3AiLCJib3JkZXJDb2xvciIsImJvcmRlclN0eWxlIiwiYm9yZGVyV2lkdGgiXSwic291cmNlUm9vdCI6ImNvbXBvbmVudDovLy8iLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9TdHlsZXMvU3R5bGVTZXQvU2VuZEJveEJ1dHRvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdHJpY3RTdHlsZU9wdGlvbnMgfSBmcm9tICdib3RmcmFtZXdvcmstd2ViY2hhdC1hcGknO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjcmVhdGVTZW5kQm94QnV0dG9uU3R5bGUoe1xuICBzZW5kQm94QnV0dG9uQ29sb3IsXG4gIHNlbmRCb3hCdXR0b25Db2xvck9uQWN0aXZlLFxuICBzZW5kQm94QnV0dG9uQ29sb3JPbkRpc2FibGVkLFxuICBzZW5kQm94QnV0dG9uQ29sb3JPbkZvY3VzLFxuICBzZW5kQm94QnV0dG9uQ29sb3JPbkhvdmVyLFxuICBzZW5kQm94QnV0dG9uS2V5Ym9hcmRGb2N1c0luZGljYXRvckJvcmRlckNvbG9yLFxuICBzZW5kQm94QnV0dG9uS2V5Ym9hcmRGb2N1c0luZGljYXRvckJvcmRlclJhZGl1cyxcbiAgc2VuZEJveEJ1dHRvbktleWJvYXJkRm9jdXNJbmRpY2F0b3JCb3JkZXJTdHlsZSxcbiAgc2VuZEJveEJ1dHRvbktleWJvYXJkRm9jdXNJbmRpY2F0b3JCb3JkZXJXaWR0aCxcbiAgc2VuZEJveEJ1dHRvbktleWJvYXJkRm9jdXNJbmRpY2F0b3JJbnNldCxcbiAgc2VuZEJveEJ1dHRvblNoYWRlQm9yZGVyUmFkaXVzLFxuICBzZW5kQm94QnV0dG9uU2hhZGVDb2xvcixcbiAgc2VuZEJveEJ1dHRvblNoYWRlQ29sb3JPbkFjdGl2ZSxcbiAgc2VuZEJveEJ1dHRvblNoYWRlQ29sb3JPbkRpc2FibGVkLFxuICBzZW5kQm94QnV0dG9uU2hhZGVDb2xvck9uRm9jdXMsXG4gIHNlbmRCb3hCdXR0b25TaGFkZUNvbG9yT25Ib3ZlcixcbiAgc2VuZEJveEJ1dHRvblNoYWRlSW5zZXQsXG4gIHNlbmRCb3hIZWlnaHQsXG4gIHN1YnRsZVxufTogU3RyaWN0U3R5bGVPcHRpb25zKSB7XG4gIHJldHVybiB7XG4gICAgJyYud2ViY2hhdF9faWNvbi1idXR0b24nOiB7XG4gICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgIGFwcGVhcmFuY2U6ICdub25lJyxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogJ1RyYW5zcGFyZW50JyxcbiAgICAgIGJvcmRlcjogMCxcbiAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgIGZpbGw6IHNlbmRCb3hCdXR0b25Db2xvciB8fCBzdWJ0bGUsXG4gICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICBvdXRsaW5lOiAwLFxuICAgICAgcGFkZGluZzogMCxcbiAgICAgIHBvc2l0aW9uOiAncmVsYXRpdmUnLFxuICAgICAgd2lkdGg6IHNlbmRCb3hIZWlnaHQsIC8vIFdlIHVzZSB0aGUgc2VuZEJveEhlaWdodCwgc28gdGhlIGJ1dHRvbiBsb29rcyBzcXVhcmVcblxuICAgICAgJyY6bm90KC53ZWJjaGF0X19pY29uLWJ1dHRvbi0tc3RyZXRjaCknOiB7XG4gICAgICAgIGhlaWdodDogc2VuZEJveEhlaWdodFxuICAgICAgfSxcblxuICAgICAgLy8gT3JkZXIgb2Ygc3R5bGUgcHJlZmVyZW5jZXMgKGJhc2VkIG9uIGVmZm9ydCBvZiB1c2VyIGdlc3R1cmUpOiBkaXNhYmxlZCA+IGFjdGl2ZSA+IGhvdmVyID4gZm9jdXMuXG4gICAgICAvLyBLZXlib2FyZCBmb2N1cyBpbmRpY2F0b3Igc3R5bGVzIGFwcGxpZWQgYnkgOmZvY3VzLXZpc2libGUgZG8gbm90IGNvbmZsaWN0IHdpdGggOmFjdGl2ZS86aG92ZXIvOmZvY3VzLCBzbyBpdCBpcyBub3QgaW5jbHVkZWQgaGVyZS5cbiAgICAgICcmOmRpc2FibGVkLCAmW2FyaWEtZGlzYWJsZWQ9XCJ0cnVlXCJdJzoge1xuICAgICAgICBmaWxsOiBzZW5kQm94QnV0dG9uQ29sb3JPbkRpc2FibGVkLFxuXG4gICAgICAgICcmIC53ZWJjaGF0X19pY29uLWJ1dHRvbl9fc2hhZGUnOiB7XG4gICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBzZW5kQm94QnV0dG9uU2hhZGVDb2xvck9uRGlzYWJsZWRcbiAgICAgICAgfVxuICAgICAgfSxcblxuICAgICAgJyY6bm90KDpkaXNhYmxlZCk6bm90KFthcmlhLWRpc2FibGVkPVwidHJ1ZVwiXSknOiB7XG4gICAgICAgICcmOmFjdGl2ZSc6IHtcbiAgICAgICAgICBmaWxsOiBzZW5kQm94QnV0dG9uQ29sb3JPbkFjdGl2ZSxcblxuICAgICAgICAgICcmIC53ZWJjaGF0X19pY29uLWJ1dHRvbl9fc2hhZGUnOiB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IHNlbmRCb3hCdXR0b25TaGFkZUNvbG9yT25BY3RpdmVcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG5cbiAgICAgICAgJyY6bm90KDphY3RpdmUpJzoge1xuICAgICAgICAgICcmOmhvdmVyJzoge1xuICAgICAgICAgICAgZmlsbDogc2VuZEJveEJ1dHRvbkNvbG9yT25Ib3ZlcixcblxuICAgICAgICAgICAgJyYgLndlYmNoYXRfX2ljb24tYnV0dG9uX19zaGFkZSc6IHtcbiAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiBzZW5kQm94QnV0dG9uU2hhZGVDb2xvck9uSG92ZXJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuXG4gICAgICAgICAgJyY6bm90KDpob3ZlciknOiB7XG4gICAgICAgICAgICAnJjpmb2N1cyc6IHtcbiAgICAgICAgICAgICAgZmlsbDogc2VuZEJveEJ1dHRvbkNvbG9yT25Gb2N1cyxcblxuICAgICAgICAgICAgICAnJiAud2ViY2hhdF9faWNvbi1idXR0b25fX3NoYWRlJzoge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogc2VuZEJveEJ1dHRvblNoYWRlQ29sb3JPbkZvY3VzXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sXG5cbiAgICAgIC8vIE9uIHVuc3VwcG9ydGVkIGJyb3dzZXIsIDpmb2N1cy12aXNpYmxlIGFuZCA6bm90KDpmb2N1cy12aXNpYmxlKSBpcyBhbHdheXMgZmFsc2UuXG4gICAgICAvLyBBbmQgaXQgd2lsbCB0dXJuIHRoZSB3aG9sZSBDU1Mgc2VsZWN0b3IgXCI6dW5zdXBwb3J0ZWQsIC50cnV0aHlcIiB0byBmYWxzZS5cbiAgICAgICcmOm5vdCg6Zm9jdXMtdmlzaWJsZSkgLndlYmNoYXRfX2ljb24tYnV0dG9uX19rZXlib2FyZC1mb2N1cy1pbmRpY2F0b3InOiB7XG4gICAgICAgIGRpc3BsYXk6ICdub25lJ1xuICAgICAgfSxcblxuICAgICAgJyY6bm90KC53ZWJjaGF0X19pY29uLWJ1dHRvbi0tZm9jdXMtdmlzaWJsZSkgLndlYmNoYXRfX2ljb24tYnV0dG9uX19rZXlib2FyZC1mb2N1cy1pbmRpY2F0b3InOiB7XG4gICAgICAgIGRpc3BsYXk6ICdub25lJ1xuICAgICAgfSxcblxuICAgICAgLy8gTWFrZSBzdXJlIGFsbCBjb250ZW50cyBhcmUgaW4gdGhlIHNhbWUgc3RhY2tpbmcgY29udGV4dC5cbiAgICAgICcmID4gKic6IHtcbiAgICAgICAgcG9zaXRpb246ICdyZWxhdGl2ZSdcbiAgICAgIH0sXG5cbiAgICAgICcmIC53ZWJjaGF0X19pY29uLWJ1dHRvbl9fc2hhZGUnOiB7XG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogc2VuZEJveEJ1dHRvblNoYWRlQ29sb3IsXG4gICAgICAgIGJvcmRlclJhZGl1czogc2VuZEJveEJ1dHRvblNoYWRlQm9yZGVyUmFkaXVzLFxuICAgICAgICBib3R0b206IHNlbmRCb3hCdXR0b25TaGFkZUluc2V0LFxuICAgICAgICBsZWZ0OiBzZW5kQm94QnV0dG9uU2hhZGVJbnNldCxcbiAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgIHJpZ2h0OiBzZW5kQm94QnV0dG9uU2hhZGVJbnNldCxcbiAgICAgICAgdG9wOiBzZW5kQm94QnV0dG9uU2hhZGVJbnNldFxuICAgICAgfSxcblxuICAgICAgJyYgLndlYmNoYXRfX2ljb24tYnV0dG9uX19rZXlib2FyZC1mb2N1cy1pbmRpY2F0b3InOiB7XG4gICAgICAgIGJvcmRlckNvbG9yOiBzZW5kQm94QnV0dG9uS2V5Ym9hcmRGb2N1c0luZGljYXRvckJvcmRlckNvbG9yLFxuICAgICAgICBib3JkZXJSYWRpdXM6IHNlbmRCb3hCdXR0b25LZXlib2FyZEZvY3VzSW5kaWNhdG9yQm9yZGVyUmFkaXVzLFxuICAgICAgICBib3JkZXJTdHlsZTogc2VuZEJveEJ1dHRvbktleWJvYXJkRm9jdXNJbmRpY2F0b3JCb3JkZXJTdHlsZSxcbiAgICAgICAgYm9yZGVyV2lkdGg6IHNlbmRCb3hCdXR0b25LZXlib2FyZEZvY3VzSW5kaWNhdG9yQm9yZGVyV2lkdGgsXG4gICAgICAgIGJvdHRvbTogc2VuZEJveEJ1dHRvbktleWJvYXJkRm9jdXNJbmRpY2F0b3JJbnNldCxcbiAgICAgICAgbGVmdDogc2VuZEJveEJ1dHRvbktleWJvYXJkRm9jdXNJbmRpY2F0b3JJbnNldCxcbiAgICAgICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgICAgIHJpZ2h0OiBzZW5kQm94QnV0dG9uS2V5Ym9hcmRGb2N1c0luZGljYXRvckluc2V0LFxuICAgICAgICB0b3A6IHNlbmRCb3hCdXR0b25LZXlib2FyZEZvY3VzSW5kaWNhdG9ySW5zZXRcbiAgICAgIH1cbiAgICB9XG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVlLFNBQVNBLHdCQUF3QkEsQ0FBQUMsSUFBQSxFQW9CekI7RUFBQSxJQW5CckJDLGtCQUFrQixHQUFBRCxJQUFBLENBQWxCQyxrQkFBa0I7SUFDbEJDLDBCQUEwQixHQUFBRixJQUFBLENBQTFCRSwwQkFBMEI7SUFDMUJDLDRCQUE0QixHQUFBSCxJQUFBLENBQTVCRyw0QkFBNEI7SUFDNUJDLHlCQUF5QixHQUFBSixJQUFBLENBQXpCSSx5QkFBeUI7SUFDekJDLHlCQUF5QixHQUFBTCxJQUFBLENBQXpCSyx5QkFBeUI7SUFD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
;