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

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 (354) hide show
  1. package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.js +99 -0
  2. package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/index.js +17 -0
  3. package/dist/cjs/components/src/components/Atoms/Dropdown/Dropdown.js +56 -11
  4. package/dist/cjs/components/src/components/Atoms/Icon/paths.js +13 -0
  5. package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.js +221 -0
  6. package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/index.js +17 -0
  7. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.js +209 -0
  8. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/index.js +17 -0
  9. package/dist/cjs/components/src/components/Molecules/ChatMessageText/ChatMessageText.js +258 -0
  10. package/dist/cjs/components/src/components/Molecules/ChatMessageText/index.js +17 -0
  11. package/dist/cjs/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.js +282 -0
  12. package/dist/cjs/components/src/components/Molecules/ChatMessageUser/index.js +17 -0
  13. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.js +173 -0
  14. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/index.js +17 -0
  15. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.js +577 -0
  16. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/index.js +17 -0
  17. package/dist/cjs/components/src/components/Molecules/ChatResult/ChatResult.js +252 -0
  18. package/dist/cjs/components/src/components/Molecules/ChatResult/index.js +17 -0
  19. package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.js +113 -0
  20. package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/index.js +17 -0
  21. package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.js +107 -0
  22. package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/index.js +17 -0
  23. package/dist/cjs/components/src/components/Molecules/Result/Result.js +53 -6
  24. package/dist/cjs/components/src/components/Molecules/SearchInput/SearchInput.js +28 -2
  25. package/dist/cjs/components/src/components/Molecules/Slideout/Slideout.js +24 -28
  26. package/dist/cjs/components/src/components/Molecules/Slideshow/Slideshow.js +5 -1
  27. package/dist/cjs/components/src/components/Organisms/Chat/Chat.js +621 -0
  28. package/dist/cjs/components/src/components/Organisms/Chat/Chat.lang.js +105 -0
  29. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatAttachments.js +104 -0
  30. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatComparisonsTray.js +161 -0
  31. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatComposer.js +166 -0
  32. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatFacetsBar.js +369 -0
  33. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatHistory.js +130 -0
  34. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatMessages.js +218 -0
  35. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatSessionFeedback.js +123 -0
  36. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatSideChat.js +173 -0
  37. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatTopicDrift.js +149 -0
  38. package/dist/cjs/components/src/components/Organisms/Chat/components/chatAccentTheme.js +60 -0
  39. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatFileUpload.js +66 -0
  40. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatGestures.js +96 -0
  41. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatOverflow.js +113 -0
  42. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatScrollLock.js +135 -0
  43. package/dist/cjs/components/src/components/Organisms/Chat/index.js +18 -0
  44. package/dist/cjs/components/src/components/Organisms/ChatButton/ChatButton.js +94 -0
  45. package/dist/cjs/components/src/components/Organisms/ChatButton/ChatButton.lang.js +11 -0
  46. package/dist/cjs/components/src/components/Organisms/ChatButton/index.js +18 -0
  47. package/dist/cjs/components/src/components/Organisms/Facet/Facet.js +1 -5
  48. package/dist/cjs/components/src/components/Organisms/Results/Results.js +1 -1
  49. package/dist/cjs/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.js +5 -0
  50. package/dist/cjs/components/src/components/Templates/AutocompleteModal/AutocompleteModal.js +5 -0
  51. package/dist/cjs/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.js +5 -0
  52. package/dist/cjs/components/src/components/Templates/Chat/Chat.js +47 -0
  53. package/dist/cjs/components/src/components/Templates/Chat/index.js +17 -0
  54. package/dist/cjs/components/src/components/Templates/ChatButton/ChatButton.js +47 -0
  55. package/dist/cjs/components/src/components/Templates/ChatButton/index.js +17 -0
  56. package/dist/cjs/components/src/index.js +17 -1
  57. package/dist/cjs/components/src/providers/themeComponents.js +20 -0
  58. package/dist/cjs/components/src/setupTests.js +14 -0
  59. package/dist/cjs/components/src/themes/base/components/templates/chat.js +6 -0
  60. package/dist/cjs/components/src/themes/base/components/templates/chatButton.js +6 -0
  61. package/dist/cjs/components/src/themes/base/components/templates/index.js +10 -0
  62. package/dist/cjs/components/src/themes/bocachica/components/templates/chat.js +6 -0
  63. package/dist/cjs/components/src/themes/bocachica/components/templates/chatButton.js +6 -0
  64. package/dist/cjs/components/src/themes/bocachica/components/templates/index.js +10 -0
  65. package/dist/cjs/components/src/themes/pike/components/templates/chat.js +6 -0
  66. package/dist/cjs/components/src/themes/pike/components/templates/chatButton.js +6 -0
  67. package/dist/cjs/components/src/themes/pike/components/templates/index.js +10 -0
  68. package/dist/cjs/components/src/themes/snapnco/components/templates/chat.js +6 -0
  69. package/dist/cjs/components/src/themes/snapnco/components/templates/chatButton.js +6 -0
  70. package/dist/cjs/components/src/themes/snapnco/components/templates/index.js +10 -0
  71. package/dist/cjs/components/src/themes/snappy/components/templates/chat.js +6 -0
  72. package/dist/cjs/components/src/themes/snappy/components/templates/chatButton.js +6 -0
  73. package/dist/cjs/components/src/themes/snappy/components/templates/index.js +10 -0
  74. package/dist/cjs/components/src/themes/themeComponents/chat.js +14 -0
  75. package/dist/cjs/components/src/themes/themeComponents/chatButton.js +9 -0
  76. package/dist/cjs/components/src/utilities/Colour/Colour.js +41 -0
  77. package/dist/cjs/components/src/utilities/snapify.js +27 -0
  78. package/dist/cjs/src/Snap.js +70 -0
  79. package/dist/cjs/src/Templates/SnapTemplates.js +55 -5
  80. package/dist/cjs/src/Templates/Stores/LibraryStore.js +51 -1
  81. package/dist/cjs/src/Templates/Stores/TemplateStore.js +2 -1
  82. package/dist/cjs/src/Templates/Stores/library/components/Chat.js +5 -0
  83. package/dist/cjs/src/Templates/Stores/library/components/ChatButton.js +5 -0
  84. package/dist/cjs/src/Templates/Stores/library/languages/es.js +487 -8
  85. package/dist/cjs/src/Templates/Stores/library/languages/fr.js +487 -8
  86. package/dist/cjs/src/create/createChatController.js +30 -0
  87. package/dist/cjs/src/create/index.js +3 -1
  88. package/dist/cjs/src/setupEvents.js +44 -0
  89. package/dist/cjs/src/utils/applyChatTargetInject.js +25 -0
  90. package/dist/cjs/src/utils/index.js +3 -1
  91. package/dist/esm/components/src/components/Atoms/Button/Button.d.ts +3 -1
  92. package/dist/esm/components/src/components/Atoms/Button/Button.d.ts.map +1 -1
  93. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts +17 -0
  94. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts.map +1 -0
  95. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.js +92 -0
  96. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts +2 -0
  97. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts.map +1 -0
  98. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.js +1 -0
  99. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.d.ts +6 -1
  100. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.d.ts.map +1 -1
  101. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.js +57 -12
  102. package/dist/esm/components/src/components/Atoms/Icon/paths.d.ts +13 -0
  103. package/dist/esm/components/src/components/Atoms/Icon/paths.d.ts.map +1 -1
  104. package/dist/esm/components/src/components/Atoms/Icon/paths.js +13 -0
  105. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.d.ts +30 -0
  106. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.d.ts.map +1 -0
  107. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.js +215 -0
  108. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.d.ts +2 -0
  109. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.d.ts.map +1 -0
  110. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.js +1 -0
  111. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts +19 -0
  112. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts.map +1 -0
  113. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.js +203 -0
  114. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts +2 -0
  115. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts.map +1 -0
  116. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.js +1 -0
  117. package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.d.ts +36 -0
  118. package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.d.ts.map +1 -0
  119. package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.js +252 -0
  120. package/dist/esm/components/src/components/Molecules/ChatMessageText/index.d.ts +2 -0
  121. package/dist/esm/components/src/components/Molecules/ChatMessageText/index.d.ts.map +1 -0
  122. package/dist/esm/components/src/components/Molecules/ChatMessageText/index.js +1 -0
  123. package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.d.ts +38 -0
  124. package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.d.ts.map +1 -0
  125. package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.js +276 -0
  126. package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.d.ts +2 -0
  127. package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.d.ts.map +1 -0
  128. package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.js +1 -0
  129. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts +19 -0
  130. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts.map +1 -0
  131. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.js +167 -0
  132. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts +2 -0
  133. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts.map +1 -0
  134. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.js +1 -0
  135. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts +38 -0
  136. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts.map +1 -0
  137. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.js +571 -0
  138. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts +2 -0
  139. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts.map +1 -0
  140. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.js +1 -0
  141. package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.d.ts +35 -0
  142. package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.d.ts.map +1 -0
  143. package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.js +246 -0
  144. package/dist/esm/components/src/components/Molecules/ChatResult/index.d.ts +2 -0
  145. package/dist/esm/components/src/components/Molecules/ChatResult/index.d.ts.map +1 -0
  146. package/dist/esm/components/src/components/Molecules/ChatResult/index.js +1 -0
  147. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.d.ts +24 -0
  148. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.d.ts.map +1 -0
  149. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.js +107 -0
  150. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.d.ts +2 -0
  151. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.d.ts.map +1 -0
  152. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.js +1 -0
  153. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.d.ts +16 -0
  154. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.d.ts.map +1 -0
  155. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.js +101 -0
  156. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.d.ts +2 -0
  157. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.d.ts.map +1 -0
  158. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.js +1 -0
  159. package/dist/esm/components/src/components/Molecules/OverlayBadge/OverlayBadge.d.ts +2 -2
  160. package/dist/esm/components/src/components/Molecules/OverlayBadge/OverlayBadge.d.ts.map +1 -1
  161. package/dist/esm/components/src/components/Molecules/Result/Result.d.ts +7 -3
  162. package/dist/esm/components/src/components/Molecules/Result/Result.d.ts.map +1 -1
  163. package/dist/esm/components/src/components/Molecules/Result/Result.js +53 -6
  164. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.d.ts +3 -0
  165. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.d.ts.map +1 -1
  166. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.js +28 -2
  167. package/dist/esm/components/src/components/Molecules/Slideout/Slideout.d.ts.map +1 -1
  168. package/dist/esm/components/src/components/Molecules/Slideout/Slideout.js +25 -29
  169. package/dist/esm/components/src/components/Molecules/Slideshow/Slideshow.d.ts.map +1 -1
  170. package/dist/esm/components/src/components/Molecules/Slideshow/Slideshow.js +5 -1
  171. package/dist/esm/components/src/components/Organisms/Chat/Chat.d.ts +41 -0
  172. package/dist/esm/components/src/components/Organisms/Chat/Chat.d.ts.map +1 -0
  173. package/dist/esm/components/src/components/Organisms/Chat/Chat.js +615 -0
  174. package/dist/esm/components/src/components/Organisms/Chat/Chat.lang.d.ts +76 -0
  175. package/dist/esm/components/src/components/Organisms/Chat/Chat.lang.d.ts.map +1 -0
  176. package/dist/esm/components/src/components/Organisms/Chat/Chat.lang.js +100 -0
  177. package/dist/esm/components/src/components/Organisms/Chat/components/ChatAttachments.d.ts +26 -0
  178. package/dist/esm/components/src/components/Organisms/Chat/components/ChatAttachments.d.ts.map +1 -0
  179. package/dist/esm/components/src/components/Organisms/Chat/components/ChatAttachments.js +98 -0
  180. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComparisonsTray.d.ts +13 -0
  181. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComparisonsTray.d.ts.map +1 -0
  182. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComparisonsTray.js +155 -0
  183. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComposer.d.ts +19 -0
  184. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComposer.d.ts.map +1 -0
  185. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComposer.js +160 -0
  186. package/dist/esm/components/src/components/Organisms/Chat/components/ChatFacetsBar.d.ts +18 -0
  187. package/dist/esm/components/src/components/Organisms/Chat/components/ChatFacetsBar.d.ts.map +1 -0
  188. package/dist/esm/components/src/components/Organisms/Chat/components/ChatFacetsBar.js +363 -0
  189. package/dist/esm/components/src/components/Organisms/Chat/components/ChatHistory.d.ts +11 -0
  190. package/dist/esm/components/src/components/Organisms/Chat/components/ChatHistory.d.ts.map +1 -0
  191. package/dist/esm/components/src/components/Organisms/Chat/components/ChatHistory.js +124 -0
  192. package/dist/esm/components/src/components/Organisms/Chat/components/ChatMessages.d.ts +30 -0
  193. package/dist/esm/components/src/components/Organisms/Chat/components/ChatMessages.d.ts.map +1 -0
  194. package/dist/esm/components/src/components/Organisms/Chat/components/ChatMessages.js +212 -0
  195. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSessionFeedback.d.ts +13 -0
  196. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSessionFeedback.d.ts.map +1 -0
  197. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSessionFeedback.js +117 -0
  198. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSideChat.d.ts +19 -0
  199. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSideChat.d.ts.map +1 -0
  200. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSideChat.js +167 -0
  201. package/dist/esm/components/src/components/Organisms/Chat/components/ChatTopicDrift.d.ts +14 -0
  202. package/dist/esm/components/src/components/Organisms/Chat/components/ChatTopicDrift.d.ts.map +1 -0
  203. package/dist/esm/components/src/components/Organisms/Chat/components/ChatTopicDrift.js +143 -0
  204. package/dist/esm/components/src/components/Organisms/Chat/components/chatAccentTheme.d.ts +15 -0
  205. package/dist/esm/components/src/components/Organisms/Chat/components/chatAccentTheme.d.ts.map +1 -0
  206. package/dist/esm/components/src/components/Organisms/Chat/components/chatAccentTheme.js +56 -0
  207. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.d.ts +32 -0
  208. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.d.ts.map +1 -0
  209. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.js +62 -0
  210. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.d.ts +40 -0
  211. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.d.ts.map +1 -0
  212. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.js +92 -0
  213. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.d.ts +43 -0
  214. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.d.ts.map +1 -0
  215. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.js +109 -0
  216. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatScrollLock.d.ts +26 -0
  217. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatScrollLock.d.ts.map +1 -0
  218. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatScrollLock.js +131 -0
  219. package/dist/esm/components/src/components/Organisms/Chat/index.d.ts +3 -0
  220. package/dist/esm/components/src/components/Organisms/Chat/index.d.ts.map +1 -0
  221. package/dist/esm/components/src/components/Organisms/Chat/index.js +2 -0
  222. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.d.ts +18 -0
  223. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.d.ts.map +1 -0
  224. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.js +88 -0
  225. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.lang.d.ts +7 -0
  226. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.lang.d.ts.map +1 -0
  227. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.lang.js +8 -0
  228. package/dist/esm/components/src/components/Organisms/ChatButton/index.d.ts +3 -0
  229. package/dist/esm/components/src/components/Organisms/ChatButton/index.d.ts.map +1 -0
  230. package/dist/esm/components/src/components/Organisms/ChatButton/index.js +2 -0
  231. package/dist/esm/components/src/components/Organisms/Facet/Facet.d.ts.map +1 -1
  232. package/dist/esm/components/src/components/Organisms/Facet/Facet.js +1 -5
  233. package/dist/esm/components/src/components/Organisms/Results/Results.js +1 -1
  234. package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.d.ts.map +1 -1
  235. package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.js +5 -0
  236. package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts.map +1 -1
  237. package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.js +5 -0
  238. package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.d.ts.map +1 -1
  239. package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.js +5 -0
  240. package/dist/esm/components/src/components/Templates/Chat/Chat.d.ts +12 -0
  241. package/dist/esm/components/src/components/Templates/Chat/Chat.d.ts.map +1 -0
  242. package/dist/esm/components/src/components/Templates/Chat/Chat.js +41 -0
  243. package/dist/esm/components/src/components/Templates/Chat/index.d.ts +2 -0
  244. package/dist/esm/components/src/components/Templates/Chat/index.d.ts.map +1 -0
  245. package/dist/esm/components/src/components/Templates/Chat/index.js +1 -0
  246. package/dist/esm/components/src/components/Templates/ChatButton/ChatButton.d.ts +13 -0
  247. package/dist/esm/components/src/components/Templates/ChatButton/ChatButton.d.ts.map +1 -0
  248. package/dist/esm/components/src/components/Templates/ChatButton/ChatButton.js +41 -0
  249. package/dist/esm/components/src/components/Templates/ChatButton/index.d.ts +2 -0
  250. package/dist/esm/components/src/components/Templates/ChatButton/index.d.ts.map +1 -0
  251. package/dist/esm/components/src/components/Templates/ChatButton/index.js +1 -0
  252. package/dist/esm/components/src/index.d.ts +14 -0
  253. package/dist/esm/components/src/index.d.ts.map +1 -1
  254. package/dist/esm/components/src/index.js +14 -0
  255. package/dist/esm/components/src/providers/langComponents.d.ts +20 -0
  256. package/dist/esm/components/src/providers/langComponents.d.ts.map +1 -1
  257. package/dist/esm/components/src/providers/themeComponents.d.ts +203 -1
  258. package/dist/esm/components/src/providers/themeComponents.d.ts.map +1 -1
  259. package/dist/esm/components/src/providers/themeComponents.js +20 -0
  260. package/dist/esm/components/src/providers/withTracking.d.ts +2 -2
  261. package/dist/esm/components/src/providers/withTracking.d.ts.map +1 -1
  262. package/dist/esm/components/src/setupTests.js +14 -0
  263. package/dist/esm/components/src/themes/base/components/templates/chat.d.ts +4 -0
  264. package/dist/esm/components/src/themes/base/components/templates/chat.d.ts.map +1 -0
  265. package/dist/esm/components/src/themes/base/components/templates/chat.js +3 -0
  266. package/dist/esm/components/src/themes/base/components/templates/chatButton.d.ts +4 -0
  267. package/dist/esm/components/src/themes/base/components/templates/chatButton.d.ts.map +1 -0
  268. package/dist/esm/components/src/themes/base/components/templates/chatButton.js +3 -0
  269. package/dist/esm/components/src/themes/base/components/templates/index.d.ts.map +1 -1
  270. package/dist/esm/components/src/themes/base/components/templates/index.js +10 -0
  271. package/dist/esm/components/src/themes/bocachica/components/templates/chat.d.ts +4 -0
  272. package/dist/esm/components/src/themes/bocachica/components/templates/chat.d.ts.map +1 -0
  273. package/dist/esm/components/src/themes/bocachica/components/templates/chat.js +3 -0
  274. package/dist/esm/components/src/themes/bocachica/components/templates/chatButton.d.ts +4 -0
  275. package/dist/esm/components/src/themes/bocachica/components/templates/chatButton.d.ts.map +1 -0
  276. package/dist/esm/components/src/themes/bocachica/components/templates/chatButton.js +3 -0
  277. package/dist/esm/components/src/themes/bocachica/components/templates/index.d.ts.map +1 -1
  278. package/dist/esm/components/src/themes/bocachica/components/templates/index.js +10 -0
  279. package/dist/esm/components/src/themes/pike/components/templates/chat.d.ts +4 -0
  280. package/dist/esm/components/src/themes/pike/components/templates/chat.d.ts.map +1 -0
  281. package/dist/esm/components/src/themes/pike/components/templates/chat.js +3 -0
  282. package/dist/esm/components/src/themes/pike/components/templates/chatButton.d.ts +4 -0
  283. package/dist/esm/components/src/themes/pike/components/templates/chatButton.d.ts.map +1 -0
  284. package/dist/esm/components/src/themes/pike/components/templates/chatButton.js +3 -0
  285. package/dist/esm/components/src/themes/pike/components/templates/index.d.ts.map +1 -1
  286. package/dist/esm/components/src/themes/pike/components/templates/index.js +10 -0
  287. package/dist/esm/components/src/themes/snapnco/components/templates/chat.d.ts +4 -0
  288. package/dist/esm/components/src/themes/snapnco/components/templates/chat.d.ts.map +1 -0
  289. package/dist/esm/components/src/themes/snapnco/components/templates/chat.js +3 -0
  290. package/dist/esm/components/src/themes/snapnco/components/templates/chatButton.d.ts +4 -0
  291. package/dist/esm/components/src/themes/snapnco/components/templates/chatButton.d.ts.map +1 -0
  292. package/dist/esm/components/src/themes/snapnco/components/templates/chatButton.js +3 -0
  293. package/dist/esm/components/src/themes/snapnco/components/templates/index.d.ts.map +1 -1
  294. package/dist/esm/components/src/themes/snapnco/components/templates/index.js +10 -0
  295. package/dist/esm/components/src/themes/snappy/components/templates/chat.d.ts +4 -0
  296. package/dist/esm/components/src/themes/snappy/components/templates/chat.d.ts.map +1 -0
  297. package/dist/esm/components/src/themes/snappy/components/templates/chat.js +3 -0
  298. package/dist/esm/components/src/themes/snappy/components/templates/chatButton.d.ts +4 -0
  299. package/dist/esm/components/src/themes/snappy/components/templates/chatButton.d.ts.map +1 -0
  300. package/dist/esm/components/src/themes/snappy/components/templates/chatButton.js +3 -0
  301. package/dist/esm/components/src/themes/snappy/components/templates/index.d.ts.map +1 -1
  302. package/dist/esm/components/src/themes/snappy/components/templates/index.js +10 -0
  303. package/dist/esm/components/src/themes/themeComponents/chat.d.ts +4 -0
  304. package/dist/esm/components/src/themes/themeComponents/chat.d.ts.map +1 -0
  305. package/dist/esm/components/src/themes/themeComponents/chat.js +11 -0
  306. package/dist/esm/components/src/themes/themeComponents/chatButton.d.ts +4 -0
  307. package/dist/esm/components/src/themes/themeComponents/chatButton.d.ts.map +1 -0
  308. package/dist/esm/components/src/themes/themeComponents/chatButton.js +6 -0
  309. package/dist/esm/components/src/utilities/Colour/Colour.d.ts +15 -0
  310. package/dist/esm/components/src/utilities/Colour/Colour.d.ts.map +1 -1
  311. package/dist/esm/components/src/utilities/Colour/Colour.js +41 -0
  312. package/dist/esm/components/src/utilities/snapify.d.ts +3 -2
  313. package/dist/esm/components/src/utilities/snapify.d.ts.map +1 -1
  314. package/dist/esm/components/src/utilities/snapify.js +29 -2
  315. package/dist/esm/src/Snap.d.ts +2 -1
  316. package/dist/esm/src/Snap.d.ts.map +1 -1
  317. package/dist/esm/src/Snap.js +71 -1
  318. package/dist/esm/src/Templates/SnapTemplates.d.ts +2 -1
  319. package/dist/esm/src/Templates/SnapTemplates.d.ts.map +1 -1
  320. package/dist/esm/src/Templates/SnapTemplates.js +54 -5
  321. package/dist/esm/src/Templates/Stores/LibraryStore.d.ts +43 -0
  322. package/dist/esm/src/Templates/Stores/LibraryStore.d.ts.map +1 -1
  323. package/dist/esm/src/Templates/Stores/LibraryStore.js +51 -1
  324. package/dist/esm/src/Templates/Stores/TemplateStore.d.ts +19 -4
  325. package/dist/esm/src/Templates/Stores/TemplateStore.d.ts.map +1 -1
  326. package/dist/esm/src/Templates/Stores/TemplateStore.js +2 -1
  327. package/dist/esm/src/Templates/Stores/library/components/Chat.d.ts +2 -0
  328. package/dist/esm/src/Templates/Stores/library/components/Chat.d.ts.map +1 -0
  329. package/dist/esm/src/Templates/Stores/library/components/Chat.js +1 -0
  330. package/dist/esm/src/Templates/Stores/library/components/ChatButton.d.ts +2 -0
  331. package/dist/esm/src/Templates/Stores/library/components/ChatButton.d.ts.map +1 -0
  332. package/dist/esm/src/Templates/Stores/library/components/ChatButton.js +1 -0
  333. package/dist/esm/src/Templates/Stores/library/languages/es.d.ts.map +1 -1
  334. package/dist/esm/src/Templates/Stores/library/languages/es.js +487 -8
  335. package/dist/esm/src/Templates/Stores/library/languages/fr.d.ts.map +1 -1
  336. package/dist/esm/src/Templates/Stores/library/languages/fr.js +487 -8
  337. package/dist/esm/src/create/createChatController.d.ts +5 -0
  338. package/dist/esm/src/create/createChatController.d.ts.map +1 -0
  339. package/dist/esm/src/create/createChatController.js +28 -0
  340. package/dist/esm/src/create/index.d.ts +1 -0
  341. package/dist/esm/src/create/index.d.ts.map +1 -1
  342. package/dist/esm/src/create/index.js +1 -0
  343. package/dist/esm/src/setupEvents.d.ts +13 -0
  344. package/dist/esm/src/setupEvents.d.ts.map +1 -1
  345. package/dist/esm/src/setupEvents.js +44 -0
  346. package/dist/esm/src/types.d.ts +13 -3
  347. package/dist/esm/src/types.d.ts.map +1 -1
  348. package/dist/esm/src/utils/applyChatTargetInject.d.ts +3 -0
  349. package/dist/esm/src/utils/applyChatTargetInject.d.ts.map +1 -0
  350. package/dist/esm/src/utils/applyChatTargetInject.js +22 -0
  351. package/dist/esm/src/utils/index.d.ts +1 -0
  352. package/dist/esm/src/utils/index.d.ts.map +1 -1
  353. package/dist/esm/src/utils/index.js +1 -0
  354. package/package.json +14 -12
@@ -15,8 +15,12 @@ const searchCollapsible_1 = require("./searchCollapsible");
15
15
  const autocompleteSlideout_1 = require("./autocompleteSlideout");
16
16
  const autocompleteModal_1 = require("./autocompleteModal");
17
17
  const autocompleteFixed_1 = require("./autocompleteFixed");
18
+ const chat_1 = require("./chat");
19
+ const chatButton_1 = require("./chatButton");
18
20
  exports.templates = {
19
21
  default: {
22
+ ...chat_1.chat.default,
23
+ ...chatButton_1.chatButton.default,
20
24
  ...autocompleteSlideout_1.autocompleteSlideout.default,
21
25
  ...autocompleteModal_1.autocompleteModal.default,
22
26
  ...autocompleteFixed_1.autocompleteFixed.default,
@@ -32,6 +36,8 @@ exports.templates = {
32
36
  ...searchHorizontal_1.searchHorizontal.default,
33
37
  },
34
38
  mobile: {
39
+ ...chat_1.chat.mobile,
40
+ ...chatButton_1.chatButton.mobile,
35
41
  ...autocompleteSlideout_1.autocompleteSlideout.mobile,
36
42
  ...autocompleteModal_1.autocompleteModal.mobile,
37
43
  ...autocompleteFixed_1.autocompleteFixed.mobile,
@@ -47,6 +53,8 @@ exports.templates = {
47
53
  ...searchHorizontal_1.searchHorizontal.mobile,
48
54
  },
49
55
  tablet: {
56
+ ...chat_1.chat.tablet,
57
+ ...chatButton_1.chatButton.tablet,
50
58
  ...autocompleteSlideout_1.autocompleteSlideout.tablet,
51
59
  ...autocompleteModal_1.autocompleteModal.tablet,
52
60
  ...autocompleteFixed_1.autocompleteFixed.tablet,
@@ -62,6 +70,8 @@ exports.templates = {
62
70
  ...searchHorizontal_1.searchHorizontal.tablet,
63
71
  },
64
72
  desktop: {
73
+ ...chat_1.chat.desktop,
74
+ ...chatButton_1.chatButton.desktop,
65
75
  ...autocompleteSlideout_1.autocompleteSlideout.desktop,
66
76
  ...autocompleteModal_1.autocompleteModal.desktop,
67
77
  ...autocompleteFixed_1.autocompleteFixed.desktop,
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.chat = void 0;
4
+ const chat_1 = require("../../../themeComponents/chat");
5
+ // Chat component props come from Template export
6
+ exports.chat = chat_1.chatThemeComponentProps;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.chatButton = void 0;
4
+ const chatButton_1 = require("../../../themeComponents/chatButton");
5
+ // ChatButton component props come from Template export
6
+ exports.chatButton = chatButton_1.chatButtonThemeComponentProps;
@@ -15,8 +15,12 @@ const searchCollapsible_1 = require("./searchCollapsible");
15
15
  const autocompleteSlideout_1 = require("./autocompleteSlideout");
16
16
  const autocompleteModal_1 = require("./autocompleteModal");
17
17
  const autocompleteFixed_1 = require("./autocompleteFixed");
18
+ const chat_1 = require("./chat");
19
+ const chatButton_1 = require("./chatButton");
18
20
  exports.templates = {
19
21
  default: {
22
+ ...chat_1.chat.default,
23
+ ...chatButton_1.chatButton.default,
20
24
  ...autocompleteSlideout_1.autocompleteSlideout.default,
21
25
  ...autocompleteModal_1.autocompleteModal.default,
22
26
  ...autocompleteFixed_1.autocompleteFixed.default,
@@ -32,6 +36,8 @@ exports.templates = {
32
36
  ...searchHorizontal_1.searchHorizontal.default,
33
37
  },
34
38
  mobile: {
39
+ ...chat_1.chat.mobile,
40
+ ...chatButton_1.chatButton.mobile,
35
41
  ...autocompleteSlideout_1.autocompleteSlideout.mobile,
36
42
  ...autocompleteModal_1.autocompleteModal.mobile,
37
43
  ...autocompleteFixed_1.autocompleteFixed.mobile,
@@ -47,6 +53,8 @@ exports.templates = {
47
53
  ...searchHorizontal_1.searchHorizontal.mobile,
48
54
  },
49
55
  tablet: {
56
+ ...chat_1.chat.tablet,
57
+ ...chatButton_1.chatButton.tablet,
50
58
  ...autocompleteSlideout_1.autocompleteSlideout.tablet,
51
59
  ...autocompleteModal_1.autocompleteModal.tablet,
52
60
  ...autocompleteFixed_1.autocompleteFixed.tablet,
@@ -62,6 +70,8 @@ exports.templates = {
62
70
  ...searchHorizontal_1.searchHorizontal.tablet,
63
71
  },
64
72
  desktop: {
73
+ ...chat_1.chat.desktop,
74
+ ...chatButton_1.chatButton.desktop,
65
75
  ...autocompleteSlideout_1.autocompleteSlideout.desktop,
66
76
  ...autocompleteModal_1.autocompleteModal.desktop,
67
77
  ...autocompleteFixed_1.autocompleteFixed.desktop,
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.chatThemeComponentProps = void 0;
4
+ exports.chatThemeComponentProps = {
5
+ default: {
6
+ chat: {
7
+ position: 'right',
8
+ offset: '20px',
9
+ },
10
+ },
11
+ mobile: {},
12
+ tablet: {},
13
+ desktop: {},
14
+ };
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.chatButtonThemeComponentProps = void 0;
4
+ exports.chatButtonThemeComponentProps = {
5
+ default: {},
6
+ mobile: {},
7
+ tablet: {},
8
+ desktop: {},
9
+ };
@@ -102,6 +102,27 @@ class Colour {
102
102
  return this;
103
103
  return new Colour(Colour.opacity(this.hex, -offset));
104
104
  }
105
+ /** Returns a hex string mixed linearly toward black. `amount` is a 0-1 proportion of
106
+ * black in the result — note this differs from `darken(offset)`, which takes a 0-100
107
+ * offset and returns a chainable `Colour`. 0.9 yields a near-black with a slight tint. */
108
+ mixBlack(amount = 0.3) {
109
+ return Colour.mixToward(this.hex, '#000000', amount) ?? this.hex ?? '';
110
+ }
111
+ /** Returns a hex string mixed linearly toward white. `amount` is a 0-1 proportion of
112
+ * white in the result — note this differs from `lighten(offset)`, which takes a 0-100
113
+ * offset and returns a chainable `Colour`. 0.9 yields a near-white with a slight tint. */
114
+ mixWhite(amount = 0.3) {
115
+ return Colour.mixToward(this.hex, '#ffffff', amount) ?? this.hex ?? '';
116
+ }
117
+ /** Returns the color only if it is a concrete value that can be manipulated and paired with
118
+ * other colors. Contextual CSS keywords (currentColor and the CSS-wide keywords) resolve
119
+ * against surrounding styles, so they would defeat `|| fallback` chains — those return undefined. */
120
+ static concrete(color) {
121
+ if (!color || ['currentcolor', 'inherit', 'initial', 'unset', 'revert'].includes(color.toLowerCase())) {
122
+ return undefined;
123
+ }
124
+ return color;
125
+ }
105
126
  static isRgb(color) {
106
127
  return Boolean(color.match(/^rgba?\([0-9]{1,3}[\s,\,]+[0-9]{1,3}[\s,\,]+[0-9]{1,3}[\s,\,]*\)$/i) ||
107
128
  color.match(/^rgba?\([0-9]{1,3}[\s,\,]+[0-9]{1,3}[\s,\,]+[0-9]{1,3}[\s,\,]+0?\.?[0-9]+%?[\s,\,]*\)$/i));
@@ -170,6 +191,26 @@ class Colour {
170
191
  }
171
192
  return hexValue;
172
193
  }
194
+ /** Linear RGB mix between two hex colors. `amount` (0-1) is the proportion of `towardHex`
195
+ * in the result. Returns the source `hex` unchanged when either input is invalid. */
196
+ static mixToward(hex, towardHex, amount) {
197
+ if (!hex)
198
+ return undefined;
199
+ if (!Colour.isHex(hex) || !Colour.isHex(towardHex))
200
+ return hex;
201
+ const clamped = Math.max(0, Math.min(1, amount));
202
+ const sourceR = parseInt(hex.slice(1, 3), 16);
203
+ const sourceG = parseInt(hex.slice(3, 5), 16);
204
+ const sourceB = parseInt(hex.slice(5, 7), 16);
205
+ const targetR = parseInt(towardHex.slice(1, 3), 16);
206
+ const targetG = parseInt(towardHex.slice(3, 5), 16);
207
+ const targetB = parseInt(towardHex.slice(5, 7), 16);
208
+ const mix = (s, t) => Math.round(s * (1 - clamped) + t * clamped);
209
+ const r = mix(sourceR, targetR).toString(16).padStart(2, '0');
210
+ const g = mix(sourceG, targetG).toString(16).padStart(2, '0');
211
+ const b = mix(sourceB, targetB).toString(16).padStart(2, '0');
212
+ return `#${r}${g}${b}`;
213
+ }
173
214
  static brightness(color, offset) {
174
215
  let isRgb = false;
175
216
  if (color && Colour.isRgb(color)) {
@@ -45,6 +45,20 @@ class Snapify {
45
45
  cntrlr.init();
46
46
  return cntrlr;
47
47
  }
48
+ static chat(config) {
49
+ const id = config.id;
50
+ if (controllers[id]) {
51
+ return controllers[id];
52
+ }
53
+ const cntrlr = (controllers[id] = createChatController({ client, controller: config }));
54
+ cntrlr.on('afterStore', async ({ controller }, next) => {
55
+ controller.log.debug('controller', controller);
56
+ controller.log.debug('store', controller.store.toJSON());
57
+ await next();
58
+ });
59
+ cntrlr.init();
60
+ return cntrlr;
61
+ }
48
62
  static search(config) {
49
63
  const id = config.id;
50
64
  if (controllers[id]) {
@@ -87,6 +101,19 @@ function createRecommendationController(config) {
87
101
  });
88
102
  return cntrlr;
89
103
  }
104
+ function createChatController(config) {
105
+ const urlManager = new snap_url_manager_1.UrlManager(new snap_url_manager_1.UrlTranslator(), snap_url_manager_1.reactLinker).detach(true);
106
+ const cntrlr = new snap_controller_1.ChatController(config.controller, {
107
+ client: new snap_client_1.Client(config.client.globals, config.client.config),
108
+ store: new snap_store_mobx_1.ChatStore({ ...config.controller, siteId: config.client.globals.siteId }, { urlManager }),
109
+ urlManager,
110
+ eventManager: new snap_event_manager_1.EventManager(),
111
+ profiler: new snap_profiler_1.Profiler(),
112
+ logger: new snap_logger_1.Logger(),
113
+ tracker: new snap_tracker_1.Tracker(config.client.globals),
114
+ });
115
+ return cntrlr;
116
+ }
90
117
  function createAutocompleteController(config) {
91
118
  const urlManager = new snap_url_manager_1.UrlManager(new snap_url_manager_1.UrlTranslator(), snap_url_manager_1.reactLinker).detach();
92
119
  const cntrlr = new snap_controller_1.AutocompleteController(config.controller, {
@@ -101,6 +101,9 @@ class Snap {
101
101
  case snap_controller_1.ControllerTypes.recommendation:
102
102
  importPromise = import('./create/createRecommendationController');
103
103
  break;
104
+ case snap_controller_1.ControllerTypes.chat:
105
+ importPromise = import('./create/createChatController');
106
+ break;
104
107
  case snap_controller_1.ControllerTypes.search:
105
108
  default:
106
109
  importPromise = import('./create/createSearchController');
@@ -544,6 +547,73 @@ class Snap {
544
547
  });
545
548
  break;
546
549
  }
550
+ case 'chat': {
551
+ this.config.controllers[type].forEach((controller, index) => {
552
+ if (typeof this._controllerPromises[controller.config.id] != 'undefined') {
553
+ this.logger.error(`Controller with id '${controller.config.id}' is already defined`);
554
+ return;
555
+ }
556
+ this._controllerPromises[controller.config.id] = new Promise(async (resolve) => {
557
+ try {
558
+ // `_initialized` is only set after the awaited init fires, so two chat
559
+ // targeters would otherwise both re-run the init middleware
560
+ let initialized = false;
561
+ const targetFunction = async (target, elem, originalElem) => {
562
+ const onTarget = target.onTarget;
563
+ onTarget && (await onTarget(target, elem, originalElem));
564
+ try {
565
+ const importPromises = [];
566
+ // dynamically import the component
567
+ importPromises.push(target.component());
568
+ const importResolutions = await Promise.all(importPromises);
569
+ const Component = importResolutions[0];
570
+ setTimeout(() => {
571
+ (0, preact_1.render)((0, jsx_runtime_1.jsx)(Component, { controller: this.controllers[controller.config.id], snap: this, ...target.props }), elem);
572
+ });
573
+ }
574
+ catch (err) {
575
+ this.logger.error(err);
576
+ this.logger.error(COMPONENT_ERROR, target);
577
+ }
578
+ };
579
+ if (!controller?.targeters || controller?.targeters.length === 0) {
580
+ const cntrlr = await this._createController(snap_controller_1.ControllerTypes.chat, controller.config, controller.services, controller.url, controller.context, (cntrlr) => {
581
+ if (cntrlr)
582
+ resolve(cntrlr);
583
+ });
584
+ if (!cntrlr.initialized)
585
+ cntrlr.init();
586
+ }
587
+ controller?.targeters?.forEach((target, target_index) => {
588
+ if (!target.selector) {
589
+ throw new Error(`Targets at index ${target_index} missing selector value (string).`);
590
+ }
591
+ if (!target.component) {
592
+ throw new Error(`Targets at index ${target_index} missing component value (Component).`);
593
+ }
594
+ target = (0, utils_1.applyChatTargetInject)(target);
595
+ const targeter = new snap_toolbox_1.DomTargeter([{ ...target }], async (target, elem, originalElem) => {
596
+ const cntrlr = await this._createController(snap_controller_1.ControllerTypes.chat, controller.config, controller.services, controller.url, controller.context, (cntrlr) => {
597
+ if (cntrlr)
598
+ resolve(cntrlr);
599
+ });
600
+ if (!initialized) {
601
+ initialized = true;
602
+ if (!cntrlr.initialized)
603
+ cntrlr.init();
604
+ }
605
+ targetFunction({ controller: cntrlr, ...target }, elem, originalElem);
606
+ cntrlr.addTargeter(targeter);
607
+ });
608
+ });
609
+ }
610
+ catch (err) {
611
+ this.logger.error(`Failed to instantiate ${type} controller at index ${index}.`, err);
612
+ }
613
+ });
614
+ });
615
+ break;
616
+ }
547
617
  case 'autocomplete': {
548
618
  this.config.controllers[type].forEach((controller, index) => {
549
619
  if (typeof this._controllerPromises[controller.config.id] != 'undefined') {
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createSearchTargeters = exports.SnapTemplates = exports.applyAutomaticThemeOverrides = exports.DEFAULT_AUTOCOMPLETE_CONTROLLER_SETTINGS = exports.DEFAULT_FEATURES = exports.TEMPLATE_EDITOR_UI_PARAM = exports.TEMPLATE_EDITOR_COOKIE = void 0;
6
+ exports.createChatTargeters = exports.createSearchTargeters = exports.SnapTemplates = exports.applyAutomaticThemeOverrides = exports.DEFAULT_AUTOCOMPLETE_CONTROLLER_SETTINGS = exports.DEFAULT_FEATURES = exports.TEMPLATE_EDITOR_UI_PARAM = exports.TEMPLATE_EDITOR_COOKIE = void 0;
7
7
  exports.mapBreakpoints = mapBreakpoints;
8
8
  exports.createAutocompleteTargeters = createAutocompleteTargeters;
9
9
  exports.createRecommendationComponentMapping = createRecommendationComponentMapping;
@@ -194,6 +194,36 @@ const createSearchTargeters = (templateConfig, templatesStore) => {
194
194
  });
195
195
  };
196
196
  exports.createSearchTargeters = createSearchTargeters;
197
+ const createChatTargeters = (templateConfig, templatesStore) => {
198
+ // initial target configs
199
+ const targetConfigs = templateConfig.chat?.targets || [];
200
+ let mergedConfigs;
201
+ if (templatesStore.settings.editMode) {
202
+ const overrideConfigs = (templatesStore.storage.get('overrides.targets.chat') || []);
203
+ mergedConfigs = (0, deepmerge_1.default)(targetConfigs, overrideConfigs, { arrayMerge: utils_1.combineMerge });
204
+ }
205
+ else {
206
+ mergedConfigs = targetConfigs;
207
+ }
208
+ return mergedConfigs.map((targetConfig) => {
209
+ const target = templatesStore.addTarget({ ...targetConfig, type: 'chat' });
210
+ const targeter = {
211
+ selector: targetConfig.selector,
212
+ // inline selectors (e.g. a nav slot) may render after DOMContentLoaded;
213
+ // re-injection at already-targeted elements is prevented by DomTargeter
214
+ autoRetarget: true,
215
+ component: async () => {
216
+ const componentImportPromises = [];
217
+ componentImportPromises.push(templatesStore.library.import.component.chat[targetConfig.component]());
218
+ await Promise.all(componentImportPromises);
219
+ return TemplateSelect_1.TemplateSelect;
220
+ },
221
+ props: { target, templatesStore },
222
+ };
223
+ return (0, utils_1.applyChatTargetInject)(targeter);
224
+ });
225
+ };
226
+ exports.createChatTargeters = createChatTargeters;
197
227
  function createAutocompleteTargeters(templateConfig, templatesStore) {
198
228
  // initial target configs
199
229
  const targetConfigs = templateConfig.autocomplete?.targets || [];
@@ -280,6 +310,7 @@ function createRecommendationComponentMapping(templateConfig, templatesStore) {
280
310
  function createSnapConfig(templateConfig, templatesStore) {
281
311
  const initiatorPrefix = window?.athos?.managed ? `managed/` : '';
282
312
  const snapConfig = {
313
+ mode: templateConfig.config?.mode,
283
314
  features: templateConfig.features || exports.DEFAULT_FEATURES,
284
315
  client: {
285
316
  globals: {},
@@ -402,6 +433,21 @@ function createSnapConfig(templateConfig, templatesStore) {
402
433
  // }
403
434
  snapConfig.instantiators.recommendation = recommendationInstantiatorConfig;
404
435
  }
436
+ /* CHAT CONTROLLER */
437
+ if (templateConfig.chat && snapConfig.controllers) {
438
+ const chatControllerConfig = {
439
+ config: {
440
+ id: 'chat',
441
+ plugins: createPlugins(templateConfig, templatesStore, 'chat'),
442
+ settings: {
443
+ languageCode: templatesStore.language,
444
+ ...(templateConfig.chat.settings || {}),
445
+ },
446
+ },
447
+ targeters: (0, exports.createChatTargeters)(templateConfig, templatesStore),
448
+ };
449
+ snapConfig.controllers.chat = [chatControllerConfig];
450
+ }
405
451
  return snapConfig;
406
452
  }
407
453
  function createPlugins(templateConfig, templatesStore, controllerType) {
@@ -410,10 +456,14 @@ function createPlugins(templateConfig, templatesStore, controllerType) {
410
456
  if (controllerType) {
411
457
  controllerConfig = templateConfig[controllerType] || {};
412
458
  }
413
- plugins.push([
414
- templatesStore.library.import.plugins.common.backgroundFilters,
415
- (0, deepmerge_1.default)(templateConfig.plugins?.common?.backgroundFilters || {}, controllerConfig?.plugins?.common?.backgroundFilters || {}),
416
- ]);
459
+ // backgroundFilters writes `config.globals.filters`, which the chat endpoint has no
460
+ // field for — chat carries background filters via `settings.bgFilters` instead
461
+ if (controllerType !== 'chat') {
462
+ plugins.push([
463
+ templatesStore.library.import.plugins.common.backgroundFilters,
464
+ (0, deepmerge_1.default)(templateConfig.plugins?.common?.backgroundFilters || {}, controllerConfig?.plugins?.common?.backgroundFilters || {}),
465
+ ]);
466
+ }
417
467
  plugins.push([
418
468
  templatesStore.library.import.plugins.common.scrollToTop,
419
469
  (0, deepmerge_1.default)(templateConfig.plugins?.common?.scrollToTop || {}, controllerConfig?.plugins?.common?.scrollToTop || {}),
@@ -29,6 +29,26 @@ class LibraryStore {
29
29
  default: {},
30
30
  email: {},
31
31
  },
32
+ chat: {},
33
+ chatButton: {},
34
+ chatLoadingIndicator: {},
35
+ chatAttachmentContext: {},
36
+ chatInspirationResultMessage: {},
37
+ chatMessageText: {},
38
+ chatMessageUser: {},
39
+ chatProductComparisonMessage: {},
40
+ chatProductQueryMessage: {},
41
+ chatResult: {},
42
+ chatResultsDisplay: {},
43
+ chatSuggestedQuestions: {},
44
+ chatComparisonsTray: {},
45
+ chatComposer: {},
46
+ chatFacetsBar: {},
47
+ chatHistory: {},
48
+ chatMessages: {},
49
+ chatSessionFeedback: {},
50
+ chatSideChat: {},
51
+ chatTopicDrift: {},
32
52
  badge: {},
33
53
  result: {},
34
54
  overlayResult: {},
@@ -207,6 +227,33 @@ class LibraryStore {
207
227
  },
208
228
  },
209
229
  },
230
+ chat: {
231
+ Chat: async () => {
232
+ return this.components.chat.Chat || (this.components.chat.Chat = (await import('./library/components/Chat')).Chat);
233
+ },
234
+ ChatButton: async () => {
235
+ return this.components.chat.ChatButton || (this.components.chat.ChatButton = (await import('./library/components/ChatButton')).ChatButton);
236
+ },
237
+ },
238
+ chatButton: {},
239
+ chatLoadingIndicator: {},
240
+ chatAttachmentContext: {},
241
+ chatInspirationResultMessage: {},
242
+ chatMessageText: {},
243
+ chatMessageUser: {},
244
+ chatProductComparisonMessage: {},
245
+ chatProductQueryMessage: {},
246
+ chatResult: {},
247
+ chatResultsDisplay: {},
248
+ chatSuggestedQuestions: {},
249
+ chatComparisonsTray: {},
250
+ chatComposer: {},
251
+ chatFacetsBar: {},
252
+ chatHistory: {},
253
+ chatMessages: {},
254
+ chatSessionFeedback: {},
255
+ chatSideChat: {},
256
+ chatTopicDrift: {},
210
257
  badge: {},
211
258
  result: {
212
259
  Result: async () => {
@@ -329,7 +376,10 @@ class LibraryStore {
329
376
  async addComponentImport(type, name, componentFn) {
330
377
  // only allow certain types based on unlocked status
331
378
  if (this.allowedComponentTypes.includes(type) && this.components[type]) {
332
- this.import.component[type][name] = async () => {
379
+ // `chat` declares its library entry with literal keys so template targets stay
380
+ // literal-checked; custom overrides register by arbitrary name, hence the cast
381
+ const componentImports = this.import.component[type];
382
+ componentImports[name] = async () => {
333
383
  return (this.components[type][name] ||
334
384
  (this.components[type][name] = await (0, CustomComponent_1.CustomComponent)({
335
385
  type,
@@ -25,6 +25,7 @@ class TemplatesStore {
25
25
  this.targets = {
26
26
  search: [],
27
27
  autocomplete: [],
28
+ chat: [],
28
29
  recommendation: {
29
30
  bundle: [],
30
31
  default: [],
@@ -219,7 +220,7 @@ function getTargetArray(targets, type) {
219
220
  if (category === 'recommendation' && subcategory) {
220
221
  return targets.recommendation[subcategory];
221
222
  }
222
- if (category === 'search' || category === 'autocomplete') {
223
+ if (category === 'search' || category === 'autocomplete' || category === 'chat') {
223
224
  return targets[category];
224
225
  }
225
226
  return undefined;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Chat = void 0;
4
+ var Chat_1 = require("../../../../../components/src/components/Templates/Chat");
5
+ Object.defineProperty(exports, "Chat", { enumerable: true, get: function () { return Chat_1.Chat; } });
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChatButton = void 0;
4
+ var ChatButton_1 = require("../../../../../components/src/components/Templates/ChatButton");
5
+ Object.defineProperty(exports, "ChatButton", { enumerable: true, get: function () { return ChatButton_1.ChatButton; } });