@elliemae/ds-chat 2.3.0-next.1 → 2.3.0-next.10

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 (231) hide show
  1. package/cjs/{parts → exported-related}/bubble/ChatBubble.js +8 -10
  2. package/cjs/{parts → exported-related}/bubble/ChatBubbleArrow.js +0 -0
  3. package/cjs/{parts → exported-related}/bubble/index.js +0 -0
  4. package/cjs/exported-related/bubble/props.js +43 -0
  5. package/cjs/{parts → exported-related}/bubble/styled.js +9 -9
  6. package/cjs/{parts → exported-related}/chat-card/ChatCard.js +6 -7
  7. package/cjs/{parts → exported-related}/chat-card/index.js +0 -0
  8. package/cjs/exported-related/chat-card/props.js +22 -0
  9. package/cjs/{parts → exported-related}/chat-card/styled.js +6 -6
  10. package/cjs/{parts → exported-related}/chat-container-header/ChatContainerHeader.js +10 -4
  11. package/cjs/{parts → exported-related}/chat-container-header/helpers.js +0 -0
  12. package/cjs/exported-related/chat-container-header/props.js +18 -0
  13. package/cjs/{parts → exported-related}/chat-container-header/styled.js +3 -3
  14. package/cjs/{parts → exported-related}/chat-empty-state/ChatEmptyState.js +8 -10
  15. package/cjs/exported-related/chat-empty-state/props.js +18 -0
  16. package/cjs/{parts → exported-related}/chat-empty-state/styled.js +2 -2
  17. package/cjs/{parts → exported-related}/chat-sidebar/SideBarChat.js +10 -11
  18. package/cjs/{parts → exported-related}/chat-sidebar/index.js +0 -0
  19. package/cjs/{parts → exported-related}/chat-sidebar/props.js +2 -5
  20. package/cjs/{parts → exported-related/chat-sidebar}/sidebar-button/SidebarButton.js +1 -1
  21. package/cjs/{parts → exported-related/chat-sidebar}/sidebar-button/index.js +0 -0
  22. package/cjs/exported-related/chat-sidebar/sidebar-button/props.js +25 -0
  23. package/cjs/{parts → exported-related/chat-sidebar}/sidebar-button/styled.js +4 -4
  24. package/cjs/{parts → exported-related}/chat-sidebar/styled.js +2 -2
  25. package/cjs/{parts → exported-related}/floating-button/FloatingButton.js +13 -6
  26. package/cjs/{parts → exported-related}/floating-button/index.js +1 -0
  27. package/cjs/{parts → exported-related}/floating-button/props.js +0 -0
  28. package/cjs/{parts → exported-related}/floating-button/styled.js +1 -1
  29. package/cjs/{parts → exported-related}/floating-container/styled.js +1 -1
  30. package/cjs/{parts → exported-related}/grid-influencer/InfluencerContainer.js +1 -1
  31. package/cjs/{parts → exported-related}/grid-influencer/styled.js +2 -2
  32. package/cjs/exported-related/index.js +37 -0
  33. package/cjs/exported-related/message-delimiter/MessageDelimiter.js +53 -0
  34. package/cjs/{parts → exported-related}/message-delimiter/index.js +0 -0
  35. package/cjs/exported-related/message-delimiter/props.js +33 -0
  36. package/cjs/{parts → exported-related}/message-delimiter/styled.js +3 -3
  37. package/cjs/{parts → exported-related}/system-message/SystemMessage.js +6 -8
  38. package/cjs/{parts → exported-related}/system-message/index.js +0 -0
  39. package/cjs/{parts → exported-related}/system-message/props.js +0 -0
  40. package/cjs/{parts → exported-related}/system-message/style.js +5 -5
  41. package/cjs/{parts → exported-related}/tile-button/TileButton.js +7 -9
  42. package/cjs/{parts → exported-related}/tile-button/index.js +0 -0
  43. package/cjs/exported-related/tile-button/props.js +55 -0
  44. package/cjs/{parts → exported-related}/tile-button/styled.js +9 -9
  45. package/cjs/index.js +29 -18
  46. package/cjs/parts/chat-composer/ChatContainerComposer.js +7 -9
  47. package/cjs/parts/chat-container/ChatContainer.js +18 -20
  48. package/cjs/parts/chat-container/styled.js +2 -2
  49. package/cjs/parts/chat-container-messages-list/ChatContainerMessagesList.js +74 -64
  50. package/cjs/parts/chat-container-messages-list/styled.js +2 -2
  51. package/cjs/parts/index.js +16 -0
  52. package/cjs/react-desc-prop-types.js +116 -0
  53. package/esm/{parts → exported-related}/bubble/ChatBubble.js +7 -9
  54. package/esm/{parts → exported-related}/bubble/ChatBubbleArrow.js +0 -0
  55. package/esm/{parts → exported-related}/bubble/index.js +0 -0
  56. package/esm/{parts → exported-related}/bubble/props.js +14 -24
  57. package/esm/{parts → exported-related}/bubble/styled.js +9 -9
  58. package/esm/{parts → exported-related}/chat-card/ChatCard.js +4 -5
  59. package/esm/{parts → exported-related}/chat-card/index.js +0 -0
  60. package/esm/{parts → exported-related}/chat-card/props.js +9 -2
  61. package/esm/{parts → exported-related}/chat-card/styled.js +6 -6
  62. package/esm/{parts → exported-related}/chat-container-header/ChatContainerHeader.js +9 -4
  63. package/esm/{parts → exported-related}/chat-container-header/helpers.js +0 -0
  64. package/esm/exported-related/chat-container-header/props.js +13 -0
  65. package/esm/{parts → exported-related}/chat-container-header/styled.js +3 -3
  66. package/esm/{parts → exported-related}/chat-empty-state/ChatEmptyState.js +7 -9
  67. package/esm/exported-related/chat-empty-state/props.js +13 -0
  68. package/esm/{parts → exported-related}/chat-empty-state/styled.js +2 -2
  69. package/esm/{parts → exported-related}/chat-sidebar/SideBarChat.js +8 -9
  70. package/esm/{parts → exported-related}/chat-sidebar/index.js +0 -0
  71. package/esm/{parts → exported-related}/chat-sidebar/props.js +2 -5
  72. package/esm/{parts → exported-related/chat-sidebar}/sidebar-button/SidebarButton.js +1 -1
  73. package/esm/{parts → exported-related/chat-sidebar}/sidebar-button/index.js +0 -0
  74. package/esm/{parts → exported-related/chat-sidebar}/sidebar-button/props.js +3 -4
  75. package/esm/{parts → exported-related/chat-sidebar}/sidebar-button/styled.js +4 -4
  76. package/esm/{parts → exported-related}/chat-sidebar/styled.js +2 -2
  77. package/esm/exported-related/floating-button/FloatingButton.js +33 -0
  78. package/esm/exported-related/floating-button/index.js +1 -0
  79. package/esm/{parts → exported-related}/floating-button/props.js +0 -0
  80. package/esm/{parts → exported-related}/floating-button/styled.js +1 -1
  81. package/esm/{parts → exported-related}/floating-container/styled.js +1 -1
  82. package/esm/{parts → exported-related}/grid-influencer/InfluencerContainer.js +1 -1
  83. package/esm/{parts → exported-related}/grid-influencer/styled.js +2 -2
  84. package/esm/exported-related/index.js +11 -0
  85. package/esm/exported-related/message-delimiter/MessageDelimiter.js +43 -0
  86. package/esm/{parts → exported-related}/message-delimiter/index.js +0 -0
  87. package/esm/exported-related/message-delimiter/props.js +24 -0
  88. package/esm/{parts → exported-related}/message-delimiter/styled.js +3 -3
  89. package/esm/{parts → exported-related}/system-message/SystemMessage.js +4 -6
  90. package/esm/{parts → exported-related}/system-message/index.js +0 -0
  91. package/esm/{parts → exported-related}/system-message/props.js +0 -0
  92. package/esm/{parts → exported-related}/system-message/style.js +5 -5
  93. package/esm/{parts → exported-related}/tile-button/TileButton.js +5 -7
  94. package/esm/{parts → exported-related}/tile-button/index.js +0 -0
  95. package/esm/{parts → exported-related}/tile-button/props.js +3 -3
  96. package/esm/{parts → exported-related}/tile-button/styled.js +9 -9
  97. package/esm/index.js +14 -12
  98. package/esm/parts/chat-composer/ChatContainerComposer.js +9 -11
  99. package/esm/parts/chat-container/ChatContainer.js +16 -18
  100. package/esm/parts/chat-container/styled.js +2 -2
  101. package/esm/parts/chat-container-messages-list/ChatContainerMessagesList.js +70 -60
  102. package/esm/parts/chat-container-messages-list/styled.js +2 -2
  103. package/esm/parts/index.js +3 -0
  104. package/esm/react-desc-prop-types.js +103 -0
  105. package/package.json +172 -216
  106. package/types/exported-related/bubble/ChatBubble.d.ts +5 -0
  107. package/types/{parts → exported-related}/bubble/ChatBubbleArrow.d.ts +1 -1
  108. package/types/{parts → exported-related}/bubble/index.d.ts +0 -0
  109. package/types/{parts → exported-related}/bubble/props.d.ts +7 -26
  110. package/types/{parts → exported-related}/bubble/styled.d.ts +11 -7
  111. package/types/{parts → exported-related}/bubble/tests/ChatBubble.test.d.ts +0 -0
  112. package/types/exported-related/chat-card/ChatCard.d.ts +5 -0
  113. package/types/{parts → exported-related}/chat-card/index.d.ts +0 -0
  114. package/types/exported-related/chat-card/props.d.ts +14 -0
  115. package/types/{parts → exported-related}/chat-card/styled.d.ts +0 -0
  116. package/types/exported-related/chat-container-header/ChatContainerHeader.d.ts +5 -0
  117. package/types/{parts → exported-related}/chat-container-header/helpers.d.ts +2 -2
  118. package/types/exported-related/chat-container-header/props.d.ts +10 -0
  119. package/types/{parts → exported-related}/chat-container-header/styled.d.ts +0 -0
  120. package/types/exported-related/chat-empty-state/ChatEmptyState.d.ts +5 -0
  121. package/types/exported-related/chat-empty-state/props.d.ts +10 -0
  122. package/types/{parts → exported-related}/chat-empty-state/styled.d.ts +0 -0
  123. package/types/exported-related/chat-sidebar/SideBarChat.d.ts +5 -0
  124. package/types/{parts → exported-related}/chat-sidebar/index.d.ts +0 -0
  125. package/types/{parts → exported-related}/chat-sidebar/props.d.ts +4 -4
  126. package/types/exported-related/chat-sidebar/sidebar-button/SidebarButton.d.ts +13 -0
  127. package/types/{parts → exported-related/chat-sidebar}/sidebar-button/index.d.ts +0 -0
  128. package/types/exported-related/chat-sidebar/sidebar-button/props.d.ts +18 -0
  129. package/types/{parts → exported-related/chat-sidebar}/sidebar-button/styled.d.ts +0 -0
  130. package/types/{parts → exported-related}/chat-sidebar/styled.d.ts +0 -0
  131. package/types/exported-related/floating-button/FloatingButton.d.ts +5 -0
  132. package/types/{parts → exported-related}/floating-button/index.d.ts +0 -0
  133. package/types/{parts → exported-related}/floating-button/props.d.ts +0 -0
  134. package/types/{parts → exported-related}/floating-button/styled.d.ts +0 -0
  135. package/types/{parts → exported-related}/floating-container/styled.d.ts +0 -0
  136. package/types/{parts → exported-related}/grid-influencer/InfluencerContainer.d.ts +0 -0
  137. package/types/{parts → exported-related}/grid-influencer/styled.d.ts +0 -0
  138. package/types/exported-related/index.d.ts +10 -0
  139. package/types/exported-related/message-delimiter/MessageDelimiter.d.ts +5 -0
  140. package/types/{parts → exported-related}/message-delimiter/index.d.ts +0 -0
  141. package/types/exported-related/message-delimiter/props.d.ts +7 -0
  142. package/types/{parts → exported-related}/message-delimiter/styled.d.ts +0 -0
  143. package/types/exported-related/system-message/SystemMessage.d.ts +5 -0
  144. package/types/{parts → exported-related}/system-message/index.d.ts +0 -0
  145. package/types/{parts → exported-related}/system-message/props.d.ts +0 -0
  146. package/types/{parts → exported-related}/system-message/style.d.ts +0 -0
  147. package/types/exported-related/tile-button/TileButton.d.ts +5 -0
  148. package/types/{parts → exported-related}/tile-button/index.d.ts +0 -0
  149. package/types/exported-related/tile-button/props.d.ts +46 -0
  150. package/types/{parts → exported-related}/tile-button/styled.d.ts +1 -1
  151. package/types/index.d.ts +4 -13
  152. package/types/parts/chat-composer/ChatContainerComposer.d.ts +4 -59
  153. package/types/parts/chat-composer/styled.d.ts +4 -3
  154. package/types/parts/chat-container/ChatContainer.d.ts +4 -62
  155. package/types/parts/chat-container-messages-list/ChatContainerMessagesList.d.ts +4 -47
  156. package/types/parts/chat-container-messages-list/index.d.ts +1 -1
  157. package/types/parts/chat-container-messages-list/styled.d.ts +1 -2
  158. package/types/parts/index.d.ts +3 -0
  159. package/types/react-desc-prop-types.d.ts +94 -0
  160. package/cjs/index.d.js +0 -2
  161. package/cjs/parts/bubble/config/useValidateProps.js +0 -31
  162. package/cjs/parts/bubble/props.js +0 -57
  163. package/cjs/parts/chat-card/config/useValidateProps.js +0 -11
  164. package/cjs/parts/chat-card/props.js +0 -14
  165. package/cjs/parts/chat-composer/config/useValidateProps.js +0 -11
  166. package/cjs/parts/chat-composer/props.js +0 -44
  167. package/cjs/parts/chat-container/config/useValidateProps.js +0 -11
  168. package/cjs/parts/chat-container/index.js +0 -10
  169. package/cjs/parts/chat-container/props.js +0 -49
  170. package/cjs/parts/chat-container-messages-list/config/useValidateProps.js +0 -11
  171. package/cjs/parts/chat-container-messages-list/props.js +0 -30
  172. package/cjs/parts/chat-empty-state/config/useValidateProps.js +0 -11
  173. package/cjs/parts/chat-empty-state/props.js +0 -17
  174. package/cjs/parts/chat-sidebar/config/useValidateProps.js +0 -11
  175. package/cjs/parts/message-delimiter/MessageDelimiter.js +0 -41
  176. package/cjs/parts/message-delimiter/config/useValidateProps.js +0 -11
  177. package/cjs/parts/message-delimiter/props.js +0 -23
  178. package/cjs/parts/sidebar-button/props.js +0 -30
  179. package/cjs/parts/system-message/config/useValidateProps.js +0 -11
  180. package/cjs/parts/tile-button/config/useValidateProps.js +0 -11
  181. package/cjs/parts/tile-button/props.js +0 -55
  182. package/cjs/prop-types.js +0 -33
  183. package/esm/index.d.js +0 -1
  184. package/esm/parts/bubble/config/useValidateProps.js +0 -27
  185. package/esm/parts/chat-card/config/useValidateProps.js +0 -7
  186. package/esm/parts/chat-composer/config/useValidateProps.js +0 -7
  187. package/esm/parts/chat-composer/props.js +0 -39
  188. package/esm/parts/chat-container/config/useValidateProps.js +0 -7
  189. package/esm/parts/chat-container/index.js +0 -1
  190. package/esm/parts/chat-container/props.js +0 -44
  191. package/esm/parts/chat-container-messages-list/config/useValidateProps.js +0 -7
  192. package/esm/parts/chat-container-messages-list/props.js +0 -25
  193. package/esm/parts/chat-empty-state/config/useValidateProps.js +0 -7
  194. package/esm/parts/chat-empty-state/props.js +0 -12
  195. package/esm/parts/chat-sidebar/config/useValidateProps.js +0 -7
  196. package/esm/parts/floating-button/FloatingButton.js +0 -27
  197. package/esm/parts/floating-button/index.js +0 -1
  198. package/esm/parts/message-delimiter/MessageDelimiter.js +0 -32
  199. package/esm/parts/message-delimiter/config/useValidateProps.js +0 -7
  200. package/esm/parts/message-delimiter/props.js +0 -18
  201. package/esm/parts/system-message/config/useValidateProps.js +0 -7
  202. package/esm/parts/tile-button/config/useValidateProps.js +0 -7
  203. package/esm/prop-types.js +0 -28
  204. package/types/index.d.d.ts +0 -37
  205. package/types/parts/bubble/ChatBubble.d.ts +0 -30
  206. package/types/parts/bubble/config/useValidateProps.d.ts +0 -2
  207. package/types/parts/chat-card/ChatCard.d.ts +0 -33
  208. package/types/parts/chat-card/config/useValidateProps.d.ts +0 -2
  209. package/types/parts/chat-card/props.d.ts +0 -29
  210. package/types/parts/chat-composer/config/useValidateProps.d.ts +0 -2
  211. package/types/parts/chat-container/config/useValidateProps.d.ts +0 -2
  212. package/types/parts/chat-container/index.d.ts +0 -1
  213. package/types/parts/chat-container-header/ChatContainerHeader.d.ts +0 -2
  214. package/types/parts/chat-container-messages-list/config/useValidateProps.d.ts +0 -2
  215. package/types/parts/chat-empty-state/ChatEmptyState.d.ts +0 -21
  216. package/types/parts/chat-empty-state/config/useValidateProps.d.ts +0 -2
  217. package/types/parts/chat-empty-state/props.d.ts +0 -15
  218. package/types/parts/chat-sidebar/SideBarChat.d.ts +0 -48
  219. package/types/parts/chat-sidebar/config/useValidateProps.d.ts +0 -2
  220. package/types/parts/floating-button/FloatingButton.d.ts +0 -18
  221. package/types/parts/message-delimiter/MessageDelimiter.d.ts +0 -31
  222. package/types/parts/message-delimiter/config/useValidateProps.d.ts +0 -2
  223. package/types/parts/message-delimiter/props.d.ts +0 -26
  224. package/types/parts/sidebar-button/SidebarButton.d.ts +0 -24
  225. package/types/parts/sidebar-button/props.d.ts +0 -29
  226. package/types/parts/system-message/SystemMessage.d.ts +0 -23
  227. package/types/parts/system-message/config/useValidateProps.d.ts +0 -2
  228. package/types/parts/tile-button/TileButton.d.ts +0 -75
  229. package/types/parts/tile-button/config/useValidateProps.d.ts +0 -2
  230. package/types/parts/tile-button/props.d.ts +0 -88
  231. package/types/prop-types.d.ts +0 -33
@@ -1,20 +1,19 @@
1
1
  import _jsx from '@babel/runtime/helpers/esm/jsx';
2
- import 'core-js/modules/web.url.to-json.js';
3
2
  import 'react';
4
- import { describe } from 'react-desc';
3
+ import { describe, useMemoMergePropsWithDefault, useValidateTypescriptPropTypes } from '@elliemae/ds-props-helpers';
5
4
  import { Wrapper, Header, Title, Time, Message } from './style.js';
6
5
  import { systemMessageProps, defaultProps } from './props.js';
7
- import { useValidateProps } from './config/useValidateProps.js';
8
6
 
9
7
  var _span;
10
8
 
11
9
  const SystemMessage = props => {
12
- useValidateProps(props, SystemMessageWithSchema.toJSON());
10
+ const propsWithDefault = useMemoMergePropsWithDefault(props, defaultProps);
11
+ useValidateTypescriptPropTypes(propsWithDefault, systemMessageProps);
13
12
  const {
14
13
  title,
15
14
  time,
16
15
  body
17
- } = props;
16
+ } = propsWithDefault;
18
17
  return /*#__PURE__*/_jsx(Wrapper, {
19
18
  rows: ['auto', 'auto']
20
19
  }, void 0, /*#__PURE__*/_jsx(Header, {
@@ -28,7 +27,6 @@ const SystemMessage = props => {
28
27
  }, void 0, body));
29
28
  };
30
29
 
31
- SystemMessage.defaultProps = defaultProps;
32
30
  const SystemMessageWithSchema = describe(SystemMessage);
33
31
  SystemMessageWithSchema.propTypes = systemMessageProps;
34
32
 
@@ -2,19 +2,19 @@ import styled from 'styled-components';
2
2
  import { Grid } from '@elliemae/ds-grid';
3
3
 
4
4
  const Wrapper = /*#__PURE__*/styled(Grid).withConfig({
5
- componentId: "sc-80w41d-0"
5
+ componentId: "sc-1qrpnrc-0"
6
6
  })(["align-items:center;justify-content:center;max-width:100%;padding:0 8px 8px;border:1px solid ", ";border-radius:10px;background-color:", ";box-shadow:none;"], props => props.theme.colors.neutral['100'], props => props.theme.colors.neutral['080']);
7
7
  const Header = /*#__PURE__*/styled(Grid).withConfig({
8
- componentId: "sc-80w41d-1"
8
+ componentId: "sc-1qrpnrc-1"
9
9
  })(["align-items:center;height:36px;"]);
10
10
  const Title = /*#__PURE__*/styled.p.withConfig({
11
- componentId: "sc-80w41d-2"
11
+ componentId: "sc-1qrpnrc-2"
12
12
  })(["font-size:14px;font-weight:", ";color:", ";margin:0;"], props => props.theme.fontWeights.semibold, props => props.theme.colors.neutral['700']);
13
13
  const Time = /*#__PURE__*/styled.p.withConfig({
14
- componentId: "sc-80w41d-3"
14
+ componentId: "sc-1qrpnrc-3"
15
15
  })(["font-size:12px;font-weight:", ";color:", ";margin:0;text-align:right;"], props => props.theme.fontWeights.regular, props => props.theme.colors.neutral['700']);
16
16
  const Message = /*#__PURE__*/styled.p.withConfig({
17
- componentId: "sc-80w41d-4"
17
+ componentId: "sc-1qrpnrc-4"
18
18
  })(["font-size:13px;font-weight:", ";color:", ";min-height:32px;text-align:center;margin:0;"], props => props.theme.fontWeights.regular, props => props.theme.colors.neutral['700']);
19
19
 
20
20
  export { Header, Message, Time, Title, Wrapper };
@@ -1,13 +1,11 @@
1
1
  import _jsx from '@babel/runtime/helpers/esm/jsx';
2
- import 'core-js/modules/web.url.to-json.js';
3
2
  import React from 'react';
4
- import { describe } from 'react-desc';
3
+ import { describe, useMemoMergePropsWithDefault, useValidateTypescriptPropTypes } from '@elliemae/ds-props-helpers';
5
4
  import { DSTooltipV3 } from '@elliemae/ds-tooltip';
6
5
  import { Grid } from '@elliemae/ds-grid';
7
6
  import { CloseXsmall } from '@elliemae/ds-icons';
8
7
  import { StyledWrapperCentralContent, StyledTileButtonIcon, StyledStatusBadge, StyledTileButtonLabel, StyledTileButton, StyledWrapper, StyledWrapperLeftBorder, CloseButton, StyledTooltipV3ButtonWrapper } from './styled.js';
9
8
  import { propsTileButton, defaultTileButton } from './props.js';
10
- import { useValidateProps } from './config/useValidateProps.js';
11
9
  import { jsx } from 'react/jsx-runtime';
12
10
 
13
11
  var _StyledWrapperLeftBor, _CloseXsmall;
@@ -15,7 +13,8 @@ var _StyledWrapperLeftBor, _CloseXsmall;
15
13
  const TileButton = props => {
16
14
  var _Icon, _StyledTileButtonLabe, _span;
17
15
 
18
- useValidateProps(props, TileButtonWithSchema.toJSON());
16
+ const propsWithDefault = useMemoMergePropsWithDefault(props, defaultTileButton);
17
+ useValidateTypescriptPropTypes(propsWithDefault, propsTileButton);
19
18
  const {
20
19
  label,
21
20
  title,
@@ -36,7 +35,7 @@ const TileButton = props => {
36
35
  tooltipPlacement,
37
36
  disableTooltip,
38
37
  innerRef
39
- } = props;
38
+ } = propsWithDefault;
40
39
  const handleClick = React.useCallback(() => {
41
40
  onClick(dsId, title);
42
41
  }, [dsId, onClick, title]);
@@ -58,7 +57,7 @@ const TileButton = props => {
58
57
  }) : null)), !isHeader ? /*#__PURE__*/_jsx(Grid, {
59
58
  width: "100%",
60
59
  justifyContent: "center"
61
- }, void 0, label ? _StyledTileButtonLabe || (_StyledTileButtonLabe = /*#__PURE__*/_jsx(StyledTileButtonLabel, {}, void 0, label)) : null) : null), [isHeader, Icon, badge, badgeColor, badgePosition, label]);
60
+ }, void 0, label ? _StyledTileButtonLabe || (_StyledTileButtonLabe = /*#__PURE__*/_jsx(StyledTileButtonLabel, {}, void 0, label)) : null) : null), [isHeader, Icon, badge, dsId, badgeColor, badgePosition, label]);
62
61
  const Btn = React.useMemo(() => /*#__PURE__*/jsx(StyledTileButton, {
63
62
  isHeader: isHeader,
64
63
  value: dsId,
@@ -90,7 +89,6 @@ const TileButton = props => {
90
89
  }, void 0, Btn)) : Btn;
91
90
  };
92
91
 
93
- TileButton.defaultProps = defaultTileButton;
94
92
  const TileButtonWithSchema = describe(TileButton);
95
93
  TileButtonWithSchema.propTypes = propsTileButton;
96
94
 
@@ -1,10 +1,10 @@
1
- import { PropTypes } from 'react-desc';
1
+ import { PropTypes } from '@elliemae/ds-props-helpers';
2
2
  import { noop } from 'lodash';
3
3
  import { Comments } from '@elliemae/ds-icons';
4
4
 
5
5
  const defaultTileButton = {
6
6
  Icon: Comments,
7
- dsId: undefined,
7
+ dsId: '',
8
8
  label: '',
9
9
  onClick: noop,
10
10
  onBlur: noop,
@@ -25,7 +25,7 @@ const defaultTileButton = {
25
25
  };
26
26
  const propsTileButton = {
27
27
  Icon: PropTypes.func.description('Icon component').defaultValue(defaultTileButton.Icon),
28
- dsId: PropTypes.oneOf(['number', 'string']).description('Unique id for the button').defaultValue(defaultTileButton.dsId),
28
+ dsId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).description('Unique id for the button').defaultValue(defaultTileButton.dsId),
29
29
  label: PropTypes.string.description('It will display under the icon').defaultValue(defaultTileButton.label),
30
30
  title: PropTypes.string.description('Tooltip').defaultValue(defaultTileButton.title),
31
31
  onClick: PropTypes.func.description('The function to call when is clicked').defaultValue(defaultTileButton.onClick),
@@ -8,10 +8,10 @@ const MIN_WIDTH_SIDEBAR = 48;
8
8
  const BUTTON_SIDEBAR_HEIGHT = 48; // Buttons
9
9
 
10
10
  const StyledWrapperLeftBorder = /*#__PURE__*/styled(Grid).withConfig({
11
- componentId: "sc-1ebp1zs-0"
11
+ componentId: "sc-b69sbu-0"
12
12
  })(["height:100%;width:4px;position:absolute;top:0;left:0;"]);
13
13
  const StyledStatusBadge = /*#__PURE__*/styled.div.withConfig({
14
- componentId: "sc-1ebp1zs-1"
14
+ componentId: "sc-b69sbu-1"
15
15
  })(["height:8px;width:8px;position:absolute;top:0;background:", ";", ";border-radius:50%;box-sizing:content-box;"], props => {
16
16
  switch (props.badgeColor) {
17
17
  case 'blue':
@@ -36,23 +36,23 @@ const StyledStatusBadge = /*#__PURE__*/styled.div.withConfig({
36
36
  }
37
37
  });
38
38
  const StyledWrapperCentralContent = /*#__PURE__*/styled(Grid).withConfig({
39
- componentId: "sc-1ebp1zs-2"
39
+ componentId: "sc-b69sbu-2"
40
40
  })(["width:24px;height:40px;"]);
41
41
  const StyledTileButtonIcon = /*#__PURE__*/styled(Grid).withConfig({
42
- componentId: "sc-1ebp1zs-3"
42
+ componentId: "sc-b69sbu-3"
43
43
  })(["position:relative;height:24px;width:24px;svg{fill:", ";}&:focus{svg{fill:", ";}}"], props => props.theme.colors.neutral[500], props => props.theme.colors.brand[800]);
44
44
  const StyledTileButtonLabel = /*#__PURE__*/styled.div.withConfig({
45
- componentId: "sc-1ebp1zs-4"
45
+ componentId: "sc-b69sbu-4"
46
46
  })(["width:24px;height:", ";text-transform:uppercase;overflow:hidden;text-align:center;font-size:13px;color:", ";line-height:17px;"], props => props.theme.space.xs, props => props.theme.colors.neutral[600]);
47
47
  const CloseButton = /*#__PURE__*/styled.button.withConfig({
48
- componentId: "sc-1ebp1zs-5"
48
+ componentId: "sc-b69sbu-5"
49
49
  })(["outline:none;background:none;height:9px;width:9px;position:absolute;top:1px;right:1px;overflow:hidden;padding:0;border:none;span{position:absolute;left:-3px;top:-4px;}&:focus,&:hover{svg{fill:", ";}&:after{display:block;content:'';position:absolute;top:0;left:0;width:100%;height:100%;border:solid 1px ", ";border-radius:2px;}}cursor:pointer;"], props => props.theme.colors.brand[600], props => props.theme.colors.brand[600]); // MAIN WRAPPER
50
50
 
51
51
  const StyledTooltipV3ButtonWrapper = /*#__PURE__*/styled.div.withConfig({
52
- componentId: "sc-1ebp1zs-6"
52
+ componentId: "sc-b69sbu-6"
53
53
  })(["height:", "px;width:", "px;"], BUTTON_SIDEBAR_HEIGHT, MIN_WIDTH_SIDEBAR);
54
54
  const StyledTileButton = /*#__PURE__*/styled.button.withConfig({
55
- componentId: "sc-1ebp1zs-7"
55
+ componentId: "sc-b69sbu-7"
56
56
  })(["outline:none;background:transparent;height:", "px;width:", "px;position:relative;padding:0;border:none;cursor:pointer;border-bottom:", ";&:focus,&:hover,&:active,&:disabled{background:", ";& ", "{border:2px solid ", ";margin-top:-2px;", ";}}&:focus,&:hover{& ", "{background:", ";}& ", "{color:", ";}& svg{fill:", ";}}&:active:not(:disabled){background:", ";& ", "{background:", ";}& ", "{color:", ";font-weight:600;}& svg{fill:", ";}& ", "{border:2px solid ", ";}}&:disabled{background:", ";", "{background:", ";}& ", "{background:", ";border:2px solid ", ";}", "{svg{fill:", ";}}", "{color:", ";}}", ""], BUTTON_SIDEBAR_HEIGHT, MIN_WIDTH_SIDEBAR, props => props.isHeader ? "1px solid ".concat(props.theme.colors.neutral['200']) : 'none', props => props.theme.colors.neutral['080'], StyledStatusBadge, props => props.theme.colors.neutral['080'], props => {
57
57
  switch (props.badgePosition) {
58
58
  case 'left':
@@ -72,7 +72,7 @@ const StyledTileButton = /*#__PURE__*/styled.button.withConfig({
72
72
  return '';
73
73
  });
74
74
  const StyledWrapper = /*#__PURE__*/styled(Grid).withConfig({
75
- componentId: "sc-1ebp1zs-8"
75
+ componentId: "sc-b69sbu-8"
76
76
  })(["height:100%;width:100%;position:relative;"]);
77
77
 
78
78
  export { CloseButton, StyledStatusBadge, StyledTileButton, StyledTileButtonIcon, StyledTileButtonLabel, StyledTooltipV3ButtonWrapper, StyledWrapper, StyledWrapperCentralContent, StyledWrapperLeftBorder };
package/esm/index.js CHANGED
@@ -1,14 +1,16 @@
1
- export { ChatBubble, ChatBubbleWithSchema } from './parts/bubble/ChatBubble.js';
2
- export { BUBBLE_TYPES } from './parts/bubble/props.js';
3
- export { FloatingButton } from './parts/floating-button/FloatingButton.js';
4
- export { StyledFloatingContainer } from './parts/floating-container/styled.js';
5
- export { ChatContainerHeader } from './parts/chat-container-header/ChatContainerHeader.js';
6
- export { ChatEmptyState } from './parts/chat-empty-state/ChatEmptyState.js';
7
- export { ChatContainerMessagesList, ChatContainerMessagesListWithSchema } from './parts/chat-container-messages-list/ChatContainerMessagesList.js';
1
+ export { ChatBubble, ChatBubbleWithSchema } from './exported-related/bubble/ChatBubble.js';
2
+ export { BUBBLE_TYPES } from './exported-related/bubble/props.js';
3
+ export { FloatingButton } from './exported-related/floating-button/FloatingButton.js';
4
+ export { StyledFloatingContainer } from './exported-related/floating-container/styled.js';
5
+ export { ChatContainerHeader, ChatContainerHeaderWithSchema } from './exported-related/chat-container-header/ChatContainerHeader.js';
6
+ export { ChatEmptyState, ChatEmptyStateWithSchema } from './exported-related/chat-empty-state/ChatEmptyState.js';
7
+ export { SideBarChat, SideBarChatWithSchema } from './exported-related/chat-sidebar/SideBarChat.js';
8
+ export { TileButton, TileButtonWithSchema } from './exported-related/tile-button/TileButton.js';
9
+ export { MessageDelimiter, MessageDelimiterWithSchema } from './exported-related/message-delimiter/MessageDelimiter.js';
10
+ export { SystemMessage, SystemMessageWithSchema } from './exported-related/system-message/SystemMessage.js';
11
+ export { ChatCard, ChatCardWithSchema } from './exported-related/chat-card/ChatCard.js';
12
+ export { ChatComposerPropTypes, ChatContainerMessagesListPropTypes, ChatContainerPropTypes, defaultProps, defaultPropsComposer, defaultPropsMessagesList } from './react-desc-prop-types.js';
8
13
  export { ChatComposer, ChatComposerWithSchema } from './parts/chat-composer/ChatContainerComposer.js';
9
- export { SideBarChat, SideBarChatWithSchema } from './parts/chat-sidebar/SideBarChat.js';
10
14
  export { ChatContainer, ChatContainerWithSchema } from './parts/chat-container/ChatContainer.js';
11
- export { TileButton, TileButtonWithSchema } from './parts/tile-button/TileButton.js';
12
- export { MessageDelimiter, MessageDelimiterWithSchema } from './parts/message-delimiter/MessageDelimiter.js';
13
- export { SystemMessage, SystemMessageWithSchema } from './parts/system-message/SystemMessage.js';
14
- export { ChatCard, ChatCardWithSchema } from './parts/chat-card/ChatCard.js';
15
+ export { ChatContainerMessagesList, ChatContainerMessagesListWithSchema } from './parts/chat-container-messages-list/ChatContainerMessagesList.js';
16
+ export { ChatDataTestIds } from './ChatDataTestids.js';
@@ -1,19 +1,17 @@
1
- import _jsx from '@babel/runtime/helpers/esm/jsx';
2
- import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
3
- import 'core-js/modules/web.url.to-json.js';
4
- import 'core-js/modules/web.dom-collections.iterator.js';
5
1
  import 'core-js/modules/esnext.async-iterator.filter.js';
6
2
  import 'core-js/modules/esnext.iterator.constructor.js';
7
3
  import 'core-js/modules/esnext.iterator.filter.js';
8
4
  import 'core-js/modules/esnext.async-iterator.for-each.js';
9
5
  import 'core-js/modules/esnext.iterator.for-each.js';
6
+ import _jsx from '@babel/runtime/helpers/esm/jsx';
7
+ import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
8
+ import 'core-js/modules/web.dom-collections.iterator.js';
10
9
  import React from 'react';
11
10
  import { Grid } from '@elliemae/ds-grid';
12
- import { describe } from 'react-desc';
13
11
  import { PaperAirplane } from '@elliemae/ds-icons';
12
+ import { describe, useMemoMergePropsWithDefault, useValidateTypescriptPropTypes } from '@elliemae/ds-props-helpers';
14
13
  import { StyledChatContainerContentComposer, StyledComposerInput, StyledComposerButton, StyledCounterArea, StyledCounterErrorA11y } from './styled.js';
15
- import { useValidateProps } from './config/useValidateProps.js';
16
- import { composerProps, defaultComposerPros } from './props.js';
14
+ import { ChatComposerPropTypes, defaultPropsComposer } from '../../react-desc-prop-types.js';
17
15
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
18
16
 
19
17
  var _PaperAirplane, _Grid;
@@ -25,7 +23,8 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
25
23
  const ChatComposer = props => {
26
24
  var _input$current;
27
25
 
28
- useValidateProps(props, ChatComposerWithSchema.toJSON());
26
+ const propsWithDefault = useMemoMergePropsWithDefault(props, defaultPropsComposer);
27
+ useValidateTypescriptPropTypes(propsWithDefault, ChatComposerPropTypes);
29
28
  const {
30
29
  inputValue,
31
30
  onChange,
@@ -42,7 +41,7 @@ const ChatComposer = props => {
42
41
  buttonDisabled,
43
42
  dataTestid,
44
43
  actionRef
45
- } = props;
44
+ } = propsWithDefault;
46
45
  const COMPOSER_MIN_HEIGHT = 32;
47
46
  const input = React.useRef();
48
47
  const inputSize = React.useRef();
@@ -146,8 +145,7 @@ const ChatComposer = props => {
146
145
  }) : '', inputMaxLength ? " ".concat(inputLength, " / ").concat(inputMaxLength) : ''), _Grid || (_Grid = /*#__PURE__*/_jsx(Grid, {}))));
147
146
  };
148
147
 
149
- ChatComposer.defaultProps = defaultComposerPros;
150
148
  const ChatComposerWithSchema = describe(ChatComposer);
151
- ChatComposerWithSchema.propTypes = composerProps;
149
+ ChatComposerWithSchema.propTypes = ChatComposerPropTypes;
152
150
 
153
151
  export { ChatComposer, ChatComposerWithSchema };
@@ -7,14 +7,13 @@ import _jsx from '@babel/runtime/helpers/esm/jsx';
7
7
  import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
8
8
  import React from 'react';
9
9
  import { noop } from 'lodash';
10
- import { describe } from 'react-desc';
10
+ import { describe, useMemoMergePropsWithDefault, useValidateTypescriptPropTypes, useGetGlobalAttributes } from '@elliemae/ds-props-helpers';
11
11
  import DSIndeterminateProgressIndicator from '@elliemae/ds-indeterminate-progress-indicator';
12
12
  import DSBanner, { BANNER_TYPES } from '@elliemae/ds-banner';
13
13
  import { ChatComposer } from '../chat-composer/ChatContainerComposer.js';
14
14
  import { ChatContainerMessagesList } from '../chat-container-messages-list/ChatContainerMessagesList.js';
15
- import { containerProps, defaultProps } from './props.js';
15
+ import { ChatContainerPropTypes, defaultProps } from '../../react-desc-prop-types.js';
16
16
  import { StyledIndicatorContainer, StyledChatContainerContent, MobileStyledChatContainerContent } from './styled.js';
17
- import { useValidateProps } from './config/useValidateProps.js';
18
17
  import { jsxs, jsx } from 'react/jsx-runtime';
19
18
 
20
19
  var _DSIndeterminateProgr;
@@ -26,7 +25,9 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
26
25
  const ChatContainer = props => {
27
26
  var _messagesListProps$me2, _containerRef$current;
28
27
 
29
- useValidateProps(props, containerProps);
28
+ const propsWithDefault = useMemoMergePropsWithDefault(props, defaultProps);
29
+ useValidateTypescriptPropTypes(propsWithDefault, ChatContainerPropTypes);
30
+ const globalAttributes = useGetGlobalAttributes(propsWithDefault);
30
31
  const {
31
32
  sendingText,
32
33
  sendingMessages,
@@ -42,9 +43,8 @@ const ChatContainer = props => {
42
43
  device,
43
44
  isLoading,
44
45
  hasMoreItems,
45
- getMoreMessages,
46
- ariaLabel
47
- } = props;
46
+ getMoreMessages
47
+ } = propsWithDefault;
48
48
  const bannerRef = React.useRef({
49
49
  focusOnWrapper: noop,
50
50
  focusOnLink: noop
@@ -96,11 +96,10 @@ const ChatContainer = props => {
96
96
  actionRef.current.focusOnBannerLink = bannerRef.current.focusOnLink;
97
97
  }
98
98
  }, [actionRef]);
99
- return /*#__PURE__*/jsxs(Container, {
99
+ return /*#__PURE__*/jsxs(Container, _objectSpread(_objectSpread({}, globalAttributes), {}, {
100
100
  rows: ['minmax(0, 1fr)', 'auto'],
101
101
  ref: containerRef,
102
102
  role: "region",
103
- "aria-label": ariaLabel,
104
103
  children: [/*#__PURE__*/_jsx("div", {
105
104
  style: {
106
105
  position: 'relative',
@@ -115,7 +114,7 @@ const ChatContainer = props => {
115
114
  sendingText: sendingText,
116
115
  bannerPosition: bannerPosition,
117
116
  bannerRef: bannerRef
118
- })), ['top', 'bottom'].includes(isLoading) ? /*#__PURE__*/_jsx(StyledIndicatorContainer, {
117
+ })), isLoading && ['top', 'bottom'].includes(isLoading) ? /*#__PURE__*/_jsx(StyledIndicatorContainer, {
119
118
  isLoading: isLoading,
120
119
  "data-testid": "ds-chat-loading-indicator"
121
120
  }, void 0, _DSIndeterminateProgr || (_DSIndeterminateProgr = /*#__PURE__*/_jsx(DSIndeterminateProgressIndicator, {
@@ -126,17 +125,17 @@ const ChatContainer = props => {
126
125
  isLoading: bannerPosition
127
126
  }, void 0, /*#__PURE__*/_jsx(DSBanner, {
128
127
  showCloseButton: true,
129
- label: bannerProps.label || 'Unread messages',
128
+ label: (bannerProps === null || bannerProps === void 0 ? void 0 : bannerProps.label) || 'Unread messages',
130
129
  containerProps: {
131
130
  id: 'ds-chat-banner'
132
131
  },
133
132
  actionLink: {
134
- label: bannerProps.viewLabel || 'View',
135
- onClick: bannerProps.onView
133
+ label: (bannerProps === null || bannerProps === void 0 ? void 0 : bannerProps.viewLabel) || 'View',
134
+ onClick: bannerProps === null || bannerProps === void 0 ? void 0 : bannerProps.onView
136
135
  },
137
- onClose: bannerProps.onClose,
136
+ onClose: bannerProps === null || bannerProps === void 0 ? void 0 : bannerProps.onClose,
138
137
  isOpen: true,
139
- type: bannerProps.type || BANNER_TYPES.INFO,
138
+ type: (bannerProps === null || bannerProps === void 0 ? void 0 : bannerProps.type) || BANNER_TYPES.INFO,
140
139
  actionRef: bannerRef
141
140
  })), sendingMessages && sendingMessages.length > 0 ? /*#__PURE__*/_jsx(StyledIndicatorContainer, {
142
141
  isLoading: "bottom",
@@ -152,11 +151,10 @@ const ChatContainer = props => {
152
151
  maxHeight: (((_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : _containerRef$current.clientHeight) || 0) / 2,
153
152
  actionRef: actionRef || listRef
154
153
  }))]
155
- });
154
+ }));
156
155
  };
157
156
 
158
- ChatContainer.defaultProps = defaultProps;
159
157
  const ChatContainerWithSchema = describe(ChatContainer);
160
- ChatContainerWithSchema.propTypes = containerProps;
158
+ ChatContainerWithSchema.propTypes = ChatContainerPropTypes;
161
159
 
162
160
  export { ChatContainer, ChatContainerWithSchema };
@@ -1,8 +1,8 @@
1
1
  import styled from 'styled-components';
2
2
  import { Grid } from '@elliemae/ds-grid';
3
- import { StyledTitleLeftBubble, StyleBodyWrapper, StyledTitleRightBubble } from '../bubble/styled.js';
3
+ import { StyledTitleLeftBubble, StyleBodyWrapper, StyledTitleRightBubble } from '../../exported-related/bubble/styled.js';
4
4
  import { StyledComposerInput } from '../chat-composer/styled.js';
5
- import { Wrapper, Title, Message, Time } from '../system-message/style.js';
5
+ import { Wrapper, Title, Message, Time } from '../../exported-related/system-message/style.js';
6
6
 
7
7
  const CONTAINER_WIDTH = 300;
8
8
  const StyledChatContainerContent = /*#__PURE__*/styled(Grid).withConfig({
@@ -12,16 +12,16 @@ import 'core-js/modules/esnext.iterator.map.js';
12
12
  import 'core-js/modules/esnext.async-iterator.find.js';
13
13
  import 'core-js/modules/esnext.iterator.find.js';
14
14
  import React from 'react';
15
- import { describe } from 'react-desc';
15
+ import { describe, useMemoMergePropsWithDefault, useValidateTypescriptPropTypes, useGetGlobalAttributes } from '@elliemae/ds-props-helpers';
16
16
  import { useVirtual } from 'react-virtual';
17
17
  import DSButton from '@elliemae/ds-button';
18
18
  import { debounce } from 'lodash';
19
- import { ChatBubble } from '../bubble/ChatBubble.js';
20
- import { BUBBLE_TYPES } from '../bubble/props.js';
21
- import { MessageDelimiter } from '../message-delimiter/MessageDelimiter.js';
22
- import { SystemMessage } from '../system-message/SystemMessage.js';
19
+ import { ChatBubble } from '../../exported-related/bubble/ChatBubble.js';
20
+ import { BUBBLE_TYPES } from '../../exported-related/bubble/props.js';
21
+ import { MessageDelimiter } from '../../exported-related/message-delimiter/MessageDelimiter.js';
22
+ import { SystemMessage } from '../../exported-related/system-message/SystemMessage.js';
23
23
  import { ListItem, StyledWrapperListItem, StyledWrapper, StyledChatContainerContentList, StyledChatContainerContentListScroll, StyledLoadMoreContainer } from './styled.js';
24
- import { listProps, defaultProps } from './props.js';
24
+ import { ChatContainerMessagesListPropTypes, defaultPropsMessagesList } from '../../react-desc-prop-types.js';
25
25
  import { jsx } from 'react/jsx-runtime';
26
26
 
27
27
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
@@ -43,6 +43,9 @@ const getPadding = _ref => {
43
43
  };
44
44
 
45
45
  const ChatContainerMessagesList = props => {
46
+ const propsWithDefault = useMemoMergePropsWithDefault(props, defaultPropsMessagesList);
47
+ useValidateTypescriptPropTypes(propsWithDefault, ChatContainerMessagesListPropTypes);
48
+ const globalAttributes = useGetGlobalAttributes(propsWithDefault);
46
49
  const {
47
50
  sendingText,
48
51
  bannerPosition,
@@ -54,7 +57,7 @@ const ChatContainerMessagesList = props => {
54
57
  hasMoreItems,
55
58
  isLoading,
56
59
  bannerRef
57
- } = props;
60
+ } = propsWithDefault;
58
61
  const pendingOnScroll = React.useRef(false);
59
62
  const loadMoreRef = React.useRef(null);
60
63
  const virtualListRef = React.useRef(); // estimateSize should not be really required given what was stated on
@@ -65,7 +68,7 @@ const ChatContainerMessagesList = props => {
65
68
  totalSize,
66
69
  virtualItems
67
70
  } = useVirtual(_objectSpread(_objectSpread({
68
- size: messages.length,
71
+ size: messages === null || messages === void 0 ? void 0 : messages.length,
69
72
  parentRef: virtualListRef,
70
73
  overscan: 15
71
74
  }, getPadding({
@@ -115,6 +118,9 @@ const ChatContainerMessagesList = props => {
115
118
  onlyFocus(index);
116
119
  onScrollStop();
117
120
  }, [onScrollStop, onlyFocus, vScroll]);
121
+ const checkPendingOnScroll = React.useCallback(() => {
122
+ if (pendingOnScroll.current === true) onScrollStop();
123
+ }, [onScrollStop]);
118
124
  React.useEffect(() => {
119
125
  if (actionRef && actionRef.current) {
120
126
  actionRef.current.scrollToIndex = function (a) {
@@ -144,6 +150,26 @@ const ChatContainerMessagesList = props => {
144
150
  };
145
151
  }
146
152
  }, [actionRef, onScrollStop, onlyFocus, scrollAndFocus, vScroll]);
153
+ React.useEffect(() => {
154
+ let handlerCallback = null;
155
+ const localVirtualRef = virtualListRef.current;
156
+
157
+ const onScroll = () => {
158
+ if (handlerCallback) clearTimeout(handlerCallback);
159
+ handlerCallback = setTimeout(onScrollStop, 300);
160
+ };
161
+
162
+ if (onScrollEnds) {
163
+ virtualListRef.current.addEventListener('scroll', onScroll);
164
+ }
165
+
166
+ document.addEventListener('visibilitychange', checkPendingOnScroll);
167
+ return () => {
168
+ if (handlerCallback) clearTimeout(handlerCallback);
169
+ if (onScrollEnds) localVirtualRef.removeEventListener('scroll', onScroll);
170
+ document.removeEventListener('visibilitychange', checkPendingOnScroll);
171
+ };
172
+ }, [onScrollStop, onScrollEnds, checkPendingOnScroll]);
147
173
  const handleKey = React.useCallback(e => {
148
174
  const {
149
175
  key
@@ -170,7 +196,7 @@ const ChatContainerMessagesList = props => {
170
196
  case 'ArrowDown':
171
197
  e.preventDefault();
172
198
 
173
- if (index < messages.length - 1) {
199
+ if (index < (messages === null || messages === void 0 ? void 0 : messages.length) - 1) {
174
200
  virtualListRef.current.querySelector("[data-index=\"".concat(index + 1, "\"]")).focus();
175
201
  }
176
202
 
@@ -183,7 +209,7 @@ const ChatContainerMessagesList = props => {
183
209
 
184
210
  case 'End':
185
211
  e.preventDefault();
186
- scrollAndFocus(messages.length - 1);
212
+ scrollAndFocus((messages === null || messages === void 0 ? void 0 : messages.length) - 1);
187
213
  break;
188
214
 
189
215
  case 'Tab':
@@ -194,8 +220,10 @@ const ChatContainerMessagesList = props => {
194
220
  (_loadMoreRef$current2 = loadMoreRef.current) === null || _loadMoreRef$current2 === void 0 ? void 0 : _loadMoreRef$current2.focus();
195
221
  } else if (hasMoreItems === 'top' && e.shiftKey) ; else if (!e.shiftKey) {
196
222
  if (bannerPosition) {
223
+ var _bannerRef$current;
224
+
197
225
  e.preventDefault();
198
- bannerRef.current.focusOnWrapper();
226
+ bannerRef === null || bannerRef === void 0 ? void 0 : (_bannerRef$current = bannerRef.current) === null || _bannerRef$current === void 0 ? void 0 : _bannerRef$current.focusOnWrapper();
199
227
  }
200
228
  } else {
201
229
  var _virtualListRef$curre4;
@@ -206,7 +234,7 @@ const ChatContainerMessagesList = props => {
206
234
 
207
235
  break;
208
236
  }
209
- }, [bannerRef, hasMoreItems, messages.length, bannerPosition, scrollAndFocus]);
237
+ }, [bannerRef, hasMoreItems, messages === null || messages === void 0 ? void 0 : messages.length, bannerPosition, scrollAndFocus]);
210
238
  const handleListKey = React.useCallback(e => {
211
239
  const {
212
240
  key
@@ -217,7 +245,9 @@ const ChatContainerMessagesList = props => {
217
245
  e.preventDefault();
218
246
 
219
247
  if (document.activeElement !== loadMoreRef.current) {
220
- onlyFocus(onScrollStop().shift());
248
+ var _onScrollStop;
249
+
250
+ onlyFocus((_onScrollStop = onScrollStop()) === null || _onScrollStop === void 0 ? void 0 : _onScrollStop.shift());
221
251
  }
222
252
 
223
253
  break;
@@ -228,7 +258,9 @@ const ChatContainerMessagesList = props => {
228
258
  if (document.activeElement === loadMoreRef.current) {
229
259
  virtualListRef.current.querySelector("[data-index=\"0\"]").focus();
230
260
  } else {
231
- onlyFocus(onScrollStop().pop());
261
+ var _onScrollStop2;
262
+
263
+ onlyFocus((_onScrollStop2 = onScrollStop()) === null || _onScrollStop2 === void 0 ? void 0 : _onScrollStop2.pop());
232
264
  }
233
265
 
234
266
  break;
@@ -240,7 +272,7 @@ const ChatContainerMessagesList = props => {
240
272
 
241
273
  case 'End':
242
274
  e.preventDefault();
243
- scrollAndFocus(messages.length - 1);
275
+ scrollAndFocus((messages === null || messages === void 0 ? void 0 : messages.length) - 1);
244
276
  break;
245
277
 
246
278
  case 'Tab':
@@ -271,30 +303,7 @@ const ChatContainerMessagesList = props => {
271
303
 
272
304
  break;
273
305
  }
274
- }, [actionRef, hasMoreItems, messages.length, onScrollStop, onlyFocus, scrollAndFocus]);
275
- const checkPendingOnScroll = React.useCallback(() => {
276
- if (pendingOnScroll.current === true) onScrollStop();
277
- }, [onScrollStop]);
278
- React.useEffect(() => {
279
- let handlerCallback = null;
280
- const localVirtualRef = virtualListRef.current;
281
-
282
- const onScroll = () => {
283
- if (handlerCallback) clearTimeout(handlerCallback);
284
- handlerCallback = setTimeout(onScrollStop, 300);
285
- };
286
-
287
- if (onScrollEnds) {
288
- virtualListRef.current.addEventListener('scroll', onScroll);
289
- }
290
-
291
- document.addEventListener('visibilitychange', checkPendingOnScroll);
292
- return () => {
293
- if (handlerCallback) clearTimeout(handlerCallback);
294
- if (onScrollEnds) localVirtualRef.removeEventListener('scroll', onScroll);
295
- document.removeEventListener('visibilitychange', checkPendingOnScroll);
296
- };
297
- }, [onScrollStop, onScrollEnds, checkPendingOnScroll]);
306
+ }, [actionRef, hasMoreItems, messages === null || messages === void 0 ? void 0 : messages.length, onScrollStop, onlyFocus, scrollAndFocus]);
298
307
  const render = React.useMemo(() => virtualItems.map(virtualItem => {
299
308
  const {
300
309
  index,
@@ -328,30 +337,31 @@ const ChatContainerMessagesList = props => {
328
337
  })) : null, row.type === BUBBLE_TYPES.DELIMITER ? /*#__PURE__*/jsx(MessageDelimiter, _objectSpread({}, row)) : null, row.type === BUBBLE_TYPES.SYSTEM ? /*#__PURE__*/jsx(SystemMessage, _objectSpread({}, row)) : null)
329
338
  }, "ds-chat-bubble-".concat(index, "-").concat(row.dsId, "-").concat(row.type));
330
339
  }), [virtualItems, messages, sendingMessages, handleKey, sendingText]);
331
- return /*#__PURE__*/_jsx(StyledWrapper, {}, void 0, /*#__PURE__*/jsx(StyledChatContainerContentList, {
332
- "data-testid": "chat-thread-container",
333
- tabIndex: 0,
334
- "aria-live": "polite",
335
- "aria-relevant": "additions",
336
- ref: virtualListRef,
337
- role: "list",
338
- onKeyDown: handleListKey,
339
- children: /*#__PURE__*/_jsx(StyledChatContainerContentListScroll, {
340
- height: "".concat(totalSize, "px")
341
- }, void 0, !isLoading && hasMoreItems ? /*#__PURE__*/_jsx(StyledLoadMoreContainer, {
342
- hasMoreItems: hasMoreItems
343
- }, void 0, /*#__PURE__*/_jsx(DSButton, {
344
- labelText: "Load More",
345
- buttonType: "secondary",
346
- onClick: getMoreMessages,
347
- "data-testid": "ds-chat-load-more-btn",
348
- innerRef: loadMoreRef
349
- })) : null, render)
340
+ return /*#__PURE__*/jsx(StyledWrapper, _objectSpread(_objectSpread({}, globalAttributes), {}, {
341
+ children: /*#__PURE__*/jsx(StyledChatContainerContentList, {
342
+ "data-testid": "chat-thread-container",
343
+ tabIndex: 0,
344
+ "aria-live": "polite",
345
+ "aria-relevant": "additions",
346
+ ref: virtualListRef,
347
+ role: "list",
348
+ onKeyDown: handleListKey,
349
+ children: /*#__PURE__*/_jsx(StyledChatContainerContentListScroll, {
350
+ height: "".concat(totalSize, "px")
351
+ }, void 0, !isLoading && hasMoreItems ? /*#__PURE__*/_jsx(StyledLoadMoreContainer, {
352
+ hasMoreItems: hasMoreItems
353
+ }, void 0, /*#__PURE__*/_jsx(DSButton, {
354
+ labelText: "Load More",
355
+ buttonType: "secondary",
356
+ onClick: getMoreMessages,
357
+ "data-testid": "ds-chat-load-more-btn",
358
+ innerRef: loadMoreRef
359
+ })) : null, render)
360
+ })
350
361
  }));
351
362
  };
352
363
 
353
- ChatContainerMessagesList.defaultProps = defaultProps;
354
364
  const ChatContainerMessagesListWithSchema = describe(ChatContainerMessagesList);
355
- ChatContainerMessagesListWithSchema.propTypes = listProps;
365
+ ChatContainerMessagesListWithSchema.propTypes = ChatContainerMessagesListPropTypes;
356
366
 
357
367
  export { ChatContainerMessagesList, ChatContainerMessagesListWithSchema };
@@ -1,6 +1,6 @@
1
1
  import styled from 'styled-components';
2
- import '../bubble/ChatBubble.js';
3
- import { BUBBLE_TYPES } from '../bubble/props.js';
2
+ import '../../exported-related/bubble/ChatBubble.js';
3
+ import { BUBBLE_TYPES } from '../../exported-related/bubble/props.js';
4
4
 
5
5
  const StyledWrapper = /*#__PURE__*/styled.div.withConfig({
6
6
  componentId: "sc-1jhprzr-0"
@@ -0,0 +1,3 @@
1
+ export { ChatComposer, ChatComposerWithSchema } from './chat-composer/ChatContainerComposer.js';
2
+ export { ChatContainer, ChatContainerWithSchema } from './chat-container/ChatContainer.js';
3
+ export { ChatContainerMessagesList, ChatContainerMessagesListWithSchema } from './chat-container-messages-list/ChatContainerMessagesList.js';