@zohoim/chat-components 0.0.14 → 0.0.15

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 (87) hide show
  1. package/es/ActionIconWrapper/ActionIconWrapper.js +9 -1
  2. package/es/ActionIconWrapper/css/ActionIconWrapper.module.css +5 -0
  3. package/es/ActionIconWrapper/css/cssJSLogic.js +14 -0
  4. package/es/AttachmentBubble/AttachmentBubble.js +3 -2
  5. package/es/AttachmentBubble/css/AttachmentBubble.module.css +1 -0
  6. package/es/AttachmentBubbleInfo/AttachmentBubbleInfo.js +8 -4
  7. package/es/AttachmentBubbleInfo/css/AttachmentBubbleInfo.module.css +2 -3
  8. package/es/AttachmentIcon/utils/getAttachmentIconComponent.js +9 -3
  9. package/es/AudioBubble/AudioBubble.js +16 -3
  10. package/es/AudioBubble/css/AudioBubble.module.css +4 -0
  11. package/es/AudioBubble/props/defaultProps.js +1 -0
  12. package/es/LocationBubble/LocationBubble.js +3 -2
  13. package/es/LocationBubble/css/LocationBubble.module.css +3 -4
  14. package/es/MediaBubbleWrapper/MediaBubbleWrapper.js +2 -2
  15. package/es/MediaBubbleWrapper/css/MediaBubbleWrapper.module.css +4 -0
  16. package/es/MessageActions/MessageActions.js +4 -2
  17. package/es/MessageBox/MessageBox.js +11 -7
  18. package/es/MessageBox/css/MessageBox.module.css +1 -6
  19. package/es/MessageBubble/MessageBubble.js +9 -6
  20. package/es/MoreActionItem/css/MoreActionItem.module.css +1 -3
  21. package/es/ReplyBubble/ReplyBubble.js +4 -5
  22. package/es/ReplyBubble/css/ReplyBubble.module.css +2 -2
  23. package/es/ReplyBubbleContent/ReplyBubbleContent.js +5 -4
  24. package/es/ReplyBubbleContent/css/ReplyBubbleContent.module.css +1 -4
  25. package/es/ReplyBubbleHeader/ReplyBubbleHeader.js +6 -6
  26. package/es/ReplyBubbleHeader/css/ReplyBubbleHeader.module.css +25 -6
  27. package/es/TextBubble/TextBubble.js +2 -2
  28. package/es/TextBubble/css/TextBubble.module.css +3 -1
  29. package/es/Theme/ThemeWrapper.js +2 -2
  30. package/es/Theme/themeVariables/dark/blueTheme.js +1 -1
  31. package/es/Theme/themeVariables/dark/greenTheme.js +1 -1
  32. package/es/Theme/themeVariables/dark/orangeTheme.js +1 -1
  33. package/es/Theme/themeVariables/dark/redTheme.js +1 -1
  34. package/es/Theme/themeVariables/dark/yellowTheme.js +1 -1
  35. package/es/Theme/themeVariables/light/blueTheme.js +1 -1
  36. package/es/Theme/themeVariables/light/greenTheme.js +1 -1
  37. package/es/Theme/themeVariables/light/orangeTheme.js +1 -1
  38. package/es/Theme/themeVariables/light/redTheme.js +1 -1
  39. package/es/Theme/themeVariables/light/yellowTheme.js +1 -1
  40. package/es/Theme/themeVariables/pureDark/blueTheme.js +1 -1
  41. package/es/Theme/themeVariables/pureDark/greenTheme.js +1 -1
  42. package/es/Theme/themeVariables/pureDark/orangeTheme.js +1 -1
  43. package/es/Theme/themeVariables/pureDark/redTheme.js +1 -1
  44. package/es/Theme/themeVariables/pureDark/yellowTheme.js +1 -1
  45. package/es/VideoBubble/VideoBubble.js +2 -1
  46. package/es/css/common.module.css +6 -0
  47. package/es/icons/factory/common/article.svg +4 -4
  48. package/es/icons/factory/integrations/chInstagram.svg +2 -2
  49. package/es/icons/factory/integrations/chWhatsApp.svg +2 -2
  50. package/es/icons/factory/integrations/ttASAP.svg +6 -1
  51. package/es/icons/factory/integrations/ttLine.svg +8 -0
  52. package/es/icons/factory/integrations/ttTelegram.svg +4 -1
  53. package/es/icons/factory/integrations/ttTwillio.svg +8 -1
  54. package/es/icons/factory/integrations/ttWechat.svg +9 -1
  55. package/es/icons/iconSrc/common/Article.js +2 -3
  56. package/es/icons/iconSrc/integrations/ChInstagram.js +2 -3
  57. package/es/icons/iconSrc/integrations/ChWhatsApp.js +2 -3
  58. package/es/icons/iconSrc/integrations/TtASAP.js +11 -15
  59. package/es/icons/iconSrc/integrations/{TtTwitter.js → TtLine.js} +14 -18
  60. package/es/icons/iconSrc/integrations/TtTelegram.js +8 -12
  61. package/es/icons/iconSrc/integrations/TtTwillio.js +15 -19
  62. package/es/icons/iconSrc/integrations/TtWechat.js +19 -20
  63. package/es/icons/iconSrc/integrations/index.js +1 -1
  64. package/es/im/ArticleBubble/ArticleBubble.js +9 -8
  65. package/es/im/ArticleBubble/css/ArticleBubble.module.css +23 -13
  66. package/es/im/IMIntegrationIcon/IMIntegrationIcon.js +1 -1
  67. package/es/im/IMMessage/IMMessage.js +30 -8
  68. package/es/im/{IMTicketLink/css/IMTicketLink.module.css → IMMessage/css/IMMessage.module.css} +21 -11
  69. package/es/im/IMMessage/css/cssJSLogic.js +23 -0
  70. package/es/im/IMMessage/props/defaultProps.js +2 -1
  71. package/es/im/IMMessage/props/propTypes.js +3 -1
  72. package/es/im/IMMessageContent/IMMessageContent.js +5 -3
  73. package/es/im/IMMessageContent/props/propTypes.js +1 -0
  74. package/es/im/IMMessageMeta/css/IMMessageMeta.module.css +1 -3
  75. package/es/im/IMPermaLink/IMPermaLink.js +48 -0
  76. package/es/im/IMPermaLink/css/IMPermaLink.module.css +14 -0
  77. package/es/im/{IMTicketLink → IMPermaLink}/css/cssJSLogic.js +3 -3
  78. package/es/im/IMPermaLink/index.js +1 -0
  79. package/es/im/{IMTicketLink → IMPermaLink}/props/defaultProps.js +2 -2
  80. package/es/im/IMPermaLink/props/propTypes.js +11 -0
  81. package/es/im/css/common.module.css +6 -0
  82. package/es/im/index.js +1 -1
  83. package/package.json +4 -4
  84. package/es/icons/factory/integrations/ttTwitter.svg +0 -1
  85. package/es/im/IMTicketLink/IMTicketLink.js +0 -48
  86. package/es/im/IMTicketLink/index.js +0 -1
  87. package/es/im/IMTicketLink/props/propTypes.js +0 -11
@@ -11,6 +11,7 @@ import actionIconWrapperPropTypes from './props/propTypes';
11
11
  /** ** Methods *** */
12
12
 
13
13
  import renderHandler from '@zohoim/chat-components-utils/es/common/renderHandler';
14
+ import cssJSLogic from './css/cssJSLogic';
14
15
  /** ** Styles *** */
15
16
 
16
17
  import style from './css/ActionIconWrapper.module.css';
@@ -33,13 +34,20 @@ export default function ActionIconWrapper(props) {
33
34
  /* External CSS Customization */
34
35
 
35
36
  const newStyle = useMergeStyle(style, customStyle);
37
+ /* css classnames added based on logic */
38
+
39
+ const {
40
+ actionIconWrapperClass
41
+ } = cssJSLogic({
42
+ isDisabled
43
+ }, newStyle);
36
44
  /* Render Icon */
37
45
 
38
46
  const icon = renderHandler(renderIcon)({
39
47
  id
40
48
  });
41
49
  return icon ? /*#__PURE__*/React.createElement("div", {
42
- className: newStyle.actionIconWrapper,
50
+ className: actionIconWrapperClass,
43
51
  "data-title": title,
44
52
  onClick: onClick
45
53
  }, icon) : null;
@@ -25,3 +25,8 @@
25
25
  background-color: var(--imlib_chat_components_actionIconWrapper_bg_color);
26
26
  border-color: var(--imlib_chat_components_actionIconWrapper_border_color);
27
27
  }
28
+
29
+ .disabled {
30
+ pointer-events: none;
31
+ opacity: 0.4;
32
+ }
@@ -0,0 +1,14 @@
1
+ /** ** Methods *** */
2
+ import { compileClassNames } from '@zohodesk/utils';
3
+ export default function cssJSLogic(props, style) {
4
+ const {
5
+ isDisabled
6
+ } = props;
7
+ const actionIconWrapperClass = compileClassNames({
8
+ [style.actionIconWrapper]: true,
9
+ [style.disabled]: isDisabled
10
+ });
11
+ return {
12
+ actionIconWrapperClass
13
+ };
14
+ }
@@ -40,8 +40,9 @@ export default function AttachmentBubble(props) {
40
40
  });
41
41
  return /*#__PURE__*/React.createElement(Container, {
42
42
  alignBox: "row",
43
- className: newStyle.attachmentBubble
44
- }, /*#__PURE__*/React.createElement("div", {
43
+ className: newStyle.attachmentBubble,
44
+ isCover: false
45
+ }, /*#__PURE__*/React.createElement(Box, {
45
46
  className: newStyle.attachmentBubbleIcon
46
47
  }, /*#__PURE__*/React.createElement(AttachmentIcon, _extends({
47
48
  fileFormat: fileFormat
@@ -1,4 +1,5 @@
1
1
  .attachmentBubble {
2
+ width: 100% ;
2
3
  background-color: var(--imlib_chat_components_attachmentBubble_bg_color);
3
4
  border-radius: 3px;
4
5
  border: 1px solid var(--imlib_chat_components_attachmentBubble_border_color);
@@ -7,6 +7,9 @@ import useMergeStyle from '@zohodesk/hooks/es/utils/useMergeStyle';
7
7
 
8
8
  import attachmentBubbleInfoDefaultProps from './props/defaultProps';
9
9
  import attachmentBubbleInfoPropTypes from './props/propTypes';
10
+ /** ** Components *** */
11
+
12
+ import { Container, Box } from '@zohodesk/components/es/Layout';
10
13
  /** ** Styles *** */
11
14
 
12
15
  import style from './css/AttachmentBubbleInfo.module.css';
@@ -19,11 +22,12 @@ export default function AttachmentBubbleInfo(props) {
19
22
  /* External css customization */
20
23
 
21
24
  const newStyle = useMergeStyle(style, customStyle);
22
- return /*#__PURE__*/React.createElement("div", {
23
- className: newStyle.attachmentBubbleInfo
24
- }, /*#__PURE__*/React.createElement("div", {
25
+ return /*#__PURE__*/React.createElement(Container, {
26
+ className: newStyle.attachmentBubbleInfo,
27
+ isCover: false
28
+ }, /*#__PURE__*/React.createElement(Box, {
25
29
  className: newStyle.fileName
26
- }, fileName), /*#__PURE__*/React.createElement("div", {
30
+ }, fileName), /*#__PURE__*/React.createElement(Box, {
27
31
  className: newStyle.fileSize
28
32
  }, fileSize));
29
33
  }
@@ -20,11 +20,10 @@
20
20
 
21
21
  .fileName,
22
22
  .fileSize {
23
- white-space: nowrap;
24
- overflow: hidden;
25
- text-overflow: ellipsis;
23
+ composes: dotted from "../../css/common.module.css";
26
24
  }
27
25
 
28
26
  .attachmentBubbleInfo {
27
+ width: 100% ;
29
28
  /* Use this class name for css customization */
30
29
  }
@@ -17,6 +17,9 @@ const {
17
17
  AUDIO,
18
18
  VIDEO,
19
19
  MP3,
20
+ MPEG,
21
+ VORBIS,
22
+ OGG,
20
23
  M4A,
21
24
  MP4,
22
25
  HTML,
@@ -32,23 +35,26 @@ export default function getAttachmentIconComponent(_ref) {
32
35
  fileFormat
33
36
  } = _ref;
34
37
  const iconMapping = {
35
- [SVG]: UnknownIcon,
38
+ [SVG]: CodeIcon,
36
39
  [IMAGE]: ImageIcon,
37
40
  [PDF]: PdfIcon,
38
41
  [AUDIO]: AudioIcon,
39
42
  [VIDEO]: VideoIcon,
40
43
  [MP3]: AudioIcon,
44
+ [MPEG]: AudioIcon,
45
+ [VORBIS]: AudioIcon,
46
+ [OGG]: AudioIcon,
41
47
  [M4A]: AudioIcon,
42
48
  [MP4]: VideoIcon,
43
49
  [HTML]: CodeIcon,
44
50
  [PSD]: UnknownIcon,
45
51
  [CSS]: CodeIcon,
46
52
  [TEXT]: TextIcon,
47
- [PLAIN]: UnknownIcon,
53
+ [PLAIN]: TextIcon,
48
54
  [ZIP]: ZipIcon,
49
55
  [UNDEFINED]: UnknownIcon
50
56
  };
51
- const IconComponent = iconMapping[fileFormat];
57
+ const IconComponent = iconMapping[fileFormat] || iconMapping[UNDEFINED];
52
58
  return {
53
59
  IconComponent
54
60
  };
@@ -2,17 +2,25 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
2
2
 
3
3
  /** ** Libraries *** */
4
4
  import React, { useCallback } from 'react';
5
+ /** ** Hooks *** */
6
+
7
+ import useMergeStyle from '@zohodesk/hooks/es/utils/useMergeStyle';
5
8
  /** ** Constants *** */
6
9
 
7
10
  import audioBubbleDefaultProps from './props/defaultProps';
8
11
  import audioBubblePropTypes from './props/propTypes';
9
12
  import { dummyObject } from '@zohoim/chat-components-utils/es/constants/emptyConstants';
13
+ /** ** Styles *** */
14
+
15
+ import style from './css/AudioBubble.module.css';
10
16
  /** ** Components *** */
11
17
 
18
+ import { Box } from '@zohodesk/components/es/Layout';
12
19
  import MediaBubbleWrapper from '../MediaBubbleWrapper/MediaBubbleWrapper';
13
20
  import Audio from '../Audio/Audio';
14
21
  export default function AudioBubble(props) {
15
22
  const {
23
+ customStyle,
16
24
  audioDetails,
17
25
  customProps
18
26
  } = props;
@@ -20,16 +28,21 @@ export default function AudioBubble(props) {
20
28
  audioProps = dummyObject,
21
29
  mediaBubbleWrapperProps = dummyObject
22
30
  } = customProps;
31
+ /* External CSS Customization */
32
+
33
+ const newStyle = useMergeStyle(style, customStyle);
23
34
  const renderMedia = useCallback(_ref => {
24
35
  let {
25
36
  fileURL,
26
37
  fileType
27
38
  } = _ref;
28
- return /*#__PURE__*/React.createElement(Audio, _extends({
39
+ return /*#__PURE__*/React.createElement(Box, {
40
+ className: newStyle.audioBubble
41
+ }, /*#__PURE__*/React.createElement(Audio, _extends({
29
42
  fileType: fileType,
30
43
  fileURL: fileURL
31
- }, audioProps));
32
- }, [audioProps]);
44
+ }, audioProps)));
45
+ }, [audioProps, newStyle.audioBubble]);
33
46
  return /*#__PURE__*/React.createElement(MediaBubbleWrapper, _extends({
34
47
  mediaDetails: audioDetails,
35
48
  renderMedia: renderMedia
@@ -0,0 +1,4 @@
1
+ .audioBubble{
2
+ width: var(--zd_size360) ;
3
+ max-width: 100% ;
4
+ }
@@ -1,6 +1,7 @@
1
1
  /** ** Constants *** */
2
2
  import { dummyObject } from '@zohoim/chat-components-utils/es/constants/emptyConstants';
3
3
  const audioBubbleDefaultProps = {
4
+ customStyle: dummyObject,
4
5
  customProps: dummyObject
5
6
  };
6
7
  export default audioBubbleDefaultProps;
@@ -24,7 +24,8 @@ export default function LocationBubble(props) {
24
24
  return /*#__PURE__*/React.createElement(Container, {
25
25
  align: "vertical",
26
26
  alignBox: "row",
27
- className: newStyle.locationBubble
27
+ className: newStyle.locationBubble,
28
+ isCover: false
28
29
  }, /*#__PURE__*/React.createElement(Box, {
29
30
  className: newStyle.imageWrapper,
30
31
  shrink: true
@@ -32,7 +33,7 @@ export default function LocationBubble(props) {
32
33
  href: locationUrl,
33
34
  rel: "noreferrer noopener",
34
35
  target: "_blank"
35
- }, /*#__PURE__*/React.createElement("div", {
36
+ }, /*#__PURE__*/React.createElement(Box, {
36
37
  className: newStyle.image
37
38
  }))), /*#__PURE__*/React.createElement(Box, {
38
39
  className: newStyle.textWrapper,
@@ -6,10 +6,11 @@
6
6
  .locationBubble {
7
7
  white-space: nowrap;
8
8
  width: 100% ;
9
+ box-sizing: border-box;
9
10
  background-color: var(--imlib_chat_components_locationBubble_bg_color);
10
11
  border: 1px solid var(--imlib_chat_components_locationBubble_border_color);
11
12
  padding: var(--zd_size10) ;
12
- border-radius: 3px;
13
+ border-radius: 3px;
13
14
  }
14
15
 
15
16
  .image {
@@ -31,8 +32,6 @@
31
32
 
32
33
  .textLink {
33
34
  display: block;
34
- white-space: nowrap;
35
- overflow: hidden;
36
- text-overflow: ellipsis;
35
+ composes: dotted from "../../css/common.module.css";
37
36
  color: var(--imlib_chat_components_locationBubble_color);
38
37
  }
@@ -1,7 +1,7 @@
1
1
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
2
 
3
3
  /** ** Libraries *** */
4
- import React, { useMemo } from 'react';
4
+ import React, { useMemo, Fragment } from 'react';
5
5
  /** ** Hooks *** */
6
6
 
7
7
  import useMergeStyle from '@zohodesk/hooks/es/utils/useMergeStyle';
@@ -48,7 +48,7 @@ export default function MediaBubbleWrapper(props) {
48
48
  fileURL,
49
49
  fileType
50
50
  });
51
- return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(AttachmentBubbleInfo, _extends({
51
+ return /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(AttachmentBubbleInfo, _extends({
52
52
  customStyle: bubbleInfoCustomStyle,
53
53
  fileName: fileName,
54
54
  fileSize: fileSize
@@ -1,3 +1,7 @@
1
1
  .header {
2
2
  margin-bottom: var(--zd_size5) ;
3
3
  }
4
+
5
+ .audioCont{
6
+ min-width: var(--zd_size300) ;
7
+ }
@@ -1,7 +1,7 @@
1
1
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
2
 
3
3
  /** ** Libraries *** */
4
- import React, { useCallback } from 'react';
4
+ import React, { useCallback, Fragment } from 'react';
5
5
  /** ** Components *** */
6
6
 
7
7
  import ActionIconWrapper from '../ActionIconWrapper/ActionIconWrapper';
@@ -52,6 +52,8 @@ export default function MessageActions(props) {
52
52
  e
53
53
  });
54
54
  }, [onSelect]);
55
+ /* External Action Icon */
56
+
55
57
  const renderAction = useCallback(function () {
56
58
  let {
57
59
  id,
@@ -95,7 +97,7 @@ export default function MessageActions(props) {
95
97
  renderIcon: renderMoreIcon
96
98
  }, actionIconWrapperProps)), [actionIconWrapperProps, renderMoreIcon]);
97
99
  const secondaryActions = renderHandler(renderSecondaryActions)();
98
- return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(MessageActionsWrapper, _extends({
100
+ return /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(MessageActionsWrapper, _extends({
99
101
  actions: allActions,
100
102
  defaultShowCount: defaultShowCount,
101
103
  renderMoreIcon: renderMore
@@ -11,6 +11,9 @@ import messageBoxPropTypes from './props/propTypes';
11
11
 
12
12
  import renderHandler from '@zohoim/chat-components-utils/es/common/renderHandler';
13
13
  import cssJSLogic from './css/cssJSLogic';
14
+ /** ** Components *** */
15
+
16
+ import { Container, Box } from '@zohodesk/components/es/Layout';
14
17
  /** ** Styles *** */
15
18
 
16
19
  import style from './css/MessageBox.module.css';
@@ -43,17 +46,18 @@ export default function MessageBox(props) {
43
46
  const messageConent = renderHandler(renderMessageContent)();
44
47
  const messageFooter = renderHandler(renderMessageFooter)();
45
48
  const messageStatus = renderHandler(renderMessageStatus)();
46
- return /*#__PURE__*/React.createElement("div", {
49
+ return /*#__PURE__*/React.createElement(Container, {
47
50
  className: messageBoxClass
48
- }, /*#__PURE__*/React.createElement("div", {
49
- className: newStyle.messageBoxInner
50
- }, messageHeader ? /*#__PURE__*/React.createElement("div", {
51
+ }, /*#__PURE__*/React.createElement(Box, {
52
+ className: newStyle.messageBoxInner,
53
+ flexible: true
54
+ }, messageHeader ? /*#__PURE__*/React.createElement(Box, {
51
55
  className: newStyle.messageHeaderWrapper
52
- }, messageHeader) : null, messageConent ? /*#__PURE__*/React.createElement("div", {
56
+ }, messageHeader) : null, messageConent ? /*#__PURE__*/React.createElement(Box, {
53
57
  className: newStyle.messageContentWrapper
54
- }, messageConent) : null, messageFooter ? /*#__PURE__*/React.createElement("div", {
58
+ }, messageConent) : null, messageFooter ? /*#__PURE__*/React.createElement(Box, {
55
59
  className: newStyle.messageFooterWrapper
56
- }, messageFooter) : null), messageStatus ? /*#__PURE__*/React.createElement("div", {
60
+ }, messageFooter) : null), messageStatus ? /*#__PURE__*/React.createElement(Box, {
57
61
  className: newStyle.messageStatusWrapper
58
62
  }, messageStatus) : null);
59
63
  }
@@ -18,17 +18,12 @@
18
18
  /* max-width: var(--messageBox-max_width); */
19
19
  word-wrap: break-word;
20
20
  font-size: var(--messageBox-content_size);
21
+ box-sizing: border-box;
21
22
  background-color: var(--imlib_chat_components_messageBox_bg_color);
22
23
  padding: var(--messageBox-content_padding);
23
24
  border-radius: var(--messageBox-border_radius);
24
25
  }
25
26
 
26
- .messageBoxInner {
27
- flex: 1 ;
28
- min-width: 0 ;
29
- min-height: 0 ;
30
- }
31
-
32
27
  .messageContentWrapper {
33
28
  /* Use this class for message content customization */
34
29
  line-height: 150%;
@@ -12,6 +12,9 @@ import messageBubblePropTypes from './props/propTypes';
12
12
 
13
13
  import renderHandler from '@zohoim/chat-components-utils/es/common/renderHandler';
14
14
  import cssJSLogic from './css/cssJSLogic';
15
+ /** ** Components *** */
16
+
17
+ import { Container, Box } from '@zohodesk/components/es/Layout';
15
18
  /** ** Styles *** */
16
19
 
17
20
  import style from './css/MessageBubble.module.css';
@@ -50,7 +53,7 @@ export default function MessageBubble(props) {
50
53
 
51
54
  const messageSenderRenderer = useCallback(() => {
52
55
  const messageOwner = renderHandler(renderMessageOwner)();
53
- return needSender ? /*#__PURE__*/React.createElement("div", {
56
+ return needSender ? /*#__PURE__*/React.createElement(Box, {
54
57
  className: newStyle.messageOwnerWrapper
55
58
  }, messageOwner) : null;
56
59
  }, [renderMessageOwner, needSender, newStyle.messageOwnerWrapper]);
@@ -58,7 +61,7 @@ export default function MessageBubble(props) {
58
61
 
59
62
  const messageActionsRenderer = useCallback(() => {
60
63
  const messageActions = isRenderMessageActions ? renderHandler(renderMessageActions)() : null;
61
- return messageActions ? /*#__PURE__*/React.createElement("div", {
64
+ return messageActions ? /*#__PURE__*/React.createElement(Box, {
62
65
  className: newStyle.messageActionWrapper
63
66
  }, messageActions) : null;
64
67
  }, [isRenderMessageActions, renderMessageActions, newStyle.messageActionWrapper]);
@@ -66,7 +69,7 @@ export default function MessageBubble(props) {
66
69
 
67
70
  const messageBoxRenderer = useCallback(() => {
68
71
  const messageBox = renderHandler(renderMessageBox)();
69
- return messageBox ? /*#__PURE__*/React.createElement("div", {
72
+ return messageBox ? /*#__PURE__*/React.createElement(Box, {
70
73
  className: newStyle.messageBoxWrapper
71
74
  }, messageBox) : null;
72
75
  }, [renderMessageBox, newStyle.messageBoxWrapper]);
@@ -75,7 +78,7 @@ export default function MessageBubble(props) {
75
78
  const messageBoxWithActionsRenderer = useCallback(() => {
76
79
  const messageBox = messageBoxRenderer();
77
80
  const messageActions = messageActionsRenderer();
78
- return messageBox || messageActions ? /*#__PURE__*/React.createElement("div", {
81
+ return messageBox || messageActions ? /*#__PURE__*/React.createElement(Box, {
79
82
  className: newStyle.messageContainer
80
83
  }, messageBox, messageActions) : null;
81
84
  }, [messageBoxRenderer, messageActionsRenderer, newStyle.messageContainer]);
@@ -83,13 +86,13 @@ export default function MessageBubble(props) {
83
86
 
84
87
  const messageFooterRenderer = useCallback(() => {
85
88
  const messageBoxFooter = renderHandler(renderMessageBoxFooter)();
86
- return messageBoxFooter ? /*#__PURE__*/React.createElement("div", {
89
+ return messageBoxFooter ? /*#__PURE__*/React.createElement(Box, {
87
90
  className: newStyle.messageBoxFooterWrapper
88
91
  }, messageBoxFooter) : null;
89
92
  }, [renderMessageBoxFooter, newStyle.messageBoxFooterWrapper]);
90
93
  /* Construct Layout */
91
94
 
92
- const messageLayout = /*#__PURE__*/React.createElement("div", {
95
+ const messageLayout = /*#__PURE__*/React.createElement(Container, {
93
96
  className: bubbleClass,
94
97
  onMouseEnter: onMouseEnter,
95
98
  onMouseLeave: onMouseLeave
@@ -15,9 +15,7 @@
15
15
  .text {
16
16
  composes: varClass;
17
17
  font-size: var(--moreActionItem-content_size);
18
- white-space: nowrap;
19
- overflow: hidden;
20
- text-overflow: ellipsis;
18
+ composes: dotted from "../../css/common.module.css";
21
19
  }
22
20
 
23
21
  [dir=ltr] .text {
@@ -45,14 +45,13 @@ export default function ReplyBubble(props) {
45
45
  const iconStyle = useMemo(() => ({
46
46
  $icon: newStyle.attachmentIcon
47
47
  }), [newStyle.attachmentIcon]);
48
- const renderMessage = useCallback(() =>
49
- /*#__PURE__*/
50
- // eslint-disable-next-line react/no-danger, @zohodesk/zsecurity/no-unsecure-html
51
- React.createElement("span", {
48
+ const renderMessage = useCallback( // eslint-disable-next-line no-confusing-arrow
49
+ () => // eslint-disable-next-line react/no-danger, @zohodesk/zsecurity/no-unsecure-html
50
+ message ? /*#__PURE__*/React.createElement("span", {
52
51
  dangerouslySetInnerHTML: {
53
52
  __html: message
54
53
  }
55
- }), [message]);
54
+ }) : null, [message]);
56
55
  const renderIcon = useCallback(() => {
57
56
  if (fileURL) {
58
57
  return /*#__PURE__*/React.createElement("div", {
@@ -1,6 +1,6 @@
1
1
  .attachmentIcon {
2
- height: var(--zd_size40) ;
3
- width: var(--zd_size40) ;
2
+ height: var(--zd_size40) !important;
3
+ width: var(--zd_size40) !important;
4
4
  }
5
5
 
6
6
  .imageWrapper {
@@ -31,18 +31,19 @@ export default function ReplyBubbleContent(props) {
31
31
  return /*#__PURE__*/React.createElement(Container, {
32
32
  align: "vertical",
33
33
  alignBox: "row",
34
- className: newStyle.replyBubbleContent
34
+ className: newStyle.replyBubbleContent,
35
+ isCover: false
35
36
  }, icon ? /*#__PURE__*/React.createElement(Box, {
36
37
  className: newStyle.iconWrapper
37
38
  }, /*#__PURE__*/React.createElement(Container, {
38
39
  align: "both"
39
40
  }, icon)) : null, /*#__PURE__*/React.createElement(Box, {
40
41
  flexible: true
41
- }, /*#__PURE__*/React.createElement("div", {
42
+ }, /*#__PURE__*/React.createElement(Box, {
42
43
  className: newStyle.name
43
- }, senderName), /*#__PURE__*/React.createElement("div", {
44
+ }, senderName), messageContent ? /*#__PURE__*/React.createElement(Box, {
44
45
  className: newStyle.messageWrapper
45
- }, messageContent)));
46
+ }, messageContent) : null));
46
47
  }
47
48
  ReplyBubbleContent.propTypes = replyBubbleContentPropTypes;
48
49
  ReplyBubbleContent.defaultProps = replyBubbleContentDefaultProps;
@@ -33,10 +33,7 @@
33
33
  color: var(--imlib_chat_components_replyBubbleContent_color);
34
34
  font-size: var(--zd_font_size15) ;
35
35
  line-height: 1.5;
36
- overflow: hidden;
37
- white-space: nowrap;
38
- word-wrap: normal;
39
- text-overflow: ellipsis;
36
+ composes: dotted from "../../css/common.module.css";
40
37
  }
41
38
 
42
39
  [dir=ltr] .iconWrapper {
@@ -39,14 +39,14 @@ export default function ReplyBubbleHeader(props) {
39
39
  });
40
40
  }, [iconStyle, renderCustomReplyIcon]);
41
41
  return /*#__PURE__*/React.createElement(Container, {
42
- alignBox: "row"
43
- }, /*#__PURE__*/React.createElement(Box, {
44
- flexible: true
45
- }, /*#__PURE__*/React.createElement(Container, {
42
+ align: "vertical",
46
43
  alignBox: "row"
47
44
  }, renderIcon(), /*#__PURE__*/React.createElement(Box, {
48
- className: newStyle.replyText
49
- }, replyText))), /*#__PURE__*/React.createElement("div", null, time));
45
+ className: newStyle.replyText,
46
+ flexible: true
47
+ }, replyText), /*#__PURE__*/React.createElement(Box, {
48
+ className: newStyle.time
49
+ }, time));
50
50
  }
51
51
  ReplyBubbleHeader.propTypes = replyBubbleHeaderPropTypes;
52
52
  ReplyBubbleHeader.defaultProps = replyBubbleHeaderDefaultProps;
@@ -1,12 +1,31 @@
1
1
  .replyIcon {
2
- width: var(--zd_size20) ;
3
- height: var(--zd_size20) ;
2
+ display: flex;
3
+ flex-shrink: 0;
4
+ width: var(--zd_size20) !important;
5
+ height: var(--zd_size20) !important;
6
+ }[dir=ltr] .replyIcon {
7
+ margin-right: var(--zd_size5) ;
8
+ }[dir=rtl] .replyIcon {
9
+ margin-left: var(--zd_size5) ;
4
10
  }
5
11
 
6
12
  .replyText {
7
- max-width: var(--zd_size100) ;
8
- white-space: nowrap;
9
- overflow: hidden;
10
- text-overflow: ellipsis;
11
13
  font-size: var(--zd_font_size14) ;
12
14
  }
15
+
16
+ [dir=ltr] .replyText {
17
+ margin-right: var(--zd_size5) ;
18
+ }
19
+
20
+ [dir=rtl] .replyText {
21
+ margin-left: var(--zd_size5) ;
22
+ }
23
+
24
+ .replyText,
25
+ .time{
26
+ composes: dotted from "../../css/common.module.css";
27
+ }
28
+
29
+ .time{
30
+ max-width: 40% ;
31
+ }
@@ -1,5 +1,5 @@
1
1
  /** ** Libraries *** */
2
- import React from 'react';
2
+ import React, { Fragment } from 'react';
3
3
  /** ** Hooks *** */
4
4
 
5
5
  import useMergeStyle from '@zohodesk/hooks/es/utils/useMergeStyle';
@@ -20,7 +20,7 @@ export default function TextBubble(props) {
20
20
  /* External CSS Customization */
21
21
 
22
22
  const newStyle = useMergeStyle(style, customStyle);
23
- return /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement("span", {
23
+ return /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement("span", {
24
24
  className: newStyle.textBubble // eslint-disable-next-line react/no-danger, @zohodesk/zsecurity/no-unsecure-html
25
25
  ,
26
26
  dangerouslySetInnerHTML: {
@@ -11,8 +11,10 @@
11
11
 
12
12
  .textBubble a {
13
13
  color: var(--imlib_chat_components_textBubble_url_color);
14
+ word-break: break-word;
14
15
  }
15
16
 
16
17
  .textBubble a:hover {
17
- text-decoration: underline;
18
+ text-decoration: underline !important;
19
+ /* !important for Desk css overwrite */
18
20
  }
@@ -68,11 +68,11 @@ export default function ThemeWrapper(props) {
68
68
  const renderStyle = useCallback(() => /*#__PURE__*/React.createElement("style", {
69
69
  id: "zoho-im-variables"
70
70
  }, `${selector}{${customizedVariables}}`), [selector, customizedVariables]);
71
- const renderAssets = useCallback(() => /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(React.Fragment, null, needThemeAssets ? /*#__PURE__*/React.createElement(ThemeAssets, null) : null), /*#__PURE__*/React.createElement(React.Fragment, null, needTooltip ? /*#__PURE__*/React.createElement(TooltipWrapper, {
71
+ const renderAssets = useCallback(() => /*#__PURE__*/React.createElement(React.Fragment, null, needThemeAssets ? /*#__PURE__*/React.createElement(ThemeAssets, null) : null, needTooltip ? /*#__PURE__*/React.createElement(TooltipWrapper, {
72
72
  containerRef: containerRef.current,
73
73
  customStyle: tooltipCustomStyle,
74
74
  getContainerRef: getContainerRef
75
- }) : null)), [getContainerRef, needTooltip, needThemeAssets, tooltipCustomStyle]);
75
+ }) : null), [getContainerRef, needTooltip, needThemeAssets, tooltipCustomStyle]);
76
76
  return /*#__PURE__*/React.createElement("div", _extends({
77
77
  id: styleTagId
78
78
  }, wrapperDivProps, {
@@ -58,7 +58,7 @@ export default {
58
58
  see_more_color: primaryBlue,
59
59
  url_color: primaryBlue
60
60
  },
61
- imTicketLink: {
61
+ imPermaLink: {
62
62
  color: '#479dff'
63
63
  },
64
64
  imMessageMeta: {
@@ -34,7 +34,7 @@ export default {
34
34
  bg_color: '#232b38',
35
35
  border_color: '#2d3748'
36
36
  },
37
- imTicketLink: {
37
+ imPermaLink: {
38
38
  color: '#45a159'
39
39
  },
40
40
  replyBubbleContent: {
@@ -34,7 +34,7 @@ export default {
34
34
  bg_color: '#232b38',
35
35
  border_color: '#2d3748'
36
36
  },
37
- imTicketLink: {
37
+ imPermaLink: {
38
38
  color: '#ff801f'
39
39
  },
40
40
  replyBubbleContent: {