@athoscommerce/snap-preact 1.13.2 → 1.13.3-beta.187

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 (403) 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 +211 -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 +259 -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 +286 -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 +174 -0
  14. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/index.js +17 -0
  15. package/dist/cjs/components/src/components/Molecules/ChatQuickview/ChatQuickview.js +514 -0
  16. package/dist/cjs/components/src/components/Molecules/ChatQuickview/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 +51 -4
  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 +88 -47
  27. package/dist/cjs/components/src/components/Molecules/TabSelection/TabSelection.js +5 -3
  28. package/dist/cjs/components/src/components/Organisms/AutocompleteLayout/AutocompleteLayout.js +8 -1
  29. package/dist/cjs/components/src/components/Organisms/Chat/Chat.js +628 -0
  30. package/dist/cjs/components/src/components/Organisms/Chat/Chat.lang.js +110 -0
  31. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatAttachments.js +105 -0
  32. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatComparisonsTray.js +161 -0
  33. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatComposer.js +166 -0
  34. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatFacetsBar.js +369 -0
  35. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatHistory.js +130 -0
  36. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatMessages.js +218 -0
  37. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatSessionFeedback.js +123 -0
  38. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatSideChat.js +173 -0
  39. package/dist/cjs/components/src/components/Organisms/Chat/components/ChatTopicDrift.js +149 -0
  40. package/dist/cjs/components/src/components/Organisms/Chat/components/chatAccentTheme.js +62 -0
  41. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatFileUpload.js +66 -0
  42. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatGestures.js +96 -0
  43. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatOverflow.js +113 -0
  44. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatScrollLock.js +135 -0
  45. package/dist/cjs/components/src/components/Organisms/Chat/index.js +18 -0
  46. package/dist/cjs/components/src/components/Organisms/ChatButton/ChatButton.js +94 -0
  47. package/dist/cjs/components/src/components/Organisms/ChatButton/ChatButton.lang.js +11 -0
  48. package/dist/cjs/components/src/components/Organisms/ChatButton/index.js +18 -0
  49. package/dist/cjs/components/src/components/Organisms/QuickviewLayout/QuickviewLayout.js +44 -11
  50. package/dist/cjs/components/src/components/Organisms/Results/Results.js +1 -1
  51. package/dist/cjs/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.js +5 -0
  52. package/dist/cjs/components/src/components/Templates/AutocompleteModal/AutocompleteModal.js +5 -0
  53. package/dist/cjs/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.js +5 -0
  54. package/dist/cjs/components/src/components/Templates/Chat/Chat.js +47 -0
  55. package/dist/cjs/components/src/components/Templates/Chat/index.js +17 -0
  56. package/dist/cjs/components/src/components/Templates/ChatButton/ChatButton.js +47 -0
  57. package/dist/cjs/components/src/components/Templates/ChatButton/index.js +17 -0
  58. package/dist/cjs/components/src/components/Templates/Search/Search.js +9 -1
  59. package/dist/cjs/components/src/index.js +17 -1
  60. package/dist/cjs/components/src/providers/themeComponents.js +20 -0
  61. package/dist/cjs/components/src/themes/base/components/templates/chat.js +6 -0
  62. package/dist/cjs/components/src/themes/base/components/templates/chatButton.js +6 -0
  63. package/dist/cjs/components/src/themes/base/components/templates/index.js +10 -0
  64. package/dist/cjs/components/src/themes/bocachica/components/templates/chat.js +6 -0
  65. package/dist/cjs/components/src/themes/bocachica/components/templates/chatButton.js +6 -0
  66. package/dist/cjs/components/src/themes/bocachica/components/templates/index.js +10 -0
  67. package/dist/cjs/components/src/themes/pike/components/templates/chat.js +6 -0
  68. package/dist/cjs/components/src/themes/pike/components/templates/chatButton.js +6 -0
  69. package/dist/cjs/components/src/themes/pike/components/templates/index.js +10 -0
  70. package/dist/cjs/components/src/themes/snapnco/components/templates/chat.js +6 -0
  71. package/dist/cjs/components/src/themes/snapnco/components/templates/chatButton.js +6 -0
  72. package/dist/cjs/components/src/themes/snapnco/components/templates/index.js +10 -0
  73. package/dist/cjs/components/src/themes/snappy/components/templates/chat.js +6 -0
  74. package/dist/cjs/components/src/themes/snappy/components/templates/chatButton.js +6 -0
  75. package/dist/cjs/components/src/themes/snappy/components/templates/index.js +10 -0
  76. package/dist/cjs/components/src/themes/themeComponents/chat.js +14 -0
  77. package/dist/cjs/components/src/themes/themeComponents/chatButton.js +9 -0
  78. package/dist/cjs/components/src/utilities/Colour/Colour.js +41 -0
  79. package/dist/cjs/components/src/utilities/snapify.js +27 -0
  80. package/dist/cjs/src/Instantiators/RecommendationInstantiator.js +4 -1
  81. package/dist/cjs/src/Snap.js +83 -1
  82. package/dist/cjs/src/Templates/SnapTemplates.js +55 -5
  83. package/dist/cjs/src/Templates/Stores/LibraryStore.js +51 -1
  84. package/dist/cjs/src/Templates/Stores/TemplateStore.js +3 -3
  85. package/dist/cjs/src/Templates/Stores/library/components/Chat.js +5 -0
  86. package/dist/cjs/src/Templates/Stores/library/components/ChatButton.js +5 -0
  87. package/dist/cjs/src/Templates/Stores/library/languages/ar.js +485 -0
  88. package/dist/cjs/src/Templates/Stores/library/languages/de.js +485 -0
  89. package/dist/cjs/src/Templates/Stores/library/languages/es.js +490 -0
  90. package/dist/cjs/src/Templates/Stores/library/languages/fr.js +490 -0
  91. package/dist/cjs/src/Templates/Stores/library/languages/hi.js +485 -0
  92. package/dist/cjs/src/Templates/Stores/library/languages/it.js +485 -0
  93. package/dist/cjs/src/Templates/Stores/library/languages/ja.js +485 -0
  94. package/dist/cjs/src/Templates/Stores/library/languages/ko.js +485 -0
  95. package/dist/cjs/src/Templates/Stores/library/languages/nl.js +485 -0
  96. package/dist/cjs/src/Templates/Stores/library/languages/pt.js +485 -0
  97. package/dist/cjs/src/Templates/Stores/library/languages/ru.js +485 -0
  98. package/dist/cjs/src/Templates/Stores/library/languages/tr.js +485 -0
  99. package/dist/cjs/src/Templates/Stores/library/languages/vi.js +485 -0
  100. package/dist/cjs/src/Templates/Stores/library/languages/zh.js +485 -0
  101. package/dist/cjs/src/create/createChatController.js +31 -0
  102. package/dist/cjs/src/create/index.js +3 -1
  103. package/dist/cjs/src/setupEvents.js +44 -0
  104. package/dist/cjs/src/utils/applyChatTargetInject.js +25 -0
  105. package/dist/cjs/src/utils/index.js +3 -1
  106. package/dist/esm/components/src/components/Atoms/Button/Button.d.ts +3 -1
  107. package/dist/esm/components/src/components/Atoms/Button/Button.d.ts.map +1 -1
  108. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts +17 -0
  109. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts.map +1 -0
  110. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.js +92 -0
  111. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts +2 -0
  112. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts.map +1 -0
  113. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.js +1 -0
  114. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.d.ts +6 -1
  115. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.d.ts.map +1 -1
  116. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.js +57 -12
  117. package/dist/esm/components/src/components/Atoms/Icon/paths.d.ts +13 -0
  118. package/dist/esm/components/src/components/Atoms/Icon/paths.d.ts.map +1 -1
  119. package/dist/esm/components/src/components/Atoms/Icon/paths.js +13 -0
  120. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.d.ts +37 -0
  121. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.d.ts.map +1 -0
  122. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.js +215 -0
  123. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.d.ts +2 -0
  124. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.d.ts.map +1 -0
  125. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.js +1 -0
  126. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts +30 -0
  127. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts.map +1 -0
  128. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.js +205 -0
  129. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts +2 -0
  130. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts.map +1 -0
  131. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.js +1 -0
  132. package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.d.ts +36 -0
  133. package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.d.ts.map +1 -0
  134. package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.js +253 -0
  135. package/dist/esm/components/src/components/Molecules/ChatMessageText/index.d.ts +2 -0
  136. package/dist/esm/components/src/components/Molecules/ChatMessageText/index.d.ts.map +1 -0
  137. package/dist/esm/components/src/components/Molecules/ChatMessageText/index.js +1 -0
  138. package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.d.ts +52 -0
  139. package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.d.ts.map +1 -0
  140. package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.js +280 -0
  141. package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.d.ts +2 -0
  142. package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.d.ts.map +1 -0
  143. package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.js +1 -0
  144. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts +25 -0
  145. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts.map +1 -0
  146. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.js +168 -0
  147. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts +2 -0
  148. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts.map +1 -0
  149. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.js +1 -0
  150. package/dist/esm/components/src/components/Molecules/ChatQuickview/ChatQuickview.d.ts +30 -0
  151. package/dist/esm/components/src/components/Molecules/ChatQuickview/ChatQuickview.d.ts.map +1 -0
  152. package/dist/esm/components/src/components/Molecules/ChatQuickview/ChatQuickview.js +508 -0
  153. package/dist/esm/components/src/components/Molecules/ChatQuickview/index.d.ts +2 -0
  154. package/dist/esm/components/src/components/Molecules/ChatQuickview/index.d.ts.map +1 -0
  155. package/dist/esm/components/src/components/Molecules/ChatQuickview/index.js +1 -0
  156. package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.d.ts +35 -0
  157. package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.d.ts.map +1 -0
  158. package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.js +246 -0
  159. package/dist/esm/components/src/components/Molecules/ChatResult/index.d.ts +2 -0
  160. package/dist/esm/components/src/components/Molecules/ChatResult/index.d.ts.map +1 -0
  161. package/dist/esm/components/src/components/Molecules/ChatResult/index.js +1 -0
  162. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.d.ts +24 -0
  163. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.d.ts.map +1 -0
  164. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.js +107 -0
  165. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.d.ts +2 -0
  166. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.d.ts.map +1 -0
  167. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.js +1 -0
  168. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.d.ts +16 -0
  169. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.d.ts.map +1 -0
  170. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.js +101 -0
  171. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.d.ts +2 -0
  172. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.d.ts.map +1 -0
  173. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.js +1 -0
  174. package/dist/esm/components/src/components/Molecules/OverlayBadge/OverlayBadge.d.ts +2 -2
  175. package/dist/esm/components/src/components/Molecules/OverlayBadge/OverlayBadge.d.ts.map +1 -1
  176. package/dist/esm/components/src/components/Molecules/Result/Result.d.ts +7 -3
  177. package/dist/esm/components/src/components/Molecules/Result/Result.d.ts.map +1 -1
  178. package/dist/esm/components/src/components/Molecules/Result/Result.js +51 -4
  179. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.d.ts +3 -0
  180. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.d.ts.map +1 -1
  181. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.js +28 -2
  182. package/dist/esm/components/src/components/Molecules/Slideout/Slideout.d.ts.map +1 -1
  183. package/dist/esm/components/src/components/Molecules/Slideout/Slideout.js +25 -29
  184. package/dist/esm/components/src/components/Molecules/Slideshow/Slideshow.d.ts.map +1 -1
  185. package/dist/esm/components/src/components/Molecules/Slideshow/Slideshow.js +88 -47
  186. package/dist/esm/components/src/components/Molecules/TabSelection/TabSelection.d.ts.map +1 -1
  187. package/dist/esm/components/src/components/Molecules/TabSelection/TabSelection.js +5 -3
  188. package/dist/esm/components/src/components/Organisms/AutocompleteLayout/AutocompleteLayout.d.ts.map +1 -1
  189. package/dist/esm/components/src/components/Organisms/AutocompleteLayout/AutocompleteLayout.js +8 -1
  190. package/dist/esm/components/src/components/Organisms/Chat/Chat.d.ts +41 -0
  191. package/dist/esm/components/src/components/Organisms/Chat/Chat.d.ts.map +1 -0
  192. package/dist/esm/components/src/components/Organisms/Chat/Chat.js +622 -0
  193. package/dist/esm/components/src/components/Organisms/Chat/Chat.lang.d.ts +79 -0
  194. package/dist/esm/components/src/components/Organisms/Chat/Chat.lang.d.ts.map +1 -0
  195. package/dist/esm/components/src/components/Organisms/Chat/Chat.lang.js +105 -0
  196. package/dist/esm/components/src/components/Organisms/Chat/components/ChatAttachments.d.ts +26 -0
  197. package/dist/esm/components/src/components/Organisms/Chat/components/ChatAttachments.d.ts.map +1 -0
  198. package/dist/esm/components/src/components/Organisms/Chat/components/ChatAttachments.js +99 -0
  199. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComparisonsTray.d.ts +13 -0
  200. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComparisonsTray.d.ts.map +1 -0
  201. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComparisonsTray.js +155 -0
  202. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComposer.d.ts +19 -0
  203. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComposer.d.ts.map +1 -0
  204. package/dist/esm/components/src/components/Organisms/Chat/components/ChatComposer.js +160 -0
  205. package/dist/esm/components/src/components/Organisms/Chat/components/ChatFacetsBar.d.ts +18 -0
  206. package/dist/esm/components/src/components/Organisms/Chat/components/ChatFacetsBar.d.ts.map +1 -0
  207. package/dist/esm/components/src/components/Organisms/Chat/components/ChatFacetsBar.js +363 -0
  208. package/dist/esm/components/src/components/Organisms/Chat/components/ChatHistory.d.ts +11 -0
  209. package/dist/esm/components/src/components/Organisms/Chat/components/ChatHistory.d.ts.map +1 -0
  210. package/dist/esm/components/src/components/Organisms/Chat/components/ChatHistory.js +124 -0
  211. package/dist/esm/components/src/components/Organisms/Chat/components/ChatMessages.d.ts +30 -0
  212. package/dist/esm/components/src/components/Organisms/Chat/components/ChatMessages.d.ts.map +1 -0
  213. package/dist/esm/components/src/components/Organisms/Chat/components/ChatMessages.js +212 -0
  214. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSessionFeedback.d.ts +13 -0
  215. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSessionFeedback.d.ts.map +1 -0
  216. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSessionFeedback.js +117 -0
  217. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSideChat.d.ts +19 -0
  218. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSideChat.d.ts.map +1 -0
  219. package/dist/esm/components/src/components/Organisms/Chat/components/ChatSideChat.js +167 -0
  220. package/dist/esm/components/src/components/Organisms/Chat/components/ChatTopicDrift.d.ts +14 -0
  221. package/dist/esm/components/src/components/Organisms/Chat/components/ChatTopicDrift.d.ts.map +1 -0
  222. package/dist/esm/components/src/components/Organisms/Chat/components/ChatTopicDrift.js +143 -0
  223. package/dist/esm/components/src/components/Organisms/Chat/components/chatAccentTheme.d.ts +15 -0
  224. package/dist/esm/components/src/components/Organisms/Chat/components/chatAccentTheme.d.ts.map +1 -0
  225. package/dist/esm/components/src/components/Organisms/Chat/components/chatAccentTheme.js +58 -0
  226. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.d.ts +32 -0
  227. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.d.ts.map +1 -0
  228. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.js +62 -0
  229. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.d.ts +40 -0
  230. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.d.ts.map +1 -0
  231. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.js +92 -0
  232. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.d.ts +43 -0
  233. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.d.ts.map +1 -0
  234. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.js +109 -0
  235. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatScrollLock.d.ts +26 -0
  236. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatScrollLock.d.ts.map +1 -0
  237. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatScrollLock.js +131 -0
  238. package/dist/esm/components/src/components/Organisms/Chat/index.d.ts +3 -0
  239. package/dist/esm/components/src/components/Organisms/Chat/index.d.ts.map +1 -0
  240. package/dist/esm/components/src/components/Organisms/Chat/index.js +2 -0
  241. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.d.ts +18 -0
  242. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.d.ts.map +1 -0
  243. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.js +88 -0
  244. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.lang.d.ts +7 -0
  245. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.lang.d.ts.map +1 -0
  246. package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.lang.js +8 -0
  247. package/dist/esm/components/src/components/Organisms/ChatButton/index.d.ts +3 -0
  248. package/dist/esm/components/src/components/Organisms/ChatButton/index.d.ts.map +1 -0
  249. package/dist/esm/components/src/components/Organisms/ChatButton/index.js +2 -0
  250. package/dist/esm/components/src/components/Organisms/QuickviewLayout/QuickviewLayout.d.ts +5 -1
  251. package/dist/esm/components/src/components/Organisms/QuickviewLayout/QuickviewLayout.d.ts.map +1 -1
  252. package/dist/esm/components/src/components/Organisms/QuickviewLayout/QuickviewLayout.js +44 -11
  253. package/dist/esm/components/src/components/Organisms/Results/Results.js +1 -1
  254. package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.d.ts.map +1 -1
  255. package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.js +5 -0
  256. package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts.map +1 -1
  257. package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.js +5 -0
  258. package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.d.ts.map +1 -1
  259. package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.js +5 -0
  260. package/dist/esm/components/src/components/Templates/Chat/Chat.d.ts +12 -0
  261. package/dist/esm/components/src/components/Templates/Chat/Chat.d.ts.map +1 -0
  262. package/dist/esm/components/src/components/Templates/Chat/Chat.js +41 -0
  263. package/dist/esm/components/src/components/Templates/Chat/index.d.ts +2 -0
  264. package/dist/esm/components/src/components/Templates/Chat/index.d.ts.map +1 -0
  265. package/dist/esm/components/src/components/Templates/Chat/index.js +1 -0
  266. package/dist/esm/components/src/components/Templates/ChatButton/ChatButton.d.ts +13 -0
  267. package/dist/esm/components/src/components/Templates/ChatButton/ChatButton.d.ts.map +1 -0
  268. package/dist/esm/components/src/components/Templates/ChatButton/ChatButton.js +41 -0
  269. package/dist/esm/components/src/components/Templates/ChatButton/index.d.ts +2 -0
  270. package/dist/esm/components/src/components/Templates/ChatButton/index.d.ts.map +1 -0
  271. package/dist/esm/components/src/components/Templates/ChatButton/index.js +1 -0
  272. package/dist/esm/components/src/components/Templates/Search/Search.d.ts.map +1 -1
  273. package/dist/esm/components/src/components/Templates/Search/Search.js +9 -1
  274. package/dist/esm/components/src/index.d.ts +14 -0
  275. package/dist/esm/components/src/index.d.ts.map +1 -1
  276. package/dist/esm/components/src/index.js +14 -0
  277. package/dist/esm/components/src/providers/langComponents.d.ts +20 -0
  278. package/dist/esm/components/src/providers/langComponents.d.ts.map +1 -1
  279. package/dist/esm/components/src/providers/themeComponents.d.ts +203 -1
  280. package/dist/esm/components/src/providers/themeComponents.d.ts.map +1 -1
  281. package/dist/esm/components/src/providers/themeComponents.js +20 -0
  282. package/dist/esm/components/src/providers/withTracking.d.ts +2 -2
  283. package/dist/esm/components/src/providers/withTracking.d.ts.map +1 -1
  284. package/dist/esm/components/src/themes/base/components/templates/chat.d.ts +4 -0
  285. package/dist/esm/components/src/themes/base/components/templates/chat.d.ts.map +1 -0
  286. package/dist/esm/components/src/themes/base/components/templates/chat.js +3 -0
  287. package/dist/esm/components/src/themes/base/components/templates/chatButton.d.ts +4 -0
  288. package/dist/esm/components/src/themes/base/components/templates/chatButton.d.ts.map +1 -0
  289. package/dist/esm/components/src/themes/base/components/templates/chatButton.js +3 -0
  290. package/dist/esm/components/src/themes/base/components/templates/index.d.ts.map +1 -1
  291. package/dist/esm/components/src/themes/base/components/templates/index.js +10 -0
  292. package/dist/esm/components/src/themes/bocachica/components/templates/chat.d.ts +4 -0
  293. package/dist/esm/components/src/themes/bocachica/components/templates/chat.d.ts.map +1 -0
  294. package/dist/esm/components/src/themes/bocachica/components/templates/chat.js +3 -0
  295. package/dist/esm/components/src/themes/bocachica/components/templates/chatButton.d.ts +4 -0
  296. package/dist/esm/components/src/themes/bocachica/components/templates/chatButton.d.ts.map +1 -0
  297. package/dist/esm/components/src/themes/bocachica/components/templates/chatButton.js +3 -0
  298. package/dist/esm/components/src/themes/bocachica/components/templates/index.d.ts.map +1 -1
  299. package/dist/esm/components/src/themes/bocachica/components/templates/index.js +10 -0
  300. package/dist/esm/components/src/themes/pike/components/templates/chat.d.ts +4 -0
  301. package/dist/esm/components/src/themes/pike/components/templates/chat.d.ts.map +1 -0
  302. package/dist/esm/components/src/themes/pike/components/templates/chat.js +3 -0
  303. package/dist/esm/components/src/themes/pike/components/templates/chatButton.d.ts +4 -0
  304. package/dist/esm/components/src/themes/pike/components/templates/chatButton.d.ts.map +1 -0
  305. package/dist/esm/components/src/themes/pike/components/templates/chatButton.js +3 -0
  306. package/dist/esm/components/src/themes/pike/components/templates/index.d.ts.map +1 -1
  307. package/dist/esm/components/src/themes/pike/components/templates/index.js +10 -0
  308. package/dist/esm/components/src/themes/snapnco/components/templates/chat.d.ts +4 -0
  309. package/dist/esm/components/src/themes/snapnco/components/templates/chat.d.ts.map +1 -0
  310. package/dist/esm/components/src/themes/snapnco/components/templates/chat.js +3 -0
  311. package/dist/esm/components/src/themes/snapnco/components/templates/chatButton.d.ts +4 -0
  312. package/dist/esm/components/src/themes/snapnco/components/templates/chatButton.d.ts.map +1 -0
  313. package/dist/esm/components/src/themes/snapnco/components/templates/chatButton.js +3 -0
  314. package/dist/esm/components/src/themes/snapnco/components/templates/index.d.ts.map +1 -1
  315. package/dist/esm/components/src/themes/snapnco/components/templates/index.js +10 -0
  316. package/dist/esm/components/src/themes/snappy/components/templates/chat.d.ts +4 -0
  317. package/dist/esm/components/src/themes/snappy/components/templates/chat.d.ts.map +1 -0
  318. package/dist/esm/components/src/themes/snappy/components/templates/chat.js +3 -0
  319. package/dist/esm/components/src/themes/snappy/components/templates/chatButton.d.ts +4 -0
  320. package/dist/esm/components/src/themes/snappy/components/templates/chatButton.d.ts.map +1 -0
  321. package/dist/esm/components/src/themes/snappy/components/templates/chatButton.js +3 -0
  322. package/dist/esm/components/src/themes/snappy/components/templates/index.d.ts.map +1 -1
  323. package/dist/esm/components/src/themes/snappy/components/templates/index.js +10 -0
  324. package/dist/esm/components/src/themes/themeComponents/chat.d.ts +4 -0
  325. package/dist/esm/components/src/themes/themeComponents/chat.d.ts.map +1 -0
  326. package/dist/esm/components/src/themes/themeComponents/chat.js +11 -0
  327. package/dist/esm/components/src/themes/themeComponents/chatButton.d.ts +4 -0
  328. package/dist/esm/components/src/themes/themeComponents/chatButton.d.ts.map +1 -0
  329. package/dist/esm/components/src/themes/themeComponents/chatButton.js +6 -0
  330. package/dist/esm/components/src/utilities/Colour/Colour.d.ts +15 -0
  331. package/dist/esm/components/src/utilities/Colour/Colour.d.ts.map +1 -1
  332. package/dist/esm/components/src/utilities/Colour/Colour.js +41 -0
  333. package/dist/esm/components/src/utilities/snapify.d.ts +3 -2
  334. package/dist/esm/components/src/utilities/snapify.d.ts.map +1 -1
  335. package/dist/esm/components/src/utilities/snapify.js +29 -2
  336. package/dist/esm/src/Instantiators/RecommendationInstantiator.d.ts +4 -1
  337. package/dist/esm/src/Instantiators/RecommendationInstantiator.d.ts.map +1 -1
  338. package/dist/esm/src/Instantiators/RecommendationInstantiator.js +4 -1
  339. package/dist/esm/src/Snap.d.ts +3 -1
  340. package/dist/esm/src/Snap.d.ts.map +1 -1
  341. package/dist/esm/src/Snap.js +84 -2
  342. package/dist/esm/src/Templates/SnapTemplates.d.ts +2 -1
  343. package/dist/esm/src/Templates/SnapTemplates.d.ts.map +1 -1
  344. package/dist/esm/src/Templates/SnapTemplates.js +54 -5
  345. package/dist/esm/src/Templates/Stores/LibraryStore.d.ts +43 -0
  346. package/dist/esm/src/Templates/Stores/LibraryStore.d.ts.map +1 -1
  347. package/dist/esm/src/Templates/Stores/LibraryStore.js +51 -1
  348. package/dist/esm/src/Templates/Stores/TemplateStore.d.ts +20 -6
  349. package/dist/esm/src/Templates/Stores/TemplateStore.d.ts.map +1 -1
  350. package/dist/esm/src/Templates/Stores/TemplateStore.js +3 -3
  351. package/dist/esm/src/Templates/Stores/library/components/Chat.d.ts +2 -0
  352. package/dist/esm/src/Templates/Stores/library/components/Chat.d.ts.map +1 -0
  353. package/dist/esm/src/Templates/Stores/library/components/Chat.js +1 -0
  354. package/dist/esm/src/Templates/Stores/library/components/ChatButton.d.ts +2 -0
  355. package/dist/esm/src/Templates/Stores/library/components/ChatButton.d.ts.map +1 -0
  356. package/dist/esm/src/Templates/Stores/library/components/ChatButton.js +1 -0
  357. package/dist/esm/src/Templates/Stores/library/languages/ar.d.ts.map +1 -1
  358. package/dist/esm/src/Templates/Stores/library/languages/ar.js +485 -0
  359. package/dist/esm/src/Templates/Stores/library/languages/de.d.ts.map +1 -1
  360. package/dist/esm/src/Templates/Stores/library/languages/de.js +485 -0
  361. package/dist/esm/src/Templates/Stores/library/languages/es.d.ts.map +1 -1
  362. package/dist/esm/src/Templates/Stores/library/languages/es.js +490 -0
  363. package/dist/esm/src/Templates/Stores/library/languages/fr.d.ts.map +1 -1
  364. package/dist/esm/src/Templates/Stores/library/languages/fr.js +490 -0
  365. package/dist/esm/src/Templates/Stores/library/languages/hi.d.ts.map +1 -1
  366. package/dist/esm/src/Templates/Stores/library/languages/hi.js +485 -0
  367. package/dist/esm/src/Templates/Stores/library/languages/it.d.ts.map +1 -1
  368. package/dist/esm/src/Templates/Stores/library/languages/it.js +485 -0
  369. package/dist/esm/src/Templates/Stores/library/languages/ja.d.ts.map +1 -1
  370. package/dist/esm/src/Templates/Stores/library/languages/ja.js +485 -0
  371. package/dist/esm/src/Templates/Stores/library/languages/ko.d.ts.map +1 -1
  372. package/dist/esm/src/Templates/Stores/library/languages/ko.js +485 -0
  373. package/dist/esm/src/Templates/Stores/library/languages/nl.d.ts.map +1 -1
  374. package/dist/esm/src/Templates/Stores/library/languages/nl.js +485 -0
  375. package/dist/esm/src/Templates/Stores/library/languages/pt.d.ts.map +1 -1
  376. package/dist/esm/src/Templates/Stores/library/languages/pt.js +485 -0
  377. package/dist/esm/src/Templates/Stores/library/languages/ru.d.ts.map +1 -1
  378. package/dist/esm/src/Templates/Stores/library/languages/ru.js +485 -0
  379. package/dist/esm/src/Templates/Stores/library/languages/tr.d.ts.map +1 -1
  380. package/dist/esm/src/Templates/Stores/library/languages/tr.js +485 -0
  381. package/dist/esm/src/Templates/Stores/library/languages/vi.d.ts.map +1 -1
  382. package/dist/esm/src/Templates/Stores/library/languages/vi.js +485 -0
  383. package/dist/esm/src/Templates/Stores/library/languages/zh.d.ts.map +1 -1
  384. package/dist/esm/src/Templates/Stores/library/languages/zh.js +485 -0
  385. package/dist/esm/src/create/createChatController.d.ts +5 -0
  386. package/dist/esm/src/create/createChatController.d.ts.map +1 -0
  387. package/dist/esm/src/create/createChatController.js +29 -0
  388. package/dist/esm/src/create/index.d.ts +1 -0
  389. package/dist/esm/src/create/index.d.ts.map +1 -1
  390. package/dist/esm/src/create/index.js +1 -0
  391. package/dist/esm/src/setupEvents.d.ts +13 -0
  392. package/dist/esm/src/setupEvents.d.ts.map +1 -1
  393. package/dist/esm/src/setupEvents.js +44 -0
  394. package/dist/esm/src/types.d.ts +13 -3
  395. package/dist/esm/src/types.d.ts.map +1 -1
  396. package/dist/esm/src/utils/applyChatTargetInject.d.ts +3 -0
  397. package/dist/esm/src/utils/applyChatTargetInject.d.ts.map +1 -0
  398. package/dist/esm/src/utils/applyChatTargetInject.js +22 -0
  399. package/dist/esm/src/utils/index.d.ts +1 -0
  400. package/dist/esm/src/utils/index.d.ts.map +1 -1
  401. package/dist/esm/src/utils/index.js +1 -0
  402. package/eslint/src/validate-config.cjs +140 -98
  403. package/package.json +14 -12
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,KAAK,EACX,gBAAgB,EAChB,sBAAsB,EACtB,4BAA4B,EAC5B,sBAAsB,EACtB,8BAA8B,EAC9B,gBAAgB,EAChB,oBAAoB,EACpB,gBAAgB,EAChB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAClI,OAAO,KAAK,EAAE,UAAU,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AACjG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAEtD,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,aAAa,GAAG,UAAU,GAAG,OAAO,CAAC;AAEpF,MAAM,MAAM,sBAAsB,GAAG;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,WAAW,GAAG,iBAAiB,GAAG,WAAW,GAAG,mBAAmB,GAAG,SAAS,CAAC;IACxF,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACpC,CAAC;AAEF,KAAK,kBAAkB,CAAC,IAAI,IAAI;KAC9B,QAAQ,IAAI,MAAM,IAAI,GAAG;QACzB,MAAM,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;QACzB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC5B,yBAAyB,CAAC,EAAE,OAAO,CAAC;QACpC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;KACtB;CACD,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC9B,QAAQ,CAAC,EAAE;QACV,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC5B,0BAA0B,CAAC,EAAE,OAAO,CAAC;KACrC,CAAC;IACF,UAAU,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAClC,IAAI,CAAC,EAAE,MAAM,OAAO,OAAO,GAAG,OAAO,CAAC;IACtC,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,MAAM,CAAC,EAAE;QACR,OAAO,EAAE,aAAa,CAAC;QACvB,MAAM,CAAC,EAAE,YAAY,CAAC;KACtB,CAAC;IACF,UAAU,EAAE,gBAAgB,CAAC;IAC7B,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACxC,IAAI,CAAC,EAAE,MAAM,OAAO,OAAO,GAAG,OAAO,CAAC;IACtC,GAAG,CAAC,EAAE,mBAAmB,GAAG;QAC3B,OAAO,CAAC,EAAE,gBAAgB,CAAC;KAC3B,CAAC;IACF,MAAM,CAAC,EAAE;QACR,OAAO,EAAE,aAAa,CAAC;QACvB,MAAM,CAAC,EAAE,YAAY,CAAC;KACtB,CAAC;IACF,UAAU,EAAE,sBAAsB,CAAC;IACnC,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACtC,IAAI,CAAC,EAAE,MAAM,OAAO,OAAO,GAAG,OAAO,CAAC;IACtC,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,MAAM,CAAC,EAAE;QACR,OAAO,EAAE,aAAa,CAAC;QACvB,MAAM,CAAC,EAAE,YAAY,CAAC;KACtB,CAAC;IACF,UAAU,EAAE,oBAAoB,CAAC;IACjC,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG;IAC9C,IAAI,CAAC,EAAE,MAAM,OAAO,OAAO,GAAG,OAAO,CAAC;IACtC,GAAG,CAAC,EAAE,mBAAmB,GAAG;QAC3B,OAAO,CAAC,EAAE;YACT,KAAK,EAAE,MAAM,CAAC;YACd,KAAK,EAAE,MAAM,CAAC;SACd,EAAE,CAAC;KACJ,CAAC;IACF,MAAM,CAAC,EAAE;QACR,OAAO,EAAE,aAAa,CAAC;QACvB,MAAM,CAAC,EAAE,YAAY,CAAC;KACtB,CAAC;IACF,UAAU,EAAE,4BAA4B,CAAC;IACzC,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACxC,IAAI,CAAC,EAAE,MAAM,OAAO,OAAO,GAAG,OAAO,CAAC;IACtC,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,MAAM,CAAC,EAAE;QACR,OAAO,EAAE,aAAa,CAAC;QACvB,MAAM,CAAC,EAAE,YAAY,CAAC;KACtB,CAAC;IACF,UAAU,EAAE,sBAAsB,CAAC;IACnC,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,kCAAkC,GAAG;IAChD,IAAI,CAAC,EAAE,MAAM,OAAO,OAAO,GAAG,OAAO,CAAC;IACtC,GAAG,CAAC,EAAE,mBAAmB,CAAC;IAC1B,MAAM,CAAC,EAAE;QACR,OAAO,EAAE,aAAa,CAAC;QACvB,MAAM,CAAC,EAAE,YAAY,CAAC;KACtB,CAAC;IACF,UAAU,EAAE,8BAA8B,CAAC;IAC3C,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,CAAC,KAAK,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,cAAc,CAAA;CAAE,KAAK,gBAAgB,CAAC;AAG/G,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAC3D,CAAC,GACD,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GAC9B,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GACrB,CAAC,SAAS,MAAM,GAChB;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACtC,CAAC,CAAC;AAEL,OAAO,CAAC,MAAM,CAAC;IACd,UAAU,MAAM;QACf,KAAK,CAAC,EAAE,GAAG,CAAC;KACZ;CACD;AAED,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC;AAGnC,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;AACpE,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AACjG,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEtD,KAAK,aAAa,GAAG;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,aAAa,CAAC;CACrB,CAAC;AACF,MAAM,MAAM,cAAc,GAAG;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,aAAa,EAAE,CAAC;CACzB,EAAE,CAAC;AAGJ,MAAM,WAAW,iBAAiB,CAAC,MAAM,EAAE,KAAK,GAAG,aAAa;IAE/D,IAAI,EAAE,iBAAiB,CAAC;IAGxB,KAAK,EAAE,MAAM,CAAC;IAGd,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,UAAU,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,cAAc,CAAC;IAIjD,eAAe,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,mBAAmB,CAAC;IAG3D,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,KAAK,CAAC;IAGrC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IAIvC,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAGvD,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAEnC,eAAe,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IAG9C,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CACpC;AAGD,MAAM,WAAW,gBAAgB,CAAC,MAAM,GAAG,MAAM;IAEhD,KAAK,CAAC,EAAE,MAAM,CAAC;IAGf,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,WAAW,CAAC,EAAE,OAAO,CAAC;IAGtB,SAAS,CAAC,EAAE,OAAO,CAAC;IAGpB,QAAQ,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC;CACtC"}
@@ -0,0 +1,3 @@
1
+ import type { ExtendedTarget } from '../Snap';
2
+ export declare function applyChatTargetInject(target: ExtendedTarget): ExtendedTarget;
3
+ //# sourceMappingURL=applyChatTargetInject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applyChatTargetInject.d.ts","sourceRoot":"","sources":["../../../../src/utils/applyChatTargetInject.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAM9C,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CAiB5E"}
@@ -0,0 +1,22 @@
1
+ // Chat targets never render *into* the matched element — DomTargeter would empty it
2
+ // (and hideTarget would hide it, e.g. a merchant's nav while injecting a ChatButton).
3
+ // Instead, append a dedicated container to render into and never hide the host.
4
+ // An explicit `inject` in the target config always wins.
5
+ export function applyChatTargetInject(target) {
6
+ if (target.inject) {
7
+ return target;
8
+ }
9
+ const isBody = target.selector === 'body';
10
+ return {
11
+ ...target,
12
+ hideTarget: false,
13
+ inject: {
14
+ action: 'append',
15
+ element: () => {
16
+ const container = document.createElement('div');
17
+ container.className = isBody ? 'ss__chat--target' : 'ss__chat--inline-target';
18
+ return container;
19
+ },
20
+ },
21
+ };
22
+ }
@@ -1,3 +1,4 @@
1
+ export { applyChatTargetInject } from './applyChatTargetInject';
1
2
  export { configureSnapFeatures } from './configureSnapFeatures/configureSnapFeatures';
2
3
  export { combineMerge } from './combineMerge';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,+CAA+C,CAAC;AACtF,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,2 +1,3 @@
1
+ export { applyChatTargetInject } from './applyChatTargetInject';
1
2
  export { configureSnapFeatures } from './configureSnapFeatures/configureSnapFeatures';
2
3
  export { combineMerge } from './combineMerge';
@@ -42,14 +42,17 @@ module.exports = {
42
42
  noResultComponents: '"{{ value }}" is not a valid resultComponent. No keys found in components.result.',
43
43
  invalidGlobalResultComponent: '"{{ value }}" is not a valid globalResultComponent. Must be one of: {{ validKeys }}.',
44
44
  noGlobalResultComponents: '"{{ value }}" is not a valid globalResultComponent. No keys found in components.result.',
45
+ // tab values are rendered by `staticValue` - literals quoted, references in backticks
45
46
  duplicateTabId:
46
- 'Tab id "{{ id }}" is used by more than one tab controller. Every search/autocomplete tab id must be unique, since it becomes the controller id.',
47
- mismatchedTabParam:
48
- 'Tab "{{ id }}" (siteId "{{ siteId }}") uses param "{{ param }}", but other tabs sharing siteId "{{ siteId }}" use param "{{ expectedParam }}". Tab controllers across search and autocomplete that share a siteId must use the same param.',
47
+ 'Tab id {{ id }} is used by more than one tab controller. Every search/autocomplete tab id must be unique, since it becomes the controller id.',
49
48
  duplicateSiteIdInFeature:
50
- 'Tab "{{ id }}" uses siteId "{{ siteId }}", which is already used by another tab in {{ feature }}.tabs. Tabs within the same feature must target unique siteIds.',
49
+ 'Tab {{ id }} uses siteId {{ siteId }}, which is already used by another tab in {{ feature }}.tabs. Tabs within the same feature must target unique siteIds.',
50
+ duplicateParamInFeature:
51
+ 'Tab {{ id }} uses param {{ param }}, which is already used by another tab in {{ feature }}.tabs. Tabs within the same feature must use unique params, since the param identifies the tab in the URL and namespaces its URL state.',
52
+ mismatchedTabParam:
53
+ 'Tab {{ id }} (siteId {{ siteId }}) uses param {{ param }}, but other tabs sharing siteId {{ siteId }} use param {{ expectedParam }}. Tab controllers across search and autocomplete that share a siteId must use the same param.',
51
54
  mismatchedTabSiteId:
52
- 'Tab "{{ id }}" (param "{{ param }}") uses siteId "{{ siteId }}", but other tabs sharing param "{{ param }}" use siteId "{{ expectedSiteId }}". Tab controllers that share a param must use the same siteId.',
55
+ 'Tab {{ id }} (param {{ param }}) uses siteId {{ siteId }}, but other tabs sharing param {{ param }} use siteId {{ expectedSiteId }}. Tab controllers across search and autocomplete that share a param must use the same siteId.',
53
56
  invalidOpenNamedSelectorProp:
54
57
  '"{{ value }}" is not a valid prop for the "{{ selector }}" override ({{ componentType }} resolves to {{ typeName }}). Must be one of: {{ validKeys }}.',
55
58
  invalidOpenNamedSelectorPropType:
@@ -690,102 +693,109 @@ module.exports = {
690
693
  }
691
694
 
692
695
  /**
693
- * Validate that every search/autocomplete tab id is unique (it becomes the
694
- * controller id), that siteIds are unique within a feature's tabs, and that
695
- * tabs sharing a siteId or a param (across search and autocomplete, or
696
- * within a feature) agree on the other value too — a siteId and its param
697
- * identify the same catalog, so they must move together.
696
+ * Validate the search/autocomplete tab controller configs:
697
+ *
698
+ * - every tab id is unique across the whole config (it becomes the controller id)
699
+ * - within a feature, every tab has its own siteId and its own param - the param is the
700
+ * tab's identity in the url and namespaces its url state, so two tabs sharing one
701
+ * collide, and selecting the second writes a url that resolves back to the first
702
+ * - across search and autocomplete, tabs sharing a siteId or a param agree on the other
703
+ * value too - a siteId and its param identify the same catalog, so they must move
704
+ * together
705
+ *
706
+ * Values are compared statically (see `staticValue`): string literals by value, and
707
+ * identifiers or member chains (`siteId`, `config.siteId`) by source text, since the same
708
+ * expression reads the same value. Two DIFFERENT expressions are never assumed to differ,
709
+ * so the mismatch checks only ever compare literals.
698
710
  */
699
711
  function validateTabs(configObjectExpression, context) {
700
- const tabs = collectTabs(configObjectExpression);
712
+ const tabs = collectTabs(configObjectExpression, context);
701
713
  if (tabs.length === 0) return;
702
714
 
703
- const tabsById = new Map();
704
- for (const tab of tabs) {
705
- if (tab.id === undefined) continue;
706
- if (!tabsById.has(tab.id)) tabsById.set(tab.id, []);
707
- tabsById.get(tab.id).push(tab);
708
- }
709
- for (const [id, group] of tabsById) {
710
- if (group.length > 1) {
711
- for (const tab of group) {
712
- context.report({
713
- node: tab.idNode,
714
- messageId: 'duplicateTabId',
715
- data: { id },
716
- });
717
- }
715
+ // duplicate ids anywhere in the config
716
+ for (const group of groupTabs(tabs, (tab) => tab.id?.key)) {
717
+ if (group.length < 2) continue;
718
+ for (const tab of group) {
719
+ context.report({
720
+ node: tab.id.node,
721
+ messageId: 'duplicateTabId',
722
+ data: { id: tab.id.display },
723
+ });
718
724
  }
719
725
  }
720
726
 
721
- const tabsByFeatureAndSiteId = new Map();
722
- for (const tab of tabs) {
723
- if (tab.siteId === undefined) continue;
724
- const key = `${tab.feature} ${tab.siteId}`;
725
- if (!tabsByFeatureAndSiteId.has(key)) tabsByFeatureAndSiteId.set(key, []);
726
- tabsByFeatureAndSiteId.get(key).push(tab);
727
- }
728
- for (const group of tabsByFeatureAndSiteId.values()) {
729
- if (group.length > 1) {
730
- for (const tab of group) {
731
- context.report({
732
- node: tab.siteIdNode,
733
- messageId: 'duplicateSiteIdInFeature',
734
- data: { id: tab.id, siteId: tab.siteId, feature: tab.feature },
735
- });
736
- }
727
+ // duplicate siteIds and params within a feature
728
+ for (const group of groupTabs(tabs, (tab) => tab.siteId && `${tab.feature} ${tab.siteId.key}`)) {
729
+ if (group.length < 2) continue;
730
+ for (const tab of group) {
731
+ context.report({
732
+ node: tab.siteId.node,
733
+ messageId: 'duplicateSiteIdInFeature',
734
+ data: { id: displayOf(tab.id), siteId: tab.siteId.display, feature: tab.feature },
735
+ });
737
736
  }
738
737
  }
739
-
740
- const tabsBySiteId = new Map();
741
- for (const tab of tabs) {
742
- if (tab.siteId === undefined || tab.param === undefined) continue;
743
- if (!tabsBySiteId.has(tab.siteId)) tabsBySiteId.set(tab.siteId, []);
744
- tabsBySiteId.get(tab.siteId).push(tab);
745
- }
746
- for (const [siteId, group] of tabsBySiteId) {
747
- // only enforce when the siteId is shared across both search and autocomplete tabs
748
- if (!group.some((tab) => tab.feature === 'search') || !group.some((tab) => tab.feature === 'autocomplete')) {
749
- continue;
738
+ for (const group of groupTabs(tabs, (tab) => tab.param && `${tab.feature} ${tab.param.key}`)) {
739
+ if (group.length < 2) continue;
740
+ for (const tab of group) {
741
+ context.report({
742
+ node: tab.param.node,
743
+ messageId: 'duplicateParamInFeature',
744
+ data: { id: displayOf(tab.id), param: tab.param.display, feature: tab.feature },
745
+ });
750
746
  }
747
+ }
751
748
 
752
- const expectedParam = group[0].param;
753
- for (const tab of group) {
754
- if (tab.param !== expectedParam) {
755
- context.report({
756
- node: tab.paramNode,
757
- messageId: 'mismatchedTabParam',
758
- data: { id: tab.id, siteId, param: tab.param, expectedParam },
759
- });
760
- }
749
+ // tabs sharing a siteId across features must share a param, and vice versa. within a
750
+ // feature the duplicate checks above already own the collision, so only groups that span
751
+ // both features are compared here - otherwise a duplicate param would also be reported as
752
+ // a siteId mismatch
753
+ reportMismatches(tabs, { shared: 'siteId', compared: 'param', messageId: 'mismatchedTabParam', expectedKey: 'expectedParam' }, context);
754
+ reportMismatches(tabs, { shared: 'param', compared: 'siteId', messageId: 'mismatchedTabSiteId', expectedKey: 'expectedSiteId' }, context);
755
+ }
756
+
757
+ function reportMismatches(tabs, { shared, compared, messageId, expectedKey }, context) {
758
+ for (const group of groupTabs(tabs, (tab) => tab[shared] && tab[compared] && tab[shared].key)) {
759
+ if (!group.some((tab) => tab.feature === 'search') || !group.some((tab) => tab.feature === 'autocomplete')) continue;
760
+
761
+ // two different references may still hold the same value, so only literals are compared
762
+ const literals = group.filter((tab) => tab[compared].literal !== undefined);
763
+ const expected = literals[0];
764
+ for (const tab of literals) {
765
+ if (tab[compared].key === expected[compared].key) continue;
766
+ context.report({
767
+ node: tab[compared].node,
768
+ messageId,
769
+ data: {
770
+ id: displayOf(tab.id),
771
+ siteId: tab.siteId.display,
772
+ param: tab.param.display,
773
+ [expectedKey]: expected[compared].display,
774
+ },
775
+ });
761
776
  }
762
777
  }
778
+ }
763
779
 
764
- const tabsByParam = new Map();
780
+ /**
781
+ * Group tabs by a key; tabs whose key is falsy (missing or unreadable value) are left out.
782
+ */
783
+ function groupTabs(tabs, keyOf) {
784
+ const groups = new Map();
765
785
  for (const tab of tabs) {
766
- if (tab.param === undefined || tab.siteId === undefined) continue;
767
- if (!tabsByParam.has(tab.param)) tabsByParam.set(tab.param, []);
768
- tabsByParam.get(tab.param).push(tab);
769
- }
770
- for (const [param, group] of tabsByParam) {
771
- const expectedSiteId = group[0].siteId;
772
- for (const tab of group) {
773
- if (tab.siteId !== expectedSiteId) {
774
- context.report({
775
- node: tab.siteIdNode,
776
- messageId: 'mismatchedTabSiteId',
777
- data: { id: tab.id, param, siteId: tab.siteId, expectedSiteId },
778
- });
779
- }
780
- }
786
+ const key = keyOf(tab);
787
+ if (!key) continue;
788
+ if (!groups.has(key)) groups.set(key, []);
789
+ groups.get(key).push(tab);
781
790
  }
791
+ return groups.values();
782
792
  }
783
793
 
784
794
  /**
785
- * Collect { feature, id, idNode, siteId, siteIdNode, param, paramNode } for
786
- * every tab in config.search.tabs and config.autocomplete.tabs.
795
+ * Collect { feature, id, siteId, param } for every tab in config.search.tabs and
796
+ * config.autocomplete.tabs, each value described by `staticValue` (or undefined).
787
797
  */
788
- function collectTabs(configObjectExpression) {
798
+ function collectTabs(configObjectExpression, context) {
789
799
  const tabs = [];
790
800
 
791
801
  for (const feature of ['search', 'autocomplete']) {
@@ -798,18 +808,11 @@ module.exports = {
798
808
  for (const element of tabsProp.value.elements) {
799
809
  if (!element || element.type !== 'ObjectExpression') continue;
800
810
 
801
- const idProp = findProperty(element, 'id');
802
- const siteIdProp = findProperty(element, 'siteId');
803
- const paramProp = findProperty(element, 'param');
804
-
805
811
  tabs.push({
806
812
  feature,
807
- id: literalStringValue(idProp),
808
- idNode: idProp?.value,
809
- siteId: literalStringValue(siteIdProp),
810
- siteIdNode: siteIdProp?.value,
811
- param: literalStringValue(paramProp),
812
- paramNode: paramProp?.value,
813
+ id: staticValue(findProperty(element, 'id'), context),
814
+ siteId: staticValue(findProperty(element, 'siteId'), context),
815
+ param: staticValue(findProperty(element, 'param'), context),
813
816
  });
814
817
  }
815
818
  }
@@ -818,15 +821,54 @@ module.exports = {
818
821
  }
819
822
 
820
823
  /**
821
- * Get the string value of a property whose value is a string literal,
822
- * or undefined if the property is missing or not a string literal
823
- * (e.g. a computed/spread value we can't statically check).
824
+ * Describe a tab property's value for comparison:
825
+ * - `key` is equal for two values that are certainly equal at runtime
826
+ * - `literal` is the string value when it is known statically, else undefined
827
+ * - `display` is how the value reads in a message: literals quoted, references in backticks
828
+ *
829
+ * Returns undefined when the property is missing or its value cannot be reasoned about
830
+ * statically (a call, a conditional, a spread...), which excludes it from every check.
824
831
  */
825
- function literalStringValue(property) {
826
- if (!property || property.value.type !== 'Literal' || typeof property.value.value !== 'string') {
827
- return undefined;
832
+ function staticValue(property, context) {
833
+ if (!property) return undefined;
834
+
835
+ let node = property.value;
836
+ // `siteId as string`, `siteId!`, `siteId satisfies string` all read the inner expression
837
+ while (node.type === 'TSAsExpression' || node.type === 'TSNonNullExpression' || node.type === 'TSSatisfiesExpression') {
838
+ node = node.expression;
839
+ }
840
+
841
+ if (node.type === 'Literal' && typeof node.value === 'string') {
842
+ return { node: property.value, key: JSON.stringify(node.value), literal: node.value, display: JSON.stringify(node.value) };
843
+ }
844
+ if (node.type === 'TemplateLiteral' && node.expressions.length === 0) {
845
+ const value = node.quasis[0].value.cooked;
846
+ return { node: property.value, key: JSON.stringify(value), literal: value, display: JSON.stringify(value) };
828
847
  }
829
- return property.value.value;
848
+ if (isStableReference(node)) {
849
+ const sourceCode = context.sourceCode ?? context.getSourceCode();
850
+ const text = sourceCode.getText(node);
851
+ return { node: property.value, key: `ref ${text}`, literal: undefined, display: `\`${text}\`` };
852
+ }
853
+
854
+ return undefined;
855
+ }
856
+
857
+ /**
858
+ * An identifier or a member chain over identifiers (`siteId`, `config.siteId`,
859
+ * `sites['blog']`) - the same text reads the same value, unlike a call or a conditional.
860
+ */
861
+ function isStableReference(node) {
862
+ if (node.type === 'Identifier' || node.type === 'ThisExpression') return true;
863
+ if (node.type === 'MemberExpression') {
864
+ const propertyIsStable = node.computed ? node.property.type === 'Literal' : node.property.type === 'Identifier';
865
+ return propertyIsStable && isStableReference(node.object);
866
+ }
867
+ return false;
868
+ }
869
+
870
+ function displayOf(value) {
871
+ return value ? value.display : '<unknown>';
830
872
  }
831
873
 
832
874
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@athoscommerce/snap-preact",
3
- "version": "1.13.2",
3
+ "version": "1.13.3-beta.187+5cfda01ad",
4
4
  "description": "Snap Preact",
5
5
  "main": "dist/cjs/src/index.js",
6
6
  "module": "dist/esm/src/index.js",
@@ -28,24 +28,26 @@
28
28
  "storybook": "storybook dev -c ./components/.storybook -p 6006"
29
29
  },
30
30
  "dependencies": {
31
- "@athoscommerce/snap-client": "1.13.2",
32
- "@athoscommerce/snap-controller": "1.13.2",
33
- "@athoscommerce/snap-event-manager": "1.13.2",
34
- "@athoscommerce/snap-logger": "1.13.2",
35
- "@athoscommerce/snap-platforms": "1.13.2",
36
- "@athoscommerce/snap-profiler": "1.13.2",
37
- "@athoscommerce/snap-store-mobx": "1.13.2",
38
- "@athoscommerce/snap-toolbox": "1.13.2",
39
- "@athoscommerce/snap-tracker": "1.13.2",
40
- "@athoscommerce/snap-url-manager": "1.13.2",
31
+ "@athoscommerce/snap-client": "1.13.3-beta.187+5cfda01ad",
32
+ "@athoscommerce/snap-controller": "1.13.3-beta.187+5cfda01ad",
33
+ "@athoscommerce/snap-event-manager": "1.13.3-beta.187+5cfda01ad",
34
+ "@athoscommerce/snap-logger": "1.13.3-beta.187+5cfda01ad",
35
+ "@athoscommerce/snap-platforms": "1.13.3-beta.187+5cfda01ad",
36
+ "@athoscommerce/snap-profiler": "1.13.3-beta.187+5cfda01ad",
37
+ "@athoscommerce/snap-store-mobx": "1.13.3-beta.187+5cfda01ad",
38
+ "@athoscommerce/snap-toolbox": "1.13.3-beta.187+5cfda01ad",
39
+ "@athoscommerce/snap-tracker": "1.13.3-beta.187+5cfda01ad",
40
+ "@athoscommerce/snap-url-manager": "1.13.3-beta.187+5cfda01ad",
41
41
  "@emotion/react": "11.13.0",
42
42
  "acorn": "8.16.0",
43
43
  "classnames": "^2.3.2",
44
44
  "colord": "^2.9.3",
45
45
  "deepmerge": "4.3.1",
46
46
  "dequal": "2.0.3",
47
+ "dompurify": "^3.2.4",
47
48
  "intersection-observer": "0.12.2",
48
49
  "is-plain-object": "5.1.0",
50
+ "marked": "17.0.6",
49
51
  "react-ranger": "2.1.0",
50
52
  "swiper": "11.0.7"
51
53
  },
@@ -106,5 +108,5 @@
106
108
  "./webpack": "./webpack/index.js",
107
109
  "./eslintplugin": "./eslint/src/index.cjs"
108
110
  },
109
- "gitHead": "5447205ebda63a99c3b59d8f16e13e0f449093ce"
111
+ "gitHead": "5cfda01ad7d78adbfe0639925321a853c600a45c"
110
112
  }