@athoscommerce/snap-preact 1.7.0 → 1.7.1-beta.129

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 (367) hide show
  1. package/dist/cjs/components/src/components/Atoms/Button/Button.d.ts +1 -1
  2. package/dist/cjs/components/src/components/Atoms/Button/Button.d.ts.map +1 -1
  3. package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts +7 -0
  4. package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts.map +1 -0
  5. package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.js +85 -0
  6. package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts +2 -0
  7. package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts.map +1 -0
  8. package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/index.js +17 -0
  9. package/dist/cjs/components/src/components/Atoms/Dropdown/Dropdown.d.ts +4 -0
  10. package/dist/cjs/components/src/components/Atoms/Dropdown/Dropdown.d.ts.map +1 -1
  11. package/dist/cjs/components/src/components/Atoms/Dropdown/Dropdown.js +51 -14
  12. package/dist/cjs/components/src/components/Atoms/Icon/paths.d.ts +21 -0
  13. package/dist/cjs/components/src/components/Atoms/Icon/paths.d.ts.map +1 -1
  14. package/dist/cjs/components/src/components/Atoms/Icon/paths.js +21 -0
  15. package/dist/cjs/components/src/components/Molecules/CalloutBadge/CalloutBadge.js +3 -3
  16. package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.d.ts +20 -0
  17. package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.d.ts.map +1 -0
  18. package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.js +187 -0
  19. package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/index.d.ts +2 -0
  20. package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/index.d.ts.map +1 -0
  21. package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/index.js +17 -0
  22. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts +18 -0
  23. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts.map +1 -0
  24. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.js +175 -0
  25. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts +2 -0
  26. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts.map +1 -0
  27. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/index.js +17 -0
  28. package/dist/cjs/components/src/components/Molecules/ChatMessageText/ChatMessageText.d.ts +21 -0
  29. package/dist/cjs/components/src/components/Molecules/ChatMessageText/ChatMessageText.d.ts.map +1 -0
  30. package/dist/cjs/components/src/components/Molecules/ChatMessageText/ChatMessageText.js +211 -0
  31. package/dist/cjs/components/src/components/Molecules/ChatMessageText/index.d.ts +2 -0
  32. package/dist/cjs/components/src/components/Molecules/ChatMessageText/index.d.ts.map +1 -0
  33. package/dist/cjs/components/src/components/Molecules/ChatMessageText/index.js +17 -0
  34. package/dist/cjs/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.d.ts +16 -0
  35. package/dist/cjs/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.d.ts.map +1 -0
  36. package/dist/cjs/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.js +255 -0
  37. package/dist/cjs/components/src/components/Molecules/ChatMessageUser/index.d.ts +2 -0
  38. package/dist/cjs/components/src/components/Molecules/ChatMessageUser/index.d.ts.map +1 -0
  39. package/dist/cjs/components/src/components/Molecules/ChatMessageUser/index.js +17 -0
  40. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts +17 -0
  41. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts.map +1 -0
  42. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.js +143 -0
  43. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts +2 -0
  44. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts.map +1 -0
  45. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/index.js +17 -0
  46. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts +25 -0
  47. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts.map +1 -0
  48. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.js +487 -0
  49. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts +2 -0
  50. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts.map +1 -0
  51. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/index.js +17 -0
  52. package/dist/cjs/components/src/components/Molecules/ChatResult/ChatResult.d.ts +11 -0
  53. package/dist/cjs/components/src/components/Molecules/ChatResult/ChatResult.d.ts.map +1 -0
  54. package/dist/cjs/components/src/components/Molecules/ChatResult/ChatResult.js +200 -0
  55. package/dist/cjs/components/src/components/Molecules/ChatResult/index.d.ts +2 -0
  56. package/dist/cjs/components/src/components/Molecules/ChatResult/index.d.ts.map +1 -0
  57. package/dist/cjs/components/src/components/Molecules/ChatResult/index.js +17 -0
  58. package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.d.ts +12 -0
  59. package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.d.ts.map +1 -0
  60. package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.js +123 -0
  61. package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/index.d.ts +2 -0
  62. package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/index.d.ts.map +1 -0
  63. package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/index.js +17 -0
  64. package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.d.ts +15 -0
  65. package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.d.ts.map +1 -0
  66. package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.js +99 -0
  67. package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/index.d.ts +2 -0
  68. package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/index.d.ts.map +1 -0
  69. package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/index.js +17 -0
  70. package/dist/cjs/components/src/components/Molecules/OverlayBadge/OverlayBadge.js +2 -2
  71. package/dist/cjs/components/src/components/Molecules/Result/Result.d.ts +5 -3
  72. package/dist/cjs/components/src/components/Molecules/Result/Result.d.ts.map +1 -1
  73. package/dist/cjs/components/src/components/Molecules/Result/Result.js +15 -9
  74. package/dist/cjs/components/src/components/Molecules/SearchInput/SearchInput.d.ts +2 -0
  75. package/dist/cjs/components/src/components/Molecules/SearchInput/SearchInput.d.ts.map +1 -1
  76. package/dist/cjs/components/src/components/Molecules/SearchInput/SearchInput.js +19 -2
  77. package/dist/cjs/components/src/components/Molecules/Slideout/Slideout.d.ts.map +1 -1
  78. package/dist/cjs/components/src/components/Molecules/Slideout/Slideout.js +21 -26
  79. package/dist/cjs/components/src/components/Molecules/Slideshow/Slideshow.d.ts.map +1 -1
  80. package/dist/cjs/components/src/components/Molecules/Slideshow/Slideshow.js +5 -1
  81. package/dist/cjs/components/src/components/Organisms/Chat/Chat.d.ts +30 -0
  82. package/dist/cjs/components/src/components/Organisms/Chat/Chat.d.ts.map +1 -0
  83. package/dist/cjs/components/src/components/Organisms/Chat/Chat.js +1047 -0
  84. package/dist/cjs/components/src/components/Organisms/Chat/Chat.styles.d.ts +16 -0
  85. package/dist/cjs/components/src/components/Organisms/Chat/Chat.styles.d.ts.map +1 -0
  86. package/dist/cjs/components/src/components/Organisms/Chat/Chat.styles.js +1186 -0
  87. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatFileUpload.d.ts +32 -0
  88. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatFileUpload.d.ts.map +1 -0
  89. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatFileUpload.js +104 -0
  90. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatGestures.d.ts +40 -0
  91. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatGestures.d.ts.map +1 -0
  92. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatGestures.js +98 -0
  93. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatOverflow.d.ts +44 -0
  94. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatOverflow.d.ts.map +1 -0
  95. package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatOverflow.js +116 -0
  96. package/dist/cjs/components/src/components/Organisms/Chat/index.d.ts +2 -0
  97. package/dist/cjs/components/src/components/Organisms/Chat/index.d.ts.map +1 -0
  98. package/dist/cjs/components/src/components/Organisms/Chat/index.js +17 -0
  99. package/dist/cjs/components/src/components/Organisms/Facet/Facet.js +2 -1
  100. package/dist/cjs/components/src/components/Organisms/FacetsHorizontal/FacetsHorizontal.js +2 -1
  101. package/dist/cjs/components/src/components/Organisms/Results/Results.js +1 -1
  102. package/dist/cjs/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.d.ts +1 -1
  103. package/dist/cjs/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.d.ts.map +1 -1
  104. package/dist/cjs/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.js +3 -1
  105. package/dist/cjs/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts +1 -1
  106. package/dist/cjs/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts.map +1 -1
  107. package/dist/cjs/components/src/components/Templates/AutocompleteModal/AutocompleteModal.js +3 -1
  108. package/dist/cjs/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.d.ts +1 -1
  109. package/dist/cjs/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.d.ts.map +1 -1
  110. package/dist/cjs/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.js +3 -1
  111. package/dist/cjs/components/src/components/Templates/Chat/Chat.d.ts +12 -0
  112. package/dist/cjs/components/src/components/Templates/Chat/Chat.d.ts.map +1 -0
  113. package/dist/cjs/components/src/components/Templates/Chat/Chat.js +55 -0
  114. package/dist/cjs/components/src/components/Templates/Chat/index.d.ts +2 -0
  115. package/dist/cjs/components/src/components/Templates/Chat/index.d.ts.map +1 -0
  116. package/dist/cjs/components/src/components/Templates/Chat/index.js +17 -0
  117. package/dist/cjs/components/src/index.d.ts +11 -0
  118. package/dist/cjs/components/src/index.d.ts.map +1 -1
  119. package/dist/cjs/components/src/index.js +13 -1
  120. package/dist/cjs/components/src/providers/withTracking.d.ts +2 -2
  121. package/dist/cjs/components/src/providers/withTracking.d.ts.map +1 -1
  122. package/dist/cjs/components/src/setupTests.js +17 -0
  123. package/dist/cjs/components/src/themes/base/components/templates/chat.d.ts +4 -0
  124. package/dist/cjs/components/src/themes/base/components/templates/chat.d.ts.map +1 -0
  125. package/dist/cjs/components/src/themes/base/components/templates/chat.js +6 -0
  126. package/dist/cjs/components/src/themes/base/components/templates/index.d.ts.map +1 -1
  127. package/dist/cjs/components/src/themes/base/components/templates/index.js +5 -4
  128. package/dist/cjs/components/src/themes/bocachica/components/templates/chat.d.ts +4 -0
  129. package/dist/cjs/components/src/themes/bocachica/components/templates/chat.d.ts.map +1 -0
  130. package/dist/cjs/components/src/themes/bocachica/components/templates/chat.js +6 -0
  131. package/dist/cjs/components/src/themes/bocachica/components/templates/index.d.ts.map +1 -1
  132. package/dist/cjs/components/src/themes/bocachica/components/templates/index.js +5 -4
  133. package/dist/cjs/components/src/themes/pike/components/templates/chat.d.ts +4 -0
  134. package/dist/cjs/components/src/themes/pike/components/templates/chat.d.ts.map +1 -0
  135. package/dist/cjs/components/src/themes/pike/components/templates/chat.js +6 -0
  136. package/dist/cjs/components/src/themes/pike/components/templates/index.d.ts.map +1 -1
  137. package/dist/cjs/components/src/themes/pike/components/templates/index.js +5 -4
  138. package/dist/cjs/components/src/themes/snapnco/components/templates/chat.d.ts +4 -0
  139. package/dist/cjs/components/src/themes/snapnco/components/templates/chat.d.ts.map +1 -0
  140. package/dist/cjs/components/src/themes/snapnco/components/templates/chat.js +6 -0
  141. package/dist/cjs/components/src/themes/snapnco/components/templates/index.d.ts.map +1 -1
  142. package/dist/cjs/components/src/themes/snapnco/components/templates/index.js +5 -4
  143. package/dist/cjs/components/src/themes/snappy/components/templates/chat.d.ts +4 -0
  144. package/dist/cjs/components/src/themes/snappy/components/templates/chat.d.ts.map +1 -0
  145. package/dist/cjs/components/src/themes/snappy/components/templates/chat.js +6 -0
  146. package/dist/cjs/components/src/themes/snappy/components/templates/index.d.ts.map +1 -1
  147. package/dist/cjs/components/src/themes/snappy/components/templates/index.js +5 -4
  148. package/dist/cjs/components/src/themes/themeComponents/chat.d.ts +4 -0
  149. package/dist/cjs/components/src/themes/themeComponents/chat.d.ts.map +1 -0
  150. package/dist/cjs/components/src/themes/themeComponents/chat.js +14 -0
  151. package/dist/cjs/components/src/utilities/Colour/Colour.d.ts +11 -0
  152. package/dist/cjs/components/src/utilities/Colour/Colour.d.ts.map +1 -1
  153. package/dist/cjs/components/src/utilities/Colour/Colour.js +32 -0
  154. package/dist/cjs/components/src/utilities/snapify.d.ts +3 -2
  155. package/dist/cjs/components/src/utilities/snapify.d.ts.map +1 -1
  156. package/dist/cjs/components/src/utilities/snapify.js +48 -0
  157. package/dist/cjs/src/Snap.d.ts +2 -1
  158. package/dist/cjs/src/Snap.d.ts.map +1 -1
  159. package/dist/cjs/src/Snap.js +134 -24
  160. package/dist/cjs/src/Templates/SnapTemplates.d.ts +2 -1
  161. package/dist/cjs/src/Templates/SnapTemplates.d.ts.map +1 -1
  162. package/dist/cjs/src/Templates/SnapTemplates.js +67 -5
  163. package/dist/cjs/src/Templates/Stores/LibraryStore.d.ts +2 -0
  164. package/dist/cjs/src/Templates/Stores/LibraryStore.d.ts.map +1 -1
  165. package/dist/cjs/src/Templates/Stores/LibraryStore.js +19 -0
  166. package/dist/cjs/src/Templates/Stores/TemplateStore.d.ts +19 -4
  167. package/dist/cjs/src/Templates/Stores/TemplateStore.d.ts.map +1 -1
  168. package/dist/cjs/src/Templates/Stores/TemplateStore.js +2 -1
  169. package/dist/cjs/src/Templates/Stores/library/components/Chat.d.ts +2 -0
  170. package/dist/cjs/src/Templates/Stores/library/components/Chat.d.ts.map +1 -0
  171. package/dist/cjs/src/Templates/Stores/library/components/Chat.js +5 -0
  172. package/dist/cjs/src/Templates/Stores/library/languages/es.d.ts.map +1 -1
  173. package/dist/cjs/src/Templates/Stores/library/languages/es.js +5 -0
  174. package/dist/cjs/src/Templates/Stores/library/languages/fr.d.ts.map +1 -1
  175. package/dist/cjs/src/Templates/Stores/library/languages/fr.js +5 -0
  176. package/dist/cjs/src/create/createChatController.d.ts +5 -0
  177. package/dist/cjs/src/create/createChatController.d.ts.map +1 -0
  178. package/dist/cjs/src/create/createChatController.js +43 -0
  179. package/dist/cjs/src/setupEvents.d.ts +13 -0
  180. package/dist/cjs/src/setupEvents.d.ts.map +1 -1
  181. package/dist/cjs/src/setupEvents.js +87 -0
  182. package/dist/cjs/src/types.d.ts +15 -3
  183. package/dist/cjs/src/types.d.ts.map +1 -1
  184. package/dist/esm/components/src/components/Atoms/Button/Button.d.ts +1 -1
  185. package/dist/esm/components/src/components/Atoms/Button/Button.d.ts.map +1 -1
  186. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts +7 -0
  187. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts.map +1 -0
  188. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.js +67 -0
  189. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts +2 -0
  190. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts.map +1 -0
  191. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.js +1 -0
  192. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.d.ts +4 -0
  193. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.d.ts.map +1 -1
  194. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.js +53 -11
  195. package/dist/esm/components/src/components/Atoms/Icon/paths.d.ts +21 -0
  196. package/dist/esm/components/src/components/Atoms/Icon/paths.d.ts.map +1 -1
  197. package/dist/esm/components/src/components/Atoms/Icon/paths.js +21 -0
  198. package/dist/esm/components/src/components/Molecules/CalloutBadge/CalloutBadge.js +1 -1
  199. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.d.ts +20 -0
  200. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.d.ts.map +1 -0
  201. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.js +169 -0
  202. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.d.ts +2 -0
  203. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.d.ts.map +1 -0
  204. package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.js +1 -0
  205. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts +18 -0
  206. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts.map +1 -0
  207. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.js +170 -0
  208. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts +2 -0
  209. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts.map +1 -0
  210. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.js +1 -0
  211. package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.d.ts +21 -0
  212. package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.d.ts.map +1 -0
  213. package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.js +192 -0
  214. package/dist/esm/components/src/components/Molecules/ChatMessageText/index.d.ts +2 -0
  215. package/dist/esm/components/src/components/Molecules/ChatMessageText/index.d.ts.map +1 -0
  216. package/dist/esm/components/src/components/Molecules/ChatMessageText/index.js +1 -0
  217. package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.d.ts +16 -0
  218. package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.d.ts.map +1 -0
  219. package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.js +223 -0
  220. package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.d.ts +2 -0
  221. package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.d.ts.map +1 -0
  222. package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.js +1 -0
  223. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts +17 -0
  224. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts.map +1 -0
  225. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.js +121 -0
  226. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts +2 -0
  227. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts.map +1 -0
  228. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.js +1 -0
  229. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts +25 -0
  230. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts.map +1 -0
  231. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.js +460 -0
  232. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts +2 -0
  233. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts.map +1 -0
  234. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.js +1 -0
  235. package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.d.ts +11 -0
  236. package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.d.ts.map +1 -0
  237. package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.js +184 -0
  238. package/dist/esm/components/src/components/Molecules/ChatResult/index.d.ts +2 -0
  239. package/dist/esm/components/src/components/Molecules/ChatResult/index.d.ts.map +1 -0
  240. package/dist/esm/components/src/components/Molecules/ChatResult/index.js +1 -0
  241. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.d.ts +12 -0
  242. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.d.ts.map +1 -0
  243. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.js +102 -0
  244. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.d.ts +2 -0
  245. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.d.ts.map +1 -0
  246. package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.js +1 -0
  247. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.d.ts +15 -0
  248. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.d.ts.map +1 -0
  249. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.js +80 -0
  250. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.d.ts +2 -0
  251. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.d.ts.map +1 -0
  252. package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.js +1 -0
  253. package/dist/esm/components/src/components/Molecules/OverlayBadge/OverlayBadge.js +1 -1
  254. package/dist/esm/components/src/components/Molecules/Result/Result.d.ts +5 -3
  255. package/dist/esm/components/src/components/Molecules/Result/Result.d.ts.map +1 -1
  256. package/dist/esm/components/src/components/Molecules/Result/Result.js +12 -7
  257. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.d.ts +2 -0
  258. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.d.ts.map +1 -1
  259. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.js +35 -2
  260. package/dist/esm/components/src/components/Molecules/Slideout/Slideout.d.ts.map +1 -1
  261. package/dist/esm/components/src/components/Molecules/Slideout/Slideout.js +22 -27
  262. package/dist/esm/components/src/components/Molecules/Slideshow/Slideshow.d.ts.map +1 -1
  263. package/dist/esm/components/src/components/Molecules/Slideshow/Slideshow.js +5 -1
  264. package/dist/esm/components/src/components/Organisms/Chat/Chat.d.ts +30 -0
  265. package/dist/esm/components/src/components/Organisms/Chat/Chat.d.ts.map +1 -0
  266. package/dist/esm/components/src/components/Organisms/Chat/Chat.js +956 -0
  267. package/dist/esm/components/src/components/Organisms/Chat/Chat.styles.d.ts +16 -0
  268. package/dist/esm/components/src/components/Organisms/Chat/Chat.styles.d.ts.map +1 -0
  269. package/dist/esm/components/src/components/Organisms/Chat/Chat.styles.js +1227 -0
  270. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.d.ts +32 -0
  271. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.d.ts.map +1 -0
  272. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.js +54 -0
  273. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.d.ts +40 -0
  274. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.d.ts.map +1 -0
  275. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.js +92 -0
  276. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.d.ts +44 -0
  277. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.d.ts.map +1 -0
  278. package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.js +110 -0
  279. package/dist/esm/components/src/components/Organisms/Chat/index.d.ts +2 -0
  280. package/dist/esm/components/src/components/Organisms/Chat/index.d.ts.map +1 -0
  281. package/dist/esm/components/src/components/Organisms/Chat/index.js +1 -0
  282. package/dist/esm/components/src/components/Organisms/Facet/Facet.js +1 -1
  283. package/dist/esm/components/src/components/Organisms/FacetsHorizontal/FacetsHorizontal.js +1 -1
  284. package/dist/esm/components/src/components/Organisms/Results/Results.js +1 -1
  285. package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.d.ts +1 -1
  286. package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.d.ts.map +1 -1
  287. package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.js +4 -1
  288. package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts +1 -1
  289. package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts.map +1 -1
  290. package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.js +4 -1
  291. package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.d.ts +1 -1
  292. package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.d.ts.map +1 -1
  293. package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.js +4 -1
  294. package/dist/esm/components/src/components/Templates/Chat/Chat.d.ts +12 -0
  295. package/dist/esm/components/src/components/Templates/Chat/Chat.d.ts.map +1 -0
  296. package/dist/esm/components/src/components/Templates/Chat/Chat.js +42 -0
  297. package/dist/esm/components/src/components/Templates/Chat/index.d.ts +2 -0
  298. package/dist/esm/components/src/components/Templates/Chat/index.d.ts.map +1 -0
  299. package/dist/esm/components/src/components/Templates/Chat/index.js +1 -0
  300. package/dist/esm/components/src/index.d.ts +11 -0
  301. package/dist/esm/components/src/index.d.ts.map +1 -1
  302. package/dist/esm/components/src/index.js +11 -0
  303. package/dist/esm/components/src/providers/withTracking.d.ts +2 -2
  304. package/dist/esm/components/src/providers/withTracking.d.ts.map +1 -1
  305. package/dist/esm/components/src/setupTests.js +14 -0
  306. package/dist/esm/components/src/themes/base/components/templates/chat.d.ts +4 -0
  307. package/dist/esm/components/src/themes/base/components/templates/chat.d.ts.map +1 -0
  308. package/dist/esm/components/src/themes/base/components/templates/chat.js +3 -0
  309. package/dist/esm/components/src/themes/base/components/templates/index.d.ts.map +1 -1
  310. package/dist/esm/components/src/themes/base/components/templates/index.js +5 -0
  311. package/dist/esm/components/src/themes/bocachica/components/templates/chat.d.ts +4 -0
  312. package/dist/esm/components/src/themes/bocachica/components/templates/chat.d.ts.map +1 -0
  313. package/dist/esm/components/src/themes/bocachica/components/templates/chat.js +3 -0
  314. package/dist/esm/components/src/themes/bocachica/components/templates/index.d.ts.map +1 -1
  315. package/dist/esm/components/src/themes/bocachica/components/templates/index.js +5 -0
  316. package/dist/esm/components/src/themes/pike/components/templates/chat.d.ts +4 -0
  317. package/dist/esm/components/src/themes/pike/components/templates/chat.d.ts.map +1 -0
  318. package/dist/esm/components/src/themes/pike/components/templates/chat.js +3 -0
  319. package/dist/esm/components/src/themes/pike/components/templates/index.d.ts.map +1 -1
  320. package/dist/esm/components/src/themes/pike/components/templates/index.js +5 -0
  321. package/dist/esm/components/src/themes/snapnco/components/templates/chat.d.ts +4 -0
  322. package/dist/esm/components/src/themes/snapnco/components/templates/chat.d.ts.map +1 -0
  323. package/dist/esm/components/src/themes/snapnco/components/templates/chat.js +3 -0
  324. package/dist/esm/components/src/themes/snapnco/components/templates/index.d.ts.map +1 -1
  325. package/dist/esm/components/src/themes/snapnco/components/templates/index.js +5 -0
  326. package/dist/esm/components/src/themes/snappy/components/templates/chat.d.ts +4 -0
  327. package/dist/esm/components/src/themes/snappy/components/templates/chat.d.ts.map +1 -0
  328. package/dist/esm/components/src/themes/snappy/components/templates/chat.js +3 -0
  329. package/dist/esm/components/src/themes/snappy/components/templates/index.d.ts.map +1 -1
  330. package/dist/esm/components/src/themes/snappy/components/templates/index.js +5 -0
  331. package/dist/esm/components/src/themes/themeComponents/chat.d.ts +4 -0
  332. package/dist/esm/components/src/themes/themeComponents/chat.d.ts.map +1 -0
  333. package/dist/esm/components/src/themes/themeComponents/chat.js +11 -0
  334. package/dist/esm/components/src/utilities/Colour/Colour.d.ts +11 -0
  335. package/dist/esm/components/src/utilities/Colour/Colour.d.ts.map +1 -1
  336. package/dist/esm/components/src/utilities/Colour/Colour.js +30 -0
  337. package/dist/esm/components/src/utilities/snapify.d.ts +3 -2
  338. package/dist/esm/components/src/utilities/snapify.d.ts.map +1 -1
  339. package/dist/esm/components/src/utilities/snapify.js +29 -2
  340. package/dist/esm/src/Snap.d.ts +2 -1
  341. package/dist/esm/src/Snap.d.ts.map +1 -1
  342. package/dist/esm/src/Snap.js +72 -0
  343. package/dist/esm/src/Templates/SnapTemplates.d.ts +2 -1
  344. package/dist/esm/src/Templates/SnapTemplates.d.ts.map +1 -1
  345. package/dist/esm/src/Templates/SnapTemplates.js +55 -0
  346. package/dist/esm/src/Templates/Stores/LibraryStore.d.ts +2 -0
  347. package/dist/esm/src/Templates/Stores/LibraryStore.d.ts.map +1 -1
  348. package/dist/esm/src/Templates/Stores/LibraryStore.js +6 -0
  349. package/dist/esm/src/Templates/Stores/TemplateStore.d.ts +19 -4
  350. package/dist/esm/src/Templates/Stores/TemplateStore.d.ts.map +1 -1
  351. package/dist/esm/src/Templates/Stores/TemplateStore.js +2 -1
  352. package/dist/esm/src/Templates/Stores/library/components/Chat.d.ts +2 -0
  353. package/dist/esm/src/Templates/Stores/library/components/Chat.d.ts.map +1 -0
  354. package/dist/esm/src/Templates/Stores/library/components/Chat.js +1 -0
  355. package/dist/esm/src/Templates/Stores/library/languages/es.d.ts.map +1 -1
  356. package/dist/esm/src/Templates/Stores/library/languages/es.js +5 -0
  357. package/dist/esm/src/Templates/Stores/library/languages/fr.d.ts.map +1 -1
  358. package/dist/esm/src/Templates/Stores/library/languages/fr.js +5 -0
  359. package/dist/esm/src/create/createChatController.d.ts +5 -0
  360. package/dist/esm/src/create/createChatController.d.ts.map +1 -0
  361. package/dist/esm/src/create/createChatController.js +29 -0
  362. package/dist/esm/src/setupEvents.d.ts +13 -0
  363. package/dist/esm/src/setupEvents.d.ts.map +1 -1
  364. package/dist/esm/src/setupEvents.js +40 -0
  365. package/dist/esm/src/types.d.ts +15 -3
  366. package/dist/esm/src/types.d.ts.map +1 -1
  367. package/package.json +14 -12
@@ -0,0 +1,487 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.ChatProductQueryMessage = void 0;
18
+ var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
19
+ var hooks_1 = require("preact/hooks");
20
+ var mobx_react_lite_1 = require("mobx-react-lite");
21
+ var react_1 = require("@emotion/react");
22
+ var classnames_1 = __importDefault(require("classnames"));
23
+ var providers_1 = require("../../../providers");
24
+ var utilities_1 = require("../../../utilities");
25
+ var Image_1 = require("../../Atoms/Image");
26
+ var Button_1 = require("../../Atoms/Button");
27
+ var __1 = require("../../..");
28
+ var defaultStyles = function (_a) {
29
+ var primaryColor = _a.primaryColor, primaryColorText = _a.primaryColorText;
30
+ var colorPrimary = primaryColor || '#253B80';
31
+ var colorPrimaryText = primaryColorText || '#fff';
32
+ return (0, react_1.css)({
33
+ display: 'flex',
34
+ flexDirection: 'column',
35
+ gap: '1em',
36
+ paddingBottom: '1em',
37
+ '.ss__chat-product-query-message__header__back': {
38
+ // Overlay banner pinned to the top of the secondary chat's scrollable messages
39
+ // container so it stays visible while the product details scroll underneath.
40
+ // Styling mirrors `.ss__chat__session-feedback` (dark primary bg, primary text,
41
+ // 8px/15px padding, 10px gap, 14px font). Rendered as a direct child of the
42
+ // component root (not the header) so sticky holds across the full scroll range.
43
+ // Negative marginBottom cancels the root's `gap: 1em` so the banner sits flush
44
+ // against the header below it.
45
+ position: 'sticky',
46
+ top: 0,
47
+ zIndex: 2,
48
+ marginBottom: '-1em',
49
+ display: 'flex',
50
+ alignItems: 'center',
51
+ gap: '10px',
52
+ padding: '8px 15px',
53
+ background: colorPrimary,
54
+ color: colorPrimaryText,
55
+ fontSize: '14px',
56
+ cursor: 'pointer',
57
+ border: 'none',
58
+ font: 'inherit',
59
+ width: 'auto',
60
+ '&:focus-visible': {
61
+ outline: "2px solid ".concat(colorPrimaryText),
62
+ outlineOffset: '-2px',
63
+ },
64
+ svg: {
65
+ fill: colorPrimaryText,
66
+ stroke: colorPrimaryText,
67
+ },
68
+ },
69
+ '.ss__chat-product-query-message__header': {
70
+ background: colorPrimary,
71
+ padding: '1em',
72
+ display: 'flex',
73
+ flexDirection: 'column',
74
+ '.ss__price': {
75
+ color: colorPrimaryText,
76
+ },
77
+ '.ss__chat-product-query-message__header__product': {
78
+ display: 'flex',
79
+ gap: '1em',
80
+ '.ss__chat-product-query-message__header__product__image': {
81
+ width: '25%',
82
+ objectFit: 'contain',
83
+ flexShrink: 0,
84
+ borderRadius: '0.33em',
85
+ overflow: 'hidden',
86
+ },
87
+ '.ss__chat-product-query-message__header__product__details': {
88
+ display: 'flex',
89
+ flexDirection: 'column',
90
+ gap: '0.5em',
91
+ flex: 1,
92
+ justifyContent: 'space-evenly',
93
+ '.ss__chat-product-query-message__header__product__details__name': {
94
+ fontWeight: 'bold',
95
+ fontSize: '1.2em',
96
+ a: {
97
+ color: colorPrimaryText,
98
+ textDecoration: 'none',
99
+ '&:hover': {
100
+ textDecoration: 'underline',
101
+ },
102
+ },
103
+ },
104
+ '.ss__chat-product-query-message__header__product__details__price': {
105
+ fontWeight: 'bold',
106
+ fontSize: '1.1em',
107
+ color: '#D4A843',
108
+ display: 'flex',
109
+ gap: '0.5em',
110
+ alignItems: 'center',
111
+ },
112
+ },
113
+ '.ss__chat-product-query-message__header__product__actions': {
114
+ display: 'flex',
115
+ flexDirection: 'row',
116
+ gap: '0.5em',
117
+ '.ss__chat-product-query-message__header__product__actions__add-to-cart .ss__button': {
118
+ flexDirection: 'row-reverse',
119
+ borderRadius: '0.5em',
120
+ padding: '0.4em 0.75em',
121
+ fontWeight: 'bold',
122
+ border: 'none',
123
+ whiteSpace: 'nowrap',
124
+ cursor: 'pointer',
125
+ fontSize: '0.8em',
126
+ background: '#feeeae',
127
+ color: '#000',
128
+ justifyContent: 'center',
129
+ width: '100%',
130
+ textAlign: 'center',
131
+ svg: {
132
+ fill: '#000',
133
+ stroke: '#000',
134
+ },
135
+ '&:not(.ss__button--disabled):hover': {
136
+ background: '#fde68a',
137
+ },
138
+ },
139
+ '.ss__chat-product-query-message__header__product__actions__show-similar .ss__button, .ss__chat-product-query-message__header__product__actions__discuss-product .ss__button': {
140
+ flexDirection: 'row-reverse',
141
+ borderRadius: '0.5em',
142
+ padding: '0.4em 0.75em',
143
+ fontWeight: 'bold',
144
+ whiteSpace: 'nowrap',
145
+ cursor: 'pointer',
146
+ fontSize: '0.8em',
147
+ background: '#000',
148
+ color: '#fff',
149
+ justifyContent: 'center',
150
+ width: '100%',
151
+ textAlign: 'center',
152
+ svg: {
153
+ fill: '#fff',
154
+ stroke: '#fff',
155
+ },
156
+ },
157
+ },
158
+ },
159
+ },
160
+ '.ss__chat-product-query-message__variants': {
161
+ padding: '0 2em',
162
+ display: 'flex',
163
+ flexDirection: 'column',
164
+ gap: '1em',
165
+ '.ss__chat-product-query-message__variants__label': {
166
+ fontWeight: '600',
167
+ fontSize: '0.9em',
168
+ color: '#374151',
169
+ textTransform: 'uppercase',
170
+ marginBottom: '0.5em',
171
+ },
172
+ '.ss__chat-product-query-message__variants__swatches': {
173
+ display: 'flex',
174
+ flexWrap: 'wrap',
175
+ gap: '0.5em',
176
+ '.ss__chat-product-query-message__variants__swatch': {
177
+ display: 'flex',
178
+ flex: '1 1 auto',
179
+ flexDirection: 'column',
180
+ alignItems: 'center',
181
+ gap: '0.25em',
182
+ cursor: 'pointer',
183
+ padding: '0.25em',
184
+ borderRadius: '0.5em',
185
+ border: '2px solid transparent',
186
+ transition: 'border-color 0.15s ease',
187
+ background: 'transparent',
188
+ font: 'inherit',
189
+ color: 'inherit',
190
+ '&:hover': {
191
+ borderColor: colorPrimary,
192
+ },
193
+ '&:focus-visible': {
194
+ outline: "2px solid ".concat(colorPrimary),
195
+ outlineOffset: '2px',
196
+ },
197
+ '&[aria-disabled="true"]': {
198
+ cursor: 'not-allowed',
199
+ },
200
+ '&.ss__chat-product-query-message__variants__swatch--selected': {
201
+ borderColor: colorPrimary,
202
+ borderWidth: '3px',
203
+ padding: '0.15em',
204
+ },
205
+ '&.ss__chat-product-query-message__variants__swatch--unavailable': {
206
+ opacity: 0.4,
207
+ },
208
+ '&.ss__chat-product-query-message__variants__swatch--text-only': {
209
+ padding: '0.4em 0.75em',
210
+ '&.ss__chat-product-query-message__variants__swatch--selected': {
211
+ padding: '0.3em 0.65em',
212
+ },
213
+ '.ss__chat-product-query-message__variants__swatch__value': {
214
+ fontSize: '1em',
215
+ maxWidth: 'none',
216
+ },
217
+ },
218
+ '.ss__chat-product-query-message__variants__swatch__image': {
219
+ width: '48px',
220
+ height: '48px',
221
+ objectFit: 'cover',
222
+ borderRadius: '50%',
223
+ border: '1px solid #E5E7EB',
224
+ },
225
+ '.ss__chat-product-query-message__variants__swatch__value': {
226
+ fontSize: '0.75em',
227
+ color: '#374151',
228
+ textAlign: 'center',
229
+ maxWidth: '60px',
230
+ overflow: 'hidden',
231
+ textOverflow: 'ellipsis',
232
+ whiteSpace: 'nowrap',
233
+ },
234
+ },
235
+ },
236
+ },
237
+ '.ss__chat-product-query-message__section': {
238
+ padding: '0 1em',
239
+ '.ss__chat-product-query-message__section__table': {
240
+ width: '100%',
241
+ maxWidth: '100%',
242
+ tableLayout: 'fixed',
243
+ borderCollapse: 'separate',
244
+ borderSpacing: 0,
245
+ fontSize: '0.9em',
246
+ 'tbody tr': {
247
+ transition: 'background-color 0.15s ease',
248
+ },
249
+ 'tbody tr:hover': {
250
+ background: '#F3F4F6',
251
+ },
252
+ 'th, td': {
253
+ padding: '0.75em 1em',
254
+ verticalAlign: 'top',
255
+ wordBreak: 'break-word',
256
+ overflowWrap: 'anywhere',
257
+ textAlign: 'left',
258
+ borderBottom: '1px solid #E5E7EB',
259
+ },
260
+ 'tbody tr:last-of-type th, tbody tr:last-of-type td': {
261
+ borderBottom: 'none',
262
+ },
263
+ 'th[scope="row"]': {
264
+ fontWeight: '600',
265
+ color: '#6B7280',
266
+ textTransform: 'uppercase',
267
+ fontSize: '0.8em',
268
+ letterSpacing: '0.03em',
269
+ width: '40%',
270
+ },
271
+ 'td:last-of-type': {
272
+ textAlign: 'right',
273
+ color: '#111827',
274
+ fontWeight: '500',
275
+ },
276
+ '.ss__chat-product-query-message__section__table__availability--in-stock': {
277
+ color: '#10B981',
278
+ fontWeight: '600',
279
+ },
280
+ '.ss__chat-product-query-message__section__table__availability--out-of-stock': {
281
+ color: '#DC2626',
282
+ fontWeight: '600',
283
+ },
284
+ '.ss__chat-product-query-message__section__table__price': {
285
+ display: 'flex',
286
+ gap: '0.5em',
287
+ alignItems: 'center',
288
+ justifyContent: 'flex-end',
289
+ },
290
+ },
291
+ },
292
+ '.ss__chat-product-query-message__description': {
293
+ padding: '0 1em',
294
+ fontSize: '0.9em',
295
+ color: '#374151',
296
+ lineHeight: '1.5',
297
+ },
298
+ });
299
+ };
300
+ // fields that have dedicated rendering in the product card; skip them in the info table
301
+ var CARD_FIELDS = new Set([
302
+ 'name',
303
+ 'brand',
304
+ 'price',
305
+ 'msrp',
306
+ 'imageUrl',
307
+ 'thumbnailImageUrl',
308
+ 'secureImageUrl',
309
+ 'secureThumbnailImageUrl',
310
+ 'url',
311
+ 'addToCartUrl',
312
+ 'uid',
313
+ 'sku',
314
+ 'parentId',
315
+ 'parentImageUrl',
316
+ 'description',
317
+ 'caption',
318
+ 'popularity',
319
+ 'stockMessage',
320
+ ]);
321
+ // preferred ordering for the structured info table - any extras get appended after
322
+ var PREFERRED_INFO_ORDER = ['material', 'fit', 'color', 'sizes', 'size', 'category', 'rating', 'availability'];
323
+ var formatLabel = function (key) {
324
+ return key
325
+ .replace(/[_-]+/g, ' ')
326
+ .replace(/([a-z])([A-Z])/g, '$1 $2')
327
+ .trim();
328
+ };
329
+ var stripHtml = function (str) { return str.replace(/<[^>]*>/g, ''); };
330
+ var formatValue = function (value) {
331
+ if (Array.isArray(value)) {
332
+ return stripHtml(value.filter(function (v) { return v != null && v !== ''; }).join(', '));
333
+ }
334
+ if (value == null) {
335
+ return '';
336
+ }
337
+ return stripHtml(String(value));
338
+ };
339
+ var collectInfoRows = function (display, displayFields) {
340
+ var _a;
341
+ var core = ((_a = display === null || display === void 0 ? void 0 : display.mappings) === null || _a === void 0 ? void 0 : _a.core) || {};
342
+ var attributes = (display === null || display === void 0 ? void 0 : display.attributes) || {};
343
+ var filterByDisplayFields = displayFields && displayFields.length > 0;
344
+ var displayFieldsLower = filterByDisplayFields ? displayFields.map(function (f) { return f.toLowerCase(); }) : [];
345
+ var merged = {};
346
+ // when displayFields is specified, include matching core fields that are normally skipped
347
+ if (filterByDisplayFields) {
348
+ Object.entries(core).forEach(function (_a) {
349
+ var key = _a[0], value = _a[1];
350
+ if (displayFieldsLower.includes(key.toLowerCase()) && value != null) {
351
+ merged[key] = value;
352
+ }
353
+ });
354
+ }
355
+ // pull selected core fields (rating + availability)
356
+ if (core.rating != null) {
357
+ var rating = core.rating;
358
+ var ratingCount = core.ratingCount;
359
+ merged.rating = ratingCount ? "".concat(rating, "/5.0 (").concat(ratingCount, " reviews)") : "".concat(rating, "/5.0");
360
+ }
361
+ if (core.available != null) {
362
+ merged.availability = core.available ? 'In Stock' : 'Out of Stock';
363
+ }
364
+ // merge product attributes, skipping ones already shown on the card
365
+ Object.entries(attributes).forEach(function (_a) {
366
+ var key = _a[0], value = _a[1];
367
+ if (!filterByDisplayFields && CARD_FIELDS.has(key))
368
+ return;
369
+ var formatted = formatValue(value);
370
+ if (!formatted)
371
+ return;
372
+ merged[key] = formatted;
373
+ });
374
+ var seen = new Set();
375
+ var ordered = [];
376
+ PREFERRED_INFO_ORDER.forEach(function (preferred) {
377
+ var match = Object.keys(merged).find(function (k) { return k.toLowerCase() === preferred; });
378
+ if (match && !seen.has(match)) {
379
+ seen.add(match);
380
+ ordered.push({ key: match, rawKey: match, label: formatLabel(match), value: formatValue(merged[match]) });
381
+ }
382
+ });
383
+ Object.keys(merged).forEach(function (key) {
384
+ if (seen.has(key))
385
+ return;
386
+ seen.add(key);
387
+ ordered.push({ key: key, rawKey: key, label: formatLabel(key), value: formatValue(merged[key]) });
388
+ });
389
+ // filter and sort by displayFields order
390
+ if (filterByDisplayFields) {
391
+ var filtered = ordered.filter(function (row) { return displayFieldsLower.includes(row.rawKey.toLowerCase()); });
392
+ filtered.sort(function (a, b) { return displayFieldsLower.indexOf(a.rawKey.toLowerCase()) - displayFieldsLower.indexOf(b.rawKey.toLowerCase()); });
393
+ return filtered;
394
+ }
395
+ return ordered;
396
+ };
397
+ exports.ChatProductQueryMessage = (0, mobx_react_lite_1.observer)(function (properties) {
398
+ var _a, _b;
399
+ var globalTheme = (0, providers_1.useTheme)();
400
+ var globalTreePath = (0, providers_1.useTreePath)();
401
+ var defaultProps = {
402
+ treePath: globalTreePath,
403
+ };
404
+ var props = (0, utilities_1.mergeProps)('chatProductQueryMessage', globalTheme, defaultProps, properties);
405
+ var chatItem = props.chatItem, controller = props.controller, displayFields = props.displayFields, className = props.className, internalClassName = props.internalClassName;
406
+ var styling = (0, utilities_1.mergeStyles)(props, defaultStyles);
407
+ var messageType = chatItem.messageType, sourceProduct = chatItem.sourceProduct;
408
+ if (messageType !== 'productQuery') {
409
+ console.warn('ChatProductQueryMessage received message with unsupported type:', messageType, 'Expected type: productQuery');
410
+ return null;
411
+ }
412
+ var product = controller === null || controller === void 0 ? void 0 : controller.store.productQuickview;
413
+ var productQuickviewError = controller === null || controller === void 0 ? void 0 : controller.store.productQuickviewError;
414
+ var chatMessages = ((_a = controller === null || controller === void 0 ? void 0 : controller.store.currentChat) === null || _a === void 0 ? void 0 : _a.chat) || [];
415
+ var sourceMessage = chatItem.sourceMessageId ? chatMessages.find(function (m) { return m.id === chatItem.sourceMessageId; }) : null;
416
+ var cameFromInspiration = (sourceMessage === null || sourceMessage === void 0 ? void 0 : sourceMessage.messageType) === 'inspirationResult';
417
+ var cameFromComparison = (sourceMessage === null || sourceMessage === void 0 ? void 0 : sourceMessage.messageType) === 'productComparison';
418
+ if (!product) {
419
+ return ((0, jsx_runtime_1.jsx)(providers_1.CacheProvider, { children: (0, jsx_runtime_1.jsx)("div", __assign({ className: (0, classnames_1.default)('ss__chat-product-query-message', className, internalClassName) }, styling, { children: (0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)('ss__chat-product-query-message__header'), children: (0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)('ss__chat-product-query-message__header__product'), children: (0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)('ss__chat-product-query-message__header__product__details'), children: (0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)('ss__chat-product-query-message__header__product__details__name'), children: productQuickviewError || 'Loading product details...' }) }) }) }) })) }));
420
+ }
421
+ var displayed = product.display;
422
+ var displayedCore = ((_b = displayed.mappings) === null || _b === void 0 ? void 0 : _b.core) || {};
423
+ var variants = product.variants;
424
+ var selections = (variants === null || variants === void 0 ? void 0 : variants.selections) || [];
425
+ // Ensure every selection has an initial value picked. Without this, entering
426
+ // the quickview from inspiration leaves all selections empty, and the first
427
+ // variant click can't narrow `refineSelections` to a single variant — so the
428
+ // active variant (and hero image) doesn't update until a second selection is
429
+ // made. Prefer the variant whose own id (uid) matches the clicked result's id
430
+ // so the panel reflects exactly the variant the user clicked; fall back to the
431
+ // first available value. Single-value selections also get hidden from the UI
432
+ // (handled by `visibleSelections` below).
433
+ (0, hooks_1.useEffect)(function () {
434
+ var _a;
435
+ var sourceId = sourceProduct === null || sourceProduct === void 0 ? void 0 : sourceProduct.id;
436
+ var matchedVariant = sourceId != null ? (_a = variants === null || variants === void 0 ? void 0 : variants.data) === null || _a === void 0 ? void 0 : _a.find(function (variant) { var _a, _b; return ((_b = (_a = variant.mappings) === null || _a === void 0 ? void 0 : _a.core) === null || _b === void 0 ? void 0 : _b.uid) === sourceId; }) : undefined;
437
+ selections.forEach(function (selection) {
438
+ var _a, _b;
439
+ if (selection.selected)
440
+ return;
441
+ var matchedValue = (_b = (_a = matchedVariant === null || matchedVariant === void 0 ? void 0 : matchedVariant.options) === null || _a === void 0 ? void 0 : _a[selection.field]) === null || _b === void 0 ? void 0 : _b.value;
442
+ var target = (matchedValue != null && selection.values.find(function (v) { return v.available && v.value == matchedValue; })) ||
443
+ selection.values.find(function (v) { return v.available; }) ||
444
+ selection.values[0];
445
+ if (target) {
446
+ selection.select(target.value);
447
+ }
448
+ });
449
+ }, [selections]);
450
+ var visibleSelections = selections.filter(function (selection) { return selection.values.length > 1; });
451
+ var displayedData = {
452
+ mappings: displayed.mappings,
453
+ attributes: displayed.attributes || {},
454
+ };
455
+ var allInfoRows = collectInfoRows(displayedData, displayFields);
456
+ var descriptionRow = allInfoRows.find(function (row) { return row.rawKey.toLowerCase() === 'description'; });
457
+ var infoRows = allInfoRows.filter(function (row) { return row.rawKey.toLowerCase() !== 'description'; });
458
+ var handleBack = function () {
459
+ var _a;
460
+ (_a = controller === null || controller === void 0 ? void 0 : controller.store.currentChat) === null || _a === void 0 ? void 0 : _a.popProductQueryMessage(chatItem.sourceMessageId);
461
+ controller === null || controller === void 0 ? void 0 : controller.store.clearProductQuickview();
462
+ };
463
+ return ((0, jsx_runtime_1.jsx)(providers_1.CacheProvider, { children: (0, jsx_runtime_1.jsxs)("div", __assign({ className: (0, classnames_1.default)('ss__chat-product-query-message', className, internalClassName) }, styling, { children: [(cameFromInspiration || cameFromComparison) && ((0, jsx_runtime_1.jsxs)("button", { type: "button", className: (0, classnames_1.default)('ss__chat-product-query-message__header__back'), "aria-label": cameFromComparison ? 'Back to comparison' : 'Back to inspiration', onClick: handleBack, children: [(0, jsx_runtime_1.jsx)(__1.Icon, { icon: "angle-left", size: "14px" }), (0, jsx_runtime_1.jsx)("span", { children: cameFromComparison ? 'Back to comparison' : 'Back to inspiration' })] })), (0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)('ss__chat-product-query-message__header'), children: (0, jsx_runtime_1.jsxs)("div", { className: (0, classnames_1.default)('ss__chat-product-query-message__header__product'), children: [(displayedCore.imageUrl || displayedCore.parentImageUrl) && ((0, jsx_runtime_1.jsx)(Image_1.Image, { className: (0, classnames_1.default)('ss__chat-product-query-message__header__product__image'), src: (displayedCore.imageUrl || displayedCore.parentImageUrl), alt: displayedCore.name || '' })), (0, jsx_runtime_1.jsxs)("div", { className: (0, classnames_1.default)('ss__chat-product-query-message__header__product__details'), children: [displayedCore.name && ((0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)('ss__chat-product-query-message__header__product__details__name'), children: displayedCore.url ? ((0, jsx_runtime_1.jsx)("a", { href: displayedCore.url, onClick: function (e) { return controller === null || controller === void 0 ? void 0 : controller.track.product.click(e, product); }, target: "_blank", rel: "noopener noreferrer", children: displayedCore.name })) : (displayedCore.name) })), displayedCore.price != null && ((0, jsx_runtime_1.jsxs)("div", { className: (0, classnames_1.default)('ss__chat-product-query-message__header__product__details__price'), children: [displayedCore.msrp != null && Number(displayedCore.msrp) > Number(displayedCore.price) && ((0, jsx_runtime_1.jsx)(__1.Price, { value: displayedCore.msrp, lineThrough: true })), (0, jsx_runtime_1.jsx)(__1.Price, { value: displayedCore.price })] })), (0, jsx_runtime_1.jsxs)("div", { className: (0, classnames_1.default)('ss__chat-product-query-message__header__product__actions'), children: [(0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)('ss__chat-product-query-message__header__product__actions__add-to-cart'), children: (0, jsx_runtime_1.jsx)(Button_1.Button, { icon: "cart", content: 'Add to Cart', onClick: function () {
464
+ controller === null || controller === void 0 ? void 0 : controller.track.product.addToCart(product);
465
+ controller === null || controller === void 0 ? void 0 : controller.addToCart(product);
466
+ } }) }), (controller === null || controller === void 0 ? void 0 : controller.store.features.similarProducts.enabled) && ((0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)('ss__chat-product-query-message__header__product__actions__show-similar'), children: (0, jsx_runtime_1.jsx)(Button_1.Button, { icon: "search-thin", content: 'Similar', onClick: function () { return controller === null || controller === void 0 ? void 0 : controller.productSimilar(sourceProduct); } }) })), (0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)('ss__chat-product-query-message__header__product__actions__discuss-product'), children: (0, jsx_runtime_1.jsx)(Button_1.Button, { icon: "chat", content: 'Discuss', onClick: function () { return controller === null || controller === void 0 ? void 0 : controller.productQuery(sourceProduct); } }) })] })] })] }) }), visibleSelections.length > 0 && ((0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)('ss__chat-product-query-message__variants'), role: "group", "aria-label": "Variant selection", children: visibleSelections.map(function (selection) {
467
+ var _a;
468
+ // If every value in this selection shares the same thumbnail (or none have
469
+ // one), the image carries no signal — show text only.
470
+ var firstThumb = (_a = selection.values[0]) === null || _a === void 0 ? void 0 : _a.thumbnailImageUrl;
471
+ var allSameThumb = selection.values.every(function (v) { return v.thumbnailImageUrl === firstThumb; });
472
+ var showThumbs = !allSameThumb;
473
+ return ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsxs)("div", { className: (0, classnames_1.default)('ss__chat-product-query-message__variants__label'), id: "ss__chat-pq-variant-".concat(selection.field), children: [formatLabel(selection.field), " (", selection.values.length, ")"] }), (0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)('ss__chat-product-query-message__variants__swatches'), role: "radiogroup", "aria-labelledby": "ss__chat-pq-variant-".concat(selection.field), children: selection.values.map(function (selectionValue) {
474
+ var _a;
475
+ var isUnavailable = !selectionValue.available;
476
+ var isSelected = ((_a = selection.selected) === null || _a === void 0 ? void 0 : _a.value) === selectionValue.value;
477
+ return ((0, jsx_runtime_1.jsxs)("button", { type: "button", className: (0, classnames_1.default)('ss__chat-product-query-message__variants__swatch', {
478
+ 'ss__chat-product-query-message__variants__swatch--selected': isSelected,
479
+ 'ss__chat-product-query-message__variants__swatch--unavailable': isUnavailable,
480
+ 'ss__chat-product-query-message__variants__swatch--text-only': !showThumbs,
481
+ }), title: selectionValue.value, role: "radio", "aria-checked": isSelected, "aria-disabled": isUnavailable, "aria-label": "".concat(formatLabel(selection.field), ": ").concat(selectionValue.value).concat(isUnavailable ? ' (unavailable)' : ''), onClick: function () { return selection.select(selectionValue.value); }, children: [showThumbs && selectionValue.thumbnailImageUrl ? ((0, jsx_runtime_1.jsx)(Image_1.Image, { className: (0, classnames_1.default)('ss__chat-product-query-message__variants__swatch__image'), src: selectionValue.thumbnailImageUrl, alt: selectionValue.value })) : null, (0, jsx_runtime_1.jsx)("span", { className: (0, classnames_1.default)('ss__chat-product-query-message__variants__swatch__value'), children: selectionValue.value })] }, selectionValue.value));
482
+ }) })] }, selection.field));
483
+ }) })), infoRows.length > 0 && ((0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)('ss__chat-product-query-message__section'), children: (0, jsx_runtime_1.jsx)("table", { className: (0, classnames_1.default)('ss__chat-product-query-message__section__table'), "aria-label": "Product information", children: (0, jsx_runtime_1.jsx)("tbody", { children: infoRows.map(function (row) { return ((0, jsx_runtime_1.jsxs)("tr", { children: [(0, jsx_runtime_1.jsx)("th", { scope: "row", children: row.label }), (0, jsx_runtime_1.jsx)("td", { children: row.rawKey === 'availability' ? ((0, jsx_runtime_1.jsx)("span", { className: (0, classnames_1.default)({
484
+ 'ss__chat-product-query-message__section__table__availability--in-stock': row.value === 'In Stock',
485
+ 'ss__chat-product-query-message__section__table__availability--out-of-stock': row.value === 'Out of Stock',
486
+ }), children: row.value === 'In Stock' ? "\u2713 ".concat(row.value) : row.value })) : row.rawKey.toLowerCase() === 'price' ? ((0, jsx_runtime_1.jsxs)("span", { className: "ss__chat-product-query-message__section__table__price", children: [displayedCore.msrp != null && Number(displayedCore.msrp) > Number(row.value) && ((0, jsx_runtime_1.jsx)(__1.Price, { value: Number(displayedCore.msrp), lineThrough: true })), (0, jsx_runtime_1.jsx)(__1.Price, { value: Number(row.value) })] })) : (row.value) })] }, row.key)); }) }) }) })), descriptionRow && (0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)('ss__chat-product-query-message__description'), children: descriptionRow.value })] })) }));
487
+ });
@@ -0,0 +1,2 @@
1
+ export * from './ChatProductQueryMessage';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../components/src/components/Molecules/ChatProductQueryMessage/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC"}
@@ -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("./ChatProductQueryMessage"), exports);
@@ -0,0 +1,11 @@
1
+ import { ComponentProps } from '../../../types';
2
+ import type { ChatController } from '@athoscommerce/snap-controller';
3
+ import type { Product } from '@athoscommerce/snap-store-mobx';
4
+ export declare const ChatResult: (props: ChatResultProps) => import("@emotion/react/jsx-runtime").JSX.Element;
5
+ export interface ChatResultProps extends ComponentProps {
6
+ result: Product;
7
+ controller: ChatController;
8
+ scrollToBottom: () => void;
9
+ trackingRef?: (el: HTMLElement | null) => void;
10
+ }
11
+ //# 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":"AAOA,OAAO,EAAE,cAAc,EAAe,MAAM,gBAAgB,CAAC;AAK7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AA4H9D,eAAO,MAAM,UAAU,8EAwItB,CAAC;AAOF,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACtD,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,cAAc,CAAC;IAC3B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,KAAK,IAAI,CAAC;CAC/C"}