@elliemae/ds-chat 3.0.0-alpha.0 → 3.0.0-alpha.1

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 (396) hide show
  1. package/dist/cjs/{parts → exported-related}/bubble/ChatBubble.js +8 -9
  2. package/dist/cjs/exported-related/bubble/ChatBubble.js.map +7 -0
  3. package/dist/cjs/{parts → exported-related}/bubble/ChatBubbleArrow.js +0 -0
  4. package/dist/cjs/{parts → exported-related}/bubble/ChatBubbleArrow.js.map +1 -1
  5. package/dist/cjs/{parts → exported-related}/bubble/index.js +0 -0
  6. package/dist/cjs/{parts → exported-related}/bubble/index.js.map +1 -1
  7. package/dist/cjs/{parts → exported-related}/bubble/props.js +22 -22
  8. package/dist/cjs/exported-related/bubble/props.js.map +7 -0
  9. package/dist/cjs/{parts → exported-related}/bubble/styled.js +0 -0
  10. package/dist/cjs/exported-related/bubble/styled.js.map +7 -0
  11. package/dist/cjs/{parts → exported-related}/chat-card/ChatCard.js +4 -4
  12. package/dist/cjs/exported-related/chat-card/ChatCard.js.map +7 -0
  13. package/dist/cjs/{parts → exported-related}/chat-card/index.js +0 -0
  14. package/dist/cjs/{parts → exported-related}/chat-card/index.js.map +1 -1
  15. package/dist/cjs/{parts/message-delimiter → exported-related/chat-card}/props.js +10 -10
  16. package/dist/cjs/exported-related/chat-card/props.js.map +7 -0
  17. package/dist/cjs/{parts → exported-related}/chat-card/styled.js +0 -0
  18. package/dist/cjs/{parts → exported-related}/chat-card/styled.js.map +1 -1
  19. package/dist/cjs/{parts → exported-related}/chat-container-header/ChatContainerHeader.js +11 -5
  20. package/dist/cjs/exported-related/chat-container-header/ChatContainerHeader.js.map +7 -0
  21. package/dist/cjs/{parts → exported-related}/chat-container-header/helpers.js +0 -0
  22. package/dist/cjs/{parts → exported-related}/chat-container-header/helpers.js.map +2 -2
  23. package/dist/cjs/{parts/chat-card → exported-related/chat-container-header}/props.js +7 -5
  24. package/dist/cjs/exported-related/chat-container-header/props.js.map +7 -0
  25. package/dist/cjs/{parts → exported-related}/chat-container-header/styled.js +1 -0
  26. package/dist/cjs/{parts → exported-related}/chat-container-header/styled.js.map +3 -3
  27. package/dist/cjs/{parts → exported-related}/chat-empty-state/ChatEmptyState.js +7 -8
  28. package/dist/cjs/exported-related/chat-empty-state/ChatEmptyState.js.map +7 -0
  29. package/dist/cjs/{parts → exported-related}/chat-empty-state/props.js +4 -4
  30. package/dist/cjs/exported-related/chat-empty-state/props.js.map +7 -0
  31. package/dist/cjs/{parts → exported-related}/chat-empty-state/styled.js +0 -0
  32. package/dist/cjs/{parts → exported-related}/chat-empty-state/styled.js.map +1 -1
  33. package/dist/cjs/{parts → exported-related}/chat-sidebar/SideBarChat.js +28 -13
  34. package/dist/cjs/exported-related/chat-sidebar/SideBarChat.js.map +7 -0
  35. package/dist/cjs/{parts → exported-related}/chat-sidebar/index.js +0 -0
  36. package/dist/cjs/{parts → exported-related}/chat-sidebar/index.js.map +1 -1
  37. package/dist/cjs/{parts → exported-related}/chat-sidebar/props.js +2 -5
  38. package/dist/cjs/exported-related/chat-sidebar/props.js.map +7 -0
  39. package/dist/cjs/{parts → exported-related/chat-sidebar}/sidebar-button/SidebarButton.js +33 -6
  40. package/dist/cjs/exported-related/chat-sidebar/sidebar-button/SidebarButton.js.map +7 -0
  41. package/dist/cjs/{parts → exported-related/chat-sidebar}/sidebar-button/index.js +0 -0
  42. package/dist/cjs/{parts → exported-related/chat-sidebar}/sidebar-button/index.js.map +1 -1
  43. package/dist/cjs/{parts → exported-related/chat-sidebar}/sidebar-button/props.js +7 -8
  44. package/dist/cjs/exported-related/chat-sidebar/sidebar-button/props.js.map +7 -0
  45. package/dist/cjs/{parts → exported-related/chat-sidebar}/sidebar-button/styled.js +1 -1
  46. package/dist/cjs/exported-related/chat-sidebar/sidebar-button/styled.js.map +7 -0
  47. package/dist/cjs/{parts → exported-related}/chat-sidebar/styled.js +0 -0
  48. package/dist/cjs/{parts → exported-related}/chat-sidebar/styled.js.map +1 -1
  49. package/dist/cjs/{parts → exported-related}/floating-button/FloatingButton.js +18 -10
  50. package/dist/cjs/exported-related/floating-button/FloatingButton.js.map +7 -0
  51. package/dist/cjs/{parts → exported-related}/floating-button/index.js +0 -0
  52. package/dist/cjs/{parts → exported-related}/floating-button/index.js.map +1 -1
  53. package/dist/cjs/{parts → exported-related}/floating-button/props.js +0 -0
  54. package/dist/cjs/{parts → exported-related}/floating-button/props.js.map +1 -1
  55. package/dist/cjs/{parts → exported-related}/floating-button/styled.js +0 -0
  56. package/dist/cjs/{parts → exported-related}/floating-button/styled.js.map +1 -1
  57. package/dist/cjs/{parts → exported-related}/floating-container/styled.js +0 -0
  58. package/dist/cjs/{parts → exported-related}/floating-container/styled.js.map +1 -1
  59. package/dist/cjs/{parts → exported-related}/grid-influencer/InfluencerContainer.js +1 -1
  60. package/dist/cjs/exported-related/grid-influencer/InfluencerContainer.js.map +7 -0
  61. package/dist/cjs/{parts → exported-related}/grid-influencer/styled.js +0 -0
  62. package/dist/cjs/{parts → exported-related}/grid-influencer/styled.js.map +1 -1
  63. package/dist/cjs/exported-related/index.js +62 -0
  64. package/dist/cjs/exported-related/index.js.map +7 -0
  65. package/dist/cjs/{parts → exported-related}/message-delimiter/MessageDelimiter.js +23 -9
  66. package/dist/cjs/exported-related/message-delimiter/MessageDelimiter.js.map +7 -0
  67. package/dist/cjs/{parts → exported-related}/message-delimiter/index.js +0 -0
  68. package/dist/cjs/{parts → exported-related}/message-delimiter/index.js.map +1 -1
  69. package/dist/cjs/exported-related/message-delimiter/props.js +64 -0
  70. package/dist/cjs/exported-related/message-delimiter/props.js.map +7 -0
  71. package/dist/cjs/{parts → exported-related}/message-delimiter/styled.js +0 -0
  72. package/dist/cjs/{parts → exported-related}/message-delimiter/styled.js.map +1 -1
  73. package/dist/cjs/{parts → exported-related}/system-message/SystemMessage.js +5 -6
  74. package/dist/cjs/exported-related/system-message/SystemMessage.js.map +7 -0
  75. package/dist/cjs/{parts → exported-related}/system-message/index.js +0 -0
  76. package/dist/cjs/{parts → exported-related}/system-message/index.js.map +1 -1
  77. package/dist/cjs/{parts → exported-related}/system-message/props.js +0 -0
  78. package/dist/cjs/{parts → exported-related}/system-message/props.js.map +1 -1
  79. package/dist/cjs/{parts → exported-related}/system-message/style.js +0 -0
  80. package/dist/cjs/{parts → exported-related}/system-message/style.js.map +1 -1
  81. package/dist/cjs/{parts → exported-related}/tile-button/TileButton.js +6 -7
  82. package/dist/cjs/exported-related/tile-button/TileButton.js.map +7 -0
  83. package/dist/cjs/{parts → exported-related}/tile-button/index.js +0 -0
  84. package/dist/cjs/{parts → exported-related}/tile-button/index.js.map +1 -1
  85. package/dist/cjs/exported-related/tile-button/props.js +93 -0
  86. package/dist/cjs/exported-related/tile-button/props.js.map +7 -0
  87. package/dist/cjs/{parts → exported-related}/tile-button/styled.js +0 -0
  88. package/dist/cjs/{parts → exported-related}/tile-button/styled.js.map +2 -2
  89. package/dist/cjs/index.js +4 -42
  90. package/dist/cjs/index.js.map +2 -2
  91. package/dist/cjs/parts/chat-composer/ChatContainerComposer.js +23 -10
  92. package/dist/cjs/parts/chat-composer/ChatContainerComposer.js.map +2 -2
  93. package/dist/cjs/parts/chat-container/ChatContainer.js +39 -26
  94. package/dist/cjs/parts/chat-container/ChatContainer.js.map +2 -2
  95. package/dist/cjs/parts/chat-container/styled.js +2 -2
  96. package/dist/cjs/parts/chat-container/styled.js.map +1 -1
  97. package/dist/cjs/parts/chat-container-messages-list/ChatContainerMessagesList.js +77 -62
  98. package/dist/cjs/parts/chat-container-messages-list/ChatContainerMessagesList.js.map +2 -2
  99. package/dist/cjs/parts/chat-container-messages-list/index.js.map +2 -2
  100. package/dist/cjs/parts/chat-container-messages-list/styled.js +14 -1
  101. package/dist/cjs/parts/chat-container-messages-list/styled.js.map +2 -2
  102. package/dist/cjs/parts/{chat-card/config/useValidateProps.js → chat-container-messages-list/useGetNewMessages.js} +19 -8
  103. package/dist/cjs/parts/chat-container-messages-list/useGetNewMessages.js.map +7 -0
  104. package/dist/cjs/{index.d.js → parts/index.js} +6 -3
  105. package/dist/cjs/parts/index.js.map +7 -0
  106. package/dist/cjs/react-desc-prop-types.js +184 -0
  107. package/dist/cjs/react-desc-prop-types.js.map +7 -0
  108. package/dist/cjs/tests/utils.js +4 -4
  109. package/dist/cjs/tests/utils.js.map +2 -2
  110. package/dist/esm/{parts → exported-related}/bubble/ChatBubble.js +8 -9
  111. package/dist/esm/exported-related/bubble/ChatBubble.js.map +7 -0
  112. package/dist/esm/{parts → exported-related}/bubble/ChatBubbleArrow.js +0 -0
  113. package/dist/esm/{parts → exported-related}/bubble/ChatBubbleArrow.js.map +1 -1
  114. package/dist/esm/{parts → exported-related}/bubble/index.js +0 -0
  115. package/dist/esm/{parts → exported-related}/bubble/index.js.map +1 -1
  116. package/dist/esm/{parts → exported-related}/bubble/props.js +14 -14
  117. package/dist/esm/exported-related/bubble/props.js.map +7 -0
  118. package/dist/esm/{parts → exported-related}/bubble/styled.js +0 -0
  119. package/dist/esm/exported-related/bubble/styled.js.map +7 -0
  120. package/dist/esm/{parts → exported-related}/chat-card/ChatCard.js +4 -4
  121. package/dist/esm/exported-related/chat-card/ChatCard.js.map +7 -0
  122. package/dist/esm/{parts → exported-related}/chat-card/index.js +0 -0
  123. package/dist/esm/{parts → exported-related}/chat-card/index.js.map +1 -1
  124. package/dist/esm/{parts → exported-related}/chat-card/props.js +8 -1
  125. package/dist/esm/exported-related/chat-card/props.js.map +7 -0
  126. package/dist/esm/{parts → exported-related}/chat-card/styled.js +0 -0
  127. package/dist/esm/{parts → exported-related}/chat-card/styled.js.map +1 -1
  128. package/dist/esm/{parts → exported-related}/chat-container-header/ChatContainerHeader.js +11 -5
  129. package/dist/esm/exported-related/chat-container-header/ChatContainerHeader.js.map +7 -0
  130. package/dist/esm/{parts → exported-related}/chat-container-header/helpers.js +0 -0
  131. package/dist/esm/{parts → exported-related}/chat-container-header/helpers.js.map +2 -2
  132. package/dist/esm/exported-related/chat-container-header/props.js +14 -0
  133. package/dist/esm/exported-related/chat-container-header/props.js.map +7 -0
  134. package/dist/esm/{parts → exported-related}/chat-container-header/styled.js +1 -0
  135. package/dist/esm/{parts → exported-related}/chat-container-header/styled.js.map +3 -3
  136. package/dist/esm/{parts → exported-related}/chat-empty-state/ChatEmptyState.js +7 -8
  137. package/dist/esm/exported-related/chat-empty-state/ChatEmptyState.js.map +7 -0
  138. package/dist/esm/{parts → exported-related}/chat-empty-state/props.js +3 -3
  139. package/dist/esm/exported-related/chat-empty-state/props.js.map +7 -0
  140. package/dist/esm/{parts → exported-related}/chat-empty-state/styled.js +0 -0
  141. package/dist/esm/{parts → exported-related}/chat-empty-state/styled.js.map +1 -1
  142. package/dist/esm/{parts → exported-related}/chat-sidebar/SideBarChat.js +29 -12
  143. package/dist/esm/exported-related/chat-sidebar/SideBarChat.js.map +7 -0
  144. package/dist/esm/{parts → exported-related}/chat-sidebar/index.js +0 -0
  145. package/dist/esm/{parts → exported-related}/chat-sidebar/index.js.map +1 -1
  146. package/dist/esm/{parts → exported-related}/chat-sidebar/props.js +2 -5
  147. package/dist/esm/exported-related/chat-sidebar/props.js.map +7 -0
  148. package/dist/esm/exported-related/chat-sidebar/sidebar-button/SidebarButton.js +55 -0
  149. package/dist/esm/exported-related/chat-sidebar/sidebar-button/SidebarButton.js.map +7 -0
  150. package/dist/esm/{parts → exported-related/chat-sidebar}/sidebar-button/index.js +0 -0
  151. package/dist/esm/{parts → exported-related/chat-sidebar}/sidebar-button/index.js.map +1 -1
  152. package/dist/esm/{parts → exported-related/chat-sidebar}/sidebar-button/props.js +3 -4
  153. package/dist/esm/exported-related/chat-sidebar/sidebar-button/props.js.map +7 -0
  154. package/dist/esm/{parts → exported-related/chat-sidebar}/sidebar-button/styled.js +1 -1
  155. package/dist/esm/exported-related/chat-sidebar/sidebar-button/styled.js.map +7 -0
  156. package/dist/esm/{parts → exported-related}/chat-sidebar/styled.js +0 -0
  157. package/dist/esm/{parts → exported-related}/chat-sidebar/styled.js.map +1 -1
  158. package/dist/esm/exported-related/floating-button/FloatingButton.js +27 -0
  159. package/dist/esm/exported-related/floating-button/FloatingButton.js.map +7 -0
  160. package/dist/esm/{parts → exported-related}/floating-button/index.js +0 -0
  161. package/dist/esm/{parts → exported-related}/floating-button/index.js.map +1 -1
  162. package/dist/esm/{parts → exported-related}/floating-button/props.js +0 -0
  163. package/dist/esm/{parts → exported-related}/floating-button/props.js.map +1 -1
  164. package/dist/esm/{parts → exported-related}/floating-button/styled.js +0 -0
  165. package/dist/esm/{parts → exported-related}/floating-button/styled.js.map +1 -1
  166. package/dist/esm/{parts → exported-related}/floating-container/styled.js +0 -0
  167. package/dist/esm/{parts → exported-related}/floating-container/styled.js.map +1 -1
  168. package/dist/esm/{parts → exported-related}/grid-influencer/InfluencerContainer.js +1 -1
  169. package/dist/esm/exported-related/grid-influencer/InfluencerContainer.js.map +7 -0
  170. package/dist/esm/{parts → exported-related}/grid-influencer/styled.js +0 -0
  171. package/dist/esm/{parts → exported-related}/grid-influencer/styled.js.map +1 -1
  172. package/dist/esm/exported-related/index.js +33 -0
  173. package/dist/esm/exported-related/index.js.map +7 -0
  174. package/dist/esm/exported-related/message-delimiter/MessageDelimiter.js +47 -0
  175. package/dist/esm/exported-related/message-delimiter/MessageDelimiter.js.map +7 -0
  176. package/dist/esm/{parts → exported-related}/message-delimiter/index.js +0 -0
  177. package/dist/esm/{parts → exported-related}/message-delimiter/index.js.map +1 -1
  178. package/dist/esm/exported-related/message-delimiter/props.js +37 -0
  179. package/dist/esm/exported-related/message-delimiter/props.js.map +7 -0
  180. package/dist/esm/{parts → exported-related}/message-delimiter/styled.js +0 -0
  181. package/dist/esm/{parts → exported-related}/message-delimiter/styled.js.map +1 -1
  182. package/dist/esm/{parts → exported-related}/system-message/SystemMessage.js +4 -5
  183. package/dist/esm/exported-related/system-message/SystemMessage.js.map +7 -0
  184. package/dist/esm/{parts → exported-related}/system-message/index.js +0 -0
  185. package/dist/esm/{parts → exported-related}/system-message/index.js.map +1 -1
  186. package/dist/esm/{parts → exported-related}/system-message/props.js +0 -0
  187. package/dist/esm/{parts → exported-related}/system-message/props.js.map +1 -1
  188. package/dist/esm/{parts → exported-related}/system-message/style.js +0 -0
  189. package/dist/esm/{parts → exported-related}/system-message/style.js.map +1 -1
  190. package/dist/esm/{parts → exported-related}/tile-button/TileButton.js +5 -6
  191. package/dist/esm/exported-related/tile-button/TileButton.js.map +7 -0
  192. package/dist/esm/{parts → exported-related}/tile-button/index.js +0 -0
  193. package/dist/esm/{parts → exported-related}/tile-button/index.js.map +1 -1
  194. package/dist/esm/{parts → exported-related}/tile-button/props.js +3 -3
  195. package/dist/esm/exported-related/tile-button/props.js.map +7 -0
  196. package/dist/esm/{parts → exported-related}/tile-button/styled.js +0 -0
  197. package/dist/esm/{parts → exported-related}/tile-button/styled.js.map +2 -2
  198. package/dist/esm/index.js +4 -38
  199. package/dist/esm/index.js.map +2 -2
  200. package/dist/esm/parts/chat-composer/ChatContainerComposer.js +24 -9
  201. package/dist/esm/parts/chat-composer/ChatContainerComposer.js.map +2 -2
  202. package/dist/esm/parts/chat-container/ChatContainer.js +45 -25
  203. package/dist/esm/parts/chat-container/ChatContainer.js.map +2 -2
  204. package/dist/esm/parts/chat-container/styled.js +2 -2
  205. package/dist/esm/parts/chat-container/styled.js.map +1 -1
  206. package/dist/esm/parts/chat-container-messages-list/ChatContainerMessagesList.js +85 -62
  207. package/dist/esm/parts/chat-container-messages-list/ChatContainerMessagesList.js.map +2 -2
  208. package/dist/esm/parts/chat-container-messages-list/index.js +1 -4
  209. package/dist/esm/parts/chat-container-messages-list/index.js.map +2 -2
  210. package/dist/esm/parts/chat-container-messages-list/styled.js +14 -1
  211. package/dist/esm/parts/chat-container-messages-list/styled.js.map +2 -2
  212. package/dist/esm/parts/chat-container-messages-list/useGetNewMessages.js +20 -0
  213. package/dist/esm/parts/chat-container-messages-list/useGetNewMessages.js.map +7 -0
  214. package/dist/esm/parts/index.js +5 -0
  215. package/dist/esm/parts/index.js.map +7 -0
  216. package/dist/esm/react-desc-prop-types.js +157 -0
  217. package/dist/esm/react-desc-prop-types.js.map +7 -0
  218. package/dist/esm/tests/utils.js +1 -1
  219. package/dist/esm/tests/utils.js.map +1 -1
  220. package/package.json +11 -10
  221. package/dist/cjs/index.d.js.map +0 -7
  222. package/dist/cjs/parts/bubble/ChatBubble.js.map +0 -7
  223. package/dist/cjs/parts/bubble/config/useValidateProps.js +0 -54
  224. package/dist/cjs/parts/bubble/config/useValidateProps.js.map +0 -7
  225. package/dist/cjs/parts/bubble/props.js.map +0 -7
  226. package/dist/cjs/parts/bubble/styled.js.map +0 -7
  227. package/dist/cjs/parts/chat-card/ChatCard.js.map +0 -7
  228. package/dist/cjs/parts/chat-card/config/useValidateProps.js.map +0 -7
  229. package/dist/cjs/parts/chat-card/props.js.map +0 -7
  230. package/dist/cjs/parts/chat-composer/config/useValidateProps.js +0 -38
  231. package/dist/cjs/parts/chat-composer/config/useValidateProps.js.map +0 -7
  232. package/dist/cjs/parts/chat-composer/props.js +0 -79
  233. package/dist/cjs/parts/chat-composer/props.js.map +0 -7
  234. package/dist/cjs/parts/chat-container/config/useValidateProps.js +0 -38
  235. package/dist/cjs/parts/chat-container/config/useValidateProps.js.map +0 -7
  236. package/dist/cjs/parts/chat-container/index.js +0 -36
  237. package/dist/cjs/parts/chat-container/index.js.map +0 -7
  238. package/dist/cjs/parts/chat-container/props.js +0 -92
  239. package/dist/cjs/parts/chat-container/props.js.map +0 -7
  240. package/dist/cjs/parts/chat-container-header/ChatContainerHeader.js.map +0 -7
  241. package/dist/cjs/parts/chat-container-messages-list/config/useValidateProps.js +0 -38
  242. package/dist/cjs/parts/chat-container-messages-list/config/useValidateProps.js.map +0 -7
  243. package/dist/cjs/parts/chat-container-messages-list/props.js +0 -68
  244. package/dist/cjs/parts/chat-container-messages-list/props.js.map +0 -7
  245. package/dist/cjs/parts/chat-empty-state/ChatEmptyState.js.map +0 -7
  246. package/dist/cjs/parts/chat-empty-state/config/useValidateProps.js +0 -38
  247. package/dist/cjs/parts/chat-empty-state/config/useValidateProps.js.map +0 -7
  248. package/dist/cjs/parts/chat-empty-state/props.js.map +0 -7
  249. package/dist/cjs/parts/chat-sidebar/SideBarChat.js.map +0 -7
  250. package/dist/cjs/parts/chat-sidebar/config/useValidateProps.js +0 -38
  251. package/dist/cjs/parts/chat-sidebar/config/useValidateProps.js.map +0 -7
  252. package/dist/cjs/parts/chat-sidebar/props.js.map +0 -7
  253. package/dist/cjs/parts/floating-button/FloatingButton.js.map +0 -7
  254. package/dist/cjs/parts/grid-influencer/InfluencerContainer.js.map +0 -7
  255. package/dist/cjs/parts/message-delimiter/MessageDelimiter.js.map +0 -7
  256. package/dist/cjs/parts/message-delimiter/config/useValidateProps.js +0 -38
  257. package/dist/cjs/parts/message-delimiter/config/useValidateProps.js.map +0 -7
  258. package/dist/cjs/parts/message-delimiter/props.js.map +0 -7
  259. package/dist/cjs/parts/sidebar-button/SidebarButton.js.map +0 -7
  260. package/dist/cjs/parts/sidebar-button/props.js.map +0 -7
  261. package/dist/cjs/parts/sidebar-button/styled.js.map +0 -7
  262. package/dist/cjs/parts/system-message/SystemMessage.js.map +0 -7
  263. package/dist/cjs/parts/system-message/config/useValidateProps.js +0 -38
  264. package/dist/cjs/parts/system-message/config/useValidateProps.js.map +0 -7
  265. package/dist/cjs/parts/tile-button/TileButton.js.map +0 -7
  266. package/dist/cjs/parts/tile-button/config/useValidateProps.js +0 -38
  267. package/dist/cjs/parts/tile-button/config/useValidateProps.js.map +0 -7
  268. package/dist/cjs/parts/tile-button/props.js +0 -93
  269. package/dist/cjs/parts/tile-button/props.js.map +0 -7
  270. package/dist/cjs/prop-types.js +0 -60
  271. package/dist/cjs/prop-types.js.map +0 -7
  272. package/dist/esm/index.d.js +0 -2
  273. package/dist/esm/index.d.js.map +0 -7
  274. package/dist/esm/parts/bubble/ChatBubble.js.map +0 -7
  275. package/dist/esm/parts/bubble/config/useValidateProps.js +0 -25
  276. package/dist/esm/parts/bubble/config/useValidateProps.js.map +0 -7
  277. package/dist/esm/parts/bubble/props.js.map +0 -7
  278. package/dist/esm/parts/bubble/styled.js.map +0 -7
  279. package/dist/esm/parts/chat-card/ChatCard.js.map +0 -7
  280. package/dist/esm/parts/chat-card/config/useValidateProps.js +0 -9
  281. package/dist/esm/parts/chat-card/config/useValidateProps.js.map +0 -7
  282. package/dist/esm/parts/chat-card/props.js.map +0 -7
  283. package/dist/esm/parts/chat-composer/config/useValidateProps.js +0 -9
  284. package/dist/esm/parts/chat-composer/config/useValidateProps.js.map +0 -7
  285. package/dist/esm/parts/chat-composer/props.js +0 -50
  286. package/dist/esm/parts/chat-composer/props.js.map +0 -7
  287. package/dist/esm/parts/chat-container/config/useValidateProps.js +0 -9
  288. package/dist/esm/parts/chat-container/config/useValidateProps.js.map +0 -7
  289. package/dist/esm/parts/chat-container/index.js +0 -7
  290. package/dist/esm/parts/chat-container/index.js.map +0 -7
  291. package/dist/esm/parts/chat-container/props.js +0 -65
  292. package/dist/esm/parts/chat-container/props.js.map +0 -7
  293. package/dist/esm/parts/chat-container-header/ChatContainerHeader.js.map +0 -7
  294. package/dist/esm/parts/chat-container-messages-list/config/useValidateProps.js +0 -9
  295. package/dist/esm/parts/chat-container-messages-list/config/useValidateProps.js.map +0 -7
  296. package/dist/esm/parts/chat-container-messages-list/props.js +0 -39
  297. package/dist/esm/parts/chat-container-messages-list/props.js.map +0 -7
  298. package/dist/esm/parts/chat-empty-state/ChatEmptyState.js.map +0 -7
  299. package/dist/esm/parts/chat-empty-state/config/useValidateProps.js +0 -9
  300. package/dist/esm/parts/chat-empty-state/config/useValidateProps.js.map +0 -7
  301. package/dist/esm/parts/chat-empty-state/props.js.map +0 -7
  302. package/dist/esm/parts/chat-sidebar/SideBarChat.js.map +0 -7
  303. package/dist/esm/parts/chat-sidebar/config/useValidateProps.js +0 -9
  304. package/dist/esm/parts/chat-sidebar/config/useValidateProps.js.map +0 -7
  305. package/dist/esm/parts/chat-sidebar/props.js.map +0 -7
  306. package/dist/esm/parts/floating-button/FloatingButton.js +0 -19
  307. package/dist/esm/parts/floating-button/FloatingButton.js.map +0 -7
  308. package/dist/esm/parts/grid-influencer/InfluencerContainer.js.map +0 -7
  309. package/dist/esm/parts/message-delimiter/MessageDelimiter.js +0 -26
  310. package/dist/esm/parts/message-delimiter/MessageDelimiter.js.map +0 -7
  311. package/dist/esm/parts/message-delimiter/config/useValidateProps.js +0 -9
  312. package/dist/esm/parts/message-delimiter/config/useValidateProps.js.map +0 -7
  313. package/dist/esm/parts/message-delimiter/props.js +0 -19
  314. package/dist/esm/parts/message-delimiter/props.js.map +0 -7
  315. package/dist/esm/parts/sidebar-button/SidebarButton.js +0 -26
  316. package/dist/esm/parts/sidebar-button/SidebarButton.js.map +0 -7
  317. package/dist/esm/parts/sidebar-button/props.js.map +0 -7
  318. package/dist/esm/parts/sidebar-button/styled.js.map +0 -7
  319. package/dist/esm/parts/system-message/SystemMessage.js.map +0 -7
  320. package/dist/esm/parts/system-message/config/useValidateProps.js +0 -9
  321. package/dist/esm/parts/system-message/config/useValidateProps.js.map +0 -7
  322. package/dist/esm/parts/tile-button/TileButton.js.map +0 -7
  323. package/dist/esm/parts/tile-button/config/useValidateProps.js +0 -9
  324. package/dist/esm/parts/tile-button/config/useValidateProps.js.map +0 -7
  325. package/dist/esm/parts/tile-button/props.js.map +0 -7
  326. package/dist/esm/prop-types.js +0 -31
  327. package/dist/esm/prop-types.js.map +0 -7
  328. package/dist/types/ChatDataTestids.d.ts +0 -22
  329. package/dist/types/index.d.d.ts +0 -37
  330. package/dist/types/index.d.ts +0 -13
  331. package/dist/types/parts/bubble/ChatBubble.d.ts +0 -30
  332. package/dist/types/parts/bubble/ChatBubbleArrow.d.ts +0 -8
  333. package/dist/types/parts/bubble/config/useValidateProps.d.ts +0 -2
  334. package/dist/types/parts/bubble/index.d.ts +0 -2
  335. package/dist/types/parts/bubble/props.d.ts +0 -52
  336. package/dist/types/parts/bubble/styled.d.ts +0 -10
  337. package/dist/types/parts/bubble/tests/ChatBubble.test.d.ts +0 -1
  338. package/dist/types/parts/chat-card/ChatCard.d.ts +0 -33
  339. package/dist/types/parts/chat-card/config/useValidateProps.d.ts +0 -2
  340. package/dist/types/parts/chat-card/index.d.ts +0 -1
  341. package/dist/types/parts/chat-card/props.d.ts +0 -29
  342. package/dist/types/parts/chat-card/styled.d.ts +0 -7
  343. package/dist/types/parts/chat-composer/ChatContainerComposer.d.ts +0 -57
  344. package/dist/types/parts/chat-composer/config/useValidateProps.d.ts +0 -2
  345. package/dist/types/parts/chat-composer/index.d.ts +0 -1
  346. package/dist/types/parts/chat-composer/tests/ChatContainerComposer.test.d.ts +0 -1
  347. package/dist/types/parts/chat-container/ChatContainer.d.ts +0 -63
  348. package/dist/types/parts/chat-container/config/useValidateProps.d.ts +0 -2
  349. package/dist/types/parts/chat-container/index.d.ts +0 -1
  350. package/dist/types/parts/chat-container/styled.d.ts +0 -8
  351. package/dist/types/parts/chat-container/tests/ChatContainer.test.d.ts +0 -1
  352. package/dist/types/parts/chat-container-header/ChatContainerHeader.d.ts +0 -2
  353. package/dist/types/parts/chat-container-header/helpers.d.ts +0 -6
  354. package/dist/types/parts/chat-container-header/styled.d.ts +0 -4
  355. package/dist/types/parts/chat-container-messages-list/ChatContainerMessagesList.d.ts +0 -48
  356. package/dist/types/parts/chat-container-messages-list/config/useValidateProps.d.ts +0 -2
  357. package/dist/types/parts/chat-container-messages-list/index.d.ts +0 -1
  358. package/dist/types/parts/chat-container-messages-list/styled.d.ts +0 -11
  359. package/dist/types/parts/chat-empty-state/ChatEmptyState.d.ts +0 -21
  360. package/dist/types/parts/chat-empty-state/config/useValidateProps.d.ts +0 -2
  361. package/dist/types/parts/chat-empty-state/props.d.ts +0 -15
  362. package/dist/types/parts/chat-empty-state/styled.d.ts +0 -4
  363. package/dist/types/parts/chat-sidebar/SideBarChat.d.ts +0 -48
  364. package/dist/types/parts/chat-sidebar/config/useValidateProps.d.ts +0 -2
  365. package/dist/types/parts/chat-sidebar/index.d.ts +0 -1
  366. package/dist/types/parts/chat-sidebar/props.d.ts +0 -52
  367. package/dist/types/parts/chat-sidebar/styled.d.ts +0 -3
  368. package/dist/types/parts/floating-button/FloatingButton.d.ts +0 -18
  369. package/dist/types/parts/floating-button/index.d.ts +0 -1
  370. package/dist/types/parts/floating-button/props.d.ts +0 -19
  371. package/dist/types/parts/floating-button/styled.d.ts +0 -1
  372. package/dist/types/parts/floating-container/styled.d.ts +0 -2
  373. package/dist/types/parts/grid-influencer/InfluencerContainer.d.ts +0 -2
  374. package/dist/types/parts/grid-influencer/styled.d.ts +0 -3
  375. package/dist/types/parts/message-delimiter/MessageDelimiter.d.ts +0 -31
  376. package/dist/types/parts/message-delimiter/config/useValidateProps.d.ts +0 -2
  377. package/dist/types/parts/message-delimiter/index.d.ts +0 -1
  378. package/dist/types/parts/message-delimiter/props.d.ts +0 -26
  379. package/dist/types/parts/message-delimiter/styled.d.ts +0 -6
  380. package/dist/types/parts/sidebar-button/SidebarButton.d.ts +0 -24
  381. package/dist/types/parts/sidebar-button/index.d.ts +0 -0
  382. package/dist/types/parts/sidebar-button/props.d.ts +0 -29
  383. package/dist/types/parts/sidebar-button/styled.d.ts +0 -4
  384. package/dist/types/parts/system-message/SystemMessage.d.ts +0 -23
  385. package/dist/types/parts/system-message/config/useValidateProps.d.ts +0 -2
  386. package/dist/types/parts/system-message/index.d.ts +0 -1
  387. package/dist/types/parts/system-message/props.d.ts +0 -17
  388. package/dist/types/parts/system-message/style.d.ts +0 -7
  389. package/dist/types/parts/tile-button/TileButton.d.ts +0 -75
  390. package/dist/types/parts/tile-button/config/useValidateProps.d.ts +0 -2
  391. package/dist/types/parts/tile-button/index.d.ts +0 -1
  392. package/dist/types/parts/tile-button/props.d.ts +0 -88
  393. package/dist/types/parts/tile-button/styled.d.ts +0 -11
  394. package/dist/types/prop-types.d.ts +0 -33
  395. package/dist/types/styled.d.ts +0 -6
  396. package/dist/types/tests/utils.d.ts +0 -1
@@ -2,8 +2,22 @@ var __create = Object.create;
2
2
  var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
6
  var __getProtoOf = Object.getPrototypeOf;
6
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
9
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
10
+ var __spreadValues = (a, b) => {
11
+ for (var prop in b || (b = {}))
12
+ if (__hasOwnProp.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ if (__getOwnPropSymbols)
15
+ for (var prop of __getOwnPropSymbols(b)) {
16
+ if (__propIsEnum.call(b, prop))
17
+ __defNormalProp(a, prop, b[prop]);
18
+ }
19
+ return a;
20
+ };
7
21
  var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
8
22
  var __export = (target, all) => {
9
23
  for (var name in all)
@@ -33,13 +47,13 @@ __export(ChatContainerComposer_exports, {
33
47
  var React = __toESM(require("react"));
34
48
  var import_react = __toESM(require("react"));
35
49
  var import_ds_grid = require("@elliemae/ds-grid");
36
- var import_react_desc = require("react-desc");
37
50
  var import_ds_icons = require("@elliemae/ds-icons");
51
+ var import_ds_props_helpers = require("@elliemae/ds-props-helpers");
38
52
  var import_styled = require("./styled");
39
- var import_useValidateProps = require("./config/useValidateProps");
40
- var import_props = require("./props");
53
+ var import_react_desc_prop_types = require("../../react-desc-prop-types");
41
54
  const ChatComposer = (props) => {
42
- (0, import_useValidateProps.useValidateProps)(props, ChatComposerWithSchema.toJSON());
55
+ const propsWithDefault = (0, import_ds_props_helpers.useMemoMergePropsWithDefault)(props, import_react_desc_prop_types.defaultPropsComposer);
56
+ (0, import_ds_props_helpers.useValidateTypescriptPropTypes)(propsWithDefault, import_react_desc_prop_types.ChatComposerPropTypes);
43
57
  const {
44
58
  inputValue,
45
59
  onChange,
@@ -55,7 +69,7 @@ const ChatComposer = (props) => {
55
69
  buttonDisabled,
56
70
  dataTestid,
57
71
  actionRef
58
- } = props;
72
+ } = propsWithDefault;
59
73
  const COMPOSER_MIN_HEIGHT = 32;
60
74
  const input = import_react.default.useRef();
61
75
  const inputSize = import_react.default.useRef();
@@ -99,7 +113,7 @@ const ChatComposer = (props) => {
99
113
  }, /* @__PURE__ */ import_react.default.createElement(import_styled.StyledComposerInput, {
100
114
  ref: input,
101
115
  onChange: handleChange,
102
- style: { ...heightProps },
116
+ style: __spreadValues({}, heightProps),
103
117
  value: inputValue,
104
118
  onFocus,
105
119
  onBlur,
@@ -149,9 +163,8 @@ const ChatComposer = (props) => {
149
163
  role: "alert"
150
164
  }, maxLengthMessage || `You have entered ${inputLength} characters and have exceeded the limit by ${inputLength - inputMaxLength}. Please limit to less than ${inputMaxLength} characters. `), maxLengthMessage || `Please limit to less than ${inputMaxLength} characters. `) : "", inputMaxLength && !maxLengthMessage ? ` ${inputLength} / ${inputMaxLength}` : ""), /* @__PURE__ */ import_react.default.createElement(import_ds_grid.Grid, null)));
151
165
  };
152
- ChatComposer.propTypes = import_props.composerProps;
153
- ChatComposer.defaultProps = import_props.defaultComposerPros;
154
- const ChatComposerWithSchema = (0, import_react_desc.describe)(ChatComposer);
155
- ChatComposerWithSchema.propTypes = import_props.composerProps;
166
+ ChatComposer.propTypes = import_react_desc_prop_types.ChatComposerPropTypes;
167
+ const ChatComposerWithSchema = (0, import_ds_props_helpers.describe)(ChatComposer);
168
+ ChatComposerWithSchema.propTypes = import_react_desc_prop_types.ChatComposerPropTypes;
156
169
  module.exports = __toCommonJS(ChatContainerComposer_exports);
157
170
  //# sourceMappingURL=ChatContainerComposer.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/parts/chat-composer/ChatContainerComposer.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* eslint-disable max-lines */\nimport React from 'react';\nimport { Grid } from '@elliemae/ds-grid';\nimport { describe } from 'react-desc';\nimport { PaperAirplane } from '@elliemae/ds-icons';\nimport {\n StyledChatContainerContentComposer,\n StyledComposerInput,\n StyledComposerButton,\n StyledCounterArea,\n StyledCounterErrorA11y,\n} from './styled';\nimport { useValidateProps } from './config/useValidateProps';\n\nimport { defaultComposerPros, composerProps, ChatComposerProps } from './props';\n\n// eslint-disable-next-line complexity\nconst ChatComposer = (props: ChatComposerProps): JSX.Element => {\n useValidateProps(props, ChatComposerWithSchema.toJSON());\n\n const {\n inputValue,\n onChange,\n onResize,\n onSend,\n onFocus,\n onBlur,\n onKeyDown,\n maxHeight = 300,\n placeholder,\n inputMaxLength,\n maxLengthMessage,\n buttonDisabled,\n dataTestid,\n actionRef,\n } = props;\n\n const COMPOSER_MIN_HEIGHT = 32;\n const input = React.useRef<HTMLTextAreaElement>();\n const inputSize = React.useRef<HTMLTextAreaElement>();\n const inputSend = React.useRef<HTMLButtonElement>();\n const [height, setHeight] = React.useState(32);\n const internalMaxHeight = React.useMemo(() => maxHeight - 24, [maxHeight]);\n const [showScroll, setShowScroll] = React.useState(true);\n\n React.useEffect(() => {\n const newHeight =\n inputSize.current?.scrollHeight > internalMaxHeight ? internalMaxHeight : inputSize.current?.scrollHeight;\n if (newHeight !== height && newHeight > COMPOSER_MIN_HEIGHT) onResize(newHeight);\n setHeight(newHeight);\n setShowScroll(inputSize.current?.scrollHeight - inputSize.current?.clientHeight > 5);\n }, [inputValue, internalMaxHeight, height, onResize]);\n\n React.useEffect(() => {\n if (actionRef && actionRef.current) {\n actionRef.current.focusToComposer = () => {\n input.current.focus();\n };\n actionRef.current.focusToSend = () => {\n inputSend.current.focus();\n };\n }\n }, [actionRef]);\n\n const handleChange = React.useCallback(\n (e) => {\n onChange(e.target.value);\n },\n [onChange],\n );\n const heightProps = { height, overflow: showScroll ? 'auto' : 'hidden' };\n\n const inputLength = String(inputValue || '').length;\n const hasError = React.useMemo(() => inputLength > inputMaxLength, [inputLength, inputMaxLength]);\n return (\n <StyledChatContainerContentComposer rows={['auto', '15px']} maxHeight={`${maxHeight}px`} data-testid={dataTestid}>\n <Grid\n cols={['1fr', '24px']}\n style={{ height: heightProps.height }}\n justifyContent=\"center\"\n alignItems=\"flex-end\"\n gutter=\"xxs\"\n >\n <StyledComposerInput\n ref={input}\n onChange={handleChange}\n style={{ ...heightProps }}\n value={inputValue}\n onFocus={onFocus}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n placeholder={placeholder}\n aria-label=\"Message to send\"\n data-testid=\"chat-composer-textarea\"\n name=\"chat-composer-textarea\"\n id=\"chat-composer-textarea\"\n />\n\n <Grid height=\"32px\" alignItems=\"center\">\n <StyledComposerButton\n buttonType=\"text\"\n icon={<PaperAirplane width={18} height={18} />}\n onClick={onSend}\n size=\"s\"\n disabled={!inputValue || buttonDisabled || hasError}\n data-testid=\"chat-composer-send-button\"\n aria-label=\"Send\"\n innerRef={inputSend}\n />\n </Grid>\n </Grid>\n <StyledComposerInput\n ref={inputSize}\n style={{\n height: 32,\n visibility: 'hidden',\n pointerEvents: 'none',\n position: 'absolute',\n top: 0,\n width: input.current?.clientWidth,\n }}\n onChange={handleChange}\n value={inputValue}\n />\n <Grid cols={['1fr', '24px']} justifyContent=\"flex-end\" alignItems=\"center\" gutter=\"xxs\" pb=\"xxs\">\n <StyledCounterArea hasError={hasError} data-testid=\"composer-counter-area\">\n {inputMaxLength && hasError ? (\n <>\n <StyledCounterErrorA11y role=\"alert\">\n {maxLengthMessage ||\n `You have entered ${inputLength} characters and have exceeded the limit by ${\n inputLength - inputMaxLength\n }. Please limit to less than ${inputMaxLength} characters. `}\n </StyledCounterErrorA11y>\n {maxLengthMessage || `Please limit to less than ${inputMaxLength} characters. `}\n </>\n ) : (\n ''\n )}\n {inputMaxLength && !maxLengthMessage ? ` ${inputLength} / ${inputMaxLength}` : ''}\n </StyledCounterArea>\n <Grid />\n </Grid>\n </StyledChatContainerContentComposer>\n );\n};\n\nChatComposer.propTypes = composerProps;\nChatComposer.defaultProps = defaultComposerPros;\nconst ChatComposerWithSchema = describe(ChatComposer);\nChatComposerWithSchema.propTypes = composerProps;\n\nexport { ChatComposer, ChatComposerWithSchema };\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* eslint-disable max-lines */\nimport React, { WeakValidationMap } from 'react';\nimport { Grid } from '@elliemae/ds-grid';\nimport { PaperAirplane } from '@elliemae/ds-icons';\nimport { useMemoMergePropsWithDefault, useValidateTypescriptPropTypes, describe } from '@elliemae/ds-props-helpers';\nimport {\n StyledChatContainerContentComposer,\n StyledComposerInput,\n StyledComposerButton,\n StyledCounterArea,\n StyledCounterErrorA11y,\n} from './styled';\n\nimport { DSChatT, ChatComposerPropTypes, defaultPropsComposer } from '../../react-desc-prop-types';\n// eslint-disable-next-line complexity\nconst ChatComposer: React.ComponentType<DSChatT.ComposerProps> = (props) => {\n const propsWithDefault = useMemoMergePropsWithDefault<DSChatT.ComposerProps>(props, defaultPropsComposer);\n useValidateTypescriptPropTypes<DSChatT.ComposerProps>(propsWithDefault, ChatComposerPropTypes);\n const {\n inputValue,\n onChange,\n onResize,\n onSend,\n onFocus,\n onBlur,\n onKeyDown,\n maxHeight = 300,\n placeholder,\n inputMaxLength,\n maxLengthMessage,\n buttonDisabled,\n dataTestid,\n actionRef,\n } = propsWithDefault;\n\n const COMPOSER_MIN_HEIGHT = 32;\n const input = React.useRef<HTMLTextAreaElement>();\n const inputSize = React.useRef<HTMLTextAreaElement>();\n const inputSend = React.useRef<HTMLButtonElement>();\n const [height, setHeight] = React.useState(32);\n const internalMaxHeight = React.useMemo(() => maxHeight - 24, [maxHeight]);\n const [showScroll, setShowScroll] = React.useState(true);\n\n React.useEffect(() => {\n const newHeight =\n inputSize.current?.scrollHeight > internalMaxHeight ? internalMaxHeight : inputSize.current?.scrollHeight;\n if (newHeight !== height && newHeight > COMPOSER_MIN_HEIGHT) onResize(newHeight);\n setHeight(newHeight);\n setShowScroll(inputSize.current?.scrollHeight - inputSize.current?.clientHeight > 5);\n }, [inputValue, internalMaxHeight, height, onResize]);\n\n React.useEffect(() => {\n if (actionRef && actionRef.current) {\n actionRef.current.focusToComposer = () => {\n input.current.focus();\n };\n actionRef.current.focusToSend = () => {\n inputSend.current.focus();\n };\n }\n }, [actionRef]);\n\n const handleChange = React.useCallback(\n (e) => {\n onChange(e.target.value);\n },\n [onChange],\n );\n const heightProps = { height, overflow: showScroll ? 'auto' : 'hidden' };\n\n const inputLength = String(inputValue || '').length;\n const hasError = React.useMemo(() => inputLength > inputMaxLength, [inputLength, inputMaxLength]);\n return (\n <StyledChatContainerContentComposer rows={['auto', '15px']} maxHeight={`${maxHeight}px`} data-testid={dataTestid}>\n <Grid\n cols={['1fr', '24px']}\n style={{ height: heightProps.height }}\n justifyContent=\"center\"\n alignItems=\"flex-end\"\n gutter=\"xxs\"\n >\n <StyledComposerInput\n ref={input}\n onChange={handleChange}\n style={{ ...heightProps }}\n value={inputValue}\n onFocus={onFocus}\n onBlur={onBlur}\n onKeyDown={onKeyDown}\n placeholder={placeholder}\n aria-label=\"Message to send\"\n data-testid=\"chat-composer-textarea\"\n name=\"chat-composer-textarea\"\n id=\"chat-composer-textarea\"\n />\n\n <Grid height=\"32px\" alignItems=\"center\">\n <StyledComposerButton\n buttonType=\"text\"\n icon={<PaperAirplane width={18} height={18} />}\n onClick={onSend}\n size=\"s\"\n disabled={!inputValue || buttonDisabled || hasError}\n data-testid=\"chat-composer-send-button\"\n aria-label=\"Send\"\n innerRef={inputSend}\n />\n </Grid>\n </Grid>\n <StyledComposerInput\n ref={inputSize}\n style={{\n height: 32,\n visibility: 'hidden',\n pointerEvents: 'none',\n position: 'absolute',\n top: 0,\n width: input.current?.clientWidth,\n }}\n onChange={handleChange}\n value={inputValue}\n />\n <Grid cols={['1fr', '24px']} justifyContent=\"flex-end\" alignItems=\"center\" gutter=\"xxs\" pb=\"xxs\">\n <StyledCounterArea hasError={hasError} data-testid=\"composer-counter-area\">\n {inputMaxLength && hasError ? (\n <>\n <StyledCounterErrorA11y role=\"alert\">\n {maxLengthMessage ||\n `You have entered ${inputLength} characters and have exceeded the limit by ${\n inputLength - inputMaxLength\n }. Please limit to less than ${inputMaxLength} characters. `}\n </StyledCounterErrorA11y>\n {maxLengthMessage || `Please limit to less than ${inputMaxLength} characters. `}\n </>\n ) : (\n ''\n )}\n {inputMaxLength && !maxLengthMessage ? ` ${inputLength} / ${inputMaxLength}` : ''}\n </StyledCounterArea>\n <Grid />\n </Grid>\n </StyledChatContainerContentComposer>\n );\n};\n\nChatComposer.propTypes = ChatComposerPropTypes as WeakValidationMap<unknown>;\nconst ChatComposerWithSchema = describe(ChatComposer);\nChatComposerWithSchema.propTypes = ChatComposerPropTypes as WeakValidationMap<unknown>;\n\nexport { ChatComposer, ChatComposerWithSchema };\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,9 +1,26 @@
1
1
  var __create = Object.create;
2
2
  var __defProp = Object.defineProperty;
3
+ var __defProps = Object.defineProperties;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
6
  var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
8
  var __getProtoOf = Object.getPrototypeOf;
6
9
  var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
+ var __spreadValues = (a, b) => {
13
+ for (var prop in b || (b = {}))
14
+ if (__hasOwnProp.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ if (__getOwnPropSymbols)
17
+ for (var prop of __getOwnPropSymbols(b)) {
18
+ if (__propIsEnum.call(b, prop))
19
+ __defNormalProp(a, prop, b[prop]);
20
+ }
21
+ return a;
22
+ };
23
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
7
24
  var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
8
25
  var __export = (target, all) => {
9
26
  for (var name in all)
@@ -33,16 +50,17 @@ __export(ChatContainer_exports, {
33
50
  var React = __toESM(require("react"));
34
51
  var import_react = __toESM(require("react"));
35
52
  var import_lodash = require("lodash");
36
- var import_react_desc = require("react-desc");
53
+ var import_ds_props_helpers = require("@elliemae/ds-props-helpers");
37
54
  var import_ds_indeterminate_progress_indicator = __toESM(require("@elliemae/ds-indeterminate-progress-indicator"));
38
55
  var import_ds_banner = __toESM(require("@elliemae/ds-banner"));
39
56
  var import_chat_composer = require("../chat-composer");
40
57
  var import_chat_container_messages_list = require("../chat-container-messages-list");
41
- var import_props = require("./props");
58
+ var import_react_desc_prop_types = require("../../react-desc-prop-types");
42
59
  var import_styled = require("./styled");
43
- var import_useValidateProps = require("./config/useValidateProps");
44
60
  const ChatContainer = (props) => {
45
- (0, import_useValidateProps.useValidateProps)(props, import_props.containerProps);
61
+ const propsWithDefault = (0, import_ds_props_helpers.useMemoMergePropsWithDefault)(props, import_react_desc_prop_types.defaultProps);
62
+ (0, import_ds_props_helpers.useValidateTypescriptPropTypes)(propsWithDefault, import_react_desc_prop_types.ChatContainerPropTypes);
63
+ const globalAttributes = (0, import_ds_props_helpers.useGetGlobalAttributes)(propsWithDefault);
46
64
  const {
47
65
  sendingText,
48
66
  sendingMessages,
@@ -55,9 +73,8 @@ const ChatContainer = (props) => {
55
73
  device,
56
74
  isLoading,
57
75
  hasMoreItems,
58
- getMoreMessages,
59
- ariaLabel
60
- } = props;
76
+ getMoreMessages
77
+ } = propsWithDefault;
61
78
  const bannerRef = import_react.default.useRef({ focusOnWrapper: import_lodash.noop, focusOnLink: import_lodash.noop });
62
79
  const containerRef = import_react.default.useRef();
63
80
  const listRef = import_react.default.useRef({ scrollToIndex: import_lodash.noop });
@@ -95,15 +112,13 @@ const ChatContainer = (props) => {
95
112
  actionRef.current.focusOnBannerLink = bannerRef.current.focusOnLink;
96
113
  }
97
114
  }, [actionRef]);
98
- return /* @__PURE__ */ import_react.default.createElement(Container, {
115
+ return /* @__PURE__ */ import_react.default.createElement(Container, __spreadProps(__spreadValues({}, globalAttributes), {
99
116
  rows: ["minmax(0, 1fr)", "auto"],
100
117
  ref: containerRef,
101
- role: "region",
102
- "aria-label": ariaLabel
103
- }, /* @__PURE__ */ import_react.default.createElement("div", {
118
+ role: "region"
119
+ }), /* @__PURE__ */ import_react.default.createElement("div", {
104
120
  style: { position: "relative", overflow: "hidden" }
105
- }, /* @__PURE__ */ import_react.default.createElement(import_chat_container_messages_list.ChatContainerMessagesList, {
106
- ...messagesListProps,
121
+ }, /* @__PURE__ */ import_react.default.createElement(import_chat_container_messages_list.ChatContainerMessagesList, __spreadProps(__spreadValues({}, messagesListProps), {
107
122
  actionRef: actionRef || listRef,
108
123
  isLoading,
109
124
  hasMoreItems,
@@ -112,7 +127,7 @@ const ChatContainer = (props) => {
112
127
  sendingText,
113
128
  bannerPosition,
114
129
  bannerRef
115
- }), ["top", "bottom"].includes(isLoading) ? /* @__PURE__ */ import_react.default.createElement(import_styled.StyledIndicatorContainer, {
130
+ })), isLoading && ["top", "bottom"].includes(isLoading) ? /* @__PURE__ */ import_react.default.createElement(import_styled.StyledIndicatorContainer, {
116
131
  isLoading,
117
132
  "data-testid": "ds-chat-loading-indicator"
118
133
  }, /* @__PURE__ */ import_react.default.createElement(import_ds_indeterminate_progress_indicator.default, {
@@ -123,15 +138,15 @@ const ChatContainer = (props) => {
123
138
  isLoading: bannerPosition
124
139
  }, /* @__PURE__ */ import_react.default.createElement(import_ds_banner.default, {
125
140
  showCloseButton: true,
126
- label: bannerProps.label || "Unread messages",
141
+ label: bannerProps?.label || "Unread messages",
127
142
  containerProps: { id: "ds-chat-banner" },
128
143
  actionLink: {
129
- label: bannerProps.viewLabel || "View",
130
- onClick: bannerProps.onView
144
+ label: bannerProps?.viewLabel || "View",
145
+ onClick: bannerProps?.onView
131
146
  },
132
- onClose: bannerProps.onClose,
147
+ onClose: bannerProps?.onClose,
133
148
  isOpen: true,
134
- type: bannerProps.type || import_ds_banner.BANNER_TYPES.INFO,
149
+ type: bannerProps?.type || import_ds_banner.BANNER_TYPES.INFO,
135
150
  actionRef: bannerRef
136
151
  })), sendingMessages && sendingMessages.length > 0 ? /* @__PURE__ */ import_react.default.createElement(import_styled.StyledIndicatorContainer, {
137
152
  isLoading: "bottom",
@@ -141,17 +156,15 @@ const ChatContainer = (props) => {
141
156
  processing: true,
142
157
  title: sendingText,
143
158
  lineOnly: true
144
- })) : null), /* @__PURE__ */ import_react.default.createElement(import_chat_composer.ChatComposer, {
145
- ...composerProps,
159
+ })) : null), /* @__PURE__ */ import_react.default.createElement(import_chat_composer.ChatComposer, __spreadProps(__spreadValues({}, composerProps), {
146
160
  onKeyDown: handleTabs,
147
161
  onResize,
148
162
  maxHeight: (containerRef.current?.clientHeight || 0) / 2,
149
163
  actionRef: actionRef || listRef
150
- }));
164
+ })));
151
165
  };
152
- ChatContainer.propTypes = import_props.containerProps;
153
- ChatContainer.defaultProps = import_props.defaultProps;
154
- const ChatContainerWithSchema = (0, import_react_desc.describe)(ChatContainer);
155
- ChatContainerWithSchema.propTypes = import_props.containerProps;
166
+ ChatContainer.propTypes = import_react_desc_prop_types.ChatContainerPropTypes;
167
+ const ChatContainerWithSchema = (0, import_ds_props_helpers.describe)(ChatContainer);
168
+ ChatContainerWithSchema.propTypes = import_react_desc_prop_types.ChatContainerPropTypes;
156
169
  module.exports = __toCommonJS(ChatContainer_exports);
157
170
  //# sourceMappingURL=ChatContainer.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/parts/chat-container/ChatContainer.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["/* eslint-disable max-lines */\n/* eslint-disable complexity */\nimport React from 'react';\nimport { noop } from 'lodash';\nimport { describe } from 'react-desc';\nimport DSIndeterminateProgressIndicator from '@elliemae/ds-indeterminate-progress-indicator';\nimport DSBanner, { BANNER_TYPES } from '@elliemae/ds-banner';\nimport { ChatComposer } from '../chat-composer';\nimport { ChatContainerMessagesList } from '../chat-container-messages-list';\nimport { ChatContainerProps, defaultProps, containerProps } from './props';\nimport { StyledChatContainerContent, StyledIndicatorContainer, MobileStyledChatContainerContent } from './styled';\nimport { useValidateProps } from './config/useValidateProps';\n\nconst ChatContainer = (props: ChatContainerProps): JSX.Element => {\n useValidateProps(props, containerProps);\n\n const {\n sendingText,\n sendingMessages,\n bannerPosition,\n bannerProps,\n messagesListProps,\n composerProps,\n composerProps: { onResize: onComposerResize, onKeyDown: onComposerKeyDown },\n actionRef,\n device,\n isLoading,\n hasMoreItems,\n getMoreMessages,\n ariaLabel,\n } = props;\n const bannerRef = React.useRef({ focusOnWrapper: noop, focusOnLink: noop });\n const containerRef = React.useRef<HTMLElement>();\n const listRef = React.useRef({ scrollToIndex: noop });\n\n const onResize = React.useCallback(\n (height: number) => {\n if (onComposerResize) onComposerResize(height);\n /*\n setTimeout is used to equal the animation duration from the \n composer text area when increase its size\n */\n setTimeout(() => {\n actionRef.current.scrollToIndex(messagesListProps.messages.length - 1, {\n align: 'start',\n });\n }, 50);\n },\n [onComposerResize, messagesListProps.messages, actionRef],\n );\n const Container = device === 'desktop' ? StyledChatContainerContent : MobileStyledChatContainerContent;\n const handleTabs = React.useCallback(\n (e: React.KeyboardEvent) => {\n if (onComposerKeyDown) onComposerKeyDown(e);\n else {\n const ref = actionRef || listRef;\n if (e.shiftKey && e.key === 'Tab') {\n if (messagesListProps.messages?.length > 0) {\n e.preventDefault();\n if (['top', 'bottom'].includes(bannerPosition)) {\n bannerRef.current.focusOnWrapper();\n } else {\n const last = ref.current.getMessagesInView().pop();\n ref.current?.focusToIndexWithoutScroll(last);\n }\n }\n }\n }\n },\n [actionRef, onComposerKeyDown, bannerPosition, messagesListProps.messages?.length],\n );\n\n // Map actions\n React.useEffect(() => {\n if (actionRef && actionRef.current) {\n actionRef.current.focusOnBanner = bannerRef.current.focusOnWrapper;\n actionRef.current.focusOnBannerLink = bannerRef.current.focusOnLink;\n }\n }, [actionRef]);\n\n return (\n <Container rows={['minmax(0, 1fr)', 'auto']} ref={containerRef} role=\"region\" aria-label={ariaLabel}>\n <div style={{ position: 'relative', overflow: 'hidden' }}>\n <ChatContainerMessagesList\n {...messagesListProps}\n actionRef={actionRef || listRef}\n isLoading={isLoading}\n hasMoreItems={hasMoreItems}\n getMoreMessages={getMoreMessages}\n sendingMessages={sendingMessages}\n sendingText={sendingText}\n bannerPosition={bannerPosition}\n bannerRef={bannerRef}\n />\n {['top', 'bottom'].includes(isLoading) ? (\n <StyledIndicatorContainer isLoading={isLoading} data-testid=\"ds-chat-loading-indicator\">\n <DSIndeterminateProgressIndicator processing title=\"Loading\" />\n </StyledIndicatorContainer>\n ) : null}\n <StyledIndicatorContainer linear isLoading={bannerPosition}>\n <DSBanner\n showCloseButton\n label={bannerProps.label || 'Unread messages'}\n containerProps={{ id: 'ds-chat-banner' }}\n actionLink={{\n label: bannerProps.viewLabel || 'View',\n onClick: bannerProps.onView,\n }}\n onClose={bannerProps.onClose}\n isOpen\n type={bannerProps.type || BANNER_TYPES.INFO}\n actionRef={bannerRef}\n />\n </StyledIndicatorContainer>\n {sendingMessages && sendingMessages.length > 0 ? (\n <StyledIndicatorContainer isLoading=\"bottom\" linear data-testid=\"ds-chat-loading-indicator\">\n <DSIndeterminateProgressIndicator processing title={sendingText} lineOnly />\n </StyledIndicatorContainer>\n ) : null}\n </div>\n <ChatComposer\n {...composerProps}\n onKeyDown={handleTabs}\n onResize={onResize}\n maxHeight={(containerRef.current?.clientHeight || 0) / 2}\n actionRef={actionRef || listRef}\n />\n </Container>\n );\n};\n\nChatContainer.propTypes = containerProps;\nChatContainer.defaultProps = defaultProps;\nconst ChatContainerWithSchema = describe(ChatContainer);\nChatContainerWithSchema.propTypes = containerProps;\n\nexport { ChatContainer, ChatContainerWithSchema };\n", "import * as React from 'react';\nexport { React };\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* eslint-disable max-lines */\n/* eslint-disable complexity */\nimport React, { WeakValidationMap } from 'react';\nimport { noop } from 'lodash';\nimport {\n useMemoMergePropsWithDefault,\n useGetGlobalAttributes,\n useValidateTypescriptPropTypes,\n describe,\n} from '@elliemae/ds-props-helpers';\n\nimport DSIndeterminateProgressIndicator from '@elliemae/ds-indeterminate-progress-indicator';\nimport DSBanner, { BANNER_TYPES } from '@elliemae/ds-banner';\nimport { ChatComposer } from '../chat-composer';\nimport { ChatContainerMessagesList } from '../chat-container-messages-list';\nimport { DSChatT, defaultProps, ChatContainerPropTypes } from '../../react-desc-prop-types';\n\nimport { StyledChatContainerContent, StyledIndicatorContainer, MobileStyledChatContainerContent } from './styled';\n\nconst ChatContainer: React.ComponentType<DSChatT.ContainerProps> = (props) => {\n const propsWithDefault = useMemoMergePropsWithDefault<DSChatT.ContainerProps>(props, defaultProps);\n useValidateTypescriptPropTypes<DSChatT.ContainerProps>(propsWithDefault, ChatContainerPropTypes);\n const globalAttributes = useGetGlobalAttributes(propsWithDefault);\n\n const {\n sendingText,\n sendingMessages,\n bannerPosition,\n bannerProps,\n messagesListProps,\n composerProps,\n composerProps: { onResize: onComposerResize, onKeyDown: onComposerKeyDown },\n actionRef,\n device,\n isLoading,\n hasMoreItems,\n getMoreMessages,\n } = propsWithDefault;\n const bannerRef = React.useRef({ focusOnWrapper: noop, focusOnLink: noop });\n const containerRef = React.useRef<HTMLElement>();\n const listRef = React.useRef({ scrollToIndex: noop });\n\n const onResize = React.useCallback(\n (height: number) => {\n if (onComposerResize) onComposerResize(height);\n /*\n setTimeout is used to equal the animation duration from the \n composer text area when increase its size\n */\n setTimeout(() => {\n actionRef.current.scrollToIndex(messagesListProps.messages.length - 1, {\n align: 'start',\n });\n }, 50);\n },\n [onComposerResize, messagesListProps.messages, actionRef],\n );\n const Container = device === 'desktop' ? StyledChatContainerContent : MobileStyledChatContainerContent;\n const handleTabs = React.useCallback(\n (e: React.KeyboardEvent) => {\n if (onComposerKeyDown) onComposerKeyDown(e);\n else {\n const ref = actionRef || listRef;\n if (e.shiftKey && e.key === 'Tab') {\n if (messagesListProps.messages?.length > 0) {\n e.preventDefault();\n if (['top', 'bottom'].includes(bannerPosition)) {\n bannerRef.current.focusOnWrapper();\n } else {\n const last = ref.current.getMessagesInView().pop();\n ref.current?.focusToIndexWithoutScroll(last);\n }\n }\n }\n }\n },\n [actionRef, onComposerKeyDown, bannerPosition, messagesListProps.messages?.length],\n );\n\n // Map actions\n React.useEffect(() => {\n if (actionRef && actionRef.current) {\n actionRef.current.focusOnBanner = bannerRef.current.focusOnWrapper;\n actionRef.current.focusOnBannerLink = bannerRef.current.focusOnLink;\n }\n }, [actionRef]);\n\n return (\n <Container {...globalAttributes} rows={['minmax(0, 1fr)', 'auto']} ref={containerRef} role=\"region\">\n <div style={{ position: 'relative', overflow: 'hidden' }}>\n <ChatContainerMessagesList\n {...messagesListProps}\n actionRef={actionRef || listRef}\n isLoading={isLoading}\n hasMoreItems={hasMoreItems}\n getMoreMessages={getMoreMessages}\n sendingMessages={sendingMessages}\n sendingText={sendingText}\n bannerPosition={bannerPosition}\n bannerRef={bannerRef}\n />\n {isLoading && ['top', 'bottom'].includes(isLoading) ? (\n <StyledIndicatorContainer isLoading={isLoading} data-testid=\"ds-chat-loading-indicator\">\n <DSIndeterminateProgressIndicator processing title=\"Loading\" />\n </StyledIndicatorContainer>\n ) : null}\n <StyledIndicatorContainer linear isLoading={bannerPosition}>\n <DSBanner\n showCloseButton\n label={bannerProps?.label || 'Unread messages'}\n containerProps={{ id: 'ds-chat-banner' }}\n actionLink={{\n label: bannerProps?.viewLabel || 'View',\n onClick: bannerProps?.onView,\n }}\n onClose={bannerProps?.onClose}\n isOpen\n type={bannerProps?.type || BANNER_TYPES.INFO}\n actionRef={bannerRef}\n />\n </StyledIndicatorContainer>\n {sendingMessages && sendingMessages.length > 0 ? (\n <StyledIndicatorContainer isLoading=\"bottom\" linear data-testid=\"ds-chat-loading-indicator\">\n <DSIndeterminateProgressIndicator processing title={sendingText} lineOnly />\n </StyledIndicatorContainer>\n ) : null}\n </div>\n <ChatComposer\n {...composerProps}\n onKeyDown={handleTabs}\n onResize={onResize}\n maxHeight={(containerRef.current?.clientHeight || 0) / 2}\n actionRef={actionRef || listRef}\n />\n </Container>\n );\n};\n\nChatContainer.propTypes = ChatContainerPropTypes as WeakValidationMap<unknown>;\nconst ChatContainerWithSchema = describe(ChatContainer);\nChatContainerWithSchema.propTypes = ChatContainerPropTypes as WeakValidationMap<unknown>;\n\nexport { ChatContainer, ChatContainerWithSchema };\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -35,9 +35,9 @@ __export(styled_exports, {
35
35
  var React = __toESM(require("react"));
36
36
  var import_styled_components = __toESM(require("styled-components"));
37
37
  var import_ds_grid = require("@elliemae/ds-grid");
38
- var import_styled = require("../bubble/styled");
38
+ var import_styled = require("../../exported-related/bubble/styled");
39
39
  var import_styled2 = require("../chat-composer/styled");
40
- var import_style = require("../system-message/style");
40
+ var import_style = require("../../exported-related/system-message/style");
41
41
  const CONTAINER_WIDTH = 300;
42
42
  const StyledChatContainerContent = (0, import_styled_components.default)(import_ds_grid.Grid)`
43
43
  height: 100%;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/parts/chat-container/styled.ts", "../../../../../../scripts/build/transpile/react-shim.js"],
4
- "sourcesContent": ["import styled from 'styled-components';\nimport { Grid } from '@elliemae/ds-grid';\nimport { StyledTitleRightBubble, StyledTitleLeftBubble, StyleBodyWrapper } from '../bubble/styled';\nimport { StyledComposerInput } from '../chat-composer/styled';\nimport { Wrapper, Title, Time, Message } from '../system-message/style';\nexport const CONTAINER_WIDTH = 300;\n\nexport const StyledChatContainerContent = styled(Grid)`\n height: 100%;\n min-width: ${CONTAINER_WIDTH}px;\n overflow: hidden;\n background: ${(props) => props.theme.colors.neutral['050']};\n position: relative;\n`;\nexport const StyledIndicatorContainer = styled.div<{\n isLoading?: 'top' | 'bottom';\n linear?: boolean;\n}>`\n transition: 0.4s ease-in-out;\n position: absolute;\n visibility: hidden;\n pointer-events: none;\n width: 100%;\n padding: 0 ${(props) => (!props.linear ? props.theme.space.xxs : 0)};\n left: 0;\n right: 0;\n background: ${(props) => props.theme.colors.neutral['000']};\n ${(props) =>\n props.isLoading === 'top'\n ? `\n top: -41px;\n transform: translate(0, 41px);\n visibility: visible;\n pointer-events: auto;\n `\n : ''}\n ${(props) =>\n props.isLoading === 'bottom'\n ? `\n bottom: -41px;\n transform: translate(0, -41px);\n visibility: visible;\n pointer-events: auto;\n `\n : ''}\n\n & div,a {\n font-size: 13px;\n }\n`;\n\nexport const MobileStyledChatContainerContent = styled(StyledChatContainerContent)`\n ${StyledTitleLeftBubble},\n ${StyleBodyWrapper} {\n font-size: 16px;\n }\n\n ${StyledTitleRightBubble} {\n font-size: 13px;\n }\n\n ${Wrapper} {\n background-color: #fff;\n box-shadow: -0 1px 3px rgba(53, 60, 70, 0.8);\n }\n\n ${Title},\n ${Message} {\n font-size: 16px;\n text-align: left;\n }\n\n ${Time} {\n font-size: 13px;\n }\n\n ${StyledComposerInput} {\n font-size: 16px;\n }\n\n ${StyledIndicatorContainer} {\n font-size: 16px;\n }\n`;\n", "import * as React from 'react';\nexport { React };\n"],
4
+ "sourcesContent": ["import styled from 'styled-components';\nimport { Grid } from '@elliemae/ds-grid';\nimport { StyledTitleRightBubble, StyledTitleLeftBubble, StyleBodyWrapper } from '../../exported-related/bubble/styled';\nimport { StyledComposerInput } from '../chat-composer/styled';\nimport { Wrapper, Title, Time, Message } from '../../exported-related/system-message/style';\nexport const CONTAINER_WIDTH = 300;\n\nexport const StyledChatContainerContent = styled(Grid)`\n height: 100%;\n min-width: ${CONTAINER_WIDTH}px;\n overflow: hidden;\n background: ${(props) => props.theme.colors.neutral['050']};\n position: relative;\n`;\nexport const StyledIndicatorContainer = styled.div<{\n isLoading?: 'top' | 'bottom';\n linear?: boolean;\n}>`\n transition: 0.4s ease-in-out;\n position: absolute;\n visibility: hidden;\n pointer-events: none;\n width: 100%;\n padding: 0 ${(props) => (!props.linear ? props.theme.space.xxs : 0)};\n left: 0;\n right: 0;\n background: ${(props) => props.theme.colors.neutral['000']};\n ${(props) =>\n props.isLoading === 'top'\n ? `\n top: -41px;\n transform: translate(0, 41px);\n visibility: visible;\n pointer-events: auto;\n `\n : ''}\n ${(props) =>\n props.isLoading === 'bottom'\n ? `\n bottom: -41px;\n transform: translate(0, -41px);\n visibility: visible;\n pointer-events: auto;\n `\n : ''}\n\n & div,a {\n font-size: 13px;\n }\n`;\n\nexport const MobileStyledChatContainerContent = styled(StyledChatContainerContent)`\n ${StyledTitleLeftBubble},\n ${StyleBodyWrapper} {\n font-size: 16px;\n }\n\n ${StyledTitleRightBubble} {\n font-size: 13px;\n }\n\n ${Wrapper} {\n background-color: #fff;\n box-shadow: -0 1px 3px rgba(53, 60, 70, 0.8);\n }\n\n ${Title},\n ${Message} {\n font-size: 16px;\n text-align: left;\n }\n\n ${Time} {\n font-size: 13px;\n }\n\n ${StyledComposerInput} {\n font-size: 16px;\n }\n\n ${StyledIndicatorContainer} {\n font-size: 16px;\n }\n`;\n", "import * as React from 'react';\nexport { React };\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,+BAAmB;AACnB,qBAAqB;AACrB,oBAAgF;AAChF,qBAAoC;AACpC,mBAA8C;AACvC,MAAM,kBAAkB;AAExB,MAAM,6BAA6B,sCAAO;AAAA;AAAA,eAElC;AAAA;AAAA,gBAEC,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA;AAAA;AAG/C,MAAM,2BAA2B,iCAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,eAShC,CAAC,UAAW,CAAC,MAAM,SAAS,MAAM,MAAM,MAAM,MAAM;AAAA;AAAA;AAAA,gBAGnD,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA,IAClD,CAAC,UACD,MAAM,cAAc,QAChB;AAAA;AAAA;AAAA;AAAA;AAAA,MAMA;AAAA,IACJ,CAAC,UACD,MAAM,cAAc,WAChB;AAAA;AAAA;AAAA;AAAA;AAAA,MAMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOD,MAAM,mCAAmC,sCAAO;AAAA,IACnD;AAAA,IACA;AAAA;AAAA;AAAA;AAAA,IAIA;AAAA;AAAA;AAAA;AAAA,IAIA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA;AAAA,IACA;AAAA;AAAA;AAAA;AAAA;AAAA,IAKA;AAAA;AAAA;AAAA;AAAA,IAIA;AAAA;AAAA;AAAA;AAAA,IAIA;AAAA;AAAA;AAAA;",
6
6
  "names": []
7
7
  }
@@ -1,9 +1,26 @@
1
1
  var __create = Object.create;
2
2
  var __defProp = Object.defineProperty;
3
+ var __defProps = Object.defineProperties;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
6
  var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
8
  var __getProtoOf = Object.getPrototypeOf;
6
9
  var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
+ var __spreadValues = (a, b) => {
13
+ for (var prop in b || (b = {}))
14
+ if (__hasOwnProp.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ if (__getOwnPropSymbols)
17
+ for (var prop of __getOwnPropSymbols(b)) {
18
+ if (__propIsEnum.call(b, prop))
19
+ __defNormalProp(a, prop, b[prop]);
20
+ }
21
+ return a;
22
+ };
23
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
7
24
  var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
8
25
  var __export = (target, all) => {
9
26
  for (var name in all)
@@ -32,15 +49,16 @@ __export(ChatContainerMessagesList_exports, {
32
49
  });
33
50
  var React = __toESM(require("react"));
34
51
  var import_react = __toESM(require("react"));
35
- var import_react_desc = require("react-desc");
52
+ var import_ds_props_helpers = require("@elliemae/ds-props-helpers");
36
53
  var import_react_virtual = require("react-virtual");
37
54
  var import_ds_button = __toESM(require("@elliemae/ds-button"));
38
55
  var import_lodash = require("lodash");
39
- var import_bubble = require("../bubble");
40
- var import_message_delimiter = require("../message-delimiter");
41
- var import_system_message = require("../system-message");
56
+ var import_bubble = require("../../exported-related/bubble");
57
+ var import_message_delimiter = require("../../exported-related/message-delimiter");
58
+ var import_system_message = require("../../exported-related/system-message");
42
59
  var import_styled = require("./styled");
43
- var import_props = require("./props");
60
+ var import_react_desc_prop_types = require("../../react-desc-prop-types");
61
+ var import_useGetNewMessages = require("./useGetNewMessages");
44
62
  const getPadding = ({ hasMoreItems, bannerPosition, isLoading }) => {
45
63
  const padding = {
46
64
  paddingStart: 0,
@@ -53,6 +71,9 @@ const getPadding = ({ hasMoreItems, bannerPosition, isLoading }) => {
53
71
  return padding;
54
72
  };
55
73
  const ChatContainerMessagesList = (props) => {
74
+ const propsWithDefault = (0, import_ds_props_helpers.useMemoMergePropsWithDefault)(props, import_react_desc_prop_types.defaultPropsMessagesList);
75
+ (0, import_ds_props_helpers.useValidateTypescriptPropTypes)(propsWithDefault, import_react_desc_prop_types.ChatContainerMessagesListPropTypes);
76
+ const globalAttributes = (0, import_ds_props_helpers.useGetGlobalAttributes)(propsWithDefault);
56
77
  const {
57
78
  sendingText,
58
79
  bannerPosition,
@@ -64,7 +85,7 @@ const ChatContainerMessagesList = (props) => {
64
85
  hasMoreItems,
65
86
  isLoading,
66
87
  bannerRef
67
- } = props;
88
+ } = propsWithDefault;
68
89
  const pendingOnScroll = import_react.default.useRef(false);
69
90
  const loadMoreRef = import_react.default.useRef(null);
70
91
  const virtualListRef = import_react.default.useRef();
@@ -72,15 +93,15 @@ const ChatContainerMessagesList = (props) => {
72
93
  scrollToIndex: vScroll,
73
94
  totalSize,
74
95
  virtualItems
75
- } = (0, import_react_virtual.useVirtual)({
76
- size: messages.length,
96
+ } = (0, import_react_virtual.useVirtual)(__spreadProps(__spreadValues({
97
+ size: messages?.length,
77
98
  parentRef: virtualListRef,
78
- overscan: 15,
79
- ...getPadding({ hasMoreItems, bannerPosition, isLoading }),
99
+ overscan: 15
100
+ }, getPadding({ hasMoreItems, bannerPosition, isLoading })), {
80
101
  estimateSize: import_react.default.useCallback(() => 80, [])
81
- });
102
+ }));
103
+ const newMessages = (0, import_useGetNewMessages.useGetNewMessages)(messages);
82
104
  const debouncedScroll = import_react.default.useMemo(() => (0, import_lodash.debounce)(() => {
83
- console.log("debound");
84
105
  if (document.visibilityState === "hidden") {
85
106
  pendingOnScroll.current = true;
86
107
  return [];
@@ -112,6 +133,10 @@ const ChatContainerMessagesList = (props) => {
112
133
  onlyFocus(index);
113
134
  onScrollStop();
114
135
  }, [onScrollStop, onlyFocus, vScroll]);
136
+ const checkPendingOnScroll = import_react.default.useCallback(() => {
137
+ if (pendingOnScroll.current === true)
138
+ onScrollStop();
139
+ }, [onScrollStop]);
115
140
  import_react.default.useEffect(() => {
116
141
  if (actionRef && actionRef.current) {
117
142
  actionRef.current.scrollToIndex = (a, b = { align: "center" }) => {
@@ -129,6 +154,26 @@ const ChatContainerMessagesList = (props) => {
129
154
  };
130
155
  }
131
156
  }, [actionRef, onScrollStop, onlyFocus, scrollAndFocus, vScroll]);
157
+ import_react.default.useEffect(() => {
158
+ let handlerCallback = null;
159
+ const localVirtualRef = virtualListRef.current;
160
+ const onScroll = () => {
161
+ if (handlerCallback)
162
+ clearTimeout(handlerCallback);
163
+ handlerCallback = setTimeout(onScrollStop, 300);
164
+ };
165
+ if (onScrollEnds) {
166
+ virtualListRef.current.addEventListener("scroll", onScroll);
167
+ }
168
+ document.addEventListener("visibilitychange", checkPendingOnScroll);
169
+ return () => {
170
+ if (handlerCallback)
171
+ clearTimeout(handlerCallback);
172
+ if (onScrollEnds)
173
+ localVirtualRef.removeEventListener("scroll", onScroll);
174
+ document.removeEventListener("visibilitychange", checkPendingOnScroll);
175
+ };
176
+ }, [onScrollStop, onScrollEnds, checkPendingOnScroll]);
132
177
  const handleKey = import_react.default.useCallback((e) => {
133
178
  const { key } = e;
134
179
  const index = Number(e.currentTarget.dataset.index);
@@ -144,7 +189,7 @@ const ChatContainerMessagesList = (props) => {
144
189
  break;
145
190
  case "ArrowDown":
146
191
  e.preventDefault();
147
- if (index < messages.length - 1) {
192
+ if (index < messages?.length - 1) {
148
193
  virtualListRef.current.querySelector(`[data-index="${index + 1}"]`).focus();
149
194
  }
150
195
  break;
@@ -154,17 +199,19 @@ const ChatContainerMessagesList = (props) => {
154
199
  break;
155
200
  case "End":
156
201
  e.preventDefault();
157
- scrollAndFocus(messages.length - 1);
202
+ scrollAndFocus(messages?.length - 1);
158
203
  break;
159
204
  case "Tab":
160
205
  if (hasMoreItems === "bottom" && !e.shiftKey) {
161
206
  e.preventDefault();
162
207
  loadMoreRef.current?.focus();
163
208
  } else if (hasMoreItems === "top" && e.shiftKey) {
209
+ e.preventDefault();
210
+ loadMoreRef.current?.focus();
164
211
  } else if (!e.shiftKey) {
165
212
  if (bannerPosition) {
166
213
  e.preventDefault();
167
- bannerRef.current.focusOnWrapper();
214
+ bannerRef?.current?.focusOnWrapper();
168
215
  }
169
216
  } else {
170
217
  e.preventDefault();
@@ -174,14 +221,14 @@ const ChatContainerMessagesList = (props) => {
174
221
  default:
175
222
  break;
176
223
  }
177
- }, [bannerRef, hasMoreItems, messages.length, bannerPosition, scrollAndFocus]);
224
+ }, [bannerRef, hasMoreItems, messages?.length, bannerPosition, scrollAndFocus]);
178
225
  const handleListKey = import_react.default.useCallback((e) => {
179
226
  const { key } = e;
180
227
  switch (key) {
181
228
  case "ArrowUp":
182
229
  e.preventDefault();
183
230
  if (document.activeElement !== loadMoreRef.current) {
184
- onlyFocus(onScrollStop().shift());
231
+ onlyFocus(onScrollStop()?.shift());
185
232
  }
186
233
  break;
187
234
  case "ArrowDown":
@@ -189,7 +236,7 @@ const ChatContainerMessagesList = (props) => {
189
236
  if (document.activeElement === loadMoreRef.current) {
190
237
  virtualListRef.current.querySelector(`[data-index="0"]`).focus();
191
238
  } else {
192
- onlyFocus(onScrollStop().pop());
239
+ onlyFocus(onScrollStop()?.pop());
193
240
  }
194
241
  break;
195
242
  case "Home":
@@ -198,16 +245,13 @@ const ChatContainerMessagesList = (props) => {
198
245
  break;
199
246
  case "End":
200
247
  e.preventDefault();
201
- scrollAndFocus(messages.length - 1);
248
+ scrollAndFocus(messages?.length - 1);
202
249
  break;
203
250
  case "Tab":
204
251
  if (document.activeElement !== loadMoreRef.current) {
205
252
  if (hasMoreItems === "bottom" && !e.shiftKey) {
206
253
  e.preventDefault();
207
254
  loadMoreRef.current?.focus();
208
- } else if (hasMoreItems === "top" && e.shiftKey) {
209
- e.preventDefault();
210
- loadMoreRef.current?.focus();
211
255
  } else if (!e.shiftKey) {
212
256
  e.preventDefault();
213
257
  actionRef.current.focusToComposer();
@@ -223,31 +267,7 @@ const ChatContainerMessagesList = (props) => {
223
267
  default:
224
268
  break;
225
269
  }
226
- }, [actionRef, hasMoreItems, messages.length, onScrollStop, onlyFocus, scrollAndFocus]);
227
- const checkPendingOnScroll = import_react.default.useCallback(() => {
228
- if (pendingOnScroll.current === true)
229
- onScrollStop();
230
- }, [onScrollStop]);
231
- import_react.default.useEffect(() => {
232
- let handlerCallback = null;
233
- const localVirtualRef = virtualListRef.current;
234
- const onScroll = () => {
235
- if (handlerCallback)
236
- clearTimeout(handlerCallback);
237
- handlerCallback = setTimeout(onScrollStop, 300);
238
- };
239
- if (onScrollEnds) {
240
- virtualListRef.current.addEventListener("scroll", onScroll);
241
- }
242
- document.addEventListener("visibilitychange", checkPendingOnScroll);
243
- return () => {
244
- if (handlerCallback)
245
- clearTimeout(handlerCallback);
246
- if (onScrollEnds)
247
- localVirtualRef.removeEventListener("scroll", onScroll);
248
- document.removeEventListener("visibilitychange", checkPendingOnScroll);
249
- };
250
- }, [onScrollStop, onScrollEnds, checkPendingOnScroll]);
270
+ }, [actionRef, hasMoreItems, messages?.length, onScrollStop, onlyFocus, scrollAndFocus]);
251
271
  const render = import_react.default.useMemo(() => virtualItems.map((virtualItem) => {
252
272
  const { index, measureRef, start } = virtualItem;
253
273
  const row = messages[index];
@@ -270,20 +290,13 @@ const ChatContainerMessagesList = (props) => {
270
290
  role: "listitem"
271
291
  }, /* @__PURE__ */ import_react.default.createElement(import_styled.StyledWrapperListItem, {
272
292
  type: row.type
273
- }, row.type === import_bubble.BUBBLE_TYPES.SENDER || row.type === import_bubble.BUBBLE_TYPES.RECIPIENT ? /* @__PURE__ */ import_react.default.createElement(import_bubble.ChatBubble, {
274
- ...row,
293
+ }, row.type === import_bubble.BUBBLE_TYPES.SENDER || row.type === import_bubble.BUBBLE_TYPES.RECIPIENT ? /* @__PURE__ */ import_react.default.createElement(import_bubble.ChatBubble, __spreadProps(__spreadValues({}, row), {
275
294
  helpMessage: isSending ? sendingText : row.helpMessage
276
- }) : null, row.type === import_bubble.BUBBLE_TYPES.DELIMITER ? /* @__PURE__ */ import_react.default.createElement(import_message_delimiter.MessageDelimiter, {
277
- ...row
278
- }) : null, row.type === import_bubble.BUBBLE_TYPES.SYSTEM ? /* @__PURE__ */ import_react.default.createElement(import_system_message.SystemMessage, {
279
- ...row
280
- }) : null));
295
+ })) : null, row.type === import_bubble.BUBBLE_TYPES.DELIMITER ? /* @__PURE__ */ import_react.default.createElement(import_message_delimiter.MessageDelimiter, __spreadValues({}, row)) : null, row.type === import_bubble.BUBBLE_TYPES.SYSTEM ? /* @__PURE__ */ import_react.default.createElement(import_system_message.SystemMessage, __spreadValues({}, row)) : null));
281
296
  }), [virtualItems, messages, sendingMessages, handleKey, sendingText]);
282
- return /* @__PURE__ */ import_react.default.createElement(import_styled.StyledWrapper, null, /* @__PURE__ */ import_react.default.createElement(import_styled.StyledChatContainerContentList, {
297
+ return /* @__PURE__ */ import_react.default.createElement(import_styled.StyledWrapper, __spreadValues({}, globalAttributes), /* @__PURE__ */ import_react.default.createElement(import_styled.StyledChatContainerContentList, {
283
298
  "data-testid": "chat-thread-container",
284
299
  tabIndex: 0,
285
- "aria-live": "polite",
286
- "aria-relevant": "additions",
287
300
  ref: virtualListRef,
288
301
  role: "list",
289
302
  onKeyDown: handleListKey
@@ -297,11 +310,13 @@ const ChatContainerMessagesList = (props) => {
297
310
  onClick: getMoreMessages,
298
311
  "data-testid": "ds-chat-load-more-btn",
299
312
  innerRef: loadMoreRef
300
- })) : null, render)));
313
+ })) : null, render)), /* @__PURE__ */ import_react.default.createElement(import_styled.StyledNewMessagesHiddenContainer, {
314
+ "aria-live": "polite",
315
+ "aria-hidden": "false"
316
+ }, newMessages.map((newMessage) => /* @__PURE__ */ import_react.default.createElement("p", null, newMessage.title, " ", newMessage.time, " ", newMessage.body, " ", newMessage.errorMessage, " ", newMessage.helpMessage))));
301
317
  };
302
- ChatContainerMessagesList.propTypes = import_props.listProps;
303
- ChatContainerMessagesList.defaultProps = import_props.defaultProps;
304
- const ChatContainerMessagesListWithSchema = (0, import_react_desc.describe)(ChatContainerMessagesList);
305
- ChatContainerMessagesListWithSchema.propTypes = import_props.listProps;
318
+ ChatContainerMessagesList.propTypes = import_react_desc_prop_types.ChatContainerMessagesListPropTypes;
319
+ const ChatContainerMessagesListWithSchema = (0, import_ds_props_helpers.describe)(ChatContainerMessagesList);
320
+ ChatContainerMessagesListWithSchema.propTypes = import_react_desc_prop_types.ChatContainerMessagesListPropTypes;
306
321
  module.exports = __toCommonJS(ChatContainerMessagesList_exports);
307
322
  //# sourceMappingURL=ChatContainerMessagesList.js.map