@athoscommerce/snap-preact 1.10.1-beta.150 → 1.11.0

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 (420) hide show
  1. package/dist/cjs/components/src/components/Atoms/Dropdown/Dropdown.js +11 -56
  2. package/dist/cjs/components/src/components/Atoms/Icon/paths.js +0 -13
  3. package/dist/cjs/components/src/components/Atoms/TemplateSelect/TemplateSelect.js +5 -1
  4. package/dist/cjs/components/src/components/Molecules/Grid/Grid.js +9 -13
  5. package/dist/cjs/components/src/components/Molecules/List/List.js +9 -13
  6. package/dist/cjs/components/src/components/Molecules/RadioList/RadioList.js +9 -13
  7. package/dist/cjs/components/src/components/Molecules/Result/Result.js +6 -53
  8. package/dist/cjs/components/src/components/Molecules/SearchInput/SearchInput.js +2 -28
  9. package/dist/cjs/components/src/components/Molecules/Select/Select.js +9 -13
  10. package/dist/cjs/components/src/components/Molecules/Slideout/Slideout.js +28 -24
  11. package/dist/cjs/components/src/components/Molecules/Slideshow/Slideshow.js +1 -5
  12. package/dist/cjs/components/src/components/Molecules/TabSelection/TabSelection.js +108 -0
  13. package/dist/cjs/components/src/components/{Templates/ChatButton → Molecules/TabSelection}/index.js +1 -1
  14. package/dist/cjs/components/src/components/Molecules/TemplatesEditor/TemplatesEditor.js +1 -1
  15. package/dist/cjs/components/src/components/Organisms/AutocompleteLayout/AutocompleteLayout.js +17 -2
  16. package/dist/cjs/components/src/components/Organisms/Facet/Facet.js +5 -1
  17. package/dist/cjs/components/src/components/Organisms/Layout/Layout.js +15 -1
  18. package/dist/cjs/components/src/components/Organisms/Results/Results.js +4 -4
  19. package/dist/cjs/components/src/components/Organisms/Toolbar/Toolbar.js +2 -1
  20. package/dist/cjs/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.js +10 -8
  21. package/dist/cjs/components/src/components/Templates/AutocompleteModal/AutocompleteModal.js +10 -8
  22. package/dist/cjs/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.js +10 -8
  23. package/dist/cjs/components/src/components/Templates/Search/Search.js +10 -3
  24. package/dist/cjs/components/src/hooks/useAcRenderedInput.js +14 -3
  25. package/dist/cjs/components/src/hooks/useCreateController.js +24 -3
  26. package/dist/cjs/components/src/index.js +2 -17
  27. package/dist/cjs/components/src/providers/themeComponents.js +1 -20
  28. package/dist/cjs/components/src/setupTests.js +0 -14
  29. package/dist/cjs/components/src/themes/base/components/templates/index.js +0 -10
  30. package/dist/cjs/components/src/themes/bocachica/components/templates/index.js +0 -10
  31. package/dist/cjs/components/src/themes/pike/components/templates/index.js +0 -10
  32. package/dist/cjs/components/src/themes/snapnco/components/templates/index.js +0 -10
  33. package/dist/cjs/components/src/themes/snappy/components/templates/index.js +0 -10
  34. package/dist/cjs/components/src/utilities/Colour/Colour.js +0 -41
  35. package/dist/cjs/components/src/utilities/index.js +1 -0
  36. package/dist/cjs/components/src/utilities/selectionKey.js +12 -0
  37. package/dist/cjs/components/src/utilities/snapify.js +0 -27
  38. package/dist/cjs/src/Snap.js +0 -70
  39. package/dist/cjs/src/Templates/SnapTemplates.js +147 -86
  40. package/dist/cjs/src/Templates/Stores/LibraryStore.js +3 -51
  41. package/dist/cjs/src/Templates/Stores/TabManagerStore.js +151 -0
  42. package/dist/cjs/src/Templates/Stores/TemplateStore.js +23 -2
  43. package/dist/cjs/src/Templates/Stores/library/languages/es.js +20 -487
  44. package/dist/cjs/src/Templates/Stores/library/languages/fr.js +20 -487
  45. package/dist/cjs/src/create/createAutocompleteController.js +6 -1
  46. package/dist/cjs/src/create/index.js +1 -3
  47. package/dist/cjs/src/setupEvents.js +0 -44
  48. package/dist/cjs/src/utils/index.js +1 -3
  49. package/dist/esm/components/src/components/Atoms/Button/Button.d.ts +1 -3
  50. package/dist/esm/components/src/components/Atoms/Button/Button.d.ts.map +1 -1
  51. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.d.ts +1 -6
  52. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.d.ts.map +1 -1
  53. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.js +12 -57
  54. package/dist/esm/components/src/components/Atoms/Icon/paths.d.ts +0 -13
  55. package/dist/esm/components/src/components/Atoms/Icon/paths.d.ts.map +1 -1
  56. package/dist/esm/components/src/components/Atoms/Icon/paths.js +0 -13
  57. package/dist/esm/components/src/components/Atoms/TemplateSelect/TemplateSelect.d.ts.map +1 -1
  58. package/dist/esm/components/src/components/Atoms/TemplateSelect/TemplateSelect.js +5 -1
  59. package/dist/esm/components/src/components/Molecules/Grid/Grid.d.ts.map +1 -1
  60. package/dist/esm/components/src/components/Molecules/Grid/Grid.js +10 -14
  61. package/dist/esm/components/src/components/Molecules/List/List.d.ts.map +1 -1
  62. package/dist/esm/components/src/components/Molecules/List/List.js +10 -14
  63. package/dist/esm/components/src/components/Molecules/OverlayBadge/OverlayBadge.d.ts +2 -2
  64. package/dist/esm/components/src/components/Molecules/OverlayBadge/OverlayBadge.d.ts.map +1 -1
  65. package/dist/esm/components/src/components/Molecules/RadioList/RadioList.d.ts.map +1 -1
  66. package/dist/esm/components/src/components/Molecules/RadioList/RadioList.js +10 -14
  67. package/dist/esm/components/src/components/Molecules/Result/Result.d.ts +3 -7
  68. package/dist/esm/components/src/components/Molecules/Result/Result.d.ts.map +1 -1
  69. package/dist/esm/components/src/components/Molecules/Result/Result.js +6 -53
  70. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.d.ts +0 -3
  71. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.d.ts.map +1 -1
  72. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.js +2 -28
  73. package/dist/esm/components/src/components/Molecules/Select/Select.d.ts.map +1 -1
  74. package/dist/esm/components/src/components/Molecules/Select/Select.js +10 -14
  75. package/dist/esm/components/src/components/Molecules/Slideout/Slideout.d.ts.map +1 -1
  76. package/dist/esm/components/src/components/Molecules/Slideout/Slideout.js +29 -25
  77. package/dist/esm/components/src/components/Molecules/Slideshow/Slideshow.d.ts.map +1 -1
  78. package/dist/esm/components/src/components/Molecules/Slideshow/Slideshow.js +1 -5
  79. package/dist/esm/components/src/components/Molecules/TabSelection/TabSelection.d.ts +32 -0
  80. package/dist/esm/components/src/components/Molecules/TabSelection/TabSelection.d.ts.map +1 -0
  81. package/dist/esm/components/src/components/Molecules/TabSelection/TabSelection.js +102 -0
  82. package/dist/esm/components/src/components/Molecules/TabSelection/index.d.ts +2 -0
  83. package/dist/esm/components/src/components/Molecules/TabSelection/index.d.ts.map +1 -0
  84. package/dist/esm/components/src/components/Molecules/TabSelection/index.js +1 -0
  85. package/dist/esm/components/src/components/Molecules/TemplatesEditor/TemplatesEditor.d.ts.map +1 -1
  86. package/dist/esm/components/src/components/Molecules/TemplatesEditor/TemplatesEditor.js +1 -1
  87. package/dist/esm/components/src/components/Organisms/AutocompleteLayout/AutocompleteLayout.d.ts +3 -1
  88. package/dist/esm/components/src/components/Organisms/AutocompleteLayout/AutocompleteLayout.d.ts.map +1 -1
  89. package/dist/esm/components/src/components/Organisms/AutocompleteLayout/AutocompleteLayout.js +17 -2
  90. package/dist/esm/components/src/components/Organisms/Facet/Facet.d.ts.map +1 -1
  91. package/dist/esm/components/src/components/Organisms/Facet/Facet.js +5 -1
  92. package/dist/esm/components/src/components/Organisms/Layout/Layout.d.ts +3 -1
  93. package/dist/esm/components/src/components/Organisms/Layout/Layout.d.ts.map +1 -1
  94. package/dist/esm/components/src/components/Organisms/Layout/Layout.js +15 -1
  95. package/dist/esm/components/src/components/Organisms/Results/Results.d.ts.map +1 -1
  96. package/dist/esm/components/src/components/Organisms/Results/Results.js +4 -4
  97. package/dist/esm/components/src/components/Organisms/Toolbar/Toolbar.d.ts +3 -1
  98. package/dist/esm/components/src/components/Organisms/Toolbar/Toolbar.d.ts.map +1 -1
  99. package/dist/esm/components/src/components/Organisms/Toolbar/Toolbar.js +2 -1
  100. package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.d.ts +2 -0
  101. package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.d.ts.map +1 -1
  102. package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.js +10 -8
  103. package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts +2 -0
  104. package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts.map +1 -1
  105. package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.js +10 -8
  106. package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.d.ts +2 -0
  107. package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.d.ts.map +1 -1
  108. package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.js +10 -8
  109. package/dist/esm/components/src/components/Templates/Search/Search.d.ts +2 -0
  110. package/dist/esm/components/src/components/Templates/Search/Search.d.ts.map +1 -1
  111. package/dist/esm/components/src/components/Templates/Search/Search.js +10 -3
  112. package/dist/esm/components/src/hooks/useAcRenderedInput.d.ts +2 -2
  113. package/dist/esm/components/src/hooks/useAcRenderedInput.d.ts.map +1 -1
  114. package/dist/esm/components/src/hooks/useAcRenderedInput.js +15 -4
  115. package/dist/esm/components/src/hooks/useCreateController.d.ts.map +1 -1
  116. package/dist/esm/components/src/hooks/useCreateController.js +24 -3
  117. package/dist/esm/components/src/index.d.ts +1 -14
  118. package/dist/esm/components/src/index.d.ts.map +1 -1
  119. package/dist/esm/components/src/index.js +1 -14
  120. package/dist/esm/components/src/providers/langComponents.d.ts +2 -20
  121. package/dist/esm/components/src/providers/langComponents.d.ts.map +1 -1
  122. package/dist/esm/components/src/providers/themeComponents.d.ts +41 -209
  123. package/dist/esm/components/src/providers/themeComponents.d.ts.map +1 -1
  124. package/dist/esm/components/src/providers/themeComponents.js +1 -20
  125. package/dist/esm/components/src/providers/withTracking.d.ts +2 -2
  126. package/dist/esm/components/src/providers/withTracking.d.ts.map +1 -1
  127. package/dist/esm/components/src/setupTests.js +0 -14
  128. package/dist/esm/components/src/themes/base/components/templates/index.d.ts.map +1 -1
  129. package/dist/esm/components/src/themes/base/components/templates/index.js +0 -10
  130. package/dist/esm/components/src/themes/bocachica/components/templates/index.d.ts.map +1 -1
  131. package/dist/esm/components/src/themes/bocachica/components/templates/index.js +0 -10
  132. package/dist/esm/components/src/themes/pike/components/templates/index.d.ts.map +1 -1
  133. package/dist/esm/components/src/themes/pike/components/templates/index.js +0 -10
  134. package/dist/esm/components/src/themes/snapnco/components/templates/index.d.ts.map +1 -1
  135. package/dist/esm/components/src/themes/snapnco/components/templates/index.js +0 -10
  136. package/dist/esm/components/src/themes/snappy/components/templates/index.d.ts.map +1 -1
  137. package/dist/esm/components/src/themes/snappy/components/templates/index.js +0 -10
  138. package/dist/esm/components/src/utilities/Colour/Colour.d.ts +0 -15
  139. package/dist/esm/components/src/utilities/Colour/Colour.d.ts.map +1 -1
  140. package/dist/esm/components/src/utilities/Colour/Colour.js +0 -41
  141. package/dist/esm/components/src/utilities/index.d.ts +1 -0
  142. package/dist/esm/components/src/utilities/index.d.ts.map +1 -1
  143. package/dist/esm/components/src/utilities/index.js +1 -0
  144. package/dist/esm/components/src/utilities/selectionKey.d.ts +3 -0
  145. package/dist/esm/components/src/utilities/selectionKey.d.ts.map +1 -0
  146. package/dist/esm/components/src/utilities/selectionKey.js +9 -0
  147. package/dist/esm/components/src/utilities/snapify.d.ts +2 -3
  148. package/dist/esm/components/src/utilities/snapify.d.ts.map +1 -1
  149. package/dist/esm/components/src/utilities/snapify.js +2 -29
  150. package/dist/esm/src/Snap.d.ts +1 -2
  151. package/dist/esm/src/Snap.d.ts.map +1 -1
  152. package/dist/esm/src/Snap.js +1 -71
  153. package/dist/esm/src/Templates/SnapTemplates.d.ts +7 -5
  154. package/dist/esm/src/Templates/SnapTemplates.d.ts.map +1 -1
  155. package/dist/esm/src/Templates/SnapTemplates.js +146 -85
  156. package/dist/esm/src/Templates/Stores/LibraryStore.d.ts +2 -43
  157. package/dist/esm/src/Templates/Stores/LibraryStore.d.ts.map +1 -1
  158. package/dist/esm/src/Templates/Stores/LibraryStore.js +3 -51
  159. package/dist/esm/src/Templates/Stores/TabManagerStore.d.ts +29 -0
  160. package/dist/esm/src/Templates/Stores/TabManagerStore.d.ts.map +1 -0
  161. package/dist/esm/src/Templates/Stores/TabManagerStore.js +146 -0
  162. package/dist/esm/src/Templates/Stores/TemplateStore.d.ts +28 -22
  163. package/dist/esm/src/Templates/Stores/TemplateStore.d.ts.map +1 -1
  164. package/dist/esm/src/Templates/Stores/TemplateStore.js +23 -2
  165. package/dist/esm/src/Templates/Stores/library/languages/es.d.ts.map +1 -1
  166. package/dist/esm/src/Templates/Stores/library/languages/es.js +20 -487
  167. package/dist/esm/src/Templates/Stores/library/languages/fr.d.ts.map +1 -1
  168. package/dist/esm/src/Templates/Stores/library/languages/fr.js +20 -487
  169. package/dist/esm/src/create/createAutocompleteController.js +6 -1
  170. package/dist/esm/src/create/index.d.ts +0 -1
  171. package/dist/esm/src/create/index.d.ts.map +1 -1
  172. package/dist/esm/src/create/index.js +0 -1
  173. package/dist/esm/src/setupEvents.d.ts +0 -13
  174. package/dist/esm/src/setupEvents.d.ts.map +1 -1
  175. package/dist/esm/src/setupEvents.js +0 -44
  176. package/dist/esm/src/types.d.ts +9 -14
  177. package/dist/esm/src/types.d.ts.map +1 -1
  178. package/dist/esm/src/utils/index.d.ts +0 -1
  179. package/dist/esm/src/utils/index.d.ts.map +1 -1
  180. package/dist/esm/src/utils/index.js +0 -1
  181. package/package.json +12 -14
  182. package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.js +0 -99
  183. package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/index.js +0 -17
  184. package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.js +0 -221
  185. package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/index.js +0 -17
  186. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.js +0 -209
  187. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/index.js +0 -17
  188. package/dist/cjs/components/src/components/Molecules/ChatMessageText/ChatMessageText.js +0 -258
  189. package/dist/cjs/components/src/components/Molecules/ChatMessageText/index.js +0 -17
  190. package/dist/cjs/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.js +0 -282
  191. package/dist/cjs/components/src/components/Molecules/ChatMessageUser/index.js +0 -17
  192. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.js +0 -173
  193. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/index.js +0 -17
  194. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.js +0 -577
  195. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/index.js +0 -17
  196. package/dist/cjs/components/src/components/Molecules/ChatResult/ChatResult.js +0 -252
  197. package/dist/cjs/components/src/components/Molecules/ChatResult/index.js +0 -17
  198. package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.js +0 -113
  199. package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/index.js +0 -17
  200. package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.js +0 -107
  201. package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/index.js +0 -17
  202. package/dist/cjs/components/src/components/Organisms/Chat/Chat.js +0 -621
  203. package/dist/cjs/components/src/components/Organisms/Chat/Chat.lang.js +0 -105
  204. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatAttachments.js +0 -104
  205. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatComparisonsTray.js +0 -161
  206. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatComposer.js +0 -166
  207. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatFacetsBar.js +0 -369
  208. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatHistory.js +0 -130
  209. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatMessages.js +0 -218
  210. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatSessionFeedback.js +0 -123
  211. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatSideChat.js +0 -173
  212. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatTopicDrift.js +0 -149
  213. package/dist/cjs/components/src/components/Organisms/Chat/components/chatAccentTheme.js +0 -60
  214. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatFileUpload.js +0 -66
  215. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatGestures.js +0 -96
  216. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatOverflow.js +0 -113
  217. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatScrollLock.js +0 -135
  218. package/dist/cjs/components/src/components/Organisms/Chat/index.js +0 -18
  219. package/dist/cjs/components/src/components/Organisms/ChatButton/ChatButton.js +0 -94
  220. package/dist/cjs/components/src/components/Organisms/ChatButton/ChatButton.lang.js +0 -11
  221. package/dist/cjs/components/src/components/Organisms/ChatButton/index.js +0 -18
  222. package/dist/cjs/components/src/components/Templates/Chat/Chat.js +0 -47
  223. package/dist/cjs/components/src/components/Templates/Chat/index.js +0 -17
  224. package/dist/cjs/components/src/components/Templates/ChatButton/ChatButton.js +0 -47
  225. package/dist/cjs/components/src/themes/base/components/templates/chat.js +0 -6
  226. package/dist/cjs/components/src/themes/base/components/templates/chatButton.js +0 -6
  227. package/dist/cjs/components/src/themes/bocachica/components/templates/chat.js +0 -6
  228. package/dist/cjs/components/src/themes/bocachica/components/templates/chatButton.js +0 -6
  229. package/dist/cjs/components/src/themes/pike/components/templates/chat.js +0 -6
  230. package/dist/cjs/components/src/themes/pike/components/templates/chatButton.js +0 -6
  231. package/dist/cjs/components/src/themes/snapnco/components/templates/chat.js +0 -6
  232. package/dist/cjs/components/src/themes/snapnco/components/templates/chatButton.js +0 -6
  233. package/dist/cjs/components/src/themes/snappy/components/templates/chat.js +0 -6
  234. package/dist/cjs/components/src/themes/snappy/components/templates/chatButton.js +0 -6
  235. package/dist/cjs/components/src/themes/themeComponents/chat.js +0 -14
  236. package/dist/cjs/components/src/themes/themeComponents/chatButton.js +0 -9
  237. package/dist/cjs/src/Templates/Stores/library/components/Chat.js +0 -5
  238. package/dist/cjs/src/Templates/Stores/library/components/ChatButton.js +0 -5
  239. package/dist/cjs/src/create/createChatController.js +0 -30
  240. package/dist/cjs/src/utils/applyChatTargetInject.js +0 -25
  241. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts +0 -17
  242. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts.map +0 -1
  243. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.js +0 -92
  244. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts +0 -2
  245. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts.map +0 -1
  246. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.js +0 -1
  247. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.d.ts +0 -30
  248. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.d.ts.map +0 -1
  249. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.js +0 -215
  250. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.d.ts +0 -2
  251. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.d.ts.map +0 -1
  252. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.js +0 -1
  253. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts +0 -19
  254. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts.map +0 -1
  255. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.js +0 -203
  256. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts +0 -2
  257. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts.map +0 -1
  258. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.js +0 -1
  259. package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.d.ts +0 -36
  260. package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.d.ts.map +0 -1
  261. package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.js +0 -252
  262. package/dist/esm/components/src/components/Molecules/ChatMessageText/index.d.ts +0 -2
  263. package/dist/esm/components/src/components/Molecules/ChatMessageText/index.d.ts.map +0 -1
  264. package/dist/esm/components/src/components/Molecules/ChatMessageText/index.js +0 -1
  265. package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.d.ts +0 -38
  266. package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.d.ts.map +0 -1
  267. package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.js +0 -276
  268. package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.d.ts +0 -2
  269. package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.d.ts.map +0 -1
  270. package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.js +0 -1
  271. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts +0 -19
  272. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts.map +0 -1
  273. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.js +0 -167
  274. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts +0 -2
  275. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts.map +0 -1
  276. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.js +0 -1
  277. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts +0 -38
  278. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts.map +0 -1
  279. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.js +0 -571
  280. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts +0 -2
  281. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts.map +0 -1
  282. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.js +0 -1
  283. package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.d.ts +0 -35
  284. package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.d.ts.map +0 -1
  285. package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.js +0 -246
  286. package/dist/esm/components/src/components/Molecules/ChatResult/index.d.ts +0 -2
  287. package/dist/esm/components/src/components/Molecules/ChatResult/index.d.ts.map +0 -1
  288. package/dist/esm/components/src/components/Molecules/ChatResult/index.js +0 -1
  289. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.d.ts +0 -24
  290. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.d.ts.map +0 -1
  291. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.js +0 -107
  292. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.d.ts +0 -2
  293. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.d.ts.map +0 -1
  294. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.js +0 -1
  295. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.d.ts +0 -16
  296. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.d.ts.map +0 -1
  297. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.js +0 -101
  298. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.d.ts +0 -2
  299. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.d.ts.map +0 -1
  300. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.js +0 -1
  301. package/dist/esm/components/src/components/Organisms/Chat/Chat.d.ts +0 -41
  302. package/dist/esm/components/src/components/Organisms/Chat/Chat.d.ts.map +0 -1
  303. package/dist/esm/components/src/components/Organisms/Chat/Chat.js +0 -615
  304. package/dist/esm/components/src/components/Organisms/Chat/Chat.lang.d.ts +0 -76
  305. package/dist/esm/components/src/components/Organisms/Chat/Chat.lang.d.ts.map +0 -1
  306. package/dist/esm/components/src/components/Organisms/Chat/Chat.lang.js +0 -100
  307. package/dist/esm/components/src/components/Organisms/Chat/components/ChatAttachments.d.ts +0 -26
  308. package/dist/esm/components/src/components/Organisms/Chat/components/ChatAttachments.d.ts.map +0 -1
  309. package/dist/esm/components/src/components/Organisms/Chat/components/ChatAttachments.js +0 -98
  310. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComparisonsTray.d.ts +0 -13
  311. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComparisonsTray.d.ts.map +0 -1
  312. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComparisonsTray.js +0 -155
  313. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComposer.d.ts +0 -19
  314. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComposer.d.ts.map +0 -1
  315. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComposer.js +0 -160
  316. package/dist/esm/components/src/components/Organisms/Chat/components/ChatFacetsBar.d.ts +0 -18
  317. package/dist/esm/components/src/components/Organisms/Chat/components/ChatFacetsBar.d.ts.map +0 -1
  318. package/dist/esm/components/src/components/Organisms/Chat/components/ChatFacetsBar.js +0 -363
  319. package/dist/esm/components/src/components/Organisms/Chat/components/ChatHistory.d.ts +0 -11
  320. package/dist/esm/components/src/components/Organisms/Chat/components/ChatHistory.d.ts.map +0 -1
  321. package/dist/esm/components/src/components/Organisms/Chat/components/ChatHistory.js +0 -124
  322. package/dist/esm/components/src/components/Organisms/Chat/components/ChatMessages.d.ts +0 -30
  323. package/dist/esm/components/src/components/Organisms/Chat/components/ChatMessages.d.ts.map +0 -1
  324. package/dist/esm/components/src/components/Organisms/Chat/components/ChatMessages.js +0 -212
  325. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSessionFeedback.d.ts +0 -13
  326. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSessionFeedback.d.ts.map +0 -1
  327. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSessionFeedback.js +0 -117
  328. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSideChat.d.ts +0 -19
  329. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSideChat.d.ts.map +0 -1
  330. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSideChat.js +0 -167
  331. package/dist/esm/components/src/components/Organisms/Chat/components/ChatTopicDrift.d.ts +0 -14
  332. package/dist/esm/components/src/components/Organisms/Chat/components/ChatTopicDrift.d.ts.map +0 -1
  333. package/dist/esm/components/src/components/Organisms/Chat/components/ChatTopicDrift.js +0 -143
  334. package/dist/esm/components/src/components/Organisms/Chat/components/chatAccentTheme.d.ts +0 -15
  335. package/dist/esm/components/src/components/Organisms/Chat/components/chatAccentTheme.d.ts.map +0 -1
  336. package/dist/esm/components/src/components/Organisms/Chat/components/chatAccentTheme.js +0 -56
  337. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.d.ts +0 -32
  338. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.d.ts.map +0 -1
  339. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.js +0 -62
  340. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.d.ts +0 -40
  341. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.d.ts.map +0 -1
  342. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.js +0 -92
  343. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.d.ts +0 -43
  344. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.d.ts.map +0 -1
  345. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.js +0 -109
  346. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatScrollLock.d.ts +0 -26
  347. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatScrollLock.d.ts.map +0 -1
  348. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatScrollLock.js +0 -131
  349. package/dist/esm/components/src/components/Organisms/Chat/index.d.ts +0 -3
  350. package/dist/esm/components/src/components/Organisms/Chat/index.d.ts.map +0 -1
  351. package/dist/esm/components/src/components/Organisms/Chat/index.js +0 -2
  352. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.d.ts +0 -18
  353. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.d.ts.map +0 -1
  354. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.js +0 -88
  355. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.lang.d.ts +0 -7
  356. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.lang.d.ts.map +0 -1
  357. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.lang.js +0 -8
  358. package/dist/esm/components/src/components/Organisms/ChatButton/index.d.ts +0 -3
  359. package/dist/esm/components/src/components/Organisms/ChatButton/index.d.ts.map +0 -1
  360. package/dist/esm/components/src/components/Organisms/ChatButton/index.js +0 -2
  361. package/dist/esm/components/src/components/Templates/Chat/Chat.d.ts +0 -12
  362. package/dist/esm/components/src/components/Templates/Chat/Chat.d.ts.map +0 -1
  363. package/dist/esm/components/src/components/Templates/Chat/Chat.js +0 -41
  364. package/dist/esm/components/src/components/Templates/Chat/index.d.ts +0 -2
  365. package/dist/esm/components/src/components/Templates/Chat/index.d.ts.map +0 -1
  366. package/dist/esm/components/src/components/Templates/Chat/index.js +0 -1
  367. package/dist/esm/components/src/components/Templates/ChatButton/ChatButton.d.ts +0 -13
  368. package/dist/esm/components/src/components/Templates/ChatButton/ChatButton.d.ts.map +0 -1
  369. package/dist/esm/components/src/components/Templates/ChatButton/ChatButton.js +0 -41
  370. package/dist/esm/components/src/components/Templates/ChatButton/index.d.ts +0 -2
  371. package/dist/esm/components/src/components/Templates/ChatButton/index.d.ts.map +0 -1
  372. package/dist/esm/components/src/components/Templates/ChatButton/index.js +0 -1
  373. package/dist/esm/components/src/themes/base/components/templates/chat.d.ts +0 -4
  374. package/dist/esm/components/src/themes/base/components/templates/chat.d.ts.map +0 -1
  375. package/dist/esm/components/src/themes/base/components/templates/chat.js +0 -3
  376. package/dist/esm/components/src/themes/base/components/templates/chatButton.d.ts +0 -4
  377. package/dist/esm/components/src/themes/base/components/templates/chatButton.d.ts.map +0 -1
  378. package/dist/esm/components/src/themes/base/components/templates/chatButton.js +0 -3
  379. package/dist/esm/components/src/themes/bocachica/components/templates/chat.d.ts +0 -4
  380. package/dist/esm/components/src/themes/bocachica/components/templates/chat.d.ts.map +0 -1
  381. package/dist/esm/components/src/themes/bocachica/components/templates/chat.js +0 -3
  382. package/dist/esm/components/src/themes/bocachica/components/templates/chatButton.d.ts +0 -4
  383. package/dist/esm/components/src/themes/bocachica/components/templates/chatButton.d.ts.map +0 -1
  384. package/dist/esm/components/src/themes/bocachica/components/templates/chatButton.js +0 -3
  385. package/dist/esm/components/src/themes/pike/components/templates/chat.d.ts +0 -4
  386. package/dist/esm/components/src/themes/pike/components/templates/chat.d.ts.map +0 -1
  387. package/dist/esm/components/src/themes/pike/components/templates/chat.js +0 -3
  388. package/dist/esm/components/src/themes/pike/components/templates/chatButton.d.ts +0 -4
  389. package/dist/esm/components/src/themes/pike/components/templates/chatButton.d.ts.map +0 -1
  390. package/dist/esm/components/src/themes/pike/components/templates/chatButton.js +0 -3
  391. package/dist/esm/components/src/themes/snapnco/components/templates/chat.d.ts +0 -4
  392. package/dist/esm/components/src/themes/snapnco/components/templates/chat.d.ts.map +0 -1
  393. package/dist/esm/components/src/themes/snapnco/components/templates/chat.js +0 -3
  394. package/dist/esm/components/src/themes/snapnco/components/templates/chatButton.d.ts +0 -4
  395. package/dist/esm/components/src/themes/snapnco/components/templates/chatButton.d.ts.map +0 -1
  396. package/dist/esm/components/src/themes/snapnco/components/templates/chatButton.js +0 -3
  397. package/dist/esm/components/src/themes/snappy/components/templates/chat.d.ts +0 -4
  398. package/dist/esm/components/src/themes/snappy/components/templates/chat.d.ts.map +0 -1
  399. package/dist/esm/components/src/themes/snappy/components/templates/chat.js +0 -3
  400. package/dist/esm/components/src/themes/snappy/components/templates/chatButton.d.ts +0 -4
  401. package/dist/esm/components/src/themes/snappy/components/templates/chatButton.d.ts.map +0 -1
  402. package/dist/esm/components/src/themes/snappy/components/templates/chatButton.js +0 -3
  403. package/dist/esm/components/src/themes/themeComponents/chat.d.ts +0 -4
  404. package/dist/esm/components/src/themes/themeComponents/chat.d.ts.map +0 -1
  405. package/dist/esm/components/src/themes/themeComponents/chat.js +0 -11
  406. package/dist/esm/components/src/themes/themeComponents/chatButton.d.ts +0 -4
  407. package/dist/esm/components/src/themes/themeComponents/chatButton.d.ts.map +0 -1
  408. package/dist/esm/components/src/themes/themeComponents/chatButton.js +0 -6
  409. package/dist/esm/src/Templates/Stores/library/components/Chat.d.ts +0 -2
  410. package/dist/esm/src/Templates/Stores/library/components/Chat.d.ts.map +0 -1
  411. package/dist/esm/src/Templates/Stores/library/components/Chat.js +0 -1
  412. package/dist/esm/src/Templates/Stores/library/components/ChatButton.d.ts +0 -2
  413. package/dist/esm/src/Templates/Stores/library/components/ChatButton.d.ts.map +0 -1
  414. package/dist/esm/src/Templates/Stores/library/components/ChatButton.js +0 -1
  415. package/dist/esm/src/create/createChatController.d.ts +0 -5
  416. package/dist/esm/src/create/createChatController.d.ts.map +0 -1
  417. package/dist/esm/src/create/createChatController.js +0 -28
  418. package/dist/esm/src/utils/applyChatTargetInject.d.ts +0 -3
  419. package/dist/esm/src/utils/applyChatTargetInject.d.ts.map +0 -1
  420. package/dist/esm/src/utils/applyChatTargetInject.js +0 -22
@@ -1,621 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ChatOrganism = void 0;
7
- const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
8
- const hooks_1 = require("preact/hooks");
9
- const react_1 = require("@emotion/react");
10
- const classnames_1 = __importDefault(require("classnames"));
11
- const deepmerge_1 = __importDefault(require("deepmerge"));
12
- const mobx_react_lite_1 = require("mobx-react-lite");
13
- const providers_1 = require("../../../providers");
14
- const utilities_1 = require("../../../utilities");
15
- const hooks_2 = require("../../../hooks");
16
- const useA11y_1 = require("../../../hooks/useA11y");
17
- const Button_1 = require("../../Atoms/Button");
18
- const Icon_1 = require("../../Atoms/Icon");
19
- const Image_1 = require("../../Atoms/Image");
20
- const Overlay_1 = require("../../Atoms/Overlay");
21
- const ChatLoadingIndicator_1 = require("../../Atoms/ChatLoadingIndicator");
22
- const useChatOverflow_1 = require("./hooks/useChatOverflow");
23
- const useChatFileUpload_1 = require("./hooks/useChatFileUpload");
24
- const useChatScrollLock_1 = require("./hooks/useChatScrollLock");
25
- const chatAccentTheme_1 = require("./components/chatAccentTheme");
26
- const Chat_lang_1 = require("./Chat.lang");
27
- const ChatHistory_1 = require("./components/ChatHistory");
28
- const ChatSideChat_1 = require("./components/ChatSideChat");
29
- const ChatMessages_1 = require("./components/ChatMessages");
30
- const ChatSessionFeedback_1 = require("./components/ChatSessionFeedback");
31
- const ChatComparisonsTray_1 = require("./components/ChatComparisonsTray");
32
- const ChatFacetsBar_1 = require("./components/ChatFacetsBar");
33
- const ChatAttachments_1 = require("./components/ChatAttachments");
34
- const ChatTopicDrift_1 = require("./components/ChatTopicDrift");
35
- const ChatComposer_1 = require("./components/ChatComposer");
36
- const isValidImageUrl = (value) => {
37
- try {
38
- const { protocol } = new URL(value);
39
- return protocol === 'http:' || protocol === 'https:' || protocol === 'data:';
40
- }
41
- catch {
42
- return false;
43
- }
44
- };
45
- // maps the store requestType to the lang key providing the loading indicator verbs
46
- const LOADING_VERB_LANG_KEYS = {
47
- productQuery: 'loadingVerbsProductQuery',
48
- productSearch: 'loadingVerbsProductSearch',
49
- productComparison: 'loadingVerbsProductComparison',
50
- imageSearch: 'loadingVerbsImageSearch',
51
- productSimilar: 'loadingVerbsProductSimilar',
52
- inspirationRequest: 'loadingVerbsInspirationRequest',
53
- };
54
- const defaultStyles = ({ mobile, offset, hasSideChat, position, primaryColorBg, primaryColorFg, }) => {
55
- const isRight = position !== 'left';
56
- // horizontal anchor for the root + bubble + suggested questions
57
- const horizontalAnchor = isRight ? 'right' : 'left';
58
- const colorPrimary = primaryColorBg;
59
- const colorPrimaryText = primaryColorFg;
60
- const colorPrimaryHover = new utilities_1.Colour(colorPrimary).mixBlack();
61
- const offsetValue = offset !== undefined ? (typeof offset === 'number' ? `${offset}px` : offset) : undefined;
62
- return (0, react_1.css)({
63
- position: 'fixed',
64
- [horizontalAnchor]: '20px',
65
- bottom: '20px',
66
- zIndex: 1002,
67
- color: '#333',
68
- '.ss__chat__primary': {
69
- ...(mobile
70
- ? { width: '100%', height: '100%', position: 'relative', zIndex: 0 }
71
- : hasSideChat
72
- ? { flex: '1 1 0', minWidth: 0, maxWidth: 600, height: '70vh' }
73
- : { width: 600, maxWidth: 'calc(100vw - 60px)', height: '70vh' }),
74
- display: 'flex',
75
- flexDirection: 'column',
76
- justifyContent: 'flex-end',
77
- overflow: 'hidden',
78
- order: isRight ? 2 : 1,
79
- '.ss__chat__header__title': {
80
- gap: '22px',
81
- },
82
- '.ss__chat__messages': {
83
- padding: '1em',
84
- },
85
- },
86
- '.ss__chat__secondary': {
87
- ...(mobile ? {} : { flex: '1 1 0', minWidth: 0, maxWidth: 600 }),
88
- order: isRight ? 1 : 2,
89
- },
90
- '.ss__button': {
91
- border: 'none',
92
- background: 'none',
93
- color: 'inherit',
94
- '&:not(.ss__button--disabled):hover': {
95
- background: new utilities_1.Colour(colorPrimary).mixWhite(0.85),
96
- },
97
- svg: {
98
- fill: colorPrimary,
99
- stroke: colorPrimary,
100
- },
101
- },
102
- '.ss__chat__bubble': {
103
- position: mobile ? 'fixed' : 'absolute',
104
- bottom: mobile ? '20px' : 0,
105
- [horizontalAnchor]: mobile ? '20px' : 0,
106
- width: '60px',
107
- height: '60px',
108
- borderRadius: '50%',
109
- background: colorPrimary,
110
- color: colorPrimaryText,
111
- display: 'flex',
112
- alignItems: 'center',
113
- justifyContent: 'center',
114
- cursor: 'pointer',
115
- fontSize: '24px',
116
- boxShadow: '0 4px 8px rgba(0, 0, 0, 0.2)',
117
- zIndex: 10,
118
- border: 'none',
119
- padding: 0,
120
- font: 'inherit',
121
- '&:hover': {
122
- background: colorPrimaryHover,
123
- transform: 'scale(1.05)',
124
- },
125
- '&:focus-visible': {
126
- outline: `2px solid ${colorPrimary}`,
127
- outlineOffset: '4px',
128
- },
129
- '.ss__icon': {
130
- height: '33px',
131
- width: '33px',
132
- fill: colorPrimaryText,
133
- stroke: colorPrimaryText,
134
- },
135
- },
136
- '.ss__chat__suggested-questions': {
137
- position: mobile ? 'fixed' : 'absolute',
138
- bottom: mobile ? '90px' : '70px',
139
- [horizontalAnchor]: mobile ? '20px' : 0,
140
- display: 'flex',
141
- flexDirection: 'column',
142
- gap: '8px',
143
- width: '250px',
144
- zIndex: 10,
145
- '.ss__chat__suggested-questions__item': {
146
- background: '#fff',
147
- borderRadius: '12px',
148
- padding: '12px 16px',
149
- fontSize: '14px',
150
- color: '#333',
151
- boxShadow: '0 2px 8px rgba(0, 0, 0, 0.2)',
152
- cursor: 'pointer',
153
- lineHeight: 1.4,
154
- '&:hover': {
155
- boxShadow: '0 4px 12px rgba(0, 0, 0, 0.2)',
156
- },
157
- },
158
- },
159
- '&.ss__chat--minimized': {
160
- width: '60px',
161
- height: '60px',
162
- minHeight: '60px',
163
- },
164
- '&.ss__chat--open': {
165
- display: 'flex',
166
- flexDirection: mobile ? 'column' : 'row',
167
- gap: mobile ? 0 : '12px',
168
- ...(mobile
169
- ? {
170
- top: offsetValue || 0,
171
- left: 0,
172
- right: 0,
173
- bottom: 0,
174
- width: '100%',
175
- height: offsetValue ? `calc(100% - ${offsetValue})` : '100%',
176
- }
177
- : {
178
- // Hug the content width — two 600px panels + 12px gap — so the
179
- // container stays anchored to its side instead of stretching to
180
- // the opposite viewport edge when the side chat opens.
181
- width: hasSideChat ? 'min(calc(100vw - 60px), 1212px)' : 'auto',
182
- maxWidth: 'calc(100vw - 60px)',
183
- maxHeight: 'calc(100vh - 40px)',
184
- }),
185
- '.ss__chat__bubble': {
186
- display: 'none',
187
- },
188
- // At constrained viewport heights (e.g. browser zoom-in) the fixed 70vh panels
189
- // leave too little room for the messages view once sticky header/footer content
190
- // is accounted for. Stretch the chat to fill the window minus the offset.
191
- ...(mobile
192
- ? {}
193
- : {
194
- '@media (max-height: 800px)': {
195
- top: offsetValue || 0,
196
- bottom: 0,
197
- height: offsetValue ? `calc(100vh - ${offsetValue})` : '100vh',
198
- maxHeight: offsetValue ? `calc(100vh - ${offsetValue})` : '100vh',
199
- '.ss__chat__primary': {
200
- height: '100%',
201
- },
202
- '.ss__chat__secondary': {
203
- height: '100%',
204
- maxHeight: '100%',
205
- },
206
- // The default 90vh cap on chat content would leave unfilled space when
207
- // the chat stretches to 100vh; primary's justifyContent: flex-end then
208
- // pushes its content down while secondary stays anchored to the top,
209
- // making the panels appear misaligned.
210
- '.ss__chat__content': {
211
- maxHeight: '100%',
212
- },
213
- },
214
- }),
215
- },
216
- // Welcome state: only the greeting + suggested questions are shown, so let the
217
- // chat hug its content instead of taking the full 70vh / 100vh used once a
218
- // conversation has started. Mobile stays fullscreen by design.
219
- ...(mobile
220
- ? {}
221
- : {
222
- '&.ss__chat--welcome.ss__chat--open': {
223
- '.ss__chat__primary': {
224
- height: 'auto',
225
- },
226
- // With an auto-sized panel, the messages container's overflow/maxHeight
227
- // constraints (and the welcome's minHeight: 100%) resolve against an
228
- // undefined parent height and produce a stray scrollbar / clipped layout.
229
- // Let everything flow at its natural size.
230
- '.ss__chat__messages': {
231
- overflow: 'visible',
232
- maxHeight: 'none',
233
- },
234
- '.ss__chat__welcome': {
235
- minHeight: 0,
236
- },
237
- '@media (max-height: 800px)': {
238
- top: 'auto',
239
- bottom: '20px',
240
- height: 'auto',
241
- maxHeight: 'calc(100vh - 40px)',
242
- '.ss__chat__primary': {
243
- height: 'auto',
244
- },
245
- },
246
- },
247
- }),
248
- '.ss__chat__header': {
249
- display: 'flex',
250
- justifyContent: 'space-between',
251
- alignItems: 'center',
252
- fontSize: '16px',
253
- position: 'relative',
254
- padding: '10px 15px',
255
- color: colorPrimaryText,
256
- background: colorPrimary,
257
- borderTopLeftRadius: mobile ? 0 : '12px',
258
- borderTopRightRadius: mobile ? 0 : '12px',
259
- '.ss__chat__header__title': {
260
- display: 'flex',
261
- '.ss__chat__header__title__logo': {
262
- height: '44px',
263
- width: 'auto',
264
- },
265
- '.ss__chat__header__title__text': {
266
- display: 'flex',
267
- flexDirection: 'column',
268
- '.ss__chat__header__title__text__primary': {
269
- fontWeight: 'bold',
270
- },
271
- '.ss__chat__header__title__text__secondary': {
272
- fontSize: '80%',
273
- },
274
- },
275
- },
276
- '.ss__chat__header__buttons': {
277
- display: 'flex',
278
- gap: '10px',
279
- '.ss__button': {
280
- display: 'flex',
281
- flexDirection: 'row-reverse',
282
- padding: '5px',
283
- border: 0,
284
- fontSize: '70%',
285
- '&:hover': {
286
- backgroundColor: 'transparent',
287
- },
288
- svg: {
289
- fill: colorPrimaryText,
290
- stroke: colorPrimaryText,
291
- },
292
- },
293
- },
294
- },
295
- '.ss__chat__content': {
296
- background: '#fff',
297
- maxHeight: mobile ? undefined : '90vh',
298
- overflow: 'hidden',
299
- display: 'flex',
300
- flexDirection: 'column',
301
- border: `1px solid ${colorPrimary}`,
302
- borderTop: 'none',
303
- marginTop: '-1px',
304
- borderBottomRightRadius: mobile ? 0 : '12px',
305
- borderBottomLeftRadius: mobile ? 0 : '12px',
306
- flexGrow: 1,
307
- position: 'relative',
308
- '.ss__chat__content__header': {
309
- // In overlay mode (only applied when messages overflow), the comparisons
310
- // tray floats over the messages so toggling it doesn't shift the layout
311
- // or push the latest message out of view. When messages don't overflow,
312
- // the tray stays in flow so older messages remain reachable above it.
313
- '&.ss__chat__content__header--overlay': {
314
- position: 'absolute',
315
- top: 0,
316
- left: 0,
317
- right: 0,
318
- zIndex: 20,
319
- },
320
- },
321
- '.ss__chat__messages': {
322
- flex: '1 1 auto',
323
- overflowY: 'auto',
324
- overscrollBehavior: 'contain',
325
- margin: 0,
326
- maxHeight: '100%',
327
- background: new utilities_1.Colour(colorPrimary).mixWhite(0.95),
328
- },
329
- '.ss__chat__content__footer': {
330
- padding: '1em',
331
- display: 'flex',
332
- flexDirection: 'column',
333
- gap: '8px',
334
- flexShrink: 0,
335
- position: 'relative',
336
- ...(mobile
337
- ? {
338
- zIndex: 11,
339
- background: '#fff',
340
- }
341
- : {}),
342
- '.ss__chat__content__footer__drop-overlay': {
343
- position: 'absolute',
344
- inset: 0,
345
- display: 'flex',
346
- alignItems: 'center',
347
- justifyContent: 'center',
348
- gap: '8px',
349
- borderRadius: '6px',
350
- border: `2px dashed ${colorPrimary}`,
351
- backgroundColor: new utilities_1.Colour(colorPrimary).mixWhite(0.9),
352
- color: colorPrimary,
353
- fontWeight: 'bold',
354
- pointerEvents: 'none',
355
- zIndex: 12,
356
- svg: {
357
- fill: colorPrimary,
358
- stroke: colorPrimary,
359
- },
360
- },
361
- },
362
- '.ss__chat__expired': {
363
- display: 'flex',
364
- flexDirection: 'column',
365
- alignItems: 'center',
366
- justifyContent: 'center',
367
- gap: '12px',
368
- padding: '16px',
369
- textAlign: 'center',
370
- color: '#6A7282',
371
- '.ss__chat__expired__message': {
372
- fontSize: '14px',
373
- },
374
- '.ss__chat__expired__button': {
375
- alignSelf: 'center',
376
- },
377
- },
378
- },
379
- });
380
- };
381
- exports.ChatOrganism = (0, mobx_react_lite_1.observer)((properties) => {
382
- const globalTheme = (0, providers_1.useTheme)();
383
- const globalTreePath = (0, providers_1.useTreePath)();
384
- const mobileBreakpoint = globalTheme?.variables?.breakpoints?.tablet ?? 767;
385
- const isMobile = (0, hooks_2.useMediaQuery)(`(max-width: ${mobileBreakpoint}px)`);
386
- const defaultProps = {
387
- treePath: globalTreePath,
388
- logo: 'https://cdn.athoscommerce.net/snap/images/Athos%20Commerce_Icon_white.svg',
389
- title: 'Athos Conversational Assistant',
390
- subtitle: 'Your Guided Discovery Expert',
391
- multiselectFacets: false,
392
- disableBubbleSuggestedQuestions: isMobile ? true : false,
393
- primaryColorBg: utilities_1.Colour.concrete(globalTheme?.variables?.colors?.primary) || '#253B80',
394
- primaryColorFg: '#fff',
395
- primaryAccentColorBg: utilities_1.Colour.concrete(globalTheme?.variables?.colors?.accent) || '#feeeae',
396
- primaryAccentColorFg: '#000000',
397
- secondaryAccentColorBg: utilities_1.Colour.concrete(globalTheme?.variables?.colors?.secondary) || '#000000',
398
- secondaryAccentColorFg: '#ffffff',
399
- position: 'right',
400
- hideMessageTypeIndicatorText: false,
401
- buttonBelowMessage: false,
402
- poweredByText: 'Powered by Athos Commerce.',
403
- };
404
- let props = (0, utilities_1.mergeProps)('chat', globalTheme, defaultProps, properties);
405
- const { overrideElement, shouldRenderDefault } = (0, hooks_2.useCustomComponentOverride)('chat', props);
406
- const { className, internalClassName, controller, logo, title, subtitle, avatar, multiselectFacets, disableBubbleSuggestedQuestions, primaryColorBg, primaryColorFg, primaryAccentColorBg, primaryAccentColorFg, secondaryAccentColorBg, secondaryAccentColorFg, position, hideMessageTypeIndicatorText, buttonBelowMessage, poweredByText, privacyPolicyUrl, disableStyles, treePath, } = props;
407
- const colorPrimary = primaryColorBg;
408
- const colorPrimaryText = primaryColorFg;
409
- const colorPrimaryAccent = primaryAccentColorBg;
410
- const colorPrimaryAccentText = primaryAccentColorFg;
411
- const colorSecondaryAccent = secondaryAccentColorBg;
412
- const colorSecondaryAccentText = secondaryAccentColorFg;
413
- const chatPosition = position === 'left' ? 'left' : 'right';
414
- // A single-character avatar renders as a capitalized letter; a longer value renders
415
- // as an image when it's a valid image URL. Anything else renders no avatar.
416
- const avatarCharacter = avatar && avatar.length === 1 ? avatar.toUpperCase() : undefined;
417
- const avatarImage = avatar && avatar.length > 1 && isValidImageUrl(avatar) ? avatar : undefined;
418
- const { store } = controller;
419
- // The built-in bubble (and its suggested-question chips) yields to an external
420
- // launcher by default. An explicit hideBubble wins either way: `true` always
421
- // suppresses it, `false` keeps it alongside an inline ChatButton.
422
- const hideLauncher = props.hideBubble ?? store.hasExternalLauncher;
423
- // Track that the widget has been visible so a mid-session disable (status check
424
- // flips chatEnabled to false) keeps it mounted with the unavailable message
425
- // instead of vanishing. A disabled status at bootstrap still renders nothing.
426
- const wasVisibleRef = (0, hooks_1.useRef)(false);
427
- // Accent styling for buttons living inside child components — injected through the
428
- // theme so each child applies it via its own style pipeline (no `!important` overrides).
429
- const themeDefaults = {
430
- components: (0, chatAccentTheme_1.chatAccentThemeComponents)({
431
- primaryAccentColorBg: colorPrimaryAccent,
432
- primaryAccentColorFg: colorPrimaryAccentText,
433
- secondaryAccentColorBg: colorSecondaryAccent,
434
- secondaryAccentColorFg: colorSecondaryAccentText,
435
- }),
436
- };
437
- // merge deeply the themeDefaults with the theme props and the displaySettings theme props (do not merge arrays, but replace them)
438
- const theme = (0, deepmerge_1.default)(themeDefaults, props?.theme || {}, { arrayMerge: (destinationArray, sourceArray) => sourceArray });
439
- props = {
440
- ...props,
441
- theme,
442
- };
443
- const lang = (0, deepmerge_1.default)(Chat_lang_1.chatDefaultLang, props.lang || {});
444
- const mergedLang = (0, hooks_2.useLang)({
445
- chatUnavailableMessage: lang.chatUnavailableMessage,
446
- newSessionButton: lang.newSessionButton,
447
- expiredMessage: lang.expiredMessage,
448
- dropOverlayText: lang.dropOverlayText,
449
- }, { controller }, { activeBreakpoint: globalTheme?.activeBreakpoint });
450
- const messagesEndRef = (0, hooks_1.useRef)(null);
451
- const messagesContainerRef = (0, hooks_1.useRef)(null);
452
- const headerRef = (0, hooks_1.useRef)(null);
453
- const footerRef = (0, hooks_1.useRef)(null);
454
- const chatRef = (0, hooks_1.useRef)(null);
455
- const [mobileProductInfoOpen, setMobileProductInfoOpen] = (0, hooks_1.useState)(false);
456
- const [footerHeight, setFooterHeight] = (0, hooks_1.useState)(0);
457
- const dropEnabled = store.features.imageSearch.enabled && !store.loading && !store.blocked && !store.currentChat?.sessionLimitReached;
458
- const { fileInputRef, isDraggingFile, dragHandlers } = (0, useChatFileUpload_1.useChatFileUpload)({
459
- enabled: !!dropEnabled,
460
- onUpload: (files) => controller.upload(files),
461
- });
462
- // productQuery messages are filtered out of the main chat render (they only drive the side-chat panel),
463
- // so don't auto-scroll when one is added — otherwise clicking a product in the side chat scrolls the main thread.
464
- const visibleChat = (store.currentChat?.chat || []).filter((m) => m.messageType !== 'productQuery');
465
- const visibleChatLength = visibleChat.length;
466
- const lastVisibleMessage = visibleChat[visibleChat.length - 1];
467
- const { showNewMessages, setShowNewMessages, messagesOverflow, scrollToBottom, scrollToBottomIfNear } = (0, useChatOverflow_1.useChatOverflow)({
468
- messagesContainerRef,
469
- headerRef,
470
- open: store.open,
471
- loading: store.loading,
472
- visibleChatLength,
473
- lastVisibleMessage,
474
- });
475
- // Re-focus the chat input on desktop after a search completes.
476
- // The input is disabled while loading, which causes the browser to drop focus.
477
- // On mobile we intentionally skip this so the virtual keyboard dismisses.
478
- // Only fire on the loading true → false transition — running on mount steals
479
- // focus away from the Storybook controls whenever the story re-renders.
480
- const prevLoadingRef = (0, hooks_1.useRef)(store.loading);
481
- (0, hooks_1.useEffect)(() => {
482
- if (prevLoadingRef.current && !store.loading && !isMobile && store.open) {
483
- controller.focusInput();
484
- }
485
- prevLoadingRef.current = store.loading;
486
- }, [store.loading]);
487
- const activeMessage = store.currentChat?.activeMessage;
488
- // On mobile, only auto-open the secondary panel for the first productComparison
489
- // message in the chat session. Subsequent comparison results show a "Show Details"
490
- // button instead (handled in MessageText via sideChatLabel toggle).
491
- const isFirstMobileComparison = (() => {
492
- if (!isMobile || activeMessage?.messageType !== 'productComparison')
493
- return true;
494
- // If the user explicitly activated a comparison (via "Show Details" or the
495
- // view-side-chat button), always allow it regardless of position in the chat
496
- if (store.currentChat?.activeMessageId)
497
- return true;
498
- const comparisonMessages = (store.currentChat?.chat || []).filter((m) => m.messageType === 'productComparison');
499
- return comparisonMessages.length <= 1;
500
- })();
501
- const sideChatTypes = isMobile
502
- ? ['inspirationResult', ...(isFirstMobileComparison ? ['productComparison'] : []), ...(mobileProductInfoOpen ? ['productQuery'] : [])]
503
- : ['inspirationResult', 'productComparison', 'productQuery'];
504
- const shouldShowSideChat = activeMessage && sideChatTypes.includes(activeMessage?.messageType) && store.currentChat?.dismissedSideChatMessageId !== activeMessage.id;
505
- const hasSideChat = !!shouldShowSideChat;
506
- // Lock body scrolling (wheel + touch) to the chat while it is open. Mobile only —
507
- // on desktop the chat is a side panel and the page behind it stays scrollable.
508
- (0, useChatScrollLock_1.useChatScrollLock)({ open: store.open && isMobile, chatRef });
509
- // Close chat on Escape key (or dismiss side chat first when it's open)
510
- (0, hooks_1.useEffect)(() => {
511
- if (!store.open)
512
- return;
513
- const onKeyDown = (e) => {
514
- if (e.key !== 'Escape')
515
- return;
516
- if (store.currentChat?.activeMessage && shouldShowSideChat) {
517
- store.currentChat?.dismissSideChat();
518
- }
519
- else {
520
- controller.handlers.button.click();
521
- }
522
- };
523
- document.addEventListener('keydown', onKeyDown);
524
- return () => document.removeEventListener('keydown', onKeyDown);
525
- }, [store.open, shouldShowSideChat]);
526
- // Track the primary footer height so the mobile secondary panel can sit above it
527
- (0, hooks_1.useEffect)(() => {
528
- const el = footerRef.current;
529
- if (!el)
530
- return;
531
- const observer = new ResizeObserver((entries) => {
532
- for (const entry of entries) {
533
- setFooterHeight(entry.borderBoxSize?.[0]?.blockSize ?? entry.target.getBoundingClientRect().height);
534
- }
535
- });
536
- observer.observe(el);
537
- return () => observer.disconnect();
538
- }, [store.open, store.currentChat?.isExpired]);
539
- if (controller.store.chatEnabled) {
540
- wasVisibleRef.current = true;
541
- }
542
- // Dismiss the secondary panel and clear any product attachments tied to the side-chat
543
- // (discuss product flow), while preserving productSimilar/productComparison attachments.
544
- const dismissSideChat = () => {
545
- const productAttachmentsToRemove = (store.currentChat?.attachments.attached || []).filter((item) => item.type === 'product' &&
546
- item.requestType !== 'productSimilar' &&
547
- item.requestType !== 'productComparison');
548
- productAttachmentsToRemove.forEach((item) => store.currentChat?.attachments.remove(item.id));
549
- setMobileProductInfoOpen(false);
550
- store.currentChat?.dismissSideChat();
551
- };
552
- const requestType = store.currentChat?.requestType;
553
- const loadingVerbLangKey = requestType ? LOADING_VERB_LANG_KEYS[requestType] : undefined;
554
- const loadingVerbs = loadingVerbLangKey
555
- ? (0, Chat_lang_1.langTextOf)(lang[loadingVerbLangKey])
556
- ?.split(',')
557
- .map((verb) => verb.trim())
558
- .filter(Boolean)
559
- : undefined;
560
- const isWelcomeState = (!store.currentChat?.chat || store.currentChat.chat.length === 0) && !!store.welcomeMessage && !store.currentChat?.isExpired;
561
- // props inherited by every extracted chat sub-component
562
- const inheritedProps = {
563
- disableStyles,
564
- theme: props.theme,
565
- treePath,
566
- lang: props.lang,
567
- };
568
- const primaryColors = {
569
- primaryColorBg: colorPrimary,
570
- primaryColorFg: colorPrimaryText,
571
- };
572
- const subProps = {
573
- history: { ...inheritedProps },
574
- sideChat: { ...inheritedProps, ...primaryColors },
575
- messages: {
576
- ...inheritedProps,
577
- ...primaryColors,
578
- primaryAccentColorBg: colorPrimaryAccent,
579
- primaryAccentColorFg: colorPrimaryAccentText,
580
- hideMessageTypeIndicatorText,
581
- buttonBelowMessage,
582
- },
583
- sessionFeedback: { ...inheritedProps, ...primaryColors },
584
- comparisonsTray: { ...inheritedProps, ...primaryColors },
585
- facetsBar: { ...inheritedProps, ...primaryColors },
586
- attachments: { ...inheritedProps },
587
- topicDrift: { ...inheritedProps, ...primaryColors },
588
- composer: { ...inheritedProps, ...primaryColors, poweredByText, privacyPolicyUrl },
589
- loadingIndicator: { disableStyles, theme: props.theme, treePath },
590
- };
591
- const styling = (0, utilities_1.mergeStyles)({ ...props, mobile: isMobile, hasSideChat, footerHeight, position: chatPosition }, defaultStyles);
592
- // Hide the widget entirely when chat is disabled at bootstrap (silent disable).
593
- // When chat becomes disabled mid-session, keep the widget mounted so the footer
594
- // unavailable message stays visible (with the input disabled).
595
- if (!controller.store.chatEnabled && !wasVisibleRef.current) {
596
- return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
597
- }
598
- if (!shouldRenderDefault) {
599
- return overrideElement;
600
- }
601
- return ((0, jsx_runtime_1.jsx)(providers_1.CacheProvider, { children: (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)("div", { ref: chatRef, className: (0, classnames_1.default)('ss__chat', {
602
- 'ss__chat--open': store.open,
603
- 'ss__chat--minimized': !store.open,
604
- 'ss__chat--mobile': isMobile,
605
- 'ss__chat--welcome': isWelcomeState,
606
- }, className, internalClassName), ...styling, children: [!hideLauncher && !disableBubbleSuggestedQuestions && !store.open && !store.currentChat && store.suggestedQuestions?.length > 0 && ((0, jsx_runtime_1.jsx)("div", { className: "ss__chat__suggested-questions", children: store.suggestedQuestions.map((question) => ((0, jsx_runtime_1.jsx)("div", { className: "ss__chat__suggested-questions__item", role: "button", ref: (e) => (0, useA11y_1.useA11y)(e), onClick: () => {
607
- controller.openChat(question);
608
- }, children: question }, question))) })), !hideLauncher && ((0, jsx_runtime_1.jsx)("button", { type: "button", className: 'ss__chat__bubble', "aria-label": store.open ? (0, Chat_lang_1.langAttrOf)(lang.closeChatButton, 'aria-label') : (0, Chat_lang_1.langAttrOf)(lang.openChatButton, 'aria-label'), "aria-expanded": store.open, onClick: () => controller.handlers.button.click(), children: (0, jsx_runtime_1.jsx)(Icon_1.Icon, { icon: "chat", title: (0, Chat_lang_1.langAttrOf)(lang.openChatButton, 'title') }) })), store.open && shouldShowSideChat && activeMessage ? ((0, jsx_runtime_1.jsx)(ChatSideChat_1.ChatSideChat, { ...subProps.sideChat, controller: controller, activeMessage: activeMessage, mobile: isMobile, footerHeight: footerHeight, onDismiss: dismissSideChat, onProductQuickView: isMobile ? () => setMobileProductInfoOpen(true) : undefined })) : null, store.open ? ((0, jsx_runtime_1.jsxs)("div", { className: 'ss__chat__primary',
609
- // On mobile, interacting with the primary chat (header or anywhere within)
610
- // dismisses the secondary panel. Capture phase so it fires even when an
611
- // inner control stops propagation.
612
- onClickCapture: isMobile && shouldShowSideChat ? () => dismissSideChat() : undefined, children: [(0, jsx_runtime_1.jsxs)("div", { className: 'ss__chat__header', children: [(0, jsx_runtime_1.jsxs)("div", { className: "ss__chat__header__title", children: [logo ? (0, jsx_runtime_1.jsx)(Image_1.Image, { className: "ss__chat__header__title__logo", src: logo, alt: title || 'Chat logo' }) : null, (0, jsx_runtime_1.jsxs)("div", { className: "ss__chat__header__title__text", children: [title ? (0, jsx_runtime_1.jsx)("div", { className: "ss__chat__header__title__text__primary", children: title }) : null, subtitle ? (0, jsx_runtime_1.jsx)("div", { className: "ss__chat__header__title__text__secondary", children: subtitle }) : null] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "ss__chat__header__buttons", children: [(0, jsx_runtime_1.jsx)(Button_1.Button, { className: "ss__chat__header__button--new", "aria-label": (0, Chat_lang_1.langAttrOf)(lang.newChatButton, 'aria-label'), icon: { icon: controller.store.initChatLoading ? 'spinner' : 'plus-rounded', title: (0, Chat_lang_1.langAttrOf)(lang.newChatButton, 'title') }, onClick: () => controller.store.createChat() }), store.chats.length > 1 && (0, jsx_runtime_1.jsx)(ChatHistory_1.ChatHistory, { ...subProps.history, controller: controller }), (0, jsx_runtime_1.jsx)(Button_1.Button, { className: "ss__chat__header__button--close", "aria-label": (0, Chat_lang_1.langAttrOf)(lang.closeChatButton, 'aria-label'), icon: { icon: 'close-rounded', title: (0, Chat_lang_1.langAttrOf)(lang.closeChatButton, 'title') }, onClick: () => controller.handlers.button.click() })] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "ss__chat__content", children: [(0, jsx_runtime_1.jsx)(ChatSessionFeedback_1.ChatSessionFeedback, { ...subProps.sessionFeedback, controller: controller }), (0, jsx_runtime_1.jsx)("div", { ref: headerRef, className: (0, classnames_1.default)('ss__chat__content__header', {
613
- 'ss__chat__content__header--overlay': messagesOverflow,
614
- }), children: (0, jsx_runtime_1.jsx)(ChatComparisonsTray_1.ChatComparisonsTray, { ...subProps.comparisonsTray, controller: controller }) }), (0, jsx_runtime_1.jsx)(ChatMessages_1.ChatMessages, { ...subProps.messages, controller: controller, messagesContainerRef: messagesContainerRef, messagesEndRef: messagesEndRef, mobile: isMobile, avatarCharacter: avatarCharacter, avatarImage: avatarImage, sideChatOpen: !!shouldShowSideChat, onProductQuickView: () => setMobileProductInfoOpen(true), scrollToBottom: scrollToBottom, scrollToBottomIfNear: scrollToBottomIfNear, showNewMessages: showNewMessages, setShowNewMessages: setShowNewMessages, messagesOverflow: messagesOverflow }), (0, jsx_runtime_1.jsx)(ChatLoadingIndicator_1.ChatLoadingIndicator, { ...subProps.loadingIndicator, loading: store.loading, verbs: loadingVerbs }), !store.currentChat?.isExpired ? ((0, jsx_runtime_1.jsxs)("div", { className: "ss__chat__content__footer", ref: footerRef, ...dragHandlers, children: [(store.error || store.chatEnabled === false) && ((0, jsx_runtime_1.jsx)("div", { className: "ss__chat__error", children: store.error?.message || (0, Chat_lang_1.langTextOf)(lang.chatUnavailableMessage) })), (0, jsx_runtime_1.jsx)(ChatTopicDrift_1.ChatTopicDrift, { ...subProps.topicDrift, controller: controller, variant: "sessionLimit" }), (0, jsx_runtime_1.jsx)(ChatFacetsBar_1.ChatFacetsBar, { ...subProps.facetsBar, controller: controller, chatRef: chatRef, multiselectFacets: multiselectFacets }), (0, jsx_runtime_1.jsx)(ChatAttachments_1.ChatAttachments, { ...subProps.attachments, controller: controller, activeMessage: activeMessage, sideChatOpen: !!shouldShowSideChat, mobile: isMobile, onProductQuickView: () => setMobileProductInfoOpen(true), onProductAttachmentsRemoved: () => setMobileProductInfoOpen(false) }), (0, jsx_runtime_1.jsx)(ChatTopicDrift_1.ChatTopicDrift, { ...subProps.topicDrift, controller: controller, variant: "drift" }), (0, jsx_runtime_1.jsx)(ChatComposer_1.ChatComposer, { ...subProps.composer, controller: controller, fileInputRef: fileInputRef, onUserSend: () => {
615
- if (isMobile && mobileProductInfoOpen) {
616
- setMobileProductInfoOpen(false);
617
- }
618
- } }), isDraggingFile && ((0, jsx_runtime_1.jsxs)("div", { className: "ss__chat__content__footer__drop-overlay", children: [(0, jsx_runtime_1.jsx)(Icon_1.Icon, { icon: "image", size: "24px" }), (0, jsx_runtime_1.jsx)("span", { ...mergedLang.dropOverlayText?.all })] }))] })) : ((0, jsx_runtime_1.jsxs)("div", { className: 'ss__chat__expired', children: [(0, jsx_runtime_1.jsx)("div", { className: 'ss__chat__expired__message', ...mergedLang.expiredMessage?.all }), (0, jsx_runtime_1.jsx)(Button_1.Button, { className: 'ss__chat__expired__button', onClick: () => {
619
- controller.store.createChat();
620
- }, children: (0, jsx_runtime_1.jsx)("span", { ...mergedLang.newSessionButton?.all }) })] }))] })] })) : null] }), (0, jsx_runtime_1.jsx)(Overlay_1.Overlay, { style: { zIndex: 1001 }, color: "transparent", active: store.open, onClick: () => controller.handlers.button.click() })] }) }));
621
- });