@envive-ai/react-widgets-v3 0.3.10 → 0.3.11

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 (232) hide show
  1. package/dist/_virtual/rolldown_runtime.cjs +2 -0
  2. package/dist/debug/GenericSelect.cjs +167 -0
  3. package/dist/debug/GenericSelect.js +165 -0
  4. package/dist/debug/MessageContent.cjs +151 -0
  5. package/dist/debug/MessageContent.js +149 -0
  6. package/dist/debug/chatEmbed.cjs +95 -0
  7. package/dist/debug/chatEmbed.js +92 -0
  8. package/dist/debug/debugBar.cjs +18 -0
  9. package/dist/debug/debugBar.js +17 -0
  10. package/dist/debug/reportIssue.cjs +528 -0
  11. package/dist/debug/reportIssue.js +524 -0
  12. package/dist/hocs/withBaseWidget/withBaseWidget.d.cts +2 -2
  13. package/dist/hocs/withBaseWidget/withBaseWidget.d.ts +2 -2
  14. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/apis/CustomerServiceApi.cjs +265 -0
  15. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/apis/DefaultApi.cjs +591 -0
  16. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/apis/InferenceApi.cjs +265 -0
  17. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/apis/ProductsApi.cjs +105 -0
  18. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/apis/SearchApi.cjs +229 -0
  19. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/apis/index.cjs +43 -0
  20. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/index.cjs +39 -0
  21. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/AddNoteToLatestConversationRequest.cjs +68 -0
  22. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/AddNoteToLatestConversationResponse.cjs +60 -0
  23. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/AddToCartAttributes.cjs +53 -0
  24. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/AnalyticsIdentifyRequest.cjs +86 -0
  25. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/AnalyticsTrackEventRequest.cjs +62 -0
  26. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/AttachmentRequest.cjs +63 -0
  27. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/AutoForm.cjs +55 -0
  28. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/Context.cjs +89 -0
  29. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/ConversationStatus.cjs +63 -0
  30. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/CreateConversationRequest.cjs +68 -0
  31. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/CreateConversationResponse.cjs +64 -0
  32. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/CustServiceAttachment.cjs +68 -0
  33. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/CustServiceConversation.cjs +69 -0
  34. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/CustServiceConversationMessages.cjs +67 -0
  35. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/CustServiceCustomer.cjs +60 -0
  36. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/CustServiceMessage.cjs +85 -0
  37. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/CustomerServiceProvider.cjs +63 -0
  38. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/FormResponseAttributes.cjs +61 -0
  39. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/FormResponseAttributesFormCategory.cjs +55 -0
  40. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/FormSubmittedAttributes.cjs +65 -0
  41. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/FormType.cjs +61 -0
  42. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/FulfillmentDisplayStatus.cjs +84 -0
  43. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/GenerationParams.cjs +74 -0
  44. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/GetConversationMessagesRequest.cjs +61 -0
  45. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/IsBusinessHoursRequest.cjs +54 -0
  46. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/IsBusinessHoursResponse.cjs +59 -0
  47. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/LabelValue.cjs +60 -0
  48. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/ManualForm.cjs +55 -0
  49. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/MerchRule.cjs +70 -0
  50. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/MerchRuleAction.cjs +62 -0
  51. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/MerchRuleActionAttribute.cjs +58 -0
  52. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/MerchRuleActionType.cjs +64 -0
  53. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/MerchRuleCondition.cjs +60 -0
  54. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/MerchRuleOp.cjs +61 -0
  55. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/MerchRuleStatus.cjs +62 -0
  56. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/NextMessageRequest.cjs +78 -0
  57. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/OrderItemInfo.cjs +78 -0
  58. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/OrderResponseAttributes.cjs +71 -0
  59. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/Organization.cjs +83 -0
  60. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/OrganizationConfig.cjs +82 -0
  61. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/OrganizationConfigResults.cjs +70 -0
  62. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/OrganizationSettings.cjs +62 -0
  63. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/PDPAttributes.cjs +61 -0
  64. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/PLPAttributeCategory.cjs +61 -0
  65. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/PLPAttributes.cjs +64 -0
  66. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/PLPAttributesAttributes.cjs +55 -0
  67. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/PLPIdAttributes.cjs +53 -0
  68. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/PLPUrlAttributes.cjs +53 -0
  69. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/PageVisitAttributes.cjs +62 -0
  70. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/PageVisitCategory.cjs +65 -0
  71. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/ProductRetrievalRequest.cjs +62 -0
  72. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/ProductRetrievalResponse.cjs +55 -0
  73. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/ProductSearchFilterResponseAttributes.cjs +53 -0
  74. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/ProductSearchRequest.cjs +71 -0
  75. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/ProductSearchResponse.cjs +64 -0
  76. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/ProductSearchResponseAttributes.cjs +60 -0
  77. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/ProductSearchResponseV2.cjs +64 -0
  78. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/QueryTypedAttributes.cjs +53 -0
  79. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/ReportContent.cjs +59 -0
  80. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/ReportSessionRequest.cjs +99 -0
  81. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/Response.cjs +68 -0
  82. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/ResponseCategory.cjs +69 -0
  83. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/ResponseProductAttributes.cjs +91 -0
  84. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/SearchAttributes.cjs +65 -0
  85. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/SearchResponseProduct.cjs +93 -0
  86. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/SearchSuggestionsResponse.cjs +58 -0
  87. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/SendMessageRequest.cjs +71 -0
  88. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/SendMessageResponse.cjs +55 -0
  89. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/StatsigExperiment.cjs +64 -0
  90. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/StatsigFeatureGate.cjs +62 -0
  91. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/Suggestion.cjs +70 -0
  92. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/SuggestionCategory.cjs +62 -0
  93. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/SuggestionClickedAttributes.cjs +53 -0
  94. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/SupportedEventProductCategory.cjs +62 -0
  95. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/SupportedEventRequest.cjs +67 -0
  96. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/SupportedEventResponse.cjs +78 -0
  97. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/TurnInfo.cjs +70 -0
  98. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/TurnInfoPrevUserEvent.cjs +60 -0
  99. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/UrlResolvingGenericConfig.cjs +52 -0
  100. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/UrlResolvingPDPConfig.cjs +65 -0
  101. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/UrlResolvingPLPConfig.cjs +61 -0
  102. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/UrlResolvingRequest.cjs +65 -0
  103. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/UrlResolvingResponse.cjs +73 -0
  104. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/UrlResolvingResponseSpecificDetails.cjs +59 -0
  105. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/UrlResolvingType.cjs +67 -0
  106. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/UserEvent.cjs +69 -0
  107. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/UserEventAttributes.cjs +75 -0
  108. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/UserEventCategory.cjs +70 -0
  109. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/V1GetSessionMessages200Response.cjs +67 -0
  110. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/V1SearchExplainGet200Response.cjs +63 -0
  111. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/WidgetString.cjs +60 -0
  112. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/WidgetTextRequest.cjs +73 -0
  113. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/WidgetTextResponse.cjs +66 -0
  114. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/WidgetType.cjs +69 -0
  115. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/models/index.cjs +221 -0
  116. package/dist/node_modules/@spiffy-ai/commerce-api-client/dist/runtime.cjs +324 -0
  117. package/dist/node_modules/react-icons/fa/index.cjs +65 -0
  118. package/dist/node_modules/react-icons/fa/index.js +61 -0
  119. package/dist/node_modules/react-icons/lib/iconBase.cjs +121 -0
  120. package/dist/node_modules/react-icons/lib/iconBase.js +119 -0
  121. package/dist/node_modules/react-icons/lib/iconContext.cjs +17 -0
  122. package/dist/node_modules/react-icons/lib/iconContext.js +14 -0
  123. package/dist/packages/icons/dist/IconCloseVariant.cjs +22 -0
  124. package/dist/packages/icons/dist/IconCloseVariant.js +22 -0
  125. package/dist/packages/icons/dist/_virtual/rolldown_runtime.cjs +27 -0
  126. package/dist/packages/icons/dist/_virtual/rolldown_runtime.js +25 -0
  127. package/dist/packages/icons/dist/node_modules/react/cjs/react-jsx-runtime.development.cjs +696 -0
  128. package/dist/packages/icons/dist/node_modules/react/cjs/react-jsx-runtime.development.js +696 -0
  129. package/dist/packages/icons/dist/node_modules/react/cjs/react-jsx-runtime.production.min.cjs +43 -0
  130. package/dist/packages/icons/dist/node_modules/react/cjs/react-jsx-runtime.production.min.js +43 -0
  131. package/dist/packages/icons/dist/node_modules/react/cjs/react.development.cjs +1528 -0
  132. package/dist/packages/icons/dist/node_modules/react/cjs/react.development.js +1528 -0
  133. package/dist/packages/icons/dist/node_modules/react/cjs/react.production.min.cjs +329 -0
  134. package/dist/packages/icons/dist/node_modules/react/cjs/react.production.min.js +329 -0
  135. package/dist/packages/icons/dist/node_modules/react/index.cjs +13 -0
  136. package/dist/packages/icons/dist/node_modules/react/index.js +13 -0
  137. package/dist/packages/icons/dist/node_modules/react/jsx-runtime.cjs +13 -0
  138. package/dist/packages/icons/dist/node_modules/react/jsx-runtime.js +13 -0
  139. package/dist/{widgets → packages/widgets}/dist/SearchResults/SearchResultsWidget.d.ts +2 -2
  140. package/dist/{widgets → packages/widgets}/dist/SearchZeroState/SearchZeroStateWidget.d.ts +2 -2
  141. package/dist/{widgets → packages/widgets}/dist/SuggestionBar/SuggestionBar.d.ts +2 -2
  142. package/dist/widgets/ChatPreviewComparisonWidget/ChatPreviewComparisonWidget.cjs +3 -3
  143. package/dist/widgets/ChatPreviewComparisonWidget/ChatPreviewComparisonWidget.d.cts +3 -3
  144. package/dist/widgets/ChatPreviewComparisonWidget/ChatPreviewComparisonWidget.js +3 -3
  145. package/dist/widgets/ChatPreviewLoadingWidget/ChatPreviewLoadingWidget.d.cts +3 -3
  146. package/dist/widgets/ChatPreviewLoadingWidget/ChatPreviewLoadingWidget.d.ts +3 -3
  147. package/dist/widgets/ChatPreviewWidget/ChatPreviewWidget.cjs +3 -3
  148. package/dist/widgets/ChatPreviewWidget/ChatPreviewWidget.d.cts +3 -3
  149. package/dist/widgets/ChatPreviewWidget/ChatPreviewWidget.d.ts +3 -3
  150. package/dist/widgets/ChatPreviewWidget/ChatPreviewWidget.js +3 -3
  151. package/dist/widgets/FloatingChatWidget/FloatingChatOverlay.cjs +2 -2
  152. package/dist/widgets/FloatingChatWidget/FloatingChatOverlay.js +1 -1
  153. package/dist/widgets/FloatingChatWidget/FloatingChatWidget.cjs +3 -1
  154. package/dist/widgets/FloatingChatWidget/FloatingChatWidget.d.cts +2 -2
  155. package/dist/widgets/FloatingChatWidget/FloatingChatWidget.d.ts +2 -2
  156. package/dist/widgets/FloatingChatWidget/FloatingChatWidget.js +3 -1
  157. package/dist/widgets/FloatingChatWidget/hooks/useFloatingButtonVisibility.cjs +4 -1
  158. package/dist/widgets/FloatingChatWidget/hooks/useFloatingButtonVisibility.js +5 -2
  159. package/dist/widgets/FullPageSalesAgentWidget/FullPageSalesAgentWidget.cjs +31 -0
  160. package/dist/widgets/FullPageSalesAgentWidget/FullPageSalesAgentWidget.d.cts +15 -0
  161. package/dist/widgets/FullPageSalesAgentWidget/FullPageSalesAgentWidget.d.ts +15 -0
  162. package/dist/widgets/FullPageSalesAgentWidget/FullPageSalesAgentWidget.js +30 -0
  163. package/dist/widgets/FullPageSalesAgentWidget/index.cjs +3 -0
  164. package/dist/widgets/FullPageSalesAgentWidget/index.d.cts +2 -0
  165. package/dist/widgets/FullPageSalesAgentWidget/index.d.ts +2 -0
  166. package/dist/widgets/FullPageSalesAgentWidget/index.js +3 -0
  167. package/dist/widgets/ProductCardWidget/ProductCardWidget.cjs +3 -2
  168. package/dist/widgets/ProductCardWidget/ProductCardWidget.d.cts +2 -2
  169. package/dist/widgets/ProductCardWidget/ProductCardWidget.d.ts +2 -2
  170. package/dist/widgets/ProductCardWidget/ProductCardWidget.js +3 -2
  171. package/dist/widgets/PromptButtonCarouselWithImageWidget/PromptButtonCarouselWithImageWidget.cjs +4 -3
  172. package/dist/widgets/PromptButtonCarouselWithImageWidget/PromptButtonCarouselWithImageWidget.d.cts +3 -3
  173. package/dist/widgets/PromptButtonCarouselWithImageWidget/PromptButtonCarouselWithImageWidget.d.ts +3 -3
  174. package/dist/widgets/PromptButtonCarouselWithImageWidget/PromptButtonCarouselWithImageWidget.js +4 -3
  175. package/dist/widgets/PromptCarouselWidget/PromptCarouselWidget.cjs +28 -4
  176. package/dist/widgets/PromptCarouselWidget/PromptCarouselWidget.d.cts +2 -2
  177. package/dist/widgets/PromptCarouselWidget/PromptCarouselWidget.js +29 -5
  178. package/dist/widgets/SocialProofFlowWidget/SocialProofFlowWidget.d.cts +2 -2
  179. package/dist/widgets/SocialProofFlowWidget/SocialProofFlowWidget.d.ts +2 -2
  180. package/dist/widgets/SocialProofWidget/SocialProofWidget.cjs +8 -6
  181. package/dist/widgets/SocialProofWidget/SocialProofWidget.d.cts +3 -3
  182. package/dist/widgets/SocialProofWidget/SocialProofWidget.d.ts +3 -3
  183. package/dist/widgets/SocialProofWidget/SocialProofWidget.js +8 -6
  184. package/dist/widgets/TitledPromptCarouselWidget/TitledPromptCarouselWidget.cjs +3 -2
  185. package/dist/widgets/TitledPromptCarouselWidget/TitledPromptCarouselWidget.d.cts +2 -2
  186. package/dist/widgets/TitledPromptCarouselWidget/TitledPromptCarouselWidget.d.ts +2 -2
  187. package/dist/widgets/TitledPromptCarouselWidget/TitledPromptCarouselWidget.js +3 -2
  188. package/dist/widgets/TypingAnimationFlowWidget/TypingAnimationFlowWidget.d.cts +2 -2
  189. package/dist/widgets/TypingAnimationWidget/TypingAnimationWidget.cjs +3 -2
  190. package/dist/widgets/TypingAnimationWidget/TypingAnimationWidget.d.cts +3 -3
  191. package/dist/widgets/TypingAnimationWidget/TypingAnimationWidget.d.ts +3 -3
  192. package/dist/widgets/TypingAnimationWidget/TypingAnimationWidget.js +3 -2
  193. package/dist/widgets/dist/SearchResults/SearchResultsWidget.d.cts +2 -2
  194. package/dist/widgets/dist/SearchZeroState/SearchZeroStateWidget.d.cts +2 -2
  195. package/dist/widgets/dist/SuggestionBar/SuggestionBar.d.cts +2 -2
  196. package/dist/widgets/utils/functions.cjs +1 -1
  197. package/dist/widgets/utils/functions.js +1 -1
  198. package/dist/widgets-v2/SearchResults/index.d.ts +3 -3
  199. package/dist/widgets-v2/SearchZeroState/index.d.ts +4 -4
  200. package/dist/widgets-v2/SuggestionBar/index.d.ts +3 -3
  201. package/dist/widgets-v2/SuggestionButtonContainer/index.d.ts +2 -2
  202. package/package.json +5 -1
  203. package/src/debug/GenericSelect.tsx +236 -0
  204. package/src/debug/MessageContent.tsx +248 -0
  205. package/src/debug/chatEmbed.tsx +119 -0
  206. package/src/debug/debugBar.tsx +13 -0
  207. package/src/debug/reportIssue.tsx +649 -0
  208. package/src/hocs/withBaseWidget/__tests__/withBaseWidget.test.tsx +6 -0
  209. package/src/stories/FullPageSalesAgentWidget.stories.tsx +68 -0
  210. package/src/stories/SalesAgentTest/SalesAgentTest.tsx +10 -2
  211. package/src/widgets/FloatingChatWidget/FloatingChatWidget.tsx +2 -0
  212. package/src/widgets/FloatingChatWidget/hooks/useFloatingButtonVisibility.ts +11 -5
  213. package/src/widgets/FullPageSalesAgentWidget/FullPageSalesAgentWidget.tsx +46 -0
  214. package/src/widgets/FullPageSalesAgentWidget/index.ts +1 -0
  215. package/src/widgets/ProductCardWidget/ProductCardWidget.tsx +5 -1
  216. package/src/widgets/PromptButtonCarouselWithImageWidget/PromptButtonCarouselWithImageWidget.tsx +6 -1
  217. package/src/widgets/PromptCarouselWidget/PromptCarouselWidget.tsx +31 -2
  218. package/src/widgets/SocialProofWidget/SocialProofWidget.tsx +10 -2
  219. package/src/widgets/TitledPromptCarouselWidget/TitledPromptCarouselWidget.tsx +5 -1
  220. package/src/widgets/TypingAnimationWidget/TypingAnimationWidget.tsx +5 -1
  221. /package/dist/{widgets → packages/widgets}/dist/SearchResults/SearchResults.d.ts +0 -0
  222. /package/dist/{widgets → packages/widgets}/dist/SearchResults/index.d.ts +0 -0
  223. /package/dist/{widgets → packages/widgets}/dist/SearchResults/types.d.ts +0 -0
  224. /package/dist/{widgets → packages/widgets}/dist/SearchZeroState/SearchZeroState.d.ts +0 -0
  225. /package/dist/{widgets → packages/widgets}/dist/SearchZeroState/index.d.ts +0 -0
  226. /package/dist/{widgets → packages/widgets}/dist/SearchZeroState/types.d.ts +0 -0
  227. /package/dist/{widgets → packages/widgets}/dist/SuggestionBar/index.d.ts +0 -0
  228. /package/dist/{widgets → packages/widgets}/dist/SuggestionBar/types.d.ts +0 -0
  229. /package/dist/{widgets → packages/widgets}/dist/SuggestionButtonContainer/SuggestionButtonContainer.d.ts +0 -0
  230. /package/dist/{widgets → packages/widgets}/dist/SuggestionButtonContainer/types.d.ts +0 -0
  231. /package/dist/{widgets → packages/widgets}/dist/config/BaseWidgetConfig.d.ts +0 -0
  232. /package/dist/{widgets → packages/widgets}/dist/config/WidgetType.d.ts +0 -0
@@ -0,0 +1,524 @@
1
+ import { IconCloseVariant_default } from "../packages/icons/dist/IconCloseVariant.js";
2
+ import { GenericSelect } from "./GenericSelect.js";
3
+ import chatEmbed_default from "./chatEmbed.js";
4
+ import { useCallback, useEffect, useState } from "react";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ import { useAtomValue } from "jotai";
7
+ import { chatAtom, lastAssistantMessageAtom } from "@envive-ai/react-hooks/atoms/chat";
8
+ import { MessageType } from "@envive-ai/react-hooks/application/models";
9
+ import { userIdAtom } from "@envive-ai/react-hooks/atoms/app";
10
+ import { ReportSessionRequestReportPriorityEnum, ReportSessionRequestReportTypeEnum } from "@spiffy-ai/commerce-api-client";
11
+ import classNames from "classnames";
12
+ import CommerceApiClient from "@envive-ai/react-hooks/application/commerce-api";
13
+ import { orgShortNameAtom } from "@envive-ai/react-hooks/atoms/envive/enviveConfig";
14
+ import { StringUtils, validateEmail } from "@envive-ai/react-hooks/application/utils";
15
+
16
+ //#region src/debug/reportIssue.tsx
17
+ const messageContent = (m) => {
18
+ if (m.type === MessageType.Text) return m.metadata.content;
19
+ if (m.type === MessageType.Product) return `PRODUCT ID: ${m.metadata?.id}`;
20
+ if (m.type === MessageType.Review) return `REVIEW: by ${m.metadata?.reviewer}`;
21
+ if (m.type === MessageType.Page) return `PAGE: ${m.metadata?.url}`;
22
+ if (m.type === MessageType.Separator) return `SEPARATOR`;
23
+ if (m.type === MessageType.QueryTyped) return `QUERY TYPED: ${m.metadata?.content}`;
24
+ if (m.type === MessageType.SuggestionClicked) return `SUGGESTION CLICKED`;
25
+ if (m.type === MessageType.Search) return `SEARCH: ${m.metadata?.searchTerm}`;
26
+ if (m.type === MessageType.ProductSearch) return `PRODUCT SEARCH: ${m.metadata?.generatedQuery} (${m.metadata?.productCount} products)`;
27
+ if (m.type === MessageType.ProductSearchFilter) return `PRODUCT SEARCH FILTER: ${m.metadata?.filterName}`;
28
+ if (m.type === MessageType.Form) return `FORM: ${m.metadata?.formType}`;
29
+ if (m.type === MessageType.Order) return `ORDER: ${m.metadata?.orderId}`;
30
+ throw new Error(`Unsupported message type: ${m.type}`);
31
+ };
32
+ const ReportHeader = ({ onClose }) => {
33
+ const userId = useAtomValue(userIdAtom);
34
+ const handleCopyClick = useCallback(async () => {
35
+ try {
36
+ await navigator.clipboard.writeText(userId);
37
+ } catch (err) {
38
+ console.error("Failed to copy to clipboard:", err);
39
+ }
40
+ }, [userId]);
41
+ const headerTitleClassnames = classNames({
42
+ "envive-tw-text-[24px]": true,
43
+ "md:envive-tw-text-[30px]": true,
44
+ "envive-tw-mb-[12px]": true,
45
+ "envive-tw-color-[#161844]": true,
46
+ "envive-tw-leading-[1.33]": true,
47
+ "md:envive-tw-leading-[1.2]": true,
48
+ "envive-tw-font-bold": true
49
+ });
50
+ const headerLinkClassnames = classNames({
51
+ "envive-tw-underline": true,
52
+ "envive-tw-text-[#3C57AA]": true,
53
+ "hover:envive-tw-text-[#3C57AA]": true
54
+ });
55
+ const headerDescriptionClassnames = classNames({
56
+ "envive-tw-text-[16px]": true,
57
+ "envive-tw-text-normal": true,
58
+ "envive-tw-font-medium": true,
59
+ "envive-tw-max-w-[70ch]": true,
60
+ "envive-tw-text-[#161844]": true
61
+ });
62
+ const userIdClassnames = classNames({
63
+ "envive-tw-text-xs": true,
64
+ "envive-tw-text-gray-500": true,
65
+ "envive-tw-font-semibold": true
66
+ });
67
+ return /* @__PURE__ */ jsxs("div", {
68
+ className: "envive-tw-pb-0 envive-tw-mb-[24px] envive-tw-flex envive-tw-w-full envive-tw-flex-row envive-tw-items-start envive-tw-justify-between envive-tw-gap-3 envive-tw-px-[24px] envive-tw-pt-[24px]",
69
+ children: [/* @__PURE__ */ jsx("div", {
70
+ className: "envive-tw-flex envive-tw-w-full envive-tw-flex-col envive-tw-items-stretch envive-tw-gap-3",
71
+ children: /* @__PURE__ */ jsxs("div", {
72
+ className: "envive-tw-flex envive-tw-flex-row envive-tw-items-start envive-tw-justify-between envive-tw-gap-3",
73
+ children: [/* @__PURE__ */ jsxs("div", {
74
+ className: "envive-tw-max-w-[100%]",
75
+ children: [/* @__PURE__ */ jsx("h2", {
76
+ className: headerTitleClassnames,
77
+ children: "Give us feedback on this message"
78
+ }), /* @__PURE__ */ jsxs("p", {
79
+ className: headerDescriptionClassnames,
80
+ children: [
81
+ "For UI bugs and Feature Ideas, please use",
82
+ " ",
83
+ /* @__PURE__ */ jsx("a", {
84
+ href: "https://spiffy-ai.notion.site/19fe47c0828780b1a6cfd0ac4373cebe",
85
+ target: "_blank",
86
+ rel: "noopener noreferrer",
87
+ className: headerLinkClassnames,
88
+ children: "this form"
89
+ }),
90
+ "."
91
+ ]
92
+ })]
93
+ }), /* @__PURE__ */ jsx("div", {
94
+ className: "envive-tw-flex envive-tw-flex-col envive-tw-items-end envive-tw-gap-3",
95
+ children: /* @__PURE__ */ jsxs("div", {
96
+ className: "envive-tw-flex envive-tw-flex-row envive-tw-items-center envive-tw-gap-2",
97
+ children: [/* @__PURE__ */ jsxs("p", {
98
+ className: userIdClassnames,
99
+ children: [
100
+ "User Id: ",
101
+ userId.slice(0, 4),
102
+ "..."
103
+ ]
104
+ }), /* @__PURE__ */ jsx("button", {
105
+ type: "button",
106
+ onClick: handleCopyClick,
107
+ "aria-label": "Copy chat ID",
108
+ className: "envive-tw-rounded-base envive-tw-border envive-tw-border-gray-300 envive-tw-px-2 envive-tw-py-0.5 envive-tw-text-xs envive-tw-font-bold hover:envive-tw-bg-gray-50",
109
+ children: "Copy"
110
+ })]
111
+ })
112
+ })]
113
+ })
114
+ }), /* @__PURE__ */ jsx("button", {
115
+ type: "button",
116
+ className: "envive-tw-p-0 envive-tw-h-[16px] envive-tw-w-[16px]",
117
+ onClick: onClose,
118
+ children: /* @__PURE__ */ jsx(IconCloseVariant_default, {})
119
+ })]
120
+ });
121
+ };
122
+ const ReportFormFields = ({ priority, setPriority, reportedBy, onReportedByChanging, reason, onDescriptionChanging, turnInfo, setTurnInfo, lastMessagesText, lastSuggestionsText }) => {
123
+ const requiredFieldClassnames = classNames({
124
+ "envive-tw-text-[#008000]": true,
125
+ "envive-tw-text-xs": true,
126
+ "envive-tw-font-normal": true,
127
+ "envive-tw-italic": true
128
+ });
129
+ return /* @__PURE__ */ jsxs("form", {
130
+ onSubmit: (e) => {
131
+ e.preventDefault();
132
+ },
133
+ className: "envive-tw-pt-0 envive-tw-flex envive-tw-flex-col envive-tw-gap-[24px] envive-tw-px-[24px] envive-tw-pb-[8px]",
134
+ children: [
135
+ /* @__PURE__ */ jsx("div", {
136
+ className: "envive-tw-flex envive-tw-flex-col envive-tw-gap-2",
137
+ children: /* @__PURE__ */ jsxs("div", {
138
+ className: "envive-tw-flex envive-tw-flex-row envive-tw-items-center envive-tw-gap-3",
139
+ children: [/* @__PURE__ */ jsx("span", {
140
+ id: "priority-label",
141
+ className: "envive-tw-mb-0 envive-tw-flex envive-tw-shrink-0 envive-tw-items-center envive-tw-gap-2 envive-tw-text-[12px] envive-tw-font-bold envive-tw-text-[#161844]",
142
+ children: "Priority"
143
+ }), /* @__PURE__ */ jsx(GenericSelect, {
144
+ type: "priority",
145
+ selectedKey: priority,
146
+ onSelect: (key) => {
147
+ setPriority(key);
148
+ },
149
+ "aria-labelledby": "priority-label"
150
+ })]
151
+ })
152
+ }),
153
+ /* @__PURE__ */ jsxs("div", {
154
+ className: "envive-tw-flex envive-tw-flex-col envive-tw-gap-2",
155
+ children: [/* @__PURE__ */ jsxs("span", {
156
+ id: "email-label",
157
+ className: "envive-tw-flex envive-tw-items-center envive-tw-gap-2 envive-tw-text-[12px] envive-tw-font-bold envive-tw-text-[#161844]",
158
+ children: ["Your Email", /* @__PURE__ */ jsx("p", {
159
+ className: requiredFieldClassnames,
160
+ children: "* Required so we can follow up with you"
161
+ })]
162
+ }), /* @__PURE__ */ jsx("input", {
163
+ className: "envive-tw-rounded-md envive-tw-w-full envive-tw-border envive-tw-border-gray-300 envive-tw-px-3 envive-tw-py-2 envive-tw-text-sm",
164
+ placeholder: "Email address",
165
+ value: reportedBy,
166
+ type: "email",
167
+ onChange: onReportedByChanging,
168
+ "aria-labelledby": "email-label"
169
+ })]
170
+ }),
171
+ /* @__PURE__ */ jsxs("div", {
172
+ className: "envive-tw-flex envive-tw-flex-col envive-tw-gap-[0]",
173
+ children: [/* @__PURE__ */ jsx("span", {
174
+ id: "chat-history-label",
175
+ className: "envive-tw-flex envive-tw-items-center envive-tw-gap-2 envive-tw-text-[12px] envive-tw-font-bold envive-tw-text-[#161844]",
176
+ children: "Chat History"
177
+ }), /* @__PURE__ */ jsx("div", {
178
+ className: "envive-tw-rounded-md envive-tw-h-[250px] envive-tw-w-full envive-tw-overflow-auto envive-tw-border envive-tw-border-[#D9D9D9] envive-tw-p-2",
179
+ "aria-labelledby": "chat-history-label",
180
+ children: /* @__PURE__ */ jsx(chatEmbed_default, {})
181
+ })]
182
+ }),
183
+ /* @__PURE__ */ jsxs("div", {
184
+ className: "envive-tw-flex envive-tw-flex-col envive-tw-gap-2",
185
+ children: [/* @__PURE__ */ jsxs("span", {
186
+ id: "description-label",
187
+ className: "envive-tw-flex envive-tw-items-center envive-tw-gap-2 envive-tw-text-[12px] envive-tw-font-bold envive-tw-text-[#161844]",
188
+ children: ["What is the problem with this message?", /* @__PURE__ */ jsx("p", {
189
+ className: requiredFieldClassnames,
190
+ children: "* Required to train the model and generate the correct message"
191
+ })]
192
+ }), /* @__PURE__ */ jsx("textarea", {
193
+ className: "envive-tw-rounded-md envive-tw-w-full envive-tw-border envive-tw-border-gray-300 envive-tw-px-3 envive-tw-py-2 envive-tw-text-sm",
194
+ placeholder: "Please describe the issue",
195
+ value: reason,
196
+ onChange: onDescriptionChanging,
197
+ "aria-labelledby": "description-label"
198
+ })]
199
+ }),
200
+ /* @__PURE__ */ jsxs("div", {
201
+ className: "envive-tw-flex envive-tw-flex-col envive-tw-gap-2",
202
+ children: [/* @__PURE__ */ jsxs("span", {
203
+ id: "message-correction-label",
204
+ className: "envive-tw-flex envive-tw-items-center envive-tw-gap-2 envive-tw-text-[12px] envive-tw-font-bold envive-tw-text-[#161844]",
205
+ children: ["What should the message have said?", /* @__PURE__ */ jsx("p", {
206
+ className: "envive-tw-text-xs envive-tw-font-normal envive-tw-italic envive-tw-text-gray-500",
207
+ children: "Creating an alternative message will ensure the AI sounds the way you want."
208
+ })]
209
+ }), /* @__PURE__ */ jsx("textarea", {
210
+ className: "envive-tw-rounded-md envive-tw-w-full envive-tw-border envive-tw-border-gray-300 envive-tw-px-3 envive-tw-py-2 envive-tw-text-sm",
211
+ placeholder: "Alternative phrasing of the message",
212
+ value: turnInfo.message_correction ?? lastMessagesText,
213
+ onChange: (e) => setTurnInfo(e, "message_correction"),
214
+ rows: 10,
215
+ "aria-labelledby": "message-correction-label"
216
+ })]
217
+ }),
218
+ /* @__PURE__ */ jsxs("div", {
219
+ className: "envive-tw-flex envive-tw-flex-col envive-tw-gap-2",
220
+ children: [/* @__PURE__ */ jsx("span", {
221
+ id: "suggested-responses-label",
222
+ className: "envive-tw-flex envive-tw-items-center envive-tw-gap-2 envive-tw-text-[12px] envive-tw-font-bold envive-tw-text-[#161844]",
223
+ children: "What should the suggested responses for the user be?"
224
+ }), /* @__PURE__ */ jsx("textarea", {
225
+ className: "envive-tw-rounded-md envive-tw-w-full envive-tw-border envive-tw-border-gray-300 envive-tw-px-3 envive-tw-py-2 envive-tw-text-sm",
226
+ placeholder: "Alternative suggested responses",
227
+ value: turnInfo.suggestions_correction ?? lastSuggestionsText,
228
+ onChange: (e) => setTurnInfo(e, "suggestions_correction"),
229
+ rows: 6,
230
+ "aria-labelledby": "suggested-responses-label"
231
+ })]
232
+ })
233
+ ]
234
+ });
235
+ };
236
+ const ReportFooter = ({ isReporting, errorMessage, reportedByIsInvalid, isReasonInvalid, onReportSession, onClose }) => {
237
+ const sendFeedbackButtonClassnames = classNames({
238
+ "envive-tw-flex": true,
239
+ "envive-tw-w-full": true,
240
+ "sm:envive-tw-w-[180px]": true,
241
+ "envive-tw-h-10": true,
242
+ "envive-tw-py-2.5": true,
243
+ "envive-tw-px-6": true,
244
+ "envive-tw-justify-center": true,
245
+ "envive-tw-items-center": true,
246
+ "envive-tw-gap-2": true,
247
+ "envive-tw-rounded-full": true,
248
+ "envive-tw-border": true,
249
+ "envive-tw-border-[#3C57AA]": true,
250
+ "envive-tw-bg-[#3C57AA]": true,
251
+ "envive-tw-text-white": true,
252
+ "hover:envive-tw-bg-[#2B4A8A]": true,
253
+ "disabled:envive-tw-opacity-50": true,
254
+ "disabled:envive-tw-cursor-not-allowed": true
255
+ });
256
+ const cancelButtonClassnames = classNames({
257
+ "envive-tw-flex": true,
258
+ "envive-tw-w-full": true,
259
+ "sm:envive-tw-w-[171px]": true,
260
+ "envive-tw-h-10": true,
261
+ "envive-tw-py-2.5": true,
262
+ "envive-tw-px-6": true,
263
+ "envive-tw-justify-center": true,
264
+ "envive-tw-items-center": true,
265
+ "envive-tw-gap-2": true,
266
+ "envive-tw-rounded-full": true,
267
+ "envive-tw-border": true,
268
+ "envive-tw-border-[#3C57AA]": true,
269
+ "envive-tw-text-[#3C57AA]": true,
270
+ "envive-tw-text-center": true,
271
+ "envive-tw-text-base": true,
272
+ "envive-tw-font-medium": true,
273
+ "envive-tw-bg-[#EDF2F7]": true,
274
+ "hover:envive-tw-bg-[#F5F5F5]": true,
275
+ "disabled:envive-tw-opacity-50": true,
276
+ "disabled:envive-tw-cursor-not-allowed": true
277
+ });
278
+ const buttonFooterClassnames = classNames({
279
+ "envive-tw-flex": true,
280
+ "envive-tw-items-start": true,
281
+ "envive-tw-gap-6": true,
282
+ "envive-tw-justify-start": true,
283
+ "envive-tw-p-0": true,
284
+ "envive-tw-shadow-none": true,
285
+ "envive-tw-flex-0": true,
286
+ "envive-tw-flex-auto": true,
287
+ "envive-tw-flex-col": true,
288
+ "sm:envive-tw-flex-row": true,
289
+ "envive-tw-w-full": true,
290
+ "envive-tw-bottom-0": true,
291
+ "envive-tw-z-[1]": true
292
+ });
293
+ return /* @__PURE__ */ jsx("div", {
294
+ className: classNames({
295
+ "envive-tw-bg-[#FFFFFF70]": true,
296
+ "envive-tw-py-[24px]": true,
297
+ "envive-tw-sticky": true,
298
+ "envive-tw-bottom-0": true,
299
+ "envive-tw-w-full": true,
300
+ "envive-tw-px-[24px]": true,
301
+ "envive-tw-border-t": true,
302
+ "envive-tw-border-[#EBEBEB]": true
303
+ }),
304
+ children: /* @__PURE__ */ jsxs("div", {
305
+ className: buttonFooterClassnames,
306
+ children: [
307
+ /* @__PURE__ */ jsx("button", {
308
+ type: "button",
309
+ disabled: isReporting || reportedByIsInvalid || isReasonInvalid,
310
+ onClick: onReportSession,
311
+ className: sendFeedbackButtonClassnames,
312
+ children: isReporting ? "Sending..." : "Send Feedback"
313
+ }),
314
+ /* @__PURE__ */ jsx("button", {
315
+ type: "button",
316
+ disabled: isReporting,
317
+ onClick: onClose,
318
+ className: cancelButtonClassnames,
319
+ children: "Cancel"
320
+ }),
321
+ errorMessage && /* @__PURE__ */ jsx("div", {
322
+ className: "envive-tw-text-xs envive-tw-font-normal envive-tw-italic envive-tw-text-red-500",
323
+ children: errorMessage
324
+ })
325
+ ]
326
+ })
327
+ });
328
+ };
329
+ const Drawer = ({ isOpen, onClose, children, width = "md:envive-tw-w-[80%] lg:envive-tw-w-[67%]" }) => {
330
+ if (!isOpen) return null;
331
+ return /* @__PURE__ */ jsxs("div", {
332
+ className: "envive-tw-fixed envive-tw-right-[0] envive-tw-top-[0] envive-tw-z-[9999] envive-tw-flex envive-tw-w-full envive-tw-flex-row envive-tw-justify-end",
333
+ children: [/* @__PURE__ */ jsx("div", {
334
+ className: "envive-tw-bg envive-tw-flex-grow envive-tw-bg-black/40",
335
+ onClick: onClose
336
+ }), /* @__PURE__ */ jsx("div", {
337
+ className: `envive-tw-w-full ${width} envive-tw-h-screen`,
338
+ children: /* @__PURE__ */ jsx("div", {
339
+ className: "envive-tw-min-h-0 envive-tw-px-0 envive-tw-relative envive-tw-flex envive-tw-h-screen envive-tw-w-full envive-tw-flex-col envive-tw-border envive-tw-border-solid envive-tw-border-[#0000ff] envive-tw-bg-white",
340
+ children
341
+ })
342
+ })]
343
+ });
344
+ };
345
+ const ReportIssue = () => {
346
+ const { messages, suggestions, userEvents } = useAtomValue(chatAtom);
347
+ const lastMessages = useAtomValue(lastAssistantMessageAtom);
348
+ const [lastMessagesText, setLastMessagesText] = useState("");
349
+ const [lastSuggestionsText, setLastSuggestionsText] = useState("");
350
+ const [lastSuggestions, setLastSuggestions] = useState([]);
351
+ const [isOpen, setIsOpen] = useState(false);
352
+ const [turnInfo, setTurnInfo] = useState({});
353
+ const reportType = ReportSessionRequestReportTypeEnum.Turn;
354
+ const [isReasonInvalid, setIsReasonInvalid] = useState(true);
355
+ const [reason, setReason] = useState("");
356
+ const [reportedBy, setReportedBy] = useState("");
357
+ const [reportedByIsInvalid, setReportedByIsInvalid] = useState(true);
358
+ const [isReporting, setIsReporting] = useState(false);
359
+ const [errorMessage, setErrorMessage] = useState("");
360
+ const [priority, setPriority] = useState(ReportSessionRequestReportPriorityEnum.NoPriority);
361
+ const userId = useAtomValue(userIdAtom);
362
+ const orgShortName = useAtomValue(orgShortNameAtom);
363
+ const lastUserEvent = userEvents && userEvents.length > 0 ? userEvents[userEvents.length - 1] : void 0;
364
+ const onOpen = useCallback(() => setIsOpen(true), []);
365
+ const onClose = useCallback(() => setIsOpen(false), []);
366
+ useEffect(() => {
367
+ if (messages) {
368
+ const currentMessages = messages.length > 0 ? messages[messages.length - 1] : [];
369
+ if (currentMessages.length > 0 && lastUserEvent) setTurnInfo((prev) => ({
370
+ ...prev,
371
+ turn_idx: currentMessages.length - 1
372
+ }));
373
+ }
374
+ }, [messages]);
375
+ useEffect(() => {
376
+ if (suggestions) setLastSuggestions(suggestions);
377
+ else setLastSuggestions([]);
378
+ }, [suggestions]);
379
+ useEffect(() => {
380
+ if (lastUserEvent) setTurnInfo((prev) => ({
381
+ ...prev,
382
+ prev_user_event: {
383
+ id: lastUserEvent.eventId,
384
+ category: lastUserEvent.category
385
+ }
386
+ }));
387
+ else setTurnInfo((prev) => ({
388
+ ...prev,
389
+ prev_user_event: void 0
390
+ }));
391
+ }, [lastUserEvent]);
392
+ useEffect(() => {
393
+ if (lastMessages) {
394
+ setLastMessagesText(lastMessages.filter((m) => m.type !== MessageType.Separator).map((m) => messageContent(m)).join("\n\n"));
395
+ setTurnInfo((prev) => ({
396
+ ...prev,
397
+ messages: lastMessages.map((m) => ({
398
+ id: m.id,
399
+ content: messageContent(m)
400
+ }))
401
+ }));
402
+ }
403
+ }, [lastMessages]);
404
+ useEffect(() => {
405
+ if (lastSuggestions) {
406
+ const sortedSuggestions = [...lastSuggestions.filter((s) => s.is_answer), ...lastSuggestions.filter((s) => !s.is_answer)];
407
+ setLastSuggestionsText(`- ${sortedSuggestions.map((s) => s.content).join("\n- ")}`);
408
+ setTurnInfo((prev) => ({
409
+ ...prev,
410
+ suggestions: sortedSuggestions.map((s) => ({
411
+ id: s.id,
412
+ content: s.content
413
+ }))
414
+ }));
415
+ }
416
+ }, [lastSuggestions]);
417
+ const reportSession = useCallback(async () => {
418
+ try {
419
+ setIsReporting(true);
420
+ setErrorMessage("");
421
+ const request = {
422
+ user_id: userId,
423
+ reported_by: reportedBy,
424
+ org_short_name: orgShortName,
425
+ report_priority: priority,
426
+ reason,
427
+ turn_info: turnInfo,
428
+ report_type: reportType
429
+ };
430
+ console.info("Submitting report", request);
431
+ await CommerceApiClient.reportSession(request);
432
+ onClose();
433
+ } catch (error) {
434
+ console.error("Error sending report", error);
435
+ setErrorMessage("There was an error sending the report. Please try again or contact Envive Support.");
436
+ } finally {
437
+ setIsReporting(false);
438
+ }
439
+ }, [
440
+ userId,
441
+ reportedBy,
442
+ orgShortName,
443
+ priority,
444
+ reason,
445
+ turnInfo,
446
+ reportType,
447
+ onClose
448
+ ]);
449
+ const onReportedByChanging = useCallback((e) => {
450
+ const reportedByValue = e.target.value;
451
+ const isEmail = validateEmail(reportedByValue);
452
+ setReportedByIsInvalid(!reportedByValue || !isEmail);
453
+ setReportedBy(reportedByValue);
454
+ }, []);
455
+ const onDescriptionChanging = useCallback((e) => {
456
+ const descriptionValue = e.target.value;
457
+ setIsReasonInvalid(StringUtils.isNullOrEmpty(descriptionValue));
458
+ setReason(descriptionValue);
459
+ }, []);
460
+ const handlePriorityChange = useCallback((key) => {
461
+ setPriority(key);
462
+ }, []);
463
+ const handleTurnInfoChange = useCallback((e, field) => {
464
+ setTurnInfo((prev) => ({
465
+ ...prev,
466
+ [field]: e.target.value
467
+ }));
468
+ }, []);
469
+ return /* @__PURE__ */ jsxs("div", {
470
+ className: "envive-tw-mx-[16px] envive-tw-block envive-tw-h-[24px] envive-tw-w-full",
471
+ children: [/* @__PURE__ */ jsx("button", {
472
+ type: "button",
473
+ onClick: (e) => {
474
+ e.preventDefault();
475
+ onOpen();
476
+ },
477
+ className: classNames({
478
+ "envive-tw-underline": true,
479
+ "envive-tw-text-inherit": true,
480
+ "envive-tw-text-[12px]": true,
481
+ "envive-tw-cursor-pointer": true,
482
+ "envive-tw-bg-transparent": true,
483
+ "envive-tw-border-none": true,
484
+ "envive-tw-p-0": true,
485
+ "envive-tw-m-0": true,
486
+ "envive-tw-inline": true,
487
+ "envive-tw-z-[9999]": true
488
+ }),
489
+ children: "Give us feedback"
490
+ }), /* @__PURE__ */ jsxs(Drawer, {
491
+ isOpen,
492
+ onClose,
493
+ children: [
494
+ /* @__PURE__ */ jsx(ReportHeader, { onClose }),
495
+ /* @__PURE__ */ jsx("div", {
496
+ className: "envive-tw-min-h-0 envive-tw-p-0 envive-tw-flex envive-tw-flex-[1_1_auto] envive-tw-flex-col envive-tw-overflow-y-auto",
497
+ children: lastMessages && lastSuggestions && lastMessages.length > 0 && /* @__PURE__ */ jsx(ReportFormFields, {
498
+ priority,
499
+ setPriority: handlePriorityChange,
500
+ reportedBy,
501
+ onReportedByChanging,
502
+ reason,
503
+ onDescriptionChanging,
504
+ turnInfo,
505
+ setTurnInfo: handleTurnInfoChange,
506
+ lastMessagesText,
507
+ lastSuggestionsText
508
+ })
509
+ }),
510
+ /* @__PURE__ */ jsx(ReportFooter, {
511
+ isReporting,
512
+ errorMessage,
513
+ reportedByIsInvalid,
514
+ isReasonInvalid,
515
+ onReportSession: reportSession,
516
+ onClose
517
+ })
518
+ ]
519
+ })]
520
+ });
521
+ };
522
+
523
+ //#endregion
524
+ export { ReportIssue };
@@ -1,9 +1,9 @@
1
1
  import { BaseWidgetProps, WithBaseWidgetOptions } from "./types.cjs";
2
- import * as react_jsx_runtime14 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime1 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/hocs/withBaseWidget/withBaseWidget.d.ts
5
5
  declare function withBaseWidget<P extends BaseWidgetProps>(Widget: React.ComponentType<P>, options?: WithBaseWidgetOptions): {
6
- (props: P): react_jsx_runtime14.JSX.Element;
6
+ (props: P): react_jsx_runtime1.JSX.Element;
7
7
  displayName: string;
8
8
  };
9
9
  //#endregion
@@ -1,9 +1,9 @@
1
1
  import { BaseWidgetProps, WithBaseWidgetOptions } from "./types.js";
2
- import * as react_jsx_runtime15 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime1 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/hocs/withBaseWidget/withBaseWidget.d.ts
5
5
  declare function withBaseWidget<P extends BaseWidgetProps>(Widget: React.ComponentType<P>, options?: WithBaseWidgetOptions): {
6
- (props: P): react_jsx_runtime15.JSX.Element;
6
+ (props: P): react_jsx_runtime1.JSX.Element;
7
7
  displayName: string;
8
8
  };
9
9
  //#endregion