@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
@@ -0,0 +1,508 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@emotion/react/jsx-runtime";
2
+ import { observer } from 'mobx-react-lite';
3
+ import { css } from '@emotion/react';
4
+ import classnames from 'classnames';
5
+ import deepmerge from 'deepmerge';
6
+ import { useTheme, CacheProvider, useTreePath } from '../../../providers';
7
+ import { Colour, defined, mergeProps, mergeStyles } from '../../../utilities';
8
+ import { useCustomComponentOverride } from '../../../hooks';
9
+ import { Button } from '../../Atoms/Button';
10
+ import { QuickviewLayout } from '../../Organisms/QuickviewLayout';
11
+ const defaultStyles = ({ primaryColor, primaryColorText, theme }) => {
12
+ const colorPrimary = primaryColor || Colour.concrete(theme?.variables?.colors?.primary) || '#253B80';
13
+ const colorPrimaryText = primaryColorText || '#fff';
14
+ const colorCta = Colour.concrete(theme?.variables?.colors?.accent) || '#feeeae';
15
+ // neutral colors — no theme variable equivalents
16
+ const colorText = '#374151';
17
+ const colorBorder = '#E5E7EB';
18
+ return css({
19
+ display: 'flex',
20
+ flexDirection: 'column',
21
+ paddingBottom: '1em',
22
+ '.ss__chat-quickview__header__back.ss__button': {
23
+ // Overlay banner pinned to the top of the secondary chat's scrollable messages
24
+ // container so it stays visible while the product details scroll underneath.
25
+ // Styling mirrors `.ss__chat__session-feedback` (dark primary bg, primary text,
26
+ // 8px/15px padding, 10px gap, 14px font).
27
+ position: 'sticky',
28
+ top: 0,
29
+ zIndex: 2,
30
+ display: 'flex',
31
+ flexDirection: 'row-reverse',
32
+ justifyContent: 'flex-end',
33
+ alignItems: 'center',
34
+ gap: '10px',
35
+ padding: '8px 15px',
36
+ background: colorPrimary,
37
+ color: colorPrimaryText,
38
+ fontSize: '14px',
39
+ cursor: 'pointer',
40
+ border: 'none',
41
+ font: 'inherit',
42
+ width: 'auto',
43
+ '.ss__button__content': {
44
+ width: 'auto',
45
+ },
46
+ // pin the background so the Chat organism's generic `.ss__button:hover`
47
+ // lightening rule (higher specificity) doesn't recolor the banner
48
+ '&:not(.ss__button--disabled):hover': {
49
+ background: colorPrimary,
50
+ },
51
+ '&:focus-visible': {
52
+ outline: `2px solid ${colorPrimaryText}`,
53
+ outlineOffset: '-2px',
54
+ },
55
+ svg: {
56
+ fill: colorPrimaryText,
57
+ stroke: colorPrimaryText,
58
+ },
59
+ },
60
+ // Content sizing for the chat's secondary window, overriding QuickviewLayout's modal sizing
61
+ // (close-button padding and min/max widths) — the extra `.ss__quickview` class out-ranks the
62
+ // layout's own same-specificity rule, whose styles are inserted after these. The content
63
+ // spans the panel with no gutter of its own so the header banner can bleed to the panel
64
+ // edges; every other section row gets the standard gutter below.
65
+ '.ss__quickview .ss__quickview__content': {
66
+ padding: 0,
67
+ minWidth: 'auto',
68
+ maxWidth: '100%',
69
+ display: 'flex',
70
+ flexDirection: 'column',
71
+ gap: '1em',
72
+ },
73
+ '.ss__quickview__content > .ss__quickview__row': {
74
+ padding: '0 1em',
75
+ },
76
+ // Default layout only: the component fills the chat's secondary window, the header banner row
77
+ // stays put, and the remaining rows (grouped in column 3) scroll on their own. A custom
78
+ // `layout` opts out since its rows are not grouped this way.
79
+ '&.ss__chat-quickview--default-layout': {
80
+ height: '100%',
81
+ minHeight: 0,
82
+ boxSizing: 'border-box',
83
+ '.ss__quickview, .ss__quickview__content': {
84
+ flex: '1 1 auto',
85
+ minHeight: 0,
86
+ display: 'flex',
87
+ flexDirection: 'column',
88
+ },
89
+ '.ss__quickview__content > .ss__quickview__row:first-of-type': {
90
+ flex: '0 0 auto',
91
+ },
92
+ '.ss__quickview__content > .ss__quickview__row:first-of-type + .ss__quickview__row': {
93
+ flex: '1 1 auto',
94
+ minHeight: 0,
95
+ overflowY: 'auto',
96
+ padding: 0,
97
+ },
98
+ '.ss__quickview__column.ss__quickview__column--c3': {
99
+ padding: '0 1em',
100
+ gap: '1em',
101
+ },
102
+ },
103
+ // Header banner: product image beside the name/price/actions on the primary color.
104
+ // The column flex rules out-rank QuickviewLayout's own (viewport-based) column sizing so
105
+ // the header keeps its side-by-side arrangement at every panel width.
106
+ '.ss__quickview__content > .ss__quickview__row:first-of-type': {
107
+ background: colorPrimary,
108
+ color: colorPrimaryText,
109
+ padding: '1em',
110
+ gap: '1em',
111
+ flexWrap: 'nowrap',
112
+ '.ss__quickview__column.ss__quickview__column--c1': {
113
+ flex: '0 0 25%',
114
+ maxWidth: '25%',
115
+ },
116
+ '.ss__quickview__column.ss__quickview__column--c2': {
117
+ flex: '1 1 auto',
118
+ maxWidth: '100%',
119
+ gap: '0.5em',
120
+ justifyContent: 'space-evenly',
121
+ '.ss__quickview__row': {
122
+ padding: 0,
123
+ gap: '0.5em',
124
+ },
125
+ },
126
+ // the header thumbnail is a plain image — hide the slideshow chrome
127
+ '.ss__quickview__slideshow': {
128
+ background: '#fff',
129
+ borderRadius: '0.33em',
130
+ overflow: 'hidden',
131
+ '.ss__slideshow__navigation, .ss__slideshow__pagination': {
132
+ display: 'none',
133
+ },
134
+ },
135
+ '.ss__quickview__title': {
136
+ fontWeight: 'bold',
137
+ fontSize: '1.2em',
138
+ padding: 0,
139
+ },
140
+ '.ss__quickview__price': {
141
+ fontWeight: 'bold',
142
+ fontSize: '1.1em',
143
+ '.ss__price': {
144
+ color: colorPrimaryText,
145
+ },
146
+ },
147
+ '.ss__button': {
148
+ flexDirection: 'row-reverse', // icon renders after the label — reverse to place it left
149
+ borderRadius: '0.5em',
150
+ padding: '0.4em 0.75em',
151
+ fontWeight: 'bold',
152
+ whiteSpace: 'nowrap',
153
+ cursor: 'pointer',
154
+ fontSize: '0.8em',
155
+ justifyContent: 'center',
156
+ textAlign: 'center',
157
+ '.ss__button__content': {
158
+ width: 'auto',
159
+ },
160
+ },
161
+ },
162
+ // Action button colors. Kept at the same specificity as the Chat organism's accent theme
163
+ // (chatAccentTheme.ts), which is applied after these and wins. The hover rules pin the
164
+ // backgrounds so the Chat organism's generic `.ss__button:hover` lightening rule doesn't
165
+ // recolor them.
166
+ '.ss__quickview__add-to-cart.ss__button': {
167
+ background: colorCta,
168
+ color: '#000',
169
+ border: 'none',
170
+ svg: {
171
+ fill: '#000',
172
+ stroke: '#000',
173
+ },
174
+ '&:not(.ss__button--disabled):hover': {
175
+ background: colorCta,
176
+ filter: 'brightness(0.97)',
177
+ },
178
+ },
179
+ '.ss__quickview__more-info.ss__button, .ss__quickview__similar.ss__button, .ss__quickview__discuss.ss__button': {
180
+ background: '#000',
181
+ color: '#fff',
182
+ border: 'none',
183
+ svg: {
184
+ fill: '#fff',
185
+ stroke: '#fff',
186
+ },
187
+ '&:not(.ss__button--disabled):hover': {
188
+ background: '#000',
189
+ },
190
+ },
191
+ '.ss__quickview__content .ss__quickview__variant-title': {
192
+ fontWeight: 600,
193
+ fontSize: '0.9em',
194
+ color: colorText,
195
+ textTransform: 'uppercase',
196
+ marginBottom: '0.5em',
197
+ },
198
+ // untyped selections (e.g. size) render as a row of selectable tiles
199
+ '.ss__variant-selection--list': {
200
+ '.ss__list__title': {
201
+ display: 'none', // the variant-title above already labels the selection
202
+ },
203
+ '.ss__list__options': {
204
+ display: 'flex',
205
+ flexDirection: 'row',
206
+ flexWrap: 'wrap',
207
+ gap: '0.5em',
208
+ margin: 0,
209
+ padding: 0,
210
+ },
211
+ '.ss__list__option': {
212
+ flex: '1 1 auto',
213
+ justifyContent: 'center',
214
+ textAlign: 'center',
215
+ border: '2px solid transparent',
216
+ borderRadius: '0.5em',
217
+ padding: '0.4em 0.75em',
218
+ color: colorText,
219
+ cursor: 'pointer',
220
+ transition: 'border-color 0.15s ease',
221
+ '.ss__list__option__label': {
222
+ cursor: 'pointer',
223
+ },
224
+ '&:hover': {
225
+ borderColor: colorPrimary,
226
+ },
227
+ '&.ss__list__option--selected': {
228
+ borderColor: colorPrimary,
229
+ borderWidth: '3px',
230
+ padding: '0.3em 0.65em',
231
+ fontWeight: 'normal',
232
+ },
233
+ '&.ss__list__option--unavailable': {
234
+ opacity: 0.4,
235
+ },
236
+ },
237
+ },
238
+ // a selection with a single value offers no choice — the legacy panel left these out
239
+ '.ss__quickview__variant:has(.ss__list__option:only-child), .ss__quickview__variant:has(.ss__slideshow__slide:only-child)': {
240
+ display: 'none',
241
+ },
242
+ // swatch selections (e.g. colour) mirror the legacy chat panel: the Swatches slideshow is
243
+ // flattened into a wrapping row of tiles, each a thumbnail with its value label
244
+ // beneath. Values without a thumbnail fall back to the legacy text-only pill.
245
+ '.ss__variant-selection--swatches .ss__swatches': {
246
+ '.ss__slideshow': {
247
+ overflow: 'visible',
248
+ '.ss__slideshow__navigation, .ss__slideshow__pagination': {
249
+ display: 'none',
250
+ },
251
+ '.ss__slideshow__container': {
252
+ width: '100%',
253
+ margin: 0,
254
+ },
255
+ '.ss__slideshow__track': {
256
+ flexWrap: 'wrap',
257
+ justifyContent: 'flex-start',
258
+ gap: '0.5em',
259
+ width: '100%',
260
+ transform: 'none !important',
261
+ transition: 'none',
262
+ },
263
+ '.ss__slideshow__slide': {
264
+ display: 'flex',
265
+ flex: '1 1 auto',
266
+ width: 'auto',
267
+ minWidth: 0,
268
+ maxWidth: 'none',
269
+ margin: 0,
270
+ },
271
+ },
272
+ '.ss__swatches__slideshow__swatch': {
273
+ boxSizing: 'border-box',
274
+ width: '100%',
275
+ aspectRatio: 'auto',
276
+ flexDirection: 'column',
277
+ alignItems: 'center',
278
+ justifyContent: 'flex-start',
279
+ padding: '0.25em',
280
+ paddingBottom: 'calc(0.25em + 1em)', // reserve room for the label positioned below the thumbnail
281
+ border: '2px solid transparent',
282
+ borderRadius: '0.5em',
283
+ background: 'transparent',
284
+ color: colorText,
285
+ transition: 'border-color 0.15s ease',
286
+ '&:hover': {
287
+ borderColor: colorPrimary,
288
+ },
289
+ '&:focus-visible': {
290
+ outline: `2px solid ${colorPrimary}`,
291
+ outlineOffset: '2px',
292
+ },
293
+ '&.ss__swatches__slideshow__swatch--selected': {
294
+ borderColor: colorPrimary,
295
+ borderWidth: '3px',
296
+ padding: '0.15em',
297
+ paddingBottom: 'calc(0.15em + 1em)',
298
+ },
299
+ '&.ss__swatches__slideshow__swatch--disabled, &.ss__swatches__slideshow__swatch--unavailable': {
300
+ opacity: 0.4,
301
+ '&:before': {
302
+ display: 'none', // the faded tile replaces the strike-through
303
+ },
304
+ },
305
+ '&.ss__swatches__slideshow__swatch--unavailable': {
306
+ cursor: 'not-allowed',
307
+ },
308
+ '&.ss__swatches__slideshow__swatch--dark': {
309
+ color: colorText,
310
+ },
311
+ '.ss__swatches__slideshow__swatch__inner': {
312
+ position: 'relative',
313
+ flex: '0 0 auto',
314
+ width: '48px',
315
+ height: '48px',
316
+ '.ss__image': {
317
+ width: '100%',
318
+ height: '100%',
319
+ img: {
320
+ width: '100%',
321
+ height: '100%',
322
+ objectFit: 'contain',
323
+ },
324
+ },
325
+ },
326
+ '.ss__swatches__slideshow__swatch__value': {
327
+ position: 'absolute',
328
+ top: '100%',
329
+ left: '50%',
330
+ transform: 'translateX(-50%)',
331
+ marginTop: '0.25em',
332
+ fontSize: '0.75em',
333
+ lineHeight: 1,
334
+ color: colorText,
335
+ textAlign: 'center',
336
+ maxWidth: '60px',
337
+ overflow: 'hidden',
338
+ textOverflow: 'ellipsis',
339
+ whiteSpace: 'nowrap',
340
+ },
341
+ // text-only tile: no thumbnail to show, so the colour chip is dropped and the label
342
+ // itself becomes the pill
343
+ '&:not(:has(.ss__image))': {
344
+ padding: '0.4em 0.75em',
345
+ alignSelf: 'center',
346
+ '&.ss__swatches__slideshow__swatch--selected': {
347
+ padding: '0.3em 0.65em',
348
+ },
349
+ '.ss__swatches__slideshow__swatch__inner': {
350
+ width: 'auto',
351
+ height: 'auto',
352
+ background: 'none !important',
353
+ },
354
+ '.ss__swatches__slideshow__swatch__value': {
355
+ position: 'static',
356
+ transform: 'none',
357
+ margin: 0,
358
+ fontSize: '1em',
359
+ lineHeight: 'inherit',
360
+ maxWidth: 'none',
361
+ },
362
+ },
363
+ },
364
+ },
365
+ '.ss__quickview__content .ss__quickview__attributes': {
366
+ '& tr': {
367
+ borderBottom: `1px solid ${colorBorder}`,
368
+ transition: 'background-color 0.15s ease',
369
+ },
370
+ '& tbody tr:hover': {
371
+ background: '#F3F4F6',
372
+ },
373
+ '& th': {
374
+ color: '#6B7280',
375
+ letterSpacing: '0.03em',
376
+ },
377
+ '& td': {
378
+ textAlign: 'right',
379
+ color: '#111827',
380
+ fontWeight: 500,
381
+ },
382
+ },
383
+ '.ss__quickview__content .ss__quickview__description': {
384
+ fontSize: '0.9em',
385
+ color: colorText,
386
+ lineHeight: 1.5,
387
+ },
388
+ });
389
+ };
390
+ export const ChatQuickview = observer((properties) => {
391
+ const globalTheme = useTheme();
392
+ const globalTreePath = useTreePath();
393
+ const defaultProps = {
394
+ treePath: globalTreePath,
395
+ hideBadge: true,
396
+ // legacy chat presentation: non-swatch selections render as a row of selectable tiles
397
+ variantDropdownType: 'list',
398
+ // mirrors the legacy chat product panel: a header banner (image beside name/price and the
399
+ // add-to-cart/more-info/similar/discuss actions) followed by variants, the attribute table,
400
+ // and the description — the banner styling lives in defaultStyles above. The detail rows are
401
+ // grouped in column 3 so they can scroll independently of the banner (see defaultStyles).
402
+ layout: [['c1', 'c2'], ['c3']],
403
+ column1: {
404
+ layout: ['slideshow'],
405
+ width: '25%',
406
+ },
407
+ column2: {
408
+ layout: [
409
+ ['productDetail.mappings.core.name'],
410
+ ['productDetail.mappings.core.price'],
411
+ ['button.add-to-cart', 'button.more-info', 'button.similar', 'button.discuss'],
412
+ ],
413
+ width: 'auto',
414
+ },
415
+ column3: {
416
+ layout: [['variantSelections'], ['productDetailTable'], ['productDetail.mappings.core.description']],
417
+ width: '100%',
418
+ },
419
+ };
420
+ const props = mergeProps('chatQuickview', globalTheme, defaultProps, properties);
421
+ const { chatItem, controller, disableStyles, className, internalClassName, treePath, layout, hideBadge, variantDropdownType, column1, column2, column3, column4, recommendation, } = props;
422
+ const { overrideElement, shouldRenderDefault } = useCustomComponentOverride('chatQuickview', props);
423
+ // the fixed-header/scrolling-details styling only applies to this component's own default layout
424
+ const isDefaultLayout = layout === defaultProps.layout;
425
+ const styling = mergeStyles(props, defaultStyles);
426
+ const { messageType } = chatItem;
427
+ const quickviewManager = controller?.quickviewManager;
428
+ const chatMessages = controller?.store.currentChat?.chat || [];
429
+ const sourceMessage = chatItem.sourceMessageId ? chatMessages.find((m) => m.id === chatItem.sourceMessageId) : null;
430
+ const cameFromInspiration = sourceMessage?.messageType === 'inspirationResult';
431
+ const cameFromComparison = sourceMessage?.messageType === 'productComparison';
432
+ // after all hooks — an override that resolves or fails mid-lifecycle must not
433
+ // change the hook count between renders
434
+ if (!shouldRenderDefault) {
435
+ return overrideElement;
436
+ }
437
+ //initialize lang
438
+ const defaultLang = {
439
+ backToComparisonButton: {
440
+ value: 'Back to comparison',
441
+ attributes: {
442
+ 'aria-label': 'Back to comparison',
443
+ },
444
+ },
445
+ backToInspirationButton: {
446
+ value: 'Back to inspiration',
447
+ attributes: {
448
+ 'aria-label': 'Back to inspiration',
449
+ },
450
+ },
451
+ };
452
+ //deep merge with props.lang
453
+ const lang = deepmerge(defaultLang, props.lang || {});
454
+ if (messageType !== 'productQuery') {
455
+ controller?.log?.warn('ChatQuickview received message with unsupported type:', messageType, 'Expected type: productQuery');
456
+ return null;
457
+ }
458
+ if (!quickviewManager) {
459
+ controller?.log?.warn(`ChatQuickview requires the controller's quickview manager — chat controllers receive one from Snap whenever they are configured`);
460
+ return null;
461
+ }
462
+ // legacy chat presentation, injected through the theme so the children apply it via their own
463
+ // prop pipeline (the incoming theme wins on conflict): the action buttons carry icons, and swatch
464
+ // tiles show their value label beneath (the Swatches default hides labels).
465
+ const themePresentationProps = {
466
+ components: {
467
+ 'button.add-to-cart': {
468
+ icon: 'cart',
469
+ },
470
+ 'button.more-info': {
471
+ icon: 'info',
472
+ },
473
+ 'button.similar': {
474
+ icon: 'search-thin',
475
+ },
476
+ 'button.discuss': {
477
+ icon: 'chat',
478
+ },
479
+ swatches: {
480
+ hideLabels: false,
481
+ },
482
+ },
483
+ };
484
+ props.theme = deepmerge.all([themePresentationProps, props?.theme || {}], { arrayMerge: (destinationArray, sourceArray) => sourceArray });
485
+ const subProps = {
486
+ button: {
487
+ disableStyles,
488
+ theme: props.theme,
489
+ treePath,
490
+ },
491
+ quickviewLayout: {
492
+ // default props
493
+ ...defined({ hideBadge, variantDropdownType, column1, column2, column3, column4, recommendation, lang }),
494
+ // inherited props
495
+ ...defined({
496
+ disableStyles,
497
+ }),
498
+ // component theme overrides
499
+ theme: props.theme,
500
+ treePath,
501
+ },
502
+ };
503
+ const handleBack = () => {
504
+ controller?.store.currentChat?.popProductQueryMessage(chatItem.sourceMessageId);
505
+ controller?.closeProductQuickview();
506
+ };
507
+ return (_jsx(CacheProvider, { children: _jsxs("div", { className: classnames('ss__chat-quickview', { 'ss__chat-quickview--default-layout': isDefaultLayout }, className, internalClassName), ...styling, children: [(cameFromInspiration || cameFromComparison) && (_jsx(Button, { ...subProps.button, internalClassName: classnames('ss__chat-quickview__header__back'), icon: { icon: 'angle-left', size: '14px' }, onClick: handleBack, lang: { button: cameFromComparison ? lang.backToComparisonButton : lang.backToInspirationButton } })), _jsx(QuickviewLayout, { inline: true, quickviewManager: quickviewManager, ...subProps.quickviewLayout, layout: layout })] }) }));
508
+ });
@@ -0,0 +1,2 @@
1
+ export * from './ChatQuickview';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../components/src/components/Molecules/ChatQuickview/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1 @@
1
+ export * from './ChatQuickview';
@@ -0,0 +1,35 @@
1
+ import { ComponentProps } from '../../../types';
2
+ import { Lang } from '../../../hooks';
3
+ import type { ChatController } from '@athoscommerce/snap-controller';
4
+ import type { Product } from '@athoscommerce/snap-store-mobx';
5
+ export declare const ChatResult: (props: {
6
+ result: Product;
7
+ controller: ChatController;
8
+ scrollToBottom: () => void;
9
+ onProductClick?: (e: React.MouseEvent<HTMLElement, MouseEvent>) => void;
10
+ lang?: Partial<ChatResultLang>;
11
+ trackingRef?: (el: HTMLElement | null) => void;
12
+ } & ComponentProps<ChatResultProps>) => import("@emotion/react/jsx-runtime").JSX.Element;
13
+ export type ChatResultProps = {
14
+ result: Product;
15
+ controller: ChatController;
16
+ scrollToBottom: () => void;
17
+ onProductClick?: (e: React.MouseEvent<HTMLElement, MouseEvent>) => void;
18
+ lang?: Partial<ChatResultLang>;
19
+ trackingRef?: (el: HTMLElement | null) => void;
20
+ } & ComponentProps<ChatResultProps>;
21
+ export interface ChatResultLang {
22
+ similarButton?: Lang<ChatResultLangData>;
23
+ compareButton?: Lang<ChatResultLangData>;
24
+ addedToComparisonButton?: Lang<ChatResultLangData>;
25
+ discussButton?: Lang<ChatResultLangData>;
26
+ addToCartButton?: Lang<ChatResultLangData>;
27
+ configureButton?: Lang<ChatResultLangData>;
28
+ productLink?: Lang<ChatResultLangData>;
29
+ }
30
+ interface ChatResultLangData {
31
+ result: Product;
32
+ controller?: ChatController;
33
+ }
34
+ export {};
35
+ //# sourceMappingURL=ChatResult.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatResult.d.ts","sourceRoot":"","sources":["../../../../../../../components/src/components/Molecules/ChatResult/ChatResult.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAe,MAAM,gBAAgB,CAAC;AAM7D,OAAO,EAAE,IAAI,EAAuC,MAAM,gBAAgB,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAwI9D,eAAO,MAAM,UAAU;YAyMd,OAAO;gBACH,cAAc;oBACV,MAAM,IAAI;qBACT,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,KAAK,IAAI;WAChE,OAAO,CAAC,cAAc,CAAC;kBAChB,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI;wFAb9C,CAAC;AAOF,MAAM,MAAM,eAAe,GAAG;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,cAAc,CAAC;IAC3B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC;IACxE,IAAI,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAC/B,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;CAC/C,GAAG,cAAc,CAAC,eAAe,CAAC,CAAC;AAEpC,MAAM,WAAW,cAAc;IAC9B,aAAa,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACzC,aAAa,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACzC,uBAAuB,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACnD,aAAa,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACzC,eAAe,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC3C,eAAe,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAC3C,WAAW,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;CACvC;AAED,UAAU,kBAAkB;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,cAAc,CAAC;CAC5B"}