@athoscommerce/snap-preact 1.12.1-beta.152 → 1.13.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 (421) hide show
  1. package/dist/cjs/components/src/components/Atoms/Dropdown/Dropdown.js +11 -56
  2. package/dist/cjs/components/src/components/Atoms/Icon/paths.js +0 -13
  3. package/dist/cjs/components/src/components/Atoms/Price/Price.js +2 -2
  4. package/dist/cjs/components/src/components/Molecules/CustomComponentWrapper/CustomComponentWrapper.js +1 -1
  5. package/dist/cjs/components/src/components/Molecules/Result/Result.js +4 -51
  6. package/dist/cjs/components/src/components/Molecules/SearchInput/SearchInput.js +2 -28
  7. package/dist/cjs/components/src/components/Molecules/Slideout/Slideout.js +28 -24
  8. package/dist/cjs/components/src/components/Molecules/Slideshow/Slideshow.js +59 -34
  9. package/dist/cjs/components/src/components/Organisms/AutocompleteLayout/AutocompleteLayout.js +13 -8
  10. package/dist/cjs/components/src/components/Organisms/QuickviewLayout/QuickviewLayout.js +13 -8
  11. package/dist/cjs/components/src/components/Organisms/Results/Results.js +1 -1
  12. package/dist/cjs/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.js +0 -5
  13. package/dist/cjs/components/src/components/Templates/AutocompleteModal/AutocompleteModal.js +0 -5
  14. package/dist/cjs/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.js +0 -5
  15. package/dist/cjs/components/src/hooks/useLayoutOptions.js +19 -14
  16. package/dist/cjs/components/src/index.js +1 -17
  17. package/dist/cjs/components/src/providers/themeComponents.js +0 -20
  18. package/dist/cjs/components/src/themes/base/components/templates/index.js +0 -10
  19. package/dist/cjs/components/src/themes/bocachica/components/templates/index.js +0 -10
  20. package/dist/cjs/components/src/themes/pike/components/templates/index.js +0 -10
  21. package/dist/cjs/components/src/themes/snapnco/components/templates/index.js +0 -10
  22. package/dist/cjs/components/src/themes/snappy/components/templates/index.js +0 -10
  23. package/dist/cjs/components/src/utilities/Colour/Colour.js +0 -41
  24. package/dist/cjs/components/src/utilities/mergeProps.js +647 -184
  25. package/dist/cjs/components/src/utilities/snapify.js +0 -27
  26. package/dist/cjs/src/Snap.js +1 -71
  27. package/dist/cjs/src/Templates/SnapTemplates.js +21 -107
  28. package/dist/cjs/src/Templates/Stores/LibraryStore.js +3 -51
  29. package/dist/cjs/src/Templates/Stores/TemplateStore.js +40 -11
  30. package/dist/cjs/src/Templates/Stores/ThemeStore.js +125 -32
  31. package/dist/cjs/src/Templates/Stores/library/currencies/currencies.js +52 -29
  32. package/dist/cjs/src/Templates/Stores/library/languages/ar.js +0 -474
  33. package/dist/cjs/src/Templates/Stores/library/languages/de.js +0 -474
  34. package/dist/cjs/src/Templates/Stores/library/languages/es.js +0 -479
  35. package/dist/cjs/src/Templates/Stores/library/languages/fr.js +0 -479
  36. package/dist/cjs/src/Templates/Stores/library/languages/hi.js +0 -474
  37. package/dist/cjs/src/Templates/Stores/library/languages/it.js +0 -474
  38. package/dist/cjs/src/Templates/Stores/library/languages/ja.js +0 -474
  39. package/dist/cjs/src/Templates/Stores/library/languages/ko.js +0 -474
  40. package/dist/cjs/src/Templates/Stores/library/languages/nl.js +0 -474
  41. package/dist/cjs/src/Templates/Stores/library/languages/pt.js +0 -474
  42. package/dist/cjs/src/Templates/Stores/library/languages/ru.js +0 -474
  43. package/dist/cjs/src/Templates/Stores/library/languages/tr.js +0 -474
  44. package/dist/cjs/src/Templates/Stores/library/languages/vi.js +0 -474
  45. package/dist/cjs/src/Templates/Stores/library/languages/zh.js +0 -474
  46. package/dist/cjs/src/Templates/Stores/library/plugins/shopify/pluginCurrency.js +5 -0
  47. package/dist/cjs/src/create/index.js +1 -3
  48. package/dist/cjs/src/setupEvents.js +0 -44
  49. package/dist/cjs/src/utils/index.js +1 -3
  50. package/dist/esm/components/src/components/Atoms/Button/Button.d.ts +1 -3
  51. package/dist/esm/components/src/components/Atoms/Button/Button.d.ts.map +1 -1
  52. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.d.ts +1 -6
  53. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.d.ts.map +1 -1
  54. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.js +12 -57
  55. package/dist/esm/components/src/components/Atoms/Icon/paths.d.ts +0 -13
  56. package/dist/esm/components/src/components/Atoms/Icon/paths.d.ts.map +1 -1
  57. package/dist/esm/components/src/components/Atoms/Icon/paths.js +0 -13
  58. package/dist/esm/components/src/components/Atoms/Price/Price.d.ts +2 -0
  59. package/dist/esm/components/src/components/Atoms/Price/Price.d.ts.map +1 -1
  60. package/dist/esm/components/src/components/Atoms/Price/Price.js +2 -2
  61. package/dist/esm/components/src/components/Molecules/CustomComponentWrapper/CustomComponentWrapper.d.ts.map +1 -1
  62. package/dist/esm/components/src/components/Molecules/CustomComponentWrapper/CustomComponentWrapper.js +1 -1
  63. package/dist/esm/components/src/components/Molecules/OverlayBadge/OverlayBadge.d.ts +2 -2
  64. package/dist/esm/components/src/components/Molecules/OverlayBadge/OverlayBadge.d.ts.map +1 -1
  65. package/dist/esm/components/src/components/Molecules/Result/Result.d.ts +3 -7
  66. package/dist/esm/components/src/components/Molecules/Result/Result.d.ts.map +1 -1
  67. package/dist/esm/components/src/components/Molecules/Result/Result.js +4 -51
  68. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.d.ts +0 -3
  69. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.d.ts.map +1 -1
  70. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.js +2 -28
  71. package/dist/esm/components/src/components/Molecules/Select/Select.d.ts +2 -2
  72. package/dist/esm/components/src/components/Molecules/Select/Select.d.ts.map +1 -1
  73. package/dist/esm/components/src/components/Molecules/Slideout/Slideout.d.ts.map +1 -1
  74. package/dist/esm/components/src/components/Molecules/Slideout/Slideout.js +29 -25
  75. package/dist/esm/components/src/components/Molecules/Slideshow/Slideshow.d.ts +1 -0
  76. package/dist/esm/components/src/components/Molecules/Slideshow/Slideshow.d.ts.map +1 -1
  77. package/dist/esm/components/src/components/Molecules/Slideshow/Slideshow.js +59 -34
  78. package/dist/esm/components/src/components/Organisms/AutocompleteLayout/AutocompleteLayout.d.ts.map +1 -1
  79. package/dist/esm/components/src/components/Organisms/AutocompleteLayout/AutocompleteLayout.js +13 -8
  80. package/dist/esm/components/src/components/Organisms/QuickviewLayout/QuickviewLayout.d.ts.map +1 -1
  81. package/dist/esm/components/src/components/Organisms/QuickviewLayout/QuickviewLayout.js +13 -8
  82. package/dist/esm/components/src/components/Organisms/Results/Results.js +1 -1
  83. package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.d.ts.map +1 -1
  84. package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.js +0 -5
  85. package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts.map +1 -1
  86. package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.js +0 -5
  87. package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.d.ts.map +1 -1
  88. package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.js +0 -5
  89. package/dist/esm/components/src/hooks/useLayoutOptions.d.ts.map +1 -1
  90. package/dist/esm/components/src/hooks/useLayoutOptions.js +19 -14
  91. package/dist/esm/components/src/index.d.ts +0 -14
  92. package/dist/esm/components/src/index.d.ts.map +1 -1
  93. package/dist/esm/components/src/index.js +0 -14
  94. package/dist/esm/components/src/providers/langComponents.d.ts +5 -20
  95. package/dist/esm/components/src/providers/langComponents.d.ts.map +1 -1
  96. package/dist/esm/components/src/providers/themeComponents.d.ts +215 -396
  97. package/dist/esm/components/src/providers/themeComponents.d.ts.map +1 -1
  98. package/dist/esm/components/src/providers/themeComponents.js +0 -20
  99. package/dist/esm/components/src/providers/withTracking.d.ts +2 -2
  100. package/dist/esm/components/src/providers/withTracking.d.ts.map +1 -1
  101. package/dist/esm/components/src/themes/base/components/templates/index.d.ts.map +1 -1
  102. package/dist/esm/components/src/themes/base/components/templates/index.js +0 -10
  103. package/dist/esm/components/src/themes/bocachica/components/templates/index.d.ts.map +1 -1
  104. package/dist/esm/components/src/themes/bocachica/components/templates/index.js +0 -10
  105. package/dist/esm/components/src/themes/pike/components/templates/index.d.ts.map +1 -1
  106. package/dist/esm/components/src/themes/pike/components/templates/index.js +0 -10
  107. package/dist/esm/components/src/themes/snapnco/components/templates/index.d.ts.map +1 -1
  108. package/dist/esm/components/src/themes/snapnco/components/templates/index.js +0 -10
  109. package/dist/esm/components/src/themes/snappy/components/templates/index.d.ts.map +1 -1
  110. package/dist/esm/components/src/themes/snappy/components/templates/index.js +0 -10
  111. package/dist/esm/components/src/utilities/Colour/Colour.d.ts +0 -15
  112. package/dist/esm/components/src/utilities/Colour/Colour.d.ts.map +1 -1
  113. package/dist/esm/components/src/utilities/Colour/Colour.js +0 -41
  114. package/dist/esm/components/src/utilities/mergeProps.d.ts +11 -0
  115. package/dist/esm/components/src/utilities/mergeProps.d.ts.map +1 -1
  116. package/dist/esm/components/src/utilities/mergeProps.js +647 -184
  117. package/dist/esm/components/src/utilities/snapify.d.ts +2 -3
  118. package/dist/esm/components/src/utilities/snapify.d.ts.map +1 -1
  119. package/dist/esm/components/src/utilities/snapify.js +2 -29
  120. package/dist/esm/src/Snap.d.ts +1 -2
  121. package/dist/esm/src/Snap.d.ts.map +1 -1
  122. package/dist/esm/src/Snap.js +2 -72
  123. package/dist/esm/src/Templates/SnapTemplates.d.ts +33 -21
  124. package/dist/esm/src/Templates/SnapTemplates.d.ts.map +1 -1
  125. package/dist/esm/src/Templates/SnapTemplates.js +21 -105
  126. package/dist/esm/src/Templates/Stores/LibraryStore.d.ts +7 -43
  127. package/dist/esm/src/Templates/Stores/LibraryStore.d.ts.map +1 -1
  128. package/dist/esm/src/Templates/Stores/LibraryStore.js +3 -51
  129. package/dist/esm/src/Templates/Stores/TemplateStore.d.ts +15 -25
  130. package/dist/esm/src/Templates/Stores/TemplateStore.d.ts.map +1 -1
  131. package/dist/esm/src/Templates/Stores/TemplateStore.js +34 -11
  132. package/dist/esm/src/Templates/Stores/ThemeStore.d.ts +5 -2
  133. package/dist/esm/src/Templates/Stores/ThemeStore.d.ts.map +1 -1
  134. package/dist/esm/src/Templates/Stores/ThemeStore.js +125 -32
  135. package/dist/esm/src/Templates/Stores/library/currencies/currencies.d.ts +27 -0
  136. package/dist/esm/src/Templates/Stores/library/currencies/currencies.d.ts.map +1 -1
  137. package/dist/esm/src/Templates/Stores/library/currencies/currencies.js +52 -29
  138. package/dist/esm/src/Templates/Stores/library/languages/ar.d.ts.map +1 -1
  139. package/dist/esm/src/Templates/Stores/library/languages/ar.js +0 -474
  140. package/dist/esm/src/Templates/Stores/library/languages/de.d.ts.map +1 -1
  141. package/dist/esm/src/Templates/Stores/library/languages/de.js +0 -474
  142. package/dist/esm/src/Templates/Stores/library/languages/es.d.ts.map +1 -1
  143. package/dist/esm/src/Templates/Stores/library/languages/es.js +0 -479
  144. package/dist/esm/src/Templates/Stores/library/languages/fr.d.ts.map +1 -1
  145. package/dist/esm/src/Templates/Stores/library/languages/fr.js +0 -479
  146. package/dist/esm/src/Templates/Stores/library/languages/hi.d.ts.map +1 -1
  147. package/dist/esm/src/Templates/Stores/library/languages/hi.js +0 -474
  148. package/dist/esm/src/Templates/Stores/library/languages/it.d.ts.map +1 -1
  149. package/dist/esm/src/Templates/Stores/library/languages/it.js +0 -474
  150. package/dist/esm/src/Templates/Stores/library/languages/ja.d.ts.map +1 -1
  151. package/dist/esm/src/Templates/Stores/library/languages/ja.js +0 -474
  152. package/dist/esm/src/Templates/Stores/library/languages/ko.d.ts.map +1 -1
  153. package/dist/esm/src/Templates/Stores/library/languages/ko.js +0 -474
  154. package/dist/esm/src/Templates/Stores/library/languages/nl.d.ts.map +1 -1
  155. package/dist/esm/src/Templates/Stores/library/languages/nl.js +0 -474
  156. package/dist/esm/src/Templates/Stores/library/languages/pt.d.ts.map +1 -1
  157. package/dist/esm/src/Templates/Stores/library/languages/pt.js +0 -474
  158. package/dist/esm/src/Templates/Stores/library/languages/ru.d.ts.map +1 -1
  159. package/dist/esm/src/Templates/Stores/library/languages/ru.js +0 -474
  160. package/dist/esm/src/Templates/Stores/library/languages/tr.d.ts.map +1 -1
  161. package/dist/esm/src/Templates/Stores/library/languages/tr.js +0 -474
  162. package/dist/esm/src/Templates/Stores/library/languages/vi.d.ts.map +1 -1
  163. package/dist/esm/src/Templates/Stores/library/languages/vi.js +0 -474
  164. package/dist/esm/src/Templates/Stores/library/languages/zh.d.ts.map +1 -1
  165. package/dist/esm/src/Templates/Stores/library/languages/zh.js +0 -474
  166. package/dist/esm/src/Templates/Stores/library/plugins/shopify/pluginCurrency.d.ts +2 -0
  167. package/dist/esm/src/Templates/Stores/library/plugins/shopify/pluginCurrency.d.ts.map +1 -0
  168. package/dist/esm/src/Templates/Stores/library/plugins/shopify/pluginCurrency.js +1 -0
  169. package/dist/esm/src/create/index.d.ts +0 -1
  170. package/dist/esm/src/create/index.d.ts.map +1 -1
  171. package/dist/esm/src/create/index.js +0 -1
  172. package/dist/esm/src/setupEvents.d.ts +0 -13
  173. package/dist/esm/src/setupEvents.d.ts.map +1 -1
  174. package/dist/esm/src/setupEvents.js +0 -44
  175. package/dist/esm/src/types.d.ts +3 -13
  176. package/dist/esm/src/types.d.ts.map +1 -1
  177. package/dist/esm/src/utils/index.d.ts +0 -1
  178. package/dist/esm/src/utils/index.d.ts.map +1 -1
  179. package/dist/esm/src/utils/index.js +0 -1
  180. package/eslint/src/validate-config.cjs +520 -0
  181. package/package.json +13 -15
  182. package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.js +0 -99
  183. package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/index.js +0 -17
  184. package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.js +0 -221
  185. package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/index.js +0 -17
  186. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.js +0 -209
  187. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/index.js +0 -17
  188. package/dist/cjs/components/src/components/Molecules/ChatMessageText/ChatMessageText.js +0 -258
  189. package/dist/cjs/components/src/components/Molecules/ChatMessageText/index.js +0 -17
  190. package/dist/cjs/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.js +0 -282
  191. package/dist/cjs/components/src/components/Molecules/ChatMessageUser/index.js +0 -17
  192. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.js +0 -173
  193. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/index.js +0 -17
  194. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.js +0 -577
  195. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/index.js +0 -17
  196. package/dist/cjs/components/src/components/Molecules/ChatResult/ChatResult.js +0 -252
  197. package/dist/cjs/components/src/components/Molecules/ChatResult/index.js +0 -17
  198. package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.js +0 -113
  199. package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/index.js +0 -17
  200. package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.js +0 -107
  201. package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/index.js +0 -17
  202. package/dist/cjs/components/src/components/Organisms/Chat/Chat.js +0 -621
  203. package/dist/cjs/components/src/components/Organisms/Chat/Chat.lang.js +0 -105
  204. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatAttachments.js +0 -104
  205. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatComparisonsTray.js +0 -161
  206. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatComposer.js +0 -166
  207. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatFacetsBar.js +0 -369
  208. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatHistory.js +0 -130
  209. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatMessages.js +0 -218
  210. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatSessionFeedback.js +0 -123
  211. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatSideChat.js +0 -173
  212. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatTopicDrift.js +0 -149
  213. package/dist/cjs/components/src/components/Organisms/Chat/components/chatAccentTheme.js +0 -60
  214. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatFileUpload.js +0 -66
  215. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatGestures.js +0 -96
  216. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatOverflow.js +0 -113
  217. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatScrollLock.js +0 -135
  218. package/dist/cjs/components/src/components/Organisms/Chat/index.js +0 -18
  219. package/dist/cjs/components/src/components/Organisms/ChatButton/ChatButton.js +0 -94
  220. package/dist/cjs/components/src/components/Organisms/ChatButton/ChatButton.lang.js +0 -11
  221. package/dist/cjs/components/src/components/Organisms/ChatButton/index.js +0 -18
  222. package/dist/cjs/components/src/components/Templates/Chat/Chat.js +0 -47
  223. package/dist/cjs/components/src/components/Templates/Chat/index.js +0 -17
  224. package/dist/cjs/components/src/components/Templates/ChatButton/ChatButton.js +0 -47
  225. package/dist/cjs/components/src/components/Templates/ChatButton/index.js +0 -17
  226. package/dist/cjs/components/src/themes/base/components/templates/chat.js +0 -6
  227. package/dist/cjs/components/src/themes/base/components/templates/chatButton.js +0 -6
  228. package/dist/cjs/components/src/themes/bocachica/components/templates/chat.js +0 -6
  229. package/dist/cjs/components/src/themes/bocachica/components/templates/chatButton.js +0 -6
  230. package/dist/cjs/components/src/themes/pike/components/templates/chat.js +0 -6
  231. package/dist/cjs/components/src/themes/pike/components/templates/chatButton.js +0 -6
  232. package/dist/cjs/components/src/themes/snapnco/components/templates/chat.js +0 -6
  233. package/dist/cjs/components/src/themes/snapnco/components/templates/chatButton.js +0 -6
  234. package/dist/cjs/components/src/themes/snappy/components/templates/chat.js +0 -6
  235. package/dist/cjs/components/src/themes/snappy/components/templates/chatButton.js +0 -6
  236. package/dist/cjs/components/src/themes/themeComponents/chat.js +0 -14
  237. package/dist/cjs/components/src/themes/themeComponents/chatButton.js +0 -9
  238. package/dist/cjs/src/Templates/Stores/library/components/Chat.js +0 -5
  239. package/dist/cjs/src/Templates/Stores/library/components/ChatButton.js +0 -5
  240. package/dist/cjs/src/create/createChatController.js +0 -30
  241. package/dist/cjs/src/utils/applyChatTargetInject.js +0 -25
  242. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts +0 -17
  243. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts.map +0 -1
  244. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.js +0 -92
  245. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts +0 -2
  246. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts.map +0 -1
  247. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.js +0 -1
  248. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.d.ts +0 -30
  249. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.d.ts.map +0 -1
  250. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.js +0 -215
  251. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.d.ts +0 -2
  252. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.d.ts.map +0 -1
  253. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.js +0 -1
  254. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts +0 -19
  255. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts.map +0 -1
  256. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.js +0 -203
  257. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts +0 -2
  258. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts.map +0 -1
  259. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.js +0 -1
  260. package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.d.ts +0 -36
  261. package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.d.ts.map +0 -1
  262. package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.js +0 -252
  263. package/dist/esm/components/src/components/Molecules/ChatMessageText/index.d.ts +0 -2
  264. package/dist/esm/components/src/components/Molecules/ChatMessageText/index.d.ts.map +0 -1
  265. package/dist/esm/components/src/components/Molecules/ChatMessageText/index.js +0 -1
  266. package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.d.ts +0 -38
  267. package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.d.ts.map +0 -1
  268. package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.js +0 -276
  269. package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.d.ts +0 -2
  270. package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.d.ts.map +0 -1
  271. package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.js +0 -1
  272. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts +0 -19
  273. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts.map +0 -1
  274. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.js +0 -167
  275. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts +0 -2
  276. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts.map +0 -1
  277. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.js +0 -1
  278. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts +0 -38
  279. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts.map +0 -1
  280. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.js +0 -571
  281. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts +0 -2
  282. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts.map +0 -1
  283. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.js +0 -1
  284. package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.d.ts +0 -35
  285. package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.d.ts.map +0 -1
  286. package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.js +0 -246
  287. package/dist/esm/components/src/components/Molecules/ChatResult/index.d.ts +0 -2
  288. package/dist/esm/components/src/components/Molecules/ChatResult/index.d.ts.map +0 -1
  289. package/dist/esm/components/src/components/Molecules/ChatResult/index.js +0 -1
  290. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.d.ts +0 -24
  291. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.d.ts.map +0 -1
  292. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.js +0 -107
  293. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.d.ts +0 -2
  294. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.d.ts.map +0 -1
  295. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.js +0 -1
  296. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.d.ts +0 -16
  297. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.d.ts.map +0 -1
  298. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.js +0 -101
  299. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.d.ts +0 -2
  300. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.d.ts.map +0 -1
  301. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.js +0 -1
  302. package/dist/esm/components/src/components/Organisms/Chat/Chat.d.ts +0 -41
  303. package/dist/esm/components/src/components/Organisms/Chat/Chat.d.ts.map +0 -1
  304. package/dist/esm/components/src/components/Organisms/Chat/Chat.js +0 -615
  305. package/dist/esm/components/src/components/Organisms/Chat/Chat.lang.d.ts +0 -76
  306. package/dist/esm/components/src/components/Organisms/Chat/Chat.lang.d.ts.map +0 -1
  307. package/dist/esm/components/src/components/Organisms/Chat/Chat.lang.js +0 -100
  308. package/dist/esm/components/src/components/Organisms/Chat/components/ChatAttachments.d.ts +0 -26
  309. package/dist/esm/components/src/components/Organisms/Chat/components/ChatAttachments.d.ts.map +0 -1
  310. package/dist/esm/components/src/components/Organisms/Chat/components/ChatAttachments.js +0 -98
  311. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComparisonsTray.d.ts +0 -13
  312. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComparisonsTray.d.ts.map +0 -1
  313. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComparisonsTray.js +0 -155
  314. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComposer.d.ts +0 -19
  315. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComposer.d.ts.map +0 -1
  316. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComposer.js +0 -160
  317. package/dist/esm/components/src/components/Organisms/Chat/components/ChatFacetsBar.d.ts +0 -18
  318. package/dist/esm/components/src/components/Organisms/Chat/components/ChatFacetsBar.d.ts.map +0 -1
  319. package/dist/esm/components/src/components/Organisms/Chat/components/ChatFacetsBar.js +0 -363
  320. package/dist/esm/components/src/components/Organisms/Chat/components/ChatHistory.d.ts +0 -11
  321. package/dist/esm/components/src/components/Organisms/Chat/components/ChatHistory.d.ts.map +0 -1
  322. package/dist/esm/components/src/components/Organisms/Chat/components/ChatHistory.js +0 -124
  323. package/dist/esm/components/src/components/Organisms/Chat/components/ChatMessages.d.ts +0 -30
  324. package/dist/esm/components/src/components/Organisms/Chat/components/ChatMessages.d.ts.map +0 -1
  325. package/dist/esm/components/src/components/Organisms/Chat/components/ChatMessages.js +0 -212
  326. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSessionFeedback.d.ts +0 -13
  327. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSessionFeedback.d.ts.map +0 -1
  328. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSessionFeedback.js +0 -117
  329. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSideChat.d.ts +0 -19
  330. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSideChat.d.ts.map +0 -1
  331. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSideChat.js +0 -167
  332. package/dist/esm/components/src/components/Organisms/Chat/components/ChatTopicDrift.d.ts +0 -14
  333. package/dist/esm/components/src/components/Organisms/Chat/components/ChatTopicDrift.d.ts.map +0 -1
  334. package/dist/esm/components/src/components/Organisms/Chat/components/ChatTopicDrift.js +0 -143
  335. package/dist/esm/components/src/components/Organisms/Chat/components/chatAccentTheme.d.ts +0 -15
  336. package/dist/esm/components/src/components/Organisms/Chat/components/chatAccentTheme.d.ts.map +0 -1
  337. package/dist/esm/components/src/components/Organisms/Chat/components/chatAccentTheme.js +0 -56
  338. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.d.ts +0 -32
  339. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.d.ts.map +0 -1
  340. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.js +0 -62
  341. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.d.ts +0 -40
  342. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.d.ts.map +0 -1
  343. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.js +0 -92
  344. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.d.ts +0 -43
  345. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.d.ts.map +0 -1
  346. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.js +0 -109
  347. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatScrollLock.d.ts +0 -26
  348. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatScrollLock.d.ts.map +0 -1
  349. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatScrollLock.js +0 -131
  350. package/dist/esm/components/src/components/Organisms/Chat/index.d.ts +0 -3
  351. package/dist/esm/components/src/components/Organisms/Chat/index.d.ts.map +0 -1
  352. package/dist/esm/components/src/components/Organisms/Chat/index.js +0 -2
  353. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.d.ts +0 -18
  354. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.d.ts.map +0 -1
  355. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.js +0 -88
  356. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.lang.d.ts +0 -7
  357. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.lang.d.ts.map +0 -1
  358. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.lang.js +0 -8
  359. package/dist/esm/components/src/components/Organisms/ChatButton/index.d.ts +0 -3
  360. package/dist/esm/components/src/components/Organisms/ChatButton/index.d.ts.map +0 -1
  361. package/dist/esm/components/src/components/Organisms/ChatButton/index.js +0 -2
  362. package/dist/esm/components/src/components/Templates/Chat/Chat.d.ts +0 -12
  363. package/dist/esm/components/src/components/Templates/Chat/Chat.d.ts.map +0 -1
  364. package/dist/esm/components/src/components/Templates/Chat/Chat.js +0 -41
  365. package/dist/esm/components/src/components/Templates/Chat/index.d.ts +0 -2
  366. package/dist/esm/components/src/components/Templates/Chat/index.d.ts.map +0 -1
  367. package/dist/esm/components/src/components/Templates/Chat/index.js +0 -1
  368. package/dist/esm/components/src/components/Templates/ChatButton/ChatButton.d.ts +0 -13
  369. package/dist/esm/components/src/components/Templates/ChatButton/ChatButton.d.ts.map +0 -1
  370. package/dist/esm/components/src/components/Templates/ChatButton/ChatButton.js +0 -41
  371. package/dist/esm/components/src/components/Templates/ChatButton/index.d.ts +0 -2
  372. package/dist/esm/components/src/components/Templates/ChatButton/index.d.ts.map +0 -1
  373. package/dist/esm/components/src/components/Templates/ChatButton/index.js +0 -1
  374. package/dist/esm/components/src/themes/base/components/templates/chat.d.ts +0 -4
  375. package/dist/esm/components/src/themes/base/components/templates/chat.d.ts.map +0 -1
  376. package/dist/esm/components/src/themes/base/components/templates/chat.js +0 -3
  377. package/dist/esm/components/src/themes/base/components/templates/chatButton.d.ts +0 -4
  378. package/dist/esm/components/src/themes/base/components/templates/chatButton.d.ts.map +0 -1
  379. package/dist/esm/components/src/themes/base/components/templates/chatButton.js +0 -3
  380. package/dist/esm/components/src/themes/bocachica/components/templates/chat.d.ts +0 -4
  381. package/dist/esm/components/src/themes/bocachica/components/templates/chat.d.ts.map +0 -1
  382. package/dist/esm/components/src/themes/bocachica/components/templates/chat.js +0 -3
  383. package/dist/esm/components/src/themes/bocachica/components/templates/chatButton.d.ts +0 -4
  384. package/dist/esm/components/src/themes/bocachica/components/templates/chatButton.d.ts.map +0 -1
  385. package/dist/esm/components/src/themes/bocachica/components/templates/chatButton.js +0 -3
  386. package/dist/esm/components/src/themes/pike/components/templates/chat.d.ts +0 -4
  387. package/dist/esm/components/src/themes/pike/components/templates/chat.d.ts.map +0 -1
  388. package/dist/esm/components/src/themes/pike/components/templates/chat.js +0 -3
  389. package/dist/esm/components/src/themes/pike/components/templates/chatButton.d.ts +0 -4
  390. package/dist/esm/components/src/themes/pike/components/templates/chatButton.d.ts.map +0 -1
  391. package/dist/esm/components/src/themes/pike/components/templates/chatButton.js +0 -3
  392. package/dist/esm/components/src/themes/snapnco/components/templates/chat.d.ts +0 -4
  393. package/dist/esm/components/src/themes/snapnco/components/templates/chat.d.ts.map +0 -1
  394. package/dist/esm/components/src/themes/snapnco/components/templates/chat.js +0 -3
  395. package/dist/esm/components/src/themes/snapnco/components/templates/chatButton.d.ts +0 -4
  396. package/dist/esm/components/src/themes/snapnco/components/templates/chatButton.d.ts.map +0 -1
  397. package/dist/esm/components/src/themes/snapnco/components/templates/chatButton.js +0 -3
  398. package/dist/esm/components/src/themes/snappy/components/templates/chat.d.ts +0 -4
  399. package/dist/esm/components/src/themes/snappy/components/templates/chat.d.ts.map +0 -1
  400. package/dist/esm/components/src/themes/snappy/components/templates/chat.js +0 -3
  401. package/dist/esm/components/src/themes/snappy/components/templates/chatButton.d.ts +0 -4
  402. package/dist/esm/components/src/themes/snappy/components/templates/chatButton.d.ts.map +0 -1
  403. package/dist/esm/components/src/themes/snappy/components/templates/chatButton.js +0 -3
  404. package/dist/esm/components/src/themes/themeComponents/chat.d.ts +0 -4
  405. package/dist/esm/components/src/themes/themeComponents/chat.d.ts.map +0 -1
  406. package/dist/esm/components/src/themes/themeComponents/chat.js +0 -11
  407. package/dist/esm/components/src/themes/themeComponents/chatButton.d.ts +0 -4
  408. package/dist/esm/components/src/themes/themeComponents/chatButton.d.ts.map +0 -1
  409. package/dist/esm/components/src/themes/themeComponents/chatButton.js +0 -6
  410. package/dist/esm/src/Templates/Stores/library/components/Chat.d.ts +0 -2
  411. package/dist/esm/src/Templates/Stores/library/components/Chat.d.ts.map +0 -1
  412. package/dist/esm/src/Templates/Stores/library/components/Chat.js +0 -1
  413. package/dist/esm/src/Templates/Stores/library/components/ChatButton.d.ts +0 -2
  414. package/dist/esm/src/Templates/Stores/library/components/ChatButton.d.ts.map +0 -1
  415. package/dist/esm/src/Templates/Stores/library/components/ChatButton.js +0 -1
  416. package/dist/esm/src/create/createChatController.d.ts +0 -5
  417. package/dist/esm/src/create/createChatController.d.ts.map +0 -1
  418. package/dist/esm/src/create/createChatController.js +0 -28
  419. package/dist/esm/src/utils/applyChatTargetInject.d.ts +0 -3
  420. package/dist/esm/src/utils/applyChatTargetInject.d.ts.map +0 -1
  421. package/dist/esm/src/utils/applyChatTargetInject.js +0 -22
@@ -1,615 +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
- poweredByText: 'Powered by Athos Commerce.',
397
- };
398
- let props = mergeProps('chat', globalTheme, defaultProps, properties);
399
- const { overrideElement, shouldRenderDefault } = useCustomComponentOverride('chat', props);
400
- const { className, internalClassName, controller, logo, title, subtitle, avatar, multiselectFacets, disableBubbleSuggestedQuestions, primaryColorBg, primaryColorFg, primaryAccentColorBg, primaryAccentColorFg, secondaryAccentColorBg, secondaryAccentColorFg, position, hideMessageTypeIndicatorText, buttonBelowMessage, poweredByText, privacyPolicyUrl, disableStyles, treePath, } = props;
401
- const colorPrimary = primaryColorBg;
402
- const colorPrimaryText = primaryColorFg;
403
- const colorPrimaryAccent = primaryAccentColorBg;
404
- const colorPrimaryAccentText = primaryAccentColorFg;
405
- const colorSecondaryAccent = secondaryAccentColorBg;
406
- const colorSecondaryAccentText = secondaryAccentColorFg;
407
- const chatPosition = position === 'left' ? 'left' : 'right';
408
- // A single-character avatar renders as a capitalized letter; a longer value renders
409
- // as an image when it's a valid image URL. Anything else renders no avatar.
410
- const avatarCharacter = avatar && avatar.length === 1 ? avatar.toUpperCase() : undefined;
411
- const avatarImage = avatar && avatar.length > 1 && isValidImageUrl(avatar) ? avatar : undefined;
412
- const { store } = controller;
413
- // The built-in bubble (and its suggested-question chips) yields to an external
414
- // launcher by default. An explicit hideBubble wins either way: `true` always
415
- // suppresses it, `false` keeps it alongside an inline ChatButton.
416
- const hideLauncher = props.hideBubble ?? store.hasExternalLauncher;
417
- // Track that the widget has been visible so a mid-session disable (status check
418
- // flips chatEnabled to false) keeps it mounted with the unavailable message
419
- // instead of vanishing. A disabled status at bootstrap still renders nothing.
420
- const wasVisibleRef = useRef(false);
421
- // Accent styling for buttons living inside child components — injected through the
422
- // theme so each child applies it via its own style pipeline (no `!important` overrides).
423
- const themeDefaults = {
424
- components: chatAccentThemeComponents({
425
- primaryAccentColorBg: colorPrimaryAccent,
426
- primaryAccentColorFg: colorPrimaryAccentText,
427
- secondaryAccentColorBg: colorSecondaryAccent,
428
- secondaryAccentColorFg: colorSecondaryAccentText,
429
- }),
430
- };
431
- // merge deeply the themeDefaults with the theme props and the displaySettings theme props (do not merge arrays, but replace them)
432
- const theme = deepmerge(themeDefaults, props?.theme || {}, { arrayMerge: (destinationArray, sourceArray) => sourceArray });
433
- props = {
434
- ...props,
435
- theme,
436
- };
437
- const lang = deepmerge(chatDefaultLang, props.lang || {});
438
- const mergedLang = useLang({
439
- chatUnavailableMessage: lang.chatUnavailableMessage,
440
- newSessionButton: lang.newSessionButton,
441
- expiredMessage: lang.expiredMessage,
442
- dropOverlayText: lang.dropOverlayText,
443
- }, { controller }, { activeBreakpoint: globalTheme?.activeBreakpoint });
444
- const messagesEndRef = useRef(null);
445
- const messagesContainerRef = useRef(null);
446
- const headerRef = useRef(null);
447
- const footerRef = useRef(null);
448
- const chatRef = useRef(null);
449
- const [mobileProductInfoOpen, setMobileProductInfoOpen] = useState(false);
450
- const [footerHeight, setFooterHeight] = useState(0);
451
- const dropEnabled = store.features.imageSearch.enabled && !store.loading && !store.blocked && !store.currentChat?.sessionLimitReached;
452
- const { fileInputRef, isDraggingFile, dragHandlers } = useChatFileUpload({
453
- enabled: !!dropEnabled,
454
- onUpload: (files) => controller.upload(files),
455
- });
456
- // productQuery messages are filtered out of the main chat render (they only drive the side-chat panel),
457
- // so don't auto-scroll when one is added — otherwise clicking a product in the side chat scrolls the main thread.
458
- const visibleChat = (store.currentChat?.chat || []).filter((m) => m.messageType !== 'productQuery');
459
- const visibleChatLength = visibleChat.length;
460
- const lastVisibleMessage = visibleChat[visibleChat.length - 1];
461
- const { showNewMessages, setShowNewMessages, messagesOverflow, scrollToBottom, scrollToBottomIfNear } = useChatOverflow({
462
- messagesContainerRef,
463
- headerRef,
464
- open: store.open,
465
- loading: store.loading,
466
- visibleChatLength,
467
- lastVisibleMessage,
468
- });
469
- // Re-focus the chat input on desktop after a search completes.
470
- // The input is disabled while loading, which causes the browser to drop focus.
471
- // On mobile we intentionally skip this so the virtual keyboard dismisses.
472
- // Only fire on the loading true → false transition — running on mount steals
473
- // focus away from the Storybook controls whenever the story re-renders.
474
- const prevLoadingRef = useRef(store.loading);
475
- useEffect(() => {
476
- if (prevLoadingRef.current && !store.loading && !isMobile && store.open) {
477
- controller.focusInput();
478
- }
479
- prevLoadingRef.current = store.loading;
480
- }, [store.loading]);
481
- const activeMessage = store.currentChat?.activeMessage;
482
- // On mobile, only auto-open the secondary panel for the first productComparison
483
- // message in the chat session. Subsequent comparison results show a "Show Details"
484
- // button instead (handled in MessageText via sideChatLabel toggle).
485
- const isFirstMobileComparison = (() => {
486
- if (!isMobile || activeMessage?.messageType !== 'productComparison')
487
- return true;
488
- // If the user explicitly activated a comparison (via "Show Details" or the
489
- // view-side-chat button), always allow it regardless of position in the chat
490
- if (store.currentChat?.activeMessageId)
491
- return true;
492
- const comparisonMessages = (store.currentChat?.chat || []).filter((m) => m.messageType === 'productComparison');
493
- return comparisonMessages.length <= 1;
494
- })();
495
- const sideChatTypes = isMobile
496
- ? ['inspirationResult', ...(isFirstMobileComparison ? ['productComparison'] : []), ...(mobileProductInfoOpen ? ['productQuery'] : [])]
497
- : ['inspirationResult', 'productComparison', 'productQuery'];
498
- const shouldShowSideChat = activeMessage && sideChatTypes.includes(activeMessage?.messageType) && store.currentChat?.dismissedSideChatMessageId !== activeMessage.id;
499
- const hasSideChat = !!shouldShowSideChat;
500
- // Lock body scrolling (wheel + touch) to the chat while it is open. Mobile only —
501
- // on desktop the chat is a side panel and the page behind it stays scrollable.
502
- useChatScrollLock({ open: store.open && isMobile, chatRef });
503
- // Close chat on Escape key (or dismiss side chat first when it's open)
504
- useEffect(() => {
505
- if (!store.open)
506
- return;
507
- const onKeyDown = (e) => {
508
- if (e.key !== 'Escape')
509
- return;
510
- if (store.currentChat?.activeMessage && shouldShowSideChat) {
511
- store.currentChat?.dismissSideChat();
512
- }
513
- else {
514
- controller.handlers.button.click();
515
- }
516
- };
517
- document.addEventListener('keydown', onKeyDown);
518
- return () => document.removeEventListener('keydown', onKeyDown);
519
- }, [store.open, shouldShowSideChat]);
520
- // Track the primary footer height so the mobile secondary panel can sit above it
521
- useEffect(() => {
522
- const el = footerRef.current;
523
- if (!el)
524
- return;
525
- const observer = new ResizeObserver((entries) => {
526
- for (const entry of entries) {
527
- setFooterHeight(entry.borderBoxSize?.[0]?.blockSize ?? entry.target.getBoundingClientRect().height);
528
- }
529
- });
530
- observer.observe(el);
531
- return () => observer.disconnect();
532
- }, [store.open, store.currentChat?.isExpired]);
533
- if (controller.store.chatEnabled) {
534
- wasVisibleRef.current = true;
535
- }
536
- // Dismiss the secondary panel and clear any product attachments tied to the side-chat
537
- // (discuss product flow), while preserving productSimilar/productComparison attachments.
538
- const dismissSideChat = () => {
539
- const productAttachmentsToRemove = (store.currentChat?.attachments.attached || []).filter((item) => item.type === 'product' &&
540
- item.requestType !== 'productSimilar' &&
541
- item.requestType !== 'productComparison');
542
- productAttachmentsToRemove.forEach((item) => store.currentChat?.attachments.remove(item.id));
543
- setMobileProductInfoOpen(false);
544
- store.currentChat?.dismissSideChat();
545
- };
546
- const requestType = store.currentChat?.requestType;
547
- const loadingVerbLangKey = requestType ? LOADING_VERB_LANG_KEYS[requestType] : undefined;
548
- const loadingVerbs = loadingVerbLangKey
549
- ? langTextOf(lang[loadingVerbLangKey])
550
- ?.split(',')
551
- .map((verb) => verb.trim())
552
- .filter(Boolean)
553
- : undefined;
554
- const isWelcomeState = (!store.currentChat?.chat || store.currentChat.chat.length === 0) && !!store.welcomeMessage && !store.currentChat?.isExpired;
555
- // props inherited by every extracted chat sub-component
556
- const inheritedProps = {
557
- disableStyles,
558
- theme: props.theme,
559
- treePath,
560
- lang: props.lang,
561
- };
562
- const primaryColors = {
563
- primaryColorBg: colorPrimary,
564
- primaryColorFg: colorPrimaryText,
565
- };
566
- const subProps = {
567
- history: { ...inheritedProps },
568
- sideChat: { ...inheritedProps, ...primaryColors },
569
- messages: {
570
- ...inheritedProps,
571
- ...primaryColors,
572
- primaryAccentColorBg: colorPrimaryAccent,
573
- primaryAccentColorFg: colorPrimaryAccentText,
574
- hideMessageTypeIndicatorText,
575
- buttonBelowMessage,
576
- },
577
- sessionFeedback: { ...inheritedProps, ...primaryColors },
578
- comparisonsTray: { ...inheritedProps, ...primaryColors },
579
- facetsBar: { ...inheritedProps, ...primaryColors },
580
- attachments: { ...inheritedProps },
581
- topicDrift: { ...inheritedProps, ...primaryColors },
582
- composer: { ...inheritedProps, ...primaryColors, poweredByText, privacyPolicyUrl },
583
- loadingIndicator: { disableStyles, theme: props.theme, treePath },
584
- };
585
- const styling = mergeStyles({ ...props, mobile: isMobile, hasSideChat, footerHeight, position: chatPosition }, defaultStyles);
586
- // Hide the widget entirely when chat is disabled at bootstrap (silent disable).
587
- // When chat becomes disabled mid-session, keep the widget mounted so the footer
588
- // unavailable message stays visible (with the input disabled).
589
- if (!controller.store.chatEnabled && !wasVisibleRef.current) {
590
- return _jsx(_Fragment, {});
591
- }
592
- if (!shouldRenderDefault) {
593
- return overrideElement;
594
- }
595
- return (_jsx(CacheProvider, { children: _jsxs(_Fragment, { children: [_jsxs("div", { ref: chatRef, className: classnames('ss__chat', {
596
- 'ss__chat--open': store.open,
597
- 'ss__chat--minimized': !store.open,
598
- 'ss__chat--mobile': isMobile,
599
- 'ss__chat--welcome': isWelcomeState,
600
- }, 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: () => {
601
- controller.openChat(question);
602
- }, 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',
603
- // On mobile, interacting with the primary chat (header or anywhere within)
604
- // dismisses the secondary panel. Capture phase so it fires even when an
605
- // inner control stops propagation.
606
- 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 || 'Chat logo' }) : 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', {
607
- 'ss__chat__content__header--overlay': messagesOverflow,
608
- }), 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: () => {
609
- if (isMobile && mobileProductInfoOpen) {
610
- setMobileProductInfoOpen(false);
611
- }
612
- } }), 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: () => {
613
- controller.store.createChat();
614
- }, children: _jsx("span", { ...mergedLang.newSessionButton?.all }) })] }))] })] })) : null] }), _jsx(Overlay, { style: { zIndex: 1001 }, color: "transparent", active: store.open, onClick: () => controller.handlers.button.click() })] }) }));
615
- });