@envive-ai/react-toolkit-v3 0.3.21 → 0.3.23

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 (284) hide show
  1. package/dist/AnimatedText/AnimatedText.d.cts +3 -3
  2. package/dist/AnimatedText/AnimatedText.d.ts +3 -3
  3. package/dist/CSSVariablesEditor/CssVariablesEditorComponent.d.cts +2 -2
  4. package/dist/CSSVariablesEditor/CssVariablesEditorComponent.d.ts +2 -2
  5. package/dist/Carousel/Carousel.cjs +1 -1
  6. package/dist/Carousel/Carousel.d.cts +2 -2
  7. package/dist/Carousel/Carousel.d.ts +2 -2
  8. package/dist/Carousel/Carousel.js +1 -1
  9. package/dist/Carousel/components/Container.cjs +2 -2
  10. package/dist/Carousel/components/Container.js +2 -2
  11. package/dist/ChatFooter/ChatFooter.cjs +7 -3
  12. package/dist/ChatFooter/ChatFooter.d.cts +7 -3
  13. package/dist/ChatFooter/ChatFooter.d.ts +5 -1
  14. package/dist/ChatFooter/ChatFooter.js +7 -3
  15. package/dist/ChatFooter/components/Layout.cjs +2 -2
  16. package/dist/ChatFooter/components/Layout.js +2 -2
  17. package/dist/ChatFooter/components/index.d.cts +10 -6
  18. package/dist/ChatFooter/components/index.d.ts +7 -3
  19. package/dist/ChatFooter/types/types.d.cts +16 -0
  20. package/dist/ChatFooter/types/types.d.ts +16 -0
  21. package/dist/ChatHeader/ChatHeader.cjs +2 -1
  22. package/dist/ChatHeader/ChatHeader.d.cts +2 -2
  23. package/dist/ChatHeader/ChatHeader.d.ts +2 -2
  24. package/dist/ChatHeader/ChatHeader.js +2 -1
  25. package/dist/ChatHeader/components/Handle.cjs +4 -4
  26. package/dist/ChatHeader/components/Handle.js +4 -4
  27. package/dist/ChatHeader/components/Toggle.cjs +3 -3
  28. package/dist/ChatHeader/components/Toggle.js +3 -3
  29. package/dist/ChatHeader/hooks/useGetHandleProperties.cjs +8 -6
  30. package/dist/ChatHeader/hooks/useGetHandleProperties.js +8 -6
  31. package/dist/ChatHeader/hooks/useGetToggleOptionProperties.cjs +1 -1
  32. package/dist/ChatHeader/hooks/useGetToggleOptionProperties.js +1 -1
  33. package/dist/ChatPreview/ChatPreview.cjs +7 -4
  34. package/dist/ChatPreview/ChatPreview.d.cts +2 -2
  35. package/dist/ChatPreview/ChatPreview.js +7 -4
  36. package/dist/ChatPreview/index.d.cts +2 -2
  37. package/dist/ChatPreview/index.d.ts +2 -2
  38. package/dist/ChatPreview/types/types.d.cts +13 -1
  39. package/dist/ChatPreview/types/types.d.ts +13 -1
  40. package/dist/ChatPreviewComparison/ChatPreviewComparison.cjs +7 -4
  41. package/dist/ChatPreviewComparison/ChatPreviewComparison.d.cts +2 -2
  42. package/dist/ChatPreviewComparison/ChatPreviewComparison.d.ts +2 -2
  43. package/dist/ChatPreviewComparison/ChatPreviewComparison.js +7 -4
  44. package/dist/ChatPreviewComparison/components/Headline.cjs +2 -2
  45. package/dist/ChatPreviewComparison/components/Headline.js +2 -2
  46. package/dist/ChatPreviewComparison/components/Layout.cjs +4 -4
  47. package/dist/ChatPreviewComparison/components/Layout.js +4 -4
  48. package/dist/ChatPreviewComparison/components/Message.cjs +2 -2
  49. package/dist/ChatPreviewComparison/components/Message.js +2 -2
  50. package/dist/ChatPreviewComparison/index.d.cts +2 -2
  51. package/dist/ChatPreviewComparison/index.d.ts +2 -2
  52. package/dist/ChatPreviewComparison/types/types.d.cts +13 -1
  53. package/dist/ChatPreviewComparison/types/types.d.ts +13 -1
  54. package/dist/ChatPreviewLoading/ChatPreviewLoading.cjs +7 -2
  55. package/dist/ChatPreviewLoading/ChatPreviewLoading.d.cts +4 -3
  56. package/dist/ChatPreviewLoading/ChatPreviewLoading.d.ts +4 -3
  57. package/dist/ChatPreviewLoading/ChatPreviewLoading.js +7 -2
  58. package/dist/ChatPreviewLoading/types/types.d.cts +4 -0
  59. package/dist/ChatPreviewLoading/types/types.d.ts +4 -0
  60. package/dist/Container/Container.d.cts +172 -172
  61. package/dist/Container/Container.d.ts +172 -172
  62. package/dist/DesignTokens/DesignTokensComponent.d.cts +2 -2
  63. package/dist/DesignTokens/DesignTokensComponent.d.ts +2 -2
  64. package/dist/Disclaimer/components/Container.cjs +2 -2
  65. package/dist/Disclaimer/components/Container.js +2 -2
  66. package/dist/DocumentRetrievalCard/DocumentRetrievalCard.d.cts +2 -2
  67. package/dist/DocumentRetrievalCard/DocumentRetrievalCard.d.ts +2 -2
  68. package/dist/DocumentRetrievalCard/components/Layout.cjs +2 -2
  69. package/dist/DocumentRetrievalCard/components/Layout.js +2 -2
  70. package/dist/DocumentRetrievalCard/components/ViewArticleButton/components/Icon.cjs +1 -1
  71. package/dist/DocumentRetrievalCard/components/ViewArticleButton/components/Icon.js +1 -1
  72. package/dist/FloatingButton/FloatingButton.d.cts +2 -2
  73. package/dist/FloatingButton/FloatingButton.d.ts +2 -2
  74. package/dist/FloatingChat/FloatingChat.cjs +27 -4
  75. package/dist/FloatingChat/FloatingChat.d.cts +2 -2
  76. package/dist/FloatingChat/FloatingChat.d.ts +2 -2
  77. package/dist/FloatingChat/FloatingChat.js +28 -5
  78. package/dist/FloatingChat/components/AgentMessage.cjs +2 -2
  79. package/dist/FloatingChat/components/AgentMessage.js +2 -2
  80. package/dist/FloatingChat/components/ChatMessages.cjs +1 -1
  81. package/dist/FloatingChat/components/ChatMessages.js +1 -1
  82. package/dist/FloatingChat/components/Layout.cjs +3 -3
  83. package/dist/FloatingChat/components/Layout.js +3 -3
  84. package/dist/FloatingChat/components/ResultsGridView.cjs +1 -1
  85. package/dist/FloatingChat/components/ResultsGridView.js +1 -1
  86. package/dist/FloatingChat/components/SalesAgentBadgeContent.cjs +1 -1
  87. package/dist/FloatingChat/components/SalesAgentBadgeContent.js +1 -1
  88. package/dist/FloatingChat/hooks/useChatSuggestions.cjs +3 -5
  89. package/dist/FloatingChat/hooks/useChatSuggestions.js +4 -6
  90. package/dist/FullPageSalesAgent/FullPageSalesAgent.cjs +25 -3
  91. package/dist/FullPageSalesAgent/FullPageSalesAgent.d.cts +5 -3
  92. package/dist/FullPageSalesAgent/FullPageSalesAgent.d.ts +5 -3
  93. package/dist/FullPageSalesAgent/FullPageSalesAgent.js +26 -4
  94. package/dist/Image/Image.d.cts +2 -2
  95. package/dist/Image/Image.d.ts +2 -2
  96. package/dist/ImageGallery/ImageGallery.d.cts +2 -2
  97. package/dist/ImageGallery/ImageGallery.d.ts +2 -2
  98. package/dist/ImageGallery/components/Layout.cjs +1 -1
  99. package/dist/ImageGallery/components/Layout.js +1 -1
  100. package/dist/MarkdownProcessor/MarkdownProcessor.d.cts +2 -2
  101. package/dist/MarkdownProcessor/MarkdownProcessor.d.ts +2 -2
  102. package/dist/Message/components/LinkButton.cjs +1 -1
  103. package/dist/Message/components/LinkButton.js +1 -1
  104. package/dist/OrderLookupCard/OrderLookupCard.cjs +1 -1
  105. package/dist/OrderLookupCard/OrderLookupCard.js +1 -1
  106. package/dist/ProductCard/ProductCard.cjs +7 -3
  107. package/dist/ProductCard/ProductCard.d.cts +6 -3
  108. package/dist/ProductCard/ProductCard.d.ts +6 -3
  109. package/dist/ProductCard/ProductCard.js +7 -3
  110. package/dist/ProductCard/index.d.cts +2 -2
  111. package/dist/ProductCard/index.d.ts +2 -2
  112. package/dist/ProductCard/types/index.d.cts +7 -1
  113. package/dist/ProductCard/types/index.d.ts +7 -1
  114. package/dist/PromptButton/PromptButton.d.cts +2 -2
  115. package/dist/PromptButton/PromptButton.d.ts +2 -2
  116. package/dist/PromptButtonCarouselWithImage/PromptButtonCarouselWithImage.cjs +5 -2
  117. package/dist/PromptButtonCarouselWithImage/PromptButtonCarouselWithImage.d.cts +6 -3
  118. package/dist/PromptButtonCarouselWithImage/PromptButtonCarouselWithImage.d.ts +6 -3
  119. package/dist/PromptButtonCarouselWithImage/PromptButtonCarouselWithImage.js +5 -2
  120. package/dist/PromptButtonCarouselWithImage/components/PromptButtonsCarousel.cjs +1 -1
  121. package/dist/PromptButtonCarouselWithImage/components/PromptButtonsCarousel.js +1 -1
  122. package/dist/PromptButtonCarouselWithImage/types/types.d.cts +12 -0
  123. package/dist/PromptButtonCarouselWithImage/types/types.d.ts +12 -0
  124. package/dist/PromptCarousel/PromptCarousel.cjs +3 -3
  125. package/dist/PromptCarousel/PromptCarousel.d.cts +2 -2
  126. package/dist/PromptCarousel/PromptCarousel.d.ts +2 -2
  127. package/dist/PromptCarousel/PromptCarousel.js +3 -3
  128. package/dist/ReviewCard/ReviewCard.d.cts +2 -2
  129. package/dist/ReviewCard/ReviewCard.d.ts +2 -2
  130. package/dist/ReviewCard/components/Container.cjs +2 -2
  131. package/dist/ReviewCard/components/Container.js +2 -2
  132. package/dist/ReviewCard/components/Rating.cjs +0 -1
  133. package/dist/ReviewCard/components/Rating.js +0 -1
  134. package/dist/ReviewCard/components/ReadMoreButton.cjs +1 -1
  135. package/dist/ReviewCard/components/ReadMoreButton.js +1 -1
  136. package/dist/ReviewCard/components/index.d.cts +4 -4
  137. package/dist/ReviewCard/components/index.d.ts +6 -6
  138. package/dist/SalesAgentProductCard/SalesAgentProductCard.d.cts +2 -2
  139. package/dist/SalesAgentProductCard/SalesAgentProductCard.d.ts +2 -2
  140. package/dist/SalesAgentProductCard/components/Container.cjs +2 -2
  141. package/dist/SalesAgentProductCard/components/Container.js +2 -2
  142. package/dist/SalesAgentProductCard/components/index.d.cts +6 -6
  143. package/dist/SalesAgentProductCard/components/index.d.ts +8 -8
  144. package/dist/SocialProof/SocialProof.cjs +7 -4
  145. package/dist/SocialProof/SocialProof.d.cts +2 -2
  146. package/dist/SocialProof/SocialProof.js +7 -4
  147. package/dist/SocialProof/components/Headline.cjs +3 -3
  148. package/dist/SocialProof/components/Headline.js +3 -3
  149. package/dist/SocialProof/components/LayoutFourHorizontal.cjs +1 -1
  150. package/dist/SocialProof/components/LayoutFourHorizontal.js +1 -1
  151. package/dist/SocialProof/components/Subheadline.cjs +1 -1
  152. package/dist/SocialProof/components/Subheadline.js +1 -1
  153. package/dist/SocialProof/components/Textfield.cjs +5 -2
  154. package/dist/SocialProof/components/Textfield.js +5 -2
  155. package/dist/SocialProof/index.d.cts +2 -2
  156. package/dist/SocialProof/index.d.ts +2 -2
  157. package/dist/SocialProof/types/types.d.cts +13 -1
  158. package/dist/SocialProof/types/types.d.ts +13 -1
  159. package/dist/SparkleAnimation/SparkleAnimation.d.cts +2 -2
  160. package/dist/SparkleAnimation/SparkleAnimation.d.ts +2 -2
  161. package/dist/Stack/Stack.d.cts +2 -2
  162. package/dist/Stack/Stack.d.ts +2 -2
  163. package/dist/TextField/TextField.cjs +34 -2
  164. package/dist/TextField/TextField.d.cts +5 -1
  165. package/dist/TextField/TextField.d.ts +5 -1
  166. package/dist/TextField/TextField.js +34 -2
  167. package/dist/TextField/components/Layout.cjs +10 -7
  168. package/dist/TextField/components/Layout.js +10 -7
  169. package/dist/TextField/components/VoiceInputButton.cjs +45 -0
  170. package/dist/TextField/components/VoiceInputButton.js +39 -0
  171. package/dist/TextField/components/index.cjs +3 -1
  172. package/dist/TextField/components/index.js +3 -1
  173. package/dist/TextField/hooks/useGetMicButtonContainerProperties.cjs +20 -0
  174. package/dist/TextField/hooks/useGetMicButtonContainerProperties.js +19 -0
  175. package/dist/TextField/hooks/useGetSkeletonProperties.cjs +1 -1
  176. package/dist/TextField/hooks/useGetSkeletonProperties.js +1 -1
  177. package/dist/TextField/hooks/useVoiceInput.cjs +59 -0
  178. package/dist/TextField/hooks/useVoiceInput.js +57 -0
  179. package/dist/TextField/types/index.d.cts +11 -0
  180. package/dist/TextField/types/index.d.ts +11 -0
  181. package/dist/TextField/utils/getLayoutStateProperties.cjs +9 -1
  182. package/dist/TextField/utils/getLayoutStateProperties.js +8 -1
  183. package/dist/TitledPromptCarousel/TitledPromptCarousel.cjs +1 -1
  184. package/dist/TitledPromptCarousel/TitledPromptCarousel.d.cts +2 -2
  185. package/dist/TitledPromptCarousel/TitledPromptCarousel.d.ts +2 -2
  186. package/dist/TitledPromptCarousel/TitledPromptCarousel.js +1 -1
  187. package/dist/Tokens/index.cjs +1 -1
  188. package/dist/Tokens/index.js +1 -1
  189. package/dist/TypingAnimation/TypingAnimation.cjs +8 -4
  190. package/dist/TypingAnimation/TypingAnimation.d.cts +2 -2
  191. package/dist/TypingAnimation/TypingAnimation.js +8 -4
  192. package/dist/TypingAnimation/hooks/useGetTypographyVariant.cjs +1 -1
  193. package/dist/TypingAnimation/hooks/useGetTypographyVariant.js +1 -1
  194. package/dist/TypingAnimation/index.d.cts +2 -2
  195. package/dist/TypingAnimation/index.d.ts +2 -2
  196. package/dist/TypingAnimation/types/index.d.cts +13 -1
  197. package/dist/TypingAnimation/types/index.d.ts +13 -1
  198. package/dist/Typography/Typography.d.cts +4 -4
  199. package/dist/Typography/Typography.d.ts +4 -4
  200. package/dist/WelcomeMessage/components/Container.cjs +2 -2
  201. package/dist/WelcomeMessage/components/Container.js +2 -2
  202. package/dist/WidgetTextField/WidgetTextField.cjs +40 -8
  203. package/dist/WidgetTextField/WidgetTextField.d.cts +7 -3
  204. package/dist/WidgetTextField/WidgetTextField.d.ts +7 -3
  205. package/dist/WidgetTextField/WidgetTextField.js +34 -3
  206. package/dist/WidgetTextField/components/Container.cjs +33 -27
  207. package/dist/WidgetTextField/components/Container.js +33 -27
  208. package/dist/WidgetTextField/components/Icon.cjs +1 -1
  209. package/dist/WidgetTextField/components/Icon.js +1 -1
  210. package/dist/WidgetTextField/hooks/useGetContainerProperties.cjs +5 -3
  211. package/dist/WidgetTextField/hooks/useGetContainerProperties.js +5 -3
  212. package/dist/WidgetTextField/hooks/useGetMicWidgetButtonProperties.cjs +20 -0
  213. package/dist/WidgetTextField/hooks/useGetMicWidgetButtonProperties.js +19 -0
  214. package/dist/WidgetTextField/types/types.d.cts +21 -0
  215. package/dist/WidgetTextField/types/types.d.ts +21 -0
  216. package/dist/WidgetWrapper/WidgetWrapper.d.cts +2 -2
  217. package/dist/WidgetWrapper/WidgetWrapper.d.ts +2 -2
  218. package/dist/WidgetWrapper/hooks/useGetWrapperProperties.cjs +1 -1
  219. package/dist/WidgetWrapper/hooks/useGetWrapperProperties.js +1 -1
  220. package/dist/WidgetWrapperWithTitle/WidgetWrapperWithTitle.d.cts +2 -2
  221. package/dist/node_modules/jotai/esm/react.cjs +87 -0
  222. package/dist/node_modules/jotai/esm/react.js +88 -2
  223. package/dist/node_modules/jotai/esm/vanilla/internals.cjs +2 -1
  224. package/dist/node_modules/jotai/esm/vanilla/internals.js +1 -1
  225. package/dist/styles.css +1 -1
  226. package/package.json +2 -1
  227. package/src/components/ChatFooter/ChatFooter.tsx +8 -0
  228. package/src/components/ChatFooter/__tests__/ChatFooter.test.tsx +43 -0
  229. package/src/components/ChatFooter/components/TextField.tsx +12 -0
  230. package/src/components/ChatFooter/types/types.ts +17 -0
  231. package/src/components/ChatHeader/ChatHeader.tsx +1 -0
  232. package/src/components/ChatHeader/components/Handle.tsx +7 -2
  233. package/src/components/ChatHeader/hooks/useGetHandleProperties.ts +9 -5
  234. package/src/components/ChatHeader/hooks/useGetToggleOptionProperties.ts +1 -1
  235. package/src/components/ChatHeader/types/index.ts +1 -0
  236. package/src/components/ChatPreview/ChatPreview.tsx +13 -2
  237. package/src/components/ChatPreview/__tests__/ChatPreview.test.tsx +44 -0
  238. package/src/components/ChatPreview/index.ts +1 -1
  239. package/src/components/ChatPreview/types/types.ts +13 -0
  240. package/src/components/ChatPreviewComparison/ChatPreviewComparison.tsx +6 -0
  241. package/src/components/ChatPreviewComparison/__tests__/ChatPreviewComparison.test.tsx +44 -0
  242. package/src/components/ChatPreviewComparison/index.ts +1 -1
  243. package/src/components/ChatPreviewComparison/types/types.ts +13 -0
  244. package/src/components/ChatPreviewLoading/ChatPreviewLoading.tsx +5 -3
  245. package/src/components/ChatPreviewLoading/__tests__/ChatPreviewLoading.test.tsx +40 -0
  246. package/src/components/ChatPreviewLoading/types/types.ts +5 -0
  247. package/src/components/FloatingChat/FloatingChat.tsx +38 -7
  248. package/src/components/FloatingChat/hooks/useChatSuggestions.ts +8 -12
  249. package/src/components/FullPageSalesAgent/FullPageSalesAgent.tsx +32 -1
  250. package/src/components/ProductCard/ProductCard.tsx +7 -0
  251. package/src/components/ProductCard/__tests__/ProductCard.test.tsx +33 -0
  252. package/src/components/ProductCard/index.ts +1 -1
  253. package/src/components/ProductCard/types/index.ts +6 -0
  254. package/src/components/PromptButtonCarouselWithImage/PromptButtonCarouselWithImage.tsx +6 -0
  255. package/src/components/PromptButtonCarouselWithImage/__tests__/PromptButtonCarouselWithImage.test.tsx +34 -0
  256. package/src/components/PromptButtonCarouselWithImage/types/types.ts +12 -0
  257. package/src/components/ReviewCard/components/Rating.tsx +0 -1
  258. package/src/components/SocialProof/SocialProof.tsx +6 -0
  259. package/src/components/SocialProof/__tests__/SocialProof.test.tsx +58 -0
  260. package/src/components/SocialProof/components/Textfield.tsx +9 -0
  261. package/src/components/SocialProof/index.ts +1 -1
  262. package/src/components/SocialProof/types/types.ts +13 -0
  263. package/src/components/TextField/TextField.tsx +49 -0
  264. package/src/components/TextField/__tests__/TextField.test.tsx +3 -3
  265. package/src/components/TextField/__tests__/VoiceInputButton.test.tsx +175 -0
  266. package/src/components/TextField/components/Layout.tsx +24 -17
  267. package/src/components/TextField/components/VoiceInputButton.tsx +69 -0
  268. package/src/components/TextField/components/index.ts +2 -0
  269. package/src/components/TextField/hooks/useGetMicButtonContainerProperties.ts +38 -0
  270. package/src/components/TextField/hooks/useGetSkeletonProperties.ts +1 -1
  271. package/src/components/TextField/hooks/useVoiceInput.ts +77 -0
  272. package/src/components/TextField/types/index.ts +11 -0
  273. package/src/components/TextField/utils/getLayoutStateProperties.ts +8 -0
  274. package/src/components/TypingAnimation/TypingAnimation.tsx +7 -0
  275. package/src/components/TypingAnimation/__tests__/TypingAnimation.test.tsx +47 -0
  276. package/src/components/TypingAnimation/index.ts +1 -1
  277. package/src/components/TypingAnimation/types/index.ts +14 -1
  278. package/src/components/WidgetTextField/WidgetTextField.tsx +47 -0
  279. package/src/components/WidgetTextField/__tests__/WidgetTextField.test.tsx +119 -4
  280. package/src/components/WidgetTextField/components/Container.tsx +40 -27
  281. package/src/components/WidgetTextField/hooks/useGetContainerProperties.ts +16 -4
  282. package/src/components/WidgetTextField/hooks/useGetMicWidgetButtonProperties.ts +38 -0
  283. package/src/components/WidgetTextField/types/types.ts +21 -0
  284. package/src/components/WidgetWrapper/hooks/useGetWrapperProperties.ts +1 -1
@@ -1,5 +1,5 @@
1
1
  import { FloatingChatProps } from "./types/types.js";
2
- import * as react_jsx_runtime26 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime22 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/FloatingChat/FloatingChat.d.ts
5
5
  declare const FloatingChat: ({
@@ -19,6 +19,6 @@ declare const FloatingChat: ({
19
19
  onSwipeClose,
20
20
  onToggleCXButton,
21
21
  setIsResultsModalOpen
22
- }: FloatingChatProps) => react_jsx_runtime26.JSX.Element;
22
+ }: FloatingChatProps) => react_jsx_runtime22.JSX.Element;
23
23
  //#endregion
24
24
  export { FloatingChat };
@@ -18,12 +18,12 @@ import { useChatSuggestions } from "./hooks/useChatSuggestions.js";
18
18
  import { useProductResultsView } from "./hooks/useProductResultsView.js";
19
19
  import { useScrollToBottom } from "./hooks/useScrollToBottom.js";
20
20
  import { useSnapSetup } from "./hooks/useSnapSetup.js";
21
- import { useFilteredChatMessages } from "./hooks/useFilteredChatMessages.js";
22
- import { Unit } from "./hooks/useSnapCalculator.js";
23
21
  import { trackProductCardClicked } from "./utils/trackProductCardInteraction.js";
22
+ import { Unit } from "./hooks/useSnapCalculator.js";
24
23
  import { ModalSheet } from "./components/ModalSheet.js";
25
24
  import { FloatingChatComponents } from "./components/index.js";
26
- import { useEffect, useMemo, useRef, useState } from "react";
25
+ import { useFilteredChatMessages } from "./hooks/useFilteredChatMessages.js";
26
+ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
27
27
  import { jsx } from "react/jsx-runtime";
28
28
  import { EnviveMetricsEventName } from "@envive-ai/react-hooks/contexts/amplitudeContext";
29
29
  import { useWidgetInteraction } from "@envive-ai/react-hooks/hooks/WidgetInteraction";
@@ -47,7 +47,7 @@ const FloatingChat = ({ id, className, style, testId, theme = Theme.GLOBAL_CUSTO
47
47
  if (textString && typeof textString === "string") return textString;
48
48
  }
49
49
  }, [disclaimerText]);
50
- const { agentName, chatHeaderLogoDarkSrc, chatHeaderLogoLightSrc } = lookAndFeelConfig;
50
+ const { agentName, chatHeaderLogoDarkSrc, chatHeaderLogoLightSrc, voiceInputEnabled } = lookAndFeelConfig;
51
51
  const { messages, isResponseStreaming, isPendingResponse, suggestions, onSuggestionClicked, onTypedMessageSubmitted, onFormResponseSubmitted } = salesAgentData;
52
52
  const { answerSuggestions, generalSuggestions, showAnswerSuggestions, setAnswerSuggestions, setGeneralSuggestions } = useChatSuggestions({
53
53
  suggestions,
@@ -121,6 +121,25 @@ const FloatingChat = ({ id, className, style, testId, theme = Theme.GLOBAL_CUSTO
121
121
  const handleProductCardClick = (product) => {
122
122
  trackProductCardClicked(trackWidgetInteraction, WidgetInteractionComponent.FLOATING_CHAT, product);
123
123
  };
124
+ const handleTranscriptionStarted = useCallback(() => {
125
+ trackWidgetInteraction({
126
+ eventName: EnviveMetricsEventName.WidgetInteraction,
127
+ trigger: {
128
+ widget: WidgetInteractionComponent.FLOATING_CHAT,
129
+ widget_interaction: WidgetInteractionType.VOICE_TRANSCRIPTION_STARTED
130
+ }
131
+ });
132
+ }, [trackWidgetInteraction]);
133
+ const handleTranscriptionCompleted = useCallback((transcript) => {
134
+ trackWidgetInteraction({
135
+ eventName: EnviveMetricsEventName.WidgetInteraction,
136
+ trigger: {
137
+ widget: WidgetInteractionComponent.FLOATING_CHAT,
138
+ widget_interaction: WidgetInteractionType.VOICE_TRANSCRIPTION_COMPLETED,
139
+ widget_interaction_data: { transcription: transcript }
140
+ }
141
+ });
142
+ }, [trackWidgetInteraction]);
124
143
  const header = /* @__PURE__ */ jsx(ChatHeader, {
125
144
  logoDark: chatHeaderLogoDarkSrc,
126
145
  logoLight: chatHeaderLogoLightSrc,
@@ -174,6 +193,7 @@ const FloatingChat = ({ id, className, style, testId, theme = Theme.GLOBAL_CUSTO
174
193
  theme: finalTheme,
175
194
  isScrolled: isMobile ? isFloatingLayout : false,
176
195
  onChange: setQuery,
196
+ inputClassName: "placeholder:envive-tw-text-text-secondary",
177
197
  onSubmit: () => {
178
198
  onTypedMessageSubmitted({
179
199
  query,
@@ -198,7 +218,10 @@ const FloatingChat = ({ id, className, style, testId, theme = Theme.GLOBAL_CUSTO
198
218
  isLoadingPromptSuggestions: isPendingResponse || isResponseStreaming || generalSuggestions.length === 0,
199
219
  hideEnviveWatermark: !showEnviveLogo,
200
220
  onFocus: handleInputQueryFocus,
201
- parentWidget: WidgetInteractionComponent.FLOATING_CHAT
221
+ parentWidget: WidgetInteractionComponent.FLOATING_CHAT,
222
+ voiceInputEnabled,
223
+ onTranscriptionStarted: handleTranscriptionStarted,
224
+ onTranscriptionCompleted: handleTranscriptionCompleted
202
225
  });
203
226
  const welcomeMessage = /* @__PURE__ */ jsx(WelcomeMessage, {
204
227
  sparkleIconColor: welcomeMessageIconColor,
@@ -1,11 +1,11 @@
1
1
  const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
2
2
  const require_theme = require('../../packages/components-v3/tokens/theme/theme.cjs');
3
3
  const require_resolveTheme = require('../../utils/resolveTheme.cjs');
4
+ const require_react = require('../../node_modules/jotai/esm/react.cjs');
4
5
  const require_functions = require('../utils/functions.cjs');
5
6
  const require_index = require('../../Message/types/index.cjs');
6
7
  const require_Message = require('../../Message/Message.cjs');
7
8
  require('../../Message/index.cjs');
8
- const require_react = require('../../node_modules/jotai/esm/react.cjs');
9
9
  const require_Form = require('../../Form/Form.cjs');
10
10
  require('../../Form/index.cjs');
11
11
  const require_trackProductCardInteraction = require('../utils/trackProductCardInteraction.cjs');
@@ -14,11 +14,11 @@ const require_OrderLookupCardCarousel = require('./OrderLookupCardCarousel.cjs')
14
14
  const require_ReviewCardsCarousel = require('./ReviewCardsCarousel.cjs');
15
15
  const require_SalesAgentProductCardsCarousel = require('./SalesAgentProductCardsCarousel.cjs');
16
16
  let react_jsx_runtime = require("react/jsx-runtime");
17
+ let __envive_ai_react_hooks_atoms_chat = require("@envive-ai/react-hooks/atoms/chat");
17
18
  let __envive_ai_react_hooks_contexts_amplitudeContext = require("@envive-ai/react-hooks/contexts/amplitudeContext");
18
19
  let __envive_ai_react_hooks_hooks_WidgetInteraction = require("@envive-ai/react-hooks/hooks/WidgetInteraction");
19
20
  let __envive_ai_react_hooks_hooks_WidgetInteraction_types = require("@envive-ai/react-hooks/hooks/WidgetInteraction/types");
20
21
  let __envive_ai_react_hooks_application_models = require("@envive-ai/react-hooks/application/models");
21
- let __envive_ai_react_hooks_atoms_chat = require("@envive-ai/react-hooks/atoms/chat");
22
22
 
23
23
  //#region src/components/FloatingChat/components/AgentMessage.tsx
24
24
  const AgentMessage = ({ theme = require_theme.Theme.GLOBAL_CUSTOM, agentName, type, messages, hideAgentName = false, isResponseStreaming = false, isPendingResponse = false, neverShowSingleProductCards = false, showVerifiedBuyer = false, onFormResponseSubmitted, parentWidget, onExploreAllResults }) => {
@@ -1,10 +1,10 @@
1
1
  import { Theme } from "../../packages/components-v3/tokens/theme/theme.js";
2
2
  import { resolveTheme } from "../../utils/resolveTheme.js";
3
+ import { useSetAtom } from "../../node_modules/jotai/esm/react.js";
3
4
  import { getCleanDocuments, getCleanOrders, getCleanProducts, getCleanReviews } from "../utils/functions.js";
4
5
  import { MessageVariant } from "../../Message/types/index.js";
5
6
  import { Message } from "../../Message/Message.js";
6
7
  import "../../Message/index.js";
7
- import { useSetAtom } from "../../node_modules/jotai/esm/react.js";
8
8
  import { Form } from "../../Form/Form.js";
9
9
  import "../../Form/index.js";
10
10
  import { trackProductCardClicked } from "../utils/trackProductCardInteraction.js";
@@ -13,11 +13,11 @@ import { OrderLookupCardCarousel } from "./OrderLookupCardCarousel.js";
13
13
  import { ReviewCardsCarousel } from "./ReviewCardsCarousel.js";
14
14
  import { SalesAgentProductCardsCarousel } from "./SalesAgentProductCardsCarousel.js";
15
15
  import { jsx } from "react/jsx-runtime";
16
+ import { handleFormSubmittedAtom } from "@envive-ai/react-hooks/atoms/chat";
16
17
  import { EnviveMetricsEventName } from "@envive-ai/react-hooks/contexts/amplitudeContext";
17
18
  import { useWidgetInteraction } from "@envive-ai/react-hooks/hooks/WidgetInteraction";
18
19
  import { WidgetInteractionType } from "@envive-ai/react-hooks/hooks/WidgetInteraction/types";
19
20
  import { MessageType } from "@envive-ai/react-hooks/application/models";
20
- import { handleFormSubmittedAtom } from "@envive-ai/react-hooks/atoms/chat";
21
21
 
22
22
  //#region src/components/FloatingChat/components/AgentMessage.tsx
23
23
  const AgentMessage = ({ theme = Theme.GLOBAL_CUSTOM, agentName, type, messages, hideAgentName = false, isResponseStreaming = false, isPendingResponse = false, neverShowSingleProductCards = false, showVerifiedBuyer = false, onFormResponseSubmitted, parentWidget, onExploreAllResults }) => {
@@ -1,11 +1,11 @@
1
1
  const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
2
2
  const require_theme = require('../../packages/components-v3/tokens/theme/theme.cjs');
3
- const require_resolveTheme = require('../../utils/resolveTheme.cjs');
4
3
  const require_Stack = require('../../Stack/Stack.cjs');
5
4
  require('../../Stack/index.cjs');
6
5
  const require_index = require('../../Typography/types/index.cjs');
7
6
  const require_Typography = require('../../Typography/Typography.cjs');
8
7
  require('../../Typography/index.cjs');
8
+ const require_resolveTheme = require('../../utils/resolveTheme.cjs');
9
9
  const require_functions = require('../utils/functions.cjs');
10
10
  const require_index$1 = require('../../Message/types/index.cjs');
11
11
  const require_Message = require('../../Message/Message.cjs');
@@ -1,10 +1,10 @@
1
1
  import { Theme } from "../../packages/components-v3/tokens/theme/theme.js";
2
- import { resolveTheme } from "../../utils/resolveTheme.js";
3
2
  import { Stack } from "../../Stack/Stack.js";
4
3
  import "../../Stack/index.js";
5
4
  import { TypographyColor, TypographyVariant } from "../../Typography/types/index.js";
6
5
  import { Typography } from "../../Typography/Typography.js";
7
6
  import "../../Typography/index.js";
7
+ import { resolveTheme } from "../../utils/resolveTheme.js";
8
8
  import { checkIfHideAgentName, getGroupableMessages } from "../utils/functions.js";
9
9
  import { MessageVariant } from "../../Message/types/index.js";
10
10
  import { Message } from "../../Message/Message.js";
@@ -1,10 +1,10 @@
1
1
  const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
2
2
  const require_theme = require('../../packages/components-v3/tokens/theme/theme.cjs');
3
- const require_resolveTheme = require('../../utils/resolveTheme.cjs');
4
- const require_Container = require('../../Container/Container.cjs');
5
- require('../../Container/index.cjs');
6
3
  const require_Stack = require('../../Stack/Stack.cjs');
7
4
  require('../../Stack/index.cjs');
5
+ const require_Container = require('../../Container/Container.cjs');
6
+ require('../../Container/index.cjs');
7
+ const require_resolveTheme = require('../../utils/resolveTheme.cjs');
8
8
  let react = require("react");
9
9
  let react_jsx_runtime = require("react/jsx-runtime");
10
10
  let classnames = require("classnames");
@@ -1,9 +1,9 @@
1
1
  import { Theme } from "../../packages/components-v3/tokens/theme/theme.js";
2
- import { resolveTheme } from "../../utils/resolveTheme.js";
3
- import { Container } from "../../Container/Container.js";
4
- import "../../Container/index.js";
5
2
  import { Stack } from "../../Stack/Stack.js";
6
3
  import "../../Stack/index.js";
4
+ import { Container } from "../../Container/Container.js";
5
+ import "../../Container/index.js";
6
+ import { resolveTheme } from "../../utils/resolveTheme.js";
7
7
  import { isValidElement } from "react";
8
8
  import { jsx, jsxs } from "react/jsx-runtime";
9
9
  import classNames from "classnames";
@@ -1,10 +1,10 @@
1
1
  const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
2
- const require_resolveTheme = require('../../utils/resolveTheme.cjs');
3
2
  const require_Stack = require('../../Stack/Stack.cjs');
4
3
  require('../../Stack/index.cjs');
5
4
  const require_index = require('../../Typography/types/index.cjs');
6
5
  const require_Typography = require('../../Typography/Typography.cjs');
7
6
  require('../../Typography/index.cjs');
7
+ const require_resolveTheme = require('../../utils/resolveTheme.cjs');
8
8
  const require_types = require('../../SalesAgentProductCard/types/types.cjs');
9
9
  const require_SalesAgentProductCard = require('../../SalesAgentProductCard/SalesAgentProductCard.cjs');
10
10
  let react_jsx_runtime = require("react/jsx-runtime");
@@ -1,9 +1,9 @@
1
- import { resolveTheme } from "../../utils/resolveTheme.js";
2
1
  import { Stack } from "../../Stack/Stack.js";
3
2
  import "../../Stack/index.js";
4
3
  import { TypographyColor, TypographyVariant } from "../../Typography/types/index.js";
5
4
  import { Typography } from "../../Typography/Typography.js";
6
5
  import "../../Typography/index.js";
6
+ import { resolveTheme } from "../../utils/resolveTheme.js";
7
7
  import { SalesAgentProductCardVariant } from "../../SalesAgentProductCard/types/types.js";
8
8
  import { SalesAgentProductCard } from "../../SalesAgentProductCard/SalesAgentProductCard.js";
9
9
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -1,9 +1,9 @@
1
1
  const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
2
2
  const require_Stack = require('../../Stack/Stack.cjs');
3
+ const require_ArrowIcon = require('../../Carousel/components/ArrowIcon.cjs');
3
4
  const require_index = require('../../Typography/types/index.cjs');
4
5
  const require_Typography = require('../../Typography/Typography.cjs');
5
6
  require('../../Typography/index.cjs');
6
- const require_ArrowIcon = require('../../Carousel/components/ArrowIcon.cjs');
7
7
  const require_functions = require('../utils/functions.cjs');
8
8
  let react = require("react");
9
9
  react = require_rolldown_runtime.__toESM(react);
@@ -1,8 +1,8 @@
1
1
  import { Stack } from "../../Stack/Stack.js";
2
+ import { ArrowIcon } from "../../Carousel/components/ArrowIcon.js";
2
3
  import { TypographyColor, TypographyVariant } from "../../Typography/types/index.js";
3
4
  import { Typography } from "../../Typography/Typography.js";
4
5
  import "../../Typography/index.js";
5
- import { ArrowIcon } from "../../Carousel/components/ArrowIcon.js";
6
6
  import { MOST_RELEVANT_DISPLAY_LIMIT } from "../utils/functions.js";
7
7
  import React from "react";
8
8
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -6,11 +6,9 @@ const useChatSuggestions = ({ suggestions, isPendingResponse, isResponseStreamin
6
6
  const [answerSuggestions, setAnswerSuggestions] = (0, react.useState)([]);
7
7
  const [generalSuggestions, setGeneralSuggestions] = (0, react.useState)([]);
8
8
  const showAnswerSuggestions = answerSuggestions.length > 0 && !isPendingResponse && !isResponseStreaming;
9
- (0, react.useEffect)(() => {
10
- if (suggestions.length > 0) {
11
- setAnswerSuggestions(suggestions.filter((suggestion) => suggestion.isAnswer).map((suggestion) => suggestion.content));
12
- setGeneralSuggestions(suggestions.filter((suggestion) => !suggestion.isAnswer).map((suggestion) => suggestion.content));
13
- }
9
+ (0, react.useLayoutEffect)(() => {
10
+ setAnswerSuggestions(suggestions.filter((suggestion) => suggestion.isAnswer).map((suggestion) => suggestion.content));
11
+ setGeneralSuggestions(suggestions.filter((suggestion) => !suggestion.isAnswer).map((suggestion) => suggestion.content));
14
12
  }, [suggestions]);
15
13
  return {
16
14
  answerSuggestions,
@@ -1,15 +1,13 @@
1
- import { useEffect, useState } from "react";
1
+ import { useLayoutEffect, useState } from "react";
2
2
 
3
3
  //#region src/components/FloatingChat/hooks/useChatSuggestions.ts
4
4
  const useChatSuggestions = ({ suggestions, isPendingResponse, isResponseStreaming }) => {
5
5
  const [answerSuggestions, setAnswerSuggestions] = useState([]);
6
6
  const [generalSuggestions, setGeneralSuggestions] = useState([]);
7
7
  const showAnswerSuggestions = answerSuggestions.length > 0 && !isPendingResponse && !isResponseStreaming;
8
- useEffect(() => {
9
- if (suggestions.length > 0) {
10
- setAnswerSuggestions(suggestions.filter((suggestion) => suggestion.isAnswer).map((suggestion) => suggestion.content));
11
- setGeneralSuggestions(suggestions.filter((suggestion) => !suggestion.isAnswer).map((suggestion) => suggestion.content));
12
- }
8
+ useLayoutEffect(() => {
9
+ setAnswerSuggestions(suggestions.filter((suggestion) => suggestion.isAnswer).map((suggestion) => suggestion.content));
10
+ setGeneralSuggestions(suggestions.filter((suggestion) => !suggestion.isAnswer).map((suggestion) => suggestion.content));
13
11
  }, [suggestions]);
14
12
  return {
15
13
  answerSuggestions,
@@ -1,7 +1,7 @@
1
1
  const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
2
2
  const require_theme = require('../packages/components-v3/tokens/theme/theme.cjs');
3
- require('../Tokens/index.cjs');
4
3
  const require_resolveTheme = require('../utils/resolveTheme.cjs');
4
+ require('../Tokens/index.cjs');
5
5
  const require_usePromptCarouselAnalytics = require('../PromptCarousel/hooks/usePromptCarouselAnalytics.cjs');
6
6
  const require_PromptButton_types_index = require('../PromptButton/types/index.cjs');
7
7
  require('../PromptButton/index.cjs');
@@ -34,7 +34,7 @@ let __envive_ai_react_hooks_application_models = require("@envive-ai/react-hooks
34
34
  let __envive_ai_react_hooks_contexts_salesAgentContext = require("@envive-ai/react-hooks/contexts/salesAgentContext");
35
35
 
36
36
  //#region src/components/FullPageSalesAgent/FullPageSalesAgent.tsx
37
- const FullPageSalesAgent = ({ theme = require_theme.Theme.GLOBAL_CUSTOM, floatingChatConfig, lookAndFeelConfig, hardcopyContent, headerContainer, autoHeight }) => {
37
+ const FullPageSalesAgent = ({ theme = require_theme.Theme.GLOBAL_CUSTOM, floatingChatConfig, lookAndFeelConfig, hardcopyContent, headerContainer, autoHeight, voiceInputEnabled }) => {
38
38
  const resolvedTheme = require_resolveTheme.resolveTheme(theme);
39
39
  const salesAgentData = (0, __envive_ai_react_hooks_contexts_salesAgentContext.useSalesAgent)(__envive_ai_react_hooks_hooks_WidgetInteraction_types.WidgetInteractionComponent.FULL_PAGE_SALES_AGENT);
40
40
  const [query, setQuery] = (0, react.useState)("");
@@ -89,6 +89,25 @@ const FullPageSalesAgent = ({ theme = require_theme.Theme.GLOBAL_CUSTOM, floatin
89
89
  const handleProductCardClick = (product) => {
90
90
  require_trackProductCardInteraction.trackProductCardClicked(trackWidgetInteraction, __envive_ai_react_hooks_hooks_WidgetInteraction_types.WidgetInteractionComponent.FULL_PAGE_SALES_AGENT, product);
91
91
  };
92
+ const handleTranscriptionStarted = (0, react.useCallback)(() => {
93
+ trackWidgetInteraction({
94
+ eventName: __envive_ai_react_hooks_contexts_amplitudeContext.EnviveMetricsEventName.WidgetInteraction,
95
+ trigger: {
96
+ widget: __envive_ai_react_hooks_hooks_WidgetInteraction_types.WidgetInteractionComponent.FULL_PAGE_SALES_AGENT,
97
+ widget_interaction: __envive_ai_react_hooks_hooks_WidgetInteraction_types.WidgetInteractionType.VOICE_TRANSCRIPTION_STARTED
98
+ }
99
+ });
100
+ }, [trackWidgetInteraction]);
101
+ const handleTranscriptionCompleted = (0, react.useCallback)((transcript) => {
102
+ trackWidgetInteraction({
103
+ eventName: __envive_ai_react_hooks_contexts_amplitudeContext.EnviveMetricsEventName.WidgetInteraction,
104
+ trigger: {
105
+ widget: __envive_ai_react_hooks_hooks_WidgetInteraction_types.WidgetInteractionComponent.FULL_PAGE_SALES_AGENT,
106
+ widget_interaction: __envive_ai_react_hooks_hooks_WidgetInteraction_types.WidgetInteractionType.VOICE_TRANSCRIPTION_COMPLETED,
107
+ widget_interaction_data: { transcription: transcript }
108
+ }
109
+ });
110
+ }, [trackWidgetInteraction]);
92
111
  const welcomeMessage = /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
93
112
  className: messageContainerClasses,
94
113
  children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_WelcomeMessage.WelcomeMessage, {
@@ -128,7 +147,10 @@ const FullPageSalesAgent = ({ theme = require_theme.Theme.GLOBAL_CUSTOM, floatin
128
147
  handleBackToChat();
129
148
  },
130
149
  onFocus: handleInputQueryFocus,
131
- parentWidget: __envive_ai_react_hooks_hooks_WidgetInteraction_types.WidgetInteractionComponent.FULL_PAGE_SALES_AGENT
150
+ parentWidget: __envive_ai_react_hooks_hooks_WidgetInteraction_types.WidgetInteractionComponent.FULL_PAGE_SALES_AGENT,
151
+ voiceInputEnabled,
152
+ onTranscriptionStarted: handleTranscriptionStarted,
153
+ onTranscriptionCompleted: handleTranscriptionCompleted
132
154
  });
133
155
  const chatMessages = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index.FloatingChatComponents.ChatMessages, {
134
156
  className: messageClasses,
@@ -1,5 +1,5 @@
1
1
  import { Theme } from "../tokens/theme/theme.cjs";
2
- import * as react_jsx_runtime20 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime28 from "react/jsx-runtime";
3
3
  import { FloatingChatConfig, LookAndFeelConfig } from "@envive-ai/react-hooks/contexts/typesV3";
4
4
  import { HardcopyResponse } from "@envive-ai/react-hooks/contexts/hardcopyContext";
5
5
 
@@ -11,6 +11,7 @@ interface FullPageSalesAgentProps {
11
11
  hardcopyContent: HardcopyResponse;
12
12
  headerContainer?: string;
13
13
  autoHeight?: boolean;
14
+ voiceInputEnabled?: boolean;
14
15
  }
15
16
  declare const FullPageSalesAgent: ({
16
17
  theme,
@@ -18,7 +19,8 @@ declare const FullPageSalesAgent: ({
18
19
  lookAndFeelConfig,
19
20
  hardcopyContent,
20
21
  headerContainer,
21
- autoHeight
22
- }: FullPageSalesAgentProps) => react_jsx_runtime20.JSX.Element;
22
+ autoHeight,
23
+ voiceInputEnabled
24
+ }: FullPageSalesAgentProps) => react_jsx_runtime28.JSX.Element;
23
25
  //#endregion
24
26
  export { FullPageSalesAgent };
@@ -1,5 +1,5 @@
1
1
  import { Theme } from "../packages/components-v3/tokens/theme/theme.js";
2
- import * as react_jsx_runtime23 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime25 from "react/jsx-runtime";
3
3
  import { FloatingChatConfig, LookAndFeelConfig } from "@envive-ai/react-hooks/contexts/typesV3";
4
4
  import { HardcopyResponse } from "@envive-ai/react-hooks/contexts/hardcopyContext";
5
5
 
@@ -11,6 +11,7 @@ interface FullPageSalesAgentProps {
11
11
  hardcopyContent: HardcopyResponse;
12
12
  headerContainer?: string;
13
13
  autoHeight?: boolean;
14
+ voiceInputEnabled?: boolean;
14
15
  }
15
16
  declare const FullPageSalesAgent: ({
16
17
  theme,
@@ -18,7 +19,8 @@ declare const FullPageSalesAgent: ({
18
19
  lookAndFeelConfig,
19
20
  hardcopyContent,
20
21
  headerContainer,
21
- autoHeight
22
- }: FullPageSalesAgentProps) => react_jsx_runtime23.JSX.Element;
22
+ autoHeight,
23
+ voiceInputEnabled
24
+ }: FullPageSalesAgentProps) => react_jsx_runtime25.JSX.Element;
23
25
  //#endregion
24
26
  export { FullPageSalesAgent };
@@ -1,6 +1,6 @@
1
1
  import { Theme } from "../packages/components-v3/tokens/theme/theme.js";
2
- import "../Tokens/index.js";
3
2
  import { resolveTheme } from "../utils/resolveTheme.js";
3
+ import "../Tokens/index.js";
4
4
  import { usePromptCarouselAnalytics } from "../PromptCarousel/hooks/usePromptCarouselAnalytics.js";
5
5
  import { PromptButtonVariant } from "../PromptButton/types/index.js";
6
6
  import "../PromptButton/index.js";
@@ -24,7 +24,7 @@ import { useGetFooterStyles } from "./hooks/useGetFooterStyles.js";
24
24
  import { useGetScrollContentStyles } from "./hooks/useGetScrollContentStyles.js";
25
25
  import { FullPageSAComponents } from "./components/index.js";
26
26
  import { useGetMessagesStyles } from "./hooks/useGetMessagesStyles.js";
27
- import { useRef, useState } from "react";
27
+ import { useCallback, useRef, useState } from "react";
28
28
  import { jsx } from "react/jsx-runtime";
29
29
  import { EnviveMetricsEventName } from "@envive-ai/react-hooks/contexts/amplitudeContext";
30
30
  import { useWidgetInteraction } from "@envive-ai/react-hooks/hooks/WidgetInteraction";
@@ -33,7 +33,7 @@ import { ChatElementDisplayLocationV3 } from "@envive-ai/react-hooks/application
33
33
  import { useSalesAgent } from "@envive-ai/react-hooks/contexts/salesAgentContext";
34
34
 
35
35
  //#region src/components/FullPageSalesAgent/FullPageSalesAgent.tsx
36
- const FullPageSalesAgent = ({ theme = Theme.GLOBAL_CUSTOM, floatingChatConfig, lookAndFeelConfig, hardcopyContent, headerContainer, autoHeight }) => {
36
+ const FullPageSalesAgent = ({ theme = Theme.GLOBAL_CUSTOM, floatingChatConfig, lookAndFeelConfig, hardcopyContent, headerContainer, autoHeight, voiceInputEnabled }) => {
37
37
  const resolvedTheme = resolveTheme(theme);
38
38
  const salesAgentData = useSalesAgent(WidgetInteractionComponent.FULL_PAGE_SALES_AGENT);
39
39
  const [query, setQuery] = useState("");
@@ -88,6 +88,25 @@ const FullPageSalesAgent = ({ theme = Theme.GLOBAL_CUSTOM, floatingChatConfig, l
88
88
  const handleProductCardClick = (product) => {
89
89
  trackProductCardClicked(trackWidgetInteraction, WidgetInteractionComponent.FULL_PAGE_SALES_AGENT, product);
90
90
  };
91
+ const handleTranscriptionStarted = useCallback(() => {
92
+ trackWidgetInteraction({
93
+ eventName: EnviveMetricsEventName.WidgetInteraction,
94
+ trigger: {
95
+ widget: WidgetInteractionComponent.FULL_PAGE_SALES_AGENT,
96
+ widget_interaction: WidgetInteractionType.VOICE_TRANSCRIPTION_STARTED
97
+ }
98
+ });
99
+ }, [trackWidgetInteraction]);
100
+ const handleTranscriptionCompleted = useCallback((transcript) => {
101
+ trackWidgetInteraction({
102
+ eventName: EnviveMetricsEventName.WidgetInteraction,
103
+ trigger: {
104
+ widget: WidgetInteractionComponent.FULL_PAGE_SALES_AGENT,
105
+ widget_interaction: WidgetInteractionType.VOICE_TRANSCRIPTION_COMPLETED,
106
+ widget_interaction_data: { transcription: transcript }
107
+ }
108
+ });
109
+ }, [trackWidgetInteraction]);
91
110
  const welcomeMessage = /* @__PURE__ */ jsx("div", {
92
111
  className: messageContainerClasses,
93
112
  children: /* @__PURE__ */ jsx(WelcomeMessage, {
@@ -127,7 +146,10 @@ const FullPageSalesAgent = ({ theme = Theme.GLOBAL_CUSTOM, floatingChatConfig, l
127
146
  handleBackToChat();
128
147
  },
129
148
  onFocus: handleInputQueryFocus,
130
- parentWidget: WidgetInteractionComponent.FULL_PAGE_SALES_AGENT
149
+ parentWidget: WidgetInteractionComponent.FULL_PAGE_SALES_AGENT,
150
+ voiceInputEnabled,
151
+ onTranscriptionStarted: handleTranscriptionStarted,
152
+ onTranscriptionCompleted: handleTranscriptionCompleted
131
153
  });
132
154
  const chatMessages = /* @__PURE__ */ jsx(FloatingChatComponents.ChatMessages, {
133
155
  className: messageClasses,
@@ -1,5 +1,5 @@
1
1
  import { ImageProps } from "./types/index.cjs";
2
- import * as react_jsx_runtime26 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime23 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/Image/Image.d.ts
5
5
 
@@ -25,6 +25,6 @@ declare const Image: ({
25
25
  role,
26
26
  "aria-hidden": ariaHidden,
27
27
  ...rest
28
- }: ImageProps) => react_jsx_runtime26.JSX.Element;
28
+ }: ImageProps) => react_jsx_runtime23.JSX.Element;
29
29
  //#endregion
30
30
  export { Image };
@@ -1,5 +1,5 @@
1
1
  import { ImageProps } from "./types/index.js";
2
- import * as react_jsx_runtime22 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime20 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/Image/Image.d.ts
5
5
 
@@ -25,6 +25,6 @@ declare const Image: ({
25
25
  role,
26
26
  "aria-hidden": ariaHidden,
27
27
  ...rest
28
- }: ImageProps) => react_jsx_runtime22.JSX.Element;
28
+ }: ImageProps) => react_jsx_runtime20.JSX.Element;
29
29
  //#endregion
30
30
  export { Image };
@@ -1,5 +1,5 @@
1
1
  import { ImageGalleryProps } from "./types/types.cjs";
2
- import * as react_jsx_runtime4 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime24 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/ImageGallery/ImageGallery.d.ts
5
5
 
@@ -40,6 +40,6 @@ declare const ImageGallery: ({
40
40
  "aria-describedby": ariaDescribedBy,
41
41
  role,
42
42
  "aria-hidden": ariaHidden
43
- }: ImageGalleryProps) => react_jsx_runtime4.JSX.Element;
43
+ }: ImageGalleryProps) => react_jsx_runtime24.JSX.Element;
44
44
  //#endregion
45
45
  export { ImageGallery };
@@ -1,5 +1,5 @@
1
1
  import { ImageGalleryProps } from "./types/types.js";
2
- import * as react_jsx_runtime25 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime24 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/ImageGallery/ImageGallery.d.ts
5
5
 
@@ -40,6 +40,6 @@ declare const ImageGallery: ({
40
40
  "aria-describedby": ariaDescribedBy,
41
41
  role,
42
42
  "aria-hidden": ariaHidden
43
- }: ImageGalleryProps) => react_jsx_runtime25.JSX.Element;
43
+ }: ImageGalleryProps) => react_jsx_runtime24.JSX.Element;
44
44
  //#endregion
45
45
  export { ImageGallery };
@@ -1,7 +1,7 @@
1
1
  const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
2
2
  const require_theme = require('../../packages/components-v3/tokens/theme/theme.cjs');
3
- const require_Container = require('../../Container/Container.cjs');
4
3
  const require_useResponsiveValue = require('../../utils/useResponsiveValue.cjs');
4
+ const require_Container = require('../../Container/Container.cjs');
5
5
  const require_utils_useCheckIsMobile = require('../../utils/useCheckIsMobile.cjs');
6
6
  const require_types = require('../types/types.cjs');
7
7
  const require_useGetContainerProperties = require('../hooks/useGetContainerProperties.cjs');
@@ -1,6 +1,6 @@
1
1
  import { Theme } from "../../packages/components-v3/tokens/theme/theme.js";
2
- import { Container } from "../../Container/Container.js";
3
2
  import { useResponsiveValue } from "../../utils/useResponsiveValue.js";
3
+ import { Container } from "../../Container/Container.js";
4
4
  import { useCheckIsMobile } from "../../utils/useCheckIsMobile.js";
5
5
  import { ImageGalleryLayout } from "../types/types.js";
6
6
  import { useGetContainerProperties } from "../hooks/useGetContainerProperties.js";
@@ -1,5 +1,5 @@
1
1
  import { MarkdownProcessorProps } from "./types/types.cjs";
2
- import * as react_jsx_runtime23 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime26 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/MarkdownProcessor/MarkdownProcessor.d.ts
5
5
  declare const MarkdownProcessor: ({
@@ -8,6 +8,6 @@ declare const MarkdownProcessor: ({
8
8
  textColor,
9
9
  textVariant,
10
10
  onLinkClick
11
- }: MarkdownProcessorProps) => react_jsx_runtime23.JSX.Element;
11
+ }: MarkdownProcessorProps) => react_jsx_runtime26.JSX.Element;
12
12
  //#endregion
13
13
  export { MarkdownProcessor };
@@ -1,5 +1,5 @@
1
1
  import { MarkdownProcessorProps } from "./types/types.js";
2
- import * as react_jsx_runtime5 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/MarkdownProcessor/MarkdownProcessor.d.ts
5
5
  declare const MarkdownProcessor: ({
@@ -8,6 +8,6 @@ declare const MarkdownProcessor: ({
8
8
  textColor,
9
9
  textVariant,
10
10
  onLinkClick
11
- }: MarkdownProcessorProps) => react_jsx_runtime5.JSX.Element;
11
+ }: MarkdownProcessorProps) => react_jsx_runtime0.JSX.Element;
12
12
  //#endregion
13
13
  export { MarkdownProcessor };
@@ -1,8 +1,8 @@
1
1
  const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
2
- const require_CustomIcon = require('../../utils/CustomIcon.cjs');
3
2
  const require_index = require('../../Typography/types/index.cjs');
4
3
  const require_Typography = require('../../Typography/Typography.cjs');
5
4
  require('../../Typography/index.cjs');
5
+ const require_CustomIcon = require('../../utils/CustomIcon.cjs');
6
6
  const require_useGetLinkButtonIconProperties = require('../hooks/useGetLinkButtonIconProperties.cjs');
7
7
  const require_useGetLinkButtonProperties = require('../hooks/useGetLinkButtonProperties.cjs');
8
8
  const require_openUrlInNewTab = require('../utils/openUrlInNewTab.cjs');
@@ -1,7 +1,7 @@
1
- import { CustomIcon } from "../../utils/CustomIcon.js";
2
1
  import { TypographyColor, TypographyVariant } from "../../Typography/types/index.js";
3
2
  import { Typography } from "../../Typography/Typography.js";
4
3
  import "../../Typography/index.js";
4
+ import { CustomIcon } from "../../utils/CustomIcon.js";
5
5
  import { useGetLinkButtonIconProperties } from "../hooks/useGetLinkButtonIconProperties.js";
6
6
  import { useGetLinkButtonProperties } from "../hooks/useGetLinkButtonProperties.js";
7
7
  import { openUrlInNewTab } from "../utils/openUrlInNewTab.js";
@@ -1,8 +1,8 @@
1
1
  const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
2
2
  const require_theme = require('../packages/components-v3/tokens/theme/theme.cjs');
3
- const require_resolveTheme = require('../utils/resolveTheme.cjs');
4
3
  const require_Stack = require('../Stack/Stack.cjs');
5
4
  require('../Stack/index.cjs');
5
+ const require_resolveTheme = require('../utils/resolveTheme.cjs');
6
6
  const require_useGetImageBorderRadiusProperties = require('./hooks/useGetImageBorderRadiusProperties.cjs');
7
7
  const require_index = require('./components/index.cjs');
8
8
  const require_useGetContainerProperties = require('./hooks/useGetContainerProperties.cjs');
@@ -1,7 +1,7 @@
1
1
  import { Theme } from "../packages/components-v3/tokens/theme/theme.js";
2
- import { resolveTheme } from "../utils/resolveTheme.js";
3
2
  import { Stack } from "../Stack/Stack.js";
4
3
  import "../Stack/index.js";
4
+ import { resolveTheme } from "../utils/resolveTheme.js";
5
5
  import { useGetImageBorderRadiusProperties } from "./hooks/useGetImageBorderRadiusProperties.js";
6
6
  import { OrderLookupCardComponents } from "./components/index.js";
7
7
  import { useGetContainerProperties } from "./hooks/useGetContainerProperties.js";