@envive-ai/react-hooks 0.3.3 → 0.3.4

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 (462) 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 +11 -3
  4. package/dist/application/commerce-api.js +11 -3
  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 +18 -0
  8. package/dist/application/models/chatElementDisplayLocationV3.d.cts +15 -0
  9. package/dist/application/models/chatElementDisplayLocationV3.d.ts +15 -0
  10. package/dist/application/models/chatElementDisplayLocationV3.js +17 -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 +2 -1
  16. package/dist/application/models/featureGates.d.cts +2 -1
  17. package/dist/application/models/featureGates.d.ts +2 -1
  18. package/dist/application/models/featureGates.js +2 -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/index.cjs +3 -0
  24. package/dist/application/models/index.d.cts +4 -3
  25. package/dist/application/models/index.d.ts +4 -3
  26. package/dist/application/models/index.js +3 -2
  27. package/dist/application/models/utils/snakeToCamelTransformer.cjs +2 -1
  28. package/dist/application/models/utils/snakeToCamelTransformer.d.cts +7 -2
  29. package/dist/application/models/utils/snakeToCamelTransformer.d.ts +7 -2
  30. package/dist/application/models/utils/snakeToCamelTransformer.js +2 -2
  31. package/dist/application/utils/analyticsUtils.cjs +5 -4
  32. package/dist/application/utils/analyticsUtils.d.cts +1 -1
  33. package/dist/application/utils/analyticsUtils.d.ts +1 -1
  34. package/dist/application/utils/analyticsUtils.js +3 -2
  35. package/dist/application/utils/elementObserver.cjs +1 -1
  36. package/dist/application/utils/elementObserver.js +1 -1
  37. package/dist/application/utils/index.d.cts +1 -1
  38. package/dist/application/utils/index.d.ts +1 -1
  39. package/dist/application/utils/widgetTextFromApiWidgetTextResponse.cjs +14 -0
  40. package/dist/application/utils/widgetTextFromApiWidgetTextResponse.js +13 -0
  41. package/dist/application/utils/widgetTextRequestToApiRequest.cjs +30 -0
  42. package/dist/application/utils/widgetTextRequestToApiRequest.js +29 -0
  43. package/dist/atoms/amplitude/amplitudeTrackEventAtom.cjs +1 -1
  44. package/dist/atoms/amplitude/amplitudeTrackEventAtom.js +1 -1
  45. package/dist/atoms/app/index.cjs +4 -3
  46. package/dist/atoms/app/index.d.cts +3 -3
  47. package/dist/atoms/app/index.d.ts +9 -9
  48. package/dist/atoms/app/index.js +4 -5
  49. package/dist/atoms/app/variant.cjs +5 -1
  50. package/dist/atoms/app/variant.d.cts +11 -4
  51. package/dist/atoms/app/variant.d.ts +11 -4
  52. package/dist/atoms/app/variant.js +4 -2
  53. package/dist/atoms/chat/chatState.cjs +9 -4
  54. package/dist/atoms/chat/chatState.d.cts +25 -18
  55. package/dist/atoms/chat/chatState.d.ts +25 -18
  56. package/dist/atoms/chat/chatState.js +6 -3
  57. package/dist/atoms/chat/form.cjs +4 -4
  58. package/dist/atoms/chat/form.d.cts +2 -2
  59. package/dist/atoms/chat/form.d.ts +2 -2
  60. package/dist/atoms/chat/index.cjs +32 -30
  61. package/dist/atoms/chat/index.d.cts +4 -4
  62. package/dist/atoms/chat/index.d.ts +5 -5
  63. package/dist/atoms/chat/index.js +2 -2
  64. package/dist/atoms/chat/lastMessage.cjs +4 -4
  65. package/dist/atoms/chat/lastMessage.d.cts +2 -2
  66. package/dist/atoms/chat/lastMessage.d.ts +2 -2
  67. package/dist/atoms/chat/performanceMetrics.d.cts +6 -6
  68. package/dist/atoms/chat/performanceMetrics.d.ts +6 -6
  69. package/dist/atoms/chat/renderedWidgetRefs.d.cts +2 -2
  70. package/dist/atoms/chat/renderedWidgetRefs.d.ts +2 -2
  71. package/dist/atoms/chat/replies.cjs +9 -8
  72. package/dist/atoms/chat/replies.d.cts +3 -3
  73. package/dist/atoms/chat/replies.d.ts +3 -3
  74. package/dist/atoms/chat/replies.js +3 -2
  75. package/dist/atoms/chat/suggestions.cjs +6 -6
  76. package/dist/atoms/chat/suggestions.d.cts +2 -2
  77. package/dist/atoms/chat/suggestions.d.ts +2 -2
  78. package/dist/atoms/envive/enviveConfig.cjs +5 -2
  79. package/dist/atoms/envive/enviveConfig.js +5 -2
  80. package/dist/atoms/globalSearch/globalSearch.d.cts +5 -5
  81. package/dist/atoms/globalSearch/globalSearch.d.ts +5 -5
  82. package/dist/atoms/org/customerService.d.cts +6 -6
  83. package/dist/atoms/org/customerService.d.ts +6 -6
  84. package/dist/atoms/org/graphqlConfig.cjs +1 -3
  85. package/dist/atoms/org/graphqlConfig.d.cts +6 -9
  86. package/dist/atoms/org/graphqlConfig.d.ts +6 -9
  87. package/dist/atoms/org/graphqlConfig.js +2 -3
  88. package/dist/atoms/org/index.cjs +2 -3
  89. package/dist/atoms/org/index.d.cts +2 -2
  90. package/dist/atoms/org/index.d.ts +2 -2
  91. package/dist/atoms/org/index.js +2 -2
  92. package/dist/atoms/org/newOrgConfigAtom.d.cts +2 -2
  93. package/dist/atoms/org/newOrgConfigAtom.d.ts +2 -2
  94. package/dist/atoms/org/orgAnalyticsConfig.d.cts +5 -5
  95. package/dist/atoms/org/orgAnalyticsConfig.d.ts +5 -5
  96. package/dist/atoms/search/chatSearch.cjs +7 -7
  97. package/dist/atoms/search/chatSearch.d.cts +20 -18
  98. package/dist/atoms/search/chatSearch.d.ts +20 -18
  99. package/dist/atoms/search/searchAPI.cjs +1 -1
  100. package/dist/atoms/search/searchAPI.d.cts +15 -14
  101. package/dist/atoms/search/searchAPI.d.ts +15 -14
  102. package/dist/atoms/search/searchAPI.js +1 -1
  103. package/dist/atoms/search/utils.d.cts +1 -1
  104. package/dist/atoms/widget/chatPreviewLoading.cjs +23 -0
  105. package/dist/atoms/widget/chatPreviewLoading.d.cts +26 -0
  106. package/dist/atoms/widget/chatPreviewLoading.d.ts +26 -0
  107. package/dist/atoms/widget/chatPreviewLoading.js +22 -0
  108. package/dist/atoms/widget/index.cjs +3 -0
  109. package/dist/atoms/widget/index.d.cts +2 -0
  110. package/dist/atoms/widget/index.d.ts +2 -0
  111. package/dist/atoms/widget/index.js +3 -0
  112. package/dist/contexts/amplitudeContext/amplitudeContext.cjs +40 -227
  113. package/dist/contexts/amplitudeContext/amplitudeContext.d.cts +4 -39
  114. package/dist/contexts/amplitudeContext/amplitudeContext.d.ts +4 -39
  115. package/dist/contexts/amplitudeContext/amplitudeContext.js +44 -230
  116. package/dist/contexts/amplitudeContext/index.cjs +2 -1
  117. package/dist/contexts/amplitudeContext/index.d.cts +2 -1
  118. package/dist/contexts/amplitudeContext/index.d.ts +2 -1
  119. package/dist/contexts/amplitudeContext/index.js +2 -1
  120. package/dist/contexts/enviveConfigContext/enviveConfigContext.cjs +3 -2
  121. package/dist/contexts/enviveConfigContext/enviveConfigContext.d.cts +2 -1
  122. package/dist/contexts/enviveConfigContext/enviveConfigContext.d.ts +2 -1
  123. package/dist/contexts/enviveConfigContext/enviveConfigContext.js +3 -2
  124. package/dist/contexts/enviveContext/enviveContext.cjs +67 -16
  125. package/dist/contexts/enviveContext/enviveContext.d.cts +9 -1
  126. package/dist/contexts/enviveContext/enviveContext.d.ts +9 -1
  127. package/dist/contexts/enviveContext/enviveContext.js +69 -18
  128. package/dist/contexts/enviveCssContext/enviveCssContext.cjs +96 -24
  129. package/dist/contexts/enviveCssContext/enviveCssContext.js +96 -24
  130. package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.cjs +5 -7
  131. package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.d.cts +2 -2
  132. package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.d.ts +2 -2
  133. package/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.js +5 -7
  134. package/dist/contexts/graphqlContext/graphqlContext.cjs +69 -7
  135. package/dist/contexts/graphqlContext/graphqlContext.d.cts +17 -5
  136. package/dist/contexts/graphqlContext/graphqlContext.d.ts +17 -5
  137. package/dist/contexts/graphqlContext/graphqlContext.js +69 -7
  138. package/dist/contexts/graphqlContext/index.d.cts +2 -2
  139. package/dist/contexts/graphqlContext/index.d.ts +2 -2
  140. package/dist/contexts/graphqlContext/mockV3Config.cjs +208 -0
  141. package/dist/contexts/graphqlContext/mockV3Config.js +207 -0
  142. package/dist/contexts/hardcopyContext/hardcopyContext.cjs +119 -12
  143. package/dist/contexts/hardcopyContext/hardcopyContext.d.cts +3 -2
  144. package/dist/contexts/hardcopyContext/hardcopyContext.d.ts +3 -2
  145. package/dist/contexts/hardcopyContext/hardcopyContext.js +120 -13
  146. package/dist/contexts/newOrgConfigContext/newOrgConfigContext.cjs +7 -8
  147. package/dist/contexts/newOrgConfigContext/newOrgConfigContext.js +8 -9
  148. package/dist/contexts/pageContext/mapping.cjs +5 -1
  149. package/dist/contexts/pageContext/mapping.d.cts +1 -1
  150. package/dist/contexts/pageContext/mapping.d.ts +1 -1
  151. package/dist/contexts/pageContext/mapping.js +5 -1
  152. package/dist/contexts/pageContext/pageContext.cjs +29 -9
  153. package/dist/contexts/pageContext/pageContext.d.cts +5 -2
  154. package/dist/contexts/pageContext/pageContext.d.ts +5 -2
  155. package/dist/contexts/pageContext/pageContext.js +30 -10
  156. package/dist/contexts/pageContext/types.d.cts +5 -1
  157. package/dist/contexts/pageContext/types.d.ts +5 -1
  158. package/dist/contexts/salesAgentContext/chatAPI.cjs +6 -3
  159. package/dist/contexts/salesAgentContext/chatAPI.js +6 -3
  160. package/dist/contexts/salesAgentContext/salesAgentContext.cjs +65 -25
  161. package/dist/contexts/salesAgentContext/salesAgentContext.js +64 -24
  162. package/dist/contexts/salesAgentContext/salesAgentService.cjs +43 -7
  163. package/dist/contexts/salesAgentContext/salesAgentService.js +42 -6
  164. package/dist/contexts/salesAgentContext/statusCodeError.cjs +14 -0
  165. package/dist/contexts/salesAgentContext/statusCodeError.js +13 -0
  166. package/dist/contexts/searchContext/searchContext.cjs +1 -1
  167. package/dist/contexts/searchContext/searchContext.js +1 -1
  168. package/dist/contexts/systemSettingsContext/systemSettingsContext.d.cts +2 -2
  169. package/dist/contexts/types.cjs +2 -13
  170. package/dist/contexts/types.d.cts +12 -16
  171. package/dist/contexts/types.d.ts +12 -16
  172. package/dist/contexts/types.js +3 -13
  173. package/dist/contexts/typesV3.cjs +125 -0
  174. package/dist/contexts/typesV3.d.cts +246 -0
  175. package/dist/contexts/typesV3.d.ts +246 -0
  176. package/dist/contexts/typesV3.js +113 -0
  177. package/dist/contexts/uiConfigContext/index.cjs +4 -0
  178. package/dist/contexts/uiConfigContext/index.d.cts +2 -0
  179. package/dist/contexts/uiConfigContext/index.d.ts +2 -0
  180. package/dist/contexts/uiConfigContext/index.js +3 -0
  181. package/dist/contexts/uiConfigContext/uiConfigContext.cjs +44 -0
  182. package/dist/contexts/uiConfigContext/uiConfigContext.d.cts +15 -0
  183. package/dist/contexts/uiConfigContext/uiConfigContext.d.ts +15 -0
  184. package/dist/contexts/uiConfigContext/uiConfigContext.js +42 -0
  185. package/dist/contexts/userIdentityContext/userIdentityContext.cjs +1 -1
  186. package/dist/contexts/userIdentityContext/userIdentityContext.js +1 -1
  187. package/dist/contexts/widgetConfigContext/index.cjs +4 -0
  188. package/dist/contexts/widgetConfigContext/index.d.cts +2 -0
  189. package/dist/contexts/widgetConfigContext/index.d.ts +2 -0
  190. package/dist/contexts/widgetConfigContext/index.js +3 -0
  191. package/dist/contexts/widgetConfigContext/widgetConfigContext.cjs +67 -0
  192. package/dist/contexts/widgetConfigContext/widgetConfigContext.d.cts +19 -0
  193. package/dist/contexts/widgetConfigContext/widgetConfigContext.d.ts +19 -0
  194. package/dist/contexts/widgetConfigContext/widgetConfigContext.js +65 -0
  195. package/dist/hooks/AmplitudeOperations/useAmplitudeOperations.d.cts +1 -1
  196. package/dist/hooks/AmplitudeOperations/useAmplitudeOperations.d.ts +1 -1
  197. package/dist/hooks/AppDetails/useAppDetails.cjs +2 -4
  198. package/dist/hooks/AppDetails/useAppDetails.js +3 -5
  199. package/dist/hooks/ChatToggle/useChatToggle.cjs +6 -5
  200. package/dist/hooks/ChatToggle/useChatToggle.js +3 -2
  201. package/dist/hooks/ChatToggleAnalytics/useChatToggleAnalytics.cjs +3 -3
  202. package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.cts +2 -2
  203. package/dist/hooks/GrabAndScroll/useGrabAndScroll.d.ts +3 -3
  204. package/dist/hooks/GraphQLConfig/index.cjs +1 -1
  205. package/dist/hooks/GraphQLConfig/index.d.cts +2 -2
  206. package/dist/hooks/GraphQLConfig/index.d.ts +2 -2
  207. package/dist/hooks/GraphQLConfig/index.js +2 -2
  208. package/dist/hooks/GraphQLConfig/useGraphQLConfig.cjs +27 -24
  209. package/dist/hooks/GraphQLConfig/useGraphQLConfig.d.cts +5 -4
  210. package/dist/hooks/GraphQLConfig/useGraphQLConfig.d.ts +5 -4
  211. package/dist/hooks/GraphQLConfig/useGraphQLConfig.js +27 -24
  212. package/dist/hooks/Search/useSearch.cjs +10 -9
  213. package/dist/hooks/Search/useSearch.js +6 -5
  214. package/dist/hooks/Search/useSearchInput.cjs +4 -4
  215. package/dist/hooks/Search/useSearchInput.js +1 -1
  216. package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.cjs +5 -4
  217. package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.d.cts +1 -1
  218. package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.d.ts +1 -1
  219. package/dist/hooks/TrackComponentVisibleEvent/useTrackComponentVisibleEvent.js +3 -2
  220. package/dist/hooks/UpdateAnalyticsProps/useUpdateAnalyticsProps.cjs +3 -2
  221. package/dist/hooks/UpdateAnalyticsProps/useUpdateAnalyticsProps.js +3 -2
  222. package/dist/hooks/utils.d.cts +1 -1
  223. package/dist/node_modules/classnames/index.cjs +52 -0
  224. package/dist/node_modules/classnames/index.js +49 -0
  225. package/dist/packages/components-v3/dist/Container/Container.cjs +11 -0
  226. package/dist/packages/components-v3/dist/Container/Container.js +12 -0
  227. package/dist/packages/components-v3/dist/Container/hooks/useGetCenterContentProperties.cjs +1 -0
  228. package/dist/packages/components-v3/dist/Container/hooks/useGetCenterContentProperties.js +3 -0
  229. package/dist/packages/components-v3/dist/Container/hooks/useGetFluidProperties.cjs +1 -0
  230. package/dist/packages/components-v3/dist/Container/hooks/useGetFluidProperties.js +3 -0
  231. package/dist/packages/components-v3/dist/Container/index.cjs +1 -0
  232. package/dist/packages/components-v3/dist/Container/index.js +3 -0
  233. package/dist/packages/components-v3/dist/Image/Image.cjs +16 -0
  234. package/dist/packages/components-v3/dist/Image/Image.js +17 -0
  235. package/dist/packages/components-v3/dist/Image/hooks/useGetAccessibilityProperties.cjs +1 -0
  236. package/dist/packages/components-v3/dist/Image/hooks/useGetAccessibilityProperties.js +3 -0
  237. package/dist/packages/components-v3/dist/Image/hooks/useGetAspectRatioProperties.cjs +1 -0
  238. package/dist/packages/components-v3/dist/Image/hooks/useGetAspectRatioProperties.js +3 -0
  239. package/dist/packages/components-v3/dist/Image/hooks/useGetObjectFitProperties.cjs +1 -0
  240. package/dist/packages/components-v3/dist/Image/hooks/useGetObjectFitProperties.js +3 -0
  241. package/dist/packages/components-v3/dist/Image/hooks/useGetRoundedProperties.cjs +1 -0
  242. package/dist/packages/components-v3/dist/Image/hooks/useGetRoundedProperties.js +3 -0
  243. package/dist/packages/components-v3/dist/Image/hooks/useGetSkeletonProperties.cjs +1 -0
  244. package/dist/packages/components-v3/dist/Image/hooks/useGetSkeletonProperties.js +3 -0
  245. package/dist/packages/components-v3/dist/Image/hooks/useGetWidthProperties.cjs +1 -0
  246. package/dist/packages/components-v3/dist/Image/hooks/useGetWidthProperties.js +3 -0
  247. package/dist/packages/components-v3/dist/Image/hooks/useHandleImageLoading.cjs +1 -0
  248. package/dist/packages/components-v3/dist/Image/hooks/useHandleImageLoading.js +3 -0
  249. package/dist/packages/components-v3/dist/ImageGallery/ImageGallery.cjs +2 -0
  250. package/dist/packages/components-v3/dist/ImageGallery/ImageGallery.js +4 -0
  251. package/dist/packages/components-v3/dist/ImageGallery/components/ImageItem.cjs +2 -0
  252. package/dist/packages/components-v3/dist/ImageGallery/components/ImageItem.js +4 -0
  253. package/dist/packages/components-v3/dist/ImageGallery/components/Layout.cjs +15 -0
  254. package/dist/packages/components-v3/dist/ImageGallery/components/Layout.js +16 -0
  255. package/dist/packages/components-v3/dist/ImageGallery/components/NormalLayout.cjs +4 -0
  256. package/dist/packages/components-v3/dist/ImageGallery/components/NormalLayout.js +4 -0
  257. package/dist/packages/components-v3/dist/ImageGallery/components/OverlappedLayout.cjs +1 -0
  258. package/dist/packages/components-v3/dist/ImageGallery/components/OverlappedLayout.js +3 -0
  259. package/dist/packages/components-v3/dist/ImageGallery/components/index.cjs +4 -0
  260. package/dist/packages/components-v3/dist/ImageGallery/components/index.js +6 -0
  261. package/dist/packages/components-v3/dist/ImageGallery/hooks/useGetContainerProperties.cjs +1 -0
  262. package/dist/packages/components-v3/dist/ImageGallery/hooks/useGetContainerProperties.js +3 -0
  263. package/dist/packages/components-v3/dist/ImageGallery/index.cjs +2 -0
  264. package/dist/packages/components-v3/dist/ImageGallery/index.js +4 -0
  265. package/dist/packages/components-v3/dist/ImageGallery/types/types.cjs +13 -0
  266. package/dist/packages/components-v3/dist/ImageGallery/types/types.js +12 -0
  267. package/dist/packages/components-v3/dist/PromptButton/PromptButton.cjs +12 -0
  268. package/dist/packages/components-v3/dist/PromptButton/PromptButton.js +13 -0
  269. package/dist/packages/components-v3/dist/PromptButton/components/Icon.cjs +1 -0
  270. package/dist/packages/components-v3/dist/PromptButton/components/Icon.js +3 -0
  271. package/dist/packages/components-v3/dist/PromptButton/components/Label.cjs +3 -0
  272. package/dist/packages/components-v3/dist/PromptButton/components/Label.js +5 -0
  273. package/dist/packages/components-v3/dist/PromptButton/components/Layout.cjs +12 -0
  274. package/dist/packages/components-v3/dist/PromptButton/components/Layout.js +13 -0
  275. package/dist/packages/components-v3/dist/PromptButton/components/Loading.cjs +9 -0
  276. package/dist/packages/components-v3/dist/PromptButton/components/Loading.js +10 -0
  277. package/dist/packages/components-v3/dist/PromptButton/components/index.cjs +4 -0
  278. package/dist/packages/components-v3/dist/PromptButton/components/index.js +6 -0
  279. package/dist/packages/components-v3/dist/PromptButton/hooks/useGetBoldTextProperties.cjs +1 -0
  280. package/dist/packages/components-v3/dist/PromptButton/hooks/useGetBoldTextProperties.js +3 -0
  281. package/dist/packages/components-v3/dist/PromptButton/hooks/useGetLayoutBaseProperties.cjs +8 -0
  282. package/dist/packages/components-v3/dist/PromptButton/hooks/useGetLayoutBaseProperties.js +9 -0
  283. package/dist/packages/components-v3/dist/PromptButton/index.cjs +2 -0
  284. package/dist/packages/components-v3/dist/PromptButton/index.js +4 -0
  285. package/dist/packages/components-v3/dist/PromptButton/types/index.cjs +13 -0
  286. package/dist/packages/components-v3/dist/PromptButton/types/index.js +12 -0
  287. package/dist/packages/components-v3/dist/PromptCarousel/PromptCarousel.cjs +12 -0
  288. package/dist/packages/components-v3/dist/PromptCarousel/PromptCarousel.js +14 -0
  289. package/dist/packages/components-v3/dist/PromptCarousel/components/BlockScrollContainer.cjs +9 -0
  290. package/dist/packages/components-v3/dist/PromptCarousel/components/BlockScrollContainer.js +10 -0
  291. package/dist/packages/components-v3/dist/PromptCarousel/components/ButtonContainerRow.cjs +11 -0
  292. package/dist/packages/components-v3/dist/PromptCarousel/components/ButtonContainerRow.js +12 -0
  293. package/dist/packages/components-v3/dist/PromptCarousel/components/CarouselContentWithBlockScroll.cjs +4 -0
  294. package/dist/packages/components-v3/dist/PromptCarousel/components/CarouselContentWithBlockScroll.js +6 -0
  295. package/dist/packages/components-v3/dist/PromptCarousel/components/CarouselContentWithRowScroll.cjs +4 -0
  296. package/dist/packages/components-v3/dist/PromptCarousel/components/CarouselContentWithRowScroll.js +6 -0
  297. package/dist/packages/components-v3/dist/PromptCarousel/components/index.cjs +3 -0
  298. package/dist/packages/components-v3/dist/PromptCarousel/components/index.js +5 -0
  299. package/dist/packages/components-v3/dist/PromptCarousel/hooks/index.cjs +5 -0
  300. package/dist/packages/components-v3/dist/PromptCarousel/hooks/index.js +7 -0
  301. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useButtonScrollPosition.cjs +1 -0
  302. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useButtonScrollPosition.js +3 -0
  303. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useCarouselAnimation.cjs +3 -0
  304. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useCarouselAnimation.js +5 -0
  305. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useCarouselButtons.cjs +1 -0
  306. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useCarouselButtons.js +3 -0
  307. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useCarouselRefs.cjs +1 -0
  308. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useCarouselRefs.js +3 -0
  309. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useHorizontalScrollAnimation.cjs +1 -0
  310. package/dist/packages/components-v3/dist/PromptCarousel/hooks/useHorizontalScrollAnimation.js +3 -0
  311. package/dist/packages/components-v3/dist/PromptCarousel/index.cjs +2 -0
  312. package/dist/packages/components-v3/dist/PromptCarousel/index.js +4 -0
  313. package/dist/packages/components-v3/dist/PromptCarousel/types/types.cjs +19 -0
  314. package/dist/packages/components-v3/dist/PromptCarousel/types/types.js +17 -0
  315. package/dist/packages/components-v3/dist/Stack/Stack.cjs +36 -0
  316. package/dist/packages/components-v3/dist/Stack/Stack.js +36 -0
  317. package/dist/packages/components-v3/dist/Stack/hooks/useFormatStackChildren.cjs +27 -0
  318. package/dist/packages/components-v3/dist/Stack/hooks/useFormatStackChildren.js +26 -0
  319. package/dist/packages/components-v3/dist/Stack/hooks/useGetAlignProperties.cjs +20 -0
  320. package/dist/packages/components-v3/dist/Stack/hooks/useGetAlignProperties.js +19 -0
  321. package/dist/packages/components-v3/dist/Stack/hooks/useGetDirectionProperties.cjs +19 -0
  322. package/dist/packages/components-v3/dist/Stack/hooks/useGetDirectionProperties.js +18 -0
  323. package/dist/packages/components-v3/dist/Stack/hooks/useGetGapProperties.cjs +16 -0
  324. package/dist/packages/components-v3/dist/Stack/hooks/useGetGapProperties.js +15 -0
  325. package/dist/packages/components-v3/dist/Stack/hooks/useGetJustifyProperties.cjs +21 -0
  326. package/dist/packages/components-v3/dist/Stack/hooks/useGetJustifyProperties.js +20 -0
  327. package/dist/packages/components-v3/dist/Stack/hooks/useGetStyleProperties.cjs +38 -0
  328. package/dist/packages/components-v3/dist/Stack/hooks/useGetStyleProperties.js +38 -0
  329. package/dist/packages/components-v3/dist/Stack/hooks/useGetWrapProperties.cjs +13 -0
  330. package/dist/packages/components-v3/dist/Stack/hooks/useGetWrapProperties.js +12 -0
  331. package/dist/packages/components-v3/dist/Stack/index.cjs +1 -0
  332. package/dist/packages/components-v3/dist/Stack/index.js +3 -0
  333. package/dist/packages/components-v3/dist/Stack/utils/constants.cjs +42 -0
  334. package/dist/packages/components-v3/dist/Stack/utils/constants.js +41 -0
  335. package/dist/packages/components-v3/dist/Typography/Typography.cjs +15 -0
  336. package/dist/packages/components-v3/dist/Typography/Typography.js +16 -0
  337. package/dist/packages/components-v3/dist/Typography/hooks/useGetAccessibilityAttributes.cjs +1 -0
  338. package/dist/packages/components-v3/dist/Typography/hooks/useGetAccessibilityAttributes.js +3 -0
  339. package/dist/packages/components-v3/dist/Typography/hooks/useGetAlignProperties.cjs +1 -0
  340. package/dist/packages/components-v3/dist/Typography/hooks/useGetAlignProperties.js +3 -0
  341. package/dist/packages/components-v3/dist/Typography/hooks/useGetColorProperties.cjs +1 -0
  342. package/dist/packages/components-v3/dist/Typography/hooks/useGetColorProperties.js +3 -0
  343. package/dist/packages/components-v3/dist/Typography/hooks/useGetNoWrapProperties.cjs +1 -0
  344. package/dist/packages/components-v3/dist/Typography/hooks/useGetNoWrapProperties.js +3 -0
  345. package/dist/packages/components-v3/dist/Typography/hooks/useGetNumberOfLinesProperties.cjs +1 -0
  346. package/dist/packages/components-v3/dist/Typography/hooks/useGetNumberOfLinesProperties.js +3 -0
  347. package/dist/packages/components-v3/dist/Typography/hooks/useGetVariantProperties.cjs +1 -0
  348. package/dist/packages/components-v3/dist/Typography/hooks/useGetVariantProperties.js +3 -0
  349. package/dist/packages/components-v3/dist/Typography/index.cjs +1 -0
  350. package/dist/packages/components-v3/dist/Typography/index.js +3 -0
  351. package/dist/packages/components-v3/dist/WidgetWrapper/WidgetWrapper.cjs +12 -0
  352. package/dist/packages/components-v3/dist/WidgetWrapper/WidgetWrapper.js +13 -0
  353. package/dist/packages/components-v3/dist/WidgetWrapper/hooks/useGetWrapperProperties.cjs +1 -0
  354. package/dist/packages/components-v3/dist/WidgetWrapper/hooks/useGetWrapperProperties.js +3 -0
  355. package/dist/packages/components-v3/dist/WidgetWrapper/index.cjs +2 -0
  356. package/dist/packages/components-v3/dist/WidgetWrapper/index.js +4 -0
  357. package/dist/packages/components-v3/dist/WidgetWrapper/types/types.cjs +13 -0
  358. package/dist/packages/components-v3/dist/WidgetWrapper/types/types.js +12 -0
  359. package/dist/packages/components-v3/dist/packages/components-v3/tokens/breakpoints/breakpoints.cjs +25 -0
  360. package/dist/packages/components-v3/dist/packages/components-v3/tokens/breakpoints/breakpoints.js +23 -0
  361. package/dist/packages/components-v3/dist/utils/useCheckIsMobile.cjs +1 -0
  362. package/dist/packages/components-v3/dist/utils/useCheckIsMobile.js +3 -0
  363. package/dist/packages/components-v3/dist/utils/useResponsiveValue.cjs +57 -0
  364. package/dist/packages/components-v3/dist/utils/useResponsiveValue.js +56 -0
  365. package/dist/packages/icons/dist/FourPointStar.cjs +8 -0
  366. package/dist/packages/icons/dist/FourPointStar.js +9 -0
  367. package/dist/packages/icons/dist/_virtual/rolldown_runtime.cjs +28 -0
  368. package/dist/packages/icons/dist/_virtual/rolldown_runtime.js +26 -0
  369. package/dist/packages/icons/dist/node_modules/react/cjs/react-jsx-runtime.development.cjs +697 -0
  370. package/dist/packages/icons/dist/node_modules/react/cjs/react-jsx-runtime.development.js +697 -0
  371. package/dist/packages/icons/dist/node_modules/react/cjs/react-jsx-runtime.production.min.cjs +44 -0
  372. package/dist/packages/icons/dist/node_modules/react/cjs/react-jsx-runtime.production.min.js +44 -0
  373. package/dist/packages/icons/dist/node_modules/react/cjs/react.development.cjs +1529 -0
  374. package/dist/packages/icons/dist/node_modules/react/cjs/react.development.js +1529 -0
  375. package/dist/packages/icons/dist/node_modules/react/cjs/react.production.min.cjs +330 -0
  376. package/dist/packages/icons/dist/node_modules/react/cjs/react.production.min.js +330 -0
  377. package/dist/packages/icons/dist/node_modules/react/index.cjs +14 -0
  378. package/dist/packages/icons/dist/node_modules/react/index.js +14 -0
  379. package/dist/packages/icons/dist/node_modules/react/jsx-runtime.cjs +14 -0
  380. package/dist/packages/icons/dist/node_modules/react/jsx-runtime.js +14 -0
  381. package/dist/services/amplitudeService/amplitudeService.cjs +204 -0
  382. package/dist/services/amplitudeService/amplitudeService.d.cts +75 -0
  383. package/dist/services/amplitudeService/amplitudeService.d.ts +75 -0
  384. package/dist/services/amplitudeService/amplitudeService.js +202 -0
  385. package/dist/services/amplitudeService/index.cjs +4 -0
  386. package/dist/services/amplitudeService/index.d.cts +2 -0
  387. package/dist/services/amplitudeService/index.d.ts +2 -0
  388. package/dist/services/amplitudeService/index.js +3 -0
  389. package/dist/services/enviveConfigService/enviveConfigService.cjs +36 -0
  390. package/dist/services/enviveConfigService/enviveConfigService.d.cts +43 -0
  391. package/dist/services/enviveConfigService/enviveConfigService.d.ts +43 -0
  392. package/dist/services/enviveConfigService/enviveConfigService.js +36 -0
  393. package/dist/services/enviveConfigService/index.cjs +3 -0
  394. package/dist/services/enviveConfigService/index.d.cts +2 -0
  395. package/dist/services/enviveConfigService/index.d.ts +2 -0
  396. package/dist/services/enviveConfigService/index.js +3 -0
  397. package/dist/types/enviveConfig.d.cts +29 -0
  398. package/dist/types/enviveConfig.d.ts +29 -0
  399. package/dist/types/index.d.cts +2 -1
  400. package/dist/types/index.d.ts +2 -1
  401. package/package.json +36 -4
  402. package/src/application/commerce-api.ts +14 -1
  403. package/src/application/models/api/userEvent.ts +3 -1
  404. package/src/application/models/api/widgetText.ts +9 -0
  405. package/src/application/models/api/widgetTextRequest.ts +10 -0
  406. package/src/application/models/chatElementDisplayLocationV3.ts +12 -0
  407. package/src/application/models/colorsConfigV3.ts +26 -0
  408. package/src/application/models/featureGates.ts +1 -0
  409. package/src/application/models/frontendConfig.ts +5 -0
  410. package/src/application/models/frontendConfigV3.ts +10 -0
  411. package/src/application/models/index.ts +1 -0
  412. package/src/application/models/utils/snakeToCamelTransformer.ts +1 -1
  413. package/src/application/utils/elementObserver.ts +2 -2
  414. package/src/application/utils/widgetTextFromApiWidgetTextResponse.ts +30 -0
  415. package/src/application/utils/widgetTextRequestToApiRequest.ts +45 -0
  416. package/src/atoms/amplitude/amplitudeTrackEventAtom.ts +1 -8
  417. package/src/atoms/app/index.ts +3 -3
  418. package/src/atoms/app/variant.ts +5 -0
  419. package/src/atoms/chat/chatState.ts +10 -2
  420. package/src/atoms/envive/enviveConfig.ts +5 -0
  421. package/src/atoms/org/graphqlConfig.ts +0 -1
  422. package/src/atoms/widget/chatPreviewLoading.ts +36 -0
  423. package/src/atoms/widget/index.ts +1 -0
  424. package/src/contexts/amplitudeContext/__tests__/amplitudeContext.test.tsx +197 -187
  425. package/src/contexts/amplitudeContext/amplitudeContext.tsx +56 -334
  426. package/src/contexts/enviveConfigContext/enviveConfigContext.tsx +3 -0
  427. package/src/contexts/enviveContext/enviveContext.tsx +101 -27
  428. package/src/contexts/enviveCssContext/enviveCssContext.tsx +121 -22
  429. package/src/contexts/featureFlagServiceContext/featureFlagServiceContext.tsx +12 -11
  430. package/src/contexts/graphqlContext/graphqlContext.tsx +131 -13
  431. package/src/contexts/graphqlContext/mockV3Config.ts +209 -0
  432. package/src/contexts/hardcopyContext/hardcopyContext.tsx +136 -14
  433. package/src/contexts/newOrgConfigContext/__tests__/newOrgConfigContext.test.tsx +6 -6
  434. package/src/contexts/newOrgConfigContext/newOrgConfigContext.tsx +5 -13
  435. package/src/contexts/pageContext/__tests__/pageContext.test.tsx +24 -8
  436. package/src/contexts/pageContext/mapping.ts +4 -0
  437. package/src/contexts/pageContext/pageContext.tsx +41 -12
  438. package/src/contexts/pageContext/types.ts +4 -0
  439. package/src/contexts/salesAgentContext/chatAPI.ts +1 -0
  440. package/src/contexts/salesAgentContext/salesAgentContext.tsx +94 -42
  441. package/src/contexts/salesAgentContext/salesAgentService.ts +78 -3
  442. package/src/contexts/salesAgentContext/statusCodeError.ts +10 -0
  443. package/src/contexts/searchContext/__tests__/searchContext.test.tsx +8 -2
  444. package/src/contexts/types.ts +15 -19
  445. package/src/contexts/typesV3.ts +316 -0
  446. package/src/contexts/uiConfigContext/__tests__/uiConfigContext.test.tsx +321 -0
  447. package/src/contexts/uiConfigContext/index.ts +1 -0
  448. package/src/contexts/uiConfigContext/uiConfigContext.tsx +44 -0
  449. package/src/contexts/widgetConfigContext/__tests__/widgetConfigContext.test.tsx +512 -0
  450. package/src/contexts/widgetConfigContext/index.ts +1 -0
  451. package/src/contexts/widgetConfigContext/widgetConfigContext.tsx +84 -0
  452. package/src/hooks/AppDetails/useAppDetails.ts +2 -2
  453. package/src/hooks/GraphQLConfig/useGraphQLConfig.ts +22 -21
  454. package/src/hooks/Search/__tests__/useSearch.test.tsx +15 -6
  455. package/src/hooks/Search/useSearch.tsx +6 -5
  456. package/src/services/amplitudeService/__tests__/amplitudeService.test.ts +558 -0
  457. package/src/services/amplitudeService/amplitudeService.ts +324 -0
  458. package/src/services/amplitudeService/index.ts +1 -0
  459. package/src/services/enviveConfigService/enviveConfigService.ts +72 -0
  460. package/src/services/enviveConfigService/index.ts +1 -0
  461. package/src/types/enviveConfig.ts +27 -0
  462. package/src/types/index.ts +1 -0
@@ -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,
@@ -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,10 +145,9 @@ 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
-
148
+ const isResponseStreaming = useAtomValue(responseStreamingAtom);
149
+ const isPendingResponse = useAtomValue(pendingResponseAtom);
150
+ const isInitialized = useAtomValue(initializedAtom);
99
151
  const { logPageVisit, onSuggestionClicked, onTypedMessageSubmitted, onFormResponseSubmitted } =
100
152
  useSalesAgentChatAPI();
101
153
 
@@ -104,9 +156,9 @@ export const useSalesAgent = (): SalesAgent => {
104
156
  messages,
105
157
  suggestions,
106
158
  pendingMessages,
159
+ isInitialized,
107
160
  isResponseStreaming,
108
161
  isPendingResponse,
109
- isInitialized,
110
162
  logPageVisit,
111
163
  onSuggestionClicked,
112
164
  onTypedMessageSubmitted,
@@ -116,9 +168,9 @@ export const useSalesAgent = (): SalesAgent => {
116
168
  messages,
117
169
  suggestions,
118
170
  pendingMessages,
171
+ isInitialized,
119
172
  isResponseStreaming,
120
173
  isPendingResponse,
121
- isInitialized,
122
174
  logPageVisit,
123
175
  onSuggestionClicked,
124
176
  onTypedMessageSubmitted,
@@ -7,15 +7,22 @@ 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
+ suggestionsAtom,
22
+ } from 'src/atoms/chat/chatState';
17
23
  import { useMessageInterceptor } from 'src/interceptors/useMessageInterceptor';
18
24
  import { useFeatureFlagService } from '../featureFlagServiceContext';
25
+ import { StatusCodeError } from './statusCodeError';
19
26
 
20
27
  interface SalesAgentService {
21
28
  createResponsePayload: (payload: {
@@ -23,6 +30,8 @@ interface SalesAgentService {
23
30
  generationParams?: GenerationParams;
24
31
  }) => NextMessageRequest;
25
32
  getStreamingResponses: (payload: NextMessageRequest) => Promise<void>;
33
+ getSuggestions: (payload: NextMessageRequest) => Promise<void>;
34
+ hydrateMessages: () => Promise<void>;
26
35
  }
27
36
 
28
37
  export const getQueryParam = (key: string): string | null => {
@@ -30,6 +39,44 @@ export const getQueryParam = (key: string): string | null => {
30
39
  return urlObj.searchParams.get(key);
31
40
  };
32
41
 
42
+ const getErrorMessage = (_error: unknown): string => {
43
+ if (_error instanceof StatusCodeError) {
44
+ if (_error.statusCode === 423) {
45
+ return 'Due to violation of terms and services, this session has been terminated.';
46
+ }
47
+ // Keeping the 429 error messages as the generic error message for now.
48
+ // if (_error.statusCode === 429) {
49
+ // return "I'm sorry! The system is busy right now. Please try again in a few minutes.";
50
+ // }
51
+ }
52
+
53
+ return "I'm sorry! I'm having trouble right now. Please refresh the page or try again in a moment.";
54
+ };
55
+
56
+ const handleStreamingError = (
57
+ _error: unknown,
58
+ setRequestFailure: (failed: boolean) => void,
59
+ setMessages: (updater: (prev: Message[][]) => Message[][]) => void,
60
+ ) => {
61
+ setRequestFailure(true);
62
+
63
+ const errorMessage = getErrorMessage(_error);
64
+ setMessages(prev => [
65
+ ...prev,
66
+ [
67
+ {
68
+ id: uuid(),
69
+ role: MessageRole.Assistant,
70
+ type: MessageType.Text,
71
+ createdAt: new Date().toISOString(),
72
+ metadata: {
73
+ content: errorMessage,
74
+ },
75
+ },
76
+ ],
77
+ ]);
78
+ };
79
+
33
80
  const updateMessageState = (
34
81
  message: Message,
35
82
  lastMessage: Message,
@@ -102,6 +149,8 @@ const processStreamingResponse = async (
102
149
  export const useSalesAgentService: () => SalesAgentService = () => {
103
150
  const setRequestFailure = useSetAtom(requestFailureAtom);
104
151
  const setMessages = useSetAtom(messagesAtom);
152
+ const setSuggestions = useSetAtom(suggestionsAtom);
153
+ const setPendingResponse = useSetAtom(pendingResponseAtom);
105
154
  const messageInterceptor = useMessageInterceptor();
106
155
 
107
156
  const featureFlagService = useFeatureFlagService();
@@ -139,6 +188,7 @@ export const useSalesAgentService: () => SalesAgentService = () => {
139
188
  async (payload: NextMessageRequest): Promise<void> => {
140
189
  // logPerfMetric(PerfMetricsEvents.FirstResponseStarted);
141
190
  // const startTime = Date.now();
191
+ setPendingResponse(true);
142
192
  console.log('getStreamingResponses payload', JSON.stringify(payload, null, 2));
143
193
  const stream = CommerceApiClient.getNextResponseStreaming(payload);
144
194
 
@@ -176,9 +226,10 @@ export const useSalesAgentService: () => SalesAgentService = () => {
176
226
  // },
177
227
  // });
178
228
 
179
- // handleStreamingError(e, setRequestFailure, setMessages);
229
+ handleStreamingError(e, setRequestFailure, setMessages);
180
230
  throw e;
181
- // } finally {
231
+ } finally {
232
+ setPendingResponse(false);
182
233
  // logPerfMetric(PerfMetricsEvents.FirstResponseCompleted);
183
234
  }
184
235
  },
@@ -187,11 +238,35 @@ export const useSalesAgentService: () => SalesAgentService = () => {
187
238
  setRequestFailure,
188
239
  messageInterceptor,
189
240
  setMessages,
241
+ setPendingResponse,
190
242
  ],
191
243
  );
192
244
 
245
+ const getSuggestions = useCallback(
246
+ async (payload: NextMessageRequest): Promise<void> => {
247
+ const newSuggestions = await CommerceApiClient.getNextSuggestions(payload);
248
+ setSuggestions(newSuggestions);
249
+ },
250
+ [setSuggestions],
251
+ );
252
+
253
+ const hydrateMessages = useCallback(async () => {
254
+ const { orgId, chatId, userId } = context;
255
+ console.log('hydrateMessages', orgId, chatId, userId, context);
256
+ const { messages: existingMessages, userEvents } = await CommerceApiClient.getResponses(
257
+ orgId,
258
+ chatId,
259
+ userId,
260
+ );
261
+ console.log('existingMessages', existingMessages);
262
+ console.log('userEvents', userEvents);
263
+ setMessages([...existingMessages]);
264
+ }, [context, setMessages]);
265
+
193
266
  return {
194
267
  createResponsePayload,
195
268
  getStreamingResponses,
269
+ getSuggestions,
270
+ hydrateMessages,
196
271
  };
197
272
  };
@@ -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>
@@ -13,6 +13,7 @@ import { ChatState } from 'src/types/custservice-types';
13
13
  import { SuggestionBarLocationForMetrics } from 'src/types/suggestionBarV2-types';
14
14
  import { TestProps } from 'src/types/test-types';
15
15
  import { OrgConfigFeatureGate } from 'src/application/models/api/orgConfigResults';
16
+ import { WidgetConfigV3 } from './typesV3';
16
17
 
17
18
  type ShowFloatingButtonOptions =
18
19
  | 'always'
@@ -389,7 +390,10 @@ interface SearchConfig {
389
390
  recommendedProductsHeading?: string;
390
391
  }
391
392
 
393
+ type ConfigVersion = 'v3' | 'deprecated' | undefined;
394
+
392
395
  type OrgUIConfig = {
396
+ version?: ConfigVersion;
393
397
  shortName: string;
394
398
  id?: string;
395
399
  floatingEntrypointConfig?: FloatingEntryPointConfig;
@@ -475,8 +479,6 @@ type WrappingElement = {
475
479
  };
476
480
 
477
481
  enum PageVariantTestType {
478
- ShopifyPLP = 'ShopifyPLP',
479
- ShopifyPDP = 'ShopifyPDP',
480
482
  PageCategory = 'PageCategory',
481
483
  CatalogCategory = 'CatalogCategory',
482
484
  TopCatalogCategory = 'TopCatalogCategory',
@@ -493,6 +495,7 @@ enum PageVariantTestType {
493
495
  isProductComparison = 'isProductComparison',
494
496
  Fallback = 'Fallback',
495
497
  UrlResolver = 'UrlResolver',
498
+ isScreenWidthSmaller = 'isScreenWidthSmaller',
496
499
  Null = 'null',
497
500
  }
498
501
 
@@ -522,10 +525,6 @@ interface HasMerchantTagTest extends BasePageVariantTest<PageVariantTestType.Has
522
525
  merchantTags: string[];
523
526
  }
524
527
 
525
- interface ShopifyPLPURLTest extends BasePageVariantTest<PageVariantTestType.ShopifyPLP> {}
526
-
527
- interface ShopifyPDPURLTest extends BasePageVariantTest<PageVariantTestType.ShopifyPDP> {}
528
-
529
528
  interface PageCategoryTest extends BasePageVariantTest<PageVariantTestType.PageCategory> {
530
529
  extractor: CategoryExtractor;
531
530
  }
@@ -560,10 +559,12 @@ interface PageFallbackTest extends BasePageVariantTest<PageVariantTestType.Fallb
560
559
 
561
560
  interface UrlResolverTest extends BasePageVariantTest<PageVariantTestType.UrlResolver> {}
562
561
 
562
+ interface IsScreenWidthSmallerTest extends BasePageVariantTest<PageVariantTestType.isScreenWidthSmaller> {
563
+ breakpoint: number;
564
+ }
565
+
563
566
  export type PageVariantTest =
564
567
  | PageCategoryTest
565
- | ShopifyPLPURLTest
566
- | ShopifyPDPURLTest
567
568
  | CatalogCategoryTest
568
569
  | TopCatalogCategory
569
570
  | HasReviewsTest
@@ -578,7 +579,8 @@ export type PageVariantTest =
578
579
  | IsLoadingTest
579
580
  | IsProductComparison
580
581
  | PageFallbackTest
581
- | UrlResolverTest;
582
+ | UrlResolverTest
583
+ | IsScreenWidthSmallerTest;
582
584
 
583
585
  /**
584
586
  * Configuration for the social proof embedded widget
@@ -660,15 +662,6 @@ enum WidgetType {
660
662
  NoOp = 'NoOp',
661
663
  }
662
664
 
663
- export enum WidgetTypeV3 {
664
- SuggestionBarV3 = 'SuggestionBarV3',
665
- ChatPreviewV3 = 'ChatPreviewV3',
666
- SocialProofV3 = 'SocialProofV3',
667
- ImagePromptCardV3 = 'ImagePromptCardV3',
668
- ImageBannerV3 = 'ImageBannerV3',
669
- SingleImagePromptV3 = 'SingleImagePromptV3',
670
- }
671
-
672
665
  type WidgetConfig =
673
666
  | ChatPreviewWidgetConfig
674
667
  | SocialProofV2WidgetConfig
@@ -911,7 +904,7 @@ export type OrgPageConfig = {
911
904
  // pageVariants is a list of page variants that we support.
912
905
  pageVariants: PageVariantConfig[];
913
906
  // widgetConfigs is a named set of widget configs
914
- widgetConfigs: Record<string, WidgetConfig>;
907
+ widgetConfigs: Record<string, WidgetConfigV3>;
915
908
  mountingConfigs: Record<string, WidgetMountingConfig>;
916
909
  };
917
910
 
@@ -929,6 +922,7 @@ export interface EnviveConfig {
929
922
  contextSource?: string;
930
923
  orgLevelApiKey?: string;
931
924
  orgShortName?: string;
925
+ orgId?: string;
932
926
  identifyingPrefix?: string;
933
927
  featureOverrides?: Record<string, boolean>;
934
928
  variantUrlOverride?: string;
@@ -963,6 +957,8 @@ export type {
963
957
  ImagePromptWidgetConfig,
964
958
  InsertionPoint,
965
959
  MultiImageConfig,
960
+ MerchantVariantSettings,
961
+ SearchConfig,
966
962
  OrgUIConfig,
967
963
  PageCardConfig,
968
964
  PageCardVariant,