@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,628 +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
- };
403
- let props = (0, utilities_1.mergeProps)('chat', globalTheme, defaultProps, properties);
404
- const { overrideElement, shouldRenderDefault } = (0, hooks_2.useCustomComponentOverride)('chat', props);
405
- const { className, internalClassName, controller, logo, title, subtitle, avatar, multiselectFacets, disableBubbleSuggestedQuestions, primaryColorBg, primaryColorFg, primaryAccentColorBg, primaryAccentColorFg, secondaryAccentColorBg, secondaryAccentColorFg, position, hideMessageTypeIndicatorText, buttonBelowMessage, poweredByText, privacyPolicyUrl, disableStyles, treePath, } = props;
406
- const colorPrimary = primaryColorBg;
407
- const colorPrimaryText = primaryColorFg;
408
- const colorPrimaryAccent = primaryAccentColorBg;
409
- const colorPrimaryAccentText = primaryAccentColorFg;
410
- const colorSecondaryAccent = secondaryAccentColorBg;
411
- const colorSecondaryAccentText = secondaryAccentColorFg;
412
- const chatPosition = position === 'left' ? 'left' : 'right';
413
- // A single-character avatar renders as a capitalized letter; a longer value renders
414
- // as an image when it's a valid image URL. Anything else renders no avatar.
415
- const avatarCharacter = avatar && avatar.length === 1 ? avatar.toUpperCase() : undefined;
416
- const avatarImage = avatar && avatar.length > 1 && isValidImageUrl(avatar) ? avatar : undefined;
417
- const { store } = controller;
418
- // The built-in bubble (and its suggested-question chips) yields to an external
419
- // launcher by default. An explicit hideBubble wins either way: `true` always
420
- // suppresses it, `false` keeps it alongside an inline ChatButton.
421
- const hideLauncher = props.hideBubble ?? store.hasExternalLauncher;
422
- // Track that the widget has been visible so a mid-session disable (status check
423
- // flips chatEnabled to false) keeps it mounted with the unavailable message
424
- // instead of vanishing. A disabled status at bootstrap still renders nothing.
425
- const wasVisibleRef = (0, hooks_1.useRef)(false);
426
- // Accent styling for buttons living inside child components — injected through the
427
- // theme so each child applies it via its own style pipeline (no `!important` overrides).
428
- const themeDefaults = {
429
- components: (0, chatAccentTheme_1.chatAccentThemeComponents)({
430
- primaryAccentColorBg: colorPrimaryAccent,
431
- primaryAccentColorFg: colorPrimaryAccentText,
432
- secondaryAccentColorBg: colorSecondaryAccent,
433
- secondaryAccentColorFg: colorSecondaryAccentText,
434
- }),
435
- };
436
- // merge deeply the themeDefaults with the theme props and the displaySettings theme props (do not merge arrays, but replace them)
437
- const theme = (0, deepmerge_1.default)(themeDefaults, props?.theme || {}, { arrayMerge: (destinationArray, sourceArray) => sourceArray });
438
- props = {
439
- ...props,
440
- theme,
441
- };
442
- const lang = (0, deepmerge_1.default)(Chat_lang_1.chatDefaultLang, props.lang || {});
443
- const mergedLang = (0, hooks_2.useLang)({
444
- chatUnavailableMessage: lang.chatUnavailableMessage,
445
- newSessionButton: lang.newSessionButton,
446
- expiredMessage: lang.expiredMessage,
447
- dropOverlayText: lang.dropOverlayText,
448
- }, { controller }, { activeBreakpoint: globalTheme?.activeBreakpoint });
449
- const messagesEndRef = (0, hooks_1.useRef)(null);
450
- const messagesContainerRef = (0, hooks_1.useRef)(null);
451
- const headerRef = (0, hooks_1.useRef)(null);
452
- const footerRef = (0, hooks_1.useRef)(null);
453
- const chatRef = (0, hooks_1.useRef)(null);
454
- const [mobileProductInfoOpen, setMobileProductInfoOpen] = (0, hooks_1.useState)(false);
455
- const [footerHeight, setFooterHeight] = (0, hooks_1.useState)(0);
456
- const dropEnabled = store.features.imageSearch.enabled && !store.loading && !store.blocked && !store.currentChat?.sessionLimitReached;
457
- const { fileInputRef, isDraggingFile, dragHandlers } = (0, useChatFileUpload_1.useChatFileUpload)({
458
- enabled: !!dropEnabled,
459
- onUpload: (files) => controller.upload(files),
460
- });
461
- // productQuery messages are filtered out of the main chat render (they only drive the side-chat panel),
462
- // so don't auto-scroll when one is added — otherwise clicking a product in the side chat scrolls the main thread.
463
- const visibleChat = (store.currentChat?.chat || []).filter((m) => m.messageType !== 'productQuery');
464
- const visibleChatLength = visibleChat.length;
465
- const lastVisibleMessage = visibleChat[visibleChat.length - 1];
466
- const { showNewMessages, setShowNewMessages, messagesOverflow, scrollToBottom, scrollToBottomIfNear } = (0, useChatOverflow_1.useChatOverflow)({
467
- messagesContainerRef,
468
- headerRef,
469
- open: store.open,
470
- loading: store.loading,
471
- visibleChatLength,
472
- lastVisibleMessage,
473
- });
474
- // Re-focus the chat input on desktop after a search completes.
475
- // The input is disabled while loading, which causes the browser to drop focus.
476
- // On mobile we intentionally skip this so the virtual keyboard dismisses.
477
- // Only fire on the loading true → false transition — running on mount steals
478
- // focus away from the Storybook controls whenever the story re-renders.
479
- const prevLoadingRef = (0, hooks_1.useRef)(store.loading);
480
- (0, hooks_1.useEffect)(() => {
481
- if (prevLoadingRef.current && !store.loading && !isMobile && store.open) {
482
- controller.focusInput();
483
- }
484
- prevLoadingRef.current = store.loading;
485
- }, [store.loading]);
486
- const activeMessage = store.currentChat?.activeMessage;
487
- // On mobile, only auto-open the secondary panel for the first productComparison
488
- // message in the chat session. Subsequent comparison results show a "Show Details"
489
- // button instead (handled in MessageText via sideChatLabel toggle).
490
- const isFirstMobileComparison = (() => {
491
- if (!isMobile || activeMessage?.messageType !== 'productComparison')
492
- return true;
493
- // If the user explicitly activated a comparison (via "Show Details" or the
494
- // view-side-chat button), always allow it regardless of position in the chat
495
- if (store.currentChat?.activeMessageId)
496
- return true;
497
- const comparisonMessages = (store.currentChat?.chat || []).filter((m) => m.messageType === 'productComparison');
498
- return comparisonMessages.length <= 1;
499
- })();
500
- const sideChatTypes = isMobile
501
- ? ['inspirationResult', ...(isFirstMobileComparison ? ['productComparison'] : []), ...(mobileProductInfoOpen ? ['productQuery'] : [])]
502
- : ['inspirationResult', 'productComparison', 'productQuery'];
503
- // productQuery panels are additionally driven by the chat quickview store — the controller's
504
- // `show()` opening the store is what opens the window, and `close()` is what dismisses it
505
- const quickviewOpen = Boolean(controller.quickviewManager?.store.isOpen);
506
- const shouldShowSideChat = activeMessage &&
507
- sideChatTypes.includes(activeMessage?.messageType) &&
508
- store.currentChat?.dismissedSideChatMessageId !== activeMessage.id &&
509
- (activeMessage.messageType !== 'productQuery' || quickviewOpen);
510
- const hasSideChat = !!shouldShowSideChat;
511
- // Lock body scrolling (wheel + touch) to the chat while it is open. Mobile only —
512
- // on desktop the chat is a side panel and the page behind it stays scrollable.
513
- (0, useChatScrollLock_1.useChatScrollLock)({ open: store.open && isMobile, chatRef });
514
- // Close chat on Escape key (or dismiss side chat first when it's open)
515
- (0, hooks_1.useEffect)(() => {
516
- if (!store.open)
517
- return;
518
- const onKeyDown = (e) => {
519
- if (e.key !== 'Escape')
520
- return;
521
- if (store.currentChat?.activeMessage && shouldShowSideChat) {
522
- // dismiss through the controller so the product quickview closes with the window
523
- controller.dismissSideChat();
524
- }
525
- else {
526
- controller.handlers.button.click();
527
- }
528
- };
529
- document.addEventListener('keydown', onKeyDown);
530
- return () => document.removeEventListener('keydown', onKeyDown);
531
- }, [store.open, shouldShowSideChat]);
532
- // Track the primary footer height so the mobile secondary panel can sit above it
533
- (0, hooks_1.useEffect)(() => {
534
- const el = footerRef.current;
535
- if (!el)
536
- return;
537
- const observer = new ResizeObserver((entries) => {
538
- for (const entry of entries) {
539
- setFooterHeight(entry.borderBoxSize?.[0]?.blockSize ?? entry.target.getBoundingClientRect().height);
540
- }
541
- });
542
- observer.observe(el);
543
- return () => observer.disconnect();
544
- }, [store.open, store.currentChat?.isExpired]);
545
- if (controller.store.chatEnabled) {
546
- wasVisibleRef.current = true;
547
- }
548
- // Dismiss the secondary panel and clear any product attachments tied to the side-chat
549
- // (discuss product flow), while preserving productSimilar/productComparison attachments.
550
- const dismissSideChat = () => {
551
- const productAttachmentsToRemove = (store.currentChat?.attachments.attached || []).filter((item) => item.type === 'product' &&
552
- item.requestType !== 'productSimilar' &&
553
- item.requestType !== 'productComparison');
554
- productAttachmentsToRemove.forEach((item) => store.currentChat?.attachments.remove(item.id));
555
- setMobileProductInfoOpen(false);
556
- // dismiss through the controller so the product quickview closes with the window
557
- controller.dismissSideChat();
558
- };
559
- const requestType = store.currentChat?.requestType;
560
- const loadingVerbLangKey = requestType ? LOADING_VERB_LANG_KEYS[requestType] : undefined;
561
- const loadingVerbs = loadingVerbLangKey
562
- ? (0, Chat_lang_1.langTextOf)(lang[loadingVerbLangKey])
563
- ?.split(',')
564
- .map((verb) => verb.trim())
565
- .filter(Boolean)
566
- : undefined;
567
- const isWelcomeState = (!store.currentChat?.chat || store.currentChat.chat.length === 0) && !!store.welcomeMessage && !store.currentChat?.isExpired;
568
- // props inherited by every extracted chat sub-component
569
- const inheritedProps = {
570
- disableStyles,
571
- theme: props.theme,
572
- treePath,
573
- lang: props.lang,
574
- };
575
- const primaryColors = {
576
- primaryColorBg: colorPrimary,
577
- primaryColorFg: colorPrimaryText,
578
- };
579
- const subProps = {
580
- history: { ...inheritedProps },
581
- sideChat: { ...inheritedProps, ...primaryColors },
582
- messages: {
583
- ...inheritedProps,
584
- ...primaryColors,
585
- primaryAccentColorBg: colorPrimaryAccent,
586
- primaryAccentColorFg: colorPrimaryAccentText,
587
- hideMessageTypeIndicatorText,
588
- buttonBelowMessage,
589
- },
590
- sessionFeedback: { ...inheritedProps, ...primaryColors },
591
- comparisonsTray: { ...inheritedProps, ...primaryColors },
592
- facetsBar: { ...inheritedProps, ...primaryColors },
593
- attachments: { ...inheritedProps },
594
- topicDrift: { ...inheritedProps, ...primaryColors },
595
- composer: { ...inheritedProps, ...primaryColors, poweredByText, privacyPolicyUrl },
596
- loadingIndicator: { disableStyles, theme: props.theme, treePath },
597
- };
598
- const styling = (0, utilities_1.mergeStyles)({ ...props, mobile: isMobile, hasSideChat, footerHeight, position: chatPosition }, defaultStyles);
599
- // Hide the widget entirely when chat is disabled at bootstrap (silent disable).
600
- // When chat becomes disabled mid-session, keep the widget mounted so the footer
601
- // unavailable message stays visible (with the input disabled).
602
- if (!controller.store.chatEnabled && !wasVisibleRef.current) {
603
- return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {});
604
- }
605
- if (!shouldRenderDefault) {
606
- return overrideElement;
607
- }
608
- 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', {
609
- 'ss__chat--open': store.open,
610
- 'ss__chat--minimized': !store.open,
611
- 'ss__chat--mobile': isMobile,
612
- 'ss__chat--welcome': isWelcomeState,
613
- }, 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: () => {
614
- controller.openChat(question);
615
- }, 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',
616
- // On mobile, interacting with the primary chat (header or anywhere within)
617
- // dismisses the secondary panel. Capture phase so it fires even when an
618
- // inner control stops propagation.
619
- 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 || (0, Chat_lang_1.langAttrOf)(lang.headerLogo, 'alt') || '' })) : 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', {
620
- 'ss__chat__content__header--overlay': messagesOverflow,
621
- }), 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: () => {
622
- if (isMobile && mobileProductInfoOpen) {
623
- setMobileProductInfoOpen(false);
624
- }
625
- } }), 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: () => {
626
- controller.store.createChat();
627
- }, 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() })] }) }));
628
- });