@envive-ai/react-toolkit-v3 0.3.7 → 0.3.8

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 (491) hide show
  1. package/dist/AnimatedText/AnimatedText.cjs +19 -4
  2. package/dist/AnimatedText/AnimatedText.d.cts +3 -3
  3. package/dist/AnimatedText/AnimatedText.d.ts +3 -3
  4. package/dist/AnimatedText/AnimatedText.js +20 -5
  5. package/dist/AnimatedText/types/types.d.cts +0 -4
  6. package/dist/AnimatedText/types/types.d.ts +0 -4
  7. package/dist/CSSVariablesEditor/CssVariablesEditorComponent.d.cts +2 -2
  8. package/dist/CSSVariablesEditor/CssVariablesEditorComponent.d.ts +2 -2
  9. package/dist/CSSVariablesEditor/hooks/useGetCssVariablesOptions.cjs +3 -3
  10. package/dist/CSSVariablesEditor/hooks/useGetCssVariablesOptions.js +3 -3
  11. package/dist/CSSVariablesEditor/hooks/useGetCurrentMerchantColors.cjs +1 -1
  12. package/dist/CSSVariablesEditor/hooks/useGetCurrentMerchantColors.js +1 -1
  13. package/dist/CSSVariablesEditor/hooks/useGetDefaultCssVariables.cjs +10 -10
  14. package/dist/CSSVariablesEditor/hooks/useGetDefaultCssVariables.js +10 -10
  15. package/dist/CSSVariablesEditor/hooks/useHandleUpdateCssVars.cjs +9 -9
  16. package/dist/CSSVariablesEditor/hooks/useHandleUpdateCssVars.js +9 -9
  17. package/dist/CSSVariablesEditor/utils/functions.cjs +2 -2
  18. package/dist/CSSVariablesEditor/utils/functions.js +2 -2
  19. package/dist/Carousel/Carousel.cjs +2 -2
  20. package/dist/Carousel/Carousel.d.cts +2 -2
  21. package/dist/Carousel/Carousel.d.ts +2 -2
  22. package/dist/Carousel/Carousel.js +2 -2
  23. package/dist/Carousel/components/Container.cjs +2 -2
  24. package/dist/Carousel/components/Container.js +2 -2
  25. package/dist/Carousel/hooks/useGetBadgeProperties.cjs +1 -1
  26. package/dist/Carousel/hooks/useGetBadgeProperties.js +1 -1
  27. package/dist/Carousel/types/types.d.ts +1 -1
  28. package/dist/ChatFooter/ChatFooter.cjs +2 -2
  29. package/dist/ChatFooter/ChatFooter.d.cts +2 -2
  30. package/dist/ChatFooter/ChatFooter.d.ts +2 -2
  31. package/dist/ChatFooter/ChatFooter.js +2 -2
  32. package/dist/ChatFooter/components/Layout.cjs +2 -2
  33. package/dist/ChatFooter/components/Layout.d.ts +1 -1
  34. package/dist/ChatFooter/components/Layout.js +2 -2
  35. package/dist/ChatFooter/components/PromptSuggestions.d.ts +1 -1
  36. package/dist/ChatFooter/components/index.d.cts +5 -5
  37. package/dist/ChatFooter/components/index.d.ts +5 -5
  38. package/dist/ChatFooter/hooks/useGetChatScrollProperties.cjs +1 -1
  39. package/dist/ChatFooter/hooks/useGetChatScrollProperties.js +1 -1
  40. package/dist/ChatFooter/hooks/useGetContainerProperties.cjs +10 -9
  41. package/dist/ChatFooter/hooks/useGetContainerProperties.js +10 -9
  42. package/dist/ChatFooter/types/types.d.ts +1 -1
  43. package/dist/ChatHeader/ChatHeader.cjs +1 -1
  44. package/dist/ChatHeader/ChatHeader.d.cts +2 -2
  45. package/dist/ChatHeader/ChatHeader.d.ts +2 -2
  46. package/dist/ChatHeader/ChatHeader.js +1 -1
  47. package/dist/ChatHeader/components/CloseButton.cjs +1 -1
  48. package/dist/ChatHeader/components/CloseButton.js +1 -1
  49. package/dist/ChatHeader/components/Handle.cjs +13 -5
  50. package/dist/ChatHeader/components/Handle.js +13 -5
  51. package/dist/ChatHeader/components/Toggle.cjs +4 -4
  52. package/dist/ChatHeader/components/Toggle.js +4 -4
  53. package/dist/ChatHeader/hooks/useGetCloseButtonProperties.cjs +1 -1
  54. package/dist/ChatHeader/hooks/useGetCloseButtonProperties.js +1 -1
  55. package/dist/ChatHeader/hooks/useGetHandleProperties.cjs +17 -17
  56. package/dist/ChatHeader/hooks/useGetHandleProperties.js +17 -17
  57. package/dist/ChatHeader/hooks/useGetLayoutProperties.cjs +8 -8
  58. package/dist/ChatHeader/hooks/useGetLayoutProperties.js +8 -8
  59. package/dist/ChatHeader/hooks/useGetToggleOptionProperties.cjs +17 -17
  60. package/dist/ChatHeader/hooks/useGetToggleOptionProperties.js +17 -17
  61. package/dist/ChatHeader/hooks/useGetToggleProperties.cjs +3 -3
  62. package/dist/ChatHeader/hooks/useGetToggleProperties.js +3 -3
  63. package/dist/ChatHeader/hooks/useToggleLogoSelector.cjs +1 -1
  64. package/dist/ChatHeader/hooks/useToggleLogoSelector.js +1 -1
  65. package/dist/ChatHeader/types/index.d.ts +2 -2
  66. package/dist/ChatPreview/ChatPreview.cjs +2 -2
  67. package/dist/ChatPreview/ChatPreview.d.cts +2 -2
  68. package/dist/ChatPreview/ChatPreview.d.ts +2 -2
  69. package/dist/ChatPreview/ChatPreview.js +2 -2
  70. package/dist/ChatPreview/components/Message.cjs +4 -3
  71. package/dist/ChatPreview/components/Message.js +4 -3
  72. package/dist/ChatPreview/types/types.d.ts +1 -1
  73. package/dist/ChatPreviewComparison/ChatPreviewComparison.cjs +2 -2
  74. package/dist/ChatPreviewComparison/ChatPreviewComparison.d.cts +2 -2
  75. package/dist/ChatPreviewComparison/ChatPreviewComparison.d.ts +2 -2
  76. package/dist/ChatPreviewComparison/ChatPreviewComparison.js +2 -2
  77. package/dist/ChatPreviewComparison/components/Headline.cjs +3 -3
  78. package/dist/ChatPreviewComparison/components/Headline.js +3 -3
  79. package/dist/ChatPreviewComparison/components/Layout.cjs +7 -7
  80. package/dist/ChatPreviewComparison/components/Layout.js +7 -7
  81. package/dist/ChatPreviewComparison/components/Message.cjs +7 -6
  82. package/dist/ChatPreviewComparison/components/Message.js +7 -6
  83. package/dist/ChatPreviewComparison/types/types.d.ts +1 -1
  84. package/dist/ChatPreviewLoading/ChatPreviewLoading.d.cts +2 -2
  85. package/dist/ChatPreviewLoading/ChatPreviewLoading.d.ts +2 -2
  86. package/dist/Container/Container.d.cts +176 -176
  87. package/dist/Container/Container.d.ts +176 -176
  88. package/dist/DesignTokens/DesignTokensComponent.d.cts +2 -2
  89. package/dist/DesignTokens/DesignTokensComponent.d.ts +2 -2
  90. package/dist/DesignTokens/components/Typography.cjs +1 -1
  91. package/dist/DesignTokens/components/Typography.js +1 -1
  92. package/dist/Disclaimer/Disclaimer.cjs +23 -0
  93. package/dist/Disclaimer/Disclaimer.d.cts +19 -0
  94. package/dist/Disclaimer/Disclaimer.d.ts +19 -0
  95. package/dist/Disclaimer/Disclaimer.js +22 -0
  96. package/dist/Disclaimer/components/Container.cjs +26 -0
  97. package/dist/Disclaimer/components/Container.js +24 -0
  98. package/dist/Disclaimer/components/DisclaimerContent.cjs +19 -0
  99. package/dist/Disclaimer/components/DisclaimerContent.js +18 -0
  100. package/dist/Disclaimer/components/index.cjs +11 -0
  101. package/dist/Disclaimer/components/index.js +11 -0
  102. package/dist/Disclaimer/index.cjs +3 -0
  103. package/dist/Disclaimer/index.d.cts +2 -0
  104. package/dist/Disclaimer/index.d.ts +2 -0
  105. package/dist/Disclaimer/index.js +3 -0
  106. package/dist/Disclaimer/types/types.d.cts +30 -0
  107. package/dist/Disclaimer/types/types.d.ts +30 -0
  108. package/dist/DocumentRetrievalCard/DocumentRetrievalCard.d.ts +2 -2
  109. package/dist/DocumentRetrievalCard/components/Layout.cjs +2 -2
  110. package/dist/DocumentRetrievalCard/components/Layout.js +2 -2
  111. package/dist/DocumentRetrievalCard/components/ViewArticleButton/components/Icon.cjs +1 -1
  112. package/dist/DocumentRetrievalCard/components/ViewArticleButton/components/Icon.js +1 -1
  113. package/dist/DocumentRetrievalCard/hooks/useGetBackgroundColorsProperties.cjs +1 -1
  114. package/dist/DocumentRetrievalCard/hooks/useGetBackgroundColorsProperties.js +1 -1
  115. package/dist/DocumentRetrievalCard/hooks/useGetBorderProperties.cjs +1 -1
  116. package/dist/DocumentRetrievalCard/hooks/useGetBorderProperties.js +1 -1
  117. package/dist/DocumentRetrievalCard/hooks/useGetBorderRadiusProperties.cjs +1 -1
  118. package/dist/DocumentRetrievalCard/hooks/useGetBorderRadiusProperties.js +1 -1
  119. package/dist/DocumentRetrievalCard/hooks/useGetIconBackgroundProperties.cjs +1 -1
  120. package/dist/DocumentRetrievalCard/hooks/useGetIconBackgroundProperties.js +1 -1
  121. package/dist/DocumentRetrievalCard/hooks/useGetIconColorProperties.cjs +1 -1
  122. package/dist/DocumentRetrievalCard/hooks/useGetIconColorProperties.js +1 -1
  123. package/dist/DocumentRetrievalCard/hooks/useGetLabelTextCaseProperties.cjs +1 -1
  124. package/dist/DocumentRetrievalCard/hooks/useGetLabelTextCaseProperties.js +1 -1
  125. package/dist/DocumentRetrievalCard/hooks/useGetLabelTypographyProperties.cjs +1 -1
  126. package/dist/DocumentRetrievalCard/hooks/useGetLabelTypographyProperties.js +1 -1
  127. package/dist/DocumentRetrievalCard/index.cjs +1 -1
  128. package/dist/DocumentRetrievalCard/index.d.ts +1 -1
  129. package/dist/DocumentRetrievalCard/index.js +1 -1
  130. package/dist/DocumentRetrievalCard/types/index.d.ts +1 -1
  131. package/dist/DocumentRetrievalCard/utils/functions.cjs +1 -1
  132. package/dist/DocumentRetrievalCard/utils/functions.js +1 -1
  133. package/dist/FloatingButton/FloatingButton.d.cts +2 -2
  134. package/dist/FloatingButton/FloatingButton.d.ts +2 -2
  135. package/dist/FloatingButton/hooks/useGetButtonProperties.cjs +2 -2
  136. package/dist/FloatingButton/hooks/useGetButtonProperties.js +2 -2
  137. package/dist/FloatingButton/types/types.d.ts +1 -1
  138. package/dist/FloatingChat/FloatingChat.cjs +21 -11
  139. package/dist/FloatingChat/FloatingChat.d.cts +3 -2
  140. package/dist/FloatingChat/FloatingChat.d.ts +3 -2
  141. package/dist/FloatingChat/FloatingChat.js +21 -11
  142. package/dist/FloatingChat/components/AgentMessage.cjs +48 -24
  143. package/dist/FloatingChat/components/AgentMessage.js +48 -24
  144. package/dist/FloatingChat/components/ChatMessages.cjs +9 -8
  145. package/dist/FloatingChat/components/ChatMessages.js +9 -8
  146. package/dist/FloatingChat/components/DocumentRetrievalCardsCarousel.cjs +2 -1
  147. package/dist/FloatingChat/components/DocumentRetrievalCardsCarousel.js +2 -1
  148. package/dist/FloatingChat/components/Layout.cjs +18 -14
  149. package/dist/FloatingChat/components/Layout.js +18 -14
  150. package/dist/FloatingChat/components/MessageDivider.cjs +8 -2
  151. package/dist/FloatingChat/components/MessageDivider.js +8 -2
  152. package/dist/FloatingChat/components/ModalSheet.cjs +1 -1
  153. package/dist/FloatingChat/components/ModalSheet.js +1 -1
  154. package/dist/FloatingChat/hooks/useScrollToBottom.cjs +109 -11
  155. package/dist/FloatingChat/hooks/useScrollToBottom.js +110 -12
  156. package/dist/FloatingChat/hooks/useSnapSetup.cjs +0 -3
  157. package/dist/FloatingChat/hooks/useSnapSetup.js +0 -3
  158. package/dist/FloatingChat/types/types.d.cts +5 -5
  159. package/dist/FloatingChat/types/types.d.ts +6 -6
  160. package/dist/FloatingChat/utils/functions.cjs +1 -0
  161. package/dist/FloatingChat/utils/functions.js +1 -0
  162. package/dist/Image/Image.d.cts +2 -2
  163. package/dist/Image/Image.d.ts +2 -2
  164. package/dist/ImageGallery/ImageGallery.cjs +1 -1
  165. package/dist/ImageGallery/ImageGallery.d.cts +2 -2
  166. package/dist/ImageGallery/ImageGallery.d.ts +2 -2
  167. package/dist/ImageGallery/ImageGallery.js +1 -1
  168. package/dist/ImageGallery/components/Layout.cjs +2 -2
  169. package/dist/ImageGallery/components/Layout.js +2 -2
  170. package/dist/ImageGallery/types/types.d.ts +1 -1
  171. package/dist/ImageGallery/utils/functions.cjs +1 -1
  172. package/dist/ImageGallery/utils/functions.js +1 -1
  173. package/dist/MarkdownProcessor/MarkdownProcessor.d.cts +2 -2
  174. package/dist/MarkdownProcessor/MarkdownProcessor.d.ts +2 -2
  175. package/dist/MarkdownProcessor/components/MarkdownLink.cjs +4 -1
  176. package/dist/MarkdownProcessor/components/MarkdownLink.js +4 -1
  177. package/dist/Message/components/AgentContent.cjs +6 -2
  178. package/dist/Message/components/AgentContent.js +6 -2
  179. package/dist/Message/components/LinkButton.cjs +3 -3
  180. package/dist/Message/components/LinkButton.d.cts +5 -1
  181. package/dist/Message/components/LinkButton.d.ts +5 -1
  182. package/dist/Message/components/LinkButton.js +3 -3
  183. package/dist/Message/hooks/useGetLinkButtonProperties.cjs +1 -1
  184. package/dist/Message/hooks/useGetLinkButtonProperties.js +1 -1
  185. package/dist/OrderLookupCard/OrderLookupCard.cjs +2 -2
  186. package/dist/OrderLookupCard/OrderLookupCard.js +2 -2
  187. package/dist/OrderLookupCard/hooks/useGetContainerProperties.cjs +1 -1
  188. package/dist/OrderLookupCard/hooks/useGetContainerProperties.js +1 -1
  189. package/dist/OrderLookupCard/hooks/useGetImageBorderRadiusProperties.cjs +1 -1
  190. package/dist/OrderLookupCard/hooks/useGetImageBorderRadiusProperties.js +1 -1
  191. package/dist/OrderLookupCard/hooks/useGetStatusLabelProperties.cjs +1 -1
  192. package/dist/OrderLookupCard/hooks/useGetStatusLabelProperties.js +1 -1
  193. package/dist/OrderLookupCard/hooks/useGetTrackOrderLinkProperties.cjs +1 -1
  194. package/dist/OrderLookupCard/hooks/useGetTrackOrderLinkProperties.js +1 -1
  195. package/dist/OrderLookupCard/types/index.d.ts +1 -1
  196. package/dist/ProductCard/ProductCard.cjs +43 -0
  197. package/dist/ProductCard/ProductCard.d.cts +23 -0
  198. package/dist/ProductCard/ProductCard.d.ts +23 -0
  199. package/dist/ProductCard/ProductCard.js +42 -0
  200. package/dist/ProductCard/components/Carousel.cjs +25 -0
  201. package/dist/ProductCard/components/Carousel.js +24 -0
  202. package/dist/ProductCard/components/Header.cjs +42 -0
  203. package/dist/ProductCard/components/Header.js +41 -0
  204. package/dist/ProductCard/components/Poster.cjs +18 -0
  205. package/dist/ProductCard/components/Poster.js +17 -0
  206. package/dist/ProductCard/components/index.cjs +13 -0
  207. package/dist/ProductCard/components/index.js +13 -0
  208. package/dist/ProductCard/hooks/useGetCarouselProperties.cjs +8 -0
  209. package/dist/ProductCard/hooks/useGetCarouselProperties.js +7 -0
  210. package/dist/ProductCard/hooks/useGetHeaderProperties.cjs +11 -0
  211. package/dist/ProductCard/hooks/useGetHeaderProperties.js +10 -0
  212. package/dist/ProductCard/hooks/useGetPosterProperties.cjs +13 -0
  213. package/dist/ProductCard/hooks/useGetPosterProperties.js +12 -0
  214. package/dist/ProductCard/index.cjs +3 -0
  215. package/dist/ProductCard/index.d.cts +3 -0
  216. package/dist/ProductCard/index.d.ts +3 -0
  217. package/dist/ProductCard/index.js +3 -0
  218. package/dist/ProductCard/types/index.d.cts +74 -0
  219. package/dist/ProductCard/types/index.d.ts +74 -0
  220. package/dist/PromptButton/PromptButton.cjs +1 -1
  221. package/dist/PromptButton/PromptButton.d.cts +2 -2
  222. package/dist/PromptButton/PromptButton.d.ts +2 -2
  223. package/dist/PromptButton/PromptButton.js +1 -1
  224. package/dist/PromptButton/hooks/useGetIconColorsProperties.cjs +1 -1
  225. package/dist/PromptButton/hooks/useGetIconColorsProperties.js +1 -1
  226. package/dist/PromptButton/types/index.d.ts +1 -1
  227. package/dist/PromptButtonCarouselWithImage/PromptButtonCarouselWithImage.cjs +1 -1
  228. package/dist/PromptButtonCarouselWithImage/PromptButtonCarouselWithImage.d.cts +2 -2
  229. package/dist/PromptButtonCarouselWithImage/PromptButtonCarouselWithImage.d.ts +2 -2
  230. package/dist/PromptButtonCarouselWithImage/PromptButtonCarouselWithImage.js +1 -1
  231. package/dist/PromptButtonCarouselWithImage/types/types.d.ts +1 -1
  232. package/dist/PromptCarousel/PromptCarousel.cjs +2 -2
  233. package/dist/PromptCarousel/PromptCarousel.d.cts +2 -2
  234. package/dist/PromptCarousel/PromptCarousel.d.ts +2 -2
  235. package/dist/PromptCarousel/PromptCarousel.js +2 -2
  236. package/dist/PromptCarousel/hooks/useCarouselRefs.cjs +1 -1
  237. package/dist/PromptCarousel/hooks/useCarouselRefs.js +2 -2
  238. package/dist/PromptCarousel/types/types.d.ts +1 -1
  239. package/dist/ReviewCard/ReviewCard.cjs +1 -1
  240. package/dist/ReviewCard/ReviewCard.d.cts +2 -2
  241. package/dist/ReviewCard/ReviewCard.d.ts +2 -2
  242. package/dist/ReviewCard/ReviewCard.js +1 -1
  243. package/dist/ReviewCard/components/Container.cjs +2 -2
  244. package/dist/ReviewCard/components/Container.d.ts +1 -1
  245. package/dist/ReviewCard/components/Container.js +2 -2
  246. package/dist/ReviewCard/components/Rating.d.ts +1 -1
  247. package/dist/ReviewCard/components/ReadMoreButton.cjs +2 -2
  248. package/dist/ReviewCard/components/ReadMoreButton.d.ts +1 -1
  249. package/dist/ReviewCard/components/ReadMoreButton.js +2 -2
  250. package/dist/ReviewCard/components/index.d.cts +6 -6
  251. package/dist/ReviewCard/components/index.d.ts +7 -7
  252. package/dist/ReviewCard/hooks/useGetBackgroundColorsProperties.cjs +1 -1
  253. package/dist/ReviewCard/hooks/useGetBackgroundColorsProperties.js +1 -1
  254. package/dist/ReviewCard/hooks/useGetBorderProperties.cjs +1 -1
  255. package/dist/ReviewCard/hooks/useGetBorderProperties.js +1 -1
  256. package/dist/ReviewCard/hooks/useGetBorderRadiusProperties.cjs +1 -1
  257. package/dist/ReviewCard/hooks/useGetBorderRadiusProperties.js +1 -1
  258. package/dist/ReviewCard/hooks/useGetRatingBackgroundProperties.cjs +1 -1
  259. package/dist/ReviewCard/hooks/useGetRatingBackgroundProperties.js +1 -1
  260. package/dist/ReviewCard/hooks/useGetReadMoreTypographyProperties.cjs +1 -1
  261. package/dist/ReviewCard/hooks/useGetReadMoreTypographyProperties.js +1 -1
  262. package/dist/ReviewCard/hooks/useGetStarIconProperties.cjs +1 -1
  263. package/dist/ReviewCard/hooks/useGetStarIconProperties.js +1 -1
  264. package/dist/ReviewCard/types/types.d.ts +1 -1
  265. package/dist/SalesAgentProductCard/SalesAgentProductCard.cjs +1 -1
  266. package/dist/SalesAgentProductCard/SalesAgentProductCard.d.cts +2 -2
  267. package/dist/SalesAgentProductCard/SalesAgentProductCard.d.ts +2 -2
  268. package/dist/SalesAgentProductCard/SalesAgentProductCard.js +1 -1
  269. package/dist/SalesAgentProductCard/components/Container.cjs +3 -3
  270. package/dist/SalesAgentProductCard/components/Container.d.ts +1 -1
  271. package/dist/SalesAgentProductCard/components/Container.js +3 -3
  272. package/dist/SalesAgentProductCard/components/ProductName.cjs +1 -1
  273. package/dist/SalesAgentProductCard/components/ProductName.d.ts +1 -1
  274. package/dist/SalesAgentProductCard/components/ProductName.js +1 -1
  275. package/dist/SalesAgentProductCard/components/Rate.cjs +1 -1
  276. package/dist/SalesAgentProductCard/components/Rate.d.ts +1 -1
  277. package/dist/SalesAgentProductCard/components/Rate.js +1 -1
  278. package/dist/SalesAgentProductCard/components/index.d.ts +9 -9
  279. package/dist/SalesAgentProductCard/hooks/useGetContainerProperties.cjs +1 -1
  280. package/dist/SalesAgentProductCard/hooks/useGetContainerProperties.js +1 -1
  281. package/dist/SalesAgentProductCard/hooks/useGetProductDescriptionProperties.cjs +1 -1
  282. package/dist/SalesAgentProductCard/hooks/useGetProductDescriptionProperties.js +1 -1
  283. package/dist/SalesAgentProductCard/hooks/useGetProductNameProperties.cjs +1 -1
  284. package/dist/SalesAgentProductCard/hooks/useGetProductNameProperties.js +1 -1
  285. package/dist/SalesAgentProductCard/hooks/useGetStarIconProperties.cjs +1 -1
  286. package/dist/SalesAgentProductCard/hooks/useGetStarIconProperties.js +1 -1
  287. package/dist/SalesAgentProductCard/types/types.d.ts +1 -1
  288. package/dist/SocialProof/SocialProof.cjs +14 -9
  289. package/dist/SocialProof/SocialProof.d.cts +2 -2
  290. package/dist/SocialProof/SocialProof.d.ts +2 -2
  291. package/dist/SocialProof/SocialProof.js +13 -8
  292. package/dist/SocialProof/components/Headline.cjs +4 -4
  293. package/dist/SocialProof/components/Headline.js +4 -4
  294. package/dist/SocialProof/components/LayoutFourHorizontal.cjs +2 -2
  295. package/dist/SocialProof/components/LayoutFourHorizontal.js +2 -2
  296. package/dist/SocialProof/components/Subheadline.cjs +2 -2
  297. package/dist/SocialProof/components/Subheadline.js +2 -2
  298. package/dist/SocialProof/components/Textfield.cjs +4 -2
  299. package/dist/SocialProof/components/Textfield.js +4 -2
  300. package/dist/SocialProof/index.cjs +1 -0
  301. package/dist/SocialProof/index.d.cts +2 -2
  302. package/dist/SocialProof/index.d.ts +2 -2
  303. package/dist/SocialProof/index.js +2 -2
  304. package/dist/SocialProof/types/types.cjs +7 -1
  305. package/dist/SocialProof/types/types.d.cts +11 -1
  306. package/dist/SocialProof/types/types.d.ts +12 -2
  307. package/dist/SocialProof/types/types.js +6 -1
  308. package/dist/SocialProof/utils/functions.cjs +1 -1
  309. package/dist/SocialProof/utils/functions.js +1 -1
  310. package/dist/Stack/Stack.d.cts +2 -2
  311. package/dist/TextField/TextField.cjs +1 -1
  312. package/dist/TextField/TextField.js +1 -1
  313. package/dist/TextField/components/Input.cjs +1 -1
  314. package/dist/TextField/components/Input.js +1 -1
  315. package/dist/TextField/hooks/useGetContainerProperties.cjs +5 -5
  316. package/dist/TextField/hooks/useGetContainerProperties.js +5 -5
  317. package/dist/TextField/types/index.d.ts +1 -1
  318. package/dist/TextField/utils/getInputClasses.cjs +1 -1
  319. package/dist/TextField/utils/getInputClasses.js +1 -1
  320. package/dist/TextField/utils/getSendIconElement.cjs +1 -1
  321. package/dist/TextField/utils/getSendIconElement.js +1 -1
  322. package/dist/TitledPromptCarousel/TitledPromptCarousel.cjs +2 -2
  323. package/dist/TitledPromptCarousel/TitledPromptCarousel.d.cts +2 -2
  324. package/dist/TitledPromptCarousel/TitledPromptCarousel.d.ts +2 -2
  325. package/dist/TitledPromptCarousel/TitledPromptCarousel.js +2 -2
  326. package/dist/TitledPromptCarousel/types/index.d.ts +1 -1
  327. package/dist/Tokens/index.cjs +13 -13
  328. package/dist/Tokens/index.d.ts +13 -13
  329. package/dist/Tokens/index.js +13 -13
  330. package/dist/TypingAnimation/TypingAnimation.cjs +2 -2
  331. package/dist/TypingAnimation/TypingAnimation.d.cts +2 -2
  332. package/dist/TypingAnimation/TypingAnimation.d.ts +2 -2
  333. package/dist/TypingAnimation/TypingAnimation.js +2 -2
  334. package/dist/TypingAnimation/hooks/useGetTypographyVariant.cjs +2 -2
  335. package/dist/TypingAnimation/hooks/useGetTypographyVariant.js +2 -2
  336. package/dist/TypingAnimation/types/index.d.ts +1 -1
  337. package/dist/Typography/Typography.d.cts +4 -4
  338. package/dist/Typography/Typography.d.ts +4 -4
  339. package/dist/WelcomeMessage/WelcomeMessage.cjs +1 -1
  340. package/dist/WelcomeMessage/WelcomeMessage.js +1 -1
  341. package/dist/WelcomeMessage/components/Container.cjs +2 -2
  342. package/dist/WelcomeMessage/components/Container.js +2 -2
  343. package/dist/WelcomeMessage/hooks/useGetContainerProperties.cjs +1 -1
  344. package/dist/WelcomeMessage/hooks/useGetContainerProperties.js +1 -1
  345. package/dist/WelcomeMessage/hooks/useGetSparkleIconProperties.cjs +3 -1
  346. package/dist/WelcomeMessage/hooks/useGetSparkleIconProperties.js +3 -1
  347. package/dist/WelcomeMessage/types/types.cjs +1 -1
  348. package/dist/WelcomeMessage/types/types.d.ts +1 -1
  349. package/dist/WelcomeMessage/types/types.js +1 -1
  350. package/dist/WidgetTextField/WidgetTextField.cjs +7 -3
  351. package/dist/WidgetTextField/WidgetTextField.d.cts +3 -2
  352. package/dist/WidgetTextField/WidgetTextField.d.ts +3 -2
  353. package/dist/WidgetTextField/WidgetTextField.js +7 -3
  354. package/dist/WidgetTextField/components/Container.cjs +9 -3
  355. package/dist/WidgetTextField/components/Container.js +9 -3
  356. package/dist/WidgetTextField/components/Icon.cjs +45 -14
  357. package/dist/WidgetTextField/components/Icon.js +43 -14
  358. package/dist/WidgetTextField/components/Skeleton.cjs +1 -1
  359. package/dist/WidgetTextField/components/Skeleton.js +1 -1
  360. package/dist/WidgetTextField/hooks/useGetContainerProperties.cjs +5 -4
  361. package/dist/WidgetTextField/hooks/useGetContainerProperties.js +5 -4
  362. package/dist/WidgetTextField/types/types.cjs +10 -0
  363. package/dist/WidgetTextField/types/types.d.cts +9 -0
  364. package/dist/WidgetTextField/types/types.d.ts +10 -1
  365. package/dist/WidgetTextField/types/types.js +9 -0
  366. package/dist/WidgetWrapper/WidgetWrapper.d.cts +2 -2
  367. package/dist/WidgetWrapper/WidgetWrapper.d.ts +2 -2
  368. package/dist/WidgetWrapperWithTitle/WidgetWrapperWithTitle.d.cts +2 -2
  369. package/dist/node_modules/jotai/esm/react.cjs +44 -0
  370. package/dist/node_modules/jotai/esm/react.js +42 -0
  371. package/dist/node_modules/jotai/esm/vanilla/internals.cjs +523 -0
  372. package/dist/node_modules/jotai/esm/vanilla/internals.js +522 -0
  373. package/dist/node_modules/jotai/esm/vanilla.cjs +22 -0
  374. package/dist/node_modules/jotai/esm/vanilla.js +22 -0
  375. package/dist/{src → packages/components-v3/src}/models/colorsConfig.cjs +1 -3
  376. package/dist/{src → packages/components-v3/src}/models/colorsConfig.js +1 -2
  377. package/dist/packages/components-v3/tokens/utils.cjs +14 -0
  378. package/dist/packages/components-v3/tokens/utils.js +12 -0
  379. package/dist/styles.css +1 -1
  380. package/dist/utils/resolveTheme.cjs +1 -1
  381. package/dist/utils/resolveTheme.js +1 -1
  382. package/dist/utils/useCheckIsMobile.cjs +1 -1
  383. package/dist/utils/useCheckIsMobile.js +1 -1
  384. package/dist/utils/useResponsiveValue.cjs +1 -1
  385. package/dist/utils/useResponsiveValue.d.ts +1 -1
  386. package/dist/utils/useResponsiveValue.js +1 -1
  387. package/package.json +9 -1
  388. package/src/components/AnimatedText/AnimatedText.tsx +25 -6
  389. package/src/components/AnimatedText/types/types.ts +0 -4
  390. package/src/components/ChatFooter/hooks/useGetContainerProperties.ts +1 -2
  391. package/src/components/ChatHeader/components/Handle.tsx +10 -4
  392. package/src/components/ChatHeader/hooks/useGetHandleProperties.ts +16 -16
  393. package/src/components/ChatHeader/hooks/useGetLayoutProperties.ts +8 -10
  394. package/src/components/ChatHeader/hooks/useGetToggleOptionProperties.ts +16 -16
  395. package/src/components/ChatHeader/hooks/useGetToggleProperties.ts +2 -2
  396. package/src/components/ChatPreview/__tests__/ChatPreview.test.tsx +17 -8
  397. package/src/components/ChatPreview/components/Message.tsx +13 -7
  398. package/src/components/ChatPreviewComparison/__tests__/ChatPreviewComparison.test.tsx +16 -6
  399. package/src/components/ChatPreviewComparison/components/Message.tsx +13 -7
  400. package/src/components/DesignTokens/components/Typography.tsx +1 -1
  401. package/src/components/Disclaimer/Disclaimer.tsx +27 -0
  402. package/src/components/Disclaimer/components/Container.tsx +35 -0
  403. package/src/components/Disclaimer/components/DisclaimerContent.tsx +18 -0
  404. package/src/components/Disclaimer/components/index.ts +7 -0
  405. package/src/components/Disclaimer/index.ts +1 -0
  406. package/src/components/Disclaimer/types/types.ts +27 -0
  407. package/src/components/FloatingButton/hooks/useGetButtonProperties.ts +4 -3
  408. package/src/components/FloatingChat/FloatingChat.tsx +39 -18
  409. package/src/components/FloatingChat/components/AgentMessage.tsx +48 -19
  410. package/src/components/FloatingChat/components/ChatMessages.tsx +13 -5
  411. package/src/components/FloatingChat/components/DocumentRetrievalCardsCarousel.tsx +3 -0
  412. package/src/components/FloatingChat/components/Layout.tsx +26 -4
  413. package/src/components/FloatingChat/components/MessageDivider.tsx +8 -2
  414. package/src/components/FloatingChat/components/ModalSheet.tsx +1 -1
  415. package/src/components/FloatingChat/hooks/useScrollToBottom.ts +153 -11
  416. package/src/components/FloatingChat/hooks/useSnapSetup.ts +0 -3
  417. package/src/components/FloatingChat/types/types.ts +5 -5
  418. package/src/components/FloatingChat/utils/functions.ts +1 -0
  419. package/src/components/MarkdownProcessor/components/MarkdownLink.tsx +2 -0
  420. package/src/components/Message/__tests__/Message.test.tsx +40 -2
  421. package/src/components/Message/components/AgentContent.tsx +10 -2
  422. package/src/components/Message/components/LinkButton.tsx +3 -2
  423. package/src/components/Message/hooks/useGetLinkButtonProperties.ts +1 -1
  424. package/src/components/ProductCard/ProductCard.tsx +54 -0
  425. package/src/components/ProductCard/__tests__/ProductCard.test.tsx +191 -0
  426. package/src/components/ProductCard/components/Carousel.tsx +26 -0
  427. package/src/components/ProductCard/components/Header.tsx +53 -0
  428. package/src/components/ProductCard/components/Poster.tsx +15 -0
  429. package/src/components/ProductCard/components/index.ts +9 -0
  430. package/src/components/ProductCard/hooks/useGetCarouselProperties.ts +7 -0
  431. package/src/components/ProductCard/hooks/useGetHeaderProperties.ts +9 -0
  432. package/src/components/ProductCard/hooks/useGetInputProperties.ts +22 -0
  433. package/src/components/ProductCard/hooks/useGetPosterProperties.ts +19 -0
  434. package/src/components/ProductCard/index.ts +2 -0
  435. package/src/components/ProductCard/types/index.ts +79 -0
  436. package/src/components/PromptCarousel/hooks/useCarouselRefs.ts +5 -4
  437. package/src/components/SocialProof/SocialProof.tsx +17 -10
  438. package/src/components/SocialProof/components/Textfield.tsx +4 -0
  439. package/src/components/SocialProof/index.ts +1 -1
  440. package/src/components/SocialProof/types/types.ts +12 -0
  441. package/src/components/TextField/components/Input.tsx +6 -1
  442. package/src/components/TextField/hooks/useGetContainerProperties.ts +4 -4
  443. package/src/components/WelcomeMessage/hooks/useGetSparkleIconProperties.ts +5 -2
  444. package/src/components/WidgetTextField/WidgetTextField.tsx +8 -2
  445. package/src/components/WidgetTextField/__tests__/WidgetTextField.test.tsx +54 -0
  446. package/src/components/WidgetTextField/components/Container.tsx +2 -2
  447. package/src/components/WidgetTextField/components/Icon.tsx +50 -7
  448. package/src/components/WidgetTextField/hooks/useGetContainerProperties.ts +5 -3
  449. package/src/components/WidgetTextField/types/types.ts +10 -0
  450. package/dist/tokens/utils.cjs +0 -6
  451. package/dist/tokens/utils.js +0 -5
  452. /package/dist/{src → packages/components-v3/src}/models/colorsConfig.d.ts +0 -0
  453. /package/dist/{tokens → packages/components-v3/tokens}/aspectRatio/aspectRatio.cjs +0 -0
  454. /package/dist/{tokens → packages/components-v3/tokens}/aspectRatio/aspectRatio.d.ts +0 -0
  455. /package/dist/{tokens → packages/components-v3/tokens}/aspectRatio/aspectRatio.js +0 -0
  456. /package/dist/{tokens → packages/components-v3/tokens}/breakpoints/breakpoints.cjs +0 -0
  457. /package/dist/{tokens → packages/components-v3/tokens}/breakpoints/breakpoints.d.ts +0 -0
  458. /package/dist/{tokens → packages/components-v3/tokens}/breakpoints/breakpoints.js +0 -0
  459. /package/dist/{tokens → packages/components-v3/tokens}/colors/colors.cjs +0 -0
  460. /package/dist/{tokens → packages/components-v3/tokens}/colors/colors.d.ts +0 -0
  461. /package/dist/{tokens → packages/components-v3/tokens}/colors/colors.js +0 -0
  462. /package/dist/{tokens → packages/components-v3/tokens}/montion/motion.cjs +0 -0
  463. /package/dist/{tokens → packages/components-v3/tokens}/montion/motion.d.ts +0 -0
  464. /package/dist/{tokens → packages/components-v3/tokens}/montion/motion.js +0 -0
  465. /package/dist/{tokens → packages/components-v3/tokens}/radius/radius.cjs +0 -0
  466. /package/dist/{tokens → packages/components-v3/tokens}/radius/radius.d.ts +0 -0
  467. /package/dist/{tokens → packages/components-v3/tokens}/radius/radius.js +0 -0
  468. /package/dist/{tokens → packages/components-v3/tokens}/spacing/spacing.cjs +0 -0
  469. /package/dist/{tokens → packages/components-v3/tokens}/spacing/spacing.d.ts +0 -0
  470. /package/dist/{tokens → packages/components-v3/tokens}/spacing/spacing.js +0 -0
  471. /package/dist/{tokens → packages/components-v3/tokens}/theme/theme.cjs +0 -0
  472. /package/dist/{tokens → packages/components-v3/tokens}/theme/theme.d.ts +0 -0
  473. /package/dist/{tokens → packages/components-v3/tokens}/theme/theme.js +0 -0
  474. /package/dist/{tokens → packages/components-v3/tokens}/typography/fontFamily.cjs +0 -0
  475. /package/dist/{tokens → packages/components-v3/tokens}/typography/fontFamily.d.ts +0 -0
  476. /package/dist/{tokens → packages/components-v3/tokens}/typography/fontFamily.js +0 -0
  477. /package/dist/{tokens → packages/components-v3/tokens}/typography/fontSize.cjs +0 -0
  478. /package/dist/{tokens → packages/components-v3/tokens}/typography/fontSize.d.ts +0 -0
  479. /package/dist/{tokens → packages/components-v3/tokens}/typography/fontSize.js +0 -0
  480. /package/dist/{tokens → packages/components-v3/tokens}/typography/fontWeight.cjs +0 -0
  481. /package/dist/{tokens → packages/components-v3/tokens}/typography/fontWeight.d.ts +0 -0
  482. /package/dist/{tokens → packages/components-v3/tokens}/typography/fontWeight.js +0 -0
  483. /package/dist/{tokens → packages/components-v3/tokens}/typography/letterSpacing.cjs +0 -0
  484. /package/dist/{tokens → packages/components-v3/tokens}/typography/letterSpacing.d.ts +0 -0
  485. /package/dist/{tokens → packages/components-v3/tokens}/typography/letterSpacing.js +0 -0
  486. /package/dist/{tokens → packages/components-v3/tokens}/typography/lineHeight.cjs +0 -0
  487. /package/dist/{tokens → packages/components-v3/tokens}/typography/lineHeight.d.ts +0 -0
  488. /package/dist/{tokens → packages/components-v3/tokens}/typography/lineHeight.js +0 -0
  489. /package/dist/{tokens → packages/components-v3/tokens}/typography/typography.cjs +0 -0
  490. /package/dist/{tokens → packages/components-v3/tokens}/typography/typography.d.ts +0 -0
  491. /package/dist/{tokens → packages/components-v3/tokens}/typography/typography.js +0 -0
@@ -1,10 +1,19 @@
1
1
  import '@testing-library/jest-dom';
2
2
  import { beforeEach, describe, expect, it, vi } from 'vitest';
3
3
  import { fireEvent, render, screen, waitFor } from '@testing-library/react';
4
+ import { createElement } from 'react';
4
5
  import { ChatPreview } from '../ChatPreview';
5
6
  import { WidgetWrapperVariant } from '../../WidgetWrapper/types/types';
6
7
  import { Theme } from '../../Tokens';
7
8
 
9
+ vi.mock('../../MarkdownProcessor/MarkdownProcessor', () => {
10
+ return {
11
+ MarkdownProcessor: function MockMarkdownProcessor({ content }: { content: string }) {
12
+ return createElement('p', null, content);
13
+ },
14
+ };
15
+ });
16
+
8
17
  describe('ChatPreview', () => {
9
18
  const defaultProps = {
10
19
  baseProps: {},
@@ -32,11 +41,11 @@ describe('ChatPreview', () => {
32
41
  });
33
42
 
34
43
  describe('Basic rendering', () => {
35
- it('should render with default props', () => {
44
+ it('should render with default props', async () => {
36
45
  render(<ChatPreview {...defaultProps} />);
37
46
  expect(screen.getByText('Shopping Assistant')).toBeInTheDocument();
38
47
  expect(
39
- screen.getByText('How can I help you find the perfect product today?'),
48
+ await screen.findByText('How can I help you find the perfect product today?'),
40
49
  ).toBeInTheDocument();
41
50
  expect(screen.getByText('What are the best products for gifting?')).toBeInTheDocument();
42
51
  });
@@ -86,10 +95,10 @@ describe('ChatPreview', () => {
86
95
  });
87
96
 
88
97
  describe('Content visibility', () => {
89
- it('should render message text', () => {
98
+ it('should render message text', async () => {
90
99
  render(<ChatPreview {...defaultProps} />);
91
100
  expect(
92
- screen.getByText('How can I help you find the perfect product today?'),
101
+ await screen.findByText('How can I help you find the perfect product today?'),
93
102
  ).toBeInTheDocument();
94
103
  });
95
104
 
@@ -281,7 +290,7 @@ describe('ChatPreview', () => {
281
290
  });
282
291
 
283
292
  describe('Edge cases', () => {
284
- it('should render with empty promptButtonTexts array', () => {
293
+ it('should render with empty promptButtonTexts array', async () => {
285
294
  render(
286
295
  <ChatPreview
287
296
  {...defaultProps}
@@ -293,7 +302,7 @@ describe('ChatPreview', () => {
293
302
  );
294
303
  expect(screen.getByText('Shopping Assistant')).toBeInTheDocument();
295
304
  expect(
296
- screen.getByText('How can I help you find the perfect product today?'),
305
+ await screen.findByText('How can I help you find the perfect product today?'),
297
306
  ).toBeInTheDocument();
298
307
  });
299
308
 
@@ -310,7 +319,7 @@ describe('ChatPreview', () => {
310
319
  expect(screen.getByText('Shopping Assistant')).toBeInTheDocument();
311
320
  });
312
321
 
313
- it('should render with undefined optional props', () => {
322
+ it('should render with undefined optional props', async () => {
314
323
  render(
315
324
  <ChatPreview
316
325
  baseProps={{}}
@@ -324,7 +333,7 @@ describe('ChatPreview', () => {
324
333
  />,
325
334
  );
326
335
  expect(screen.getByText('Shopping Assistant')).toBeInTheDocument();
327
- expect(screen.getByText('Test message')).toBeInTheDocument();
336
+ expect(await screen.findByText('Test message')).toBeInTheDocument();
328
337
  expect(screen.getByText('Button 1')).toBeInTheDocument();
329
338
  });
330
339
 
@@ -1,17 +1,23 @@
1
- import { MarkdownProcessor } from '../../MarkdownProcessor/MarkdownProcessor';
1
+ import { Suspense, lazy } from 'react';
2
2
  import { TypographyColor, TypographyVariant } from '../../Typography/types';
3
3
 
4
+ const MarkdownProcessor = lazy(async () => ({
5
+ default: (await import('../../MarkdownProcessor/MarkdownProcessor')).MarkdownProcessor,
6
+ }));
7
+
4
8
  type MessageProps = {
5
9
  messageText: string;
6
10
  };
7
11
 
8
12
  export const Message = ({ messageText }: MessageProps) => {
9
13
  return (
10
- <MarkdownProcessor
11
- content={messageText}
12
- clampParagraphs={4}
13
- textColor={TypographyColor.TEXT_PRIMARY}
14
- textVariant={TypographyVariant.B3_RG}
15
- />
14
+ <Suspense>
15
+ <MarkdownProcessor
16
+ content={messageText}
17
+ clampParagraphs={4}
18
+ textColor={TypographyColor.TEXT_PRIMARY}
19
+ textVariant={TypographyVariant.B3_RG}
20
+ />
21
+ </Suspense>
16
22
  );
17
23
  };
@@ -1,6 +1,7 @@
1
1
  import '@testing-library/jest-dom';
2
2
  import { beforeEach, describe, expect, it, vi } from 'vitest';
3
3
  import { fireEvent, render, screen, waitFor } from '@testing-library/react';
4
+ import { createElement } from 'react';
4
5
  import { ChatPreviewComparison } from '../ChatPreviewComparison';
5
6
  import { WidgetWrapperVariant } from '../../WidgetWrapper/types/types';
6
7
  import { Theme } from '../../Tokens';
@@ -22,6 +23,15 @@ vi.mock('src/components/utils/useGetContentSize', () => ({
22
23
  }),
23
24
  }));
24
25
 
26
+ // Mock MarkdownProcessor so it renders synchronously (avoids Suspense/lazy in ChatPreviewComparison Message).
27
+ vi.mock('../../MarkdownProcessor/MarkdownProcessor', () => {
28
+ return {
29
+ MarkdownProcessor: function MockMarkdownProcessor({ content }: { content: string }) {
30
+ return createElement('p', null, content);
31
+ },
32
+ };
33
+ });
34
+
25
35
  describe('ChatPreviewComparison', () => {
26
36
  const defaultProps = {
27
37
  baseProps: {},
@@ -55,11 +65,11 @@ describe('ChatPreviewComparison', () => {
55
65
  });
56
66
 
57
67
  describe('Basic rendering', () => {
58
- it('should render with default props', () => {
68
+ it('should render with default props', async () => {
59
69
  render(<ChatPreviewComparison {...defaultProps} />);
60
70
  expect(screen.getByText('Compare these products')).toBeInTheDocument();
61
71
  expect(
62
- screen.getByText(
72
+ await screen.findByText(
63
73
  'I can help you compare these two products side by side. Let me know what specific features, specifications, or details you would like to know more about.',
64
74
  ),
65
75
  ).toBeInTheDocument();
@@ -162,10 +172,10 @@ describe('ChatPreviewComparison', () => {
162
172
  expect(screen.getByText('Compare these products')).toBeInTheDocument();
163
173
  });
164
174
 
165
- it('should render message text', () => {
175
+ it('should render message text', async () => {
166
176
  render(<ChatPreviewComparison {...defaultProps} />);
167
177
  expect(
168
- screen.getByText(
178
+ await screen.findByText(
169
179
  'I can help you compare these two products side by side. Let me know what specific features, specifications, or details you would like to know more about.',
170
180
  ),
171
181
  ).toBeInTheDocument();
@@ -378,7 +388,7 @@ describe('ChatPreviewComparison', () => {
378
388
  expect(screen.getByText('Compare these products')).toBeInTheDocument();
379
389
  });
380
390
 
381
- it('should render with undefined optional props', () => {
391
+ it('should render with undefined optional props', async () => {
382
392
  render(
383
393
  <ChatPreviewComparison
384
394
  baseProps={{}}
@@ -393,7 +403,7 @@ describe('ChatPreviewComparison', () => {
393
403
  />,
394
404
  );
395
405
  expect(screen.getByText('Compare these products')).toBeInTheDocument();
396
- expect(screen.getByText('Test message')).toBeInTheDocument();
406
+ expect(await screen.findByText('Test message')).toBeInTheDocument();
397
407
  expect(screen.getByText('Button 1')).toBeInTheDocument();
398
408
  });
399
409
  });
@@ -1,8 +1,12 @@
1
+ import { Suspense, lazy } from 'react';
1
2
  import { Theme } from 'src/components/Tokens';
2
3
  import { TypographyColor, TypographyVariant } from '../../Typography';
3
4
  import { resolveTheme } from '../../utils/resolveTheme';
4
5
  import { useCheckIsMobile } from '../../utils/useCheckIsMobile';
5
- import { MarkdownProcessor } from '../../MarkdownProcessor/MarkdownProcessor';
6
+
7
+ const MarkdownProcessor = lazy(async () => ({
8
+ default: (await import('../../MarkdownProcessor/MarkdownProcessor')).MarkdownProcessor,
9
+ }));
6
10
 
7
11
  type MessageProps = {
8
12
  messageText: string;
@@ -18,11 +22,13 @@ export const Message = ({ messageText, theme = Theme.GLOBAL_CUSTOM }: MessagePro
18
22
  const isStandardAndMobile = isStandardTheme && isMobile;
19
23
 
20
24
  return (
21
- <MarkdownProcessor
22
- content={messageText}
23
- clampParagraphs={isStandardAndMobile ? 7 : 3}
24
- textColor={TypographyColor.TEXT_PRIMARY}
25
- textVariant={TypographyVariant.B3_RG}
26
- />
25
+ <Suspense>
26
+ <MarkdownProcessor
27
+ content={messageText}
28
+ clampParagraphs={isStandardAndMobile ? 7 : 3}
29
+ textColor={TypographyColor.TEXT_PRIMARY}
30
+ textVariant={TypographyVariant.B3_RG}
31
+ />
32
+ </Suspense>
27
33
  );
28
34
  };
@@ -112,7 +112,7 @@ export const Typography = () => {
112
112
  className={classNames(
113
113
  'envive-tw-flex-1',
114
114
  value.className,
115
- `envive-tw-text-[var(--envive-colors-text-primary)]`,
115
+ `envive-tw-text-text-primary`,
116
116
  )}
117
117
  >
118
118
  Envive Design System
@@ -0,0 +1,27 @@
1
+ import { DisclaimerProps } from './types/types';
2
+ import { Theme } from '../../../tokens/theme/theme';
3
+ import { DisclaimerComponents } from './components';
4
+
5
+ /**
6
+ * The Welcome Message that appears at the top of our floating chat.
7
+ * It displays the sparkle icon, along with a title and some text.
8
+ * Supports three visual themes: Standard, Modern, and Minimal.
9
+ */
10
+ export const Disclaimer = ({
11
+ disclaimerMarkdown,
12
+ theme = Theme.GLOBAL_CUSTOM,
13
+ id,
14
+ testId,
15
+ className,
16
+ style,
17
+ }: DisclaimerProps): JSX.Element => {
18
+ return (
19
+ <DisclaimerComponents.Container
20
+ markdownNode={<DisclaimerComponents.DisclaimerContent content={disclaimerMarkdown} />}
21
+ id={id}
22
+ testId={testId}
23
+ className={className}
24
+ style={style}
25
+ />
26
+ );
27
+ };
@@ -0,0 +1,35 @@
1
+ import classNames from 'classnames';
2
+ import { Stack } from '../../Stack';
3
+ import { Container as ContainerComponent } from '../../Container';
4
+
5
+ type ContainerProps = {
6
+ markdownNode: React.ReactNode;
7
+ id?: string;
8
+ testId?: string;
9
+ className?: string;
10
+ style?: React.CSSProperties;
11
+ };
12
+
13
+ export const Container = ({
14
+ markdownNode,
15
+ id,
16
+ testId,
17
+ className,
18
+ style,
19
+ }: ContainerProps): JSX.Element => {
20
+ return (
21
+ <ContainerComponent
22
+ id={id}
23
+ testId={testId}
24
+ style={style}
25
+ className={classNames(className, 'envive-tw-px-4 envive-tw-py-6')}
26
+ >
27
+ <Stack
28
+ direction="column"
29
+ className={classNames(className)}
30
+ >
31
+ {markdownNode}
32
+ </Stack>
33
+ </ContainerComponent>
34
+ );
35
+ };
@@ -0,0 +1,18 @@
1
+ import { TypographyColor, TypographyVariant } from 'src/components/Typography';
2
+ import { MarkdownProcessor } from '../../MarkdownProcessor/MarkdownProcessor';
3
+
4
+ type DisclaimerContentProps = {
5
+ content: string;
6
+ };
7
+
8
+ export const DisclaimerContent = ({ content }: DisclaimerContentProps): React.ReactNode => {
9
+ return (
10
+ <MarkdownProcessor
11
+ content={content}
12
+ textColor={TypographyColor.TEXT_SECONDARY}
13
+ subTextColor={TypographyColor.TEXT_SECONDARY}
14
+ textVariant={TypographyVariant.B3_RG}
15
+ subTextVariant={TypographyVariant.B3_RG}
16
+ />
17
+ );
18
+ };
@@ -0,0 +1,7 @@
1
+ import { Container } from './Container';
2
+ import { DisclaimerContent } from './DisclaimerContent';
3
+
4
+ export const DisclaimerComponents = {
5
+ Container,
6
+ DisclaimerContent,
7
+ };
@@ -0,0 +1 @@
1
+ export { Disclaimer } from './Disclaimer';
@@ -0,0 +1,27 @@
1
+ import { Theme } from '../../../../tokens/theme/theme';
2
+
3
+ export type DisclaimerProps = {
4
+ /**
5
+ * The markdown to be ingested by the MarkdownProcessor and displayed
6
+ */
7
+ disclaimerMarkdown: string;
8
+ /**
9
+ * Visual theme of the text field.
10
+ * @default Theme.GLOBAL_CUSTOM (uses CSS variable --envive-global-custom-theme)
11
+ */
12
+ theme?: Theme;
13
+ ariaLabel?: string;
14
+ id?: string;
15
+ /**
16
+ * Adds a `data-testid` attribute for testing utilities.
17
+ */
18
+ testId?: string;
19
+ /**
20
+ * Additional class names appended to the computed classes.
21
+ */
22
+ className?: string;
23
+ /**
24
+ * Inline styles forwarded to the rendered element.
25
+ */
26
+ style?: React.CSSProperties;
27
+ };
@@ -1,4 +1,4 @@
1
- import { ColorNames, enviveColorVar } from 'src/models/colorsConfig';
1
+ import { extractColorNameFromCssVar } from 'tokens/utils';
2
2
  import { FloatingButtonMode, FloatingButtonProps, FloatingButtonVariant } from '../types/types';
3
3
 
4
4
  /**
@@ -14,8 +14,9 @@ export const useGetButtonProperties = (
14
14
  ? 'envive-tw-w-[64px] envive-tw-h-[64px]'
15
15
  : 'envive-tw-w-[44px] envive-tw-h-[44px]';
16
16
 
17
- const customBackgroundColor = enviveColorVar(backgroundColor as ColorNames);
18
- const customBackgroundColorClass = `envive-tw-bg-[${customBackgroundColor}]`;
17
+ const colorName = extractColorNameFromCssVar(backgroundColor);
18
+
19
+ const customBackgroundColorClass = `envive-tw-bg-${colorName}`;
19
20
 
20
21
  const defaultBackgroundColorClass =
21
22
  mode === FloatingButtonMode.LIGHT
@@ -20,6 +20,7 @@ import { resolveTheme } from '../utils/resolveTheme';
20
20
  import { FloatingChatProps } from './types/types';
21
21
  import { useFilteredChatMessages } from './hooks/useFilteredChatMessages';
22
22
  import { Unit } from './hooks/useSnapCalculator';
23
+ import { Disclaimer } from '../Disclaimer';
23
24
 
24
25
  export const FloatingChat = ({
25
26
  id,
@@ -29,6 +30,7 @@ export const FloatingChat = ({
29
30
  theme = Theme.GLOBAL_CUSTOM,
30
31
  salesAgentData,
31
32
  floatingChatConfig,
33
+ hardcopyContent,
32
34
  lookAndFeelConfig,
33
35
  isCXButtonSwitchEnabled,
34
36
  isFloatingChatOpen,
@@ -51,10 +53,14 @@ export const FloatingChat = ({
51
53
  showEnviveLogo,
52
54
  ignoreFirstModelResponse,
53
55
  neverShowSingleProductCards,
56
+ } = floatingChatConfig;
57
+
58
+ const {
54
59
  welcomeMessageTitle,
55
60
  welcomeMessageText,
56
61
  chatFooterTextFieldPlaceholderText,
57
- } = floatingChatConfig;
62
+ disclaimerText,
63
+ } = hardcopyContent?.values ?? {};
58
64
 
59
65
  const { agentName, chatHeaderLogoDarkSrc, chatHeaderLogoLightSrc } = lookAndFeelConfig;
60
66
 
@@ -65,6 +71,7 @@ export const FloatingChat = ({
65
71
  suggestions,
66
72
  onSuggestionClicked,
67
73
  onTypedMessageSubmitted,
74
+ onFormResponseSubmitted,
68
75
  } = salesAgentData;
69
76
 
70
77
  const {
@@ -86,18 +93,6 @@ export const FloatingChat = ({
86
93
  }
87
94
  };
88
95
 
89
- const { showScrollButton, scrollToBottom } = useScrollToBottom({
90
- messagesRef: chatMessagesRef,
91
- autoScrollDependencies: [
92
- messages,
93
- isPendingResponse,
94
- suggestions,
95
- answerSuggestions,
96
- generalSuggestions,
97
- ],
98
- scrollThreshold: 30,
99
- });
100
-
101
96
  const {
102
97
  modalSheetControl,
103
98
  maxSwipeableViewHeight,
@@ -111,11 +106,25 @@ export const FloatingChat = ({
111
106
  animationKey,
112
107
  mobileHeaderHeight,
113
108
  shouldShowHeader,
114
- shouldShowScrolled,
115
109
  isFullView,
116
110
  isPartialView,
117
111
  } = useSnapSetup({ isFloatingChatOpen });
118
112
 
113
+ const { showScrollButton, scrollToBottom, isFloatingLayout } = useScrollToBottom({
114
+ messagesRef: chatMessagesRef,
115
+ autoScrollDependencies: [
116
+ messages,
117
+ isPendingResponse,
118
+ suggestions,
119
+ answerSuggestions,
120
+ generalSuggestions,
121
+ ],
122
+ scrollThreshold: 100,
123
+ useFloatingLayout: isMobile && isPartialView,
124
+ footerHeight: 160,
125
+ isOpen: isFloatingChatOpen,
126
+ });
127
+
119
128
  const { filteredMessages, hasFilteredMessages, handlePreviousDiscussions } =
120
129
  useFilteredChatMessages({
121
130
  messages,
@@ -182,14 +191,14 @@ export const FloatingChat = ({
182
191
  const footer = (
183
192
  <ChatFooter
184
193
  theme={finalTheme}
185
- isScrolled={isMobile ? shouldShowScrolled : false}
194
+ isScrolled={isMobile ? isFloatingLayout : false}
186
195
  onChange={setQuery}
187
196
  onSubmit={() => {
188
197
  onTypedMessageSubmitted({ query, userTyped: true });
189
198
  setAnswerSuggestions([]);
190
199
  setGeneralSuggestions([]);
191
200
  }}
192
- textFieldPlaceholderText={chatFooterTextFieldPlaceholderText}
201
+ textFieldPlaceholderText={chatFooterTextFieldPlaceholderText as string}
193
202
  promptSuggestions={
194
203
  isPendingResponse || isResponseStreaming || generalSuggestions.length === 0
195
204
  ? ['Loading suggestions 1...', 'Loading suggestions 2...'] // This is strings will not be shown to the user
@@ -216,8 +225,8 @@ export const FloatingChat = ({
216
225
  const welcomeMessage = (
217
226
  <WelcomeMessage
218
227
  sparkleIconColor={welcomeMessageIconColor as SparkleIconColor}
219
- title={welcomeMessageTitle}
220
- text={welcomeMessageText}
228
+ title={welcomeMessageTitle as string}
229
+ text={welcomeMessageText as string}
221
230
  theme={finalTheme}
222
231
  />
223
232
  );
@@ -236,6 +245,7 @@ export const FloatingChat = ({
236
245
  neverShowSingleProductCards={neverShowSingleProductCards}
237
246
  showVerifiedBuyer={showVerifiedBuyer}
238
247
  isPartialView={isPartialView}
248
+ onFormResponseSubmitted={onFormResponseSubmitted}
239
249
  />
240
250
  );
241
251
 
@@ -274,6 +284,11 @@ export const FloatingChat = ({
274
284
  <FloatingChatComponents.ScrollToBottomButton onClick={scrollToBottom} />
275
285
  ) : undefined
276
286
  }
287
+ disclaimer={
288
+ disclaimerText && typeof disclaimerText === 'string' ? (
289
+ <Disclaimer disclaimerMarkdown={disclaimerText} />
290
+ ) : undefined
291
+ }
277
292
  />
278
293
  );
279
294
 
@@ -294,6 +309,12 @@ export const FloatingChat = ({
294
309
  <FloatingChatComponents.ScrollToBottomButton onClick={scrollToBottom} />
295
310
  ) : undefined
296
311
  }
312
+ disclaimer={
313
+ disclaimerText && typeof disclaimerText === 'string' ? (
314
+ <Disclaimer disclaimerMarkdown={disclaimerText} />
315
+ ) : undefined
316
+ }
317
+ isFloatingFooterLayout={isFloatingLayout}
297
318
  />
298
319
  );
299
320
 
@@ -1,5 +1,12 @@
1
+ import { useSetAtom } from 'jotai';
1
2
  import { Form } from 'src/components/Form';
2
- import { Message, MessageType } from '@envive-ai/react-hooks/application/models';
3
+ import {
4
+ FormSubmittedAttributes,
5
+ Message,
6
+ MessageType,
7
+ } from '@envive-ai/react-hooks/application/models';
8
+ import { handleFormSubmittedAtom } from '@envive-ai/react-hooks/atoms/chat';
9
+ import type { FormSubmitValue } from 'src/components/Form/types';
3
10
  import { Message as MessageComponent, MessageVariant } from '../../Message';
4
11
  import { Theme } from '../../../../tokens/theme/theme';
5
12
  import { ReviewCardsCarousel } from './ReviewCardsCarousel';
@@ -24,6 +31,7 @@ export interface AgentMessageProps {
24
31
  neverShowSingleProductCards?: boolean;
25
32
  showVerifiedBuyer?: boolean;
26
33
  isPartialView?: boolean;
34
+ onFormResponseSubmitted?: (formResponse: FormSubmittedAttributes) => void;
27
35
  }
28
36
 
29
37
  export const AgentMessage = ({
@@ -36,7 +44,9 @@ export const AgentMessage = ({
36
44
  neverShowSingleProductCards = false,
37
45
  showVerifiedBuyer = false,
38
46
  isPartialView,
47
+ onFormResponseSubmitted,
39
48
  }: AgentMessageProps) => {
49
+ const handleFormSubmittedAtomFallback = useSetAtom(handleFormSubmittedAtom);
40
50
  const finalTheme = resolveTheme(theme);
41
51
 
42
52
  const textContentMessageTypes = new Set([
@@ -98,37 +108,56 @@ export const AgentMessage = ({
98
108
 
99
109
  return (
100
110
  <DocumentRetrievalCardsCarousel
111
+ hideNavigation={documents.length === 1}
101
112
  documents={documents}
102
113
  theme={finalTheme}
103
114
  />
104
115
  );
105
116
  }
106
117
 
107
- // TODO: Need to test this with a real message.
108
118
  if (type === MessageType.Form) {
109
119
  return messages
110
120
  .filter(msg => msg.type === MessageType.Form)
111
- .map(msg => (
112
- <Form
113
- key={msg.id}
114
- textFields={msg.metadata.fields.map(field => ({
115
- label: field.title,
116
- isRequired: field.required,
117
- type: field.format === 'email' ? 'email' : 'text',
118
- }))}
119
- submitButton={{ label: 'Submit', ariaLabel: 'Submit', isDisabled: false }}
120
- onSubmit={values => {
121
- console.log('submitted', values);
122
- // TODO: Add API call to submit the form.
123
- }}
124
- />
125
- ));
121
+ .map(msg => {
122
+ const { fields } = msg.metadata;
123
+ return (
124
+ <Form
125
+ key={msg.id}
126
+ textFields={fields.map(field => ({
127
+ label: field.title,
128
+ isRequired: field.required,
129
+ type: field.format === 'email' ? 'email' : 'text',
130
+ }))}
131
+ submitButton={{ label: 'Submit', ariaLabel: 'Submit', isDisabled: false }}
132
+ onSubmit={(values: FormSubmitValue[]) => {
133
+ const filledSchema: Record<string, unknown> = {};
134
+ fields.forEach((field, index) => {
135
+ filledSchema[field.key] = values[index]?.value ?? '';
136
+ });
137
+ const formResponseId = msg.id;
138
+ const formType =
139
+ msg.metadata.formType ?? ('order_lookup' as FormSubmittedAttributes['formType']);
140
+ const payload: FormSubmittedAttributes = {
141
+ filledSchema,
142
+ formResponseId,
143
+ formType,
144
+ };
145
+ if (onFormResponseSubmitted) {
146
+ onFormResponseSubmitted(payload);
147
+ } else {
148
+ handleFormSubmittedAtomFallback(payload);
149
+ }
150
+ }}
151
+ />
152
+ );
153
+ });
126
154
  }
127
155
 
128
- // TODO: Need to test this with a real message.
129
156
  if (type === MessageType.Order) {
130
157
  const orders = getCleanOrders(messages);
131
-
158
+ if (!orders || orders.length === 0) {
159
+ return null;
160
+ }
132
161
  return (
133
162
  <OrderLookupCardCarousel
134
163
  orders={orders}
@@ -1,4 +1,9 @@
1
- import { Message, MessageRole, MessageType } from '@envive-ai/react-hooks/application/models';
1
+ import {
2
+ FormSubmittedAttributes,
3
+ Message,
4
+ MessageRole,
5
+ MessageType,
6
+ } from '@envive-ai/react-hooks/application/models';
2
7
  import { forwardRef } from 'react';
3
8
  import classNames from 'classnames';
4
9
  import { Stack } from '../../Stack';
@@ -25,6 +30,7 @@ export interface ChatMessagesProps {
25
30
  neverShowSingleProductCards?: boolean;
26
31
  showVerifiedBuyer?: boolean;
27
32
  isPartialView?: boolean;
33
+ onFormResponseSubmitted?: (formResponse: FormSubmittedAttributes) => void;
28
34
  }
29
35
 
30
36
  export const ChatMessages = forwardRef<HTMLDivElement, ChatMessagesProps>(
@@ -42,6 +48,7 @@ export const ChatMessages = forwardRef<HTMLDivElement, ChatMessagesProps>(
42
48
  neverShowSingleProductCards,
43
49
  showVerifiedBuyer,
44
50
  isPartialView,
51
+ onFormResponseSubmitted,
45
52
  },
46
53
  ref,
47
54
  ) => {
@@ -50,20 +57,20 @@ export const ChatMessages = forwardRef<HTMLDivElement, ChatMessagesProps>(
50
57
  <Stack
51
58
  ref={ref}
52
59
  direction="column"
53
- className={classNames('envive-tw-px-4', className)}
60
+ className={classNames('envive-tw-pl-4 envive-tw-pr-4', className)}
54
61
  gap={4}
55
62
  >
56
63
  {hasFilteredMessages && (
57
64
  <button
58
65
  type="button"
59
- className="envive-tw-w-full envive-tw-cursor-pointer envive-tw-px-4 envive-tw-py-2 envive-tw-text-center"
66
+ className="envive-tw-w-full envive-tw-cursor-pointer envive-tw-text-left"
60
67
  onClick={handlePreviousDiscussions}
61
68
  >
62
69
  {/* TODO: Get hard copy */}
63
70
  <Typography
64
71
  color={TypographyColor.TEXT_PRIMARY}
65
- variant={TypographyVariant.B3_RG}
66
- className="hover:envive-tw-underline"
72
+ variant={TypographyVariant.B4_MD}
73
+ className="envive-tw-underline hover:envive-tw-underline-offset-2"
67
74
  >
68
75
  View Previous Messages
69
76
  </Typography>
@@ -133,6 +140,7 @@ export const ChatMessages = forwardRef<HTMLDivElement, ChatMessagesProps>(
133
140
  neverShowSingleProductCards={neverShowSingleProductCards}
134
141
  showVerifiedBuyer={showVerifiedBuyer}
135
142
  isPartialView={isPartialView}
143
+ onFormResponseSubmitted={onFormResponseSubmitted}
136
144
  />
137
145
  );
138
146
  }