@envive-ai/react-widgets-v3 0.3.2
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.
- package/dist/CXIntegration/hooks/useUnifiedCXButton.cjs +23 -0
- package/dist/CXIntegration/hooks/useUnifiedCXButton.js +22 -0
- package/dist/CXIntegration/implementations/useDefaultUnifiedCXButton.cjs +11 -0
- package/dist/CXIntegration/implementations/useDefaultUnifiedCXButton.js +10 -0
- package/dist/CXIntegration/implementations/useGladlyUnifiedCXButton.cjs +20 -0
- package/dist/CXIntegration/implementations/useGladlyUnifiedCXButton.js +19 -0
- package/dist/CXIntegration/implementations/useGorgiasUnifiedCXButton.cjs +53 -0
- package/dist/CXIntegration/implementations/useGorgiasUnifiedCXButton.js +52 -0
- package/dist/CXIntegration/implementations/useGrooveUnifiedCXButton.cjs +45 -0
- package/dist/CXIntegration/implementations/useGrooveUnifiedCXButton.js +44 -0
- package/dist/CXIntegration/implementations/useKustomerUnifiedCXButton.cjs +70 -0
- package/dist/CXIntegration/implementations/useKustomerUnifiedCXButton.js +69 -0
- package/dist/CXIntegration/implementations/useReDoUnifiedCXButton.cjs +59 -0
- package/dist/CXIntegration/implementations/useReDoUnifiedCXButton.js +58 -0
- package/dist/CXIntegration/implementations/useRichpanelUnifiedCXButton.cjs +65 -0
- package/dist/CXIntegration/implementations/useRichpanelUnifiedCXButton.js +64 -0
- package/dist/CXIntegration/implementations/useShopifyChatUnifiedCXButton.cjs +53 -0
- package/dist/CXIntegration/implementations/useShopifyChatUnifiedCXButton.js +52 -0
- package/dist/CXIntegration/implementations/useTidioUnifiedCXButton.cjs +18 -0
- package/dist/CXIntegration/implementations/useTidioUnifiedCXButton.js +17 -0
- package/dist/CXIntegration/implementations/useZendeskUnifiedCXButton.cjs +54 -0
- package/dist/CXIntegration/implementations/useZendeskUnifiedCXButton.js +53 -0
- package/dist/CXIntegration/implementations/useZowieUnifiedCXButton.cjs +18 -0
- package/dist/CXIntegration/implementations/useZowieUnifiedCXButton.js +17 -0
- package/dist/CXIntegration/types.cjs +19 -0
- package/dist/CXIntegration/types.js +18 -0
- package/dist/CXIntegration/utils/functions.cjs +30 -0
- package/dist/CXIntegration/utils/functions.js +30 -0
- package/dist/_virtual/rolldown_runtime.cjs +29 -0
- package/dist/hocs/withBaseWidget/index.cjs +3 -0
- package/dist/hocs/withBaseWidget/index.d.cts +3 -0
- package/dist/hocs/withBaseWidget/index.d.ts +3 -0
- package/dist/hocs/withBaseWidget/index.js +3 -0
- package/dist/hocs/withBaseWidget/types.d.cts +37 -0
- package/dist/hocs/withBaseWidget/types.d.ts +39 -0
- package/dist/hocs/withBaseWidget/withBaseWidget.cjs +101 -0
- package/dist/hocs/withBaseWidget/withBaseWidget.d.cts +10 -0
- package/dist/hocs/withBaseWidget/withBaseWidget.d.ts +10 -0
- package/dist/hocs/withBaseWidget/withBaseWidget.js +100 -0
- package/dist/hooks/dist/application/models/api/orgConfigResults.d.ts +1 -0
- package/dist/hooks/dist/application/models/frontendConfig.d.ts +1 -0
- package/dist/hooks/dist/contexts/amplitudeContext/amplitudeContext.d.ts +2 -0
- package/dist/hooks/dist/contexts/amplitudeContext/index.d.ts +2 -0
- package/dist/hooks/dist/contexts/featureFlagServiceContext/featureFlagServiceContext.d.ts +2 -0
- package/dist/hooks/dist/contexts/hardcopyContext/hardcopyContext.d.cts +8 -0
- package/dist/hooks/dist/contexts/hardcopyContext/hardcopyContext.d.ts +11 -0
- package/dist/hooks/dist/contexts/hardcopyContext/index.d.ts +1 -0
- package/dist/hooks/dist/contexts/types.d.cts +44 -0
- package/dist/hooks/dist/contexts/types.d.ts +47 -0
- package/dist/hooks/dist/contexts/typesV3.d.cts +201 -0
- package/dist/hooks/dist/contexts/typesV3.d.ts +201 -0
- package/dist/hooks/dist/services/amplitudeService/amplitudeService.d.cts +36 -0
- package/dist/hooks/dist/services/amplitudeService/amplitudeService.d.ts +37 -0
- package/dist/hooks/dist/types/customerService.d.cts +18 -0
- package/dist/hooks/dist/types/customerService.d.ts +18 -0
- package/dist/stories/SalesAgentTest/index.cjs +0 -0
- package/dist/stories/SalesAgentTest/index.d.cts +1 -0
- package/dist/stories/SalesAgentTest/index.d.ts +1 -0
- package/dist/stories/SalesAgentTest/index.js +0 -0
- package/dist/widgets/ChatPreviewComparisonWidget/ChatPreviewComparisonWidget.cjs +98 -0
- package/dist/widgets/ChatPreviewComparisonWidget/ChatPreviewComparisonWidget.d.cts +19 -0
- package/dist/widgets/ChatPreviewComparisonWidget/ChatPreviewComparisonWidget.d.ts +19 -0
- package/dist/widgets/ChatPreviewComparisonWidget/ChatPreviewComparisonWidget.js +96 -0
- package/dist/widgets/ChatPreviewComparisonWidget/index.cjs +4 -0
- package/dist/widgets/ChatPreviewComparisonWidget/index.d.cts +2 -0
- package/dist/widgets/ChatPreviewComparisonWidget/index.d.ts +2 -0
- package/dist/widgets/ChatPreviewComparisonWidget/index.js +3 -0
- package/dist/widgets/ChatPreviewLoadingWidget/ChatPreviewLoadingWidget.cjs +44 -0
- package/dist/widgets/ChatPreviewLoadingWidget/ChatPreviewLoadingWidget.d.cts +16 -0
- package/dist/widgets/ChatPreviewLoadingWidget/ChatPreviewLoadingWidget.d.ts +16 -0
- package/dist/widgets/ChatPreviewLoadingWidget/ChatPreviewLoadingWidget.js +42 -0
- package/dist/widgets/ChatPreviewLoadingWidget/index.cjs +4 -0
- package/dist/widgets/ChatPreviewLoadingWidget/index.d.cts +2 -0
- package/dist/widgets/ChatPreviewLoadingWidget/index.d.ts +2 -0
- package/dist/widgets/ChatPreviewLoadingWidget/index.js +3 -0
- package/dist/widgets/ChatPreviewWidget/ChatPreviewWidget.cjs +86 -0
- package/dist/widgets/ChatPreviewWidget/ChatPreviewWidget.d.cts +19 -0
- package/dist/widgets/ChatPreviewWidget/ChatPreviewWidget.d.ts +19 -0
- package/dist/widgets/ChatPreviewWidget/ChatPreviewWidget.js +84 -0
- package/dist/widgets/ChatPreviewWidget/index.cjs +4 -0
- package/dist/widgets/ChatPreviewWidget/index.d.cts +2 -0
- package/dist/widgets/ChatPreviewWidget/index.d.ts +2 -0
- package/dist/widgets/ChatPreviewWidget/index.js +3 -0
- package/dist/widgets/FloatingChatWidget/FloatingChatOverlay.cjs +66 -0
- package/dist/widgets/FloatingChatWidget/FloatingChatOverlay.js +64 -0
- package/dist/widgets/FloatingChatWidget/FloatingChatWidget.cjs +70 -0
- package/dist/widgets/FloatingChatWidget/FloatingChatWidget.d.cts +10 -0
- package/dist/widgets/FloatingChatWidget/FloatingChatWidget.d.ts +10 -0
- package/dist/widgets/FloatingChatWidget/FloatingChatWidget.js +69 -0
- package/dist/widgets/FloatingChatWidget/constants.cjs +6 -0
- package/dist/widgets/FloatingChatWidget/constants.d.cts +4 -0
- package/dist/widgets/FloatingChatWidget/constants.d.ts +4 -0
- package/dist/widgets/FloatingChatWidget/constants.js +5 -0
- package/dist/widgets/FloatingChatWidget/index.cjs +5 -0
- package/dist/widgets/FloatingChatWidget/index.d.cts +3 -0
- package/dist/widgets/FloatingChatWidget/index.d.ts +3 -0
- package/dist/widgets/FloatingChatWidget/index.js +4 -0
- package/dist/widgets/PromptButtonCarouselWithImageWidget/PromptButtonCarouselWithImageWidget.cjs +60 -0
- package/dist/widgets/PromptButtonCarouselWithImageWidget/PromptButtonCarouselWithImageWidget.d.cts +19 -0
- package/dist/widgets/PromptButtonCarouselWithImageWidget/PromptButtonCarouselWithImageWidget.d.ts +19 -0
- package/dist/widgets/PromptButtonCarouselWithImageWidget/PromptButtonCarouselWithImageWidget.js +58 -0
- package/dist/widgets/PromptButtonCarouselWithImageWidget/index.cjs +4 -0
- package/dist/widgets/PromptButtonCarouselWithImageWidget/index.d.cts +2 -0
- package/dist/widgets/PromptButtonCarouselWithImageWidget/index.d.ts +2 -0
- package/dist/widgets/PromptButtonCarouselWithImageWidget/index.js +3 -0
- package/dist/widgets/PromptCarouselWidget/PromptCarouselWidget.cjs +64 -0
- package/dist/widgets/PromptCarouselWidget/PromptCarouselWidget.d.cts +14 -0
- package/dist/widgets/PromptCarouselWidget/PromptCarouselWidget.d.ts +14 -0
- package/dist/widgets/PromptCarouselWidget/PromptCarouselWidget.js +63 -0
- package/dist/widgets/PromptCarouselWidget/index.cjs +3 -0
- package/dist/widgets/PromptCarouselWidget/index.d.cts +2 -0
- package/dist/widgets/PromptCarouselWidget/index.d.ts +2 -0
- package/dist/widgets/PromptCarouselWidget/index.js +3 -0
- package/dist/widgets/SocialProofFlowWidget/SocialProofFlowWidget.cjs +35 -0
- package/dist/widgets/SocialProofFlowWidget/SocialProofFlowWidget.d.cts +14 -0
- package/dist/widgets/SocialProofFlowWidget/SocialProofFlowWidget.d.ts +14 -0
- package/dist/widgets/SocialProofFlowWidget/SocialProofFlowWidget.js +34 -0
- package/dist/widgets/SocialProofFlowWidget/index.cjs +3 -0
- package/dist/widgets/SocialProofFlowWidget/index.d.cts +2 -0
- package/dist/widgets/SocialProofFlowWidget/index.d.ts +2 -0
- package/dist/widgets/SocialProofFlowWidget/index.js +3 -0
- package/dist/widgets/SocialProofWidget/SocialProofWidget.cjs +118 -0
- package/dist/widgets/SocialProofWidget/SocialProofWidget.d.cts +19 -0
- package/dist/widgets/SocialProofWidget/SocialProofWidget.d.ts +19 -0
- package/dist/widgets/SocialProofWidget/SocialProofWidget.js +116 -0
- package/dist/widgets/SocialProofWidget/index.cjs +4 -0
- package/dist/widgets/SocialProofWidget/index.d.cts +2 -0
- package/dist/widgets/SocialProofWidget/index.d.ts +2 -0
- package/dist/widgets/SocialProofWidget/index.js +3 -0
- package/dist/widgets/TitledPromptCarouselWidget/TitledPromptCarouselWidget.cjs +67 -0
- package/dist/widgets/TitledPromptCarouselWidget/TitledPromptCarouselWidget.d.cts +14 -0
- package/dist/widgets/TitledPromptCarouselWidget/TitledPromptCarouselWidget.d.ts +14 -0
- package/dist/widgets/TitledPromptCarouselWidget/TitledPromptCarouselWidget.js +66 -0
- package/dist/widgets/TitledPromptCarouselWidget/index.cjs +3 -0
- package/dist/widgets/TitledPromptCarouselWidget/index.d.cts +2 -0
- package/dist/widgets/TitledPromptCarouselWidget/index.d.ts +2 -0
- package/dist/widgets/TitledPromptCarouselWidget/index.js +3 -0
- package/dist/widgets/TypingAnimationFlowWidget/TypingAnimationFlowWidget.cjs +35 -0
- package/dist/widgets/TypingAnimationFlowWidget/TypingAnimationFlowWidget.d.cts +14 -0
- package/dist/widgets/TypingAnimationFlowWidget/TypingAnimationFlowWidget.d.ts +14 -0
- package/dist/widgets/TypingAnimationFlowWidget/TypingAnimationFlowWidget.js +34 -0
- package/dist/widgets/TypingAnimationFlowWidget/index.cjs +3 -0
- package/dist/widgets/TypingAnimationFlowWidget/index.d.cts +2 -0
- package/dist/widgets/TypingAnimationFlowWidget/index.d.ts +2 -0
- package/dist/widgets/TypingAnimationFlowWidget/index.js +3 -0
- package/dist/widgets/TypingAnimationWidget/TypingAnimationWidget.cjs +90 -0
- package/dist/widgets/TypingAnimationWidget/TypingAnimationWidget.d.cts +19 -0
- package/dist/widgets/TypingAnimationWidget/TypingAnimationWidget.d.ts +19 -0
- package/dist/widgets/TypingAnimationWidget/TypingAnimationWidget.js +88 -0
- package/dist/widgets/TypingAnimationWidget/index.cjs +4 -0
- package/dist/widgets/TypingAnimationWidget/index.d.cts +2 -0
- package/dist/widgets/TypingAnimationWidget/index.d.ts +2 -0
- package/dist/widgets/TypingAnimationWidget/index.js +3 -0
- package/dist/widgets/dist/SearchResults/SearchResults.d.cts +15 -0
- package/dist/widgets/dist/SearchResults/SearchResults.d.ts +15 -0
- package/dist/widgets/dist/SearchResults/SearchResultsWidget.d.cts +9 -0
- package/dist/widgets/dist/SearchResults/SearchResultsWidget.d.ts +9 -0
- package/dist/widgets/dist/SearchResults/index.d.ts +2 -0
- package/dist/widgets/dist/SearchResults/types.d.cts +20 -0
- package/dist/widgets/dist/SearchResults/types.d.ts +20 -0
- package/dist/widgets/dist/SearchZeroState/SearchZeroState.d.cts +10 -0
- package/dist/widgets/dist/SearchZeroState/SearchZeroState.d.ts +10 -0
- package/dist/widgets/dist/SearchZeroState/SearchZeroStateWidget.d.cts +18 -0
- package/dist/widgets/dist/SearchZeroState/SearchZeroStateWidget.d.ts +18 -0
- package/dist/widgets/dist/SearchZeroState/index.d.ts +4 -0
- package/dist/widgets/dist/SearchZeroState/types.d.cts +13 -0
- package/dist/widgets/dist/SearchZeroState/types.d.ts +13 -0
- package/dist/widgets/dist/SuggestionBar/SuggestionBar.d.cts +36 -0
- package/dist/widgets/dist/SuggestionBar/SuggestionBar.d.ts +36 -0
- package/dist/widgets/dist/SuggestionBar/index.d.ts +2 -0
- package/dist/widgets/dist/SuggestionBar/types.d.cts +9 -0
- package/dist/widgets/dist/SuggestionBar/types.d.ts +9 -0
- package/dist/widgets/dist/SuggestionButtonContainer/SuggestionButtonContainer.d.cts +9 -0
- package/dist/widgets/dist/SuggestionButtonContainer/SuggestionButtonContainer.d.ts +9 -0
- package/dist/widgets/dist/SuggestionButtonContainer/types.d.cts +20 -0
- package/dist/widgets/dist/SuggestionButtonContainer/types.d.ts +20 -0
- package/dist/widgets/dist/config/BaseWidgetConfig.d.cts +13 -0
- package/dist/widgets/dist/config/BaseWidgetConfig.d.ts +13 -0
- package/dist/widgets/dist/config/WidgetType.d.cts +23 -0
- package/dist/widgets/dist/config/WidgetType.d.ts +23 -0
- package/dist/widgets/dist/packages/hooks/dist/application/models/api/response.d.cts +14 -0
- package/dist/widgets/dist/packages/hooks/dist/application/models/api/response.d.ts +14 -0
- package/dist/widgets/dist/packages/hooks/dist/application/models/api/search.d.cts +15 -0
- package/dist/widgets/dist/packages/hooks/dist/application/models/api/search.d.ts +15 -0
- package/dist/widgets/dist/packages/hooks/dist/application/models/utilityTypes/camelCase.d.cts +73 -0
- package/dist/widgets/dist/packages/hooks/dist/application/models/utilityTypes/camelCase.d.ts +73 -0
- package/dist/widgets/dist/packages/hooks/dist/application/models/utilityTypes/camelCasedPropertiesDeep.d.cts +61 -0
- package/dist/widgets/dist/packages/hooks/dist/application/models/utilityTypes/camelCasedPropertiesDeep.d.ts +61 -0
- package/dist/widgets/dist/packages/hooks/dist/application/models/utilityTypes/internal.d.cts +25 -0
- package/dist/widgets/dist/packages/hooks/dist/application/models/utilityTypes/internal.d.ts +25 -0
- package/dist/widgets/dist/packages/hooks/dist/application/models/utilityTypes/splitWords.d.cts +35 -0
- package/dist/widgets/dist/packages/hooks/dist/application/models/utilityTypes/splitWords.d.ts +35 -0
- package/dist/widgets/dist/packages/hooks/dist/application/models/utilityTypes/trim.d.cts +32 -0
- package/dist/widgets/dist/packages/hooks/dist/application/models/utilityTypes/trim.d.ts +32 -0
- package/dist/widgets/dist/packages/hooks/dist/application/models/utilityTypes/unknownArray.d.cts +32 -0
- package/dist/widgets/dist/packages/hooks/dist/application/models/utilityTypes/unknownArray.d.ts +32 -0
- package/dist/widgets/dist/packages/hooks/dist/atoms/search/searchAPI.d.cts +14 -0
- package/dist/widgets/dist/packages/hooks/dist/atoms/search/searchAPI.d.ts +15 -0
- package/dist/widgets/dist/packages/hooks/dist/contexts/types.d.cts +61 -0
- package/dist/widgets/dist/packages/hooks/dist/contexts/types.d.ts +61 -0
- package/dist/widgets/dist/packages/hooks/dist/hooks/Search/useSearch.d.cts +60 -0
- package/dist/widgets/dist/packages/hooks/dist/hooks/Search/useSearch.d.ts +60 -0
- package/dist/widgets/dist/packages/hooks/dist/hooks/utils.d.cts +11 -0
- package/dist/widgets/dist/packages/hooks/dist/hooks/utils.d.ts +11 -0
- package/dist/widgets/dist/packages/hooks/dist/types/search-filter-types.d.cts +28 -0
- package/dist/widgets/dist/packages/hooks/dist/types/search-filter-types.d.ts +28 -0
- package/dist/widgets/dist/packages/hooks/dist/types/test-types.d.cts +10 -0
- package/dist/widgets/dist/packages/hooks/dist/types/test-types.d.ts +10 -0
- package/dist/widgets/hooks/useGetWidgetStatus.cjs +27 -0
- package/dist/widgets/hooks/useGetWidgetStatus.js +26 -0
- package/dist/widgets/utils/functions.cjs +55 -0
- package/dist/widgets/utils/functions.js +48 -0
- package/dist/widgets-v2/SearchResults/index.cjs +5 -0
- package/dist/widgets-v2/SearchResults/index.d.cts +3 -0
- package/dist/widgets-v2/SearchResults/index.d.ts +4 -0
- package/dist/widgets-v2/SearchResults/index.js +3 -0
- package/dist/widgets-v2/SearchZeroState/index.cjs +8 -0
- package/dist/widgets-v2/SearchZeroState/index.d.cts +5 -0
- package/dist/widgets-v2/SearchZeroState/index.d.ts +6 -0
- package/dist/widgets-v2/SearchZeroState/index.js +3 -0
- package/dist/widgets-v2/SuggestionBar/index.cjs +5 -0
- package/dist/widgets-v2/SuggestionBar/index.d.cts +3 -0
- package/dist/widgets-v2/SuggestionBar/index.d.ts +4 -0
- package/dist/widgets-v2/SuggestionBar/index.js +3 -0
- package/dist/widgets-v2/SuggestionButtonContainer/index.cjs +5 -0
- package/dist/widgets-v2/SuggestionButtonContainer/index.d.cts +3 -0
- package/dist/widgets-v2/SuggestionButtonContainer/index.d.ts +3 -0
- package/dist/widgets-v2/SuggestionButtonContainer/index.js +3 -0
- package/package.json +158 -0
- package/src/CXIntegration/hooks/useUnifiedCXButton.ts +38 -0
- package/src/CXIntegration/implementations/useDefaultUnifiedCXButton.ts +8 -0
- package/src/CXIntegration/implementations/useGladlyUnifiedCXButton.ts +28 -0
- package/src/CXIntegration/implementations/useGorgiasUnifiedCXButton.ts +67 -0
- package/src/CXIntegration/implementations/useGrooveUnifiedCXButton.ts +83 -0
- package/src/CXIntegration/implementations/useKustomerUnifiedCXButton.ts +120 -0
- package/src/CXIntegration/implementations/useReDoUnifiedCXButton.ts +80 -0
- package/src/CXIntegration/implementations/useRichpanelUnifiedCXButton.ts +83 -0
- package/src/CXIntegration/implementations/useShopifyChatUnifiedCXButton.ts +78 -0
- package/src/CXIntegration/implementations/useTidioUnifiedCXButton.ts +34 -0
- package/src/CXIntegration/implementations/useZendeskUnifiedCXButton.ts +69 -0
- package/src/CXIntegration/implementations/useZowieUnifiedCXButton.ts +34 -0
- package/src/CXIntegration/types.ts +24 -0
- package/src/CXIntegration/utils/functions.ts +50 -0
- package/src/hocs/withBaseWidget/__tests__/withBaseWidget.test.tsx +689 -0
- package/src/hocs/withBaseWidget/index.ts +2 -0
- package/src/hocs/withBaseWidget/types.ts +39 -0
- package/src/hocs/withBaseWidget/withBaseWidget.tsx +126 -0
- package/src/stories/FloatingChatWidget.stories.tsx +56 -0
- package/src/stories/PromptButtonCarouselWithImageWidget.stories.tsx +54 -0
- package/src/stories/PromptCarouselWidget.stories.tsx +54 -0
- package/src/stories/SalesAgentTest/SalesAgentTest.stories.tsx +18 -0
- package/src/stories/SalesAgentTest/SalesAgentTest.tsx +111 -0
- package/src/stories/SalesAgentTest/index.ts +0 -0
- package/src/stories/SearchResults.stories.tsx +29 -0
- package/src/stories/SearchZeroState.stories.tsx +52 -0
- package/src/stories/SocialProofFlowWidget.stories.tsx +77 -0
- package/src/stories/SuggestionBar.stories.tsx +45 -0
- package/src/stories/TitledPromptCarouselWidget.stories.tsx +71 -0
- package/src/stories/TypingAnimationFlowWidget.stories.tsx +67 -0
- package/src/widgets/ChatPreviewComparisonWidget/ChatPreviewComparisonWidget.tsx +152 -0
- package/src/widgets/ChatPreviewComparisonWidget/index.ts +7 -0
- package/src/widgets/ChatPreviewLoadingWidget/ChatPreviewLoadingWidget.tsx +82 -0
- package/src/widgets/ChatPreviewLoadingWidget/index.ts +7 -0
- package/src/widgets/ChatPreviewWidget/ChatPreviewWidget.tsx +119 -0
- package/src/widgets/ChatPreviewWidget/index.ts +4 -0
- package/src/widgets/FloatingChatWidget/FloatingChatOverlay.tsx +115 -0
- package/src/widgets/FloatingChatWidget/FloatingChatWidget.tsx +110 -0
- package/src/widgets/FloatingChatWidget/constants.ts +1 -0
- package/src/widgets/FloatingChatWidget/index.ts +5 -0
- package/src/widgets/PromptButtonCarouselWithImageWidget/PromptButtonCarouselWithImageWidget.tsx +87 -0
- package/src/widgets/PromptButtonCarouselWithImageWidget/index.ts +6 -0
- package/src/widgets/PromptCarouselWidget/PromptCarouselWidget.tsx +83 -0
- package/src/widgets/PromptCarouselWidget/index.ts +2 -0
- package/src/widgets/SocialProofFlowWidget/SocialProofFlowWidget.tsx +61 -0
- package/src/widgets/SocialProofFlowWidget/index.ts +4 -0
- package/src/widgets/SocialProofWidget/SocialProofWidget.tsx +160 -0
- package/src/widgets/SocialProofWidget/index.ts +2 -0
- package/src/widgets/TitledPromptCarouselWidget/TitledPromptCarouselWidget.tsx +93 -0
- package/src/widgets/TitledPromptCarouselWidget/index.ts +2 -0
- package/src/widgets/TypingAnimationFlowWidget/TypingAnimationFlowWidget.tsx +61 -0
- package/src/widgets/TypingAnimationFlowWidget/index.ts +4 -0
- package/src/widgets/TypingAnimationWidget/TypingAnimationWidget.tsx +115 -0
- package/src/widgets/TypingAnimationWidget/index.ts +2 -0
- package/src/widgets/hooks/useGetWidgetStatus.tsx +29 -0
- package/src/widgets/utils/functions.ts +104 -0
- package/src/widgets-v2/SearchResults/index.ts +3 -0
- package/src/widgets-v2/SearchZeroState/index.ts +15 -0
- package/src/widgets-v2/SuggestionBar/index.ts +6 -0
- package/src/widgets-v2/SuggestionButtonContainer/index.ts +6 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
//#region ../widgets/dist/packages/hooks/dist/contexts/types.d.ts
|
|
2
|
+
|
|
3
|
+
type ProductCardVariant = 'filled' | 'bordered' | 'minimal' | 'transparentBordered';
|
|
4
|
+
type ProductCardHoverVariant = 'backgroundDark' | 'none';
|
|
5
|
+
type ProductCardLayoutVariant = 'normal' | 'tall' | 'square';
|
|
6
|
+
interface ProductCardConfig {
|
|
7
|
+
variant: ProductCardVariant;
|
|
8
|
+
hoverVariant: ProductCardHoverVariant;
|
|
9
|
+
layoutVariant: ProductCardLayoutVariant;
|
|
10
|
+
pricePrefix?: string;
|
|
11
|
+
}
|
|
12
|
+
type SuggestionButtonVariant = 'outlined' | 'outlinedLight' | 'primary' | 'secondary' | 'tertiary' | 'dark' | 'darkAccent' | 'darkPrimary' | 'secondaryDark' | 'secondaryAccent' | 'transparent' | 'transparentDark' | 'lightDark';
|
|
13
|
+
interface SuggestionButtonConfig {
|
|
14
|
+
variant?: SuggestionButtonVariant;
|
|
15
|
+
hoverVariant?: SuggestionButtonVariant;
|
|
16
|
+
answerVariant?: SuggestionButtonVariant;
|
|
17
|
+
borderRadius?: 'sm' | 'md' | 'lg';
|
|
18
|
+
}
|
|
19
|
+
type SearchZeroStateVariant = 'backgroundTertiary' | 'backgroundDark' | 'backgroundPrimary';
|
|
20
|
+
type SearchZeroStateLayout = 'input' | 'icon';
|
|
21
|
+
type SearchInputVariant = 'standard';
|
|
22
|
+
type SearchIconVariant = 'thin' | 'bold';
|
|
23
|
+
declare enum WidgetType {
|
|
24
|
+
ChatPreview = "ChatPreview",
|
|
25
|
+
SocialProofV2 = "SocialProofV2",
|
|
26
|
+
ChatPreviewV2 = "ChatPreviewV2",
|
|
27
|
+
ChatPreviewIsLoading = "ChatPreviewIsLoading",
|
|
28
|
+
ChatPreviewPostInteraction = "ChatPreviewPostInteraction",
|
|
29
|
+
ChatPreviewProductComparison = "ChatPreviewProductComparison",
|
|
30
|
+
SuggestionBar = "SuggestionBar",
|
|
31
|
+
SuggestionBarV2 = "SuggestionBarV2",
|
|
32
|
+
ImagePromptCard = "ImagePromptCard",
|
|
33
|
+
ImageBanner = "ImageBanner",
|
|
34
|
+
SingleImagePrompt = "SingleImagePrompt",
|
|
35
|
+
SearchPrompt = "SearchPrompt",
|
|
36
|
+
SearchZeroStateEntryPoint = "SearchZeroStateEntryPoint",
|
|
37
|
+
SearchResultsEntryPoint = "SearchResultsEntryPoint",
|
|
38
|
+
SearchOverlayHost = "SearchOverlayHost",
|
|
39
|
+
NoOp = "NoOp",
|
|
40
|
+
}
|
|
41
|
+
interface BaseWidgetConfig<T extends WidgetType> {
|
|
42
|
+
widgetConfigId: string;
|
|
43
|
+
type: T;
|
|
44
|
+
contentId?: string;
|
|
45
|
+
}
|
|
46
|
+
interface SearchEntryPointWidgetConfig extends BaseWidgetConfig<WidgetType.SearchZeroStateEntryPoint> {
|
|
47
|
+
searchZeroStateVariant: SearchZeroStateVariant;
|
|
48
|
+
searchInputVariant: SearchInputVariant;
|
|
49
|
+
searchIconVariant?: SearchIconVariant;
|
|
50
|
+
searchIconSize?: number;
|
|
51
|
+
suggestionButtonConfig: SuggestionButtonConfig;
|
|
52
|
+
layout: SearchZeroStateLayout;
|
|
53
|
+
searchBoxPlaceholder: string;
|
|
54
|
+
animationSpeed?: 'standard' | 'slow' | 'none';
|
|
55
|
+
compactLabel?: string;
|
|
56
|
+
initialSuggestions?: string[];
|
|
57
|
+
usingPortal?: boolean;
|
|
58
|
+
includeSubtitle?: boolean;
|
|
59
|
+
}
|
|
60
|
+
//#endregion
|
|
61
|
+
export { type ProductCardConfig, type SearchEntryPointWidgetConfig, SearchInputVariant, type SuggestionButtonVariant };
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { SearchResponseProductAttributes } from "../../application/models/api/response.cjs";
|
|
2
|
+
import { ProductCardConfig } from "../../contexts/types.cjs";
|
|
3
|
+
import { SearchResult } from "../../application/models/api/search.cjs";
|
|
4
|
+
import { SelectedFilterOption } from "../../atoms/search/searchAPI.cjs";
|
|
5
|
+
import { SearchFilterDatum, SelectFilterItem } from "../../types/search-filter-types.cjs";
|
|
6
|
+
import { SearchResultsState } from "../utils.cjs";
|
|
7
|
+
import { SearchResponseProduct } from "@spiffy-ai/commerce-api-client";
|
|
8
|
+
|
|
9
|
+
//#region ../widgets/dist/packages/hooks/dist/hooks/Search/useSearch.d.ts
|
|
10
|
+
|
|
11
|
+
//#region ../hooks/dist/hooks/Search/useSearch.d.ts
|
|
12
|
+
//#region src/hooks/Search/useSearch.d.ts
|
|
13
|
+
interface SearchResultsHocProps {
|
|
14
|
+
searchData: SearchResult | null;
|
|
15
|
+
searchResponseId: string;
|
|
16
|
+
merchantShortName: string;
|
|
17
|
+
productCardConfig: ProductCardConfig;
|
|
18
|
+
productList: SearchResponseProduct[];
|
|
19
|
+
autocompleteResults: string[];
|
|
20
|
+
searchFilters: SearchFilterDatum[];
|
|
21
|
+
availableDynamicFilters: {
|
|
22
|
+
name: string;
|
|
23
|
+
displayName: string;
|
|
24
|
+
}[];
|
|
25
|
+
selectedFilterOptions: SelectedFilterOption[];
|
|
26
|
+
recommendedProducts: SearchResponseProductAttributes['attributes'][];
|
|
27
|
+
recommendedProductsHeading: string;
|
|
28
|
+
searchOverlayHeading: string;
|
|
29
|
+
searchText: string;
|
|
30
|
+
query: string;
|
|
31
|
+
searchResultsState: SearchResultsState;
|
|
32
|
+
isLoadingSearch: boolean;
|
|
33
|
+
isFilterOpen: boolean;
|
|
34
|
+
shouldShowAutocomplete: boolean;
|
|
35
|
+
focusedIndex: number;
|
|
36
|
+
focusedOptionId: string | undefined;
|
|
37
|
+
filterButtonText: string;
|
|
38
|
+
onSearchInputChange: (value: string) => void;
|
|
39
|
+
onSubmitSearch: () => void;
|
|
40
|
+
onAutocompleteSelect: (suggestion: string) => void;
|
|
41
|
+
onKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => void;
|
|
42
|
+
onSearchInputFocus: () => void;
|
|
43
|
+
onSearchInputBlur: () => void;
|
|
44
|
+
onToggleDynamicFilter: ({
|
|
45
|
+
filter,
|
|
46
|
+
dynamicFilterDisplayName
|
|
47
|
+
}: {
|
|
48
|
+
filter: string;
|
|
49
|
+
dynamicFilterDisplayName: string;
|
|
50
|
+
}) => void;
|
|
51
|
+
onSelectFilterItem: SelectFilterItem;
|
|
52
|
+
onRemoveFilter: (filter: SelectedFilterOption) => void;
|
|
53
|
+
onClearAllFilters: () => void;
|
|
54
|
+
setIsFilterOpen: (isFilterOpen: boolean) => void;
|
|
55
|
+
resetSearch: () => void;
|
|
56
|
+
searchResultsRef: React.RefObject<HTMLDivElement>;
|
|
57
|
+
}
|
|
58
|
+
//#endregion
|
|
59
|
+
//#endregion
|
|
60
|
+
export { SearchResultsHocProps };
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { SearchResponseProductAttributes } from "../../application/models/api/response.js";
|
|
2
|
+
import { ProductCardConfig } from "../../contexts/types.js";
|
|
3
|
+
import { SearchResult } from "../../application/models/api/search.js";
|
|
4
|
+
import { SelectedFilterOption } from "../../atoms/search/searchAPI.js";
|
|
5
|
+
import { SearchFilterDatum, SelectFilterItem } from "../../types/search-filter-types.js";
|
|
6
|
+
import { SearchResultsState } from "../utils.js";
|
|
7
|
+
import { SearchResponseProduct } from "@spiffy-ai/commerce-api-client";
|
|
8
|
+
|
|
9
|
+
//#region ../widgets/dist/packages/hooks/dist/hooks/Search/useSearch.d.ts
|
|
10
|
+
|
|
11
|
+
//#region ../hooks/dist/hooks/Search/useSearch.d.ts
|
|
12
|
+
//#region src/hooks/Search/useSearch.d.ts
|
|
13
|
+
interface SearchResultsHocProps {
|
|
14
|
+
searchData: SearchResult | null;
|
|
15
|
+
searchResponseId: string;
|
|
16
|
+
merchantShortName: string;
|
|
17
|
+
productCardConfig: ProductCardConfig;
|
|
18
|
+
productList: SearchResponseProduct[];
|
|
19
|
+
autocompleteResults: string[];
|
|
20
|
+
searchFilters: SearchFilterDatum[];
|
|
21
|
+
availableDynamicFilters: {
|
|
22
|
+
name: string;
|
|
23
|
+
displayName: string;
|
|
24
|
+
}[];
|
|
25
|
+
selectedFilterOptions: SelectedFilterOption[];
|
|
26
|
+
recommendedProducts: SearchResponseProductAttributes['attributes'][];
|
|
27
|
+
recommendedProductsHeading: string;
|
|
28
|
+
searchOverlayHeading: string;
|
|
29
|
+
searchText: string;
|
|
30
|
+
query: string;
|
|
31
|
+
searchResultsState: SearchResultsState;
|
|
32
|
+
isLoadingSearch: boolean;
|
|
33
|
+
isFilterOpen: boolean;
|
|
34
|
+
shouldShowAutocomplete: boolean;
|
|
35
|
+
focusedIndex: number;
|
|
36
|
+
focusedOptionId: string | undefined;
|
|
37
|
+
filterButtonText: string;
|
|
38
|
+
onSearchInputChange: (value: string) => void;
|
|
39
|
+
onSubmitSearch: () => void;
|
|
40
|
+
onAutocompleteSelect: (suggestion: string) => void;
|
|
41
|
+
onKeyDown: (event: React.KeyboardEvent<HTMLInputElement>) => void;
|
|
42
|
+
onSearchInputFocus: () => void;
|
|
43
|
+
onSearchInputBlur: () => void;
|
|
44
|
+
onToggleDynamicFilter: ({
|
|
45
|
+
filter,
|
|
46
|
+
dynamicFilterDisplayName
|
|
47
|
+
}: {
|
|
48
|
+
filter: string;
|
|
49
|
+
dynamicFilterDisplayName: string;
|
|
50
|
+
}) => void;
|
|
51
|
+
onSelectFilterItem: SelectFilterItem;
|
|
52
|
+
onRemoveFilter: (filter: SelectedFilterOption) => void;
|
|
53
|
+
onClearAllFilters: () => void;
|
|
54
|
+
setIsFilterOpen: (isFilterOpen: boolean) => void;
|
|
55
|
+
resetSearch: () => void;
|
|
56
|
+
searchResultsRef: React.RefObject<HTMLDivElement>;
|
|
57
|
+
}
|
|
58
|
+
//#endregion
|
|
59
|
+
//#endregion
|
|
60
|
+
export { SearchResultsHocProps };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
//#region ../widgets/dist/packages/hooks/dist/hooks/utils.d.ts
|
|
2
|
+
//#region ../hooks/dist/hooks/utils.d.ts
|
|
3
|
+
|
|
4
|
+
declare enum SearchResultsState {
|
|
5
|
+
Loading = 0,
|
|
6
|
+
Results = 1,
|
|
7
|
+
NoResults = 2,
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
//#endregion
|
|
11
|
+
export { SearchResultsState };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
//#region ../widgets/dist/packages/hooks/dist/hooks/utils.d.ts
|
|
2
|
+
//#region ../hooks/dist/hooks/utils.d.ts
|
|
3
|
+
|
|
4
|
+
declare enum SearchResultsState {
|
|
5
|
+
Loading = 0,
|
|
6
|
+
Results = 1,
|
|
7
|
+
NoResults = 2,
|
|
8
|
+
}
|
|
9
|
+
//#endregion
|
|
10
|
+
//#endregion
|
|
11
|
+
export { SearchResultsState };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
//#region ../widgets/dist/packages/hooks/dist/types/search-filter-types.d.ts
|
|
2
|
+
//#region ../hooks/dist/types/search-filter-types.d.ts
|
|
3
|
+
|
|
4
|
+
type SelectFilterItem = ({
|
|
5
|
+
filterId,
|
|
6
|
+
filterItemId,
|
|
7
|
+
isSelected,
|
|
8
|
+
displayName
|
|
9
|
+
}: {
|
|
10
|
+
filterId: string;
|
|
11
|
+
filterItemId: string;
|
|
12
|
+
isSelected: boolean;
|
|
13
|
+
displayName: string;
|
|
14
|
+
}) => void;
|
|
15
|
+
type SearchFilterDatum = {
|
|
16
|
+
filterId: string;
|
|
17
|
+
displayName: string;
|
|
18
|
+
items: SearchFilterItemDatum[];
|
|
19
|
+
};
|
|
20
|
+
type SearchFilterItemDatum = {
|
|
21
|
+
filterItemId: string;
|
|
22
|
+
displayName: string;
|
|
23
|
+
productCount: number;
|
|
24
|
+
isSelected: boolean;
|
|
25
|
+
};
|
|
26
|
+
//#endregion
|
|
27
|
+
//#endregion
|
|
28
|
+
export { SearchFilterDatum, SelectFilterItem };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
//#region ../widgets/dist/packages/hooks/dist/types/search-filter-types.d.ts
|
|
2
|
+
//#region ../hooks/dist/types/search-filter-types.d.ts
|
|
3
|
+
|
|
4
|
+
type SelectFilterItem = ({
|
|
5
|
+
filterId,
|
|
6
|
+
filterItemId,
|
|
7
|
+
isSelected,
|
|
8
|
+
displayName
|
|
9
|
+
}: {
|
|
10
|
+
filterId: string;
|
|
11
|
+
filterItemId: string;
|
|
12
|
+
isSelected: boolean;
|
|
13
|
+
displayName: string;
|
|
14
|
+
}) => void;
|
|
15
|
+
type SearchFilterDatum = {
|
|
16
|
+
filterId: string;
|
|
17
|
+
displayName: string;
|
|
18
|
+
items: SearchFilterItemDatum[];
|
|
19
|
+
};
|
|
20
|
+
type SearchFilterItemDatum = {
|
|
21
|
+
filterItemId: string;
|
|
22
|
+
displayName: string;
|
|
23
|
+
productCount: number;
|
|
24
|
+
isSelected: boolean;
|
|
25
|
+
};
|
|
26
|
+
//#endregion
|
|
27
|
+
//#endregion
|
|
28
|
+
export { SearchFilterDatum, SelectFilterItem };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
//#region ../widgets/dist/packages/hooks/dist/types/test-types.d.ts
|
|
2
|
+
//#region ../hooks/dist/types/test-types.d.ts
|
|
3
|
+
//#region src/types/test-types.d.ts
|
|
4
|
+
interface TestProps {
|
|
5
|
+
dataTestId?: string;
|
|
6
|
+
}
|
|
7
|
+
//#endregion
|
|
8
|
+
//#endregion
|
|
9
|
+
//#endregion
|
|
10
|
+
export { TestProps };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
//#region ../widgets/dist/packages/hooks/dist/types/test-types.d.ts
|
|
2
|
+
//#region ../hooks/dist/types/test-types.d.ts
|
|
3
|
+
//#region src/types/test-types.d.ts
|
|
4
|
+
interface TestProps {
|
|
5
|
+
dataTestId?: string;
|
|
6
|
+
}
|
|
7
|
+
//#endregion
|
|
8
|
+
//#endregion
|
|
9
|
+
//#endregion
|
|
10
|
+
export { TestProps };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
const require_functions = require('../utils/functions.cjs');
|
|
3
|
+
let react = require("react");
|
|
4
|
+
let jotai = require("jotai");
|
|
5
|
+
let __envive_ai_react_hooks_atoms_chat_chatState = require("@envive-ai/react-hooks/atoms/chat/chatState");
|
|
6
|
+
let __envive_ai_react_hooks_atoms_chat = require("@envive-ai/react-hooks/atoms/chat");
|
|
7
|
+
|
|
8
|
+
//#region src/widgets/hooks/useGetWidgetStatus.tsx
|
|
9
|
+
const useGetWidgetStatus = () => {
|
|
10
|
+
const { messages } = (0, jotai.useAtomValue)(__envive_ai_react_hooks_atoms_chat.chatAtom);
|
|
11
|
+
const responseStreaming = (0, jotai.useAtomValue)(__envive_ai_react_hooks_atoms_chat_chatState.responseStreamingAtom);
|
|
12
|
+
const lastAssistantMessage = (0, jotai.useAtomValue)(__envive_ai_react_hooks_atoms_chat.lastAssistantMessageAtom);
|
|
13
|
+
return (0, react.useMemo)(() => ({
|
|
14
|
+
userHasInteractedValue: require_functions.userHasInteracted(messages),
|
|
15
|
+
userHasNotInteractedValue: require_functions.userHasNotInteracted(messages),
|
|
16
|
+
isLoadingValue: require_functions.isLoading(messages, responseStreaming),
|
|
17
|
+
isProductComparisonValue: require_functions.isProductComparison(lastAssistantMessage)
|
|
18
|
+
}), [
|
|
19
|
+
messages,
|
|
20
|
+
responseStreaming,
|
|
21
|
+
lastAssistantMessage
|
|
22
|
+
]);
|
|
23
|
+
};
|
|
24
|
+
var useGetWidgetStatus_default = useGetWidgetStatus;
|
|
25
|
+
|
|
26
|
+
//#endregion
|
|
27
|
+
exports.default = useGetWidgetStatus_default;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { isLoading, isProductComparison, userHasInteracted, userHasNotInteracted } from "../utils/functions.js";
|
|
2
|
+
import { useMemo } from "react";
|
|
3
|
+
import { useAtomValue } from "jotai";
|
|
4
|
+
import { responseStreamingAtom } from "@envive-ai/react-hooks/atoms/chat/chatState";
|
|
5
|
+
import { chatAtom, lastAssistantMessageAtom } from "@envive-ai/react-hooks/atoms/chat";
|
|
6
|
+
|
|
7
|
+
//#region src/widgets/hooks/useGetWidgetStatus.tsx
|
|
8
|
+
const useGetWidgetStatus = () => {
|
|
9
|
+
const { messages } = useAtomValue(chatAtom);
|
|
10
|
+
const responseStreaming = useAtomValue(responseStreamingAtom);
|
|
11
|
+
const lastAssistantMessage = useAtomValue(lastAssistantMessageAtom);
|
|
12
|
+
return useMemo(() => ({
|
|
13
|
+
userHasInteractedValue: userHasInteracted(messages),
|
|
14
|
+
userHasNotInteractedValue: userHasNotInteracted(messages),
|
|
15
|
+
isLoadingValue: isLoading(messages, responseStreaming),
|
|
16
|
+
isProductComparisonValue: isProductComparison(lastAssistantMessage)
|
|
17
|
+
}), [
|
|
18
|
+
messages,
|
|
19
|
+
responseStreaming,
|
|
20
|
+
lastAssistantMessage
|
|
21
|
+
]);
|
|
22
|
+
};
|
|
23
|
+
var useGetWidgetStatus_default = useGetWidgetStatus;
|
|
24
|
+
|
|
25
|
+
//#endregion
|
|
26
|
+
export { useGetWidgetStatus_default as default };
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
let __envive_ai_react_hooks_application_models = require("@envive-ai/react-hooks/application/models");
|
|
3
|
+
let __envive_ai_react_hooks_atoms_chat = require("@envive-ai/react-hooks/atoms/chat");
|
|
4
|
+
let __envive_ai_react_hooks_atoms_atomStore = require("@envive-ai/react-hooks/atoms/atomStore");
|
|
5
|
+
|
|
6
|
+
//#region src/widgets/utils/functions.ts
|
|
7
|
+
const getProductImageUrl = (lastAssistantMessage) => {
|
|
8
|
+
const productImageUrls = lastAssistantMessage != null ? lastAssistantMessage.reduce((acc, msg) => {
|
|
9
|
+
if (msg.type === __envive_ai_react_hooks_application_models.MessageType.Product && msg.metadata) {
|
|
10
|
+
if (msg.metadata.imageUrls?.length) return [...acc, ...msg.metadata.imageUrls];
|
|
11
|
+
if (msg.metadata.imageUrl) return [...acc, msg.metadata.imageUrl];
|
|
12
|
+
}
|
|
13
|
+
return acc;
|
|
14
|
+
}, []) : [];
|
|
15
|
+
return (() => {
|
|
16
|
+
const productImageUrlIndex = 1;
|
|
17
|
+
return productImageUrls.length > 0 && productImageUrlIndex > productImageUrls.length - 1 ? productImageUrls[productImageUrls.length - 1] : productImageUrls[productImageUrlIndex];
|
|
18
|
+
})();
|
|
19
|
+
};
|
|
20
|
+
const getRecentProductImageUrls = (lastMessages, currentProductId) => {
|
|
21
|
+
const productMessages = lastMessages.filter((message) => message.type === __envive_ai_react_hooks_application_models.MessageType.Product && message.metadata?.imageUrl).map((m) => m);
|
|
22
|
+
return [...productMessages.filter((m) => m.metadata?.id === currentProductId), ...productMessages.filter((m) => m.metadata?.id !== currentProductId)].map((m) => m.metadata.imageUrl);
|
|
23
|
+
};
|
|
24
|
+
const getMessageText = (lastAssistantMessage) => {
|
|
25
|
+
if (!lastAssistantMessage) return "";
|
|
26
|
+
const textMessage = lastAssistantMessage.find((msg) => msg.role === __envive_ai_react_hooks_application_models.MessageRole.Assistant && msg.type === __envive_ai_react_hooks_application_models.MessageType.Text);
|
|
27
|
+
return textMessage && textMessage.type === __envive_ai_react_hooks_application_models.MessageType.Text ? textMessage.metadata.content : "";
|
|
28
|
+
};
|
|
29
|
+
const userHasInteracted = (msgs) => {
|
|
30
|
+
if (msgs) return msgs.some((m) => m.some((msg) => msg.role === __envive_ai_react_hooks_application_models.MessageRole.User));
|
|
31
|
+
const { messages } = (0, __envive_ai_react_hooks_atoms_atomStore.getAtomStore)().get(__envive_ai_react_hooks_atoms_chat.chatAtom);
|
|
32
|
+
return messages.some((m) => m.some((msg) => msg.role === __envive_ai_react_hooks_application_models.MessageRole.User));
|
|
33
|
+
};
|
|
34
|
+
const userHasNotInteracted = (msgs) => {
|
|
35
|
+
if (msgs) return !msgs.some((m) => m.some((msg) => msg.role === __envive_ai_react_hooks_application_models.MessageRole.User));
|
|
36
|
+
return !(0, __envive_ai_react_hooks_atoms_atomStore.getAtomStore)().get(__envive_ai_react_hooks_atoms_chat.chatAtom).messages.some((m) => m.some((msg) => msg.role === __envive_ai_react_hooks_application_models.MessageRole.User));
|
|
37
|
+
};
|
|
38
|
+
const isLoading = (msgs, responseStream) => {
|
|
39
|
+
if (msgs) return responseStream || !responseStream && msgs.length === 0;
|
|
40
|
+
const { responseStreaming, messages } = (0, __envive_ai_react_hooks_atoms_atomStore.getAtomStore)().get(__envive_ai_react_hooks_atoms_chat.chatAtom);
|
|
41
|
+
return responseStreaming || !responseStreaming && messages.length === 0;
|
|
42
|
+
};
|
|
43
|
+
const isProductComparison = (lastMsg) => {
|
|
44
|
+
if (lastMsg) return lastMsg?.filter((msg) => msg.type === __envive_ai_react_hooks_application_models.MessageType.Product).length === 2;
|
|
45
|
+
return (0, __envive_ai_react_hooks_atoms_atomStore.getAtomStore)().get(__envive_ai_react_hooks_atoms_chat.lastAssistantMessageAtom)?.filter((msg) => msg.type === __envive_ai_react_hooks_application_models.MessageType.Product).length === 2;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
//#endregion
|
|
49
|
+
exports.getMessageText = getMessageText;
|
|
50
|
+
exports.getProductImageUrl = getProductImageUrl;
|
|
51
|
+
exports.getRecentProductImageUrls = getRecentProductImageUrls;
|
|
52
|
+
exports.isLoading = isLoading;
|
|
53
|
+
exports.isProductComparison = isProductComparison;
|
|
54
|
+
exports.userHasInteracted = userHasInteracted;
|
|
55
|
+
exports.userHasNotInteracted = userHasNotInteracted;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { MessageRole, MessageType } from "@envive-ai/react-hooks/application/models";
|
|
2
|
+
import { chatAtom, lastAssistantMessageAtom } from "@envive-ai/react-hooks/atoms/chat";
|
|
3
|
+
import { getAtomStore } from "@envive-ai/react-hooks/atoms/atomStore";
|
|
4
|
+
|
|
5
|
+
//#region src/widgets/utils/functions.ts
|
|
6
|
+
const getProductImageUrl = (lastAssistantMessage) => {
|
|
7
|
+
const productImageUrls = lastAssistantMessage != null ? lastAssistantMessage.reduce((acc, msg) => {
|
|
8
|
+
if (msg.type === MessageType.Product && msg.metadata) {
|
|
9
|
+
if (msg.metadata.imageUrls?.length) return [...acc, ...msg.metadata.imageUrls];
|
|
10
|
+
if (msg.metadata.imageUrl) return [...acc, msg.metadata.imageUrl];
|
|
11
|
+
}
|
|
12
|
+
return acc;
|
|
13
|
+
}, []) : [];
|
|
14
|
+
return (() => {
|
|
15
|
+
const productImageUrlIndex = 1;
|
|
16
|
+
return productImageUrls.length > 0 && productImageUrlIndex > productImageUrls.length - 1 ? productImageUrls[productImageUrls.length - 1] : productImageUrls[productImageUrlIndex];
|
|
17
|
+
})();
|
|
18
|
+
};
|
|
19
|
+
const getRecentProductImageUrls = (lastMessages, currentProductId) => {
|
|
20
|
+
const productMessages = lastMessages.filter((message) => message.type === MessageType.Product && message.metadata?.imageUrl).map((m) => m);
|
|
21
|
+
return [...productMessages.filter((m) => m.metadata?.id === currentProductId), ...productMessages.filter((m) => m.metadata?.id !== currentProductId)].map((m) => m.metadata.imageUrl);
|
|
22
|
+
};
|
|
23
|
+
const getMessageText = (lastAssistantMessage) => {
|
|
24
|
+
if (!lastAssistantMessage) return "";
|
|
25
|
+
const textMessage = lastAssistantMessage.find((msg) => msg.role === MessageRole.Assistant && msg.type === MessageType.Text);
|
|
26
|
+
return textMessage && textMessage.type === MessageType.Text ? textMessage.metadata.content : "";
|
|
27
|
+
};
|
|
28
|
+
const userHasInteracted = (msgs) => {
|
|
29
|
+
if (msgs) return msgs.some((m) => m.some((msg) => msg.role === MessageRole.User));
|
|
30
|
+
const { messages } = getAtomStore().get(chatAtom);
|
|
31
|
+
return messages.some((m) => m.some((msg) => msg.role === MessageRole.User));
|
|
32
|
+
};
|
|
33
|
+
const userHasNotInteracted = (msgs) => {
|
|
34
|
+
if (msgs) return !msgs.some((m) => m.some((msg) => msg.role === MessageRole.User));
|
|
35
|
+
return !getAtomStore().get(chatAtom).messages.some((m) => m.some((msg) => msg.role === MessageRole.User));
|
|
36
|
+
};
|
|
37
|
+
const isLoading = (msgs, responseStream) => {
|
|
38
|
+
if (msgs) return responseStream || !responseStream && msgs.length === 0;
|
|
39
|
+
const { responseStreaming, messages } = getAtomStore().get(chatAtom);
|
|
40
|
+
return responseStreaming || !responseStreaming && messages.length === 0;
|
|
41
|
+
};
|
|
42
|
+
const isProductComparison = (lastMsg) => {
|
|
43
|
+
if (lastMsg) return lastMsg?.filter((msg) => msg.type === MessageType.Product).length === 2;
|
|
44
|
+
return getAtomStore().get(lastAssistantMessageAtom)?.filter((msg) => msg.type === MessageType.Product).length === 2;
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
//#endregion
|
|
48
|
+
export { getMessageText, getProductImageUrl, getRecentProductImageUrls, isLoading, isProductComparison, userHasInteracted, userHasNotInteracted };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
let __envive_ai_react_widgets_SearchResults = require("@envive-ai/react-widgets/SearchResults");
|
|
3
|
+
|
|
4
|
+
exports.SearchResults = __envive_ai_react_widgets_SearchResults.SearchResults;
|
|
5
|
+
exports.SearchResultsWidget = __envive_ai_react_widgets_SearchResults.SearchResultsWidget;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { SearchResultsWidget } from "../../widgets/dist/SearchResults/SearchResultsWidget.js";
|
|
2
|
+
import { SearchResults } from "../../widgets/dist/SearchResults/SearchResults.js";
|
|
3
|
+
import "../../widgets/dist/SearchResults/index.js";
|
|
4
|
+
export { SearchResults, SearchResultsWidget };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
let __envive_ai_react_widgets_SearchZeroState = require("@envive-ai/react-widgets/SearchZeroState");
|
|
3
|
+
|
|
4
|
+
exports.SearchEntryPointWidgetConfig = __envive_ai_react_widgets_SearchZeroState.SearchEntryPointWidgetConfig;
|
|
5
|
+
exports.SearchInputVariant = __envive_ai_react_widgets_SearchZeroState.SearchInputVariant;
|
|
6
|
+
exports.SearchZeroState = __envive_ai_react_widgets_SearchZeroState.SearchZeroState;
|
|
7
|
+
exports.SearchZeroStateProps = __envive_ai_react_widgets_SearchZeroState.SearchZeroStateProps;
|
|
8
|
+
exports.SearchZeroStateWidget = __envive_ai_react_widgets_SearchZeroState.SearchZeroStateWidget;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { SearchEntryPointWidgetConfig, SearchInputVariant } from "../../widgets/dist/packages/hooks/dist/contexts/types.cjs";
|
|
2
|
+
import { SearchZeroStateProps } from "../../widgets/dist/SearchZeroState/types.cjs";
|
|
3
|
+
import { SearchZeroState } from "../../widgets/dist/SearchZeroState/SearchZeroState.cjs";
|
|
4
|
+
import { SearchZeroStateWidget } from "../../widgets/dist/SearchZeroState/SearchZeroStateWidget.cjs";
|
|
5
|
+
export { SearchEntryPointWidgetConfig, SearchInputVariant, SearchZeroState, SearchZeroStateProps, SearchZeroStateWidget };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { SearchEntryPointWidgetConfig, SearchInputVariant } from "../../widgets/dist/packages/hooks/dist/contexts/types.js";
|
|
2
|
+
import { SearchZeroStateProps } from "../../widgets/dist/SearchZeroState/types.js";
|
|
3
|
+
import { SearchZeroState } from "../../widgets/dist/SearchZeroState/SearchZeroState.js";
|
|
4
|
+
import { SearchZeroStateWidget } from "../../widgets/dist/SearchZeroState/SearchZeroStateWidget.js";
|
|
5
|
+
import "../../widgets/dist/SearchZeroState/index.js";
|
|
6
|
+
export { SearchEntryPointWidgetConfig, SearchInputVariant, SearchZeroState, SearchZeroStateProps, SearchZeroStateWidget };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { SearchEntryPointWidgetConfig, SearchInputVariant, SearchZeroState, SearchZeroStateProps, SearchZeroStateWidget } from "@envive-ai/react-widgets/SearchZeroState";
|
|
2
|
+
|
|
3
|
+
export { SearchEntryPointWidgetConfig, SearchInputVariant, SearchZeroState, SearchZeroStateProps, SearchZeroStateWidget };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
let __envive_ai_react_widgets_SuggestionBar = require("@envive-ai/react-widgets/SuggestionBar");
|
|
3
|
+
|
|
4
|
+
exports.SuggestionBar = __envive_ai_react_widgets_SuggestionBar.SuggestionBar;
|
|
5
|
+
exports.SuggestionBarLocationForMetrics = __envive_ai_react_widgets_SuggestionBar.SuggestionBarLocationForMetrics;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { SuggestionBarLocationForMetrics } from "../../widgets/dist/SuggestionBar/types.js";
|
|
2
|
+
import { SuggestionBar } from "../../widgets/dist/SuggestionBar/SuggestionBar.js";
|
|
3
|
+
import "../../widgets/dist/SuggestionBar/index.js";
|
|
4
|
+
export { SuggestionBar, SuggestionBarLocationForMetrics };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
|
|
2
|
+
let __envive_ai_react_widgets_SuggestionButtonContainer = require("@envive-ai/react-widgets/SuggestionButtonContainer");
|
|
3
|
+
|
|
4
|
+
exports.SuggestionButtonContainer = __envive_ai_react_widgets_SuggestionButtonContainer.SuggestionButtonContainer;
|
|
5
|
+
exports.SuggestionButtonContainerProps = __envive_ai_react_widgets_SuggestionButtonContainer.SuggestionButtonContainerProps;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { SuggestionButtonContainerProps } from "../../widgets/dist/SuggestionButtonContainer/types.cjs";
|
|
2
|
+
import { SuggestionButtonContainer } from "../../widgets/dist/SuggestionButtonContainer/SuggestionButtonContainer.cjs";
|
|
3
|
+
export { SuggestionButtonContainer, SuggestionButtonContainerProps };
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { SuggestionButtonContainerProps } from "../../widgets/dist/SuggestionButtonContainer/types.js";
|
|
2
|
+
import { SuggestionButtonContainer } from "../../widgets/dist/SuggestionButtonContainer/SuggestionButtonContainer.js";
|
|
3
|
+
export { SuggestionButtonContainer, SuggestionButtonContainerProps };
|