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