@athoscommerce/snap-preact 1.2.2 → 1.2.3-beta.2

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 (235) 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 +1 -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 +30 -13
  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 +2 -2
  16. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts +18 -0
  17. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts.map +1 -0
  18. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.js +115 -0
  19. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts +2 -0
  20. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts.map +1 -0
  21. package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/index.js +17 -0
  22. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts +17 -0
  23. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts.map +1 -0
  24. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.js +106 -0
  25. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts +2 -0
  26. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts.map +1 -0
  27. package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/index.js +17 -0
  28. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts +23 -0
  29. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts.map +1 -0
  30. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.js +445 -0
  31. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts +2 -0
  32. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts.map +1 -0
  33. package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/index.js +17 -0
  34. package/dist/cjs/components/src/components/Molecules/OverlayBadge/OverlayBadge.js +2 -2
  35. package/dist/cjs/components/src/components/Molecules/Result/Result.d.ts +3 -3
  36. package/dist/cjs/components/src/components/Molecules/Result/Result.d.ts.map +1 -1
  37. package/dist/cjs/components/src/components/Molecules/Result/Result.js +4 -4
  38. package/dist/cjs/components/src/components/Molecules/SearchInput/SearchInput.d.ts +2 -0
  39. package/dist/cjs/components/src/components/Molecules/SearchInput/SearchInput.d.ts.map +1 -1
  40. package/dist/cjs/components/src/components/Molecules/SearchInput/SearchInput.js +19 -2
  41. package/dist/cjs/components/src/components/Molecules/Slideout/Slideout.d.ts.map +1 -1
  42. package/dist/cjs/components/src/components/Molecules/Slideout/Slideout.js +30 -12
  43. package/dist/cjs/components/src/components/Organisms/Chat/Chat.d.ts +14 -0
  44. package/dist/cjs/components/src/components/Organisms/Chat/Chat.d.ts.map +1 -0
  45. package/dist/cjs/components/src/components/Organisms/Chat/Chat.js +1619 -0
  46. package/dist/cjs/components/src/components/Organisms/Chat/ChatAttachmentContext.d.ts +19 -0
  47. package/dist/cjs/components/src/components/Organisms/Chat/ChatAttachmentContext.d.ts.map +1 -0
  48. package/dist/cjs/components/src/components/Organisms/Chat/ChatAttachmentContext.js +22 -0
  49. package/dist/cjs/components/src/components/Organisms/Chat/ChatResult.d.ts +12 -0
  50. package/dist/cjs/components/src/components/Organisms/Chat/ChatResult.d.ts.map +1 -0
  51. package/dist/cjs/components/src/components/Organisms/Chat/ChatResult.js +158 -0
  52. package/dist/cjs/components/src/components/Organisms/Chat/MessageText.d.ts +13 -0
  53. package/dist/cjs/components/src/components/Organisms/Chat/MessageText.d.ts.map +1 -0
  54. package/dist/cjs/components/src/components/Organisms/Chat/MessageText.js +170 -0
  55. package/dist/cjs/components/src/components/Organisms/Chat/MessageUser.d.ts +11 -0
  56. package/dist/cjs/components/src/components/Organisms/Chat/MessageUser.d.ts.map +1 -0
  57. package/dist/cjs/components/src/components/Organisms/Chat/MessageUser.js +192 -0
  58. package/dist/cjs/components/src/components/Organisms/Chat/ResultsDisplay.d.ts +11 -0
  59. package/dist/cjs/components/src/components/Organisms/Chat/ResultsDisplay.d.ts.map +1 -0
  60. package/dist/cjs/components/src/components/Organisms/Chat/ResultsDisplay.js +86 -0
  61. package/dist/cjs/components/src/components/Organisms/Chat/SuggestedQuestions.d.ts +12 -0
  62. package/dist/cjs/components/src/components/Organisms/Chat/SuggestedQuestions.d.ts.map +1 -0
  63. package/dist/cjs/components/src/components/Organisms/Chat/SuggestedQuestions.js +73 -0
  64. package/dist/cjs/components/src/components/Organisms/Chat/index.d.ts +2 -0
  65. package/dist/cjs/components/src/components/Organisms/Chat/index.d.ts.map +1 -0
  66. package/dist/cjs/components/src/components/Organisms/Chat/index.js +17 -0
  67. package/dist/cjs/components/src/components/Organisms/FacetsHorizontal/FacetsHorizontal.js +2 -2
  68. package/dist/cjs/components/src/components/Organisms/MobileSidebar/MobileSidebar.d.ts +1 -0
  69. package/dist/cjs/components/src/components/Organisms/MobileSidebar/MobileSidebar.d.ts.map +1 -1
  70. package/dist/cjs/components/src/components/Organisms/MobileSidebar/MobileSidebar.js +2 -2
  71. package/dist/cjs/components/src/components/Organisms/Results/Results.js +1 -1
  72. package/dist/cjs/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.d.ts.map +1 -1
  73. package/dist/cjs/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.js +8 -10
  74. package/dist/cjs/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts.map +1 -1
  75. package/dist/cjs/components/src/components/Templates/AutocompleteModal/AutocompleteModal.js +6 -8
  76. package/dist/cjs/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.d.ts.map +1 -1
  77. package/dist/cjs/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.js +7 -9
  78. package/dist/cjs/components/src/components/Templates/Search/Search.d.ts +2 -2
  79. package/dist/cjs/components/src/components/Templates/Search/Search.d.ts.map +1 -1
  80. package/dist/cjs/components/src/hooks/useAcRenderedInput.js +1 -1
  81. package/dist/cjs/components/src/hooks/useLayoutOptions.d.ts.map +1 -1
  82. package/dist/cjs/components/src/hooks/useLayoutOptions.js +21 -11
  83. package/dist/cjs/components/src/index.d.ts +1 -0
  84. package/dist/cjs/components/src/index.d.ts.map +1 -1
  85. package/dist/cjs/components/src/index.js +1 -0
  86. package/dist/cjs/components/src/providers/themeComponents.d.ts +50 -16
  87. package/dist/cjs/components/src/providers/themeComponents.d.ts.map +1 -1
  88. package/dist/cjs/components/src/providers/withTracking.d.ts +2 -2
  89. package/dist/cjs/components/src/providers/withTracking.d.ts.map +1 -1
  90. package/dist/cjs/components/src/types.d.ts +2 -0
  91. package/dist/cjs/components/src/types.d.ts.map +1 -1
  92. package/dist/cjs/src/Snap.d.ts +2 -1
  93. package/dist/cjs/src/Snap.d.ts.map +1 -1
  94. package/dist/cjs/src/Snap.js +124 -24
  95. package/dist/cjs/src/Templates/SnapTemplates.d.ts +12 -2
  96. package/dist/cjs/src/Templates/SnapTemplates.d.ts.map +1 -1
  97. package/dist/cjs/src/Templates/SnapTemplates.js +54 -1
  98. package/dist/cjs/src/Templates/Stores/LibraryStore.d.ts +4 -0
  99. package/dist/cjs/src/Templates/Stores/LibraryStore.d.ts.map +1 -1
  100. package/dist/cjs/src/Templates/Stores/LibraryStore.js +19 -0
  101. package/dist/cjs/src/Templates/Stores/TemplateStore.d.ts +5 -2
  102. package/dist/cjs/src/Templates/Stores/TemplateStore.d.ts.map +1 -1
  103. package/dist/cjs/src/Templates/Stores/TemplateStore.js +1 -0
  104. package/dist/cjs/src/Templates/Stores/library/components/Chat.d.ts +2 -0
  105. package/dist/cjs/src/Templates/Stores/library/components/Chat.d.ts.map +1 -0
  106. package/dist/cjs/src/Templates/Stores/library/components/Chat.js +5 -0
  107. package/dist/cjs/src/Templates/Stores/library/languages/es.d.ts.map +1 -1
  108. package/dist/cjs/src/Templates/Stores/library/languages/es.js +5 -0
  109. package/dist/cjs/src/Templates/Stores/library/languages/fr.d.ts.map +1 -1
  110. package/dist/cjs/src/Templates/Stores/library/languages/fr.js +5 -0
  111. package/dist/cjs/src/create/createChatController.d.ts +5 -0
  112. package/dist/cjs/src/create/createChatController.d.ts.map +1 -0
  113. package/dist/cjs/src/create/createChatController.js +43 -0
  114. package/dist/cjs/src/setupEvents.d.ts.map +1 -1
  115. package/dist/cjs/src/setupEvents.js +39 -0
  116. package/dist/cjs/src/types.d.ts +15 -3
  117. package/dist/cjs/src/types.d.ts.map +1 -1
  118. package/dist/esm/components/src/components/Atoms/Button/Button.d.ts +1 -1
  119. package/dist/esm/components/src/components/Atoms/Button/Button.d.ts.map +1 -1
  120. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts +7 -0
  121. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts.map +1 -0
  122. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.js +67 -0
  123. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts +2 -0
  124. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts.map +1 -0
  125. package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.js +1 -0
  126. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.d.ts +1 -0
  127. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.d.ts.map +1 -1
  128. package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.js +33 -9
  129. package/dist/esm/components/src/components/Atoms/Icon/paths.d.ts +21 -0
  130. package/dist/esm/components/src/components/Atoms/Icon/paths.d.ts.map +1 -1
  131. package/dist/esm/components/src/components/Atoms/Icon/paths.js +21 -0
  132. package/dist/esm/components/src/components/Molecules/CalloutBadge/CalloutBadge.js +1 -1
  133. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts +18 -0
  134. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts.map +1 -0
  135. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.js +109 -0
  136. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts +2 -0
  137. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts.map +1 -0
  138. package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.js +1 -0
  139. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts +17 -0
  140. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts.map +1 -0
  141. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.js +85 -0
  142. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts +2 -0
  143. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts.map +1 -0
  144. package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.js +1 -0
  145. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts +23 -0
  146. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts.map +1 -0
  147. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.js +421 -0
  148. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts +2 -0
  149. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts.map +1 -0
  150. package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.js +1 -0
  151. package/dist/esm/components/src/components/Molecules/OverlayBadge/OverlayBadge.js +1 -1
  152. package/dist/esm/components/src/components/Molecules/Result/Result.d.ts +3 -3
  153. package/dist/esm/components/src/components/Molecules/Result/Result.d.ts.map +1 -1
  154. package/dist/esm/components/src/components/Molecules/Result/Result.js +2 -2
  155. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.d.ts +2 -0
  156. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.d.ts.map +1 -1
  157. package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.js +35 -2
  158. package/dist/esm/components/src/components/Molecules/Slideout/Slideout.d.ts.map +1 -1
  159. package/dist/esm/components/src/components/Molecules/Slideout/Slideout.js +30 -12
  160. package/dist/esm/components/src/components/Organisms/Chat/Chat.d.ts +14 -0
  161. package/dist/esm/components/src/components/Organisms/Chat/Chat.d.ts.map +1 -0
  162. package/dist/esm/components/src/components/Organisms/Chat/Chat.js +1560 -0
  163. package/dist/esm/components/src/components/Organisms/Chat/ChatAttachmentContext.d.ts +19 -0
  164. package/dist/esm/components/src/components/Organisms/Chat/ChatAttachmentContext.d.ts.map +1 -0
  165. package/dist/esm/components/src/components/Organisms/Chat/ChatAttachmentContext.js +16 -0
  166. package/dist/esm/components/src/components/Organisms/Chat/ChatResult.d.ts +12 -0
  167. package/dist/esm/components/src/components/Organisms/Chat/ChatResult.d.ts.map +1 -0
  168. package/dist/esm/components/src/components/Organisms/Chat/ChatResult.js +143 -0
  169. package/dist/esm/components/src/components/Organisms/Chat/MessageText.d.ts +13 -0
  170. package/dist/esm/components/src/components/Organisms/Chat/MessageText.d.ts.map +1 -0
  171. package/dist/esm/components/src/components/Organisms/Chat/MessageText.js +152 -0
  172. package/dist/esm/components/src/components/Organisms/Chat/MessageUser.d.ts +11 -0
  173. package/dist/esm/components/src/components/Organisms/Chat/MessageUser.d.ts.map +1 -0
  174. package/dist/esm/components/src/components/Organisms/Chat/MessageUser.js +164 -0
  175. package/dist/esm/components/src/components/Organisms/Chat/ResultsDisplay.d.ts +11 -0
  176. package/dist/esm/components/src/components/Organisms/Chat/ResultsDisplay.d.ts.map +1 -0
  177. package/dist/esm/components/src/components/Organisms/Chat/ResultsDisplay.js +70 -0
  178. package/dist/esm/components/src/components/Organisms/Chat/SuggestedQuestions.d.ts +12 -0
  179. package/dist/esm/components/src/components/Organisms/Chat/SuggestedQuestions.d.ts.map +1 -0
  180. package/dist/esm/components/src/components/Organisms/Chat/SuggestedQuestions.js +58 -0
  181. package/dist/esm/components/src/components/Organisms/Chat/index.d.ts +2 -0
  182. package/dist/esm/components/src/components/Organisms/Chat/index.d.ts.map +1 -0
  183. package/dist/esm/components/src/components/Organisms/Chat/index.js +1 -0
  184. package/dist/esm/components/src/components/Organisms/FacetsHorizontal/FacetsHorizontal.js +2 -2
  185. package/dist/esm/components/src/components/Organisms/MobileSidebar/MobileSidebar.d.ts +1 -0
  186. package/dist/esm/components/src/components/Organisms/MobileSidebar/MobileSidebar.d.ts.map +1 -1
  187. package/dist/esm/components/src/components/Organisms/MobileSidebar/MobileSidebar.js +2 -2
  188. package/dist/esm/components/src/components/Organisms/Results/Results.js +1 -1
  189. package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.d.ts.map +1 -1
  190. package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.js +7 -8
  191. package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts.map +1 -1
  192. package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.js +7 -8
  193. package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.d.ts.map +1 -1
  194. package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.js +7 -8
  195. package/dist/esm/components/src/components/Templates/Search/Search.d.ts +2 -2
  196. package/dist/esm/components/src/components/Templates/Search/Search.d.ts.map +1 -1
  197. package/dist/esm/components/src/hooks/useAcRenderedInput.js +1 -1
  198. package/dist/esm/components/src/hooks/useLayoutOptions.d.ts.map +1 -1
  199. package/dist/esm/components/src/hooks/useLayoutOptions.js +21 -11
  200. package/dist/esm/components/src/index.d.ts +1 -0
  201. package/dist/esm/components/src/index.d.ts.map +1 -1
  202. package/dist/esm/components/src/index.js +1 -0
  203. package/dist/esm/components/src/providers/themeComponents.d.ts +50 -16
  204. package/dist/esm/components/src/providers/themeComponents.d.ts.map +1 -1
  205. package/dist/esm/components/src/providers/withTracking.d.ts +2 -2
  206. package/dist/esm/components/src/providers/withTracking.d.ts.map +1 -1
  207. package/dist/esm/components/src/types.d.ts +2 -0
  208. package/dist/esm/components/src/types.d.ts.map +1 -1
  209. package/dist/esm/src/Snap.d.ts +2 -1
  210. package/dist/esm/src/Snap.d.ts.map +1 -1
  211. package/dist/esm/src/Snap.js +59 -0
  212. package/dist/esm/src/Templates/SnapTemplates.d.ts +12 -2
  213. package/dist/esm/src/Templates/SnapTemplates.d.ts.map +1 -1
  214. package/dist/esm/src/Templates/SnapTemplates.js +43 -0
  215. package/dist/esm/src/Templates/Stores/LibraryStore.d.ts +4 -0
  216. package/dist/esm/src/Templates/Stores/LibraryStore.d.ts.map +1 -1
  217. package/dist/esm/src/Templates/Stores/LibraryStore.js +6 -0
  218. package/dist/esm/src/Templates/Stores/TemplateStore.d.ts +5 -2
  219. package/dist/esm/src/Templates/Stores/TemplateStore.d.ts.map +1 -1
  220. package/dist/esm/src/Templates/Stores/TemplateStore.js +1 -0
  221. package/dist/esm/src/Templates/Stores/library/components/Chat.d.ts +2 -0
  222. package/dist/esm/src/Templates/Stores/library/components/Chat.d.ts.map +1 -0
  223. package/dist/esm/src/Templates/Stores/library/components/Chat.js +1 -0
  224. package/dist/esm/src/Templates/Stores/library/languages/es.d.ts.map +1 -1
  225. package/dist/esm/src/Templates/Stores/library/languages/es.js +5 -0
  226. package/dist/esm/src/Templates/Stores/library/languages/fr.d.ts.map +1 -1
  227. package/dist/esm/src/Templates/Stores/library/languages/fr.js +5 -0
  228. package/dist/esm/src/create/createChatController.d.ts +5 -0
  229. package/dist/esm/src/create/createChatController.d.ts.map +1 -0
  230. package/dist/esm/src/create/createChatController.js +29 -0
  231. package/dist/esm/src/setupEvents.d.ts.map +1 -1
  232. package/dist/esm/src/setupEvents.js +23 -0
  233. package/dist/esm/src/types.d.ts +15 -3
  234. package/dist/esm/src/types.d.ts.map +1 -1
  235. package/package.json +13 -12
@@ -0,0 +1,17 @@
1
+ import { ComponentProps } from '../../../types';
2
+ import type { ChatController } from '@athoscommerce/snap-controller';
3
+ import { ChatResponseProductComparisonData } from '@athoscommerce/snap-client';
4
+ export declare const ChatProductComparisonMessage: ((properties: ChatProductComparisonMessageProps) => import("@emotion/react/jsx-runtime").JSX.Element | null) & {
5
+ displayName: string;
6
+ };
7
+ export type ChatProductComparisonMessageProps = {
8
+ chatItem: ChatResponseProductComparisonData;
9
+ controller?: ChatController;
10
+ lang?: Partial<ChatProductComparisonMessageLang>;
11
+ } & ChatProductComparisonMessageTemplatesLegalProps & ComponentProps<ChatProductComparisonMessageProps>;
12
+ export type ChatProductComparisonMessageTemplatesLegalProps = {
13
+ chatItem: ChatResponseProductComparisonData;
14
+ };
15
+ export interface ChatProductComparisonMessageLang {
16
+ }
17
+ //# sourceMappingURL=ChatProductComparisonMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatProductComparisonMessage.d.ts","sourceRoot":"","sources":["../../../../../../../components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAe,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAErE,OAAO,EAAE,iCAAiC,EAAE,MAAM,4BAA4B,CAAC;AAwD/E,eAAO,MAAM,4BAA4B,gBAAyB,iCAAiC;;CAmFjG,CAAC;AAMH,MAAM,MAAM,iCAAiC,GAAG;IAC/C,QAAQ,EAAE,iCAAiC,CAAC;IAC5C,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC,gCAAgC,CAAC,CAAC;CACjD,GAAG,+CAA+C,GAClD,cAAc,CAAC,iCAAiC,CAAC,CAAC;AAEnD,MAAM,MAAM,+CAA+C,GAAG;IAC7D,QAAQ,EAAE,iCAAiC,CAAC;CAC5C,CAAC;AAEF,MAAM,WAAW,gCAAgC;CAKhD"}
@@ -0,0 +1,106 @@
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.ChatProductComparisonMessage = void 0;
18
+ var jsx_runtime_1 = require("@emotion/react/jsx-runtime");
19
+ var mobx_react_lite_1 = require("mobx-react-lite");
20
+ var react_1 = require("@emotion/react");
21
+ var classnames_1 = __importDefault(require("classnames"));
22
+ var providers_1 = require("../../../providers");
23
+ var utilities_1 = require("../../../utilities");
24
+ var defaultStyles = function () {
25
+ return (0, react_1.css)({
26
+ padding: '1em',
27
+ '.ss__chat-product-comparison-message__table-wrapper': {
28
+ overflowX: 'auto',
29
+ },
30
+ '.ss__chat-product-comparison-message__table': {
31
+ borderCollapse: 'collapse',
32
+ width: '100%',
33
+ fontSize: '0.9em',
34
+ 'th, td': {
35
+ padding: '0.6em 0.8em',
36
+ textAlign: 'left',
37
+ verticalAlign: 'top',
38
+ border: '1px solid #E5E7EB',
39
+ },
40
+ 'tbody tr:nth-of-type(even)': {
41
+ background: '#F9FAFB',
42
+ },
43
+ '.ss__chat-product-comparison-message__table__product-header': {
44
+ textAlign: 'center',
45
+ minWidth: '120px',
46
+ '.ss__chat-product-comparison-message__table__product-header__image': {
47
+ width: '80px',
48
+ height: '80px',
49
+ objectFit: 'contain',
50
+ display: 'block',
51
+ margin: '0 auto 0.4em',
52
+ },
53
+ '.ss__chat-product-comparison-message__table__product-header__name': {
54
+ fontWeight: 'bold',
55
+ fontSize: '0.85em',
56
+ },
57
+ },
58
+ '.ss__chat-product-comparison-message__table__feature-name': {
59
+ fontWeight: '600',
60
+ background: '#F3F4F6',
61
+ whiteSpace: 'nowrap',
62
+ },
63
+ '.ss__chat-product-comparison-message__table__value': {
64
+ textAlign: 'center',
65
+ },
66
+ },
67
+ });
68
+ };
69
+ exports.ChatProductComparisonMessage = (0, mobx_react_lite_1.observer)(function (properties) {
70
+ var globalTheme = (0, providers_1.useTheme)();
71
+ var globalTreePath = (0, providers_1.useTreePath)();
72
+ var defaultProps = {
73
+ treePath: globalTreePath,
74
+ };
75
+ var props = (0, utilities_1.mergeProps)('chatProductComparisonMessage', globalTheme, defaultProps, properties);
76
+ var chatItem = props.chatItem, className = props.className, internalClassName = props.internalClassName;
77
+ // const subProps: ChatProductComparisonMessageSubProps = {
78
+ // };
79
+ var styling = (0, utilities_1.mergeStyles)(props, defaultStyles);
80
+ //initialize lang
81
+ // const defaultLang = {
82
+ // // label: {
83
+ // // value: label,
84
+ // // },
85
+ // };
86
+ //deep merge with props.lang
87
+ // const lang = deepmerge(defaultLang, props.lang || {});
88
+ var messageType = chatItem.messageType, comparisonData = chatItem.comparisonData, searchResults = chatItem.searchResults;
89
+ if (messageType !== 'productComparison') {
90
+ console.warn('ChatProductComparisonMessage received message with unsupported type:', messageType, 'Expected type: productComparison');
91
+ return null;
92
+ }
93
+ var headings = comparisonData.features.length ? Object.keys(comparisonData.features[0].values) : [];
94
+ var getDisplay = function (r) { return (r === null || r === void 0 ? void 0 : r.display) || r; };
95
+ var allProductsHaveImage = headings.length > 0 && headings.every(function (heading) { var _a, _b, _c; return !!((_c = (_b = (_a = getDisplay(searchResults.find(function (r) { return (r === null || r === void 0 ? void 0 : r.id) === heading; }))) === null || _a === void 0 ? void 0 : _a.mappings) === null || _b === void 0 ? void 0 : _b.core) === null || _c === void 0 ? void 0 : _c.imageUrl); });
96
+ return comparisonData.features.length ? ((0, jsx_runtime_1.jsx)(providers_1.CacheProvider, { children: (0, jsx_runtime_1.jsx)("div", __assign({ className: (0, classnames_1.default)('ss__chat-product-comparison-message', className, internalClassName) }, styling, { children: (0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)('ss__chat-product-comparison-message__table-wrapper'), children: (0, jsx_runtime_1.jsxs)("table", { className: (0, classnames_1.default)('ss__chat-product-comparison-message__table'), children: [(0, jsx_runtime_1.jsx)("thead", { children: (0, jsx_runtime_1.jsxs)("tr", { children: [(0, jsx_runtime_1.jsx)("th", {}), headings.map(function (heading) {
97
+ var _a, _b, _c;
98
+ var product = searchResults.find(function (r) { return (r === null || r === void 0 ? void 0 : r.id) === heading; });
99
+ var display = getDisplay(product);
100
+ var productName = (_c = (_b = (_a = display === null || display === void 0 ? void 0 : display.mappings) === null || _a === void 0 ? void 0 : _a.core) === null || _b === void 0 ? void 0 : _b.name) !== null && _c !== void 0 ? _c : heading;
101
+ return ((0, jsx_runtime_1.jsxs)("th", { className: (0, classnames_1.default)('ss__chat-product-comparison-message__table__product-header'), children: [allProductsHaveImage && ((0, jsx_runtime_1.jsx)("img", { className: (0, classnames_1.default)('ss__chat-product-comparison-message__table__product-header__image'), src: display.mappings.core.imageUrl, alt: productName })), (0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)('ss__chat-product-comparison-message__table__product-header__name'), children: productName })] }, heading));
102
+ })] }) }), (0, jsx_runtime_1.jsx)("tbody", { children: comparisonData.features.map(function (feature, index) { return ((0, jsx_runtime_1.jsxs)("tr", { children: [(0, jsx_runtime_1.jsx)("td", { className: (0, classnames_1.default)('ss__chat-product-comparison-message__table__feature-name'), children: feature.featureName }), headings.map(function (heading) {
103
+ var _a;
104
+ return ((0, jsx_runtime_1.jsx)("td", { className: (0, classnames_1.default)('ss__chat-product-comparison-message__table__value'), children: (_a = feature.values[heading]) !== null && _a !== void 0 ? _a : '—' }, heading));
105
+ })] }, index)); }) })] }) }) })) })) : null;
106
+ });
@@ -0,0 +1,2 @@
1
+ export * from './ChatProductComparisonMessage';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../components/src/components/Molecules/ChatProductComparisonMessage/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,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("./ChatProductComparisonMessage"), exports);
@@ -0,0 +1,23 @@
1
+ import { ComponentProps } from '../../../types';
2
+ import type { ChatController } from '@athoscommerce/snap-controller';
3
+ export declare const ChatProductQueryMessage: ((properties: ChatProductQueryMessageProps) => import("@emotion/react/jsx-runtime").JSX.Element | null) & {
4
+ displayName: string;
5
+ };
6
+ export type ChatProductQueryMessageProps = {
7
+ chatItem: ChatProductQueryMessageItem;
8
+ controller?: ChatController;
9
+ displayFields?: string[];
10
+ lang?: Partial<ChatProductQueryMessageLang>;
11
+ } & ChatProductQueryMessageTemplatesLegalProps & ComponentProps<ChatProductQueryMessageProps>;
12
+ export type ChatProductQueryMessageItem = {
13
+ id: string;
14
+ messageType: 'productQuery';
15
+ sourceProduct: any;
16
+ sourceMessageId?: string;
17
+ };
18
+ export type ChatProductQueryMessageTemplatesLegalProps = {
19
+ chatItem: ChatProductQueryMessageItem;
20
+ };
21
+ export interface ChatProductQueryMessageLang {
22
+ }
23
+ //# sourceMappingURL=ChatProductQueryMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatProductQueryMessage.d.ts","sourceRoot":"","sources":["../../../../../../../components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAe,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AA+ZrE,eAAO,MAAM,uBAAuB,gBAAyB,4BAA4B;;CAwNvF,CAAC;AAEH,MAAM,MAAM,4BAA4B,GAAG;IAC1C,QAAQ,EAAE,2BAA2B,CAAC;IACtC,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,OAAO,CAAC,2BAA2B,CAAC,CAAC;CAC5C,GAAG,0CAA0C,GAC7C,cAAc,CAAC,4BAA4B,CAAC,CAAC;AAE9C,MAAM,MAAM,2BAA2B,GAAG;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,cAAc,CAAC;IAC5B,aAAa,EAAE,GAAG,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,0CAA0C,GAAG;IACxD,QAAQ,EAAE,2BAA2B,CAAC;CACtC,CAAC;AAEF,MAAM,WAAW,2BAA2B;CAE3C"}
@@ -0,0 +1,445 @@
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 mobx_react_lite_1 = require("mobx-react-lite");
20
+ var react_1 = require("@emotion/react");
21
+ var classnames_1 = __importDefault(require("classnames"));
22
+ var providers_1 = require("../../../providers");
23
+ var utilities_1 = require("../../../utilities");
24
+ var Image_1 = require("../../Atoms/Image");
25
+ var Button_1 = require("../../Atoms/Button");
26
+ var __1 = require("../../..");
27
+ var defaultStyles = function () {
28
+ var colorPrimary = '#253B80';
29
+ return (0, react_1.css)({
30
+ display: 'flex',
31
+ flexDirection: 'column',
32
+ gap: '1em',
33
+ '.ss__chat-product-query-message__header': {
34
+ background: colorPrimary,
35
+ padding: '1em',
36
+ display: 'flex',
37
+ flexDirection: 'column',
38
+ '.ss__chat-product-query-message__header__back': {
39
+ display: 'flex',
40
+ alignItems: 'center',
41
+ gap: '0.35em',
42
+ color: '#fff',
43
+ cursor: 'pointer',
44
+ alignSelf: 'flex-start',
45
+ padding: '0.5em 0',
46
+ fontSize: '0.85em',
47
+ opacity: 0.85,
48
+ '&:hover': {
49
+ opacity: 1,
50
+ },
51
+ svg: {
52
+ fill: '#fff',
53
+ stroke: '#fff',
54
+ },
55
+ },
56
+ '.ss__price': {
57
+ color: '#fff',
58
+ },
59
+ '.ss__chat-product-query-message__header__product': {
60
+ display: 'flex',
61
+ gap: '0.75em',
62
+ alignItems: 'center',
63
+ background: '#40528e',
64
+ borderRadius: '0.75em',
65
+ padding: '0.75em',
66
+ '.ss__chat-product-query-message__header__product__image': {
67
+ width: '25%',
68
+ objectFit: 'contain',
69
+ flexShrink: 0,
70
+ borderRadius: '0.33em',
71
+ overflow: 'hidden',
72
+ },
73
+ '.ss__chat-product-query-message__header__product__details': {
74
+ display: 'flex',
75
+ flexDirection: 'column',
76
+ gap: '0.2em',
77
+ flex: 1,
78
+ '.ss__chat-product-query-message__header__product__details__name': {
79
+ fontWeight: 'bold',
80
+ fontSize: '0.95em',
81
+ a: {
82
+ color: '#FFFFFF',
83
+ textDecoration: 'none',
84
+ '&:hover': {
85
+ textDecoration: 'underline',
86
+ },
87
+ },
88
+ },
89
+ '.ss__chat-product-query-message__header__product__details__brand': {
90
+ fontSize: '0.8em',
91
+ color: 'rgba(255, 255, 255, 0.7)',
92
+ },
93
+ '.ss__chat-product-query-message__header__product__details__price': {
94
+ fontWeight: 'bold',
95
+ fontSize: '1.1em',
96
+ color: '#D4A843',
97
+ },
98
+ },
99
+ '.ss__chat-product-query-message__header__product__actions': {
100
+ display: 'flex',
101
+ flexDirection: 'column',
102
+ alignItems: 'flex-end',
103
+ alignSelf: 'stretch',
104
+ justifyContent: 'center',
105
+ gap: '0.35em',
106
+ flexShrink: 0,
107
+ '.ss__chat-product-query-message__header__product__actions__go-to-product': {
108
+ a: {
109
+ color: 'rgba(255, 255, 255, 0.85)',
110
+ fontSize: '0.8em',
111
+ textDecoration: 'underline',
112
+ cursor: 'pointer',
113
+ '&:hover': {
114
+ color: '#FFFFFF',
115
+ },
116
+ },
117
+ },
118
+ '.ss__chat-product-query-message__header__product__actions__add-to-cart .ss__button': {
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: '#D4A843',
127
+ color: '#1F2937',
128
+ '&:not(.ss__button--disabled):hover': {
129
+ background: '#c49a3a',
130
+ },
131
+ },
132
+ '.ss__chat-product-query-message__header__product__actions__show-similar .ss__button': {
133
+ borderRadius: '0.5em',
134
+ padding: '0.4em 0.75em',
135
+ fontWeight: 'bold',
136
+ border: '1px solid rgba(255, 255, 255, 0.6)',
137
+ whiteSpace: 'nowrap',
138
+ cursor: 'pointer',
139
+ fontSize: '0.8em',
140
+ background: 'transparent',
141
+ color: '#fff',
142
+ '&:not(.ss__button--disabled):hover': {
143
+ background: 'rgba(255, 255, 255, 0.15)',
144
+ },
145
+ },
146
+ },
147
+ },
148
+ },
149
+ '.ss__chat-product-query-message__variants': {
150
+ padding: '0 2em',
151
+ '.ss__chat-product-query-message__variants__label': {
152
+ fontWeight: '600',
153
+ fontSize: '0.9em',
154
+ color: '#374151',
155
+ textTransform: 'uppercase',
156
+ marginBottom: '0.5em',
157
+ },
158
+ '.ss__chat-product-query-message__variants__swatches': {
159
+ display: 'flex',
160
+ flexWrap: 'wrap',
161
+ gap: '0.5em',
162
+ '.ss__chat-product-query-message__variants__swatch': {
163
+ display: 'flex',
164
+ flexDirection: 'column',
165
+ alignItems: 'center',
166
+ gap: '0.25em',
167
+ cursor: 'pointer',
168
+ padding: '0.25em',
169
+ borderRadius: '0.5em',
170
+ border: '2px solid transparent',
171
+ transition: 'border-color 0.15s ease',
172
+ '&:hover': {
173
+ borderColor: '#253B80',
174
+ },
175
+ '&.ss__chat-product-query-message__variants__swatch--selected': {
176
+ borderColor: '#253B80',
177
+ borderWidth: '3px',
178
+ padding: '0.15em',
179
+ },
180
+ '&.ss__chat-product-query-message__variants__swatch--unavailable': {
181
+ opacity: 0.4,
182
+ },
183
+ '.ss__chat-product-query-message__variants__swatch__image': {
184
+ width: '48px',
185
+ height: '48px',
186
+ objectFit: 'cover',
187
+ borderRadius: '50%',
188
+ border: '1px solid #E5E7EB',
189
+ },
190
+ '.ss__chat-product-query-message__variants__swatch__value': {
191
+ fontSize: '0.75em',
192
+ color: '#374151',
193
+ textAlign: 'center',
194
+ maxWidth: '60px',
195
+ overflow: 'hidden',
196
+ textOverflow: 'ellipsis',
197
+ whiteSpace: 'nowrap',
198
+ },
199
+ },
200
+ },
201
+ },
202
+ '.ss__chat-product-query-message__section': {
203
+ padding: '0 1em',
204
+ '.ss__chat-product-query-message__section__title': {
205
+ background: '#253B80',
206
+ color: '#fff',
207
+ padding: '0.5em 0.75em',
208
+ fontWeight: 'bold',
209
+ fontSize: '0.95em',
210
+ borderRadius: '0.5em 0.5em 0 0',
211
+ },
212
+ '.ss__chat-product-query-message__section__table': {
213
+ width: '100%',
214
+ maxWidth: '100%',
215
+ tableLayout: 'fixed',
216
+ borderCollapse: 'separate',
217
+ borderSpacing: 0,
218
+ fontSize: '0.9em',
219
+ border: '3px solid #253B80',
220
+ borderTop: 'none',
221
+ borderBottomLeftRadius: '0.5em',
222
+ borderBottomRightRadius: '0.5em',
223
+ overflow: 'hidden',
224
+ tr: {
225
+ borderBottom: '1px solid #E5E7EB',
226
+ },
227
+ td: {
228
+ padding: '0.6em 0.75em',
229
+ verticalAlign: 'top',
230
+ wordBreak: 'break-word',
231
+ overflowWrap: 'anywhere',
232
+ },
233
+ 'td:first-of-type': {
234
+ fontWeight: '600',
235
+ color: '#374151',
236
+ textTransform: 'uppercase',
237
+ fontSize: '0.85em',
238
+ width: '40%',
239
+ },
240
+ 'td:last-of-type': {
241
+ textAlign: 'right',
242
+ color: '#374151',
243
+ },
244
+ '.ss__chat-product-query-message__section__table__availability--in-stock': {
245
+ color: '#10B981',
246
+ fontWeight: '600',
247
+ },
248
+ '.ss__chat-product-query-message__section__table__availability--out-of-stock': {
249
+ color: '#DC2626',
250
+ fontWeight: '600',
251
+ },
252
+ },
253
+ '.ss__chat-product-query-message__section__description': {
254
+ padding: '0.75em',
255
+ fontSize: '0.9em',
256
+ color: '#374151',
257
+ lineHeight: '1.5',
258
+ border: '3px solid #253B80',
259
+ borderTop: 'none',
260
+ borderBottomLeftRadius: '0.5em',
261
+ borderBottomRightRadius: '0.5em',
262
+ },
263
+ '.ss__chat-product-query-message__section__features': {
264
+ margin: 0,
265
+ padding: '0.5em 1.25em',
266
+ fontSize: '0.9em',
267
+ li: {
268
+ padding: '0.3em 0',
269
+ color: '#374151',
270
+ },
271
+ },
272
+ },
273
+ });
274
+ };
275
+ // fields that have dedicated rendering in the product card; skip them in the info table
276
+ var CARD_FIELDS = new Set([
277
+ 'name',
278
+ 'brand',
279
+ 'price',
280
+ 'msrp',
281
+ 'imageUrl',
282
+ 'thumbnailImageUrl',
283
+ 'secureImageUrl',
284
+ 'secureThumbnailImageUrl',
285
+ 'url',
286
+ 'addToCartUrl',
287
+ 'uid',
288
+ 'sku',
289
+ 'parentId',
290
+ 'parentImageUrl',
291
+ 'description',
292
+ 'caption',
293
+ 'popularity',
294
+ 'stockMessage',
295
+ ]);
296
+ // preferred ordering for the structured info table - any extras get appended after
297
+ var PREFERRED_INFO_ORDER = ['material', 'fit', 'color', 'sizes', 'size', 'category', 'rating', 'availability'];
298
+ var FEATURE_KEYS = ['features', 'feature_list', 'productFeatures', 'product_features', 'highlights'];
299
+ var formatLabel = function (key) {
300
+ return key
301
+ .replace(/[_-]+/g, ' ')
302
+ .replace(/([a-z])([A-Z])/g, '$1 $2')
303
+ .trim();
304
+ };
305
+ var stripHtml = function (str) { return str.replace(/<[^>]*>/g, ''); };
306
+ var formatValue = function (value) {
307
+ if (Array.isArray(value)) {
308
+ return stripHtml(value.filter(function (v) { return v != null && v !== ''; }).join(', '));
309
+ }
310
+ if (value == null) {
311
+ return '';
312
+ }
313
+ return stripHtml(String(value));
314
+ };
315
+ var collectFeatures = function (display) {
316
+ var attributes = (display === null || display === void 0 ? void 0 : display.attributes) || {};
317
+ for (var _i = 0, FEATURE_KEYS_1 = FEATURE_KEYS; _i < FEATURE_KEYS_1.length; _i++) {
318
+ var key = FEATURE_KEYS_1[_i];
319
+ var raw = attributes[key];
320
+ if (Array.isArray(raw) && raw.length > 0) {
321
+ return raw.map(function (v) { return String(v); }).filter(Boolean);
322
+ }
323
+ if (typeof raw === 'string' && raw.trim()) {
324
+ // allow comma- or newline-separated feature strings
325
+ return raw
326
+ .split(/\r?\n|,/)
327
+ .map(function (v) { return v.trim(); })
328
+ .filter(Boolean);
329
+ }
330
+ }
331
+ return [];
332
+ };
333
+ var collectInfoRows = function (display, displayFields) {
334
+ var _a;
335
+ var core = ((_a = display === null || display === void 0 ? void 0 : display.mappings) === null || _a === void 0 ? void 0 : _a.core) || {};
336
+ var attributes = (display === null || display === void 0 ? void 0 : display.attributes) || {};
337
+ var filterByDisplayFields = displayFields && displayFields.length > 0;
338
+ var displayFieldsLower = filterByDisplayFields ? displayFields.map(function (f) { return f.toLowerCase(); }) : [];
339
+ var merged = {};
340
+ // when displayFields is specified, include matching core fields that are normally skipped
341
+ if (filterByDisplayFields) {
342
+ Object.entries(core).forEach(function (_a) {
343
+ var key = _a[0], value = _a[1];
344
+ if (displayFieldsLower.includes(key.toLowerCase()) && value != null) {
345
+ merged[key] = value;
346
+ }
347
+ });
348
+ }
349
+ // pull selected core fields (rating + availability)
350
+ if (core.rating != null) {
351
+ var rating = core.rating;
352
+ var ratingCount = core.ratingCount;
353
+ merged.rating = ratingCount ? "".concat(rating, "/5.0 (").concat(ratingCount, " reviews)") : "".concat(rating, "/5.0");
354
+ }
355
+ if (core.available != null) {
356
+ merged.availability = core.available ? 'In Stock' : 'Out of Stock';
357
+ }
358
+ // merge product attributes, skipping ones already shown on the card and feature lists
359
+ Object.entries(attributes).forEach(function (_a) {
360
+ var key = _a[0], value = _a[1];
361
+ if (!filterByDisplayFields && CARD_FIELDS.has(key))
362
+ return;
363
+ if (FEATURE_KEYS.includes(key))
364
+ return;
365
+ var formatted = formatValue(value);
366
+ if (!formatted)
367
+ return;
368
+ merged[key] = formatted;
369
+ });
370
+ var seen = new Set();
371
+ var ordered = [];
372
+ PREFERRED_INFO_ORDER.forEach(function (preferred) {
373
+ var match = Object.keys(merged).find(function (k) { return k.toLowerCase() === preferred; });
374
+ if (match && !seen.has(match)) {
375
+ seen.add(match);
376
+ ordered.push({ key: match, rawKey: match, label: formatLabel(match), value: formatValue(merged[match]) });
377
+ }
378
+ });
379
+ Object.keys(merged).forEach(function (key) {
380
+ if (seen.has(key))
381
+ return;
382
+ seen.add(key);
383
+ ordered.push({ key: key, rawKey: key, label: formatLabel(key), value: formatValue(merged[key]) });
384
+ });
385
+ // filter and sort by displayFields order
386
+ if (filterByDisplayFields) {
387
+ var filtered = ordered.filter(function (row) { return displayFieldsLower.includes(row.rawKey.toLowerCase()); });
388
+ filtered.sort(function (a, b) { return displayFieldsLower.indexOf(a.rawKey.toLowerCase()) - displayFieldsLower.indexOf(b.rawKey.toLowerCase()); });
389
+ return filtered;
390
+ }
391
+ return ordered;
392
+ };
393
+ exports.ChatProductQueryMessage = (0, mobx_react_lite_1.observer)(function (properties) {
394
+ var _a, _b;
395
+ var globalTheme = (0, providers_1.useTheme)();
396
+ var globalTreePath = (0, providers_1.useTreePath)();
397
+ var defaultProps = {
398
+ treePath: globalTreePath,
399
+ };
400
+ var props = (0, utilities_1.mergeProps)('chatProductQueryMessage', globalTheme, defaultProps, properties);
401
+ var chatItem = props.chatItem, controller = props.controller, displayFields = props.displayFields, className = props.className, internalClassName = props.internalClassName;
402
+ var styling = (0, utilities_1.mergeStyles)(props, defaultStyles);
403
+ var messageType = chatItem.messageType, sourceProduct = chatItem.sourceProduct;
404
+ if (messageType !== 'productQuery') {
405
+ console.warn('ChatProductQueryMessage received message with unsupported type:', messageType, 'Expected type: productQuery');
406
+ return null;
407
+ }
408
+ var product = controller === null || controller === void 0 ? void 0 : controller.store.productQuickview;
409
+ var productQuickviewError = controller === null || controller === void 0 ? void 0 : controller.store.productQuickviewError;
410
+ var chatMessages = ((_a = controller === null || controller === void 0 ? void 0 : controller.store.currentChat) === null || _a === void 0 ? void 0 : _a.chat) || [];
411
+ var sourceMessage = chatItem.sourceMessageId ? chatMessages.find(function (m) { return m.id === chatItem.sourceMessageId; }) : null;
412
+ var cameFromInspiration = (sourceMessage === null || sourceMessage === void 0 ? void 0 : sourceMessage.messageType) === 'inspirationResult';
413
+ if (!product) {
414
+ 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...' }) }) }) }) })) }));
415
+ }
416
+ var displayed = product.display;
417
+ var displayedCore = ((_b = displayed.mappings) === null || _b === void 0 ? void 0 : _b.core) || {};
418
+ var variants = product.variants;
419
+ var selections = (variants === null || variants === void 0 ? void 0 : variants.selections) || [];
420
+ var displayedData = {
421
+ mappings: displayed.mappings,
422
+ attributes: displayed.attributes || {},
423
+ };
424
+ var allInfoRows = collectInfoRows(displayedData, displayFields);
425
+ var descriptionRow = allInfoRows.find(function (row) { return row.rawKey.toLowerCase() === 'description'; });
426
+ var infoRows = allInfoRows.filter(function (row) { return row.rawKey.toLowerCase() !== 'description'; });
427
+ var features = collectFeatures(displayedData);
428
+ var handleBack = function () {
429
+ var _a;
430
+ (_a = controller === null || controller === void 0 ? void 0 : controller.store.currentChat) === null || _a === void 0 ? void 0 : _a.popProductQueryMessage(chatItem.sourceMessageId);
431
+ controller === null || controller === void 0 ? void 0 : controller.store.clearProductQuickview();
432
+ };
433
+ 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: [(0, jsx_runtime_1.jsxs)("div", { className: (0, classnames_1.default)('ss__chat-product-query-message__header'), children: [cameFromInspiration && ((0, jsx_runtime_1.jsxs)("div", { className: (0, classnames_1.default)('ss__chat-product-query-message__header__back'), onClick: handleBack, children: [(0, jsx_runtime_1.jsx)(__1.Icon, { icon: "angle-left", size: "14px" }), (0, jsx_runtime_1.jsx)("span", { children: "Back to inspiration" })] })), (0, jsx_runtime_1.jsxs)("div", { className: (0, classnames_1.default)('ss__chat-product-query-message__header__product'), children: [displayedCore.imageUrl && ((0, jsx_runtime_1.jsx)(Image_1.Image, { className: (0, classnames_1.default)('ss__chat-product-query-message__header__product__image'), src: displayedCore.imageUrl, 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, target: "_blank", rel: "noopener noreferrer", children: displayedCore.name })) : (displayedCore.name) })), displayedCore.brand && ((0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)('ss__chat-product-query-message__header__product__details__brand'), children: displayedCore.brand })), displayedCore.price != null && ((0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)('ss__chat-product-query-message__header__product__details__price'), children: (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: [displayedCore.url && ((0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)('ss__chat-product-query-message__header__product__actions__go-to-product'), children: (0, jsx_runtime_1.jsx)("a", { href: displayedCore.url, target: "_blank", rel: "noopener noreferrer", children: "Go to product" }) })), (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, { content: 'Add to Cart', onClick: function () { return controller === null || controller === void 0 ? void 0 : controller.addToCart(sourceProduct); } }) }), (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, { content: 'Show Similar', onClick: function () { return controller === null || controller === void 0 ? void 0 : controller.discussProduct(sourceProduct, { requestType: 'productSimilar' }); } }) }))] })] })] }), selections.length > 0 && ((0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)('ss__chat-product-query-message__variants'), children: selections.map(function (selection) { 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'), 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'), children: selection.values.map(function (selectionValue) {
434
+ var _a;
435
+ var isUnavailable = !selectionValue.available;
436
+ var isSelected = ((_a = selection.selected) === null || _a === void 0 ? void 0 : _a.value) === selectionValue.value;
437
+ return ((0, jsx_runtime_1.jsxs)("div", { className: (0, classnames_1.default)('ss__chat-product-query-message__variants__swatch', {
438
+ 'ss__chat-product-query-message__variants__swatch--selected': isSelected,
439
+ 'ss__chat-product-query-message__variants__swatch--unavailable': isUnavailable,
440
+ }), title: selectionValue.value, onClick: function () { return selection.select(selectionValue.value); }, children: [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));
441
+ }) })] }, selection.field)); }) })), infoRows.length > 0 && ((0, jsx_runtime_1.jsxs)("div", { className: (0, classnames_1.default)('ss__chat-product-query-message__section'), children: [(0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)('ss__chat-product-query-message__section__title'), children: "Product Information" }), (0, jsx_runtime_1.jsx)("table", { className: (0, classnames_1.default)('ss__chat-product-query-message__section__table'), 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)("td", { children: row.label }), (0, jsx_runtime_1.jsx)("td", { children: row.rawKey === 'availability' ? ((0, jsx_runtime_1.jsx)("span", { className: (0, classnames_1.default)({
442
+ 'ss__chat-product-query-message__section__table__availability--in-stock': row.value === 'In Stock',
443
+ 'ss__chat-product-query-message__section__table__availability--out-of-stock': row.value === 'Out of Stock',
444
+ }), children: row.value === 'In Stock' ? "\u2713 ".concat(row.value) : row.value })) : (row.value) })] }, row.key)); }) }) })] })), descriptionRow && ((0, jsx_runtime_1.jsxs)("div", { className: (0, classnames_1.default)('ss__chat-product-query-message__section'), children: [(0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)('ss__chat-product-query-message__section__title'), children: "Description" }), (0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)('ss__chat-product-query-message__section__description'), children: descriptionRow.value })] })), features.length > 0 && ((0, jsx_runtime_1.jsxs)("div", { className: (0, classnames_1.default)('ss__chat-product-query-message__section'), children: [(0, jsx_runtime_1.jsx)("div", { className: (0, classnames_1.default)('ss__chat-product-query-message__section__title'), children: "Features" }), (0, jsx_runtime_1.jsx)("ul", { className: (0, classnames_1.default)('ss__chat-product-query-message__section__features'), children: features.map(function (feature, idx) { return ((0, jsx_runtime_1.jsx)("li", { children: feature }, idx)); }) })] }))] })) }));
445
+ });
@@ -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"}