@envive-ai/react-toolkit-v3 0.3.10 → 0.3.12

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 (267) hide show
  1. package/dist/AnimatedText/AnimatedText.d.ts +3 -3
  2. package/dist/CSSVariablesEditor/CssVariablesEditorComponent.d.cts +2 -2
  3. package/dist/CSSVariablesEditor/CssVariablesEditorComponent.d.ts +2 -2
  4. package/dist/CSSVariablesEditor/hooks/useGetCssVariablesOptions.cjs +1 -1
  5. package/dist/CSSVariablesEditor/hooks/useGetCssVariablesOptions.js +1 -1
  6. package/dist/CSSVariablesEditor/hooks/useGetCurrentMerchantColors.cjs +1 -1
  7. package/dist/CSSVariablesEditor/hooks/useGetCurrentMerchantColors.js +1 -1
  8. package/dist/CSSVariablesEditor/hooks/useGetDefaultCssVariables.cjs +1 -1
  9. package/dist/CSSVariablesEditor/hooks/useGetDefaultCssVariables.js +1 -1
  10. package/dist/CSSVariablesEditor/hooks/useHandleUpdateCssVars.cjs +1 -1
  11. package/dist/CSSVariablesEditor/hooks/useHandleUpdateCssVars.js +1 -1
  12. package/dist/Carousel/Carousel.d.cts +2 -2
  13. package/dist/Carousel/Carousel.d.ts +2 -2
  14. package/dist/Carousel/components/Badge.cjs +1 -1
  15. package/dist/Carousel/components/Badge.js +1 -1
  16. package/dist/Carousel/components/Container.cjs +11 -3
  17. package/dist/Carousel/components/Container.js +12 -4
  18. package/dist/ChatFooter/ChatFooter.cjs +1 -1
  19. package/dist/ChatFooter/ChatFooter.d.cts +2 -2
  20. package/dist/ChatFooter/ChatFooter.d.ts +2 -2
  21. package/dist/ChatFooter/ChatFooter.js +1 -1
  22. package/dist/ChatFooter/components/Layout.cjs +3 -9
  23. package/dist/ChatFooter/components/Layout.js +3 -9
  24. package/dist/ChatFooter/components/index.d.cts +3 -3
  25. package/dist/ChatFooter/components/index.d.ts +5 -5
  26. package/dist/ChatHeader/ChatHeader.d.cts +2 -2
  27. package/dist/ChatHeader/ChatHeader.d.ts +2 -2
  28. package/dist/ChatHeader/hooks/useGetCloseButtonProperties.cjs +1 -1
  29. package/dist/ChatHeader/hooks/useGetCloseButtonProperties.js +1 -1
  30. package/dist/ChatHeader/hooks/useGetLayoutProperties.cjs +1 -1
  31. package/dist/ChatHeader/hooks/useGetLayoutProperties.js +1 -1
  32. package/dist/ChatPreview/ChatPreview.d.cts +2 -2
  33. package/dist/ChatPreview/ChatPreview.d.ts +2 -2
  34. package/dist/ChatPreviewComparison/ChatPreviewComparison.d.cts +2 -2
  35. package/dist/ChatPreviewComparison/ChatPreviewComparison.d.ts +2 -2
  36. package/dist/ChatPreviewComparison/components/Layout.cjs +2 -2
  37. package/dist/ChatPreviewComparison/components/Layout.js +2 -2
  38. package/dist/ChatPreviewLoading/ChatPreviewLoading.d.cts +2 -2
  39. package/dist/ChatPreviewLoading/ChatPreviewLoading.d.ts +2 -2
  40. package/dist/Container/Container.d.cts +5 -5
  41. package/dist/Container/Container.d.ts +5 -5
  42. package/dist/DesignTokens/DesignTokensComponent.d.ts +2 -2
  43. package/dist/DesignTokens/components/FontFamily.cjs +1 -1
  44. package/dist/DesignTokens/components/FontFamily.js +1 -1
  45. package/dist/DesignTokens/components/FontSize.cjs +1 -1
  46. package/dist/DesignTokens/components/FontSize.js +1 -1
  47. package/dist/DesignTokens/components/FontWeight.cjs +1 -1
  48. package/dist/DesignTokens/components/FontWeight.js +1 -1
  49. package/dist/DesignTokens/components/LetterSpacing.cjs +1 -1
  50. package/dist/DesignTokens/components/LetterSpacing.js +1 -1
  51. package/dist/DesignTokens/components/LineHeight.cjs +1 -1
  52. package/dist/DesignTokens/components/LineHeight.js +1 -1
  53. package/dist/DesignTokens/components/Typography.cjs +1 -1
  54. package/dist/DesignTokens/components/Typography.js +1 -1
  55. package/dist/Disclaimer/components/Container.cjs +1 -1
  56. package/dist/Disclaimer/components/Container.js +1 -1
  57. package/dist/DocumentRetrievalCard/DocumentRetrievalCard.d.cts +2 -2
  58. package/dist/DocumentRetrievalCard/DocumentRetrievalCard.d.ts +2 -2
  59. package/dist/DocumentRetrievalCard/components/Image.cjs +1 -1
  60. package/dist/DocumentRetrievalCard/components/Image.js +1 -1
  61. package/dist/DocumentRetrievalCard/components/Layout.cjs +1 -1
  62. package/dist/DocumentRetrievalCard/components/Layout.js +1 -1
  63. package/dist/DocumentRetrievalCard/components/ViewArticleButton/components/Icon.cjs +1 -1
  64. package/dist/DocumentRetrievalCard/components/ViewArticleButton/components/Icon.js +1 -1
  65. package/dist/DocumentRetrievalCard/components/ViewArticleButton/components/Label.cjs +1 -1
  66. package/dist/DocumentRetrievalCard/components/ViewArticleButton/components/Label.js +1 -1
  67. package/dist/DocumentRetrievalCard/components/ViewArticleButton/components/Layout.cjs +1 -1
  68. package/dist/DocumentRetrievalCard/components/ViewArticleButton/components/Layout.js +1 -1
  69. package/dist/FloatingButton/FloatingButton.d.cts +2 -2
  70. package/dist/FloatingButton/FloatingButton.d.ts +2 -2
  71. package/dist/FloatingButton/components/Button.cjs +1 -1
  72. package/dist/FloatingButton/components/Button.js +1 -1
  73. package/dist/FloatingButton/components/Container.cjs +1 -1
  74. package/dist/FloatingButton/components/Container.js +1 -1
  75. package/dist/FloatingButton/components/Wrapper.cjs +1 -1
  76. package/dist/FloatingButton/components/Wrapper.js +1 -1
  77. package/dist/FloatingChat/FloatingChat.cjs +6 -4
  78. package/dist/FloatingChat/FloatingChat.d.cts +3 -2
  79. package/dist/FloatingChat/FloatingChat.d.ts +3 -2
  80. package/dist/FloatingChat/FloatingChat.js +6 -4
  81. package/dist/FloatingChat/components/ChatMessages.cjs +1 -1
  82. package/dist/FloatingChat/components/ChatMessages.js +1 -1
  83. package/dist/FloatingChat/components/Layout.cjs +6 -2
  84. package/dist/FloatingChat/components/Layout.js +6 -2
  85. package/dist/FloatingChat/components/SalesAgentProductCardsCarousel.cjs +1 -0
  86. package/dist/FloatingChat/components/SalesAgentProductCardsCarousel.js +1 -0
  87. package/dist/FloatingChat/types/types.d.cts +4 -0
  88. package/dist/FloatingChat/types/types.d.ts +4 -0
  89. package/dist/Form/Form.cjs +1 -1
  90. package/dist/Form/Form.js +1 -1
  91. package/dist/Form/components/Layout.cjs +1 -1
  92. package/dist/Form/components/Layout.js +1 -1
  93. package/dist/Form/components/SubmitButtonItem.cjs +1 -1
  94. package/dist/Form/components/SubmitButtonItem.js +1 -1
  95. package/dist/Form/components/TextFieldItem.cjs +1 -1
  96. package/dist/Form/components/TextFieldItem.js +1 -1
  97. package/dist/FullPageSalesAgent/FullPageSalesAgent.cjs +132 -0
  98. package/dist/FullPageSalesAgent/FullPageSalesAgent.d.cts +24 -0
  99. package/dist/FullPageSalesAgent/FullPageSalesAgent.d.ts +24 -0
  100. package/dist/FullPageSalesAgent/FullPageSalesAgent.js +131 -0
  101. package/dist/FullPageSalesAgent/components/Layout.cjs +53 -0
  102. package/dist/FullPageSalesAgent/components/Layout.js +51 -0
  103. package/dist/FullPageSalesAgent/components/index.cjs +7 -0
  104. package/dist/FullPageSalesAgent/components/index.js +7 -0
  105. package/dist/FullPageSalesAgent/hooks/useContainerResizerObserver.cjs +23 -0
  106. package/dist/FullPageSalesAgent/hooks/useContainerResizerObserver.js +22 -0
  107. package/dist/FullPageSalesAgent/hooks/useGetContainerStyles.cjs +16 -0
  108. package/dist/FullPageSalesAgent/hooks/useGetContainerStyles.js +16 -0
  109. package/dist/FullPageSalesAgent/hooks/useGetFooterStyles.cjs +16 -0
  110. package/dist/FullPageSalesAgent/hooks/useGetFooterStyles.js +16 -0
  111. package/dist/FullPageSalesAgent/hooks/useGetScrollContentStyles.cjs +19 -0
  112. package/dist/FullPageSalesAgent/hooks/useGetScrollContentStyles.js +17 -0
  113. package/dist/FullPageSalesAgent/hooks/useIsMobile.cjs +7 -0
  114. package/dist/FullPageSalesAgent/hooks/useIsMobile.js +7 -0
  115. package/dist/FullPageSalesAgent/index.cjs +3 -0
  116. package/dist/FullPageSalesAgent/index.d.cts +2 -0
  117. package/dist/FullPageSalesAgent/index.d.ts +2 -0
  118. package/dist/FullPageSalesAgent/index.js +3 -0
  119. package/dist/Image/Image.cjs +6 -1
  120. package/dist/Image/Image.d.cts +2 -2
  121. package/dist/Image/Image.d.ts +2 -2
  122. package/dist/Image/Image.js +6 -1
  123. package/dist/ImageGallery/ImageGallery.d.cts +2 -2
  124. package/dist/ImageGallery/ImageGallery.d.ts +2 -2
  125. package/dist/ImageGallery/components/Layout.cjs +1 -1
  126. package/dist/ImageGallery/components/Layout.js +1 -1
  127. package/dist/ImageGallery/utils/functions.cjs +1 -1
  128. package/dist/ImageGallery/utils/functions.js +1 -1
  129. package/dist/MarkdownProcessor/MarkdownProcessor.d.cts +2 -2
  130. package/dist/MarkdownProcessor/MarkdownProcessor.d.ts +2 -2
  131. package/dist/Message/components/Layout.cjs +1 -1
  132. package/dist/Message/components/Layout.js +1 -1
  133. package/dist/Message/hooks/useVariantStyleProperties.cjs +1 -1
  134. package/dist/Message/hooks/useVariantStyleProperties.js +1 -1
  135. package/dist/OrderLookupCard/OrderLookupCard.cjs +1 -1
  136. package/dist/OrderLookupCard/OrderLookupCard.js +1 -1
  137. package/dist/OrderLookupCard/components/Layout.cjs +1 -1
  138. package/dist/OrderLookupCard/components/Layout.js +1 -1
  139. package/dist/OrderLookupCard/components/MoreProductsOverlay.cjs +1 -1
  140. package/dist/OrderLookupCard/components/MoreProductsOverlay.js +1 -1
  141. package/dist/OrderLookupCard/components/ProductImageGridItem.cjs +1 -1
  142. package/dist/OrderLookupCard/components/ProductImageGridItem.js +1 -1
  143. package/dist/OrderLookupCard/components/ProductImageItem.cjs +1 -1
  144. package/dist/OrderLookupCard/components/ProductImageItem.js +1 -1
  145. package/dist/OrderLookupCard/components/ProductImagesGrid.cjs +1 -1
  146. package/dist/OrderLookupCard/components/ProductImagesGrid.js +1 -1
  147. package/dist/OrderLookupCard/components/StatusLabel.cjs +1 -1
  148. package/dist/OrderLookupCard/components/StatusLabel.js +1 -1
  149. package/dist/OrderLookupCard/components/TrackOrderLink.cjs +1 -1
  150. package/dist/OrderLookupCard/components/TrackOrderLink.js +1 -1
  151. package/dist/ProductCard/ProductCard.cjs +1 -1
  152. package/dist/ProductCard/ProductCard.d.cts +2 -2
  153. package/dist/ProductCard/ProductCard.d.ts +2 -2
  154. package/dist/ProductCard/ProductCard.js +1 -1
  155. package/dist/PromptButton/PromptButton.cjs +1 -1
  156. package/dist/PromptButton/PromptButton.d.cts +2 -2
  157. package/dist/PromptButton/PromptButton.d.ts +2 -2
  158. package/dist/PromptButton/PromptButton.js +1 -1
  159. package/dist/PromptButton/components/Layout.cjs +1 -1
  160. package/dist/PromptButton/components/Layout.js +1 -1
  161. package/dist/PromptButton/components/Loading.cjs +1 -1
  162. package/dist/PromptButton/components/Loading.js +1 -1
  163. package/dist/PromptButtonCarouselWithImage/PromptButtonCarouselWithImage.d.cts +2 -2
  164. package/dist/PromptButtonCarouselWithImage/PromptButtonCarouselWithImage.d.ts +2 -2
  165. package/dist/PromptButtonCarouselWithImage/components/Layout.cjs +1 -1
  166. package/dist/PromptButtonCarouselWithImage/components/Layout.js +1 -1
  167. package/dist/PromptButtonCarouselWithImage/components/Skeleton.cjs +1 -1
  168. package/dist/PromptButtonCarouselWithImage/components/Skeleton.js +1 -1
  169. package/dist/PromptCarousel/PromptCarousel.cjs +20 -29
  170. package/dist/PromptCarousel/PromptCarousel.d.cts +2 -2
  171. package/dist/PromptCarousel/PromptCarousel.d.ts +2 -2
  172. package/dist/PromptCarousel/PromptCarousel.js +20 -29
  173. package/dist/ReviewCard/ReviewCard.d.cts +2 -2
  174. package/dist/ReviewCard/ReviewCard.d.ts +2 -2
  175. package/dist/ReviewCard/components/Container.cjs +1 -1
  176. package/dist/ReviewCard/components/Container.js +1 -1
  177. package/dist/ReviewCard/components/Rating.cjs +1 -1
  178. package/dist/ReviewCard/components/Rating.js +1 -1
  179. package/dist/ReviewCard/components/ReadMoreButton.cjs +1 -1
  180. package/dist/ReviewCard/components/ReadMoreButton.js +1 -1
  181. package/dist/ReviewCard/components/index.d.cts +4 -4
  182. package/dist/ReviewCard/components/index.d.ts +6 -6
  183. package/dist/SalesAgentProductCard/SalesAgentProductCard.cjs +2 -1
  184. package/dist/SalesAgentProductCard/SalesAgentProductCard.d.cts +3 -2
  185. package/dist/SalesAgentProductCard/SalesAgentProductCard.d.ts +3 -2
  186. package/dist/SalesAgentProductCard/SalesAgentProductCard.js +2 -1
  187. package/dist/SalesAgentProductCard/components/Container.cjs +8 -6
  188. package/dist/SalesAgentProductCard/components/Container.d.cts +2 -1
  189. package/dist/SalesAgentProductCard/components/Container.d.ts +2 -1
  190. package/dist/SalesAgentProductCard/components/Container.js +8 -6
  191. package/dist/SalesAgentProductCard/components/ProductImage.cjs +1 -1
  192. package/dist/SalesAgentProductCard/components/ProductImage.js +1 -1
  193. package/dist/SalesAgentProductCard/components/ProductName.cjs +1 -1
  194. package/dist/SalesAgentProductCard/components/ProductName.js +1 -1
  195. package/dist/SalesAgentProductCard/components/index.d.cts +9 -8
  196. package/dist/SalesAgentProductCard/components/index.d.ts +9 -8
  197. package/dist/SalesAgentProductCard/types/types.d.cts +4 -0
  198. package/dist/SalesAgentProductCard/types/types.d.ts +4 -0
  199. package/dist/SocialProof/SocialProof.d.cts +2 -2
  200. package/dist/SocialProof/SocialProof.d.ts +2 -2
  201. package/dist/SocialProof/components/Headline.cjs +1 -1
  202. package/dist/SocialProof/components/Headline.js +1 -1
  203. package/dist/SocialProof/components/LayoutFourHorizontal.cjs +1 -1
  204. package/dist/SocialProof/components/LayoutFourHorizontal.js +1 -1
  205. package/dist/TextField/TextField.cjs +1 -1
  206. package/dist/TextField/TextField.js +1 -1
  207. package/dist/TextField/components/Input.cjs +1 -1
  208. package/dist/TextField/components/Input.js +1 -1
  209. package/dist/TextField/components/Layout.cjs +1 -1
  210. package/dist/TextField/components/Layout.js +1 -1
  211. package/dist/TextField/components/SendIcon.cjs +1 -1
  212. package/dist/TextField/components/SendIcon.js +1 -1
  213. package/dist/Title/Title.cjs +1 -1
  214. package/dist/Title/Title.js +1 -1
  215. package/dist/Title/components/Layout.cjs +1 -1
  216. package/dist/Title/components/Layout.js +1 -1
  217. package/dist/TitledPromptCarousel/TitledPromptCarousel.cjs +1 -1
  218. package/dist/TitledPromptCarousel/TitledPromptCarousel.d.cts +2 -2
  219. package/dist/TitledPromptCarousel/TitledPromptCarousel.d.ts +2 -2
  220. package/dist/TitledPromptCarousel/TitledPromptCarousel.js +1 -1
  221. package/dist/Tokens/index.cjs +2 -2
  222. package/dist/Tokens/index.js +2 -2
  223. package/dist/TypingAnimation/TypingAnimation.d.cts +2 -2
  224. package/dist/TypingAnimation/TypingAnimation.d.ts +2 -2
  225. package/dist/Typography/Typography.d.cts +4 -4
  226. package/dist/Typography/Typography.d.ts +4 -4
  227. package/dist/WelcomeMessage/components/Container.cjs +1 -1
  228. package/dist/WelcomeMessage/components/Container.js +1 -1
  229. package/dist/WidgetTextField/WidgetTextField.d.cts +2 -2
  230. package/dist/WidgetTextField/components/Container.cjs +1 -1
  231. package/dist/WidgetTextField/components/Container.js +1 -1
  232. package/dist/WidgetTextField/components/Skeleton.cjs +1 -1
  233. package/dist/WidgetTextField/components/Skeleton.js +1 -1
  234. package/dist/WidgetWrapper/WidgetWrapper.cjs +1 -1
  235. package/dist/WidgetWrapper/WidgetWrapper.d.cts +2 -2
  236. package/dist/WidgetWrapper/WidgetWrapper.d.ts +2 -2
  237. package/dist/WidgetWrapper/WidgetWrapper.js +1 -1
  238. package/dist/WidgetWrapperWithTitle/WidgetWrapperWithTitle.d.cts +2 -2
  239. package/dist/WidgetWrapperWithTitle/WidgetWrapperWithTitle.d.ts +2 -2
  240. package/dist/styles.css +1 -1
  241. package/dist/utils/resolveTheme.cjs +1 -1
  242. package/dist/utils/resolveTheme.js +1 -1
  243. package/package.json +5 -1
  244. package/src/components/Carousel/components/Container.tsx +15 -3
  245. package/src/components/ChatFooter/components/Layout.tsx +2 -14
  246. package/src/components/ChatHeader/hooks/useGetCloseButtonProperties.ts +1 -1
  247. package/src/components/FloatingChat/FloatingChat.tsx +8 -2
  248. package/src/components/FloatingChat/components/Layout.tsx +3 -0
  249. package/src/components/FloatingChat/components/SalesAgentProductCardsCarousel.tsx +4 -3
  250. package/src/components/FloatingChat/types/types.ts +4 -0
  251. package/src/components/FullPageSalesAgent/FullPageSalesAgent.tsx +203 -0
  252. package/src/components/FullPageSalesAgent/components/Layout.tsx +81 -0
  253. package/src/components/FullPageSalesAgent/components/index.ts +5 -0
  254. package/src/components/FullPageSalesAgent/hooks/useContainerResizerObserver.ts +34 -0
  255. package/src/components/FullPageSalesAgent/hooks/useGetContainerStyles.ts +24 -0
  256. package/src/components/FullPageSalesAgent/hooks/useGetFooterStyles.ts +17 -0
  257. package/src/components/FullPageSalesAgent/hooks/useGetScrollContentStyles.ts +17 -0
  258. package/src/components/FullPageSalesAgent/hooks/useIsMobile.ts +3 -0
  259. package/src/components/FullPageSalesAgent/index.ts +1 -0
  260. package/src/components/Image/Image.tsx +2 -0
  261. package/src/components/Message/hooks/useVariantStyleProperties.ts +1 -1
  262. package/src/components/PromptCarousel/PromptCarousel.tsx +29 -31
  263. package/src/components/SalesAgentProductCard/SalesAgentProductCard.tsx +2 -0
  264. package/src/components/SalesAgentProductCard/components/Container.tsx +16 -9
  265. package/src/components/SalesAgentProductCard/types/types.ts +4 -0
  266. package/dist/ChatFooter/hooks/useGetButtonScrollProperties.cjs +0 -18
  267. package/dist/ChatFooter/hooks/useGetButtonScrollProperties.js +0 -17
@@ -26,7 +26,7 @@ import { motion } from "framer-motion";
26
26
  import { ChatElementDisplayLocationV3 } from "@envive-ai/react-hooks/application/models";
27
27
 
28
28
  //#region src/components/FloatingChat/FloatingChat.tsx
29
- const FloatingChat = ({ id, className, style, testId, theme = Theme.GLOBAL_CUSTOM, salesAgentData, floatingChatConfig, hardcopyContent, lookAndFeelConfig, isCXButtonSwitchEnabled, isFloatingChatOpen, onClose, onToggleCXButton }) => {
29
+ const FloatingChat = ({ id, className, style, testId, theme = Theme.GLOBAL_CUSTOM, salesAgentData, floatingChatConfig, hardcopyContent, lookAndFeelConfig, isCXButtonSwitchEnabled, isFloatingChatOpen, debugBar, onClose, onToggleCXButton }) => {
30
30
  const finalTheme = resolveTheme(theme);
31
31
  const [query, setQuery] = useState("");
32
32
  const chatMessagesRef = useRef(null);
@@ -118,13 +118,14 @@ const FloatingChat = ({ id, className, style, testId, theme = Theme.GLOBAL_CUSTO
118
118
  onSubmit: () => {
119
119
  onTypedMessageSubmitted({
120
120
  query,
121
- userTyped: true
121
+ userTyped: true,
122
+ displayLocation: ChatElementDisplayLocationV3.FLOATING_CHAT_TEXT_INPUT
122
123
  });
123
124
  setAnswerSuggestions([]);
124
125
  setGeneralSuggestions([]);
125
126
  },
126
127
  textFieldPlaceholderText: chatFooterTextFieldPlaceholderText,
127
- promptSuggestions: isPendingResponse || isResponseStreaming || generalSuggestions.length === 0 ? ["Loading suggestions 1...", "Loading suggestions 2..."] : generalSuggestions,
128
+ promptSuggestions: isPendingResponse || isResponseStreaming ? ["Loading suggestions 1...", "Loading suggestions 2..."] : generalSuggestions,
128
129
  handleButtonClick: (buttonText) => {
129
130
  const suggestion = suggestions.find((s) => s.content === buttonText && !s.isAnswer);
130
131
  if (suggestion) onSuggestionClicked(suggestion, ChatElementDisplayLocationV3.FLOATING_CHAT_PROMPT_BUTTON);
@@ -182,7 +183,8 @@ const FloatingChat = ({ id, className, style, testId, theme = Theme.GLOBAL_CUSTO
182
183
  chatMessages,
183
184
  answerSuggestions: showAnswerSuggestions ? answerSuggestionsComponent : void 0,
184
185
  scrollToBottomButton: showScrollButton ? /* @__PURE__ */ jsx(FloatingChatComponents.ScrollToBottomButton, { onClick: scrollToBottom }) : void 0,
185
- disclaimer: disclaimerText && typeof disclaimerText === "string" ? /* @__PURE__ */ jsx(Disclaimer, { disclaimerMarkdown: disclaimerText }) : void 0
186
+ disclaimer: disclaimerText && typeof disclaimerText === "string" ? /* @__PURE__ */ jsx(Disclaimer, { disclaimerMarkdown: disclaimerText }) : void 0,
187
+ debugBar
186
188
  });
187
189
  const mobileLayout = /* @__PURE__ */ jsx(FloatingChatComponents.Layout, {
188
190
  id,
@@ -14,9 +14,9 @@ const require_functions = require('../utils/functions.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");
18
17
  let classnames = require("classnames");
19
18
  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 { checkIfHideAgentName, getGroupableMessages } from "../utils/functions.j
13
13
  import { AgentMessage } from "./AgentMessage.js";
14
14
  import { MessageDivider } from "./MessageDivider.js";
15
15
  import { forwardRef } from "react";
16
- import { jsx, jsxs } from "react/jsx-runtime";
17
16
  import classNames from "classnames";
17
+ import { jsx, jsxs } from "react/jsx-runtime";
18
18
  import { MessageRole, MessageType } from "@envive-ai/react-hooks/application/models";
19
19
 
20
20
  //#region src/components/FloatingChat/components/ChatMessages.tsx
@@ -6,12 +6,12 @@ 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");
10
9
  let classnames = require("classnames");
11
10
  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
- const Layout = ({ id, className, style, testId, theme = require_theme.Theme.GLOBAL_CUSTOM, header, footer, welcomeMessage, chatMessages, answerSuggestions, scrollToBottomButton, disclaimer, isFloatingFooterLayout = false }) => {
14
+ const Layout = ({ id, className, style, testId, theme = require_theme.Theme.GLOBAL_CUSTOM, header, footer, welcomeMessage, chatMessages, answerSuggestions, scrollToBottomButton, disclaimer, isFloatingFooterLayout = false, debugBar }) => {
15
15
  const finalTheme = require_resolveTheme.resolveTheme(theme);
16
16
  const hasWelcomeMessage = (0, react.isValidElement)(welcomeMessage);
17
17
  const hasAnswerSuggestions = (0, react.isValidElement)(answerSuggestions);
@@ -53,6 +53,10 @@ const Layout = ({ id, className, style, testId, theme = require_theme.Theme.GLOB
53
53
  scrollToBottomButton && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
54
54
  className: (0, classnames.default)("envive-tw-absolute envive-tw-right-4 envive-tw-z-10 envive-tw-transition-all envive-tw-duration-300 envive-tw-ease-in-out", isFloatingFooterLayout ? "envive-tw-bottom-[80px]" : "envive-tw-bottom-[170px]"),
55
55
  children: scrollToBottomButton
56
+ }),
57
+ debugBar && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
58
+ className: "envive-debug-bar",
59
+ children: debugBar
56
60
  })
57
61
  ]
58
62
  })
@@ -5,11 +5,11 @@ 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 { jsx, jsxs } from "react/jsx-runtime";
9
8
  import classNames from "classnames";
9
+ import { jsx, jsxs } from "react/jsx-runtime";
10
10
 
11
11
  //#region src/components/FloatingChat/components/Layout.tsx
12
- const Layout = ({ id, className, style, testId, theme = Theme.GLOBAL_CUSTOM, header, footer, welcomeMessage, chatMessages, answerSuggestions, scrollToBottomButton, disclaimer, isFloatingFooterLayout = false }) => {
12
+ const Layout = ({ id, className, style, testId, theme = Theme.GLOBAL_CUSTOM, header, footer, welcomeMessage, chatMessages, answerSuggestions, scrollToBottomButton, disclaimer, isFloatingFooterLayout = false, debugBar }) => {
13
13
  const finalTheme = resolveTheme(theme);
14
14
  const hasWelcomeMessage = isValidElement(welcomeMessage);
15
15
  const hasAnswerSuggestions = isValidElement(answerSuggestions);
@@ -51,6 +51,10 @@ const Layout = ({ id, className, style, testId, theme = Theme.GLOBAL_CUSTOM, hea
51
51
  scrollToBottomButton && /* @__PURE__ */ jsx("div", {
52
52
  className: classNames("envive-tw-absolute envive-tw-right-4 envive-tw-z-10 envive-tw-transition-all envive-tw-duration-300 envive-tw-ease-in-out", isFloatingFooterLayout ? "envive-tw-bottom-[80px]" : "envive-tw-bottom-[170px]"),
53
53
  children: scrollToBottomButton
54
+ }),
55
+ debugBar && /* @__PURE__ */ jsx("div", {
56
+ className: "envive-debug-bar",
57
+ children: debugBar
54
58
  })
55
59
  ]
56
60
  })
@@ -24,6 +24,7 @@ const SalesAgentProductCardsCarousel = ({ products, theme, hideNavigation = fals
24
24
  numberOfReviews: product.numberOfReviews,
25
25
  image: product.image,
26
26
  url: product.url,
27
+ target: "_blank",
27
28
  theme: finalTheme
28
29
  }, product.id)),
29
30
  theme: finalTheme
@@ -23,6 +23,7 @@ const SalesAgentProductCardsCarousel = ({ products, theme, hideNavigation = fals
23
23
  numberOfReviews: product.numberOfReviews,
24
24
  image: product.image,
25
25
  url: product.url,
26
+ target: "_blank",
26
27
  theme: finalTheme
27
28
  }, product.id)),
28
29
  theme: finalTheme
@@ -63,6 +63,10 @@ interface FloatingChatProps {
63
63
  * Hardcopy content to display in the chat.
64
64
  */
65
65
  hardcopyContent: HardcopyResponse;
66
+ /**
67
+ * Debug bar to display in the chat.
68
+ */
69
+ debugBar?: React.ReactNode;
66
70
  }
67
71
  //#endregion
68
72
  export { FloatingChatProps };
@@ -63,6 +63,10 @@ interface FloatingChatProps {
63
63
  * Hardcopy content to display in the chat.
64
64
  */
65
65
  hardcopyContent: HardcopyResponse;
66
+ /**
67
+ * Debug bar to display in the chat.
68
+ */
69
+ debugBar?: React.ReactNode;
66
70
  }
67
71
  //#endregion
68
72
  export { FloatingChatProps };
@@ -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");
9
8
  let classnames = require("classnames");
10
9
  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 { jsx } from "react/jsx-runtime";
8
7
  import classNames from "classnames";
8
+ import { jsx } from "react/jsx-runtime";
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");
5
4
  let classnames = require("classnames");
6
5
  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 { jsx, jsxs } from "react/jsx-runtime";
4
3
  import classNames from "classnames";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
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");
4
3
  let classnames = require("classnames");
5
4
  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 }) => {
@@ -1,6 +1,6 @@
1
1
  import { useGetButtonProperties } from "../hooks/useGetButtonProperties.js";
2
- import { jsx } from "react/jsx-runtime";
3
2
  import classNames from "classnames";
3
+ import { jsx } from "react/jsx-runtime";
4
4
 
5
5
  //#region src/components/Form/components/SubmitButtonItem.tsx
6
6
  const SubmitButtonItem = ({ label, isDisabled = false, ariaLabel, id, testId, className, style }) => {
@@ -1,8 +1,8 @@
1
1
  const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
2
2
  const require_useGetTextFieldProperties = require('../hooks/useGetTextFieldProperties.cjs');
3
- let react_jsx_runtime = require("react/jsx-runtime");
4
3
  let classnames = require("classnames");
5
4
  classnames = require_rolldown_runtime.__toESM(classnames);
5
+ let react_jsx_runtime = require("react/jsx-runtime");
6
6
 
7
7
  //#region src/components/Form/components/TextFieldItem.tsx
8
8
  const TextFieldItem = ({ label, value, onChange, type, error, ariaLabel, id, testId, className, style }) => {
@@ -1,6 +1,6 @@
1
1
  import { useGetTextFieldProperties } from "../hooks/useGetTextFieldProperties.js";
2
- import { jsx, jsxs } from "react/jsx-runtime";
3
2
  import classNames from "classnames";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
4
 
5
5
  //#region src/components/Form/components/TextFieldItem.tsx
6
6
  const TextFieldItem = ({ label, value, onChange, type, error, ariaLabel, id, testId, className, style }) => {
@@ -0,0 +1,132 @@
1
+ const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
2
+ const require_theme = require('../packages/components-v3/tokens/theme/theme.cjs');
3
+ const require_resolveTheme = require('../utils/resolveTheme.cjs');
4
+ require('../Tokens/index.cjs');
5
+ const require_PromptButton_types_index = require('../PromptButton/types/index.cjs');
6
+ require('../PromptButton/index.cjs');
7
+ const require_PromptCarousel_types_types = require('../PromptCarousel/types/types.cjs');
8
+ const require_PromptCarousel = require('../PromptCarousel/PromptCarousel.cjs');
9
+ require('../PromptCarousel/index.cjs');
10
+ const require_ChatFooter = require('../ChatFooter/ChatFooter.cjs');
11
+ require('../ChatFooter/index.cjs');
12
+ const require_Disclaimer = require('../Disclaimer/Disclaimer.cjs');
13
+ require('../Disclaimer/index.cjs');
14
+ const require_index = require('../FloatingChat/components/index.cjs');
15
+ const require_useScrollToBottom = require('../FloatingChat/hooks/useScrollToBottom.cjs');
16
+ const require_useChatSuggestions = require('../FloatingChat/hooks/useChatSuggestions.cjs');
17
+ const require_WelcomeMessage = require('../WelcomeMessage/WelcomeMessage.cjs');
18
+ require('../WelcomeMessage/index.cjs');
19
+ const require_useIsMobile = require('./hooks/useIsMobile.cjs');
20
+ const require_useGetFooterStyles = require('./hooks/useGetFooterStyles.cjs');
21
+ const require_index$1 = require('./components/index.cjs');
22
+ let react = require("react");
23
+ let react_jsx_runtime = require("react/jsx-runtime");
24
+ let __envive_ai_react_hooks_application_models = require("@envive-ai/react-hooks/application/models");
25
+ let __envive_ai_react_hooks_contexts_salesAgentContext = require("@envive-ai/react-hooks/contexts/salesAgentContext");
26
+
27
+ //#region src/components/FullPageSalesAgent/FullPageSalesAgent.tsx
28
+ const FullPageSalesAgent = ({ theme = require_theme.Theme.GLOBAL_CUSTOM, floatingChatConfig, lookAndFeelConfig, hardcopyContent, headerContainer, autoHeight }) => {
29
+ const resolvedTheme = require_resolveTheme.resolveTheme(theme);
30
+ const salesAgentData = (0, __envive_ai_react_hooks_contexts_salesAgentContext.useSalesAgent)();
31
+ const [query, setQuery] = (0, react.useState)("");
32
+ const chatMessagesRef = (0, react.useRef)(null);
33
+ const { footerStyles } = require_useGetFooterStyles.useGetFooterStyles();
34
+ const { isMobile } = require_useIsMobile.useIsMobile();
35
+ const { welcomeMessageIconColor, ignoreFirstModelResponse, neverShowSingleProductCards, showVerifiedBuyer, showEnviveLogo, userQueryInputEnabled = true } = floatingChatConfig;
36
+ const { agentName } = lookAndFeelConfig;
37
+ const { welcomeMessageTitle, welcomeMessageText, chatFooterTextFieldPlaceholderText, disclaimerText } = hardcopyContent?.values ?? {};
38
+ const { messages, isResponseStreaming, isPendingResponse, suggestions, onSuggestionClicked, onTypedMessageSubmitted, onFormResponseSubmitted } = salesAgentData;
39
+ const { answerSuggestions, generalSuggestions, showAnswerSuggestions, setAnswerSuggestions, setGeneralSuggestions } = require_useChatSuggestions.useChatSuggestions({
40
+ suggestions,
41
+ isPendingResponse,
42
+ isResponseStreaming
43
+ });
44
+ const { showScrollButton, scrollToBottom, isFloatingLayout } = require_useScrollToBottom.useScrollToBottom({
45
+ messagesRef: chatMessagesRef,
46
+ scrollThreshold: 100,
47
+ footerHeight: 160,
48
+ autoScrollDependencies: [
49
+ messages,
50
+ isPendingResponse,
51
+ suggestions,
52
+ answerSuggestions,
53
+ generalSuggestions
54
+ ]
55
+ });
56
+ const welcomeMessage = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_WelcomeMessage.WelcomeMessage, {
57
+ sparkleIconColor: welcomeMessageIconColor,
58
+ title: welcomeMessageTitle,
59
+ text: welcomeMessageText,
60
+ theme: resolvedTheme
61
+ });
62
+ const footer = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ChatFooter.ChatFooter, {
63
+ className: "envive-tw-bg-background-light",
64
+ style: footerStyles,
65
+ theme: resolvedTheme,
66
+ isScrolled: isMobile ? isFloatingLayout : false,
67
+ disabled: isPendingResponse || isResponseStreaming,
68
+ disabledInput: !userQueryInputEnabled,
69
+ isLoadingPromptSuggestions: isPendingResponse || isResponseStreaming || generalSuggestions.length === 0,
70
+ hideEnviveWatermark: !showEnviveLogo,
71
+ textFieldPlaceholderText: chatFooterTextFieldPlaceholderText,
72
+ promptSuggestions: isPendingResponse || isResponseStreaming ? ["Loading suggestions 1...", "Loading suggestions 2..."] : generalSuggestions,
73
+ handleButtonClick: (buttonText) => {
74
+ const suggestion = suggestions.find((s) => s.content === buttonText && !s.isAnswer);
75
+ if (suggestion) onSuggestionClicked(suggestion, __envive_ai_react_hooks_application_models.ChatElementDisplayLocationV3.FLOATING_CHAT_PROMPT_BUTTON);
76
+ setAnswerSuggestions([]);
77
+ setGeneralSuggestions([]);
78
+ },
79
+ onChange: setQuery,
80
+ onSubmit: () => {
81
+ onTypedMessageSubmitted({
82
+ query,
83
+ userTyped: true,
84
+ displayLocation: __envive_ai_react_hooks_application_models.ChatElementDisplayLocationV3.FLOATING_CHAT_TEXT_INPUT
85
+ });
86
+ setAnswerSuggestions([]);
87
+ setGeneralSuggestions([]);
88
+ }
89
+ });
90
+ const chatMessages = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index.FloatingChatComponents.ChatMessages, {
91
+ theme: resolvedTheme,
92
+ ref: chatMessagesRef,
93
+ isLoading: isPendingResponse && !isResponseStreaming,
94
+ agentName,
95
+ messages,
96
+ hasFilteredMessages: false,
97
+ handlePreviousDiscussions: () => {},
98
+ isResponseStreaming,
99
+ ignoreFirstModelResponse,
100
+ neverShowSingleProductCards,
101
+ showVerifiedBuyer,
102
+ onFormResponseSubmitted
103
+ });
104
+ const answerSuggestionsComponent = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_PromptCarousel.PromptCarousel, {
105
+ className: "envive-tw-flex envive-tw-justify-end envive-tw-p-4 [&>div>div]:envive-tw-items-end",
106
+ theme: resolvedTheme,
107
+ promptButtonType: require_PromptButton_types_index.PromptButtonVariant.SUGGESTED_RESPONSE,
108
+ promptCarouselRows: require_PromptCarousel_types_types.PromptCarouselRows.ALWAYS_TWO,
109
+ promptButtonTexts: answerSuggestions,
110
+ handleButtonClick: (buttonText) => {
111
+ const suggestion = suggestions.find((s) => s.content === buttonText && s.isAnswer);
112
+ if (suggestion) onSuggestionClicked(suggestion, __envive_ai_react_hooks_application_models.ChatElementDisplayLocationV3.FLOATING_CHAT_PROMPT_BUTTON);
113
+ setAnswerSuggestions([]);
114
+ setGeneralSuggestions([]);
115
+ }
116
+ });
117
+ const disclaimer = disclaimerText && typeof disclaimerText === "string" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Disclaimer.Disclaimer, { disclaimerMarkdown: disclaimerText }) : void 0;
118
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index$1.FullPageSAComponents.Layout, {
119
+ theme: resolvedTheme,
120
+ welcomeMessage,
121
+ footer,
122
+ chatMessages,
123
+ answerSuggestions: showAnswerSuggestions ? answerSuggestionsComponent : void 0,
124
+ scrollToBottomButton: showScrollButton ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_index.FloatingChatComponents.ScrollToBottomButton, { onClick: scrollToBottom }) : void 0,
125
+ disclaimer,
126
+ headerContainer,
127
+ autoHeight
128
+ });
129
+ };
130
+
131
+ //#endregion
132
+ exports.FullPageSalesAgent = FullPageSalesAgent;
@@ -0,0 +1,24 @@
1
+ import { Theme } from "../tokens/theme/theme.cjs";
2
+ import * as react_jsx_runtime24 from "react/jsx-runtime";
3
+ import { FloatingChatConfig, LookAndFeelConfig } from "@envive-ai/react-hooks/contexts/typesV3";
4
+ import { HardcopyResponse } from "@envive-ai/react-hooks/contexts/hardcopyContext";
5
+
6
+ //#region src/components/FullPageSalesAgent/FullPageSalesAgent.d.ts
7
+ interface FullPageSalesAgentProps {
8
+ theme?: Theme;
9
+ floatingChatConfig: FloatingChatConfig;
10
+ lookAndFeelConfig: LookAndFeelConfig;
11
+ hardcopyContent: HardcopyResponse;
12
+ headerContainer?: string;
13
+ autoHeight?: boolean;
14
+ }
15
+ declare const FullPageSalesAgent: ({
16
+ theme,
17
+ floatingChatConfig,
18
+ lookAndFeelConfig,
19
+ hardcopyContent,
20
+ headerContainer,
21
+ autoHeight
22
+ }: FullPageSalesAgentProps) => react_jsx_runtime24.JSX.Element;
23
+ //#endregion
24
+ export { FullPageSalesAgent };
@@ -0,0 +1,24 @@
1
+ import { Theme } from "../packages/components-v3/tokens/theme/theme.js";
2
+ import * as react_jsx_runtime21 from "react/jsx-runtime";
3
+ import { FloatingChatConfig, LookAndFeelConfig } from "@envive-ai/react-hooks/contexts/typesV3";
4
+ import { HardcopyResponse } from "@envive-ai/react-hooks/contexts/hardcopyContext";
5
+
6
+ //#region src/components/FullPageSalesAgent/FullPageSalesAgent.d.ts
7
+ interface FullPageSalesAgentProps {
8
+ theme?: Theme;
9
+ floatingChatConfig: FloatingChatConfig;
10
+ lookAndFeelConfig: LookAndFeelConfig;
11
+ hardcopyContent: HardcopyResponse;
12
+ headerContainer?: string;
13
+ autoHeight?: boolean;
14
+ }
15
+ declare const FullPageSalesAgent: ({
16
+ theme,
17
+ floatingChatConfig,
18
+ lookAndFeelConfig,
19
+ hardcopyContent,
20
+ headerContainer,
21
+ autoHeight
22
+ }: FullPageSalesAgentProps) => react_jsx_runtime21.JSX.Element;
23
+ //#endregion
24
+ export { FullPageSalesAgent };
@@ -0,0 +1,131 @@
1
+ import { Theme } from "../packages/components-v3/tokens/theme/theme.js";
2
+ import { resolveTheme } from "../utils/resolveTheme.js";
3
+ import "../Tokens/index.js";
4
+ import { PromptButtonVariant } from "../PromptButton/types/index.js";
5
+ import "../PromptButton/index.js";
6
+ import { PromptCarouselRows } from "../PromptCarousel/types/types.js";
7
+ import { PromptCarousel } from "../PromptCarousel/PromptCarousel.js";
8
+ import "../PromptCarousel/index.js";
9
+ import { ChatFooter } from "../ChatFooter/ChatFooter.js";
10
+ import "../ChatFooter/index.js";
11
+ import { Disclaimer } from "../Disclaimer/Disclaimer.js";
12
+ import "../Disclaimer/index.js";
13
+ import { FloatingChatComponents } from "../FloatingChat/components/index.js";
14
+ import { useScrollToBottom } from "../FloatingChat/hooks/useScrollToBottom.js";
15
+ import { useChatSuggestions } from "../FloatingChat/hooks/useChatSuggestions.js";
16
+ import { WelcomeMessage } from "../WelcomeMessage/WelcomeMessage.js";
17
+ import "../WelcomeMessage/index.js";
18
+ import { useIsMobile } from "./hooks/useIsMobile.js";
19
+ import { useGetFooterStyles } from "./hooks/useGetFooterStyles.js";
20
+ import { FullPageSAComponents } from "./components/index.js";
21
+ import { useRef, useState } from "react";
22
+ import { jsx } from "react/jsx-runtime";
23
+ import { ChatElementDisplayLocationV3 } from "@envive-ai/react-hooks/application/models";
24
+ import { useSalesAgent } from "@envive-ai/react-hooks/contexts/salesAgentContext";
25
+
26
+ //#region src/components/FullPageSalesAgent/FullPageSalesAgent.tsx
27
+ const FullPageSalesAgent = ({ theme = Theme.GLOBAL_CUSTOM, floatingChatConfig, lookAndFeelConfig, hardcopyContent, headerContainer, autoHeight }) => {
28
+ const resolvedTheme = resolveTheme(theme);
29
+ const salesAgentData = useSalesAgent();
30
+ const [query, setQuery] = useState("");
31
+ const chatMessagesRef = useRef(null);
32
+ const { footerStyles } = useGetFooterStyles();
33
+ const { isMobile } = useIsMobile();
34
+ const { welcomeMessageIconColor, ignoreFirstModelResponse, neverShowSingleProductCards, showVerifiedBuyer, showEnviveLogo, userQueryInputEnabled = true } = floatingChatConfig;
35
+ const { agentName } = lookAndFeelConfig;
36
+ const { welcomeMessageTitle, welcomeMessageText, chatFooterTextFieldPlaceholderText, disclaimerText } = hardcopyContent?.values ?? {};
37
+ const { messages, isResponseStreaming, isPendingResponse, suggestions, onSuggestionClicked, onTypedMessageSubmitted, onFormResponseSubmitted } = salesAgentData;
38
+ const { answerSuggestions, generalSuggestions, showAnswerSuggestions, setAnswerSuggestions, setGeneralSuggestions } = useChatSuggestions({
39
+ suggestions,
40
+ isPendingResponse,
41
+ isResponseStreaming
42
+ });
43
+ const { showScrollButton, scrollToBottom, isFloatingLayout } = useScrollToBottom({
44
+ messagesRef: chatMessagesRef,
45
+ scrollThreshold: 100,
46
+ footerHeight: 160,
47
+ autoScrollDependencies: [
48
+ messages,
49
+ isPendingResponse,
50
+ suggestions,
51
+ answerSuggestions,
52
+ generalSuggestions
53
+ ]
54
+ });
55
+ const welcomeMessage = /* @__PURE__ */ jsx(WelcomeMessage, {
56
+ sparkleIconColor: welcomeMessageIconColor,
57
+ title: welcomeMessageTitle,
58
+ text: welcomeMessageText,
59
+ theme: resolvedTheme
60
+ });
61
+ const footer = /* @__PURE__ */ jsx(ChatFooter, {
62
+ className: "envive-tw-bg-background-light",
63
+ style: footerStyles,
64
+ theme: resolvedTheme,
65
+ isScrolled: isMobile ? isFloatingLayout : false,
66
+ disabled: isPendingResponse || isResponseStreaming,
67
+ disabledInput: !userQueryInputEnabled,
68
+ isLoadingPromptSuggestions: isPendingResponse || isResponseStreaming || generalSuggestions.length === 0,
69
+ hideEnviveWatermark: !showEnviveLogo,
70
+ textFieldPlaceholderText: chatFooterTextFieldPlaceholderText,
71
+ promptSuggestions: isPendingResponse || isResponseStreaming ? ["Loading suggestions 1...", "Loading suggestions 2..."] : generalSuggestions,
72
+ handleButtonClick: (buttonText) => {
73
+ const suggestion = suggestions.find((s) => s.content === buttonText && !s.isAnswer);
74
+ if (suggestion) onSuggestionClicked(suggestion, ChatElementDisplayLocationV3.FLOATING_CHAT_PROMPT_BUTTON);
75
+ setAnswerSuggestions([]);
76
+ setGeneralSuggestions([]);
77
+ },
78
+ onChange: setQuery,
79
+ onSubmit: () => {
80
+ onTypedMessageSubmitted({
81
+ query,
82
+ userTyped: true,
83
+ displayLocation: ChatElementDisplayLocationV3.FLOATING_CHAT_TEXT_INPUT
84
+ });
85
+ setAnswerSuggestions([]);
86
+ setGeneralSuggestions([]);
87
+ }
88
+ });
89
+ const chatMessages = /* @__PURE__ */ jsx(FloatingChatComponents.ChatMessages, {
90
+ theme: resolvedTheme,
91
+ ref: chatMessagesRef,
92
+ isLoading: isPendingResponse && !isResponseStreaming,
93
+ agentName,
94
+ messages,
95
+ hasFilteredMessages: false,
96
+ handlePreviousDiscussions: () => {},
97
+ isResponseStreaming,
98
+ ignoreFirstModelResponse,
99
+ neverShowSingleProductCards,
100
+ showVerifiedBuyer,
101
+ onFormResponseSubmitted
102
+ });
103
+ const answerSuggestionsComponent = /* @__PURE__ */ jsx(PromptCarousel, {
104
+ className: "envive-tw-flex envive-tw-justify-end envive-tw-p-4 [&>div>div]:envive-tw-items-end",
105
+ theme: resolvedTheme,
106
+ promptButtonType: PromptButtonVariant.SUGGESTED_RESPONSE,
107
+ promptCarouselRows: PromptCarouselRows.ALWAYS_TWO,
108
+ promptButtonTexts: answerSuggestions,
109
+ handleButtonClick: (buttonText) => {
110
+ const suggestion = suggestions.find((s) => s.content === buttonText && s.isAnswer);
111
+ if (suggestion) onSuggestionClicked(suggestion, ChatElementDisplayLocationV3.FLOATING_CHAT_PROMPT_BUTTON);
112
+ setAnswerSuggestions([]);
113
+ setGeneralSuggestions([]);
114
+ }
115
+ });
116
+ const disclaimer = disclaimerText && typeof disclaimerText === "string" ? /* @__PURE__ */ jsx(Disclaimer, { disclaimerMarkdown: disclaimerText }) : void 0;
117
+ return /* @__PURE__ */ jsx(FullPageSAComponents.Layout, {
118
+ theme: resolvedTheme,
119
+ welcomeMessage,
120
+ footer,
121
+ chatMessages,
122
+ answerSuggestions: showAnswerSuggestions ? answerSuggestionsComponent : void 0,
123
+ scrollToBottomButton: showScrollButton ? /* @__PURE__ */ jsx(FloatingChatComponents.ScrollToBottomButton, { onClick: scrollToBottom }) : void 0,
124
+ disclaimer,
125
+ headerContainer,
126
+ autoHeight
127
+ });
128
+ };
129
+
130
+ //#endregion
131
+ export { FullPageSalesAgent };
@@ -0,0 +1,53 @@
1
+ const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
2
+ const require_theme = require('../../packages/components-v3/tokens/theme/theme.cjs');
3
+ const require_Stack = require('../../Stack/Stack.cjs');
4
+ require('../../Stack/index.cjs');
5
+ const require_useGetContainerStyles = require('../hooks/useGetContainerStyles.cjs');
6
+ const require_useGetFooterStyles = require('../hooks/useGetFooterStyles.cjs');
7
+ const require_useGetScrollContentStyles = require('../hooks/useGetScrollContentStyles.cjs');
8
+ let react = require("react");
9
+ let classnames = require("classnames");
10
+ classnames = require_rolldown_runtime.__toESM(classnames);
11
+ let react_jsx_runtime = require("react/jsx-runtime");
12
+
13
+ //#region src/components/FullPageSalesAgent/components/Layout.tsx
14
+ const Layout = ({ theme, welcomeMessage, footer, chatMessages, answerSuggestions, scrollToBottomButton, disclaimer, headerContainer, autoHeight }) => {
15
+ const hasWelcomeMessage = (0, react.isValidElement)(welcomeMessage);
16
+ const hasAnswerSuggestions = (0, react.isValidElement)(answerSuggestions);
17
+ const { contentClasses, messageContainerClasses } = require_useGetScrollContentStyles.useGetScrollContentStyles();
18
+ const { footerContainerClasses } = require_useGetFooterStyles.useGetFooterStyles();
19
+ const { containerClasses, containerStyles } = require_useGetContainerStyles.useGetContainerStyles({
20
+ headerContainer,
21
+ autoHeight
22
+ });
23
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
24
+ className: containerClasses,
25
+ style: containerStyles,
26
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
27
+ className: contentClasses,
28
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_Stack.Stack, {
29
+ className: messageContainerClasses,
30
+ direction: "column",
31
+ justify: "between",
32
+ children: [welcomeMessage, disclaimer]
33
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_Stack.Stack, {
34
+ direction: "column",
35
+ gap: "0",
36
+ className: (0, classnames.default)((!hasWelcomeMessage || hasWelcomeMessage && theme === require_theme.Theme.STANDARD) && !hasAnswerSuggestions && "envive-tw-pb-4", "envive-tw-pt-4"),
37
+ children: [chatMessages, answerSuggestions]
38
+ })]
39
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
40
+ className: footerContainerClasses,
41
+ children: [scrollToBottomButton && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
42
+ className: "envive-tw-h-[0px]",
43
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
44
+ className: "envive-tw-ml-auto envive-tw-table envive-tw-translate-x-[-30px] envive-tw-translate-y-[-50px]",
45
+ children: scrollToBottomButton
46
+ })
47
+ }), footer]
48
+ })]
49
+ });
50
+ };
51
+
52
+ //#endregion
53
+ exports.Layout = Layout;