@envive-ai/react-toolkit-v3 0.3.22 → 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 (367) 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/CSSVariablesEditor/hooks/useGetCssVariablesOptions.cjs +1 -1
  6. package/dist/CSSVariablesEditor/hooks/useGetCssVariablesOptions.js +1 -1
  7. package/dist/CSSVariablesEditor/hooks/useGetCurrentMerchantColors.cjs +1 -1
  8. package/dist/CSSVariablesEditor/hooks/useGetCurrentMerchantColors.js +1 -1
  9. package/dist/CSSVariablesEditor/hooks/useGetDefaultCssVariables.cjs +4 -4
  10. package/dist/CSSVariablesEditor/hooks/useGetDefaultCssVariables.js +4 -4
  11. package/dist/CSSVariablesEditor/hooks/useHandleUpdateCssVars.cjs +3 -3
  12. package/dist/CSSVariablesEditor/hooks/useHandleUpdateCssVars.js +3 -3
  13. package/dist/Carousel/Carousel.d.cts +2 -2
  14. package/dist/Carousel/Carousel.d.ts +2 -2
  15. package/dist/Carousel/components/Badge.cjs +1 -1
  16. package/dist/Carousel/components/Badge.js +1 -1
  17. package/dist/Carousel/components/Container.cjs +1 -1
  18. package/dist/Carousel/components/Container.js +1 -1
  19. package/dist/ChatFooter/ChatFooter.cjs +7 -3
  20. package/dist/ChatFooter/ChatFooter.d.cts +7 -3
  21. package/dist/ChatFooter/ChatFooter.d.ts +7 -3
  22. package/dist/ChatFooter/ChatFooter.js +7 -3
  23. package/dist/ChatFooter/components/Layout.cjs +1 -1
  24. package/dist/ChatFooter/components/Layout.js +1 -1
  25. package/dist/ChatFooter/components/index.d.cts +10 -6
  26. package/dist/ChatFooter/components/index.d.ts +10 -6
  27. package/dist/ChatFooter/types/types.d.cts +16 -0
  28. package/dist/ChatFooter/types/types.d.ts +16 -0
  29. package/dist/ChatHeader/ChatHeader.cjs +2 -1
  30. package/dist/ChatHeader/ChatHeader.d.cts +2 -2
  31. package/dist/ChatHeader/ChatHeader.d.ts +2 -2
  32. package/dist/ChatHeader/ChatHeader.js +2 -1
  33. package/dist/ChatHeader/components/Handle.cjs +2 -2
  34. package/dist/ChatHeader/components/Handle.js +2 -2
  35. package/dist/ChatHeader/hooks/useGetHandleProperties.cjs +4 -2
  36. package/dist/ChatHeader/hooks/useGetHandleProperties.js +4 -2
  37. package/dist/ChatHeader/hooks/useGetLayoutProperties.cjs +1 -1
  38. package/dist/ChatHeader/hooks/useGetLayoutProperties.js +1 -1
  39. package/dist/ChatHeader/hooks/useGetToggleOptionProperties.cjs +1 -1
  40. package/dist/ChatHeader/hooks/useGetToggleOptionProperties.js +1 -1
  41. package/dist/ChatPreview/ChatPreview.cjs +6 -3
  42. package/dist/ChatPreview/ChatPreview.d.cts +2 -2
  43. package/dist/ChatPreview/ChatPreview.d.ts +2 -2
  44. package/dist/ChatPreview/ChatPreview.js +6 -3
  45. package/dist/ChatPreview/index.d.cts +2 -2
  46. package/dist/ChatPreview/index.d.ts +2 -2
  47. package/dist/ChatPreview/types/types.d.cts +13 -1
  48. package/dist/ChatPreview/types/types.d.ts +13 -1
  49. package/dist/ChatPreviewComparison/ChatPreviewComparison.cjs +6 -3
  50. package/dist/ChatPreviewComparison/ChatPreviewComparison.d.cts +2 -2
  51. package/dist/ChatPreviewComparison/ChatPreviewComparison.d.ts +2 -2
  52. package/dist/ChatPreviewComparison/ChatPreviewComparison.js +6 -3
  53. package/dist/ChatPreviewComparison/components/Layout.cjs +2 -2
  54. package/dist/ChatPreviewComparison/components/Layout.js +2 -2
  55. package/dist/ChatPreviewComparison/index.d.cts +2 -2
  56. package/dist/ChatPreviewComparison/index.d.ts +2 -2
  57. package/dist/ChatPreviewComparison/types/types.d.cts +13 -1
  58. package/dist/ChatPreviewComparison/types/types.d.ts +13 -1
  59. package/dist/ChatPreviewLoading/ChatPreviewLoading.cjs +7 -2
  60. package/dist/ChatPreviewLoading/ChatPreviewLoading.d.cts +4 -3
  61. package/dist/ChatPreviewLoading/ChatPreviewLoading.d.ts +2 -1
  62. package/dist/ChatPreviewLoading/ChatPreviewLoading.js +7 -2
  63. package/dist/ChatPreviewLoading/types/types.d.cts +4 -0
  64. package/dist/ChatPreviewLoading/types/types.d.ts +4 -0
  65. package/dist/Container/Container.d.cts +174 -174
  66. package/dist/Container/Container.d.ts +174 -174
  67. package/dist/DesignTokens/DesignTokensComponent.d.cts +2 -2
  68. package/dist/DesignTokens/DesignTokensComponent.d.ts +2 -2
  69. package/dist/DesignTokens/components/FontFamily.cjs +1 -1
  70. package/dist/DesignTokens/components/FontFamily.js +1 -1
  71. package/dist/DesignTokens/components/FontSize.cjs +1 -1
  72. package/dist/DesignTokens/components/FontSize.js +1 -1
  73. package/dist/DesignTokens/components/FontWeight.cjs +1 -1
  74. package/dist/DesignTokens/components/FontWeight.js +1 -1
  75. package/dist/DesignTokens/components/LetterSpacing.cjs +1 -1
  76. package/dist/DesignTokens/components/LetterSpacing.js +1 -1
  77. package/dist/DesignTokens/components/LineHeight.cjs +1 -1
  78. package/dist/DesignTokens/components/LineHeight.js +1 -1
  79. package/dist/DesignTokens/components/Typography.cjs +1 -1
  80. package/dist/DesignTokens/components/Typography.js +1 -1
  81. package/dist/Disclaimer/components/Container.cjs +1 -1
  82. package/dist/Disclaimer/components/Container.js +1 -1
  83. package/dist/DocumentRetrievalCard/DocumentRetrievalCard.d.cts +2 -2
  84. package/dist/DocumentRetrievalCard/DocumentRetrievalCard.d.ts +2 -2
  85. package/dist/DocumentRetrievalCard/components/Image.cjs +1 -1
  86. package/dist/DocumentRetrievalCard/components/Image.js +1 -1
  87. package/dist/DocumentRetrievalCard/components/Layout.cjs +1 -1
  88. package/dist/DocumentRetrievalCard/components/Layout.js +1 -1
  89. package/dist/DocumentRetrievalCard/components/ViewArticleButton/components/Icon.cjs +1 -1
  90. package/dist/DocumentRetrievalCard/components/ViewArticleButton/components/Icon.js +1 -1
  91. package/dist/DocumentRetrievalCard/components/ViewArticleButton/components/Label.cjs +1 -1
  92. package/dist/DocumentRetrievalCard/components/ViewArticleButton/components/Label.js +1 -1
  93. package/dist/DocumentRetrievalCard/components/ViewArticleButton/components/Layout.cjs +1 -1
  94. package/dist/DocumentRetrievalCard/components/ViewArticleButton/components/Layout.js +1 -1
  95. package/dist/FloatingButton/FloatingButton.d.cts +2 -2
  96. package/dist/FloatingButton/FloatingButton.d.ts +2 -2
  97. package/dist/FloatingButton/components/Button.cjs +1 -1
  98. package/dist/FloatingButton/components/Button.js +1 -1
  99. package/dist/FloatingButton/components/Container.cjs +1 -1
  100. package/dist/FloatingButton/components/Container.js +1 -1
  101. package/dist/FloatingButton/components/Wrapper.cjs +1 -1
  102. package/dist/FloatingButton/components/Wrapper.js +1 -1
  103. package/dist/FloatingChat/FloatingChat.cjs +27 -4
  104. package/dist/FloatingChat/FloatingChat.d.cts +2 -2
  105. package/dist/FloatingChat/FloatingChat.d.ts +2 -2
  106. package/dist/FloatingChat/FloatingChat.js +28 -5
  107. package/dist/FloatingChat/components/AgentMessage.cjs +2 -2
  108. package/dist/FloatingChat/components/AgentMessage.js +2 -2
  109. package/dist/FloatingChat/components/ChatMessages.cjs +1 -1
  110. package/dist/FloatingChat/components/ChatMessages.js +1 -1
  111. package/dist/FloatingChat/components/Layout.cjs +1 -1
  112. package/dist/FloatingChat/components/Layout.js +1 -1
  113. package/dist/FloatingChat/components/ProductResultsModal.cjs +1 -1
  114. package/dist/FloatingChat/components/ProductResultsModal.js +1 -1
  115. package/dist/FloatingChat/components/ResultsGridView.cjs +1 -1
  116. package/dist/FloatingChat/components/ResultsGridView.js +1 -1
  117. package/dist/FloatingChat/components/SalesAgentBadgeContent.cjs +1 -1
  118. package/dist/FloatingChat/components/SalesAgentBadgeContent.js +1 -1
  119. package/dist/FloatingChat/hooks/useChatSuggestions.cjs +3 -5
  120. package/dist/FloatingChat/hooks/useChatSuggestions.js +4 -6
  121. package/dist/Form/Form.cjs +1 -1
  122. package/dist/Form/Form.js +1 -1
  123. package/dist/Form/components/Layout.cjs +1 -1
  124. package/dist/Form/components/Layout.js +1 -1
  125. package/dist/Form/components/SubmitButtonItem.cjs +1 -1
  126. package/dist/Form/components/SubmitButtonItem.js +1 -1
  127. package/dist/Form/components/TextFieldItem.cjs +1 -1
  128. package/dist/Form/components/TextFieldItem.js +1 -1
  129. package/dist/FullPageSalesAgent/FullPageSalesAgent.cjs +24 -2
  130. package/dist/FullPageSalesAgent/FullPageSalesAgent.d.cts +5 -3
  131. package/dist/FullPageSalesAgent/FullPageSalesAgent.d.ts +5 -3
  132. package/dist/FullPageSalesAgent/FullPageSalesAgent.js +25 -3
  133. package/dist/FullPageSalesAgent/components/Layout.cjs +1 -1
  134. package/dist/FullPageSalesAgent/components/Layout.js +1 -1
  135. package/dist/Image/Image.cjs +1 -1
  136. package/dist/Image/Image.d.cts +2 -2
  137. package/dist/Image/Image.d.ts +2 -2
  138. package/dist/Image/Image.js +1 -1
  139. package/dist/ImageGallery/ImageGallery.d.cts +2 -2
  140. package/dist/ImageGallery/components/Layout.cjs +1 -1
  141. package/dist/ImageGallery/components/Layout.js +1 -1
  142. package/dist/ImageGallery/utils/functions.cjs +1 -1
  143. package/dist/ImageGallery/utils/functions.js +1 -1
  144. package/dist/MarkdownProcessor/MarkdownProcessor.d.cts +2 -2
  145. package/dist/MarkdownProcessor/MarkdownProcessor.d.ts +2 -2
  146. package/dist/Message/components/Layout.cjs +1 -1
  147. package/dist/Message/components/Layout.js +1 -1
  148. package/dist/OrderLookupCard/OrderLookupCard.cjs +1 -1
  149. package/dist/OrderLookupCard/OrderLookupCard.js +1 -1
  150. package/dist/OrderLookupCard/components/Layout.cjs +1 -1
  151. package/dist/OrderLookupCard/components/Layout.js +1 -1
  152. package/dist/OrderLookupCard/components/MoreProductsOverlay.cjs +1 -1
  153. package/dist/OrderLookupCard/components/MoreProductsOverlay.js +1 -1
  154. package/dist/OrderLookupCard/components/ProductImageGridItem.cjs +1 -1
  155. package/dist/OrderLookupCard/components/ProductImageGridItem.js +1 -1
  156. package/dist/OrderLookupCard/components/ProductImageItem.cjs +1 -1
  157. package/dist/OrderLookupCard/components/ProductImageItem.js +1 -1
  158. package/dist/OrderLookupCard/components/ProductImagesGrid.cjs +1 -1
  159. package/dist/OrderLookupCard/components/ProductImagesGrid.js +1 -1
  160. package/dist/OrderLookupCard/components/StatusLabel.cjs +1 -1
  161. package/dist/OrderLookupCard/components/StatusLabel.js +1 -1
  162. package/dist/OrderLookupCard/components/TrackOrderLink.cjs +1 -1
  163. package/dist/OrderLookupCard/components/TrackOrderLink.js +1 -1
  164. package/dist/ProductCard/ProductCard.cjs +6 -2
  165. package/dist/ProductCard/ProductCard.d.cts +6 -3
  166. package/dist/ProductCard/ProductCard.d.ts +6 -3
  167. package/dist/ProductCard/ProductCard.js +6 -2
  168. package/dist/ProductCard/index.d.cts +2 -2
  169. package/dist/ProductCard/index.d.ts +2 -2
  170. package/dist/ProductCard/types/index.d.cts +7 -1
  171. package/dist/ProductCard/types/index.d.ts +7 -1
  172. package/dist/PromptButton/PromptButton.cjs +1 -1
  173. package/dist/PromptButton/PromptButton.d.cts +2 -2
  174. package/dist/PromptButton/PromptButton.d.ts +2 -2
  175. package/dist/PromptButton/PromptButton.js +1 -1
  176. package/dist/PromptButton/components/Layout.cjs +1 -1
  177. package/dist/PromptButton/components/Layout.js +1 -1
  178. package/dist/PromptButton/components/Loading.cjs +1 -1
  179. package/dist/PromptButton/components/Loading.js +1 -1
  180. package/dist/PromptButtonCarouselWithImage/PromptButtonCarouselWithImage.cjs +5 -2
  181. package/dist/PromptButtonCarouselWithImage/PromptButtonCarouselWithImage.d.cts +6 -3
  182. package/dist/PromptButtonCarouselWithImage/PromptButtonCarouselWithImage.d.ts +6 -3
  183. package/dist/PromptButtonCarouselWithImage/PromptButtonCarouselWithImage.js +5 -2
  184. package/dist/PromptButtonCarouselWithImage/components/Layout.cjs +1 -1
  185. package/dist/PromptButtonCarouselWithImage/components/Layout.js +1 -1
  186. package/dist/PromptButtonCarouselWithImage/components/Skeleton.cjs +1 -1
  187. package/dist/PromptButtonCarouselWithImage/components/Skeleton.js +1 -1
  188. package/dist/PromptButtonCarouselWithImage/types/types.d.cts +12 -0
  189. package/dist/PromptButtonCarouselWithImage/types/types.d.ts +12 -0
  190. package/dist/PromptCarousel/PromptCarousel.cjs +1 -1
  191. package/dist/PromptCarousel/PromptCarousel.d.cts +2 -2
  192. package/dist/PromptCarousel/PromptCarousel.d.ts +2 -2
  193. package/dist/PromptCarousel/PromptCarousel.js +1 -1
  194. package/dist/ReviewCard/ReviewCard.d.cts +2 -2
  195. package/dist/ReviewCard/ReviewCard.d.ts +2 -2
  196. package/dist/ReviewCard/components/Container.cjs +1 -1
  197. package/dist/ReviewCard/components/Container.js +1 -1
  198. package/dist/ReviewCard/components/Rating.cjs +1 -2
  199. package/dist/ReviewCard/components/Rating.js +1 -2
  200. package/dist/ReviewCard/components/ReadMoreButton.cjs +1 -1
  201. package/dist/ReviewCard/components/ReadMoreButton.js +1 -1
  202. package/dist/ReviewCard/components/index.d.cts +6 -6
  203. package/dist/ReviewCard/components/index.d.ts +6 -6
  204. package/dist/SalesAgentProductCard/SalesAgentProductCard.d.cts +2 -2
  205. package/dist/SalesAgentProductCard/SalesAgentProductCard.d.ts +2 -2
  206. package/dist/SalesAgentProductCard/components/Container.cjs +1 -1
  207. package/dist/SalesAgentProductCard/components/Container.js +1 -1
  208. package/dist/SalesAgentProductCard/components/ProductImage.cjs +1 -1
  209. package/dist/SalesAgentProductCard/components/ProductImage.js +1 -1
  210. package/dist/SalesAgentProductCard/components/ProductName.cjs +1 -1
  211. package/dist/SalesAgentProductCard/components/ProductName.js +1 -1
  212. package/dist/SalesAgentProductCard/components/index.d.cts +8 -8
  213. package/dist/SalesAgentProductCard/components/index.d.ts +8 -8
  214. package/dist/SocialProof/SocialProof.cjs +6 -3
  215. package/dist/SocialProof/SocialProof.d.cts +2 -2
  216. package/dist/SocialProof/SocialProof.d.ts +2 -2
  217. package/dist/SocialProof/SocialProof.js +6 -3
  218. package/dist/SocialProof/components/Headline.cjs +1 -1
  219. package/dist/SocialProof/components/Headline.js +1 -1
  220. package/dist/SocialProof/components/LayoutFourHorizontal.cjs +1 -1
  221. package/dist/SocialProof/components/LayoutFourHorizontal.js +1 -1
  222. package/dist/SocialProof/components/Textfield.cjs +5 -2
  223. package/dist/SocialProof/components/Textfield.js +5 -2
  224. package/dist/SocialProof/index.d.cts +2 -2
  225. package/dist/SocialProof/index.d.ts +2 -2
  226. package/dist/SocialProof/types/types.d.cts +13 -1
  227. package/dist/SocialProof/types/types.d.ts +13 -1
  228. package/dist/SparkleAnimation/SparkleAnimation.d.cts +2 -2
  229. package/dist/SparkleAnimation/SparkleAnimation.d.ts +2 -2
  230. package/dist/Stack/Stack.d.cts +2 -2
  231. package/dist/Stack/Stack.d.ts +2 -2
  232. package/dist/TextField/TextField.cjs +35 -3
  233. package/dist/TextField/TextField.d.cts +5 -1
  234. package/dist/TextField/TextField.d.ts +5 -1
  235. package/dist/TextField/TextField.js +35 -3
  236. package/dist/TextField/components/Input.cjs +1 -1
  237. package/dist/TextField/components/Input.js +1 -1
  238. package/dist/TextField/components/Layout.cjs +11 -8
  239. package/dist/TextField/components/Layout.js +11 -8
  240. package/dist/TextField/components/SendIcon.cjs +1 -1
  241. package/dist/TextField/components/SendIcon.js +1 -1
  242. package/dist/TextField/components/VoiceInputButton.cjs +45 -0
  243. package/dist/TextField/components/VoiceInputButton.js +39 -0
  244. package/dist/TextField/components/index.cjs +3 -1
  245. package/dist/TextField/components/index.js +3 -1
  246. package/dist/TextField/hooks/useGetMicButtonContainerProperties.cjs +20 -0
  247. package/dist/TextField/hooks/useGetMicButtonContainerProperties.js +19 -0
  248. package/dist/TextField/hooks/useGetSkeletonProperties.cjs +1 -1
  249. package/dist/TextField/hooks/useGetSkeletonProperties.js +1 -1
  250. package/dist/TextField/hooks/useVoiceInput.cjs +59 -0
  251. package/dist/TextField/hooks/useVoiceInput.js +57 -0
  252. package/dist/TextField/types/index.d.cts +11 -0
  253. package/dist/TextField/types/index.d.ts +11 -0
  254. package/dist/TextField/utils/getLayoutStateProperties.cjs +9 -1
  255. package/dist/TextField/utils/getLayoutStateProperties.js +8 -1
  256. package/dist/Title/Title.cjs +1 -1
  257. package/dist/Title/Title.js +1 -1
  258. package/dist/Title/components/Layout.cjs +1 -1
  259. package/dist/Title/components/Layout.js +1 -1
  260. package/dist/TitledPromptCarousel/TitledPromptCarousel.cjs +1 -1
  261. package/dist/TitledPromptCarousel/TitledPromptCarousel.d.cts +2 -2
  262. package/dist/TitledPromptCarousel/TitledPromptCarousel.d.ts +2 -2
  263. package/dist/TitledPromptCarousel/TitledPromptCarousel.js +1 -1
  264. package/dist/Tokens/index.cjs +6 -6
  265. package/dist/Tokens/index.js +6 -6
  266. package/dist/TypingAnimation/TypingAnimation.cjs +7 -3
  267. package/dist/TypingAnimation/TypingAnimation.d.cts +2 -2
  268. package/dist/TypingAnimation/TypingAnimation.d.ts +2 -2
  269. package/dist/TypingAnimation/TypingAnimation.js +7 -3
  270. package/dist/TypingAnimation/index.d.cts +2 -2
  271. package/dist/TypingAnimation/index.d.ts +2 -2
  272. package/dist/TypingAnimation/types/index.d.cts +13 -1
  273. package/dist/TypingAnimation/types/index.d.ts +13 -1
  274. package/dist/Typography/Typography.d.cts +4 -4
  275. package/dist/Typography/Typography.d.ts +4 -4
  276. package/dist/WelcomeMessage/components/Container.cjs +1 -1
  277. package/dist/WelcomeMessage/components/Container.js +1 -1
  278. package/dist/WidgetTextField/WidgetTextField.cjs +39 -7
  279. package/dist/WidgetTextField/WidgetTextField.d.cts +7 -3
  280. package/dist/WidgetTextField/WidgetTextField.d.ts +7 -3
  281. package/dist/WidgetTextField/WidgetTextField.js +33 -2
  282. package/dist/WidgetTextField/components/Container.cjs +32 -26
  283. package/dist/WidgetTextField/components/Container.js +32 -26
  284. package/dist/WidgetTextField/components/Skeleton.cjs +1 -1
  285. package/dist/WidgetTextField/components/Skeleton.js +1 -1
  286. package/dist/WidgetTextField/hooks/useGetContainerProperties.cjs +5 -3
  287. package/dist/WidgetTextField/hooks/useGetContainerProperties.js +5 -3
  288. package/dist/WidgetTextField/hooks/useGetMicWidgetButtonProperties.cjs +20 -0
  289. package/dist/WidgetTextField/hooks/useGetMicWidgetButtonProperties.js +19 -0
  290. package/dist/WidgetTextField/types/types.d.cts +21 -0
  291. package/dist/WidgetTextField/types/types.d.ts +21 -0
  292. package/dist/WidgetWrapper/WidgetWrapper.cjs +1 -1
  293. package/dist/WidgetWrapper/WidgetWrapper.d.cts +2 -2
  294. package/dist/WidgetWrapper/WidgetWrapper.d.ts +2 -2
  295. package/dist/WidgetWrapper/WidgetWrapper.js +1 -1
  296. package/dist/WidgetWrapper/hooks/useGetWrapperProperties.cjs +1 -1
  297. package/dist/WidgetWrapper/hooks/useGetWrapperProperties.js +1 -1
  298. package/dist/WidgetWrapperWithTitle/WidgetWrapperWithTitle.d.cts +2 -2
  299. package/dist/WidgetWrapperWithTitle/WidgetWrapperWithTitle.d.ts +2 -2
  300. package/dist/node_modules/jotai/esm/react.cjs +87 -0
  301. package/dist/node_modules/jotai/esm/react.js +88 -2
  302. package/dist/node_modules/jotai/esm/vanilla/internals.cjs +2 -1
  303. package/dist/node_modules/jotai/esm/vanilla/internals.js +1 -1
  304. package/dist/packages/components-v3/tokens/typography/typography.cjs +1 -1
  305. package/dist/packages/components-v3/tokens/typography/typography.js +1 -1
  306. package/dist/styles.css +1 -1
  307. package/dist/utils/resolveTheme.cjs +1 -1
  308. package/dist/utils/resolveTheme.js +1 -1
  309. package/package.json +2 -1
  310. package/src/components/ChatFooter/ChatFooter.tsx +8 -0
  311. package/src/components/ChatFooter/__tests__/ChatFooter.test.tsx +43 -0
  312. package/src/components/ChatFooter/components/TextField.tsx +12 -0
  313. package/src/components/ChatFooter/types/types.ts +17 -0
  314. package/src/components/ChatHeader/ChatHeader.tsx +1 -0
  315. package/src/components/ChatHeader/components/Handle.tsx +7 -2
  316. package/src/components/ChatHeader/hooks/useGetHandleProperties.ts +5 -1
  317. package/src/components/ChatHeader/hooks/useGetToggleOptionProperties.ts +1 -1
  318. package/src/components/ChatHeader/types/index.ts +1 -0
  319. package/src/components/ChatPreview/ChatPreview.tsx +13 -2
  320. package/src/components/ChatPreview/__tests__/ChatPreview.test.tsx +44 -0
  321. package/src/components/ChatPreview/index.ts +1 -1
  322. package/src/components/ChatPreview/types/types.ts +13 -0
  323. package/src/components/ChatPreviewComparison/ChatPreviewComparison.tsx +6 -0
  324. package/src/components/ChatPreviewComparison/__tests__/ChatPreviewComparison.test.tsx +44 -0
  325. package/src/components/ChatPreviewComparison/index.ts +1 -1
  326. package/src/components/ChatPreviewComparison/types/types.ts +13 -0
  327. package/src/components/ChatPreviewLoading/ChatPreviewLoading.tsx +5 -3
  328. package/src/components/ChatPreviewLoading/__tests__/ChatPreviewLoading.test.tsx +40 -0
  329. package/src/components/ChatPreviewLoading/types/types.ts +5 -0
  330. package/src/components/FloatingChat/FloatingChat.tsx +38 -7
  331. package/src/components/FloatingChat/hooks/useChatSuggestions.ts +8 -12
  332. package/src/components/FullPageSalesAgent/FullPageSalesAgent.tsx +32 -1
  333. package/src/components/ProductCard/ProductCard.tsx +7 -0
  334. package/src/components/ProductCard/__tests__/ProductCard.test.tsx +33 -0
  335. package/src/components/ProductCard/index.ts +1 -1
  336. package/src/components/ProductCard/types/index.ts +6 -0
  337. package/src/components/PromptButtonCarouselWithImage/PromptButtonCarouselWithImage.tsx +6 -0
  338. package/src/components/PromptButtonCarouselWithImage/__tests__/PromptButtonCarouselWithImage.test.tsx +34 -0
  339. package/src/components/PromptButtonCarouselWithImage/types/types.ts +12 -0
  340. package/src/components/ReviewCard/components/Rating.tsx +0 -1
  341. package/src/components/SocialProof/SocialProof.tsx +6 -0
  342. package/src/components/SocialProof/__tests__/SocialProof.test.tsx +58 -0
  343. package/src/components/SocialProof/components/Textfield.tsx +9 -0
  344. package/src/components/SocialProof/index.ts +1 -1
  345. package/src/components/SocialProof/types/types.ts +13 -0
  346. package/src/components/TextField/TextField.tsx +49 -0
  347. package/src/components/TextField/__tests__/TextField.test.tsx +3 -3
  348. package/src/components/TextField/__tests__/VoiceInputButton.test.tsx +175 -0
  349. package/src/components/TextField/components/Layout.tsx +24 -17
  350. package/src/components/TextField/components/VoiceInputButton.tsx +69 -0
  351. package/src/components/TextField/components/index.ts +2 -0
  352. package/src/components/TextField/hooks/useGetMicButtonContainerProperties.ts +38 -0
  353. package/src/components/TextField/hooks/useGetSkeletonProperties.ts +1 -1
  354. package/src/components/TextField/hooks/useVoiceInput.ts +77 -0
  355. package/src/components/TextField/types/index.ts +11 -0
  356. package/src/components/TextField/utils/getLayoutStateProperties.ts +8 -0
  357. package/src/components/TypingAnimation/TypingAnimation.tsx +7 -0
  358. package/src/components/TypingAnimation/__tests__/TypingAnimation.test.tsx +47 -0
  359. package/src/components/TypingAnimation/index.ts +1 -1
  360. package/src/components/TypingAnimation/types/index.ts +14 -1
  361. package/src/components/WidgetTextField/WidgetTextField.tsx +47 -0
  362. package/src/components/WidgetTextField/__tests__/WidgetTextField.test.tsx +119 -4
  363. package/src/components/WidgetTextField/components/Container.tsx +40 -27
  364. package/src/components/WidgetTextField/hooks/useGetContainerProperties.ts +16 -4
  365. package/src/components/WidgetTextField/hooks/useGetMicWidgetButtonProperties.ts +38 -0
  366. package/src/components/WidgetTextField/types/types.ts +21 -0
  367. package/src/components/WidgetWrapper/hooks/useGetWrapperProperties.ts +1 -1
@@ -6,8 +6,8 @@ import { useGetThemeProperties } from "../hooks/useGetThemeProperties.js";
6
6
  import { useGetStackLayoutProperties } from "../hooks/useGetStackLayoutProperties.js";
7
7
  import { useGetCardWidthProperties } from "../hooks/useGetCardWidthProperties.js";
8
8
  import { useGetPaddingProperties } from "../hooks/useGetPaddingProperties.js";
9
- import classNames from "classnames";
10
9
  import { jsx, jsxs } from "react/jsx-runtime";
10
+ import classNames from "classnames";
11
11
 
12
12
  //#region src/components/DocumentRetrievalCard/components/Layout.tsx
13
13
  const Layout = ({ content, image, viewArticleButton, id, testId, className, style, theme, ariaLabel }) => {
@@ -2,9 +2,9 @@ const require_rolldown_runtime = require('../../../../_virtual/rolldown_runtime.
2
2
  const require_Stack = require('../../../../Stack/Stack.cjs');
3
3
  require('../../../../Stack/index.cjs');
4
4
  const require_CustomIcon = require('../../../../utils/CustomIcon.cjs');
5
+ let react_jsx_runtime = require("react/jsx-runtime");
5
6
  let classnames = require("classnames");
6
7
  classnames = require_rolldown_runtime.__toESM(classnames);
7
- let react_jsx_runtime = require("react/jsx-runtime");
8
8
  let __envive_ai_react_icons_Document = require("@envive-ai/react-icons/Document");
9
9
  __envive_ai_react_icons_Document = require_rolldown_runtime.__toESM(__envive_ai_react_icons_Document);
10
10
 
@@ -1,8 +1,8 @@
1
1
  import { Stack } from "../../../../Stack/Stack.js";
2
2
  import "../../../../Stack/index.js";
3
3
  import { CustomIcon } from "../../../../utils/CustomIcon.js";
4
- import classNames from "classnames";
5
4
  import { jsx } from "react/jsx-runtime";
5
+ import classNames from "classnames";
6
6
  import Document from "@envive-ai/react-icons/Document";
7
7
 
8
8
  //#region src/components/DocumentRetrievalCard/components/ViewArticleButton/components/Icon.tsx
@@ -5,9 +5,9 @@ const require_index = require('../../../../Typography/types/index.cjs');
5
5
  const require_Typography = require('../../../../Typography/Typography.cjs');
6
6
  require('../../../../Typography/index.cjs');
7
7
  const require_useGetLabelUnderlineProperties = require('../../../hooks/useGetLabelUnderlineProperties.cjs');
8
+ let react_jsx_runtime = require("react/jsx-runtime");
8
9
  let classnames = require("classnames");
9
10
  classnames = require_rolldown_runtime.__toESM(classnames);
10
- let react_jsx_runtime = require("react/jsx-runtime");
11
11
 
12
12
  //#region src/components/DocumentRetrievalCard/components/ViewArticleButton/components/Label.tsx
13
13
  const Label = ({ viewArticleLabel, typographyVariant, shouldUnderline = false, textCaseClassName }) => {
@@ -4,8 +4,8 @@ import { TypographyColor } from "../../../../Typography/types/index.js";
4
4
  import { Typography } from "../../../../Typography/Typography.js";
5
5
  import "../../../../Typography/index.js";
6
6
  import { useGetLabelUnderlineProperties } from "../../../hooks/useGetLabelUnderlineProperties.js";
7
- import classNames from "classnames";
8
7
  import { jsx } from "react/jsx-runtime";
8
+ import classNames from "classnames";
9
9
 
10
10
  //#region src/components/DocumentRetrievalCard/components/ViewArticleButton/components/Label.tsx
11
11
  const Label = ({ viewArticleLabel, typographyVariant, shouldUnderline = false, textCaseClassName }) => {
@@ -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
3
  require('../../../../Stack/index.cjs');
4
+ let react_jsx_runtime = require("react/jsx-runtime");
4
5
  let classnames = require("classnames");
5
6
  classnames = require_rolldown_runtime.__toESM(classnames);
6
- let react_jsx_runtime = require("react/jsx-runtime");
7
7
 
8
8
  //#region src/components/DocumentRetrievalCard/components/ViewArticleButton/components/Layout.tsx
9
9
  const Layout = ({ icon, label, onClick, className, ariaLabel }) => {
@@ -1,7 +1,7 @@
1
1
  import { Stack } from "../../../../Stack/Stack.js";
2
2
  import "../../../../Stack/index.js";
3
- import classNames from "classnames";
4
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
+ import classNames from "classnames";
5
5
 
6
6
  //#region src/components/DocumentRetrievalCard/components/ViewArticleButton/components/Layout.tsx
7
7
  const Layout = ({ icon, label, onClick, className, ariaLabel }) => {
@@ -1,5 +1,5 @@
1
1
  import { FloatingButtonProps } from "./types/types.cjs";
2
- import * as react_jsx_runtime25 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime33 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/FloatingButton/FloatingButton.d.ts
5
5
  declare const FloatingButton: ({
@@ -18,6 +18,6 @@ declare const FloatingButton: ({
18
18
  onMouseOver,
19
19
  ariaLabel,
20
20
  previewMode
21
- }: FloatingButtonProps) => react_jsx_runtime25.JSX.Element;
21
+ }: FloatingButtonProps) => react_jsx_runtime33.JSX.Element;
22
22
  //#endregion
23
23
  export { FloatingButton };
@@ -1,5 +1,5 @@
1
1
  import { FloatingButtonProps } from "./types/types.js";
2
- import * as react_jsx_runtime29 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime26 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/FloatingButton/FloatingButton.d.ts
5
5
  declare const FloatingButton: ({
@@ -18,6 +18,6 @@ declare const FloatingButton: ({
18
18
  onMouseOver,
19
19
  ariaLabel,
20
20
  previewMode
21
- }: FloatingButtonProps) => react_jsx_runtime29.JSX.Element;
21
+ }: FloatingButtonProps) => react_jsx_runtime26.JSX.Element;
22
22
  //#endregion
23
23
  export { FloatingButton };
@@ -2,9 +2,9 @@ const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
2
2
  const require_types = require('../types/types.cjs');
3
3
  const require_useGetButtonHoverProperties = require('../hooks/useGetButtonHoverProperties.cjs');
4
4
  const require_useGetButtonProperties = require('../hooks/useGetButtonProperties.cjs');
5
+ let react_jsx_runtime = require("react/jsx-runtime");
5
6
  let classnames = require("classnames");
6
7
  classnames = require_rolldown_runtime.__toESM(classnames);
7
- let react_jsx_runtime = require("react/jsx-runtime");
8
8
 
9
9
  //#region src/components/FloatingButton/components/Button.tsx
10
10
  const Button = ({ variant = require_types.FloatingButtonVariant.ATTACHED, mode = require_types.FloatingButtonMode.LIGHT, backgroundColor, onClick, onMouseOver, onFocus, children, className = "", ariaLabel }) => {
@@ -1,8 +1,8 @@
1
1
  import { FloatingButtonMode, FloatingButtonVariant } from "../types/types.js";
2
2
  import { useGetButtonHoverProperties } from "../hooks/useGetButtonHoverProperties.js";
3
3
  import { useGetButtonProperties } from "../hooks/useGetButtonProperties.js";
4
- import classNames from "classnames";
5
4
  import { jsx } from "react/jsx-runtime";
5
+ import classNames from "classnames";
6
6
 
7
7
  //#region src/components/FloatingButton/components/Button.tsx
8
8
  const Button = ({ variant = FloatingButtonVariant.ATTACHED, mode = FloatingButtonMode.LIGHT, backgroundColor, onClick, onMouseOver, onFocus, children, className = "", ariaLabel }) => {
@@ -1,9 +1,9 @@
1
1
  const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
2
2
  const require_types = require('../types/types.cjs');
3
3
  const require_useGetContainerProperties = require('../hooks/useGetContainerProperties.cjs');
4
+ let react_jsx_runtime = require("react/jsx-runtime");
4
5
  let classnames = require("classnames");
5
6
  classnames = require_rolldown_runtime.__toESM(classnames);
6
- let react_jsx_runtime = require("react/jsx-runtime");
7
7
 
8
8
  //#region src/components/FloatingButton/components/Container.tsx
9
9
  const Container = ({ location = require_types.FloatingButtonLocation.BOTTOM_RIGHT, show = require_types.FloatingButtonShow.ALWAYS, variant = require_types.FloatingButtonVariant.ATTACHED, hasInteractionHappened = false, children, id, testId, className = "", style, previewMode = false }) => {
@@ -1,7 +1,7 @@
1
1
  import { FloatingButtonLocation, FloatingButtonShow, FloatingButtonVariant } from "../types/types.js";
2
2
  import { useGetContainerProperties } from "../hooks/useGetContainerProperties.js";
3
- import classNames from "classnames";
4
3
  import { jsx } from "react/jsx-runtime";
4
+ import classNames from "classnames";
5
5
 
6
6
  //#region src/components/FloatingButton/components/Container.tsx
7
7
  const Container = ({ location = FloatingButtonLocation.BOTTOM_RIGHT, show = FloatingButtonShow.ALWAYS, variant = FloatingButtonVariant.ATTACHED, hasInteractionHappened = false, children, id, testId, className = "", style, previewMode = false }) => {
@@ -1,9 +1,9 @@
1
1
  const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
2
2
  const require_types = require('../types/types.cjs');
3
3
  const require_useGetWrapperProperties = require('../hooks/useGetWrapperProperties.cjs');
4
+ let react_jsx_runtime = require("react/jsx-runtime");
4
5
  let classnames = require("classnames");
5
6
  classnames = require_rolldown_runtime.__toESM(classnames);
6
- let react_jsx_runtime = require("react/jsx-runtime");
7
7
 
8
8
  //#region src/components/FloatingButton/components/Wrapper.tsx
9
9
  const Wrapper = ({ location = require_types.FloatingButtonLocation.BOTTOM_RIGHT, children, className = "" }) => {
@@ -1,7 +1,7 @@
1
1
  import { FloatingButtonLocation } from "../types/types.js";
2
2
  import { useGetWrapperProperties } from "../hooks/useGetWrapperProperties.js";
3
- import classNames from "classnames";
4
3
  import { jsx } from "react/jsx-runtime";
4
+ import classNames from "classnames";
5
5
 
6
6
  //#region src/components/FloatingButton/components/Wrapper.tsx
7
7
  const Wrapper = ({ location = FloatingButtonLocation.BOTTOM_RIGHT, children, className = "" }) => {
@@ -19,11 +19,11 @@ const require_useChatSuggestions = require('./hooks/useChatSuggestions.cjs');
19
19
  const require_useProductResultsView = require('./hooks/useProductResultsView.cjs');
20
20
  const require_useScrollToBottom = require('./hooks/useScrollToBottom.cjs');
21
21
  const require_useSnapSetup = require('./hooks/useSnapSetup.cjs');
22
- const require_useFilteredChatMessages = require('./hooks/useFilteredChatMessages.cjs');
23
- const require_useSnapCalculator = require('./hooks/useSnapCalculator.cjs');
24
22
  const require_trackProductCardInteraction = require('./utils/trackProductCardInteraction.cjs');
23
+ const require_useSnapCalculator = require('./hooks/useSnapCalculator.cjs');
25
24
  const require_ModalSheet = require('./components/ModalSheet.cjs');
26
25
  const require_index$1 = require('./components/index.cjs');
26
+ const require_useFilteredChatMessages = require('./hooks/useFilteredChatMessages.cjs');
27
27
  let react = require("react");
28
28
  let react_jsx_runtime = require("react/jsx-runtime");
29
29
  let __envive_ai_react_hooks_contexts_amplitudeContext = require("@envive-ai/react-hooks/contexts/amplitudeContext");
@@ -48,7 +48,7 @@ const FloatingChat = ({ id, className, style, testId, theme = require_theme.Them
48
48
  if (textString && typeof textString === "string") return textString;
49
49
  }
50
50
  }, [disclaimerText]);
51
- const { agentName, chatHeaderLogoDarkSrc, chatHeaderLogoLightSrc } = lookAndFeelConfig;
51
+ const { agentName, chatHeaderLogoDarkSrc, chatHeaderLogoLightSrc, voiceInputEnabled } = lookAndFeelConfig;
52
52
  const { messages, isResponseStreaming, isPendingResponse, suggestions, onSuggestionClicked, onTypedMessageSubmitted, onFormResponseSubmitted } = salesAgentData;
53
53
  const { answerSuggestions, generalSuggestions, showAnswerSuggestions, setAnswerSuggestions, setGeneralSuggestions } = require_useChatSuggestions.useChatSuggestions({
54
54
  suggestions,
@@ -122,6 +122,25 @@ const FloatingChat = ({ id, className, style, testId, theme = require_theme.Them
122
122
  const handleProductCardClick = (product) => {
123
123
  require_trackProductCardInteraction.trackProductCardClicked(trackWidgetInteraction, __envive_ai_react_hooks_hooks_WidgetInteraction_types.WidgetInteractionComponent.FLOATING_CHAT, product);
124
124
  };
125
+ const handleTranscriptionStarted = (0, react.useCallback)(() => {
126
+ trackWidgetInteraction({
127
+ eventName: __envive_ai_react_hooks_contexts_amplitudeContext.EnviveMetricsEventName.WidgetInteraction,
128
+ trigger: {
129
+ widget: __envive_ai_react_hooks_hooks_WidgetInteraction_types.WidgetInteractionComponent.FLOATING_CHAT,
130
+ widget_interaction: __envive_ai_react_hooks_hooks_WidgetInteraction_types.WidgetInteractionType.VOICE_TRANSCRIPTION_STARTED
131
+ }
132
+ });
133
+ }, [trackWidgetInteraction]);
134
+ const handleTranscriptionCompleted = (0, react.useCallback)((transcript) => {
135
+ trackWidgetInteraction({
136
+ eventName: __envive_ai_react_hooks_contexts_amplitudeContext.EnviveMetricsEventName.WidgetInteraction,
137
+ trigger: {
138
+ widget: __envive_ai_react_hooks_hooks_WidgetInteraction_types.WidgetInteractionComponent.FLOATING_CHAT,
139
+ widget_interaction: __envive_ai_react_hooks_hooks_WidgetInteraction_types.WidgetInteractionType.VOICE_TRANSCRIPTION_COMPLETED,
140
+ widget_interaction_data: { transcription: transcript }
141
+ }
142
+ });
143
+ }, [trackWidgetInteraction]);
125
144
  const header = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ChatHeader.ChatHeader, {
126
145
  logoDark: chatHeaderLogoDarkSrc,
127
146
  logoLight: chatHeaderLogoLightSrc,
@@ -175,6 +194,7 @@ const FloatingChat = ({ id, className, style, testId, theme = require_theme.Them
175
194
  theme: finalTheme,
176
195
  isScrolled: isMobile ? isFloatingLayout : false,
177
196
  onChange: setQuery,
197
+ inputClassName: "placeholder:envive-tw-text-text-secondary",
178
198
  onSubmit: () => {
179
199
  onTypedMessageSubmitted({
180
200
  query,
@@ -199,7 +219,10 @@ const FloatingChat = ({ id, className, style, testId, theme = require_theme.Them
199
219
  isLoadingPromptSuggestions: isPendingResponse || isResponseStreaming || generalSuggestions.length === 0,
200
220
  hideEnviveWatermark: !showEnviveLogo,
201
221
  onFocus: handleInputQueryFocus,
202
- parentWidget: __envive_ai_react_hooks_hooks_WidgetInteraction_types.WidgetInteractionComponent.FLOATING_CHAT
222
+ parentWidget: __envive_ai_react_hooks_hooks_WidgetInteraction_types.WidgetInteractionComponent.FLOATING_CHAT,
223
+ voiceInputEnabled,
224
+ onTranscriptionStarted: handleTranscriptionStarted,
225
+ onTranscriptionCompleted: handleTranscriptionCompleted
203
226
  });
204
227
  const welcomeMessage = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_WelcomeMessage.WelcomeMessage, {
205
228
  sparkleIconColor: welcomeMessageIconColor,
@@ -1,5 +1,5 @@
1
1
  import { FloatingChatProps } from "./types/types.cjs";
2
- import * as react_jsx_runtime29 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime30 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_runtime29.JSX.Element;
22
+ }: FloatingChatProps) => react_jsx_runtime30.JSX.Element;
23
23
  //#endregion
24
24
  export { FloatingChat };
@@ -1,5 +1,5 @@
1
1
  import { FloatingChatProps } from "./types/types.js";
2
- import * as react_jsx_runtime34 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_runtime34.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 }) => {
@@ -14,9 +14,9 @@ const require_UserMessage = require('./UserMessage.cjs');
14
14
  const require_AgentMessage = require('./AgentMessage.cjs');
15
15
  const require_MessageDivider = require('./MessageDivider.cjs');
16
16
  let react = require("react");
17
+ let react_jsx_runtime = require("react/jsx-runtime");
17
18
  let classnames = require("classnames");
18
19
  classnames = require_rolldown_runtime.__toESM(classnames);
19
- let react_jsx_runtime = require("react/jsx-runtime");
20
20
  let __envive_ai_react_hooks_application_models = require("@envive-ai/react-hooks/application/models");
21
21
 
22
22
  //#region src/components/FloatingChat/components/ChatMessages.tsx
@@ -13,8 +13,8 @@ import { UserMessage } from "./UserMessage.js";
13
13
  import { AgentMessage } from "./AgentMessage.js";
14
14
  import { MessageDivider } from "./MessageDivider.js";
15
15
  import { forwardRef } from "react";
16
- import classNames from "classnames";
17
16
  import { jsx, jsxs } from "react/jsx-runtime";
17
+ import classNames from "classnames";
18
18
  import { MessageRole, MessageType } from "@envive-ai/react-hooks/application/models";
19
19
 
20
20
  //#region src/components/FloatingChat/components/ChatMessages.tsx
@@ -6,9 +6,9 @@ const require_Container = require('../../Container/Container.cjs');
6
6
  require('../../Container/index.cjs');
7
7
  const require_resolveTheme = require('../../utils/resolveTheme.cjs');
8
8
  let react = require("react");
9
+ let react_jsx_runtime = require("react/jsx-runtime");
9
10
  let classnames = require("classnames");
10
11
  classnames = require_rolldown_runtime.__toESM(classnames);
11
- let react_jsx_runtime = require("react/jsx-runtime");
12
12
 
13
13
  //#region src/components/FloatingChat/components/Layout.tsx
14
14
  const Layout = ({ id, className, style, testId, theme = require_theme.Theme.GLOBAL_CUSTOM, header, footer, welcomeMessage, chatMessages, answerSuggestions, scrollToBottomButton, disclaimer, isFloatingFooterLayout = false, debugBar, scrollContainerRef }) => {
@@ -5,8 +5,8 @@ import { Container } from "../../Container/Container.js";
5
5
  import "../../Container/index.js";
6
6
  import { resolveTheme } from "../../utils/resolveTheme.js";
7
7
  import { isValidElement } from "react";
8
- import classNames from "classnames";
9
8
  import { jsx, jsxs } from "react/jsx-runtime";
9
+ import classNames from "classnames";
10
10
 
11
11
  //#region src/components/FloatingChat/components/Layout.tsx
12
12
  const Layout = ({ id, className, style, testId, theme = Theme.GLOBAL_CUSTOM, header, footer, welcomeMessage, chatMessages, answerSuggestions, scrollToBottomButton, disclaimer, isFloatingFooterLayout = false, debugBar, scrollContainerRef }) => {
@@ -3,9 +3,9 @@ const require_index = require('../../ChatHeader/types/index.cjs');
3
3
  const require_ChatHeader = require('../../ChatHeader/ChatHeader.cjs');
4
4
  require('../../ChatHeader/index.cjs');
5
5
  const require_ResultsGridView = require('./ResultsGridView.cjs');
6
+ let react_jsx_runtime = require("react/jsx-runtime");
6
7
  let classnames = require("classnames");
7
8
  classnames = require_rolldown_runtime.__toESM(classnames);
8
- let react_jsx_runtime = require("react/jsx-runtime");
9
9
 
10
10
  //#region src/components/FloatingChat/components/ProductResultsModal.tsx
11
11
  const overlayWrapperClasses = (0, classnames.default)("envive-tw-min-h-0 envive-tw-flex envive-tw-h-full envive-tw-w-full", "envive-tw-items-center envive-tw-justify-center envive-tw-p-4");
@@ -2,8 +2,8 @@ import { ChatHeaderOptions, ChatHeaderVariant } from "../../ChatHeader/types/ind
2
2
  import { ChatHeader } from "../../ChatHeader/ChatHeader.js";
3
3
  import "../../ChatHeader/index.js";
4
4
  import { ResultsGridView } from "./ResultsGridView.js";
5
- import classNames from "classnames";
6
5
  import { jsx, jsxs } from "react/jsx-runtime";
6
+ import classNames from "classnames";
7
7
 
8
8
  //#region src/components/FloatingChat/components/ProductResultsModal.tsx
9
9
  const overlayWrapperClasses = classNames("envive-tw-min-h-0 envive-tw-flex envive-tw-h-full envive-tw-w-full", "envive-tw-items-center envive-tw-justify-center envive-tw-p-4");
@@ -7,9 +7,9 @@ require('../../Typography/index.cjs');
7
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
+ let react_jsx_runtime = require("react/jsx-runtime");
10
11
  let classnames = require("classnames");
11
12
  classnames = require_rolldown_runtime.__toESM(classnames);
12
- let react_jsx_runtime = require("react/jsx-runtime");
13
13
 
14
14
  //#region src/components/FloatingChat/components/ResultsGridView.tsx
15
15
  const NUM_COLUMNS_MOBILE = 2;
@@ -6,8 +6,8 @@ import "../../Typography/index.js";
6
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
- import classNames from "classnames";
10
9
  import { jsx, jsxs } from "react/jsx-runtime";
10
+ import classNames from "classnames";
11
11
 
12
12
  //#region src/components/FloatingChat/components/ResultsGridView.tsx
13
13
  const NUM_COLUMNS_MOBILE = 2;
@@ -7,9 +7,9 @@ require('../../Typography/index.cjs');
7
7
  const require_functions = require('../utils/functions.cjs');
8
8
  let react = require("react");
9
9
  react = require_rolldown_runtime.__toESM(react);
10
+ let react_jsx_runtime = require("react/jsx-runtime");
10
11
  let classnames = require("classnames");
11
12
  classnames = require_rolldown_runtime.__toESM(classnames);
12
- let react_jsx_runtime = require("react/jsx-runtime");
13
13
 
14
14
  //#region src/components/FloatingChat/components/SalesAgentBadgeContent.tsx
15
15
  const SalesAgentBadgeContent = ({ totalProducts, displayLimit = require_functions.MOST_RELEVANT_DISPLAY_LIMIT, onExploreAllResults }) => {
@@ -5,8 +5,8 @@ import { Typography } from "../../Typography/Typography.js";
5
5
  import "../../Typography/index.js";
6
6
  import { MOST_RELEVANT_DISPLAY_LIMIT } from "../utils/functions.js";
7
7
  import React from "react";
8
- import classNames from "classnames";
9
8
  import { jsx, jsxs } from "react/jsx-runtime";
9
+ import classNames from "classnames";
10
10
 
11
11
  //#region src/components/FloatingChat/components/SalesAgentBadgeContent.tsx
12
12
  const SalesAgentBadgeContent = ({ totalProducts, displayLimit = MOST_RELEVANT_DISPLAY_LIMIT, onExploreAllResults }) => {
@@ -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,
@@ -5,9 +5,9 @@ const require_buildSubmitButtonElement = require('./utils/buildSubmitButtonEleme
5
5
  const require_handleFormsSubmit = require('./utils/handleFormsSubmit.cjs');
6
6
  const require_mapTextFields = require('./utils/mapTextFields.cjs');
7
7
  let react = require("react");
8
+ let react_jsx_runtime = require("react/jsx-runtime");
8
9
  let classnames = require("classnames");
9
10
  classnames = require_rolldown_runtime.__toESM(classnames);
10
- let react_jsx_runtime = require("react/jsx-runtime");
11
11
 
12
12
  //#region src/components/Form/Form.tsx
13
13
  /**
package/dist/Form/Form.js CHANGED
@@ -4,8 +4,8 @@ import { buildSubmitButtonElement } from "./utils/buildSubmitButtonElement.js";
4
4
  import { handleFormsSubmit } from "./utils/handleFormsSubmit.js";
5
5
  import { mapTextFields } from "./utils/mapTextFields.js";
6
6
  import { useState } from "react";
7
- import classNames from "classnames";
8
7
  import { jsx } from "react/jsx-runtime";
8
+ import classNames from "classnames";
9
9
 
10
10
  //#region src/components/Form/Form.tsx
11
11
  /**
@@ -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
3
  require('../../Stack/index.cjs');
4
+ let react_jsx_runtime = require("react/jsx-runtime");
4
5
  let classnames = require("classnames");
5
6
  classnames = require_rolldown_runtime.__toESM(classnames);
6
- let react_jsx_runtime = require("react/jsx-runtime");
7
7
 
8
8
  //#region src/components/Form/components/Layout.tsx
9
9
  const Layout = ({ textFields, submitButton, onSubmit, ariaLabel, id, testId, className, style }) => {
@@ -1,7 +1,7 @@
1
1
  import { Stack } from "../../Stack/Stack.js";
2
2
  import "../../Stack/index.js";
3
- import classNames from "classnames";
4
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
+ import classNames from "classnames";
5
5
 
6
6
  //#region src/components/Form/components/Layout.tsx
7
7
  const Layout = ({ textFields, submitButton, onSubmit, ariaLabel, id, testId, className, style }) => {
@@ -1,8 +1,8 @@
1
1
  const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
2
2
  const require_useGetButtonProperties = require('../hooks/useGetButtonProperties.cjs');
3
+ let react_jsx_runtime = require("react/jsx-runtime");
3
4
  let classnames = require("classnames");
4
5
  classnames = require_rolldown_runtime.__toESM(classnames);
5
- let react_jsx_runtime = require("react/jsx-runtime");
6
6
 
7
7
  //#region src/components/Form/components/SubmitButtonItem.tsx
8
8
  const SubmitButtonItem = ({ label, isDisabled = false, ariaLabel, id, testId, className, style }) => {