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