@envive-ai/react-widgets-v3 0.3.15-alpha.1 → 0.3.15-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (246) hide show
  1. package/dist/hocs/withBaseWidget/types.d.cts +5 -6
  2. package/dist/hocs/withBaseWidget/types.d.ts +5 -7
  3. package/dist/hocs/withBaseWidget/withBaseWidget.cjs +37 -43
  4. package/dist/hocs/withBaseWidget/withBaseWidget.d.cts +2 -2
  5. package/dist/hocs/withBaseWidget/withBaseWidget.d.ts +2 -2
  6. package/dist/hocs/withBaseWidget/withBaseWidget.js +39 -45
  7. package/dist/packages/hooks/dist/application/models/api/orgConfigResults.d.ts +2 -1
  8. package/dist/packages/hooks/dist/application/models/api/userEvent.d.ts +1 -0
  9. package/dist/packages/hooks/dist/contexts/hardcopyContext/hardcopyContext.d.ts +1 -0
  10. package/dist/packages/hooks/dist/contexts/types.d.ts +3 -1
  11. package/dist/packages/hooks/dist/contexts/typesV3.d.ts +1 -1
  12. package/dist/packages/hooks/dist/types/custservice-types.d.ts +1 -0
  13. package/dist/packages/widgets/dist/packages/hooks/dist/application/models/variantInfo/pageVisitInfo.d.ts +1 -0
  14. package/dist/packages/widgets/dist/packages/hooks/dist/application/models/variantInfo/variantInfo.d.ts +2 -1
  15. package/dist/packages/widgets/dist/packages/hooks/dist/contexts/types.d.ts +1 -0
  16. package/dist/widgets/ChatPreviewComparisonWidget/ChatPreviewComparisonWidget.cjs +3 -3
  17. package/dist/widgets/ChatPreviewComparisonWidget/ChatPreviewComparisonWidget.d.cts +3 -3
  18. package/dist/widgets/ChatPreviewComparisonWidget/ChatPreviewComparisonWidget.d.ts +3 -3
  19. package/dist/widgets/ChatPreviewComparisonWidget/ChatPreviewComparisonWidget.js +3 -3
  20. package/dist/widgets/ChatPreviewLoadingWidget/ChatPreviewLoadingWidget.d.cts +3 -3
  21. package/dist/widgets/ChatPreviewLoadingWidget/ChatPreviewLoadingWidget.d.ts +3 -3
  22. package/dist/widgets/ChatPreviewWidget/ChatPreviewWidget.cjs +2 -11
  23. package/dist/widgets/ChatPreviewWidget/ChatPreviewWidget.d.cts +3 -3
  24. package/dist/widgets/ChatPreviewWidget/ChatPreviewWidget.d.ts +3 -3
  25. package/dist/widgets/ChatPreviewWidget/ChatPreviewWidget.js +4 -13
  26. package/dist/widgets/FloatingChatWidget/FloatingChatOverlay.cjs +44 -21
  27. package/dist/widgets/FloatingChatWidget/FloatingChatOverlay.js +44 -21
  28. package/dist/widgets/FloatingChatWidget/FloatingChatWidget.cjs +34 -34
  29. package/dist/widgets/FloatingChatWidget/FloatingChatWidget.d.cts +3 -1
  30. package/dist/widgets/FloatingChatWidget/FloatingChatWidget.d.ts +5 -3
  31. package/dist/widgets/FloatingChatWidget/FloatingChatWidget.js +35 -35
  32. package/dist/widgets/FullPageSalesAgentWidget/FullPageSalesAgentWidget.d.cts +2 -2
  33. package/dist/widgets/FullPageSalesAgentWidget/FullPageSalesAgentWidget.d.ts +2 -2
  34. package/dist/widgets/ProductCardWidget/ProductCardWidget.cjs +1 -11
  35. package/dist/widgets/ProductCardWidget/ProductCardWidget.d.cts +2 -2
  36. package/dist/widgets/ProductCardWidget/ProductCardWidget.d.ts +2 -2
  37. package/dist/widgets/ProductCardWidget/ProductCardWidget.js +3 -13
  38. package/dist/widgets/PromptButtonCarouselWithImageWidget/PromptButtonCarouselWithImageWidget.cjs +2 -11
  39. package/dist/widgets/PromptButtonCarouselWithImageWidget/PromptButtonCarouselWithImageWidget.d.cts +3 -3
  40. package/dist/widgets/PromptButtonCarouselWithImageWidget/PromptButtonCarouselWithImageWidget.d.ts +3 -3
  41. package/dist/widgets/PromptButtonCarouselWithImageWidget/PromptButtonCarouselWithImageWidget.js +4 -13
  42. package/dist/widgets/PromptCarouselWidget/PromptCarouselWidget.cjs +1 -10
  43. package/dist/widgets/PromptCarouselWidget/PromptCarouselWidget.d.cts +2 -2
  44. package/dist/widgets/PromptCarouselWidget/PromptCarouselWidget.d.ts +2 -2
  45. package/dist/widgets/PromptCarouselWidget/PromptCarouselWidget.js +3 -12
  46. package/dist/widgets/SocialProofFlowWidget/SocialProofFlowWidget.cjs +1 -1
  47. package/dist/widgets/SocialProofFlowWidget/SocialProofFlowWidget.d.cts +2 -2
  48. package/dist/widgets/SocialProofFlowWidget/SocialProofFlowWidget.d.ts +2 -2
  49. package/dist/widgets/SocialProofFlowWidget/SocialProofFlowWidget.js +1 -1
  50. package/dist/widgets/SocialProofWidget/SocialProofWidget.cjs +2 -11
  51. package/dist/widgets/SocialProofWidget/SocialProofWidget.d.cts +3 -3
  52. package/dist/widgets/SocialProofWidget/SocialProofWidget.d.ts +3 -3
  53. package/dist/widgets/SocialProofWidget/SocialProofWidget.js +4 -13
  54. package/dist/widgets/TitledPromptCarouselWidget/TitledPromptCarouselWidget.cjs +0 -9
  55. package/dist/widgets/TitledPromptCarouselWidget/TitledPromptCarouselWidget.d.cts +2 -2
  56. package/dist/widgets/TitledPromptCarouselWidget/TitledPromptCarouselWidget.d.ts +2 -2
  57. package/dist/widgets/TitledPromptCarouselWidget/TitledPromptCarouselWidget.js +2 -11
  58. package/dist/widgets/TypingAnimationFlowWidget/TypingAnimationFlowWidget.cjs +1 -1
  59. package/dist/widgets/TypingAnimationFlowWidget/TypingAnimationFlowWidget.d.cts +2 -2
  60. package/dist/widgets/TypingAnimationFlowWidget/TypingAnimationFlowWidget.d.ts +2 -2
  61. package/dist/widgets/TypingAnimationFlowWidget/TypingAnimationFlowWidget.js +1 -1
  62. package/dist/widgets/TypingAnimationWidget/TypingAnimationWidget.cjs +1 -10
  63. package/dist/widgets/TypingAnimationWidget/TypingAnimationWidget.d.cts +3 -3
  64. package/dist/widgets/TypingAnimationWidget/TypingAnimationWidget.d.ts +3 -3
  65. package/dist/widgets/TypingAnimationWidget/TypingAnimationWidget.js +3 -12
  66. package/package.json +1 -1
  67. package/dist/hooks/dist/services/amplitudeService/eventNames.d.cts +0 -43
  68. package/dist/packages/hooks/dist/contexts/amplitudeContext/amplitudeContext.d.ts +0 -2
  69. package/dist/packages/hooks/dist/contexts/amplitudeContext/index.d.ts +0 -2
  70. package/dist/packages/hooks/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.d.ts +0 -2
  71. package/dist/packages/hooks/dist/services/amplitudeService/amplitudeService.d.ts +0 -1
  72. package/dist/packages/hooks/dist/services/amplitudeService/eventNames.d.ts +0 -43
  73. package/dist/src/CXIntegration/hooks/useUnifiedCXButton.d.ts +0 -10
  74. package/dist/src/CXIntegration/hooks/useUnifiedCXButton.js +0 -29
  75. package/dist/src/CXIntegration/implementations/useDefaultUnifiedCXButton.d.ts +0 -2
  76. package/dist/src/CXIntegration/implementations/useDefaultUnifiedCXButton.js +0 -6
  77. package/dist/src/CXIntegration/implementations/useEightByEightUnifiedCXButton.d.ts +0 -5
  78. package/dist/src/CXIntegration/implementations/useEightByEightUnifiedCXButton.js +0 -63
  79. package/dist/src/CXIntegration/implementations/useGladlyUnifiedCXButton.d.ts +0 -5
  80. package/dist/src/CXIntegration/implementations/useGladlyUnifiedCXButton.js +0 -23
  81. package/dist/src/CXIntegration/implementations/useGorgiasUnifiedCXButton.d.ts +0 -5
  82. package/dist/src/CXIntegration/implementations/useGorgiasUnifiedCXButton.js +0 -54
  83. package/dist/src/CXIntegration/implementations/useGrooveUnifiedCXButton.d.ts +0 -18
  84. package/dist/src/CXIntegration/implementations/useGrooveUnifiedCXButton.js +0 -48
  85. package/dist/src/CXIntegration/implementations/useHelpScoutUnifiedCXButton.d.ts +0 -5
  86. package/dist/src/CXIntegration/implementations/useHelpScoutUnifiedCXButton.js +0 -84
  87. package/dist/src/CXIntegration/implementations/useKustomerUnifiedCXButton.d.ts +0 -5
  88. package/dist/src/CXIntegration/implementations/useKustomerUnifiedCXButton.js +0 -86
  89. package/dist/src/CXIntegration/implementations/useReDoUnifiedCXButton.d.ts +0 -5
  90. package/dist/src/CXIntegration/implementations/useReDoUnifiedCXButton.js +0 -59
  91. package/dist/src/CXIntegration/implementations/useRichpanelUnifiedCXButton.d.ts +0 -5
  92. package/dist/src/CXIntegration/implementations/useRichpanelUnifiedCXButton.js +0 -62
  93. package/dist/src/CXIntegration/implementations/useShopifyChatUnifiedCXButton.d.ts +0 -5
  94. package/dist/src/CXIntegration/implementations/useShopifyChatUnifiedCXButton.js +0 -49
  95. package/dist/src/CXIntegration/implementations/useTalkdeskUnifiedCXButton.d.ts +0 -5
  96. package/dist/src/CXIntegration/implementations/useTalkdeskUnifiedCXButton.js +0 -77
  97. package/dist/src/CXIntegration/implementations/useTidioUnifiedCXButton.d.ts +0 -13
  98. package/dist/src/CXIntegration/implementations/useTidioUnifiedCXButton.js +0 -20
  99. package/dist/src/CXIntegration/implementations/useZendeskUnifiedCXButton.d.ts +0 -5
  100. package/dist/src/CXIntegration/implementations/useZendeskUnifiedCXButton.js +0 -55
  101. package/dist/src/CXIntegration/implementations/useZowieUnifiedCXButton.d.ts +0 -13
  102. package/dist/src/CXIntegration/implementations/useZowieUnifiedCXButton.js +0 -20
  103. package/dist/src/CXIntegration/types.d.ts +0 -26
  104. package/dist/src/CXIntegration/types.js +0 -17
  105. package/dist/src/CXIntegration/utils/functions.d.ts +0 -2
  106. package/dist/src/CXIntegration/utils/functions.js +0 -57
  107. package/dist/src/debug/GenericSelect.d.ts +0 -11
  108. package/dist/src/debug/GenericSelect.js +0 -151
  109. package/dist/src/debug/MessageContent.d.ts +0 -4
  110. package/dist/src/debug/MessageContent.js +0 -87
  111. package/dist/src/debug/chatEmbed.d.ts +0 -2
  112. package/dist/src/debug/chatEmbed.js +0 -58
  113. package/dist/src/debug/debugBar.d.ts +0 -1
  114. package/dist/src/debug/debugBar.js +0 -9
  115. package/dist/src/debug/reportIssue.d.ts +0 -1
  116. package/dist/src/debug/reportIssue.js +0 -322
  117. package/dist/src/hocs/withBaseWidget/__tests__/withBaseWidget.test.d.ts +0 -1
  118. package/dist/src/hocs/withBaseWidget/__tests__/withBaseWidget.test.js +0 -452
  119. package/dist/src/hocs/withBaseWidget/index.d.ts +0 -2
  120. package/dist/src/hocs/withBaseWidget/index.js +0 -1
  121. package/dist/src/hocs/withBaseWidget/types.d.ts +0 -33
  122. package/dist/src/hocs/withBaseWidget/types.js +0 -0
  123. package/dist/src/hocs/withBaseWidget/withBaseWidget.d.ts +0 -5
  124. package/dist/src/hocs/withBaseWidget/withBaseWidget.js +0 -80
  125. package/dist/src/stories/FloatingChatWidget.stories.d.ts +0 -25
  126. package/dist/src/stories/FloatingChatWidget.stories.js +0 -44
  127. package/dist/src/stories/FullPageSalesAgentWidget.stories.d.ts +0 -31
  128. package/dist/src/stories/FullPageSalesAgentWidget.stories.js +0 -51
  129. package/dist/src/stories/ProductCardWidget.stories.d.ts +0 -31
  130. package/dist/src/stories/ProductCardWidget.stories.js +0 -44
  131. package/dist/src/stories/PromptButtonCarouselWithImageWidget.stories.d.ts +0 -31
  132. package/dist/src/stories/PromptButtonCarouselWithImageWidget.stories.js +0 -40
  133. package/dist/src/stories/PromptCarouselWidget.stories.d.ts +0 -31
  134. package/dist/src/stories/PromptCarouselWidget.stories.js +0 -40
  135. package/dist/src/stories/SalesAgentTest/SalesAgentTest.d.ts +0 -1
  136. package/dist/src/stories/SalesAgentTest/SalesAgentTest.js +0 -40
  137. package/dist/src/stories/SalesAgentTest/SalesAgentTest.stories.d.ts +0 -12
  138. package/dist/src/stories/SalesAgentTest/SalesAgentTest.stories.js +0 -12
  139. package/dist/src/stories/SalesAgentTest/index.d.ts +0 -0
  140. package/dist/src/stories/SalesAgentTest/index.js +0 -0
  141. package/dist/src/stories/SearchResults.stories.d.ts +0 -6
  142. package/dist/src/stories/SearchResults.stories.js +0 -23
  143. package/dist/src/stories/SearchZeroState.stories.d.ts +0 -38
  144. package/dist/src/stories/SearchZeroState.stories.js +0 -42
  145. package/dist/src/stories/SocialProofFlowWidget.stories.d.ts +0 -35
  146. package/dist/src/stories/SocialProofFlowWidget.stories.js +0 -60
  147. package/dist/src/stories/SuggestionBar.stories.d.ts +0 -7
  148. package/dist/src/stories/SuggestionBar.stories.js +0 -36
  149. package/dist/src/stories/TitledPromptCarouselWidget.stories.d.ts +0 -32
  150. package/dist/src/stories/TitledPromptCarouselWidget.stories.js +0 -55
  151. package/dist/src/stories/TypingAnimationFlowWidget.stories.d.ts +0 -34
  152. package/dist/src/stories/TypingAnimationFlowWidget.stories.js +0 -51
  153. package/dist/src/widgets/ChatPreviewComparisonWidget/ChatPreviewComparisonWidget.d.ts +0 -12
  154. package/dist/src/widgets/ChatPreviewComparisonWidget/ChatPreviewComparisonWidget.js +0 -112
  155. package/dist/src/widgets/ChatPreviewComparisonWidget/index.d.ts +0 -3
  156. package/dist/src/widgets/ChatPreviewComparisonWidget/index.js +0 -2
  157. package/dist/src/widgets/ChatPreviewLoadingWidget/ChatPreviewLoadingWidget.d.ts +0 -9
  158. package/dist/src/widgets/ChatPreviewLoadingWidget/ChatPreviewLoadingWidget.js +0 -34
  159. package/dist/src/widgets/ChatPreviewLoadingWidget/index.d.ts +0 -3
  160. package/dist/src/widgets/ChatPreviewLoadingWidget/index.js +0 -2
  161. package/dist/src/widgets/ChatPreviewWidget/ChatPreviewWidget.d.ts +0 -12
  162. package/dist/src/widgets/ChatPreviewWidget/ChatPreviewWidget.js +0 -111
  163. package/dist/src/widgets/ChatPreviewWidget/__tests__/ChatPreviewWidget.test.d.ts +0 -1
  164. package/dist/src/widgets/ChatPreviewWidget/__tests__/ChatPreviewWidget.test.js +0 -97
  165. package/dist/src/widgets/ChatPreviewWidget/index.d.ts +0 -3
  166. package/dist/src/widgets/ChatPreviewWidget/index.js +0 -2
  167. package/dist/src/widgets/FloatingChatWidget/FloatingChatOverlay.d.ts +0 -14
  168. package/dist/src/widgets/FloatingChatWidget/FloatingChatOverlay.js +0 -44
  169. package/dist/src/widgets/FloatingChatWidget/FloatingChatWidget.d.ts +0 -8
  170. package/dist/src/widgets/FloatingChatWidget/FloatingChatWidget.js +0 -134
  171. package/dist/src/widgets/FloatingChatWidget/__tests__/FloatingChatWidget.test.d.ts +0 -1
  172. package/dist/src/widgets/FloatingChatWidget/__tests__/FloatingChatWidget.test.js +0 -100
  173. package/dist/src/widgets/FloatingChatWidget/constants.d.ts +0 -1
  174. package/dist/src/widgets/FloatingChatWidget/constants.js +0 -1
  175. package/dist/src/widgets/FloatingChatWidget/hooks/useAutoPopup.d.ts +0 -4
  176. package/dist/src/widgets/FloatingChatWidget/hooks/useAutoPopup.js +0 -51
  177. package/dist/src/widgets/FloatingChatWidget/hooks/useFloatingButtonVisibility.d.ts +0 -11
  178. package/dist/src/widgets/FloatingChatWidget/hooks/useFloatingButtonVisibility.js +0 -21
  179. package/dist/src/widgets/FloatingChatWidget/index.d.ts +0 -4
  180. package/dist/src/widgets/FloatingChatWidget/index.js +0 -3
  181. package/dist/src/widgets/FullPageSalesAgentWidget/FullPageSalesAgentWidget.d.ts +0 -12
  182. package/dist/src/widgets/FullPageSalesAgentWidget/FullPageSalesAgentWidget.js +0 -14
  183. package/dist/src/widgets/FullPageSalesAgentWidget/index.d.ts +0 -1
  184. package/dist/src/widgets/FullPageSalesAgentWidget/index.js +0 -1
  185. package/dist/src/widgets/ProductCardWidget/ProductCardWidget.d.ts +0 -7
  186. package/dist/src/widgets/ProductCardWidget/ProductCardWidget.js +0 -94
  187. package/dist/src/widgets/ProductCardWidget/__tests__/ProductCardWidget.test.d.ts +0 -1
  188. package/dist/src/widgets/ProductCardWidget/__tests__/ProductCardWidget.test.js +0 -106
  189. package/dist/src/widgets/ProductCardWidget/index.d.ts +0 -2
  190. package/dist/src/widgets/ProductCardWidget/index.js +0 -1
  191. package/dist/src/widgets/PromptButtonCarouselWithImageWidget/PromptButtonCarouselWithImageWidget.d.ts +0 -12
  192. package/dist/src/widgets/PromptButtonCarouselWithImageWidget/PromptButtonCarouselWithImageWidget.js +0 -88
  193. package/dist/src/widgets/PromptButtonCarouselWithImageWidget/__tests__/PromptButtonCarouselWithImageWidget.test.d.ts +0 -1
  194. package/dist/src/widgets/PromptButtonCarouselWithImageWidget/__tests__/PromptButtonCarouselWithImageWidget.test.js +0 -132
  195. package/dist/src/widgets/PromptButtonCarouselWithImageWidget/index.d.ts +0 -2
  196. package/dist/src/widgets/PromptButtonCarouselWithImageWidget/index.js +0 -2
  197. package/dist/src/widgets/PromptCarouselWidget/PromptCarouselWidget.d.ts +0 -7
  198. package/dist/src/widgets/PromptCarouselWidget/PromptCarouselWidget.js +0 -74
  199. package/dist/src/widgets/PromptCarouselWidget/__tests__/PromptCarouselWidget.test.d.ts +0 -1
  200. package/dist/src/widgets/PromptCarouselWidget/__tests__/PromptCarouselWidget.test.js +0 -106
  201. package/dist/src/widgets/PromptCarouselWidget/index.d.ts +0 -2
  202. package/dist/src/widgets/PromptCarouselWidget/index.js +0 -1
  203. package/dist/src/widgets/SocialProofFlowWidget/SocialProofFlowWidget.d.ts +0 -7
  204. package/dist/src/widgets/SocialProofFlowWidget/SocialProofFlowWidget.js +0 -25
  205. package/dist/src/widgets/SocialProofFlowWidget/index.d.ts +0 -3
  206. package/dist/src/widgets/SocialProofFlowWidget/index.js +0 -2
  207. package/dist/src/widgets/SocialProofWidget/SocialProofWidget.d.ts +0 -12
  208. package/dist/src/widgets/SocialProofWidget/SocialProofWidget.js +0 -203
  209. package/dist/src/widgets/SocialProofWidget/__tests__/SocialProofWidget.test.d.ts +0 -1
  210. package/dist/src/widgets/SocialProofWidget/__tests__/SocialProofWidget.test.js +0 -135
  211. package/dist/src/widgets/SocialProofWidget/index.d.ts +0 -2
  212. package/dist/src/widgets/SocialProofWidget/index.js +0 -1
  213. package/dist/src/widgets/TitledPromptCarouselWidget/TitledPromptCarouselWidget.d.ts +0 -7
  214. package/dist/src/widgets/TitledPromptCarouselWidget/TitledPromptCarouselWidget.js +0 -75
  215. package/dist/src/widgets/TitledPromptCarouselWidget/__tests__/TitledPromptCarouselWidget.test.d.ts +0 -1
  216. package/dist/src/widgets/TitledPromptCarouselWidget/__tests__/TitledPromptCarouselWidget.test.js +0 -106
  217. package/dist/src/widgets/TitledPromptCarouselWidget/index.d.ts +0 -2
  218. package/dist/src/widgets/TitledPromptCarouselWidget/index.js +0 -1
  219. package/dist/src/widgets/TypingAnimationFlowWidget/TypingAnimationFlowWidget.d.ts +0 -7
  220. package/dist/src/widgets/TypingAnimationFlowWidget/TypingAnimationFlowWidget.js +0 -25
  221. package/dist/src/widgets/TypingAnimationFlowWidget/index.d.ts +0 -3
  222. package/dist/src/widgets/TypingAnimationFlowWidget/index.js +0 -2
  223. package/dist/src/widgets/TypingAnimationWidget/TypingAnimationWidget.d.ts +0 -12
  224. package/dist/src/widgets/TypingAnimationWidget/TypingAnimationWidget.js +0 -126
  225. package/dist/src/widgets/TypingAnimationWidget/__tests__/TypingAnimationWidget.test.d.ts +0 -1
  226. package/dist/src/widgets/TypingAnimationWidget/__tests__/TypingAnimationWidget.test.js +0 -118
  227. package/dist/src/widgets/TypingAnimationWidget/index.d.ts +0 -2
  228. package/dist/src/widgets/TypingAnimationWidget/index.js +0 -1
  229. package/dist/src/widgets/__tests__/testUtils.d.ts +0 -60
  230. package/dist/src/widgets/__tests__/testUtils.js +0 -46
  231. package/dist/src/widgets/__tests__/trackEventCanary.test.d.ts +0 -1
  232. package/dist/src/widgets/__tests__/trackEventCanary.test.js +0 -37
  233. package/dist/src/widgets/hooks/useGetWidgetStatus.d.ts +0 -7
  234. package/dist/src/widgets/hooks/useGetWidgetStatus.js +0 -17
  235. package/dist/src/widgets/utils/functions.d.ts +0 -16
  236. package/dist/src/widgets/utils/functions.js +0 -87
  237. package/dist/src/widgets-v2/SearchResults/index.d.ts +0 -2
  238. package/dist/src/widgets-v2/SearchResults/index.js +0 -2
  239. package/dist/src/widgets-v2/SearchZeroState/index.d.ts +0 -2
  240. package/dist/src/widgets-v2/SearchZeroState/index.js +0 -2
  241. package/dist/src/widgets-v2/SuggestionBar/index.d.ts +0 -2
  242. package/dist/src/widgets-v2/SuggestionBar/index.js +0 -2
  243. package/dist/src/widgets-v2/SuggestionButtonContainer/index.d.ts +0 -2
  244. package/dist/src/widgets-v2/SuggestionButtonContainer/index.js +0 -2
  245. package/dist/tsdown.config.d.ts +0 -2
  246. package/dist/tsdown.config.js +0 -12
@@ -1,106 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { render, screen, waitFor } from '@testing-library/react';
3
- import { EnviveMetricsEventName, SpiffyMetricsEventName, } from '@envive-ai/react-hooks/contexts/amplitudeContext';
4
- import { WidgetTypeV3 } from '@envive-ai/react-hooks/contexts/typesV3';
5
- import { UserEventCategory } from '@spiffy-ai/commerce-api-client';
6
- import { ProductCardWidget } from '../ProductCardWidget';
7
- const mockTrackEvent = vi.fn();
8
- const mockGetHardcopy = vi.fn();
9
- vi.mock('@envive-ai/react-toolkit-v3/ProductCard', () => ({
10
- ProductCard: ({ prompts, onSelect }) => (_jsx("div", { "data-testid": "product-card-mock", children: prompts.map(text => (_jsx("button", { type: "button", onClick: () => onSelect(text), children: text }, text))) })),
11
- }));
12
- vi.mock('@envive-ai/react-hooks/contexts/amplitudeContext', () => ({
13
- useAmplitude: () => ({
14
- trackEvent: mockTrackEvent,
15
- isReady: true,
16
- }),
17
- SpiffyMetricsEventName: {
18
- ChatComponentVisible: 'Chat Component Visible',
19
- SearchComponentVisible: 'Search Component Visible',
20
- },
21
- EnviveMetricsEventName: {
22
- WidgetTextClicked: 'Widget Text Clicked',
23
- },
24
- }));
25
- vi.mock('@envive-ai/react-hooks/contexts/hardcopyContext', () => ({
26
- useHardcopy: () => ({
27
- getHardcopy: mockGetHardcopy,
28
- }),
29
- }));
30
- vi.mock('@envive-ai/react-hooks/contexts/pageContext', () => ({
31
- usePage: () => ({
32
- userEvent: {
33
- id: 'test-user-event-id',
34
- category: UserEventCategory.PageVisit,
35
- created_at: '2025-01-01T00:00:00Z',
36
- event_id: 'test-event-id',
37
- },
38
- }),
39
- }));
40
- vi.mock('@envive-ai/react-hooks/contexts/widgetConfigContext', () => ({
41
- useWidgetConfig: () => ({
42
- getWidgetConfig: vi.fn().mockResolvedValue({}),
43
- }),
44
- }));
45
- vi.mock('@envive-ai/react-hooks/contexts/uiConfigContext', () => ({
46
- useUiConfig: () => ({
47
- getUiConfig: vi.fn().mockResolvedValue({}),
48
- }),
49
- }));
50
- vi.mock('@envive-ai/react-hooks/contexts/salesAgentContext', () => ({
51
- useSalesAgent: () => ({
52
- onTypedMessageSubmitted: vi.fn(),
53
- }),
54
- }));
55
- vi.mock('@envive-ai/react-hooks/hooks/ChatToggle', () => ({
56
- useChatToggle: () => ({
57
- openChat: vi.fn(),
58
- }),
59
- }));
60
- describe('ProductCardWidget analytics', () => {
61
- const defaultHardcopy = {
62
- responseId: 'test-response-id',
63
- language: 'en',
64
- values: {
65
- prompts: ['Prompt 1', 'Prompt 2', 'Prompt 3'],
66
- },
67
- rawValues: {
68
- prompts: [
69
- { id: 'id-1', value: 'Prompt 1' },
70
- { id: 'id-2', value: 'Prompt 2' },
71
- ],
72
- },
73
- };
74
- beforeEach(() => {
75
- vi.clearAllMocks();
76
- mockGetHardcopy.mockResolvedValue(defaultHardcopy);
77
- });
78
- it('should track ChatComponentVisible when widget mounts', async () => {
79
- render(_jsx(ProductCardWidget, { widgetConfigId: "test-config-1" }));
80
- await waitFor(() => {
81
- expect(mockTrackEvent).toHaveBeenCalledWith({
82
- eventName: SpiffyMetricsEventName.ChatComponentVisible,
83
- eventProps: {
84
- widget_config_id: 'test-config-1',
85
- widget_type: WidgetTypeV3.ProductCardV3,
86
- },
87
- });
88
- }, { timeout: 3000 });
89
- }, 5000);
90
- it('should track WidgetTextClicked when prompt is selected', async () => {
91
- render(_jsx(ProductCardWidget, { widgetConfigId: "test-config-2" }));
92
- await waitFor(() => {
93
- expect(screen.getByText('Prompt 1')).toBeInTheDocument();
94
- }, { timeout: 3000 });
95
- mockTrackEvent.mockClear();
96
- screen.getByText('Prompt 1').click();
97
- expect(mockTrackEvent).toHaveBeenCalledWith({
98
- eventName: EnviveMetricsEventName.WidgetTextClicked,
99
- eventProps: {
100
- response_id: 'test-response-id',
101
- string_id: 'id-1',
102
- text: 'Prompt 1',
103
- },
104
- });
105
- }, 5000);
106
- });
@@ -1,2 +0,0 @@
1
- export { ProductCardWidget } from './ProductCardWidget';
2
- export type { ProductCardWidgetProps } from './ProductCardWidget';
@@ -1 +0,0 @@
1
- export { ProductCardWidget } from './ProductCardWidget';
@@ -1,12 +0,0 @@
1
- import { BaseWidgetProps } from '../../hocs/withBaseWidget/types';
2
- export declare const PromptButtonCarouselWithImageWidgetWithBaseWidget: {
3
- (props: BaseWidgetProps): import("react/jsx-runtime").JSX.Element;
4
- displayName: string;
5
- };
6
- export interface PromptButtonCarouselWithImageWidgetProps {
7
- widgetConfigId: string;
8
- }
9
- export declare const PromptButtonCarouselWithImageWidget: {
10
- ({ widgetConfigId, }: PromptButtonCarouselWithImageWidgetProps): import("react/jsx-runtime").JSX.Element;
11
- displayName: string;
12
- };
@@ -1,88 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useSalesAgent } from '@envive-ai/react-hooks/contexts/salesAgentContext';
3
- import { WidgetTypeV3, } from '@envive-ai/react-hooks/contexts/typesV3';
4
- import { useChatToggle } from '@envive-ai/react-hooks/hooks/ChatToggle';
5
- import { ChatElementDisplayLocationV3, VariantTypeEnum, } from '@envive-ai/react-hooks/application/models';
6
- import { variantInfoAtom } from '@envive-ai/react-hooks/atoms/app';
7
- import { lastAssistantMessageAtom } from '@envive-ai/react-hooks/atoms/chat';
8
- import { EnviveMetricsEventName, SpiffyMetricsEventName, useAmplitude, } from '@envive-ai/react-hooks/contexts/amplitudeContext';
9
- import { useWidgetInteraction } from '@envive-ai/react-hooks/hooks/WidgetInteraction';
10
- import { WidgetInteractionComponent, WidgetInteractionType, } from '@envive-ai/react-hooks/hooks/WidgetInteraction/types';
11
- import { PromptButtonCarouselWithImage, } from '@envive-ai/react-toolkit-v3/PromptButtonCarouselWithImage';
12
- import { usePromptCarouselAnalytics } from '@envive-ai/react-toolkit-v3/PromptCarousel';
13
- import { Theme } from '@envive-ai/react-toolkit-v3/Tokens';
14
- import { useAtomValue } from 'jotai';
15
- import { useCallback, useEffect, useMemo } from 'react';
16
- import { withBaseWidget } from '../../hocs/withBaseWidget/withBaseWidget';
17
- import { getRecentProductImageUrls, getStringIdForText } from '../utils/functions';
18
- const PromptButtonCarouselWithImageWidgetHandler = (props) => {
19
- const { onTypedMessageSubmitted } = useSalesAgent();
20
- const { openChat } = useChatToggle();
21
- const { trackWidgetInteraction } = useWidgetInteraction();
22
- const { onClick: onSuggestionClick, onDrag, onHover, onMouseDown, onMouseUp, onTouchStart, onTouchEnd, } = usePromptCarouselAnalytics(WidgetInteractionComponent.SINGLE_IMAGE_PROMPT, text => text);
23
- const { hardcopyContent, widgetConfig, isLoading, widgetConfigId } = props;
24
- const promptButtonCarouselWithImageWidgetConfig = widgetConfig;
25
- const id = widgetConfig?.contentId;
26
- const hardCopyContent = {
27
- title: hardcopyContent?.values?.titleLabel,
28
- promptButtonsTexts: hardcopyContent?.values?.promptButtonsTexts,
29
- textFieldPlaceholder: hardcopyContent?.values?.textFieldPlaceholderText,
30
- };
31
- const { trackEvent } = useAmplitude();
32
- useEffect(() => {
33
- trackEvent({
34
- eventName: SpiffyMetricsEventName.ChatComponentVisible,
35
- eventProps: {
36
- widget_config_id: widgetConfigId,
37
- widget_type: WidgetTypeV3.PromptButtonCarouselWithImageV3,
38
- },
39
- });
40
- }, [trackEvent, widgetConfigId]);
41
- const handlePromptButtonClick = useCallback((text) => {
42
- const rawValues = hardcopyContent?.rawValues;
43
- const stringId = getStringIdForText(rawValues, text);
44
- trackEvent({
45
- eventName: EnviveMetricsEventName.WidgetTextClicked,
46
- eventProps: {
47
- response_id: hardcopyContent?.responseId,
48
- string_id: stringId,
49
- text,
50
- },
51
- });
52
- onTypedMessageSubmitted({
53
- query: text,
54
- userTyped: false,
55
- displayLocation: ChatElementDisplayLocationV3.PROMPT_BUTTON_CAROUSEL_WITH_IMAGE_PROMPT_BUTTON,
56
- });
57
- openChat(ChatElementDisplayLocationV3.PROMPT_BUTTON_CAROUSEL_WITH_IMAGE_PROMPT_BUTTON);
58
- onSuggestionClick(text);
59
- }, [onTypedMessageSubmitted, openChat]);
60
- const handleTextFieldClick = useCallback(() => {
61
- openChat(ChatElementDisplayLocationV3.PROMPT_BUTTON_CAROUSEL_WITH_IMAGE_TEXT_FIELD);
62
- trackWidgetInteraction({
63
- eventName: EnviveMetricsEventName.WidgetInteraction,
64
- trigger: {
65
- widget: WidgetInteractionComponent.SINGLE_IMAGE_PROMPT,
66
- widget_interaction: WidgetInteractionType.QUERY_INPUT_CLICKED,
67
- },
68
- });
69
- }, [openChat]);
70
- const variantInfo = useAtomValue(variantInfoAtom);
71
- const productId = variantInfo.variant === VariantTypeEnum.Pdp ? variantInfo.productId : undefined;
72
- const lastAssistantMessage = useAtomValue(lastAssistantMessageAtom);
73
- const productImageUrls = useMemo(() => (lastAssistantMessage ? getRecentProductImageUrls(lastAssistantMessage, productId) : []), [lastAssistantMessage, productId]);
74
- const productImageUrl = productImageUrls[1] ?? productImageUrls[0] ?? '';
75
- const isDynamic = promptButtonCarouselWithImageWidgetConfig?.isDynamic ?? false;
76
- const finalImageSrc = isDynamic
77
- ? productImageUrl
78
- : promptButtonCarouselWithImageWidgetConfig?.image?.src;
79
- const finalImageAlt = isDynamic
80
- ? 'Product Image From Page'
81
- : promptButtonCarouselWithImageWidgetConfig?.image?.alt;
82
- return (_jsx(PromptButtonCarouselWithImage, { id: id, theme: Theme.GLOBAL_CUSTOM, isLoading: isLoading, title: hardCopyContent?.title, promptButtonsTexts: hardCopyContent?.promptButtonsTexts, promptButtonType: promptButtonCarouselWithImageWidgetConfig?.promptButtonType, imageSrc: finalImageSrc, alt: finalImageAlt, textFieldPlaceholder: hardCopyContent?.textFieldPlaceholder, hideTextField: promptButtonCarouselWithImageWidgetConfig?.hideTextField, handlePromptButtonClick: handlePromptButtonClick, handlePromptButtonDrag: onDrag, handlePromptButtonHover: onHover, handlePromptButtonMouseDown: onMouseDown, handlePromptButtonMouseUp: onMouseUp, handlePromptButtonTouchStart: onTouchStart, handlePromptButtonTouchEnd: onTouchEnd, handleTextFieldClick: handleTextFieldClick }));
83
- };
84
- export const PromptButtonCarouselWithImageWidgetWithBaseWidget = withBaseWidget(PromptButtonCarouselWithImageWidgetHandler);
85
- export const PromptButtonCarouselWithImageWidget = ({ widgetConfigId, }) => {
86
- return (_jsx(PromptButtonCarouselWithImageWidgetWithBaseWidget, { widgetConfigId: widgetConfigId, widgetType: WidgetTypeV3.PromptButtonCarouselWithImageV3 }));
87
- };
88
- PromptButtonCarouselWithImageWidget.displayName = 'PromptButtonCarouselWithImageWidget';
@@ -1,132 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { render, screen, waitFor } from '@testing-library/react';
3
- import { EnviveMetricsEventName, SpiffyMetricsEventName, } from '@envive-ai/react-hooks/contexts/amplitudeContext';
4
- import { WidgetTypeV3 } from '@envive-ai/react-hooks/contexts/typesV3';
5
- import { UserEventCategory } from '@spiffy-ai/commerce-api-client';
6
- import { PromptButtonCarouselWithImageWidget } from '../PromptButtonCarouselWithImageWidget';
7
- const mockTrackEvent = vi.fn();
8
- const mockGetHardcopy = vi.fn();
9
- vi.mock('@envive-ai/react-toolkit-v3/PromptButtonCarouselWithImage', () => ({
10
- PromptButtonCarouselWithImage: ({ promptButtonsTexts = [], handlePromptButtonClick, }) => (_jsx("div", { "data-testid": "prompt-button-carousel-mock", children: (promptButtonsTexts ?? []).map(text => (_jsx("button", { type: "button", onClick: () => handlePromptButtonClick(text), children: text }, text))) })),
11
- }));
12
- vi.mock('@envive-ai/react-hooks/contexts/amplitudeContext', () => ({
13
- useAmplitude: () => ({
14
- trackEvent: mockTrackEvent,
15
- isReady: true,
16
- }),
17
- SpiffyMetricsEventName: {
18
- ChatComponentVisible: 'Chat Component Visible',
19
- SearchComponentVisible: 'Search Component Visible',
20
- },
21
- EnviveMetricsEventName: {
22
- WidgetTextClicked: 'Widget Text Clicked',
23
- },
24
- }));
25
- vi.mock('@envive-ai/react-hooks/contexts/hardcopyContext', () => ({
26
- useHardcopy: () => ({
27
- getHardcopy: mockGetHardcopy,
28
- }),
29
- }));
30
- vi.mock('@envive-ai/react-hooks/contexts/pageContext', () => ({
31
- usePage: () => ({
32
- userEvent: {
33
- id: 'test-user-event-id',
34
- category: UserEventCategory.PageVisit,
35
- created_at: '2025-01-01T00:00:00Z',
36
- event_id: 'test-event-id',
37
- },
38
- }),
39
- }));
40
- vi.mock('@envive-ai/react-hooks/contexts/widgetConfigContext', () => ({
41
- useWidgetConfig: () => ({
42
- getWidgetConfig: vi.fn().mockResolvedValue({}),
43
- }),
44
- }));
45
- vi.mock('@envive-ai/react-hooks/contexts/uiConfigContext', () => ({
46
- useUiConfig: () => ({
47
- getUiConfig: vi.fn().mockResolvedValue({}),
48
- }),
49
- }));
50
- vi.mock('@envive-ai/react-hooks/contexts/salesAgentContext', () => ({
51
- useSalesAgent: () => ({
52
- onTypedMessageSubmitted: vi.fn(),
53
- }),
54
- }));
55
- vi.mock('@envive-ai/react-hooks/hooks/ChatToggle', () => ({
56
- useChatToggle: () => ({
57
- openChat: vi.fn(),
58
- }),
59
- }));
60
- vi.mock('@envive-ai/react-hooks/atoms/chat', () => ({
61
- lastAssistantMessageAtom: {},
62
- }));
63
- vi.mock('@envive-ai/react-hooks/atoms/app', () => ({
64
- variantInfoAtom: {},
65
- }));
66
- vi.mock('jotai', async (importOriginal) => {
67
- const actual = await importOriginal();
68
- const variantInfo = {
69
- variant: 'PageVisit',
70
- productId: undefined,
71
- plpId: undefined,
72
- url: '',
73
- pageVisitCategory: '',
74
- };
75
- const useAtomValueMock = vi.fn();
76
- let callCount = 0;
77
- useAtomValueMock.mockImplementation(() => {
78
- callCount += 1;
79
- return callCount % 2 === 0 ? [] : variantInfo;
80
- });
81
- return {
82
- ...actual,
83
- useAtomValue: useAtomValueMock,
84
- };
85
- });
86
- describe('PromptButtonCarouselWithImageWidget analytics', () => {
87
- const defaultHardcopy = {
88
- responseId: 'test-response-id',
89
- language: 'en',
90
- values: {
91
- promptButtonsTexts: ['Button 1', 'Button 2', 'Button 3'],
92
- },
93
- rawValues: {
94
- promptButtonsTexts: [
95
- { id: 'id-1', value: 'Button 1' },
96
- { id: 'id-2', value: 'Button 2' },
97
- ],
98
- },
99
- };
100
- beforeEach(() => {
101
- vi.clearAllMocks();
102
- mockGetHardcopy.mockResolvedValue(defaultHardcopy);
103
- });
104
- it('should track ChatComponentVisible when widget mounts', async () => {
105
- render(_jsx(PromptButtonCarouselWithImageWidget, { widgetConfigId: "test-config-1" }));
106
- await waitFor(() => {
107
- expect(mockTrackEvent).toHaveBeenCalledWith({
108
- eventName: SpiffyMetricsEventName.ChatComponentVisible,
109
- eventProps: {
110
- widget_config_id: 'test-config-1',
111
- widget_type: WidgetTypeV3.PromptButtonCarouselWithImageV3,
112
- },
113
- });
114
- }, { timeout: 3000 });
115
- }, 5000);
116
- it('should track WidgetTextClicked when button is clicked', async () => {
117
- render(_jsx(PromptButtonCarouselWithImageWidget, { widgetConfigId: "test-config-2" }));
118
- await waitFor(() => {
119
- expect(screen.getByText('Button 1')).toBeInTheDocument();
120
- }, { timeout: 3000 });
121
- mockTrackEvent.mockClear();
122
- screen.getByText('Button 1').click();
123
- expect(mockTrackEvent).toHaveBeenCalledWith({
124
- eventName: EnviveMetricsEventName.WidgetTextClicked,
125
- eventProps: {
126
- response_id: 'test-response-id',
127
- string_id: 'id-1',
128
- text: 'Button 1',
129
- },
130
- });
131
- }, 5000);
132
- });
@@ -1,2 +0,0 @@
1
- import { PromptButtonCarouselWithImageWidget, PromptButtonCarouselWithImageWidgetWithBaseWidget } from './PromptButtonCarouselWithImageWidget';
2
- export { PromptButtonCarouselWithImageWidget, PromptButtonCarouselWithImageWidgetWithBaseWidget };
@@ -1,2 +0,0 @@
1
- import { PromptButtonCarouselWithImageWidget, PromptButtonCarouselWithImageWidgetWithBaseWidget, } from './PromptButtonCarouselWithImageWidget';
2
- export { PromptButtonCarouselWithImageWidget, PromptButtonCarouselWithImageWidgetWithBaseWidget };
@@ -1,7 +0,0 @@
1
- export interface PromptCarouselWidgetProps {
2
- widgetConfigId: string;
3
- }
4
- export declare const PromptCarouselWidget: {
5
- ({ widgetConfigId }: PromptCarouselWidgetProps): import("react/jsx-runtime").JSX.Element;
6
- displayName: string;
7
- };
@@ -1,74 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { ChatElementDisplayLocationV3 } from '@envive-ai/react-hooks/application/models';
3
- import { EnviveMetricsEventName, SpiffyMetricsEventName, useAmplitude, } from '@envive-ai/react-hooks/contexts/amplitudeContext';
4
- import { useSalesAgent } from '@envive-ai/react-hooks/contexts/salesAgentContext';
5
- import { WidgetTypeV3, } from '@envive-ai/react-hooks/contexts/typesV3';
6
- import { useCallback, useEffect } from 'react';
7
- import { useChatToggle } from '@envive-ai/react-hooks/hooks/ChatToggle';
8
- import { WidgetInteractionComponent } from '@envive-ai/react-hooks/hooks/WidgetInteraction/types';
9
- import { PromptCarousel, usePromptCarouselAnalytics, } from '@envive-ai/react-toolkit-v3/PromptCarousel';
10
- import { AnimationSpeed } from '@envive-ai/react-toolkit-v3/PromptCarousel/types/types';
11
- import { Theme } from '@envive-ai/react-toolkit-v3/Tokens';
12
- import { withBaseWidget } from '../../hocs/withBaseWidget';
13
- import { getStringIdForText } from '../utils/functions';
14
- const mockButtonTexts = [
15
- 'Loading button 1',
16
- 'Loading button 2',
17
- 'Loading button 3',
18
- 'Loading button 4',
19
- 'Loading button 5',
20
- ];
21
- const PromptCarouselWidgetHandler = (props) => {
22
- const { onTypedMessageSubmitted } = useSalesAgent();
23
- const { openChat } = useChatToggle();
24
- const { hardcopyContent, widgetConfig, isLoading, widgetConfigId } = props;
25
- const { onClick: onSuggestionClick, onDrag, onHover, onMouseDown, onMouseUp, onTouchStart, onTouchEnd, } = usePromptCarouselAnalytics(WidgetInteractionComponent.SUGGESTION_BAR, text => {
26
- const rawValues = hardcopyContent?.rawValues;
27
- return getStringIdForText(rawValues, text);
28
- });
29
- const promptButtonTexts = hardcopyContent?.values?.promptButtonTexts || [];
30
- const buttonTexts = isLoading ? mockButtonTexts : promptButtonTexts;
31
- const promptCarouselWidgetConfig = widgetConfig;
32
- const id = promptCarouselWidgetConfig?.contentId;
33
- const boldFirstButton = promptCarouselWidgetConfig?.boldFirstButton;
34
- const promptButtonType = promptCarouselWidgetConfig?.promptButtonType;
35
- const promptCarouselRows = promptCarouselWidgetConfig?.promptCarouselRows;
36
- const animationSpeed = isLoading
37
- ? AnimationSpeed.NONE
38
- : promptCarouselWidgetConfig?.animationSpeed;
39
- const { trackEvent } = useAmplitude();
40
- useEffect(() => {
41
- trackEvent({
42
- eventName: SpiffyMetricsEventName.ChatComponentVisible,
43
- eventProps: {
44
- widget_config_id: widgetConfigId,
45
- widget_type: WidgetTypeV3.PromptCarouselV3,
46
- },
47
- });
48
- }, [trackEvent, widgetConfigId]);
49
- const handleButtonClick = useCallback((text) => {
50
- const rawValues = hardcopyContent?.rawValues;
51
- const stringId = getStringIdForText(rawValues, text);
52
- onSuggestionClick(stringId);
53
- trackEvent({
54
- eventName: EnviveMetricsEventName.WidgetTextClicked,
55
- eventProps: {
56
- response_id: hardcopyContent?.responseId,
57
- string_id: stringId,
58
- text,
59
- },
60
- });
61
- onTypedMessageSubmitted({
62
- query: text,
63
- userTyped: false,
64
- displayLocation: ChatElementDisplayLocationV3.PROMPT_CAROUSEL,
65
- });
66
- openChat(ChatElementDisplayLocationV3.PROMPT_CAROUSEL);
67
- }, [trackEvent, hardcopyContent, onTypedMessageSubmitted, openChat]);
68
- return (_jsx(PromptCarousel, { ...props, id: id, theme: Theme.GLOBAL_CUSTOM, isLoading: isLoading, boldFirstButton: boldFirstButton, promptButtonType: promptButtonType, promptCarouselRows: promptCarouselRows, animationSpeed: animationSpeed, handleButtonClick: handleButtonClick, handleButtonHover: onHover, handleButtonDrag: onDrag, handleButtonMouseUp: onMouseUp, handleButtonMouseDown: onMouseDown, handleButtonTouchStart: onTouchStart, handleButtonTouchEnd: onTouchEnd, promptButtonTexts: buttonTexts }));
69
- };
70
- const PromptCarouselWidgetWithBaseWidget = withBaseWidget(PromptCarouselWidgetHandler);
71
- export const PromptCarouselWidget = ({ widgetConfigId }) => {
72
- return (_jsx(PromptCarouselWidgetWithBaseWidget, { widgetConfigId: widgetConfigId, widgetType: WidgetTypeV3.PromptCarouselV3 }));
73
- };
74
- PromptCarouselWidget.displayName = 'PromptCarouselWidget';
@@ -1,106 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { render, screen, waitFor } from '@testing-library/react';
3
- import { EnviveMetricsEventName, SpiffyMetricsEventName, } from '@envive-ai/react-hooks/contexts/amplitudeContext';
4
- import { WidgetTypeV3 } from '@envive-ai/react-hooks/contexts/typesV3';
5
- import { UserEventCategory } from '@spiffy-ai/commerce-api-client';
6
- import { PromptCarouselWidget } from '../PromptCarouselWidget';
7
- const mockTrackEvent = vi.fn();
8
- const mockGetHardcopy = vi.fn();
9
- vi.mock('@envive-ai/react-toolkit-v3/PromptCarousel', () => ({
10
- PromptCarousel: ({ promptButtonTexts, handleButtonClick, }) => (_jsx("div", { "data-testid": "prompt-carousel-mock", children: promptButtonTexts.map(text => (_jsx("button", { type: "button", onClick: () => handleButtonClick(text), children: text }, text))) })),
11
- }));
12
- vi.mock('@envive-ai/react-hooks/contexts/amplitudeContext', () => ({
13
- useAmplitude: () => ({
14
- trackEvent: mockTrackEvent,
15
- isReady: true,
16
- }),
17
- SpiffyMetricsEventName: {
18
- ChatComponentVisible: 'Chat Component Visible',
19
- SearchComponentVisible: 'Search Component Visible',
20
- },
21
- EnviveMetricsEventName: {
22
- WidgetTextClicked: 'Widget Text Clicked',
23
- },
24
- }));
25
- vi.mock('@envive-ai/react-hooks/contexts/hardcopyContext', () => ({
26
- useHardcopy: () => ({
27
- getHardcopy: mockGetHardcopy,
28
- }),
29
- }));
30
- vi.mock('@envive-ai/react-hooks/contexts/pageContext', () => ({
31
- usePage: () => ({
32
- userEvent: {
33
- id: 'test-user-event-id',
34
- category: UserEventCategory.PageVisit,
35
- created_at: '2025-01-01T00:00:00Z',
36
- event_id: 'test-event-id',
37
- },
38
- }),
39
- }));
40
- vi.mock('@envive-ai/react-hooks/contexts/widgetConfigContext', () => ({
41
- useWidgetConfig: () => ({
42
- getWidgetConfig: vi.fn().mockResolvedValue({}),
43
- }),
44
- }));
45
- vi.mock('@envive-ai/react-hooks/contexts/uiConfigContext', () => ({
46
- useUiConfig: () => ({
47
- getUiConfig: vi.fn().mockResolvedValue({}),
48
- }),
49
- }));
50
- vi.mock('@envive-ai/react-hooks/contexts/salesAgentContext', () => ({
51
- useSalesAgent: () => ({
52
- onTypedMessageSubmitted: vi.fn(),
53
- }),
54
- }));
55
- vi.mock('@envive-ai/react-hooks/hooks/ChatToggle', () => ({
56
- useChatToggle: () => ({
57
- openChat: vi.fn(),
58
- }),
59
- }));
60
- describe('PromptCarouselWidget analytics', () => {
61
- const defaultHardcopy = {
62
- responseId: 'test-response-id',
63
- language: 'en',
64
- values: {
65
- promptButtonTexts: ['Button 1', 'Button 2', 'Button 3'],
66
- },
67
- rawValues: {
68
- promptButtonTexts: [
69
- { id: 'id-1', value: 'Button 1' },
70
- { id: 'id-2', value: 'Button 2' },
71
- ],
72
- },
73
- };
74
- beforeEach(() => {
75
- vi.clearAllMocks();
76
- mockGetHardcopy.mockResolvedValue(defaultHardcopy);
77
- });
78
- it('should track ChatComponentVisible when widget mounts', async () => {
79
- render(_jsx(PromptCarouselWidget, { widgetConfigId: "test-config-1" }));
80
- await waitFor(() => {
81
- expect(mockTrackEvent).toHaveBeenCalledWith({
82
- eventName: SpiffyMetricsEventName.ChatComponentVisible,
83
- eventProps: {
84
- widget_config_id: 'test-config-1',
85
- widget_type: WidgetTypeV3.PromptCarouselV3,
86
- },
87
- });
88
- }, { timeout: 3000 });
89
- }, 5000);
90
- it('should track WidgetTextClicked when button is clicked', async () => {
91
- render(_jsx(PromptCarouselWidget, { widgetConfigId: "test-config-2" }));
92
- await waitFor(() => {
93
- expect(screen.getByText('Button 1')).toBeInTheDocument();
94
- }, { timeout: 3000 });
95
- mockTrackEvent.mockClear();
96
- screen.getByText('Button 1').click();
97
- expect(mockTrackEvent).toHaveBeenCalledWith({
98
- eventName: EnviveMetricsEventName.WidgetTextClicked,
99
- eventProps: {
100
- response_id: 'test-response-id',
101
- string_id: 'id-1',
102
- text: 'Button 1',
103
- },
104
- });
105
- }, 5000);
106
- });
@@ -1,2 +0,0 @@
1
- export { PromptCarouselWidget } from './PromptCarouselWidget';
2
- export type { PromptCarouselWidgetProps } from './PromptCarouselWidget';
@@ -1 +0,0 @@
1
- export { PromptCarouselWidget } from './PromptCarouselWidget';
@@ -1,7 +0,0 @@
1
- export interface SocialProofFlowWidgetProps {
2
- widgetConfigId: string;
3
- }
4
- export declare const SocialProofFlowWidget: {
5
- ({ widgetConfigId }: SocialProofFlowWidgetProps): import("react/jsx-runtime").JSX.Element;
6
- displayName: string;
7
- };
@@ -1,25 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { WidgetTypeV3 } from '@envive-ai/react-hooks/contexts/typesV3';
3
- import { ChatPreviewLoading } from '@envive-ai/react-toolkit-v3/ChatPreviewLoading';
4
- import useGetWidgetStatus from '../hooks/useGetWidgetStatus';
5
- import { ChatPreviewLoadingWidgetWithBaseWidget } from '../ChatPreviewLoadingWidget/ChatPreviewLoadingWidget';
6
- import { SocialProofWidgetWithBaseWidget } from '../SocialProofWidget/SocialProofWidget';
7
- import { ChatPreviewComparisonWidgetWithBaseWidget } from '../ChatPreviewComparisonWidget/ChatPreviewComparisonWidget';
8
- import { ChatPreviewWidgetWithBaseWidget } from '../ChatPreviewWidget/ChatPreviewWidget';
9
- export const SocialProofFlowWidget = ({ widgetConfigId }) => {
10
- const { userHasInteractedValue, userHasNotInteractedValue, isLoadingValue, isProductComparisonValue, } = useGetWidgetStatus();
11
- if (userHasInteractedValue && isLoadingValue) {
12
- return (_jsx(ChatPreviewLoadingWidgetWithBaseWidget, { widgetConfigId: widgetConfigId, widgetType: WidgetTypeV3.ChatPreviewLoadingV3 }));
13
- }
14
- if (userHasInteractedValue && isProductComparisonValue) {
15
- return (_jsx(ChatPreviewComparisonWidgetWithBaseWidget, { widgetConfigId: widgetConfigId, widgetType: WidgetTypeV3.ChatPreviewComparisonV3 }));
16
- }
17
- if (userHasInteractedValue) {
18
- return (_jsx(ChatPreviewWidgetWithBaseWidget, { widgetConfigId: widgetConfigId, widgetType: WidgetTypeV3.ChatPreviewV3 }));
19
- }
20
- if (userHasNotInteractedValue) {
21
- return (_jsx(SocialProofWidgetWithBaseWidget, { widgetConfigId: widgetConfigId, widgetType: WidgetTypeV3.SocialProofV3 }));
22
- }
23
- return _jsx(ChatPreviewLoading, { fullIsLoading: true });
24
- };
25
- SocialProofFlowWidget.displayName = 'SocialProofFlowWidget';
@@ -1,3 +0,0 @@
1
- import { SocialProofFlowWidget } from './SocialProofFlowWidget';
2
- export { SocialProofFlowWidget };
3
- export type { SocialProofFlowWidgetProps } from './SocialProofFlowWidget';
@@ -1,2 +0,0 @@
1
- import { SocialProofFlowWidget } from './SocialProofFlowWidget';
2
- export { SocialProofFlowWidget };
@@ -1,12 +0,0 @@
1
- import { BaseWidgetProps } from '../../hocs/withBaseWidget/types';
2
- export declare const SocialProofWidgetWithBaseWidget: {
3
- (props: BaseWidgetProps): import("react/jsx-runtime").JSX.Element;
4
- displayName: string;
5
- };
6
- export interface SocialProofWidgetProps {
7
- widgetConfigId: string;
8
- }
9
- export declare const SocialProofWidget: {
10
- ({ widgetConfigId }: SocialProofWidgetProps): import("react/jsx-runtime").JSX.Element;
11
- displayName: string;
12
- };