botframework-webchat-component 4.18.0 → 4.18.1-main.20240807.dfe788c

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/dist/botframework-webchat-component.d.mts +12 -7
  2. package/dist/botframework-webchat-component.mjs +8 -8
  3. package/dist/botframework-webchat-component.mjs.map +1 -1
  4. package/dist/metafile-esm.json +1 -1
  5. package/lib/Attachment/ImageContent.d.ts +3 -4
  6. package/lib/Attachment/ImageContent.d.ts.map +1 -1
  7. package/lib/Attachment/ImageContent.js +11 -29
  8. package/lib/Avatar/ImageAvatar.d.ts +6 -0
  9. package/lib/Avatar/ImageAvatar.d.ts.map +1 -0
  10. package/lib/Avatar/ImageAvatar.js +11 -17
  11. package/lib/Composer.d.ts.map +1 -1
  12. package/lib/Composer.js +5 -3
  13. package/lib/Styles/CSSTokens.d.ts +2 -0
  14. package/lib/Styles/CSSTokens.d.ts.map +1 -1
  15. package/lib/Styles/CustomPropertyNames.d.ts +2 -0
  16. package/lib/Styles/CustomPropertyNames.d.ts.map +1 -1
  17. package/lib/Styles/CustomPropertyNames.js +3 -1
  18. package/lib/Styles/StyleSet/CSSCustomProperties.d.ts +3 -1
  19. package/lib/Styles/StyleSet/CSSCustomProperties.d.ts.map +1 -1
  20. package/lib/Styles/StyleSet/CSSCustomProperties.js +4 -2
  21. package/lib/Styles/createStyleSet.d.ts +4 -1
  22. package/lib/Styles/createStyleSet.d.ts.map +1 -1
  23. package/lib/Utils/FixedWidthImage.d.ts +11 -0
  24. package/lib/Utils/FixedWidthImage.d.ts.map +1 -0
  25. package/lib/Utils/FixedWidthImage.js +61 -0
  26. package/lib/hooks/sendBoxFocus.d.ts +4 -2
  27. package/lib/hooks/sendBoxFocus.d.ts.map +1 -1
  28. package/lib/hooks/sendBoxFocus.js +4 -2
  29. package/lib/hooks/transcriptScrollRelative.d.ts +4 -2
  30. package/lib/hooks/transcriptScrollRelative.d.ts.map +1 -1
  31. package/lib/hooks/transcriptScrollRelative.js +4 -2
  32. package/lib/index.d.ts +5 -3
  33. package/lib/index.d.ts.map +1 -1
  34. package/lib/index.js +2 -2
  35. package/package.json +4 -4
  36. package/src/Attachment/ImageContent.tsx +13 -27
  37. package/src/Avatar/{ImageAvatar.js → ImageAvatar.tsx} +6 -17
  38. package/src/Composer.tsx +15 -9
  39. package/src/Styles/CustomPropertyNames.ts +2 -0
  40. package/src/Styles/StyleSet/CSSCustomProperties.ts +6 -1
  41. package/src/Utils/FixedWidthImage.tsx +60 -0
  42. package/src/hooks/sendBoxFocus.ts +6 -2
  43. package/src/hooks/transcriptScrollRelative.ts +6 -3
  44. package/lib/Utils/CroppedImage.js +0 -61
  45. package/src/Utils/CroppedImage.js +0 -45
@@ -0,0 +1,60 @@
1
+ import classNames from 'classnames';
2
+ import React, { memo } from 'react';
3
+
4
+ import useStyleToEmotionObject from '../hooks/internal/useStyleToEmotionObject';
5
+ import CSSTokens from '../Styles/CSSTokens';
6
+
7
+ const ROOT_STYLE = {
8
+ '&.webchat__fixed-width-image': {
9
+ display: 'flex',
10
+ justifyContent: 'center',
11
+ maxHeight: CSSTokens.MaxHeightImageBubble,
12
+ minHeight: CSSTokens.MinHeightImageBubble,
13
+ overflow: 'hidden',
14
+ position: 'relative',
15
+
16
+ '& .webchat__fixed-width-image__filler': {
17
+ visibility: 'hidden',
18
+ width: '100%'
19
+ },
20
+
21
+ '& .webchat__fixed-width-image__image': {
22
+ left: '50%',
23
+ objectFit: 'cover',
24
+ position: 'absolute',
25
+ top: '50%',
26
+ transform: 'translate(-50%, -50%)',
27
+ width: '100%'
28
+ }
29
+ }
30
+ };
31
+
32
+ /**
33
+ * Shows the image with fixed width but cropped top/bottom.
34
+ */
35
+ const FixedWidthImage = memo(
36
+ ({
37
+ alt,
38
+ className,
39
+ src
40
+ }: Readonly<{
41
+ alt: string;
42
+ className?: string | undefined;
43
+ src: string;
44
+ }>) => (
45
+ <div
46
+ className={classNames(
47
+ 'webchat__fixed-width-image',
48
+ useStyleToEmotionObject()(ROOT_STYLE) + '',
49
+ (className || '') + ''
50
+ )}
51
+ >
52
+ <img alt="" className="webchat__fixed-width-image__filler" role="none" src={src} />
53
+ <img alt={alt} className="webchat__fixed-width-image__image" src={src} />
54
+ </div>
55
+ )
56
+ );
57
+
58
+ FixedWidthImage.displayName = 'FixedWidthImage';
59
+
60
+ export default FixedWidthImage;
@@ -3,6 +3,10 @@ import { createPropagation } from 'use-propagate';
3
3
 
4
4
  export type SendBoxFocusOptions = WaitUntilable<{ noKeyboard: boolean }>;
5
5
 
6
- const { useListen: useRegisterFocusSendBox, usePropagate: useFocusSendBox } = createPropagation<SendBoxFocusOptions>();
6
+ const {
7
+ PropagationScope: FocusSendBoxScope,
8
+ useListen: useRegisterFocusSendBox,
9
+ usePropagate: useFocusSendBox
10
+ } = createPropagation<SendBoxFocusOptions>();
7
11
 
8
- export { useRegisterFocusSendBox, useFocusSendBox };
12
+ export { FocusSendBoxScope, useRegisterFocusSendBox, useFocusSendBox };
@@ -2,7 +2,10 @@ import { createPropagation } from 'use-propagate';
2
2
 
3
3
  export type TranscriptScrollRelativeOptions = { direction: 'down' | 'up'; displacement?: number };
4
4
 
5
- const { useListen: useRegisterScrollRelativeTranscript, usePropagate: useScrollRelativeTranscript } =
6
- createPropagation<TranscriptScrollRelativeOptions>();
5
+ const {
6
+ PropagationScope: ScrollRelativeTranscriptScope,
7
+ useListen: useRegisterScrollRelativeTranscript,
8
+ usePropagate: useScrollRelativeTranscript
9
+ } = createPropagation<TranscriptScrollRelativeOptions>();
7
10
 
8
- export { useRegisterScrollRelativeTranscript, useScrollRelativeTranscript };
11
+ export { ScrollRelativeTranscriptScope, useRegisterScrollRelativeTranscript, useScrollRelativeTranscript };
@@ -1,61 +0,0 @@
1
- "use strict";
2
-
3
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _classnames = _interopRequireDefault(require("classnames"));
9
- var _propTypes = _interopRequireDefault(require("prop-types"));
10
- var _react = _interopRequireWildcard(require("react"));
11
- var _useStyleToEmotionObject = _interopRequireDefault(require("../hooks/internal/useStyleToEmotionObject"));
12
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
13
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
- var ROOT_STYLE = {
16
- overflow: 'hidden',
17
- position: 'relative',
18
- '& > img': {
19
- height: 'auto',
20
- left: '50%',
21
- position: 'absolute',
22
- top: '50%',
23
- transform: 'translate(-50%, -50%)',
24
- width: '100%'
25
- }
26
- };
27
- var CroppedImage = function CroppedImage(_ref) {
28
- var alt = _ref.alt,
29
- className = _ref.className,
30
- height = _ref.height,
31
- src = _ref.src,
32
- width = _ref.width;
33
- var rootClassName = (0, _useStyleToEmotionObject.default)()(ROOT_STYLE) + '';
34
- var sizeStyle = (0, _react.useMemo)(function () {
35
- return {
36
- height: height,
37
- width: width
38
- };
39
- }, [height, width]);
40
- return /*#__PURE__*/_react.default.createElement("div", {
41
- className: (0, _classnames.default)(rootClassName, (className || '') + ''),
42
- style: sizeStyle
43
- }, /*#__PURE__*/_react.default.createElement("img", {
44
- alt: alt,
45
- src: src
46
- }));
47
- };
48
- CroppedImage.defaultProps = {
49
- alt: '',
50
- className: ''
51
- };
52
- CroppedImage.propTypes = {
53
- alt: _propTypes.default.string,
54
- className: _propTypes.default.string,
55
- height: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired,
56
- src: _propTypes.default.string.isRequired,
57
- width: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]).isRequired
58
- };
59
- var _default = CroppedImage;
60
- exports.default = _default;
61
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3Byb3BUeXBlcyIsIl9yZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX3VzZVN0eWxlVG9FbW90aW9uT2JqZWN0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJST09UX1NUWUxFIiwib3ZlcmZsb3ciLCJwb3NpdGlvbiIsImhlaWdodCIsImxlZnQiLCJ0b3AiLCJ0cmFuc2Zvcm0iLCJ3aWR0aCIsIkNyb3BwZWRJbWFnZSIsIl9yZWYiLCJhbHQiLCJjbGFzc05hbWUiLCJzcmMiLCJyb290Q2xhc3NOYW1lIiwidXNlU3R5bGVUb0Vtb3Rpb25PYmplY3QiLCJzaXplU3R5bGUiLCJ1c2VNZW1vIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZXMiLCJzdHlsZSIsImRlZmF1bHRQcm9wcyIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsInN0cmluZyIsIm9uZU9mVHlwZSIsIm51bWJlciIsImlzUmVxdWlyZWQiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlUm9vdCI6ImNvbXBvbmVudDovLy8iLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9VdGlscy9Dcm9wcGVkSW1hZ2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB1c2VTdHlsZVRvRW1vdGlvbk9iamVjdCBmcm9tICcuLi9ob29rcy9pbnRlcm5hbC91c2VTdHlsZVRvRW1vdGlvbk9iamVjdCc7XG5cbmNvbnN0IFJPT1RfU1RZTEUgPSB7XG4gIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgcG9zaXRpb246ICdyZWxhdGl2ZScsXG5cbiAgJyYgPiBpbWcnOiB7XG4gICAgaGVpZ2h0OiAnYXV0bycsXG4gICAgbGVmdDogJzUwJScsXG4gICAgcG9zaXRpb246ICdhYnNvbHV0ZScsXG4gICAgdG9wOiAnNTAlJyxcbiAgICB0cmFuc2Zvcm06ICd0cmFuc2xhdGUoLTUwJSwgLTUwJSknLFxuICAgIHdpZHRoOiAnMTAwJSdcbiAgfVxufTtcblxuY29uc3QgQ3JvcHBlZEltYWdlID0gKHsgYWx0LCBjbGFzc05hbWUsIGhlaWdodCwgc3JjLCB3aWR0aCB9KSA9PiB7XG4gIGNvbnN0IHJvb3RDbGFzc05hbWUgPSB1c2VTdHlsZVRvRW1vdGlvbk9iamVjdCgpKFJPT1RfU1RZTEUpICsgJyc7XG4gIGNvbnN0IHNpemVTdHlsZSA9IHVzZU1lbW8oKCkgPT4gKHsgaGVpZ2h0LCB3aWR0aCB9KSwgW2hlaWdodCwgd2lkdGhdKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc05hbWVzKHJvb3RDbGFzc05hbWUsIChjbGFzc05hbWUgfHwgJycpICsgJycpfSBzdHlsZT17c2l6ZVN0eWxlfT5cbiAgICAgIDxpbWcgYWx0PXthbHR9IHNyYz17c3JjfSAvPlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuQ3JvcHBlZEltYWdlLmRlZmF1bHRQcm9wcyA9IHtcbiAgYWx0OiAnJyxcbiAgY2xhc3NOYW1lOiAnJ1xufTtcblxuQ3JvcHBlZEltYWdlLnByb3BUeXBlcyA9IHtcbiAgYWx0OiBQcm9wVHlwZXMuc3RyaW5nLFxuICBjbGFzc05hbWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGhlaWdodDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm51bWJlciwgUHJvcFR5cGVzLnN0cmluZ10pLmlzUmVxdWlyZWQsXG4gIHNyYzogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB3aWR0aDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLm51bWJlciwgUHJvcFR5cGVzLnN0cmluZ10pLmlzUmVxdWlyZWRcbn07XG5cbmV4cG9ydCBkZWZhdWx0IENyb3BwZWRJbWFnZTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLFdBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFVBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUgsT0FBQTtBQUVBLElBQUFJLHdCQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFBZ0YsU0FBQUsseUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxRQUFBRSxnQkFBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFILHdCQUFBTyxHQUFBLEVBQUFKLFdBQUEsU0FBQUEsV0FBQSxJQUFBSSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxXQUFBRCxHQUFBLFFBQUFBLEdBQUEsYUFBQUUsT0FBQSxDQUFBRixHQUFBLHlCQUFBQSxHQUFBLDRCQUFBRyxPQUFBLEVBQUFILEdBQUEsVUFBQUksS0FBQSxHQUFBVCx3QkFBQSxDQUFBQyxXQUFBLE9BQUFRLEtBQUEsSUFBQUEsS0FBQSxDQUFBQyxHQUFBLENBQUFMLEdBQUEsWUFBQUksS0FBQSxDQUFBRSxHQUFBLENBQUFOLEdBQUEsU0FBQU8sTUFBQSxXQUFBQyxxQkFBQSxHQUFBQyxNQUFB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
@@ -1,45 +0,0 @@
1
- import classNames from 'classnames';
2
- import PropTypes from 'prop-types';
3
- import React, { useMemo } from 'react';
4
-
5
- import useStyleToEmotionObject from '../hooks/internal/useStyleToEmotionObject';
6
-
7
- const ROOT_STYLE = {
8
- overflow: 'hidden',
9
- position: 'relative',
10
-
11
- '& > img': {
12
- height: 'auto',
13
- left: '50%',
14
- position: 'absolute',
15
- top: '50%',
16
- transform: 'translate(-50%, -50%)',
17
- width: '100%'
18
- }
19
- };
20
-
21
- const CroppedImage = ({ alt, className, height, src, width }) => {
22
- const rootClassName = useStyleToEmotionObject()(ROOT_STYLE) + '';
23
- const sizeStyle = useMemo(() => ({ height, width }), [height, width]);
24
-
25
- return (
26
- <div className={classNames(rootClassName, (className || '') + '')} style={sizeStyle}>
27
- <img alt={alt} src={src} />
28
- </div>
29
- );
30
- };
31
-
32
- CroppedImage.defaultProps = {
33
- alt: '',
34
- className: ''
35
- };
36
-
37
- CroppedImage.propTypes = {
38
- alt: PropTypes.string,
39
- className: PropTypes.string,
40
- height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,
41
- src: PropTypes.string.isRequired,
42
- width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired
43
- };
44
-
45
- export default CroppedImage;