@envive-ai/react-hooks 0.3.3 → 0.3.5

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 (610) hide show
  1. package/dist/_virtual/rolldown_runtime.cjs +2 -0
  2. package/dist/_virtual/rolldown_runtime.js +29 -0
  3. package/dist/application/commerce-api.cjs +12 -4
  4. package/dist/application/commerce-api.js +12 -4
  5. package/dist/application/models/api/userEvent.d.cts +4 -2
  6. package/dist/application/models/api/userEvent.d.ts +4 -2
  7. package/dist/application/models/chatElementDisplayLocationV3.cjs +24 -0
  8. package/dist/application/models/chatElementDisplayLocationV3.d.cts +21 -0
  9. package/dist/application/models/chatElementDisplayLocationV3.d.ts +21 -0
  10. package/dist/application/models/chatElementDisplayLocationV3.js +23 -0
  11. package/dist/application/models/colorsConfigV3.cjs +26 -0
  12. package/dist/application/models/colorsConfigV3.d.cts +22 -0
  13. package/dist/application/models/colorsConfigV3.d.ts +22 -0
  14. package/dist/application/models/colorsConfigV3.js +24 -0
  15. package/dist/application/models/featureGates.cjs +6 -1
  16. package/dist/application/models/featureGates.d.cts +6 -1
  17. package/dist/application/models/featureGates.d.ts +6 -1
  18. package/dist/application/models/featureGates.js +6 -1
  19. package/dist/application/models/frontendConfig.d.cts +4 -2
  20. package/dist/application/models/frontendConfig.d.ts +4 -2
  21. package/dist/application/models/frontendConfigV3.d.cts +14 -0
  22. package/dist/application/models/frontendConfigV3.d.ts +14 -0
  23. package/dist/application/models/guards/api/isApiFormResponse.cjs +1 -1
  24. package/dist/application/models/guards/api/isApiFormResponse.js +1 -1
  25. package/dist/application/models/guards/api/isApiFormSubmittedResponseAttributes.cjs +1 -1
  26. package/dist/application/models/guards/api/isApiFormSubmittedResponseAttributes.js +1 -1
  27. package/dist/application/models/guards/api/isApiOrderResponseAttributes.cjs +1 -1
  28. package/dist/application/models/guards/api/isApiOrderResponseAttributes.js +1 -1
  29. package/dist/application/models/guards/api/isApiPDPEventAttributes.cjs +2 -2
  30. package/dist/application/models/guards/api/isApiPDPEventAttributes.js +2 -2
  31. package/dist/application/models/guards/api/isApiProductResponseAttributes.cjs +1 -1
  32. package/dist/application/models/guards/api/isApiProductResponseAttributes.js +1 -1
  33. package/dist/application/models/guards/api/isApiResponse.cjs +1 -1
  34. package/dist/application/models/guards/api/isApiResponse.js +1 -1
  35. package/dist/application/models/index.cjs +3 -0
  36. package/dist/application/models/index.d.cts +4 -3
  37. package/dist/application/models/index.d.ts +4 -3
  38. package/dist/application/models/index.js +3 -2
  39. package/dist/application/models/utils/snakeToCamelTransformer.cjs +2 -1
  40. package/dist/application/models/utils/snakeToCamelTransformer.d.cts +7 -2
  41. package/dist/application/models/utils/snakeToCamelTransformer.d.ts +7 -2
  42. package/dist/application/models/utils/snakeToCamelTransformer.js +2 -2
  43. package/dist/application/utils/analyticsUtils.cjs +6 -5
  44. package/dist/application/utils/analyticsUtils.d.cts +1 -1
  45. package/dist/application/utils/analyticsUtils.d.ts +1 -1
  46. package/dist/application/utils/analyticsUtils.js +4 -3
  47. package/dist/application/utils/elementObserver.cjs +1 -1
  48. package/dist/application/utils/elementObserver.js +1 -1
  49. package/dist/application/utils/index.d.cts +1 -1
  50. package/dist/application/utils/index.d.ts +1 -1
  51. package/dist/application/utils/widgetTextFromApiWidgetTextResponse.cjs +14 -0
  52. package/dist/application/utils/widgetTextFromApiWidgetTextResponse.js +13 -0
  53. package/dist/application/utils/widgetTextRequestToApiRequest.cjs +30 -0
  54. package/dist/application/utils/widgetTextRequestToApiRequest.js +29 -0
  55. package/dist/atoms/amplitude/amplitudeTrackEventAtom.cjs +1 -1
  56. package/dist/atoms/amplitude/amplitudeTrackEventAtom.js +1 -1
  57. package/dist/atoms/app/index.cjs +6 -3
  58. package/dist/atoms/app/index.d.cts +3 -3
  59. package/dist/atoms/app/index.d.ts +3 -3
  60. package/dist/atoms/app/index.js +4 -5
  61. package/dist/atoms/app/variant.cjs +6 -1
  62. package/dist/atoms/app/variant.d.cts +21 -6
  63. package/dist/atoms/app/variant.d.ts +21 -6
  64. package/dist/atoms/app/variant.js +4 -2
  65. package/dist/atoms/chat/chatState.cjs +9 -4
  66. package/dist/atoms/chat/chatState.d.cts +25 -18
  67. package/dist/atoms/chat/chatState.d.ts +25 -18
  68. package/dist/atoms/chat/chatState.js +6 -3
  69. package/dist/atoms/chat/form.cjs +4 -4
  70. package/dist/atoms/chat/form.d.cts +2 -2
  71. package/dist/atoms/chat/form.d.ts +2 -2
  72. package/dist/atoms/chat/index.cjs +32 -30
  73. package/dist/atoms/chat/index.d.cts +5 -5
  74. package/dist/atoms/chat/index.d.ts +4 -4
  75. package/dist/atoms/chat/index.js +2 -2
  76. package/dist/atoms/chat/lastMessage.cjs +4 -4
  77. package/dist/atoms/chat/lastMessage.d.cts +2 -2
  78. package/dist/atoms/chat/lastMessage.d.ts +2 -2
  79. package/dist/atoms/chat/performanceMetrics.d.cts +6 -6
  80. package/dist/atoms/chat/performanceMetrics.d.ts +6 -6
  81. package/dist/atoms/chat/renderedWidgetRefs.d.cts +2 -2
  82. package/dist/atoms/chat/renderedWidgetRefs.d.ts +2 -2
  83. package/dist/atoms/chat/replies.cjs +9 -8
  84. package/dist/atoms/chat/replies.d.cts +3 -3
  85. package/dist/atoms/chat/replies.d.ts +3 -3
  86. package/dist/atoms/chat/replies.js +3 -2
  87. package/dist/atoms/chat/suggestions.cjs +6 -6
  88. package/dist/atoms/chat/suggestions.d.cts +2 -2
  89. package/dist/atoms/chat/suggestions.d.ts +2 -2
  90. package/dist/atoms/envive/enviveConfig.cjs +5 -12
  91. package/dist/atoms/envive/enviveConfig.js +5 -12
  92. package/dist/atoms/globalSearch/globalSearch.d.cts +5 -5
  93. package/dist/atoms/globalSearch/globalSearch.d.ts +5 -5
  94. package/dist/atoms/org/customerService.d.cts +6 -6
  95. package/dist/atoms/org/customerService.d.ts +6 -6
  96. package/dist/atoms/org/graphqlConfig.cjs +1 -3
  97. package/dist/atoms/org/graphqlConfig.d.cts +6 -9
  98. package/dist/atoms/org/graphqlConfig.d.ts +6 -9
  99. package/dist/atoms/org/graphqlConfig.js +2 -3
  100. package/dist/atoms/org/index.cjs +2 -3
  101. package/dist/atoms/org/index.d.cts +2 -2
  102. package/dist/atoms/org/index.d.ts +2 -2
  103. package/dist/atoms/org/index.js +2 -2
  104. package/dist/atoms/org/newOrgConfigAtom.d.cts +2 -2
  105. package/dist/atoms/org/newOrgConfigAtom.d.ts +2 -2
  106. package/dist/atoms/org/orgAnalyticsConfig.d.cts +5 -5
  107. package/dist/atoms/org/orgAnalyticsConfig.d.ts +5 -5
  108. package/dist/atoms/search/chatSearch.cjs +7 -7
  109. package/dist/atoms/search/chatSearch.d.cts +20 -18
  110. package/dist/atoms/search/chatSearch.d.ts +20 -18
  111. package/dist/atoms/search/productRetrievalAPI.cjs +1 -7
  112. package/dist/atoms/search/productRetrievalAPI.js +1 -7
  113. package/dist/atoms/search/productRetrievalAdapter.cjs +4 -4
  114. package/dist/atoms/search/productRetrievalAdapter.js +4 -4
  115. package/dist/atoms/search/searchAPI.cjs +1 -1
  116. package/dist/atoms/search/searchAPI.d.cts +15 -14
  117. package/dist/atoms/search/searchAPI.d.ts +15 -14
  118. package/dist/atoms/search/searchAPI.js +1 -1
  119. package/dist/atoms/search/types.d.cts +1 -1
  120. package/dist/atoms/search/types.d.ts +1 -1
  121. package/dist/atoms/search/utils.d.ts +1 -1
  122. package/dist/atoms/widget/chatPreviewLoading.cjs +23 -0
  123. package/dist/atoms/widget/chatPreviewLoading.d.cts +26 -0
  124. package/dist/atoms/widget/chatPreviewLoading.d.ts +26 -0
  125. package/dist/atoms/widget/chatPreviewLoading.js +22 -0
  126. package/dist/atoms/widget/index.cjs +3 -0
  127. package/dist/atoms/widget/index.d.cts +2 -0
  128. package/dist/atoms/widget/index.d.ts +2 -0
  129. package/dist/atoms/widget/index.js +3 -0
  130. package/dist/contexts/amplitudeContext/amplitudeContext.cjs +40 -227
  131. package/dist/contexts/amplitudeContext/amplitudeContext.d.cts +4 -39
  132. package/dist/contexts/amplitudeContext/amplitudeContext.d.ts +4 -39
  133. package/dist/contexts/amplitudeContext/amplitudeContext.js +44 -230
  134. package/dist/contexts/amplitudeContext/index.cjs +2 -1
  135. package/dist/contexts/amplitudeContext/index.d.cts +2 -1
  136. package/dist/contexts/amplitudeContext/index.d.ts +2 -1
  137. package/dist/contexts/amplitudeContext/index.js +2 -1
  138. package/dist/contexts/enviveConfigContext/enviveConfigContext.cjs +3 -2
  139. package/dist/contexts/enviveConfigContext/enviveConfigContext.d.cts +2 -1
  140. package/dist/contexts/enviveConfigContext/enviveConfigContext.d.ts +2 -1
  141. package/dist/contexts/enviveConfigContext/enviveConfigContext.js +3 -2
  142. package/dist/contexts/enviveContext/enviveContext.cjs +70 -16
  143. package/dist/contexts/enviveContext/enviveContext.d.cts +10 -1
  144. package/dist/contexts/enviveContext/enviveContext.d.ts +10 -1
  145. package/dist/contexts/enviveContext/enviveContext.js +72 -18
  146. package/dist/contexts/enviveContext/types.d.ts +1 -1
  147. package/dist/contexts/enviveCssContext/enviveCssContext.cjs +96 -24
  148. package/dist/contexts/enviveCssContext/enviveCssContext.js +96 -24
  149. package/dist/contexts/featureFlagContext/featureFlagContext.cjs +1 -1
  150. package/dist/contexts/featureFlagContext/featureFlagContext.js +1 -1
  151. package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.cjs +6 -8
  152. package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.d.cts +2 -2
  153. package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.d.ts +2 -2
  154. package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.js +6 -8
  155. package/dist/contexts/graphqlContext/graphqlContext.cjs +151 -8
  156. package/dist/contexts/graphqlContext/graphqlContext.d.cts +17 -5
  157. package/dist/contexts/graphqlContext/graphqlContext.d.ts +17 -5
  158. package/dist/contexts/graphqlContext/graphqlContext.js +151 -8
  159. package/dist/contexts/graphqlContext/index.d.cts +2 -2
  160. package/dist/contexts/graphqlContext/index.d.ts +2 -2
  161. package/dist/contexts/graphqlContext/mockV3Config.cjs +250 -0
  162. package/dist/contexts/graphqlContext/mockV3Config.js +249 -0
  163. package/dist/contexts/hardcopyContext/hardcopyContext.cjs +144 -24
  164. package/dist/contexts/hardcopyContext/hardcopyContext.d.cts +4 -3
  165. package/dist/contexts/hardcopyContext/hardcopyContext.d.ts +4 -3
  166. package/dist/contexts/hardcopyContext/hardcopyContext.js +145 -25
  167. package/dist/contexts/newOrgConfigContext/newOrgConfigContext.cjs +7 -8
  168. package/dist/contexts/newOrgConfigContext/newOrgConfigContext.js +8 -9
  169. package/dist/contexts/pageContext/index.cjs +1 -0
  170. package/dist/contexts/pageContext/index.d.cts +2 -2
  171. package/dist/contexts/pageContext/index.d.ts +2 -2
  172. package/dist/contexts/pageContext/index.js +2 -2
  173. package/dist/contexts/pageContext/mapping.cjs +95 -1
  174. package/dist/contexts/pageContext/mapping.d.cts +6 -3
  175. package/dist/contexts/pageContext/mapping.d.ts +6 -3
  176. package/dist/contexts/pageContext/mapping.js +94 -2
  177. package/dist/contexts/pageContext/pageContext.cjs +59 -11
  178. package/dist/contexts/pageContext/pageContext.d.cts +6 -2
  179. package/dist/contexts/pageContext/pageContext.d.ts +6 -2
  180. package/dist/contexts/pageContext/pageContext.js +61 -13
  181. package/dist/contexts/pageContext/types.d.cts +6 -2
  182. package/dist/contexts/pageContext/types.d.ts +6 -2
  183. package/dist/contexts/salesAgentContext/chatAPI.cjs +9 -3
  184. package/dist/contexts/salesAgentContext/chatAPI.d.cts +4 -1
  185. package/dist/contexts/salesAgentContext/chatAPI.d.ts +4 -1
  186. package/dist/contexts/salesAgentContext/chatAPI.js +9 -3
  187. package/dist/contexts/salesAgentContext/index.d.cts +2 -2
  188. package/dist/contexts/salesAgentContext/index.d.ts +2 -2
  189. package/dist/contexts/salesAgentContext/salesAgentContext.cjs +68 -26
  190. package/dist/contexts/salesAgentContext/salesAgentContext.d.cts +2 -2
  191. package/dist/contexts/salesAgentContext/salesAgentContext.d.ts +2 -2
  192. package/dist/contexts/salesAgentContext/salesAgentContext.js +67 -25
  193. package/dist/contexts/salesAgentContext/salesAgentService.cjs +49 -10
  194. package/dist/contexts/salesAgentContext/salesAgentService.js +47 -8
  195. package/dist/contexts/salesAgentContext/statusCodeError.cjs +14 -0
  196. package/dist/contexts/salesAgentContext/statusCodeError.js +13 -0
  197. package/dist/contexts/searchContext/searchContext.cjs +1 -1
  198. package/dist/contexts/searchContext/searchContext.js +1 -1
  199. package/dist/contexts/systemSettingsContext/systemSettingsContext.d.cts +2 -2
  200. package/dist/contexts/types.cjs +2 -13
  201. package/dist/contexts/types.d.cts +12 -16
  202. package/dist/contexts/types.d.ts +12 -16
  203. package/dist/contexts/types.js +3 -13
  204. package/dist/contexts/typesV3.cjs +128 -0
  205. package/dist/contexts/typesV3.d.cts +273 -0
  206. package/dist/contexts/typesV3.d.ts +273 -0
  207. package/dist/contexts/typesV3.js +116 -0
  208. package/dist/contexts/uiConfigContext/index.cjs +4 -0
  209. package/dist/contexts/uiConfigContext/index.d.cts +2 -0
  210. package/dist/contexts/uiConfigContext/index.d.ts +2 -0
  211. package/dist/contexts/uiConfigContext/index.js +3 -0
  212. package/dist/contexts/uiConfigContext/uiConfigContext.cjs +44 -0
  213. package/dist/contexts/uiConfigContext/uiConfigContext.d.cts +15 -0
  214. package/dist/contexts/uiConfigContext/uiConfigContext.d.ts +15 -0
  215. package/dist/contexts/uiConfigContext/uiConfigContext.js +42 -0
  216. package/dist/contexts/userIdentityContext/userIdentityContext.cjs +1 -1
  217. package/dist/contexts/userIdentityContext/userIdentityContext.js +1 -1
  218. package/dist/contexts/widgetConfigContext/index.cjs +4 -0
  219. package/dist/contexts/widgetConfigContext/index.d.cts +2 -0
  220. package/dist/contexts/widgetConfigContext/index.d.ts +2 -0
  221. package/dist/contexts/widgetConfigContext/index.js +3 -0
  222. package/dist/contexts/widgetConfigContext/widgetConfigContext.cjs +67 -0
  223. package/dist/contexts/widgetConfigContext/widgetConfigContext.d.cts +19 -0
  224. package/dist/contexts/widgetConfigContext/widgetConfigContext.d.ts +19 -0
  225. package/dist/contexts/widgetConfigContext/widgetConfigContext.js +65 -0
  226. package/dist/hooks/AmplitudeOperations/useAmplitudeOperations.d.cts +1 -1
  227. package/dist/hooks/AmplitudeOperations/useAmplitudeOperations.d.ts +1 -1
  228. package/dist/hooks/AppDetails/useAppDetails.cjs +2 -4
  229. package/dist/hooks/AppDetails/useAppDetails.js +3 -5
  230. package/dist/hooks/ChatToggle/useChatToggle.cjs +6 -5
  231. package/dist/hooks/ChatToggle/useChatToggle.d.cts +5 -5
  232. package/dist/hooks/ChatToggle/useChatToggle.d.ts +5 -5
  233. package/dist/hooks/ChatToggle/useChatToggle.js +3 -2
  234. package/dist/hooks/ElementObserver/useElementObserver.cjs +10 -10
  235. package/dist/hooks/ElementObserver/useElementObserver.js +10 -10
  236. package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.cts +3 -3
  237. package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.ts +2 -2
  238. package/dist/hooks/GraphQLConfig/index.cjs +1 -1
  239. package/dist/hooks/GraphQLConfig/index.d.cts +2 -2
  240. package/dist/hooks/GraphQLConfig/index.d.ts +2 -2
  241. package/dist/hooks/GraphQLConfig/index.js +2 -2
  242. package/dist/hooks/GraphQLConfig/useGraphQLConfig.cjs +27 -24
  243. package/dist/hooks/GraphQLConfig/useGraphQLConfig.d.cts +5 -4
  244. package/dist/hooks/GraphQLConfig/useGraphQLConfig.d.ts +5 -4
  245. package/dist/hooks/GraphQLConfig/useGraphQLConfig.js +27 -24
  246. package/dist/hooks/Search/useSearch.cjs +11 -10
  247. package/dist/hooks/Search/useSearch.js +7 -6
  248. package/dist/hooks/Search/useSearchInput.cjs +4 -4
  249. package/dist/hooks/Search/useSearchInput.js +1 -1
  250. package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.cjs +5 -4
  251. package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.d.cts +1 -1
  252. package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.d.ts +1 -1
  253. package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.js +3 -2
  254. package/dist/hooks/UpdateAnalyticsProps/useUpdateAnalyticsProps.cjs +3 -2
  255. package/dist/hooks/UpdateAnalyticsProps/useUpdateAnalyticsProps.js +3 -2
  256. package/dist/hooks/utils.d.cts +1 -1
  257. package/dist/merchants/domInsertion.cjs +1 -1
  258. package/dist/merchants/domInsertion.d.cts +1 -1
  259. package/dist/merchants/domInsertion.d.ts +1 -1
  260. package/dist/merchants/domInsertion.js +1 -1
  261. package/dist/node_modules/classnames/index.cjs +52 -0
  262. package/dist/node_modules/classnames/index.js +49 -0
  263. package/dist/packages/components-v3/dist/ChatHeader/ChatHeader.cjs +2 -0
  264. package/dist/packages/components-v3/dist/ChatHeader/ChatHeader.js +4 -0
  265. package/dist/packages/components-v3/dist/ChatHeader/components/CloseButton.cjs +16 -0
  266. package/dist/packages/components-v3/dist/ChatHeader/components/CloseButton.js +17 -0
  267. package/dist/packages/components-v3/dist/ChatHeader/components/Handle.cjs +6 -0
  268. package/dist/packages/components-v3/dist/ChatHeader/components/Handle.js +8 -0
  269. package/dist/packages/components-v3/dist/ChatHeader/components/Layout.cjs +4 -0
  270. package/dist/packages/components-v3/dist/ChatHeader/components/Layout.js +6 -0
  271. package/dist/packages/components-v3/dist/ChatHeader/components/Logo.cjs +3 -0
  272. package/dist/packages/components-v3/dist/ChatHeader/components/Logo.js +5 -0
  273. package/dist/packages/components-v3/dist/ChatHeader/components/Toggle.cjs +7 -0
  274. package/dist/packages/components-v3/dist/ChatHeader/components/Toggle.js +9 -0
  275. package/dist/packages/components-v3/dist/ChatHeader/components/ToggleItem.cjs +6 -0
  276. package/dist/packages/components-v3/dist/ChatHeader/components/ToggleItem.js +8 -0
  277. package/dist/packages/components-v3/dist/ChatHeader/components/index.cjs +6 -0
  278. package/dist/packages/components-v3/dist/ChatHeader/components/index.js +8 -0
  279. package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetCloseButtonProperties.cjs +22 -0
  280. package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetCloseButtonProperties.js +23 -0
  281. package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetHandleProperties.cjs +58 -0
  282. package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetHandleProperties.js +59 -0
  283. package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetLayoutProperties.cjs +8 -0
  284. package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetLayoutProperties.js +9 -0
  285. package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetToggleOptionProperties.cjs +1 -0
  286. package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetToggleOptionProperties.js +3 -0
  287. package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetToggleProperties.cjs +12 -0
  288. package/dist/packages/components-v3/dist/ChatHeader/hooks/useGetToggleProperties.js +13 -0
  289. package/dist/packages/components-v3/dist/ChatHeader/index.cjs +2 -0
  290. package/dist/packages/components-v3/dist/ChatHeader/index.js +4 -0
  291. package/dist/packages/components-v3/dist/ChatHeader/types/index.cjs +11 -0
  292. package/dist/packages/components-v3/dist/ChatHeader/types/index.js +10 -0
  293. package/dist/packages/components-v3/dist/Container/Container.cjs +11 -0
  294. package/dist/packages/components-v3/dist/Container/Container.js +12 -0
  295. package/dist/packages/components-v3/dist/Container/hooks/useGetCenterContentProperties.cjs +1 -0
  296. package/dist/packages/components-v3/dist/Container/hooks/useGetCenterContentProperties.js +3 -0
  297. package/dist/packages/components-v3/dist/Container/hooks/useGetFluidProperties.cjs +1 -0
  298. package/dist/packages/components-v3/dist/Container/hooks/useGetFluidProperties.js +3 -0
  299. package/dist/packages/components-v3/dist/Container/index.cjs +1 -0
  300. package/dist/packages/components-v3/dist/Container/index.js +3 -0
  301. package/dist/packages/components-v3/dist/Image/Image.cjs +16 -0
  302. package/dist/packages/components-v3/dist/Image/Image.js +17 -0
  303. package/dist/packages/components-v3/dist/Image/hooks/useGetAccessibilityProperties.cjs +1 -0
  304. package/dist/packages/components-v3/dist/Image/hooks/useGetAccessibilityProperties.js +3 -0
  305. package/dist/packages/components-v3/dist/Image/hooks/useGetAspectRatioProperties.cjs +1 -0
  306. package/dist/packages/components-v3/dist/Image/hooks/useGetAspectRatioProperties.js +3 -0
  307. package/dist/packages/components-v3/dist/Image/hooks/useGetObjectFitProperties.cjs +1 -0
  308. package/dist/packages/components-v3/dist/Image/hooks/useGetObjectFitProperties.js +3 -0
  309. package/dist/packages/components-v3/dist/Image/hooks/useGetRoundedProperties.cjs +1 -0
  310. package/dist/packages/components-v3/dist/Image/hooks/useGetRoundedProperties.js +3 -0
  311. package/dist/packages/components-v3/dist/Image/hooks/useGetSkeletonProperties.cjs +1 -0
  312. package/dist/packages/components-v3/dist/Image/hooks/useGetSkeletonProperties.js +3 -0
  313. package/dist/packages/components-v3/dist/Image/hooks/useGetWidthProperties.cjs +1 -0
  314. package/dist/packages/components-v3/dist/Image/hooks/useGetWidthProperties.js +3 -0
  315. package/dist/packages/components-v3/dist/Image/hooks/useHandleImageLoading.cjs +1 -0
  316. package/dist/packages/components-v3/dist/Image/hooks/useHandleImageLoading.js +3 -0
  317. package/dist/packages/components-v3/dist/ImageGallery/ImageGallery.cjs +2 -0
  318. package/dist/packages/components-v3/dist/ImageGallery/ImageGallery.js +4 -0
  319. package/dist/packages/components-v3/dist/ImageGallery/components/ImageItem.cjs +2 -0
  320. package/dist/packages/components-v3/dist/ImageGallery/components/ImageItem.js +4 -0
  321. package/dist/packages/components-v3/dist/ImageGallery/components/Layout.cjs +15 -0
  322. package/dist/packages/components-v3/dist/ImageGallery/components/Layout.js +16 -0
  323. package/dist/packages/components-v3/dist/ImageGallery/components/NormalLayout.cjs +4 -0
  324. package/dist/packages/components-v3/dist/ImageGallery/components/NormalLayout.js +4 -0
  325. package/dist/packages/components-v3/dist/ImageGallery/components/OverlappedLayout.cjs +1 -0
  326. package/dist/packages/components-v3/dist/ImageGallery/components/OverlappedLayout.js +3 -0
  327. package/dist/packages/components-v3/dist/ImageGallery/components/index.cjs +4 -0
  328. package/dist/packages/components-v3/dist/ImageGallery/components/index.js +6 -0
  329. package/dist/packages/components-v3/dist/ImageGallery/hooks/useGetContainerProperties.cjs +1 -0
  330. package/dist/packages/components-v3/dist/ImageGallery/hooks/useGetContainerProperties.js +3 -0
  331. package/dist/packages/components-v3/dist/ImageGallery/index.cjs +2 -0
  332. package/dist/packages/components-v3/dist/ImageGallery/index.js +4 -0
  333. package/dist/packages/components-v3/dist/ImageGallery/types/types.cjs +13 -0
  334. package/dist/packages/components-v3/dist/ImageGallery/types/types.js +12 -0
  335. package/dist/packages/components-v3/dist/PromptButton/PromptButton.cjs +12 -0
  336. package/dist/packages/components-v3/dist/PromptButton/PromptButton.js +13 -0
  337. package/dist/packages/components-v3/dist/PromptButton/components/Icon.cjs +1 -0
  338. package/dist/packages/components-v3/dist/PromptButton/components/Icon.js +3 -0
  339. package/dist/packages/components-v3/dist/PromptButton/components/Label.cjs +3 -0
  340. package/dist/packages/components-v3/dist/PromptButton/components/Label.js +5 -0
  341. package/dist/packages/components-v3/dist/PromptButton/components/Layout.cjs +12 -0
  342. package/dist/packages/components-v3/dist/PromptButton/components/Layout.js +13 -0
  343. package/dist/packages/components-v3/dist/PromptButton/components/Loading.cjs +9 -0
  344. package/dist/packages/components-v3/dist/PromptButton/components/Loading.js +10 -0
  345. package/dist/packages/components-v3/dist/PromptButton/components/index.cjs +4 -0
  346. package/dist/packages/components-v3/dist/PromptButton/components/index.js +6 -0
  347. package/dist/packages/components-v3/dist/PromptButton/hooks/useGetBoldTextProperties.cjs +1 -0
  348. package/dist/packages/components-v3/dist/PromptButton/hooks/useGetBoldTextProperties.js +3 -0
  349. package/dist/packages/components-v3/dist/PromptButton/hooks/useGetLayoutBaseProperties.cjs +8 -0
  350. package/dist/packages/components-v3/dist/PromptButton/hooks/useGetLayoutBaseProperties.js +9 -0
  351. package/dist/packages/components-v3/dist/PromptButton/index.cjs +2 -0
  352. package/dist/packages/components-v3/dist/PromptButton/index.js +4 -0
  353. package/dist/packages/components-v3/dist/PromptButton/types/index.cjs +13 -0
  354. package/dist/packages/components-v3/dist/PromptButton/types/index.js +12 -0
  355. package/dist/packages/components-v3/dist/PromptCarousel/PromptCarousel.cjs +12 -0
  356. package/dist/packages/components-v3/dist/PromptCarousel/PromptCarousel.js +14 -0
  357. package/dist/packages/components-v3/dist/PromptCarousel/components/BlockScrollContainer.cjs +9 -0
  358. package/dist/packages/components-v3/dist/PromptCarousel/components/BlockScrollContainer.js +10 -0
  359. package/dist/packages/components-v3/dist/PromptCarousel/components/ButtonContainerRow.cjs +11 -0
  360. package/dist/packages/components-v3/dist/PromptCarousel/components/ButtonContainerRow.js +12 -0
  361. package/dist/packages/components-v3/dist/PromptCarousel/components/CarouselContentWithBlockScroll.cjs +4 -0
  362. package/dist/packages/components-v3/dist/PromptCarousel/components/CarouselContentWithBlockScroll.js +6 -0
  363. package/dist/packages/components-v3/dist/PromptCarousel/components/CarouselContentWithRowScroll.cjs +4 -0
  364. package/dist/packages/components-v3/dist/PromptCarousel/components/CarouselContentWithRowScroll.js +6 -0
  365. package/dist/packages/components-v3/dist/PromptCarousel/components/index.cjs +3 -0
  366. package/dist/packages/components-v3/dist/PromptCarousel/components/index.js +5 -0
  367. package/dist/packages/components-v3/dist/PromptCarousel/hooks/index.cjs +5 -0
  368. package/dist/packages/components-v3/dist/PromptCarousel/hooks/index.js +7 -0
  369. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useButtonScrollPosition.cjs +1 -0
  370. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useButtonScrollPosition.js +3 -0
  371. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useCarouselAnimation.cjs +3 -0
  372. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useCarouselAnimation.js +5 -0
  373. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useCarouselButtons.cjs +1 -0
  374. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useCarouselButtons.js +3 -0
  375. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useCarouselRefs.cjs +1 -0
  376. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useCarouselRefs.js +3 -0
  377. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useHorizontalScrollAnimation.cjs +1 -0
  378. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useHorizontalScrollAnimation.js +3 -0
  379. package/dist/packages/components-v3/dist/PromptCarousel/index.cjs +2 -0
  380. package/dist/packages/components-v3/dist/PromptCarousel/index.js +4 -0
  381. package/dist/packages/components-v3/dist/PromptCarousel/types/types.cjs +19 -0
  382. package/dist/packages/components-v3/dist/PromptCarousel/types/types.js +17 -0
  383. package/dist/packages/components-v3/dist/Stack/Stack.cjs +36 -0
  384. package/dist/packages/components-v3/dist/Stack/Stack.js +36 -0
  385. package/dist/packages/components-v3/dist/Stack/hooks/useFormatStackChildren.cjs +27 -0
  386. package/dist/packages/components-v3/dist/Stack/hooks/useFormatStackChildren.js +26 -0
  387. package/dist/packages/components-v3/dist/Stack/hooks/useGetAlignProperties.cjs +20 -0
  388. package/dist/packages/components-v3/dist/Stack/hooks/useGetAlignProperties.js +19 -0
  389. package/dist/packages/components-v3/dist/Stack/hooks/useGetDirectionProperties.cjs +19 -0
  390. package/dist/packages/components-v3/dist/Stack/hooks/useGetDirectionProperties.js +18 -0
  391. package/dist/packages/components-v3/dist/Stack/hooks/useGetGapProperties.cjs +16 -0
  392. package/dist/packages/components-v3/dist/Stack/hooks/useGetGapProperties.js +15 -0
  393. package/dist/packages/components-v3/dist/Stack/hooks/useGetJustifyProperties.cjs +21 -0
  394. package/dist/packages/components-v3/dist/Stack/hooks/useGetJustifyProperties.js +20 -0
  395. package/dist/packages/components-v3/dist/Stack/hooks/useGetStyleProperties.cjs +38 -0
  396. package/dist/packages/components-v3/dist/Stack/hooks/useGetStyleProperties.js +38 -0
  397. package/dist/packages/components-v3/dist/Stack/hooks/useGetWrapProperties.cjs +13 -0
  398. package/dist/packages/components-v3/dist/Stack/hooks/useGetWrapProperties.js +12 -0
  399. package/dist/packages/components-v3/dist/Stack/index.cjs +1 -0
  400. package/dist/packages/components-v3/dist/Stack/index.js +3 -0
  401. package/dist/packages/components-v3/dist/Stack/utils/constants.cjs +42 -0
  402. package/dist/packages/components-v3/dist/Stack/utils/constants.js +41 -0
  403. package/dist/packages/components-v3/dist/Tokens/index.cjs +11 -0
  404. package/dist/packages/components-v3/dist/Tokens/index.js +13 -0
  405. package/dist/packages/components-v3/dist/Typography/Typography.cjs +15 -0
  406. package/dist/packages/components-v3/dist/Typography/Typography.js +16 -0
  407. package/dist/packages/components-v3/dist/Typography/hooks/useGetAccessibilityAttributes.cjs +1 -0
  408. package/dist/packages/components-v3/dist/Typography/hooks/useGetAccessibilityAttributes.js +3 -0
  409. package/dist/packages/components-v3/dist/Typography/hooks/useGetAlignProperties.cjs +1 -0
  410. package/dist/packages/components-v3/dist/Typography/hooks/useGetAlignProperties.js +3 -0
  411. package/dist/packages/components-v3/dist/Typography/hooks/useGetColorProperties.cjs +1 -0
  412. package/dist/packages/components-v3/dist/Typography/hooks/useGetColorProperties.js +3 -0
  413. package/dist/packages/components-v3/dist/Typography/hooks/useGetNoWrapProperties.cjs +1 -0
  414. package/dist/packages/components-v3/dist/Typography/hooks/useGetNoWrapProperties.js +3 -0
  415. package/dist/packages/components-v3/dist/Typography/hooks/useGetNumberOfLinesProperties.cjs +1 -0
  416. package/dist/packages/components-v3/dist/Typography/hooks/useGetNumberOfLinesProperties.js +3 -0
  417. package/dist/packages/components-v3/dist/Typography/hooks/useGetVariantProperties.cjs +1 -0
  418. package/dist/packages/components-v3/dist/Typography/hooks/useGetVariantProperties.js +3 -0
  419. package/dist/packages/components-v3/dist/Typography/index.cjs +1 -0
  420. package/dist/packages/components-v3/dist/Typography/index.js +3 -0
  421. package/dist/packages/components-v3/dist/WelcomeMessage/WelcomeMessage.cjs +2 -0
  422. package/dist/packages/components-v3/dist/WelcomeMessage/WelcomeMessage.js +4 -0
  423. package/dist/packages/components-v3/dist/WelcomeMessage/components/Container.cjs +14 -0
  424. package/dist/packages/components-v3/dist/WelcomeMessage/components/Container.js +15 -0
  425. package/dist/packages/components-v3/dist/WelcomeMessage/components/SparkleIcon.cjs +3 -0
  426. package/dist/packages/components-v3/dist/WelcomeMessage/components/SparkleIcon.js +5 -0
  427. package/dist/packages/components-v3/dist/WelcomeMessage/components/Text.cjs +3 -0
  428. package/dist/packages/components-v3/dist/WelcomeMessage/components/Text.js +5 -0
  429. package/dist/packages/components-v3/dist/WelcomeMessage/components/Title.cjs +3 -0
  430. package/dist/packages/components-v3/dist/WelcomeMessage/components/Title.js +5 -0
  431. package/dist/packages/components-v3/dist/WelcomeMessage/components/index.cjs +4 -0
  432. package/dist/packages/components-v3/dist/WelcomeMessage/components/index.js +6 -0
  433. package/dist/packages/components-v3/dist/WelcomeMessage/hooks/useGetContainerProperties.cjs +1 -0
  434. package/dist/packages/components-v3/dist/WelcomeMessage/hooks/useGetContainerProperties.js +3 -0
  435. package/dist/packages/components-v3/dist/WelcomeMessage/hooks/useGetSparkleIconProperties.cjs +1 -0
  436. package/dist/packages/components-v3/dist/WelcomeMessage/hooks/useGetSparkleIconProperties.js +3 -0
  437. package/dist/packages/components-v3/dist/WelcomeMessage/index.cjs +2 -0
  438. package/dist/packages/components-v3/dist/WelcomeMessage/index.js +4 -0
  439. package/dist/packages/components-v3/dist/WelcomeMessage/types/types.cjs +14 -0
  440. package/dist/packages/components-v3/dist/WelcomeMessage/types/types.js +14 -0
  441. package/dist/packages/components-v3/dist/WidgetWrapper/WidgetWrapper.cjs +12 -0
  442. package/dist/packages/components-v3/dist/WidgetWrapper/WidgetWrapper.js +13 -0
  443. package/dist/packages/components-v3/dist/WidgetWrapper/hooks/useGetWrapperProperties.cjs +1 -0
  444. package/dist/packages/components-v3/dist/WidgetWrapper/hooks/useGetWrapperProperties.js +3 -0
  445. package/dist/packages/components-v3/dist/WidgetWrapper/index.cjs +2 -0
  446. package/dist/packages/components-v3/dist/WidgetWrapper/index.js +4 -0
  447. package/dist/packages/components-v3/dist/WidgetWrapper/types/types.cjs +13 -0
  448. package/dist/packages/components-v3/dist/WidgetWrapper/types/types.js +12 -0
  449. package/dist/packages/components-v3/dist/src/models/colorsConfig.cjs +26 -0
  450. package/dist/packages/components-v3/dist/src/models/colorsConfig.js +25 -0
  451. package/dist/packages/components-v3/dist/tokens/aspectRatio/aspectRatio.cjs +16 -0
  452. package/dist/packages/components-v3/dist/tokens/aspectRatio/aspectRatio.js +17 -0
  453. package/dist/packages/components-v3/dist/tokens/breakpoints/breakpoints.cjs +25 -0
  454. package/dist/packages/components-v3/dist/tokens/breakpoints/breakpoints.js +23 -0
  455. package/dist/packages/components-v3/dist/tokens/colors/colors.cjs +51 -0
  456. package/dist/packages/components-v3/dist/tokens/colors/colors.js +51 -0
  457. package/dist/packages/components-v3/dist/tokens/radius/radius.cjs +64 -0
  458. package/dist/packages/components-v3/dist/tokens/radius/radius.js +65 -0
  459. package/dist/packages/components-v3/dist/tokens/theme/theme.cjs +13 -0
  460. package/dist/packages/components-v3/dist/tokens/theme/theme.js +12 -0
  461. package/dist/packages/components-v3/dist/tokens/typography/fontFamily.cjs +25 -0
  462. package/dist/packages/components-v3/dist/tokens/typography/fontFamily.js +25 -0
  463. package/dist/packages/components-v3/dist/tokens/typography/fontSize.cjs +37 -0
  464. package/dist/packages/components-v3/dist/tokens/typography/fontSize.js +38 -0
  465. package/dist/packages/components-v3/dist/tokens/typography/fontWeight.cjs +17 -0
  466. package/dist/packages/components-v3/dist/tokens/typography/fontWeight.js +18 -0
  467. package/dist/packages/components-v3/dist/tokens/typography/letterSpacing.cjs +15 -0
  468. package/dist/packages/components-v3/dist/tokens/typography/letterSpacing.js +16 -0
  469. package/dist/packages/components-v3/dist/tokens/typography/lineHeight.cjs +31 -0
  470. package/dist/packages/components-v3/dist/tokens/typography/lineHeight.js +32 -0
  471. package/dist/packages/components-v3/dist/tokens/typography/typography.cjs +5 -0
  472. package/dist/packages/components-v3/dist/tokens/typography/typography.js +7 -0
  473. package/dist/packages/components-v3/dist/tokens/utils.cjs +7 -0
  474. package/dist/packages/components-v3/dist/tokens/utils.js +6 -0
  475. package/dist/packages/components-v3/dist/utils/useCheckIsMobile.cjs +1 -0
  476. package/dist/packages/components-v3/dist/utils/useCheckIsMobile.js +3 -0
  477. package/dist/packages/components-v3/dist/utils/useResponsiveValue.cjs +57 -0
  478. package/dist/packages/components-v3/dist/utils/useResponsiveValue.js +56 -0
  479. package/dist/packages/icons/dist/FourPointStar.cjs +8 -0
  480. package/dist/packages/icons/dist/FourPointStar.js +9 -0
  481. package/dist/packages/icons/dist/IconCloseRounded.cjs +22 -0
  482. package/dist/packages/icons/dist/IconCloseRounded.js +22 -0
  483. package/dist/packages/icons/dist/IconCloseSharp.cjs +31 -0
  484. package/dist/packages/icons/dist/IconCloseSharp.js +31 -0
  485. package/dist/packages/icons/dist/IconCloseTransparent.cjs +24 -0
  486. package/dist/packages/icons/dist/IconCloseTransparent.js +24 -0
  487. package/dist/packages/icons/dist/Sparkles.cjs +8 -0
  488. package/dist/packages/icons/dist/Sparkles.js +9 -0
  489. package/dist/packages/icons/dist/_virtual/rolldown_runtime.cjs +28 -0
  490. package/dist/packages/icons/dist/_virtual/rolldown_runtime.js +26 -0
  491. package/dist/packages/icons/dist/node_modules/react/cjs/react-jsx-runtime.development.cjs +697 -0
  492. package/dist/packages/icons/dist/node_modules/react/cjs/react-jsx-runtime.development.js +697 -0
  493. package/dist/packages/icons/dist/node_modules/react/cjs/react-jsx-runtime.production.min.cjs +44 -0
  494. package/dist/packages/icons/dist/node_modules/react/cjs/react-jsx-runtime.production.min.js +44 -0
  495. package/dist/packages/icons/dist/node_modules/react/cjs/react.development.cjs +1529 -0
  496. package/dist/packages/icons/dist/node_modules/react/cjs/react.development.js +1529 -0
  497. package/dist/packages/icons/dist/node_modules/react/cjs/react.production.min.cjs +330 -0
  498. package/dist/packages/icons/dist/node_modules/react/cjs/react.production.min.js +330 -0
  499. package/dist/packages/icons/dist/node_modules/react/index.cjs +14 -0
  500. package/dist/packages/icons/dist/node_modules/react/index.js +14 -0
  501. package/dist/packages/icons/dist/node_modules/react/jsx-runtime.cjs +14 -0
  502. package/dist/packages/icons/dist/node_modules/react/jsx-runtime.js +14 -0
  503. package/dist/services/amplitudeService/amplitudeService.cjs +204 -0
  504. package/dist/services/amplitudeService/amplitudeService.d.cts +75 -0
  505. package/dist/services/amplitudeService/amplitudeService.d.ts +75 -0
  506. package/dist/services/amplitudeService/amplitudeService.js +202 -0
  507. package/dist/services/amplitudeService/index.cjs +4 -0
  508. package/dist/services/amplitudeService/index.d.cts +2 -0
  509. package/dist/services/amplitudeService/index.d.ts +2 -0
  510. package/dist/services/amplitudeService/index.js +3 -0
  511. package/dist/services/enviveConfigService/enviveConfigService.cjs +36 -0
  512. package/dist/services/enviveConfigService/enviveConfigService.d.cts +43 -0
  513. package/dist/services/enviveConfigService/enviveConfigService.d.ts +43 -0
  514. package/dist/services/enviveConfigService/enviveConfigService.js +36 -0
  515. package/dist/services/enviveConfigService/index.cjs +3 -0
  516. package/dist/services/enviveConfigService/index.d.cts +2 -0
  517. package/dist/services/enviveConfigService/index.d.ts +2 -0
  518. package/dist/services/enviveConfigService/index.js +3 -0
  519. package/dist/types/customerService.cjs +20 -0
  520. package/dist/types/customerService.js +19 -0
  521. package/dist/types/enviveConfig.d.cts +29 -0
  522. package/dist/types/enviveConfig.d.ts +29 -0
  523. package/dist/types/index.d.cts +2 -1
  524. package/dist/types/index.d.ts +2 -1
  525. package/package.json +36 -8
  526. package/src/application/commerce-api.ts +14 -1
  527. package/src/application/models/api/userEvent.ts +3 -1
  528. package/src/application/models/api/widgetText.ts +9 -0
  529. package/src/application/models/api/widgetTextRequest.ts +10 -0
  530. package/src/application/models/chatElementDisplayLocationV3.ts +18 -0
  531. package/src/application/models/colorsConfigV3.ts +26 -0
  532. package/src/application/models/featureGates.ts +6 -0
  533. package/src/application/models/frontendConfig.ts +5 -0
  534. package/src/application/models/frontendConfigV3.ts +10 -0
  535. package/src/application/models/guards/api/isApiPDPEventAttributes.ts +5 -1
  536. package/src/application/models/index.ts +1 -0
  537. package/src/application/models/utils/snakeToCamelTransformer.ts +1 -1
  538. package/src/application/utils/elementObserver.ts +2 -2
  539. package/src/application/utils/widgetTextFromApiWidgetTextResponse.ts +30 -0
  540. package/src/application/utils/widgetTextRequestToApiRequest.ts +45 -0
  541. package/src/atoms/amplitude/amplitudeTrackEventAtom.ts +1 -8
  542. package/src/atoms/app/index.ts +9 -3
  543. package/src/atoms/app/variant.ts +8 -2
  544. package/src/atoms/chat/chatState.ts +10 -2
  545. package/src/atoms/envive/enviveConfig.ts +5 -11
  546. package/src/atoms/org/graphqlConfig.ts +0 -1
  547. package/src/atoms/search/productRetrievalAPI.ts +0 -8
  548. package/src/atoms/search/productRetrievalAdapter.ts +6 -10
  549. package/src/atoms/widget/chatPreviewLoading.ts +36 -0
  550. package/src/atoms/widget/index.ts +1 -0
  551. package/src/contexts/amplitudeContext/__tests__/amplitudeContext.test.tsx +196 -187
  552. package/src/contexts/amplitudeContext/amplitudeContext.tsx +56 -334
  553. package/src/contexts/enviveConfigContext/enviveConfigContext.tsx +3 -0
  554. package/src/contexts/enviveContext/enviveContext.tsx +103 -27
  555. package/src/contexts/enviveCssContext/enviveCssContext.tsx +121 -22
  556. package/src/contexts/featureFlagServiceContext/featureFlagServiceContext.tsx +12 -11
  557. package/src/contexts/graphqlContext/graphqlContext.tsx +250 -13
  558. package/src/contexts/graphqlContext/mockV3Config.ts +250 -0
  559. package/src/contexts/hardcopyContext/hardcopyContext.tsx +159 -21
  560. package/src/contexts/newOrgConfigContext/__tests__/newOrgConfigContext.test.tsx +6 -6
  561. package/src/contexts/newOrgConfigContext/newOrgConfigContext.tsx +5 -13
  562. package/src/contexts/pageContext/__tests__/pageContext.test.tsx +141 -75
  563. package/src/contexts/pageContext/mapping.ts +188 -2
  564. package/src/contexts/pageContext/pageContext.tsx +68 -14
  565. package/src/contexts/pageContext/types.ts +5 -2
  566. package/src/contexts/salesAgentContext/chatAPI.ts +10 -0
  567. package/src/contexts/salesAgentContext/salesAgentContext.tsx +104 -45
  568. package/src/contexts/salesAgentContext/salesAgentService.ts +91 -4
  569. package/src/contexts/salesAgentContext/statusCodeError.ts +10 -0
  570. package/src/contexts/searchContext/__tests__/searchContext.test.tsx +8 -2
  571. package/src/contexts/types.ts +15 -19
  572. package/src/contexts/typesV3.ts +348 -0
  573. package/src/contexts/uiConfigContext/__tests__/uiConfigContext.test.tsx +329 -0
  574. package/src/contexts/uiConfigContext/index.ts +1 -0
  575. package/src/contexts/uiConfigContext/uiConfigContext.tsx +44 -0
  576. package/src/contexts/widgetConfigContext/__tests__/widgetConfigContext.test.tsx +512 -0
  577. package/src/contexts/widgetConfigContext/index.ts +1 -0
  578. package/src/contexts/widgetConfigContext/widgetConfigContext.tsx +84 -0
  579. package/src/hooks/AppDetails/useAppDetails.ts +2 -2
  580. package/src/hooks/ChatToggle/useChatToggle.ts +4 -4
  581. package/src/hooks/ElementObserver/useElementObserver.ts +9 -9
  582. package/src/hooks/GraphQLConfig/useGraphQLConfig.ts +22 -21
  583. package/src/hooks/Search/__tests__/useSearch.test.tsx +15 -6
  584. package/src/hooks/Search/useSearch.tsx +6 -5
  585. package/src/merchants/domInsertion.ts +0 -16
  586. package/src/services/amplitudeService/__tests__/amplitudeService.test.ts +558 -0
  587. package/src/services/amplitudeService/amplitudeService.ts +324 -0
  588. package/src/services/amplitudeService/index.ts +1 -0
  589. package/src/services/enviveConfigService/enviveConfigService.ts +72 -0
  590. package/src/services/enviveConfigService/index.ts +1 -0
  591. package/src/types/enviveConfig.ts +27 -0
  592. package/src/types/index.ts +1 -0
  593. package/dist/hooks/ChatToggleAnalytics/index.cjs +0 -3
  594. package/dist/hooks/ChatToggleAnalytics/index.d.cts +0 -2
  595. package/dist/hooks/ChatToggleAnalytics/index.d.ts +0 -2
  596. package/dist/hooks/ChatToggleAnalytics/index.js +0 -3
  597. package/dist/hooks/ChatToggleAnalytics/useChatToggleAnalytics.cjs +0 -19
  598. package/dist/hooks/ChatToggleAnalytics/useChatToggleAnalytics.d.cts +0 -9
  599. package/dist/hooks/ChatToggleAnalytics/useChatToggleAnalytics.d.ts +0 -9
  600. package/dist/hooks/ChatToggleAnalytics/useChatToggleAnalytics.js +0 -18
  601. package/src/application/utils/cdnUtils.ts +0 -8
  602. package/src/config/divIds.ts +0 -31
  603. package/src/config/locators/components/chat/entrypoints.ts +0 -13
  604. package/src/config/locators/components/chat/preview.ts +0 -12
  605. package/src/config/locators/components/report-issue.ts +0 -21
  606. package/src/config/socialProofClasses.ts +0 -12
  607. package/src/events/registerAnalyticsListeners.ts +0 -44
  608. package/src/hooks/ChatToggleAnalytics/index.ts +0 -1
  609. package/src/hooks/ChatToggleAnalytics/useChatToggleAnalytics.ts +0 -15
  610. package/src/types/FilterAttribute.ts +0 -32
@@ -7,63 +7,117 @@ import {
7
7
  useMemo,
8
8
  useState,
9
9
  } from 'react';
10
- import { UserEvent } from '@spiffy-ai/commerce-api-client';
11
- import { UrlResolverResponse, urlResolverAtom } from 'src/atoms/app/variant';
10
+ import {
11
+ UrlResolverResponse,
12
+ pageUserEventAtom,
13
+ pageVariantInfoAtom,
14
+ urlResolverAtom,
15
+ } from 'src/atoms/app/variant';
12
16
  import { useAtom } from 'jotai';
13
-
14
17
  import CommerceApiClient from 'src/application/commerce-api';
15
18
  import Logger from 'src/application/logging/logger';
16
- import { mapUrlResolverResponseToVariantInfo } from './mapping';
17
- import { PageDetails, PageVariantInfo } from './types';
19
+ import { PageVisitCategory, UserEventCategory } from '@spiffy-ai/commerce-api-client';
20
+ import { VariantTypeEnum } from 'src/application/models';
21
+ import { mapApiUserEventToUserEvent, mapUrlResolverResponseToVariantInfo } from './mapping';
22
+ import { PageDetails } from './types';
18
23
 
19
- const PageContext = createContext<PageDetails | undefined>(undefined);
24
+ const PageContext = createContext<
25
+ (PageDetails & { isLoading: boolean; isSupported: boolean }) | undefined
26
+ >(undefined);
20
27
 
21
- export const PageProvider: React.FC<{ children: ReactNode }> = ({ children }) => {
28
+ export const PageProvider: React.FC<{
29
+ children: ReactNode;
30
+ previewMode: boolean;
31
+ }> = ({ children, previewMode = false }) => {
22
32
  const [pageUrl, setPageUrl] = useState<string | undefined>(undefined);
23
- const [variantInfo, setVariantInfo] = useState<PageVariantInfo | undefined>(undefined);
24
33
  const [urlResolverResponse, setUrlResolverResponse] = useAtom(urlResolverAtom);
25
- const [userEvent, setUserEvent] = useState<UserEvent | undefined>(undefined);
26
-
34
+ const [isLoading, setIsLoading] = useState(false);
35
+ const [variantInfo, setVariantInfo] = useAtom(pageVariantInfoAtom);
36
+ const [userEvent, setUserEvent] = useAtom(pageUserEventAtom);
37
+ const [isSupported, setIsSupported] = useState(false);
27
38
  useEffect(() => {
28
39
  // TODO: Add support for SPA's and other changes to the URL to ensure that the pageUrl is set correctly
29
40
  setPageUrl(window.location.href);
30
41
  }, []);
31
42
 
43
+ // Auto-initialize atoms for preview mode
44
+ useEffect(() => {
45
+ if (previewMode && !userEvent && !variantInfo) {
46
+ const url = typeof window !== 'undefined' ? window.location.href : '';
47
+ setUserEvent({
48
+ event_id: 'preview-user-event',
49
+ created_at: new Date().toISOString(),
50
+ category: UserEventCategory.PageVisit,
51
+ attributes: {
52
+ page_visit_category: PageVisitCategory.Other,
53
+ url,
54
+ },
55
+ } as any);
56
+
57
+ setVariantInfo({
58
+ variantType: VariantTypeEnum.PageVisit,
59
+ url,
60
+ });
61
+ }
62
+ }, [previewMode, userEvent, variantInfo, setUserEvent, setVariantInfo]);
63
+
32
64
  const setVariantFromUrlResolver = useCallback(
33
65
  (url: string, response: UrlResolverResponse) => {
34
66
  const newVariantInfo = mapUrlResolverResponseToVariantInfo(url, response);
35
- const newUserEvent = response.user_event ?? undefined;
67
+ const newUserEvent = mapApiUserEventToUserEvent(response.user_event ?? undefined);
36
68
  setVariantInfo(newVariantInfo);
37
69
  setUserEvent(newUserEvent);
38
70
  },
39
- [setVariantInfo],
71
+ [setVariantInfo, setUserEvent],
40
72
  );
41
73
 
42
74
  useEffect(() => {
43
75
  const resolvePageUrl = async () => {
76
+ setIsLoading(true);
44
77
  try {
45
78
  if (!pageUrl) {
79
+ setIsLoading(false);
46
80
  return;
47
81
  }
82
+
83
+ // If in preview mode or atoms are already set (e.g., by storybook), skip API call
84
+ if (previewMode || userEvent || variantInfo) {
85
+ setIsLoading(false);
86
+ return;
87
+ }
88
+
48
89
  const cleansedUrl = pageUrl.toLowerCase().trim();
49
90
  const response =
50
91
  urlResolverResponse[cleansedUrl] ??
51
92
  ((await CommerceApiClient.resolveUrl(cleansedUrl)) as UrlResolverResponse);
52
93
  setVariantFromUrlResolver(cleansedUrl, response);
94
+ setIsLoading(false);
95
+ setIsSupported(response.ready);
53
96
  } catch (e) {
97
+ setIsLoading(false);
54
98
  Logger.logError('Failed to resolve page URL', e, { pageUrl });
55
99
  }
56
100
  };
57
101
  resolvePageUrl();
58
- }, [pageUrl, urlResolverResponse, setUrlResolverResponse, setVariantFromUrlResolver]);
102
+ }, [
103
+ pageUrl,
104
+ urlResolverResponse,
105
+ setUrlResolverResponse,
106
+ setVariantFromUrlResolver,
107
+ userEvent,
108
+ variantInfo,
109
+ previewMode,
110
+ ]);
59
111
 
60
112
  const value = useMemo(
61
113
  () => ({
62
114
  pageUrl,
63
115
  variantInfo,
64
116
  userEvent,
117
+ isLoading,
118
+ isSupported,
65
119
  }),
66
- [pageUrl, userEvent, variantInfo],
120
+ [pageUrl, userEvent, variantInfo, isLoading, isSupported],
67
121
  );
68
122
 
69
123
  return <PageContext.Provider value={value}>{children}</PageContext.Provider>;
@@ -1,15 +1,18 @@
1
- import { UserEvent } from '@spiffy-ai/commerce-api-client';
2
- import { VariantTypeEnum } from 'src/application/models';
1
+ import { UserEvent, VariantTypeEnum } from 'src/application/models';
3
2
 
4
3
  export type PDPPageVariantInfo = {
5
4
  variantType: VariantTypeEnum.Pdp;
6
5
  productId: string;
6
+ collections: string[];
7
+ numberOfReviews: number;
8
+ merchantTags: string[];
7
9
  url: string;
8
10
  };
9
11
 
10
12
  export type PLPPageVariantInfo = {
11
13
  variantType: VariantTypeEnum.Plp;
12
14
  plpId: string;
15
+ topCategory: string;
13
16
  url: string;
14
17
  };
15
18
 
@@ -9,6 +9,7 @@ import { queueUserEventAtom } from 'src/atoms/chat/messageQueue';
9
9
 
10
10
  export interface SalesAgentChatAPI {
11
11
  logPageVisit: ({ pageVisitCategory }: { pageVisitCategory: PageVisitCategory }) => void;
12
+ logUserEvent: (event: UserEvent) => void;
12
13
  onSuggestionClicked: (suggestion: Suggestion) => void;
13
14
  onTypedMessageSubmitted: ({ query }: { query: string }) => void;
14
15
  onFormResponseSubmitted: (formResponse: any) => void; // TODO: Figure out the right type
@@ -34,6 +35,13 @@ export const useSalesAgentChatAPI = () => {
34
35
  },
35
36
  [queueUserEvent],
36
37
  );
38
+
39
+ const logUserEvent = useCallback(
40
+ (event: UserEvent) => {
41
+ queueUserEvent(event);
42
+ },
43
+ [queueUserEvent],
44
+ );
37
45
  const onSuggestionClicked = useCallback(
38
46
  (suggestion: Suggestion) => {
39
47
  const event: UserEvent = {
@@ -42,6 +50,7 @@ export const useSalesAgentChatAPI = () => {
42
50
  createdAt: new Date().toISOString(),
43
51
  attributes: {
44
52
  suggestionId: suggestion.id,
53
+ content: suggestion.content,
45
54
  },
46
55
  };
47
56
  queueUserEvent(event);
@@ -68,6 +77,7 @@ export const useSalesAgentChatAPI = () => {
68
77
 
69
78
  return {
70
79
  logPageVisit,
80
+ logUserEvent,
71
81
  onSuggestionClicked,
72
82
  onTypedMessageSubmitted,
73
83
  onFormResponseSubmitted,
@@ -1,8 +1,15 @@
1
- import { useAtomValue, useSetAtom } from 'jotai';
1
+ import { useAtom, useAtomValue, useSetAtom } from 'jotai';
2
2
  import { ReactNode, createContext, useCallback, useEffect, useMemo } from 'react';
3
- import { Message } from 'src/application/models/message';
4
- import { Suggestion, UserEvent } from 'src/application/models';
5
- import { messagesAtom, suggestionsAtom } from 'src/atoms/chat/chatState';
3
+ import { UserEventCategory } from '@spiffy-ai/commerce-api-client';
4
+ import { Message, MessageRole, MessageType } from 'src/application/models/message';
5
+ import { NextMessageRequest, Suggestion, UserEvent } from 'src/application/models';
6
+ import {
7
+ initializedAtom,
8
+ messagesAtom,
9
+ pendingResponseAtom,
10
+ responseStreamingAtom,
11
+ suggestionsAtom,
12
+ } from 'src/atoms/chat/chatState';
6
13
  import {
7
14
  processUserEventAtom,
8
15
  userEventQueueAtom,
@@ -12,7 +19,7 @@ import { useSystemSettingsContext } from 'src/hooks/SystemSettingsContext';
12
19
  import { SalesAgentChatAPI, useSalesAgentChatAPI } from './chatAPI';
13
20
  import { useSalesAgentService } from './salesAgentService';
14
21
 
15
- interface SalesAgent extends SalesAgentChatAPI {
22
+ export interface SalesAgent extends SalesAgentChatAPI {
16
23
  // Messages are the full list of all turns
17
24
  messages: Message[][];
18
25
  // Pending messages are messages that the user has clicked/typed but have not yet been sent to the backend.
@@ -33,43 +40,33 @@ export const SalesAgentProvider: React.FC<{ children: ReactNode }> = ({ children
33
40
  const userEvents = useAtomValue(userEventQueueAtom);
34
41
  const userQueueEventCount = useAtomValue(userQueueEventCountAtom);
35
42
  const markUserEventsProcessed = useSetAtom(processUserEventAtom);
43
+ const [isInitialized, setIsInitialized] = useAtom(initializedAtom);
36
44
  const settingsContext = useSystemSettingsContext();
45
+ const setMessages = useSetAtom(messagesAtom);
37
46
 
38
- const { getStreamingResponses, createResponsePayload } = useSalesAgentService();
47
+ const { getStreamingResponses, createResponsePayload, getSuggestions, hydrateMessages } =
48
+ useSalesAgentService();
39
49
 
40
50
  // TODO: Ensure that amplitude events are being emitted
41
51
 
42
52
  // TODO: Add support for the streaming responses to function
43
53
 
44
54
  // TODO: Add support for the hydration of the messages from the backend on initialization
45
- const sendMessagesToBackend = useCallback(async () => {
46
- // Fast exit if there are no pending messages
47
- if (userEvents.length === 0) {
48
- return;
49
- }
50
- // TODO: Support sending multiple messages to the backend in one request
51
- const [pendingMessage] = userEvents.slice(0, userQueueEventCount);
52
- try {
53
- const requestPayload = createResponsePayload({
54
- userEvents: [pendingMessage],
55
- generationParams: settingsContext.generationParams,
56
- });
57
- const response = await getStreamingResponses(requestPayload);
55
+ const sendMessagesToBackend = useCallback(
56
+ async (requestPayload: NextMessageRequest) => {
57
+ try {
58
+ const response = await getStreamingResponses(requestPayload);
59
+ setIsInitialized(true);
58
60
 
59
- console.log('response', response);
60
- // Remove the pending message from the user events
61
- markUserEventsProcessed([pendingMessage.eventId]);
62
- } catch (error) {
63
- console.error('error sending message');
64
- }
65
- }, [
66
- userEvents,
67
- userQueueEventCount,
68
- createResponsePayload,
69
- settingsContext.generationParams,
70
- getStreamingResponses,
71
- markUserEventsProcessed,
72
- ]);
61
+ console.log('response', response);
62
+ // Remove the pending message from the user events
63
+ requestPayload.userEvents?.map(userEvent => markUserEventsProcessed([userEvent.eventId]));
64
+ } catch (error) {
65
+ console.error('error sending message');
66
+ }
67
+ },
68
+ [getStreamingResponses, setIsInitialized, markUserEventsProcessed],
69
+ );
73
70
 
74
71
  console.log('userQueueEventCount', userQueueEventCount);
75
72
  console.log('userEvents', userEvents);
@@ -78,12 +75,68 @@ export const SalesAgentProvider: React.FC<{ children: ReactNode }> = ({ children
78
75
  // It will be triggered when there are pending messages to be sent to the backend
79
76
  // It will be responsible for sending the messages to the backend and receiving the responses
80
77
  useEffect(() => {
78
+ console.log('SalesAgentProvider useEffect', userQueueEventCount, isInitialized, userEvents);
81
79
  if (userQueueEventCount > 0) {
82
- sendMessagesToBackend();
80
+ const payloadEvents = userEvents.slice(0, userQueueEventCount);
81
+
82
+ payloadEvents.forEach(userEvent => {
83
+ if (userEvent && userEvent.category === UserEventCategory.QueryTyped) {
84
+ const newMessage: Message = {
85
+ id: userEvent.eventId,
86
+ role: MessageRole.User,
87
+ type: MessageType.QueryTyped,
88
+ createdAt: userEvent.createdAt,
89
+ metadata: {
90
+ content: userEvent.attributes.query,
91
+ },
92
+ };
93
+ setMessages(current => [...current, [newMessage]]);
94
+ }
95
+ if (userEvent && userEvent.category === UserEventCategory.SuggestionClicked) {
96
+ const newMessage: Message = {
97
+ id: userEvent.eventId,
98
+ role: MessageRole.User,
99
+ type: MessageType.QueryTyped,
100
+ createdAt: userEvent.createdAt,
101
+ metadata: {
102
+ content: userEvent.attributes.content ?? '',
103
+ },
104
+ };
105
+ setMessages(current => [...current, [newMessage]]);
106
+ }
107
+ });
108
+
109
+ sendMessagesToBackend(
110
+ createResponsePayload({
111
+ userEvents: payloadEvents,
112
+ generationParams: settingsContext.generationParams,
113
+ }),
114
+ );
115
+ } else if (isInitialized) {
116
+ getSuggestions(
117
+ createResponsePayload({
118
+ userEvents: [],
119
+ generationParams: settingsContext.generationParams,
120
+ }),
121
+ );
122
+ }
123
+ }, [
124
+ createResponsePayload,
125
+ getSuggestions,
126
+ isInitialized,
127
+ setMessages,
128
+ sendMessagesToBackend,
129
+ settingsContext.generationParams,
130
+ userEvents,
131
+ userQueueEventCount,
132
+ ]);
133
+
134
+ useEffect(() => {
135
+ if (isInitialized) {
136
+ // Rehydrate any messages from the backend
137
+ hydrateMessages();
83
138
  }
84
- // TODO: Add a suggestion retrieval here (don't get suggestions unless the event queue is empty)
85
- console.log('SalesAgentProvider useEffect');
86
- }, [sendMessagesToBackend, userQueueEventCount]);
139
+ }, [isInitialized, hydrateMessages]);
87
140
 
88
141
  return <SalesAgentContext.Provider value={undefined}>{children}</SalesAgentContext.Provider>;
89
142
  };
@@ -92,22 +145,27 @@ export const useSalesAgent = (): SalesAgent => {
92
145
  const messages = useAtomValue(messagesAtom);
93
146
  const suggestions = useAtomValue(suggestionsAtom);
94
147
  const pendingMessages = useAtomValue(userEventQueueAtom);
95
- const isResponseStreaming = false; // useAtomValue(isResponseStreamingAtom);
96
- const isPendingResponse = false; // useAtomValue(isPendingResponseAtom);
97
- const isInitialized = false; // useAtomValue(isInitializedAtom);
98
-
99
- const { logPageVisit, onSuggestionClicked, onTypedMessageSubmitted, onFormResponseSubmitted } =
100
- useSalesAgentChatAPI();
148
+ const isResponseStreaming = useAtomValue(responseStreamingAtom);
149
+ const isPendingResponse = useAtomValue(pendingResponseAtom);
150
+ const isInitialized = useAtomValue(initializedAtom);
151
+ const {
152
+ logPageVisit,
153
+ logUserEvent,
154
+ onSuggestionClicked,
155
+ onTypedMessageSubmitted,
156
+ onFormResponseSubmitted,
157
+ } = useSalesAgentChatAPI();
101
158
 
102
159
  const salesAgent: SalesAgent = useMemo(() => {
103
160
  return {
104
161
  messages,
105
162
  suggestions,
106
163
  pendingMessages,
164
+ isInitialized,
107
165
  isResponseStreaming,
108
166
  isPendingResponse,
109
- isInitialized,
110
167
  logPageVisit,
168
+ logUserEvent,
111
169
  onSuggestionClicked,
112
170
  onTypedMessageSubmitted,
113
171
  onFormResponseSubmitted,
@@ -116,10 +174,11 @@ export const useSalesAgent = (): SalesAgent => {
116
174
  messages,
117
175
  suggestions,
118
176
  pendingMessages,
177
+ isInitialized,
119
178
  isResponseStreaming,
120
179
  isPendingResponse,
121
- isInitialized,
122
180
  logPageVisit,
181
+ logUserEvent,
123
182
  onSuggestionClicked,
124
183
  onTypedMessageSubmitted,
125
184
  onFormResponseSubmitted,
@@ -7,15 +7,23 @@ import Logger from 'src/application/logging/logger';
7
7
  import {
8
8
  GenerationParams,
9
9
  Message,
10
+ MessageRole,
10
11
  MessageType,
11
12
  NextMessageRequest,
12
13
  Response,
13
14
  UserEvent,
14
15
  } from 'src/application/models';
15
16
  import { messageFromResponse } from 'src/application/utils';
16
- import { messagesAtom, requestFailureAtom } from 'src/atoms/chat/chatState';
17
+ import {
18
+ messagesAtom,
19
+ pendingResponseAtom,
20
+ requestFailureAtom,
21
+ responseStreamingAtom,
22
+ suggestionsAtom,
23
+ } from 'src/atoms/chat/chatState';
17
24
  import { useMessageInterceptor } from 'src/interceptors/useMessageInterceptor';
18
25
  import { useFeatureFlagService } from '../featureFlagServiceContext';
26
+ import { StatusCodeError } from './statusCodeError';
19
27
 
20
28
  interface SalesAgentService {
21
29
  createResponsePayload: (payload: {
@@ -23,6 +31,8 @@ interface SalesAgentService {
23
31
  generationParams?: GenerationParams;
24
32
  }) => NextMessageRequest;
25
33
  getStreamingResponses: (payload: NextMessageRequest) => Promise<void>;
34
+ getSuggestions: (payload: NextMessageRequest) => Promise<void>;
35
+ hydrateMessages: () => Promise<void>;
26
36
  }
27
37
 
28
38
  export const getQueryParam = (key: string): string | null => {
@@ -30,6 +40,44 @@ export const getQueryParam = (key: string): string | null => {
30
40
  return urlObj.searchParams.get(key);
31
41
  };
32
42
 
43
+ const getErrorMessage = (_error: unknown): string => {
44
+ if (_error instanceof StatusCodeError) {
45
+ if (_error.statusCode === 423) {
46
+ return 'Due to violation of terms and services, this session has been terminated.';
47
+ }
48
+ // Keeping the 429 error messages as the generic error message for now.
49
+ // if (_error.statusCode === 429) {
50
+ // return "I'm sorry! The system is busy right now. Please try again in a few minutes.";
51
+ // }
52
+ }
53
+
54
+ return "I'm sorry! I'm having trouble right now. Please refresh the page or try again in a moment.";
55
+ };
56
+
57
+ const handleStreamingError = (
58
+ _error: unknown,
59
+ setRequestFailure: (failed: boolean) => void,
60
+ setMessages: (updater: (prev: Message[][]) => Message[][]) => void,
61
+ ) => {
62
+ setRequestFailure(true);
63
+
64
+ const errorMessage = getErrorMessage(_error);
65
+ setMessages(prev => [
66
+ ...prev,
67
+ [
68
+ {
69
+ id: uuid(),
70
+ role: MessageRole.Assistant,
71
+ type: MessageType.Text,
72
+ createdAt: new Date().toISOString(),
73
+ metadata: {
74
+ content: errorMessage,
75
+ },
76
+ },
77
+ ],
78
+ ]);
79
+ };
80
+
33
81
  const updateMessageState = (
34
82
  message: Message,
35
83
  lastMessage: Message,
@@ -64,6 +112,7 @@ const processStreamingResponse = async (
64
112
  stream: AsyncIterable<Response>,
65
113
  messageInterceptor: { intercept: (response?: Response) => boolean | undefined },
66
114
  setMessages: (updater: (prev: Message[][]) => Message[][]) => void,
115
+ setResponseStreaming: (responseStreaming: boolean) => void,
67
116
  ): Promise<void> => {
68
117
  let lastMessage: Message | undefined;
69
118
 
@@ -76,6 +125,9 @@ const processStreamingResponse = async (
76
125
  if (!response) {
77
126
  throw new Error('No response from stream');
78
127
  }
128
+
129
+ setResponseStreaming(true);
130
+
79
131
  const message = messageFromResponse(response);
80
132
  if (!message) {
81
133
  throw new Error('Failed to transform API response to client message');
@@ -102,6 +154,9 @@ const processStreamingResponse = async (
102
154
  export const useSalesAgentService: () => SalesAgentService = () => {
103
155
  const setRequestFailure = useSetAtom(requestFailureAtom);
104
156
  const setMessages = useSetAtom(messagesAtom);
157
+ const setSuggestions = useSetAtom(suggestionsAtom);
158
+ const setPendingResponse = useSetAtom(pendingResponseAtom);
159
+ const setResponseStreaming = useSetAtom(responseStreamingAtom);
105
160
  const messageInterceptor = useMessageInterceptor();
106
161
 
107
162
  const featureFlagService = useFeatureFlagService();
@@ -139,13 +194,19 @@ export const useSalesAgentService: () => SalesAgentService = () => {
139
194
  async (payload: NextMessageRequest): Promise<void> => {
140
195
  // logPerfMetric(PerfMetricsEvents.FirstResponseStarted);
141
196
  // const startTime = Date.now();
197
+ setPendingResponse(true);
142
198
  console.log('getStreamingResponses payload', JSON.stringify(payload, null, 2));
143
199
  const stream = CommerceApiClient.getNextResponseStreaming(payload);
144
200
 
145
201
  try {
146
202
  setRequestFailure(false);
147
203
 
148
- await processStreamingResponse(stream, messageInterceptor, setMessages);
204
+ await processStreamingResponse(
205
+ stream,
206
+ messageInterceptor,
207
+ setMessages,
208
+ setResponseStreaming,
209
+ );
149
210
 
150
211
  // TODO: Add support for the Chrome Extension communication
151
212
  // Log successful next_responses call
@@ -176,9 +237,11 @@ export const useSalesAgentService: () => SalesAgentService = () => {
176
237
  // },
177
238
  // });
178
239
 
179
- // handleStreamingError(e, setRequestFailure, setMessages);
240
+ handleStreamingError(e, setRequestFailure, setMessages);
180
241
  throw e;
181
- // } finally {
242
+ } finally {
243
+ setPendingResponse(false);
244
+ setResponseStreaming(false);
182
245
  // logPerfMetric(PerfMetricsEvents.FirstResponseCompleted);
183
246
  }
184
247
  },
@@ -187,11 +250,35 @@ export const useSalesAgentService: () => SalesAgentService = () => {
187
250
  setRequestFailure,
188
251
  messageInterceptor,
189
252
  setMessages,
253
+ setPendingResponse,
190
254
  ],
191
255
  );
192
256
 
257
+ const getSuggestions = useCallback(
258
+ async (payload: NextMessageRequest): Promise<void> => {
259
+ const newSuggestions = await CommerceApiClient.getNextSuggestions(payload);
260
+ setSuggestions(newSuggestions);
261
+ },
262
+ [setSuggestions],
263
+ );
264
+
265
+ const hydrateMessages = useCallback(async () => {
266
+ const { orgId, chatId, userId } = context;
267
+ console.log('hydrateMessages', orgId, chatId, userId, context);
268
+ const { messages: existingMessages, userEvents } = await CommerceApiClient.getResponses(
269
+ orgId,
270
+ chatId,
271
+ userId,
272
+ );
273
+ console.log('existingMessages', existingMessages);
274
+ console.log('userEvents', userEvents);
275
+ setMessages([...existingMessages]);
276
+ }, [context, setMessages]);
277
+
193
278
  return {
194
279
  createResponsePayload,
195
280
  getStreamingResponses,
281
+ getSuggestions,
282
+ hydrateMessages,
196
283
  };
197
284
  };
@@ -0,0 +1,10 @@
1
+ import { ResponseError } from '@spiffy-ai/commerce-api-client/dist/runtime';
2
+
3
+ export class StatusCodeError extends ResponseError {
4
+ public readonly statusCode: number;
5
+
6
+ constructor(message: string, statusCode: number, response: Response) {
7
+ super(response, message);
8
+ this.statusCode = statusCode;
9
+ }
10
+ }
@@ -8,7 +8,10 @@ import {
8
8
  import { LocalStorageProvider } from 'src/contexts/localStorageContext/localStorageContext';
9
9
  import { GraphQLProvider } from 'src/contexts/graphqlContext/graphqlContext';
10
10
  import { UserIdentityProvider } from 'src/contexts/userIdentityContext/userIdentityContext';
11
- import { FeatureFlagServiceProvider } from 'src/contexts/featureFlagServiceContext/featureFlagServiceContext';
11
+ import {
12
+ FeatureFlagService,
13
+ FeatureFlagServiceProvider,
14
+ } from 'src/contexts/featureFlagServiceContext/featureFlagServiceContext';
12
15
  import { baseUrlAtom } from 'src/atoms/envive/enviveConfig';
13
16
  import {
14
17
  clearSearchServiceFunction,
@@ -56,6 +59,9 @@ vi.mock('@spiffy-ai/commerce-api-client', () => {
56
59
  };
57
60
  });
58
61
 
62
+ // FeatureFlagService
63
+ const testFeatureFlagService = new FeatureFlagService([]);
64
+
59
65
  // Mock useAppDetails
60
66
  vi.mock('src/hooks/AppDetails/useAppDetails', () => ({
61
67
  useAppDetails: vi.fn(),
@@ -192,7 +198,7 @@ const TestWrapper: React.FC<{
192
198
  <LocalStorageProvider>
193
199
  <GraphQLProvider>
194
200
  <UserIdentityProvider>
195
- <FeatureFlagServiceProvider featureGates={[]}>
201
+ <FeatureFlagServiceProvider featureFlagService={testFeatureFlagService}>
196
202
  <SearchProvider>{children}</SearchProvider>
197
203
  </FeatureFlagServiceProvider>
198
204
  </UserIdentityProvider>