@athoscommerce/snap-preact 1.4.0 → 1.5.1-beta.110
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/cjs/components/src/components/Atoms/Button/Button.d.ts +1 -1
- package/dist/cjs/components/src/components/Atoms/Button/Button.d.ts.map +1 -1
- package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts +7 -0
- package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts.map +1 -0
- package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.js +85 -0
- package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts +2 -0
- package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts.map +1 -0
- package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/index.js +17 -0
- package/dist/cjs/components/src/components/Atoms/Dropdown/Dropdown.d.ts +1 -0
- package/dist/cjs/components/src/components/Atoms/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/cjs/components/src/components/Atoms/Dropdown/Dropdown.js +30 -13
- package/dist/cjs/components/src/components/Atoms/Icon/paths.d.ts +21 -0
- package/dist/cjs/components/src/components/Atoms/Icon/paths.d.ts.map +1 -1
- package/dist/cjs/components/src/components/Atoms/Icon/paths.js +21 -0
- package/dist/cjs/components/src/components/Molecules/CalloutBadge/CalloutBadge.js +2 -2
- package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.d.ts +20 -0
- package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.d.ts.map +1 -0
- package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.js +186 -0
- package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/index.d.ts +2 -0
- package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/index.d.ts.map +1 -0
- package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/index.js +17 -0
- package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts +18 -0
- package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts.map +1 -0
- package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.js +124 -0
- package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts +2 -0
- package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts.map +1 -0
- package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/index.js +17 -0
- package/dist/cjs/components/src/components/Molecules/ChatMessageText/ChatMessageText.d.ts +18 -0
- package/dist/cjs/components/src/components/Molecules/ChatMessageText/ChatMessageText.d.ts.map +1 -0
- package/dist/cjs/components/src/components/Molecules/ChatMessageText/ChatMessageText.js +183 -0
- package/dist/cjs/components/src/components/Molecules/ChatMessageText/index.d.ts +2 -0
- package/dist/cjs/components/src/components/Molecules/ChatMessageText/index.d.ts.map +1 -0
- package/dist/cjs/components/src/components/Molecules/ChatMessageText/index.js +17 -0
- package/dist/cjs/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.d.ts +15 -0
- package/dist/cjs/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.d.ts.map +1 -0
- package/dist/cjs/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.js +255 -0
- package/dist/cjs/components/src/components/Molecules/ChatMessageUser/index.d.ts +2 -0
- package/dist/cjs/components/src/components/Molecules/ChatMessageUser/index.d.ts.map +1 -0
- package/dist/cjs/components/src/components/Molecules/ChatMessageUser/index.js +17 -0
- package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts +17 -0
- package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts.map +1 -0
- package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.js +122 -0
- package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts +2 -0
- package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts.map +1 -0
- package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/index.js +17 -0
- package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts +25 -0
- package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts.map +1 -0
- package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.js +474 -0
- package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts +2 -0
- package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts.map +1 -0
- package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/index.js +17 -0
- package/dist/cjs/components/src/components/Molecules/ChatResult/ChatResult.d.ts +11 -0
- package/dist/cjs/components/src/components/Molecules/ChatResult/ChatResult.d.ts.map +1 -0
- package/dist/cjs/components/src/components/Molecules/ChatResult/ChatResult.js +189 -0
- package/dist/cjs/components/src/components/Molecules/ChatResult/index.d.ts +2 -0
- package/dist/cjs/components/src/components/Molecules/ChatResult/index.d.ts.map +1 -0
- package/dist/cjs/components/src/components/Molecules/ChatResult/index.js +17 -0
- package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.d.ts +12 -0
- package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.d.ts.map +1 -0
- package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.js +133 -0
- package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/index.d.ts +2 -0
- package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/index.d.ts.map +1 -0
- package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/index.js +17 -0
- package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.d.ts +15 -0
- package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.d.ts.map +1 -0
- package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.js +99 -0
- package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/index.d.ts +2 -0
- package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/index.d.ts.map +1 -0
- package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/index.js +17 -0
- package/dist/cjs/components/src/components/Molecules/OverlayBadge/OverlayBadge.js +2 -2
- package/dist/cjs/components/src/components/Molecules/Result/Result.d.ts +5 -3
- package/dist/cjs/components/src/components/Molecules/Result/Result.d.ts.map +1 -1
- package/dist/cjs/components/src/components/Molecules/Result/Result.js +14 -8
- package/dist/cjs/components/src/components/Molecules/SearchInput/SearchInput.d.ts +6 -1
- package/dist/cjs/components/src/components/Molecules/SearchInput/SearchInput.d.ts.map +1 -1
- package/dist/cjs/components/src/components/Molecules/SearchInput/SearchInput.js +20 -3
- package/dist/cjs/components/src/components/Molecules/Slideout/Slideout.d.ts.map +1 -1
- package/dist/cjs/components/src/components/Molecules/Slideout/Slideout.js +30 -12
- package/dist/cjs/components/src/components/Organisms/Chat/Chat.d.ts +27 -0
- package/dist/cjs/components/src/components/Organisms/Chat/Chat.d.ts.map +1 -0
- package/dist/cjs/components/src/components/Organisms/Chat/Chat.js +815 -0
- package/dist/cjs/components/src/components/Organisms/Chat/Chat.styles.d.ts +16 -0
- package/dist/cjs/components/src/components/Organisms/Chat/Chat.styles.d.ts.map +1 -0
- package/dist/cjs/components/src/components/Organisms/Chat/Chat.styles.js +1090 -0
- package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatFileUpload.d.ts +32 -0
- package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatFileUpload.d.ts.map +1 -0
- package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatFileUpload.js +104 -0
- package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatGestures.d.ts +40 -0
- package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatGestures.d.ts.map +1 -0
- package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatGestures.js +87 -0
- package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatOverflow.d.ts +44 -0
- package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatOverflow.d.ts.map +1 -0
- package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatOverflow.js +116 -0
- package/dist/cjs/components/src/components/Organisms/Chat/index.d.ts +2 -0
- package/dist/cjs/components/src/components/Organisms/Chat/index.d.ts.map +1 -0
- package/dist/cjs/components/src/components/Organisms/Chat/index.js +17 -0
- package/dist/cjs/components/src/components/Organisms/Facet/Facet.js +2 -1
- package/dist/cjs/components/src/components/Organisms/FacetsHorizontal/FacetsHorizontal.js +2 -1
- package/dist/cjs/components/src/components/Organisms/Results/Results.js +1 -1
- package/dist/cjs/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.d.ts +1 -1
- package/dist/cjs/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.d.ts.map +1 -1
- package/dist/cjs/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.js +3 -1
- package/dist/cjs/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts +1 -1
- package/dist/cjs/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts.map +1 -1
- package/dist/cjs/components/src/components/Templates/AutocompleteModal/AutocompleteModal.js +3 -1
- package/dist/cjs/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.d.ts +1 -1
- package/dist/cjs/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.d.ts.map +1 -1
- package/dist/cjs/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.js +3 -1
- package/dist/cjs/components/src/components/Templates/Chat/Chat.d.ts +12 -0
- package/dist/cjs/components/src/components/Templates/Chat/Chat.d.ts.map +1 -0
- package/dist/cjs/components/src/components/Templates/Chat/Chat.js +55 -0
- package/dist/cjs/components/src/components/Templates/Chat/index.d.ts +2 -0
- package/dist/cjs/components/src/components/Templates/Chat/index.d.ts.map +1 -0
- package/dist/cjs/components/src/components/Templates/Chat/index.js +17 -0
- package/dist/cjs/components/src/index.d.ts +11 -0
- package/dist/cjs/components/src/index.d.ts.map +1 -1
- package/dist/cjs/components/src/index.js +13 -1
- package/dist/cjs/components/src/providers/withTracking.d.ts +2 -2
- package/dist/cjs/components/src/providers/withTracking.d.ts.map +1 -1
- package/dist/cjs/components/src/themes/base/components/templates/chat.d.ts +4 -0
- package/dist/cjs/components/src/themes/base/components/templates/chat.d.ts.map +1 -0
- package/dist/cjs/components/src/themes/base/components/templates/chat.js +6 -0
- package/dist/cjs/components/src/themes/base/components/templates/index.d.ts.map +1 -1
- package/dist/cjs/components/src/themes/base/components/templates/index.js +5 -4
- package/dist/cjs/components/src/themes/bocachica/components/templates/chat.d.ts +4 -0
- package/dist/cjs/components/src/themes/bocachica/components/templates/chat.d.ts.map +1 -0
- package/dist/cjs/components/src/themes/bocachica/components/templates/chat.js +6 -0
- package/dist/cjs/components/src/themes/bocachica/components/templates/index.d.ts.map +1 -1
- package/dist/cjs/components/src/themes/bocachica/components/templates/index.js +5 -4
- package/dist/cjs/components/src/themes/everest/components/templates/chat.d.ts +4 -0
- package/dist/cjs/components/src/themes/everest/components/templates/chat.d.ts.map +1 -0
- package/dist/cjs/components/src/themes/everest/components/templates/chat.js +6 -0
- package/dist/cjs/components/src/themes/everest/components/templates/index.d.ts.map +1 -1
- package/dist/cjs/components/src/themes/everest/components/templates/index.js +5 -4
- package/dist/cjs/components/src/themes/matterhorn/components/templates/chat.d.ts +4 -0
- package/dist/cjs/components/src/themes/matterhorn/components/templates/chat.d.ts.map +1 -0
- package/dist/cjs/components/src/themes/matterhorn/components/templates/chat.js +6 -0
- package/dist/cjs/components/src/themes/matterhorn/components/templates/index.d.ts.map +1 -1
- package/dist/cjs/components/src/themes/matterhorn/components/templates/index.js +5 -4
- package/dist/cjs/components/src/themes/pike/components/templates/chat.d.ts +4 -0
- package/dist/cjs/components/src/themes/pike/components/templates/chat.d.ts.map +1 -0
- package/dist/cjs/components/src/themes/pike/components/templates/chat.js +6 -0
- package/dist/cjs/components/src/themes/pike/components/templates/index.d.ts.map +1 -1
- package/dist/cjs/components/src/themes/pike/components/templates/index.js +5 -4
- package/dist/cjs/components/src/themes/snapnco/components/templates/chat.d.ts +4 -0
- package/dist/cjs/components/src/themes/snapnco/components/templates/chat.d.ts.map +1 -0
- package/dist/cjs/components/src/themes/snapnco/components/templates/chat.js +6 -0
- package/dist/cjs/components/src/themes/snapnco/components/templates/index.d.ts.map +1 -1
- package/dist/cjs/components/src/themes/snapnco/components/templates/index.js +5 -4
- package/dist/cjs/components/src/themes/snappy/components/templates/chat.d.ts +4 -0
- package/dist/cjs/components/src/themes/snappy/components/templates/chat.d.ts.map +1 -0
- package/dist/cjs/components/src/themes/snappy/components/templates/chat.js +6 -0
- package/dist/cjs/components/src/themes/snappy/components/templates/index.d.ts.map +1 -1
- package/dist/cjs/components/src/themes/snappy/components/templates/index.js +5 -4
- package/dist/cjs/components/src/themes/themeComponents/chat.d.ts +4 -0
- package/dist/cjs/components/src/themes/themeComponents/chat.d.ts.map +1 -0
- package/dist/cjs/components/src/themes/themeComponents/chat.js +14 -0
- package/dist/cjs/components/src/utilities/Colour/Colour.d.ts +11 -0
- package/dist/cjs/components/src/utilities/Colour/Colour.d.ts.map +1 -1
- package/dist/cjs/components/src/utilities/Colour/Colour.js +32 -0
- package/dist/cjs/components/src/utilities/snapify.d.ts +3 -2
- package/dist/cjs/components/src/utilities/snapify.d.ts.map +1 -1
- package/dist/cjs/components/src/utilities/snapify.js +48 -0
- package/dist/cjs/src/Instantiators/RecommendationInstantiator.d.ts +1 -0
- package/dist/cjs/src/Instantiators/RecommendationInstantiator.d.ts.map +1 -1
- package/dist/cjs/src/Instantiators/RecommendationInstantiator.js +161 -123
- package/dist/cjs/src/Snap.d.ts +3 -2
- package/dist/cjs/src/Snap.d.ts.map +1 -1
- package/dist/cjs/src/Snap.js +142 -30
- package/dist/cjs/src/Templates/SnapTemplates.d.ts +2 -1
- package/dist/cjs/src/Templates/SnapTemplates.d.ts.map +1 -1
- package/dist/cjs/src/Templates/SnapTemplates.js +67 -7
- package/dist/cjs/src/Templates/Stores/LibraryStore.d.ts +4 -0
- package/dist/cjs/src/Templates/Stores/LibraryStore.d.ts.map +1 -1
- package/dist/cjs/src/Templates/Stores/LibraryStore.js +19 -0
- package/dist/cjs/src/Templates/Stores/TemplateStore.d.ts +21 -6
- package/dist/cjs/src/Templates/Stores/TemplateStore.d.ts.map +1 -1
- package/dist/cjs/src/Templates/Stores/TemplateStore.js +2 -1
- package/dist/cjs/src/Templates/Stores/library/components/Chat.d.ts +2 -0
- package/dist/cjs/src/Templates/Stores/library/components/Chat.d.ts.map +1 -0
- package/dist/cjs/src/Templates/Stores/library/components/Chat.js +5 -0
- package/dist/cjs/src/Templates/Stores/library/languages/es.d.ts.map +1 -1
- package/dist/cjs/src/Templates/Stores/library/languages/es.js +5 -0
- package/dist/cjs/src/Templates/Stores/library/languages/fr.d.ts.map +1 -1
- package/dist/cjs/src/Templates/Stores/library/languages/fr.js +5 -0
- package/dist/cjs/src/create/createChatController.d.ts +5 -0
- package/dist/cjs/src/create/createChatController.d.ts.map +1 -0
- package/dist/cjs/src/create/createChatController.js +43 -0
- package/dist/cjs/src/setupEvents.d.ts +13 -0
- package/dist/cjs/src/setupEvents.d.ts.map +1 -1
- package/dist/cjs/src/setupEvents.js +87 -0
- package/dist/cjs/src/types.d.ts +15 -3
- package/dist/cjs/src/types.d.ts.map +1 -1
- package/dist/esm/components/src/components/Atoms/Button/Button.d.ts +1 -1
- package/dist/esm/components/src/components/Atoms/Button/Button.d.ts.map +1 -1
- package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts +7 -0
- package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts.map +1 -0
- package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.js +67 -0
- package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts +2 -0
- package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts.map +1 -0
- package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.js +1 -0
- package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.d.ts +1 -0
- package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.js +33 -9
- package/dist/esm/components/src/components/Atoms/Icon/paths.d.ts +21 -0
- package/dist/esm/components/src/components/Atoms/Icon/paths.d.ts.map +1 -1
- package/dist/esm/components/src/components/Atoms/Icon/paths.js +21 -0
- package/dist/esm/components/src/components/Molecules/CalloutBadge/CalloutBadge.js +1 -1
- package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.d.ts +20 -0
- package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.d.ts.map +1 -0
- package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.js +168 -0
- package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.d.ts +2 -0
- package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.d.ts.map +1 -0
- package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.js +1 -0
- package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts +18 -0
- package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts.map +1 -0
- package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.js +118 -0
- package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts +2 -0
- package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts.map +1 -0
- package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.js +1 -0
- package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.d.ts +18 -0
- package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.d.ts.map +1 -0
- package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.js +164 -0
- package/dist/esm/components/src/components/Molecules/ChatMessageText/index.d.ts +2 -0
- package/dist/esm/components/src/components/Molecules/ChatMessageText/index.d.ts.map +1 -0
- package/dist/esm/components/src/components/Molecules/ChatMessageText/index.js +1 -0
- package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.d.ts +15 -0
- package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.d.ts.map +1 -0
- package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.js +223 -0
- package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.d.ts +2 -0
- package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.d.ts.map +1 -0
- package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.js +1 -0
- package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts +17 -0
- package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts.map +1 -0
- package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.js +100 -0
- package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts +2 -0
- package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts.map +1 -0
- package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.js +1 -0
- package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts +25 -0
- package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts.map +1 -0
- package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.js +449 -0
- package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts +2 -0
- package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts.map +1 -0
- package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.js +1 -0
- package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.d.ts +11 -0
- package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.d.ts.map +1 -0
- package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.js +171 -0
- package/dist/esm/components/src/components/Molecules/ChatResult/index.d.ts +2 -0
- package/dist/esm/components/src/components/Molecules/ChatResult/index.d.ts.map +1 -0
- package/dist/esm/components/src/components/Molecules/ChatResult/index.js +1 -0
- package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.d.ts +12 -0
- package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.d.ts.map +1 -0
- package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.js +112 -0
- package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.d.ts +2 -0
- package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.d.ts.map +1 -0
- package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.js +1 -0
- package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.d.ts +15 -0
- package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.d.ts.map +1 -0
- package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.js +80 -0
- package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.d.ts +2 -0
- package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.d.ts.map +1 -0
- package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.js +1 -0
- package/dist/esm/components/src/components/Molecules/OverlayBadge/OverlayBadge.js +1 -1
- package/dist/esm/components/src/components/Molecules/Result/Result.d.ts +5 -3
- package/dist/esm/components/src/components/Molecules/Result/Result.d.ts.map +1 -1
- package/dist/esm/components/src/components/Molecules/Result/Result.js +12 -7
- package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.d.ts +6 -1
- package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.d.ts.map +1 -1
- package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.js +36 -3
- package/dist/esm/components/src/components/Molecules/Slideout/Slideout.d.ts.map +1 -1
- package/dist/esm/components/src/components/Molecules/Slideout/Slideout.js +30 -12
- package/dist/esm/components/src/components/Organisms/Chat/Chat.d.ts +27 -0
- package/dist/esm/components/src/components/Organisms/Chat/Chat.d.ts.map +1 -0
- package/dist/esm/components/src/components/Organisms/Chat/Chat.js +726 -0
- package/dist/esm/components/src/components/Organisms/Chat/Chat.styles.d.ts +16 -0
- package/dist/esm/components/src/components/Organisms/Chat/Chat.styles.d.ts.map +1 -0
- package/dist/esm/components/src/components/Organisms/Chat/Chat.styles.js +1105 -0
- package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.d.ts +32 -0
- package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.d.ts.map +1 -0
- package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.js +54 -0
- package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.d.ts +40 -0
- package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.d.ts.map +1 -0
- package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.js +81 -0
- package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.d.ts +44 -0
- package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.d.ts.map +1 -0
- package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.js +110 -0
- package/dist/esm/components/src/components/Organisms/Chat/index.d.ts +2 -0
- package/dist/esm/components/src/components/Organisms/Chat/index.d.ts.map +1 -0
- package/dist/esm/components/src/components/Organisms/Chat/index.js +1 -0
- package/dist/esm/components/src/components/Organisms/Facet/Facet.js +1 -1
- package/dist/esm/components/src/components/Organisms/FacetsHorizontal/FacetsHorizontal.js +1 -1
- package/dist/esm/components/src/components/Organisms/Results/Results.js +1 -1
- package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.d.ts +1 -1
- package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.d.ts.map +1 -1
- package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.js +4 -1
- package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts +1 -1
- package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts.map +1 -1
- package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.js +4 -1
- package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.d.ts +1 -1
- package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.d.ts.map +1 -1
- package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.js +4 -1
- package/dist/esm/components/src/components/Templates/Chat/Chat.d.ts +12 -0
- package/dist/esm/components/src/components/Templates/Chat/Chat.d.ts.map +1 -0
- package/dist/esm/components/src/components/Templates/Chat/Chat.js +42 -0
- package/dist/esm/components/src/components/Templates/Chat/index.d.ts +2 -0
- package/dist/esm/components/src/components/Templates/Chat/index.d.ts.map +1 -0
- package/dist/esm/components/src/components/Templates/Chat/index.js +1 -0
- package/dist/esm/components/src/index.d.ts +11 -0
- package/dist/esm/components/src/index.d.ts.map +1 -1
- package/dist/esm/components/src/index.js +11 -0
- package/dist/esm/components/src/providers/withTracking.d.ts +2 -2
- package/dist/esm/components/src/providers/withTracking.d.ts.map +1 -1
- package/dist/esm/components/src/themes/base/components/templates/chat.d.ts +4 -0
- package/dist/esm/components/src/themes/base/components/templates/chat.d.ts.map +1 -0
- package/dist/esm/components/src/themes/base/components/templates/chat.js +3 -0
- package/dist/esm/components/src/themes/base/components/templates/index.d.ts.map +1 -1
- package/dist/esm/components/src/themes/base/components/templates/index.js +5 -0
- package/dist/esm/components/src/themes/bocachica/components/templates/chat.d.ts +4 -0
- package/dist/esm/components/src/themes/bocachica/components/templates/chat.d.ts.map +1 -0
- package/dist/esm/components/src/themes/bocachica/components/templates/chat.js +3 -0
- package/dist/esm/components/src/themes/bocachica/components/templates/index.d.ts.map +1 -1
- package/dist/esm/components/src/themes/bocachica/components/templates/index.js +5 -0
- package/dist/esm/components/src/themes/everest/components/templates/chat.d.ts +4 -0
- package/dist/esm/components/src/themes/everest/components/templates/chat.d.ts.map +1 -0
- package/dist/esm/components/src/themes/everest/components/templates/chat.js +3 -0
- package/dist/esm/components/src/themes/everest/components/templates/index.d.ts.map +1 -1
- package/dist/esm/components/src/themes/everest/components/templates/index.js +5 -0
- package/dist/esm/components/src/themes/matterhorn/components/templates/chat.d.ts +4 -0
- package/dist/esm/components/src/themes/matterhorn/components/templates/chat.d.ts.map +1 -0
- package/dist/esm/components/src/themes/matterhorn/components/templates/chat.js +3 -0
- package/dist/esm/components/src/themes/matterhorn/components/templates/index.d.ts.map +1 -1
- package/dist/esm/components/src/themes/matterhorn/components/templates/index.js +5 -0
- package/dist/esm/components/src/themes/pike/components/templates/chat.d.ts +4 -0
- package/dist/esm/components/src/themes/pike/components/templates/chat.d.ts.map +1 -0
- package/dist/esm/components/src/themes/pike/components/templates/chat.js +3 -0
- package/dist/esm/components/src/themes/pike/components/templates/index.d.ts.map +1 -1
- package/dist/esm/components/src/themes/pike/components/templates/index.js +5 -0
- package/dist/esm/components/src/themes/snapnco/components/templates/chat.d.ts +4 -0
- package/dist/esm/components/src/themes/snapnco/components/templates/chat.d.ts.map +1 -0
- package/dist/esm/components/src/themes/snapnco/components/templates/chat.js +3 -0
- package/dist/esm/components/src/themes/snapnco/components/templates/index.d.ts.map +1 -1
- package/dist/esm/components/src/themes/snapnco/components/templates/index.js +5 -0
- package/dist/esm/components/src/themes/snappy/components/templates/chat.d.ts +4 -0
- package/dist/esm/components/src/themes/snappy/components/templates/chat.d.ts.map +1 -0
- package/dist/esm/components/src/themes/snappy/components/templates/chat.js +3 -0
- package/dist/esm/components/src/themes/snappy/components/templates/index.d.ts.map +1 -1
- package/dist/esm/components/src/themes/snappy/components/templates/index.js +5 -0
- package/dist/esm/components/src/themes/themeComponents/chat.d.ts +4 -0
- package/dist/esm/components/src/themes/themeComponents/chat.d.ts.map +1 -0
- package/dist/esm/components/src/themes/themeComponents/chat.js +11 -0
- package/dist/esm/components/src/utilities/Colour/Colour.d.ts +11 -0
- package/dist/esm/components/src/utilities/Colour/Colour.d.ts.map +1 -1
- package/dist/esm/components/src/utilities/Colour/Colour.js +30 -0
- package/dist/esm/components/src/utilities/snapify.d.ts +3 -2
- package/dist/esm/components/src/utilities/snapify.d.ts.map +1 -1
- package/dist/esm/components/src/utilities/snapify.js +29 -2
- package/dist/esm/src/Instantiators/RecommendationInstantiator.d.ts +1 -0
- package/dist/esm/src/Instantiators/RecommendationInstantiator.d.ts.map +1 -1
- package/dist/esm/src/Instantiators/RecommendationInstantiator.js +130 -84
- package/dist/esm/src/Snap.d.ts +3 -2
- package/dist/esm/src/Snap.d.ts.map +1 -1
- package/dist/esm/src/Snap.js +80 -6
- package/dist/esm/src/Templates/SnapTemplates.d.ts +2 -1
- package/dist/esm/src/Templates/SnapTemplates.d.ts.map +1 -1
- package/dist/esm/src/Templates/SnapTemplates.js +61 -6
- package/dist/esm/src/Templates/Stores/LibraryStore.d.ts +4 -0
- package/dist/esm/src/Templates/Stores/LibraryStore.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/LibraryStore.js +6 -0
- package/dist/esm/src/Templates/Stores/TemplateStore.d.ts +21 -6
- package/dist/esm/src/Templates/Stores/TemplateStore.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/TemplateStore.js +2 -1
- package/dist/esm/src/Templates/Stores/library/components/Chat.d.ts +2 -0
- package/dist/esm/src/Templates/Stores/library/components/Chat.d.ts.map +1 -0
- package/dist/esm/src/Templates/Stores/library/components/Chat.js +1 -0
- package/dist/esm/src/Templates/Stores/library/languages/es.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/library/languages/es.js +5 -0
- package/dist/esm/src/Templates/Stores/library/languages/fr.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/library/languages/fr.js +5 -0
- package/dist/esm/src/create/createChatController.d.ts +5 -0
- package/dist/esm/src/create/createChatController.d.ts.map +1 -0
- package/dist/esm/src/create/createChatController.js +29 -0
- package/dist/esm/src/setupEvents.d.ts +13 -0
- package/dist/esm/src/setupEvents.d.ts.map +1 -1
- package/dist/esm/src/setupEvents.js +40 -0
- package/dist/esm/src/types.d.ts +15 -3
- package/dist/esm/src/types.d.ts.map +1 -1
- package/package.json +13 -12
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { RefObject } from 'preact';
|
|
2
|
+
export type UseChatFileUploadOptions = {
|
|
3
|
+
/**
|
|
4
|
+
* When false, drag handlers are no-ops and the dragging indicator never activates.
|
|
5
|
+
*/
|
|
6
|
+
enabled: boolean;
|
|
7
|
+
/**
|
|
8
|
+
* Called when image files are dropped onto the footer. Receives a freshly-built
|
|
9
|
+
* FileList (filtered to only image/* types).
|
|
10
|
+
*/
|
|
11
|
+
onUpload: (files: FileList) => void | Promise<void>;
|
|
12
|
+
};
|
|
13
|
+
export type UseChatFileUploadResult = {
|
|
14
|
+
/** Attach to a hidden `<input type="file">` so the upload button can trigger it. */
|
|
15
|
+
fileInputRef: RefObject<HTMLInputElement>;
|
|
16
|
+
/** True while the user is actively dragging files over the footer. */
|
|
17
|
+
isDraggingFile: boolean;
|
|
18
|
+
/** Spread these onto the drop-zone element. */
|
|
19
|
+
dragHandlers: {
|
|
20
|
+
onDragEnter: (e: any) => void;
|
|
21
|
+
onDragOver: (e: any) => void;
|
|
22
|
+
onDragLeave: (e: any) => void;
|
|
23
|
+
onDrop: (e: any) => void;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Wires drag-and-drop image upload onto the chat footer plus a ref for the
|
|
28
|
+
* hidden file input. `dragenter` / `dragleave` fire on every child crossing,
|
|
29
|
+
* so a counter is kept to know when the pointer has truly left the footer.
|
|
30
|
+
*/
|
|
31
|
+
export declare const useChatFileUpload: ({ enabled, onUpload }: UseChatFileUploadOptions) => UseChatFileUploadResult;
|
|
32
|
+
//# sourceMappingURL=useChatFileUpload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useChatFileUpload.d.ts","sourceRoot":"","sources":["../../../../../../../../components/src/components/Organisms/Chat/hooks/useChatFileUpload.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,MAAM,MAAM,wBAAwB,GAAG;IACtC;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;;OAGG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpD,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACrC,oFAAoF;IACpF,YAAY,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAC1C,sEAAsE;IACtE,cAAc,EAAE,OAAO,CAAC;IACxB,+CAA+C;IAC/C,YAAY,EAAE;QACb,WAAW,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;QAC9B,UAAU,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;QAC7B,WAAW,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;QAC9B,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;KACzB,CAAC;CACF,CAAC;AAIF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,0BAA2B,wBAAwB,KAAG,uBA4CnF,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { useRef, useState } from 'preact/hooks';
|
|
2
|
+
const hasFiles = (e) => Array.from(e.dataTransfer?.types || []).includes('Files');
|
|
3
|
+
/**
|
|
4
|
+
* Wires drag-and-drop image upload onto the chat footer plus a ref for the
|
|
5
|
+
* hidden file input. `dragenter` / `dragleave` fire on every child crossing,
|
|
6
|
+
* so a counter is kept to know when the pointer has truly left the footer.
|
|
7
|
+
*/
|
|
8
|
+
export const useChatFileUpload = ({ enabled, onUpload }) => {
|
|
9
|
+
const fileInputRef = useRef(null);
|
|
10
|
+
const [isDraggingFile, setIsDraggingFile] = useState(false);
|
|
11
|
+
const dragCounterRef = useRef(0);
|
|
12
|
+
const onDragEnter = (e) => {
|
|
13
|
+
if (!enabled || !hasFiles(e))
|
|
14
|
+
return;
|
|
15
|
+
e.preventDefault();
|
|
16
|
+
dragCounterRef.current += 1;
|
|
17
|
+
setIsDraggingFile(true);
|
|
18
|
+
};
|
|
19
|
+
const onDragOver = (e) => {
|
|
20
|
+
if (!enabled || !hasFiles(e))
|
|
21
|
+
return;
|
|
22
|
+
// Required to allow the drop event to fire
|
|
23
|
+
e.preventDefault();
|
|
24
|
+
if (e.dataTransfer)
|
|
25
|
+
e.dataTransfer.dropEffect = 'copy';
|
|
26
|
+
};
|
|
27
|
+
const onDragLeave = (e) => {
|
|
28
|
+
if (!enabled || !hasFiles(e))
|
|
29
|
+
return;
|
|
30
|
+
dragCounterRef.current = Math.max(0, dragCounterRef.current - 1);
|
|
31
|
+
if (dragCounterRef.current === 0)
|
|
32
|
+
setIsDraggingFile(false);
|
|
33
|
+
};
|
|
34
|
+
const onDrop = async (e) => {
|
|
35
|
+
if (!enabled || !hasFiles(e))
|
|
36
|
+
return;
|
|
37
|
+
e.preventDefault();
|
|
38
|
+
dragCounterRef.current = 0;
|
|
39
|
+
setIsDraggingFile(false);
|
|
40
|
+
const dropped = Array.from(e.dataTransfer?.files || []);
|
|
41
|
+
const images = dropped.filter((f) => f.type.startsWith('image/'));
|
|
42
|
+
if (images.length === 0)
|
|
43
|
+
return;
|
|
44
|
+
// Reconstruct a FileList — consumers (e.g. controller.upload) expect FileList | null
|
|
45
|
+
const dt = new DataTransfer();
|
|
46
|
+
images.forEach((f) => dt.items.add(f));
|
|
47
|
+
await onUpload(dt.files);
|
|
48
|
+
};
|
|
49
|
+
return {
|
|
50
|
+
fileInputRef,
|
|
51
|
+
isDraggingFile,
|
|
52
|
+
dragHandlers: { onDragEnter, onDragOver, onDragLeave, onDrop },
|
|
53
|
+
};
|
|
54
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { RefObject } from 'preact';
|
|
2
|
+
export type UseChatGesturesOptions = {
|
|
3
|
+
/**
|
|
4
|
+
* Ref to the panel that is being dragged (the mobile secondary panel).
|
|
5
|
+
*/
|
|
6
|
+
panelRef: RefObject<HTMLDivElement>;
|
|
7
|
+
/**
|
|
8
|
+
* Whether the side chat is currently visible. Used to reset state when it toggles.
|
|
9
|
+
*/
|
|
10
|
+
shouldShowSideChat: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Active message id. Used to reset state when the user navigates to a different message.
|
|
13
|
+
*/
|
|
14
|
+
activeMessageId: string | undefined;
|
|
15
|
+
/**
|
|
16
|
+
* Called when the swipe gesture passes the dismiss threshold and finishes animating out.
|
|
17
|
+
*/
|
|
18
|
+
onDismiss: () => void;
|
|
19
|
+
};
|
|
20
|
+
export type UseChatGesturesResult = {
|
|
21
|
+
/** Current vertical offset in pixels. */
|
|
22
|
+
swipeOffset: number;
|
|
23
|
+
/** Whether a snap-back / dismiss animation is currently running. */
|
|
24
|
+
swipeAnimating: boolean;
|
|
25
|
+
/** Spread these onto the panel: `onTouchStart`, `onTouchMove`, `onTouchEnd`. */
|
|
26
|
+
swipeHandlers: {
|
|
27
|
+
onTouchStart: (e: any) => void;
|
|
28
|
+
onTouchMove: (e: any) => void;
|
|
29
|
+
onTouchEnd: () => void;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Drag-down-to-dismiss gesture for the mobile secondary chat panel.
|
|
34
|
+
*
|
|
35
|
+
* Tracks vertical touch movement and applies a translateY offset until the user releases.
|
|
36
|
+
* If the user passes a distance or velocity threshold the panel animates the rest of the way
|
|
37
|
+
* out and `onDismiss` fires; otherwise it snaps back to zero.
|
|
38
|
+
*/
|
|
39
|
+
export declare const useChatGestures: ({ panelRef, shouldShowSideChat, activeMessageId, onDismiss }: UseChatGesturesOptions) => UseChatGesturesResult;
|
|
40
|
+
//# sourceMappingURL=useChatGestures.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useChatGestures.d.ts","sourceRoot":"","sources":["../../../../../../../../components/src/components/Organisms/Chat/hooks/useChatGestures.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,MAAM,MAAM,sBAAsB,GAAG;IACpC;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IACpC;;OAEG;IACH,kBAAkB,EAAE,OAAO,CAAC;IAC5B;;OAEG;IACH,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC;;OAEG;IACH,SAAS,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IACnC,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,cAAc,EAAE,OAAO,CAAC;IACxB,gFAAgF;IAChF,aAAa,EAAE;QACd,YAAY,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;QAC/B,WAAW,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;QAC9B,UAAU,EAAE,MAAM,IAAI,CAAC;KACvB,CAAC;CACF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,iEAAkE,sBAAsB,KAAG,qBA6EtH,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { useEffect, useRef, useState } from 'preact/hooks';
|
|
2
|
+
/**
|
|
3
|
+
* Drag-down-to-dismiss gesture for the mobile secondary chat panel.
|
|
4
|
+
*
|
|
5
|
+
* Tracks vertical touch movement and applies a translateY offset until the user releases.
|
|
6
|
+
* If the user passes a distance or velocity threshold the panel animates the rest of the way
|
|
7
|
+
* out and `onDismiss` fires; otherwise it snaps back to zero.
|
|
8
|
+
*/
|
|
9
|
+
export const useChatGestures = ({ panelRef, shouldShowSideChat, activeMessageId, onDismiss }) => {
|
|
10
|
+
const swipeStartY = useRef(0);
|
|
11
|
+
const swipeStartTime = useRef(0);
|
|
12
|
+
const swipeActive = useRef(false);
|
|
13
|
+
const swipeOffsetRef = useRef(0);
|
|
14
|
+
const [swipeOffset, setSwipeOffsetRaw] = useState(0);
|
|
15
|
+
const [swipeAnimating, setSwipeAnimating] = useState(false);
|
|
16
|
+
const updateSwipeOffset = (value) => {
|
|
17
|
+
swipeOffsetRef.current = value;
|
|
18
|
+
setSwipeOffsetRaw(value);
|
|
19
|
+
};
|
|
20
|
+
// Reset swipe state when secondary panel opens/closes or active message changes
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
updateSwipeOffset(0);
|
|
23
|
+
setSwipeAnimating(false);
|
|
24
|
+
swipeActive.current = false;
|
|
25
|
+
}, [shouldShowSideChat, activeMessageId]);
|
|
26
|
+
const onTouchStart = (e) => {
|
|
27
|
+
swipeStartY.current = e.touches[0].clientY;
|
|
28
|
+
swipeStartTime.current = Date.now();
|
|
29
|
+
swipeActive.current = false; // only activate after dead-zone threshold
|
|
30
|
+
setSwipeAnimating(false);
|
|
31
|
+
};
|
|
32
|
+
const onTouchMove = (e) => {
|
|
33
|
+
const diff = e.touches[0].clientY - swipeStartY.current;
|
|
34
|
+
// Require a minimum drag distance before activating the swipe,
|
|
35
|
+
// so taps on buttons (e.g. close) still fire their click events.
|
|
36
|
+
if (!swipeActive.current) {
|
|
37
|
+
if (Math.abs(diff) < 8)
|
|
38
|
+
return; // still within dead-zone
|
|
39
|
+
swipeActive.current = true;
|
|
40
|
+
}
|
|
41
|
+
if (diff > 0) {
|
|
42
|
+
e.preventDefault();
|
|
43
|
+
updateSwipeOffset(diff);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
updateSwipeOffset(0);
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
const onTouchEnd = () => {
|
|
50
|
+
if (!swipeActive.current)
|
|
51
|
+
return;
|
|
52
|
+
swipeActive.current = false;
|
|
53
|
+
const offset = swipeOffsetRef.current;
|
|
54
|
+
const height = panelRef.current?.offsetHeight || 400;
|
|
55
|
+
const elapsed = Date.now() - swipeStartTime.current;
|
|
56
|
+
const velocity = offset / (elapsed || 1); // px per ms
|
|
57
|
+
// Dismiss if dragged past 25% threshold OR a quick flick (>0.5 px/ms with >50px travel)
|
|
58
|
+
const shouldDismiss = offset > height * 0.25 || (velocity > 0.5 && offset > 50);
|
|
59
|
+
if (shouldDismiss) {
|
|
60
|
+
// Animate out then dismiss
|
|
61
|
+
setSwipeAnimating(true);
|
|
62
|
+
updateSwipeOffset(height);
|
|
63
|
+
setTimeout(() => {
|
|
64
|
+
onDismiss();
|
|
65
|
+
updateSwipeOffset(0);
|
|
66
|
+
setSwipeAnimating(false);
|
|
67
|
+
}, 300);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
// Snap back
|
|
71
|
+
setSwipeAnimating(true);
|
|
72
|
+
updateSwipeOffset(0);
|
|
73
|
+
setTimeout(() => setSwipeAnimating(false), 300);
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
return {
|
|
77
|
+
swipeOffset,
|
|
78
|
+
swipeAnimating,
|
|
79
|
+
swipeHandlers: { onTouchStart, onTouchMove, onTouchEnd },
|
|
80
|
+
};
|
|
81
|
+
};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { RefObject } from 'preact';
|
|
2
|
+
export type UseChatOverflowOptions = {
|
|
3
|
+
messagesContainerRef: RefObject<HTMLDivElement>;
|
|
4
|
+
headerRef: RefObject<HTMLDivElement>;
|
|
5
|
+
/**
|
|
6
|
+
* Whether the chat panel is open. State resets on toggle.
|
|
7
|
+
*/
|
|
8
|
+
open: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Whether the controller is currently loading. Triggers a scroll-to-bottom when it flips on.
|
|
11
|
+
*/
|
|
12
|
+
loading: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Length of the visible chat. Drives the new-message popup + auto-scroll behavior.
|
|
15
|
+
*/
|
|
16
|
+
visibleChatLength: number;
|
|
17
|
+
/**
|
|
18
|
+
* The last visible message — needed to differentiate auto-scroll for user vs assistant messages.
|
|
19
|
+
*/
|
|
20
|
+
lastVisibleMessage: {
|
|
21
|
+
messageType?: string;
|
|
22
|
+
} | undefined;
|
|
23
|
+
};
|
|
24
|
+
export type UseChatOverflowResult = {
|
|
25
|
+
/** True when there are messages off-screen below the current scroll position. */
|
|
26
|
+
showNewMessages: boolean;
|
|
27
|
+
/** Imperative dismiss for the "New messages" popup. */
|
|
28
|
+
setShowNewMessages: (value: boolean) => void;
|
|
29
|
+
/** True when the messages container is overflowing (used to switch comparison tray between in-flow and overlay). */
|
|
30
|
+
messagesOverflow: boolean;
|
|
31
|
+
/** Live ref tracking whether the user is currently near the bottom. */
|
|
32
|
+
isNearBottomRef: RefObject<boolean>;
|
|
33
|
+
/** Imperatively scroll the messages container to the bottom (smooth). */
|
|
34
|
+
scrollToBottom: () => void;
|
|
35
|
+
/** Conditional scroll: only scrolls if the user is already near the bottom. */
|
|
36
|
+
scrollToBottomIfNear: () => void;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Manages the auto-scroll, "new message" indicator, and overflow detection for the
|
|
40
|
+
* chat message list. Owns all scroll listeners and ResizeObservers so the host
|
|
41
|
+
* component just consumes the derived state.
|
|
42
|
+
*/
|
|
43
|
+
export declare const useChatOverflow: ({ messagesContainerRef, headerRef, open, loading, visibleChatLength, lastVisibleMessage, }: UseChatOverflowOptions) => UseChatOverflowResult;
|
|
44
|
+
//# sourceMappingURL=useChatOverflow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useChatOverflow.d.ts","sourceRoot":"","sources":["../../../../../../../../components/src/components/Organisms/Chat/hooks/useChatOverflow.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,MAAM,MAAM,sBAAsB,GAAG;IACpC,oBAAoB,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IAChD,SAAS,EAAE,SAAS,CAAC,cAAc,CAAC,CAAC;IACrC;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC;IACd;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAC1B;;OAEG;IACH,kBAAkB,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;CACzD,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IACnC,iFAAiF;IACjF,eAAe,EAAE,OAAO,CAAC;IACzB,uDAAuD;IACvD,kBAAkB,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IAC7C,oHAAoH;IACpH,gBAAgB,EAAE,OAAO,CAAC;IAC1B,uEAAuE;IACvE,eAAe,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;IACpC,yEAAyE;IACzE,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,+EAA+E;IAC/E,oBAAoB,EAAE,MAAM,IAAI,CAAC;CACjC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,+FAOzB,sBAAsB,KAAG,qBAyG3B,CAAC"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { useEffect, useRef, useState } from 'preact/hooks';
|
|
2
|
+
/**
|
|
3
|
+
* Manages the auto-scroll, "new message" indicator, and overflow detection for the
|
|
4
|
+
* chat message list. Owns all scroll listeners and ResizeObservers so the host
|
|
5
|
+
* component just consumes the derived state.
|
|
6
|
+
*/
|
|
7
|
+
export const useChatOverflow = ({ messagesContainerRef, headerRef, open, loading, visibleChatLength, lastVisibleMessage, }) => {
|
|
8
|
+
const [showNewMessages, setShowNewMessages] = useState(false);
|
|
9
|
+
const [messagesOverflow, setMessagesOverflow] = useState(false);
|
|
10
|
+
const isNearBottomRef = useRef(true);
|
|
11
|
+
const scrollToBottom = () => {
|
|
12
|
+
// Scroll the messages container directly (instead of scrollIntoView on the
|
|
13
|
+
// bottom anchor) so the browser never walks up the ancestor chain. On small
|
|
14
|
+
// viewports a smooth scrollIntoView could otherwise animate the document /
|
|
15
|
+
// visual viewport and visually push the fixed-position chat off-screen.
|
|
16
|
+
const container = messagesContainerRef.current;
|
|
17
|
+
if (container) {
|
|
18
|
+
container.scrollTo({ top: container.scrollHeight, behavior: 'smooth' });
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
// Conditional scroll: only scrolls if the user is already near the bottom.
|
|
22
|
+
const scrollToBottomIfNear = () => {
|
|
23
|
+
if (isNearBottomRef.current) {
|
|
24
|
+
scrollToBottom();
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
// Scroll to bottom when chat opens
|
|
28
|
+
useEffect(() => {
|
|
29
|
+
if (open) {
|
|
30
|
+
scrollToBottom();
|
|
31
|
+
setShowNewMessages(false);
|
|
32
|
+
isNearBottomRef.current = true;
|
|
33
|
+
}
|
|
34
|
+
}, [open]);
|
|
35
|
+
// Handle new messages — auto-scroll for user messages, show popup for response messages when scrolled up
|
|
36
|
+
useEffect(() => {
|
|
37
|
+
if (!open || !lastVisibleMessage)
|
|
38
|
+
return;
|
|
39
|
+
if (lastVisibleMessage.messageType === 'user') {
|
|
40
|
+
scrollToBottom();
|
|
41
|
+
setShowNewMessages(false);
|
|
42
|
+
}
|
|
43
|
+
else if (isNearBottomRef.current) {
|
|
44
|
+
scrollToBottom();
|
|
45
|
+
setShowNewMessages(false);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
setShowNewMessages(true);
|
|
49
|
+
}
|
|
50
|
+
}, [visibleChatLength]);
|
|
51
|
+
// Scroll to show loading indicator when user sends a message
|
|
52
|
+
useEffect(() => {
|
|
53
|
+
if (open && loading) {
|
|
54
|
+
scrollToBottom();
|
|
55
|
+
}
|
|
56
|
+
}, [loading]);
|
|
57
|
+
// Track scroll position to dismiss the "New messages" popup when user scrolls to bottom
|
|
58
|
+
useEffect(() => {
|
|
59
|
+
const container = messagesContainerRef.current;
|
|
60
|
+
if (!container)
|
|
61
|
+
return;
|
|
62
|
+
const handleScroll = () => {
|
|
63
|
+
const threshold = 100;
|
|
64
|
+
const isNearBottom = container.scrollHeight - container.scrollTop - container.clientHeight < threshold;
|
|
65
|
+
isNearBottomRef.current = isNearBottom;
|
|
66
|
+
if (isNearBottom) {
|
|
67
|
+
setShowNewMessages(false);
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
container.addEventListener('scroll', handleScroll);
|
|
71
|
+
return () => container.removeEventListener('scroll', handleScroll);
|
|
72
|
+
}, [open]);
|
|
73
|
+
// Track whether the messages container is overflowing so the comparisons header
|
|
74
|
+
// can switch between in-flow (short conversations — top content stays reachable)
|
|
75
|
+
// and overlay (overflowing — avoid layout shift when toggling the tray).
|
|
76
|
+
// Hysteresis: when already in overlay, only return to in-flow if the content
|
|
77
|
+
// would still fit *with* the header re-inserted — otherwise the two states
|
|
78
|
+
// fight each other and the layout flickers.
|
|
79
|
+
useEffect(() => {
|
|
80
|
+
const container = messagesContainerRef.current;
|
|
81
|
+
if (!container || typeof ResizeObserver === 'undefined')
|
|
82
|
+
return;
|
|
83
|
+
const update = () => {
|
|
84
|
+
setMessagesOverflow((prev) => {
|
|
85
|
+
const headerHeight = headerRef.current?.offsetHeight || 0;
|
|
86
|
+
if (prev) {
|
|
87
|
+
// Currently overlay: header isn't taking flow space. Only switch
|
|
88
|
+
// back to in-flow if the content would fit with the header added.
|
|
89
|
+
return container.scrollHeight > container.clientHeight - headerHeight + 1;
|
|
90
|
+
}
|
|
91
|
+
// Currently in-flow: header already takes space — straightforward check.
|
|
92
|
+
return container.scrollHeight > container.clientHeight + 1;
|
|
93
|
+
});
|
|
94
|
+
};
|
|
95
|
+
update();
|
|
96
|
+
const observer = new ResizeObserver(update);
|
|
97
|
+
observer.observe(container);
|
|
98
|
+
if (headerRef.current)
|
|
99
|
+
observer.observe(headerRef.current);
|
|
100
|
+
return () => observer.disconnect();
|
|
101
|
+
}, [open, visibleChatLength]);
|
|
102
|
+
return {
|
|
103
|
+
showNewMessages,
|
|
104
|
+
setShowNewMessages,
|
|
105
|
+
messagesOverflow,
|
|
106
|
+
isNearBottomRef,
|
|
107
|
+
scrollToBottom,
|
|
108
|
+
scrollToBottomIfNear,
|
|
109
|
+
};
|
|
110
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../components/src/components/Organisms/Chat/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Chat';
|
|
@@ -419,7 +419,7 @@ export const Facet = observer((properties) => {
|
|
|
419
419
|
? ''
|
|
420
420
|
: 'ss__facet--showing-all'), children: justContent ? (_jsx(FacetContent, { ...facetContentProps, mergedLang: mergedLang })) : (_jsx(Dropdown, { ...subProps.dropdown, open: disableCollapse || !facet?.collapsed, onClick: () => !disableCollapse && facet.toggleCollapse && facet?.toggleCollapse(), disableA11y: true, button: _jsxs("div", { className: "ss__facet__header", ref: (e) => useA11y(e, disableCollapse ? -1 : 0), role: "heading", "aria-level": 3, ...mergedLang.dropdownButton.attributes, children: [_jsxs("span", { className: "ss__facet__header__inner", children: [_jsx("span", { ...mergedLang.dropdownButton.value, children: facet?.label }), showSelectedCount && selectedCount && facet.type !== 'range' ? (_jsx("span", { className: "ss__facet__header__selected-count", children: hideSelectedCountParenthesis ? selectedCount : `(${selectedCount})` })) : null, (mergedLang.clearAllText.value || clearAllIcon) && selectedCount ? (_jsx(Button, { ...subProps.button, internalClassName: "ss__facet__header__clear-all", name: 'reset-facet', onClick: (e) => {
|
|
421
421
|
e.stopPropagation();
|
|
422
|
-
facet?.clear.url
|
|
422
|
+
facet?.clear.url?.link.onClick();
|
|
423
423
|
}, icon: clearAllIcon ? clearAllIcon : undefined, children: mergedLang.clearAllText.value && showClearAllText ? _jsx("label", { ...mergedLang.clearAllText.all }) : null })) : (_jsx(_Fragment, {}))] }), !disableCollapse && (_jsx(Icon, { ...subProps.icon, ...(facet?.collapsed
|
|
424
424
|
? { ...(typeof iconExpand == 'string' ? { icon: iconExpand } : iconExpand) }
|
|
425
425
|
: { ...(typeof iconCollapse == 'string' ? { icon: iconCollapse } : iconCollapse) }), name: facet?.collapsed ? 'expand' : 'collapse' }))] }), children: _jsx(FacetContent, { ...facetContentProps, mergedLang: mergedLang }) })) }) })) : null;
|
|
@@ -237,7 +237,7 @@ export const FacetsHorizontal = observer((properties) => {
|
|
|
237
237
|
}
|
|
238
238
|
}, button: _jsxs("div", { className: "ss__dropdown__button__heading", ...mergedLang.dropdownButton.attributes, children: [_jsxs("div", { className: "ss__facet__header__inner", children: [_jsx("span", { ...mergedLang.dropdownButton.value, children: facet?.label }), showSelectedCount && selectedCount && facet.type !== 'range' ? (_jsx("span", { className: "ss__facet__header__selected-count", children: hideSelectedCountParenthesis ? selectedCount : `(${selectedCount})` })) : null, (mergedLang.clearAllText.value || clearAllIcon) && selectedCount ? (_jsx(Button, { ...subProps.button, internalClassName: "ss__facet__header__clear-all", name: 'reset-facet', onClick: (e) => {
|
|
239
239
|
e.stopPropagation();
|
|
240
|
-
facet?.clear.url
|
|
240
|
+
facet?.clear.url?.link.onClick();
|
|
241
241
|
}, icon: clearAllIcon ? clearAllIcon : undefined, children: mergedLang.clearAllText.value && showClearAllText ? _jsx("label", { ...mergedLang.clearAllText.all }) : null })) : (_jsx(_Fragment, {}))] }), _jsx(Icon, { ...subProps.icon, ...(selectedFacet?.field === facet.field
|
|
242
242
|
? { ...(typeof iconExpand == 'string' ? { icon: iconExpand } : iconExpand) }
|
|
243
243
|
: { ...(typeof iconCollapse == 'string' ? { icon: iconCollapse } : iconCollapse) }) })] }), disableOverlay: false, children: _jsx(Facet, { ...subProps.facet, facet: facet }) }));
|
|
@@ -19,7 +19,7 @@ const defaultStyles = ({ gapSize, columns }) => {
|
|
|
19
19
|
flexFlow: 'row wrap',
|
|
20
20
|
gap: gapSize,
|
|
21
21
|
gridTemplateRows: 'auto',
|
|
22
|
-
gridTemplateColumns: `repeat(${columns}, 1fr)`,
|
|
22
|
+
gridTemplateColumns: `repeat(${columns}, minmax(0, 1fr))`,
|
|
23
23
|
'& .ss__result, & .ss__result-layout': {
|
|
24
24
|
boxSizing: 'border-box',
|
|
25
25
|
flex: '0 1 auto',
|
package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { AutocompleteController } from '@athoscommerce/snap-controller';
|
|
2
2
|
import { ComponentProps, JSXComponent } from '../../../types';
|
|
3
3
|
import { AutocompleteLayoutProps } from '../../Organisms/AutocompleteLayout';
|
|
4
|
-
export declare const AutocompleteFixed: ((properties: AutocompleteFixedProps) => import("@emotion/react/jsx-runtime").JSX.Element
|
|
4
|
+
export declare const AutocompleteFixed: ((properties: AutocompleteFixedProps) => import("@emotion/react/jsx-runtime").JSX.Element) & {
|
|
5
5
|
displayName: string;
|
|
6
6
|
};
|
|
7
7
|
interface inputBounds {
|
package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutocompleteFixed.d.ts","sourceRoot":"","sources":["../../../../../../../components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAG7E,OAAO,EAAE,cAAc,EAAe,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAsB,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AA+CjG,eAAO,MAAM,iBAAiB,gBAAyB,sBAAsB;;
|
|
1
|
+
{"version":3,"file":"AutocompleteFixed.d.ts","sourceRoot":"","sources":["../../../../../../../components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAG7E,OAAO,EAAE,cAAc,EAAe,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAsB,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AA+CjG,eAAO,MAAM,iBAAiB,gBAAyB,sBAAsB;;CA0N3E,CAAC;AAEH,UAAU,WAAW;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CACf;AAQD,MAAM,MAAM,sBAAsB,GAAG;IACpC,UAAU,EAAE,sBAAsB,CAAC;IACnC,eAAe,CAAC,EAAE,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC;CAC7C,GAAG,oCAAoC,GACvC,IAAI,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;AAEzC,MAAM,MAAM,oCAAoC,GAAG;IAClD,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;CAC9C,GAAG,uBAAuB,CAAC"}
|
|
@@ -138,6 +138,9 @@ export const AutocompleteFixed = observer((properties) => {
|
|
|
138
138
|
closeSearchButton: {
|
|
139
139
|
onClick: () => reset(),
|
|
140
140
|
},
|
|
141
|
+
chatButton: {
|
|
142
|
+
onClick: () => controller.openChat(),
|
|
143
|
+
},
|
|
141
144
|
inputName: inputName,
|
|
142
145
|
// inherited props
|
|
143
146
|
...defined({
|
|
@@ -211,5 +214,5 @@ export const AutocompleteFixed = observer((properties) => {
|
|
|
211
214
|
delete acProps.style;
|
|
212
215
|
delete acProps.styleScript;
|
|
213
216
|
delete acProps.themeStyleScript;
|
|
214
|
-
return layout?.length && active ? (_jsx(CacheProvider, { children: _jsx("div", { ...styling, className: classNames('ss__autocomplete-fixed', className, internalClassName), children: _jsx(Modal, { ...subProps.modal, children: _jsxs("div", { className: "ss__autocomplete-fixed__inner", ref: (e) => useA11y(e, 0, true, reset), children: [renderInput ? (_jsx(SearchInput, { ...subProps.searchInput, value: controller.store.state.input || '', inputRef: renderedInputRef })) : (_jsx(_Fragment, {})), _jsx("div", { className: "ss__autocomplete-fixed__inner__layout-wrapper", children: _jsx(AutocompleteLayout, { ...acProps, ...subProps.autocompleteLayout, input: _input, controller: controller, treePath: `${treePath} modal` }) })] }) }) }) })) : null;
|
|
217
|
+
return (_jsx(_Fragment, { children: layout?.length && active ? (_jsx(CacheProvider, { children: _jsx("div", { ...styling, className: classNames('ss__autocomplete-fixed', className, internalClassName), children: _jsx(Modal, { ...subProps.modal, children: _jsxs("div", { className: "ss__autocomplete-fixed__inner", ref: (e) => useA11y(e, 0, true, reset), children: [renderInput ? (_jsx(SearchInput, { ...subProps.searchInput, value: controller.store.state.input || '', inputRef: renderedInputRef })) : (_jsx(_Fragment, {})), _jsx("div", { className: "ss__autocomplete-fixed__inner__layout-wrapper", children: _jsx(AutocompleteLayout, { ...acProps, ...subProps.autocompleteLayout, input: _input, controller: controller, treePath: `${treePath} modal` }) })] }) }) }) })) : null }));
|
|
215
218
|
});
|
package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { AutocompleteController } from '@athoscommerce/snap-controller';
|
|
2
2
|
import { ComponentProps, JSXComponent } from '../../../types';
|
|
3
3
|
import { AutocompleteLayoutProps } from '../../Organisms/AutocompleteLayout';
|
|
4
|
-
export declare const AutocompleteModal: ((properties: AutocompleteModalProps) => import("@emotion/react/jsx-runtime").JSX.Element
|
|
4
|
+
export declare const AutocompleteModal: ((properties: AutocompleteModalProps) => import("@emotion/react/jsx-runtime").JSX.Element) & {
|
|
5
5
|
displayName: string;
|
|
6
6
|
};
|
|
7
7
|
export type AutocompleteModalProps = {
|
package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutocompleteModal.d.ts","sourceRoot":"","sources":["../../../../../../../components/src/components/Templates/AutocompleteModal/AutocompleteModal.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAG7E,OAAO,EAAE,cAAc,EAAe,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAsB,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AA4DjG,eAAO,MAAM,iBAAiB,gBAAyB,sBAAsB;;
|
|
1
|
+
{"version":3,"file":"AutocompleteModal.d.ts","sourceRoot":"","sources":["../../../../../../../components/src/components/Templates/AutocompleteModal/AutocompleteModal.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAG7E,OAAO,EAAE,cAAc,EAAe,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAsB,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AA4DjG,eAAO,MAAM,iBAAiB,gBAAyB,sBAAsB;;CAqK3E,CAAC;AAQH,MAAM,MAAM,sBAAsB,GAAG;IACpC,UAAU,EAAE,sBAAsB,CAAC;IACnC,eAAe,CAAC,EAAE,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC;CAC7C,GAAG,oCAAoC,GACvC,IAAI,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;AAEzC,MAAM,MAAM,oCAAoC,GAAG;IAClD,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,GAAG,uBAAuB,CAAC"}
|
|
@@ -149,6 +149,9 @@ export const AutocompleteModal = observer((properties) => {
|
|
|
149
149
|
onClick: () => reset(),
|
|
150
150
|
icon: 'angle-left',
|
|
151
151
|
},
|
|
152
|
+
chatButton: {
|
|
153
|
+
onClick: () => controller.openChat(),
|
|
154
|
+
},
|
|
152
155
|
inputName: inputName,
|
|
153
156
|
// inherited props
|
|
154
157
|
...defined({
|
|
@@ -180,5 +183,5 @@ export const AutocompleteModal = observer((properties) => {
|
|
|
180
183
|
delete acProps.style;
|
|
181
184
|
delete acProps.styleScript;
|
|
182
185
|
delete acProps.themeStyleScript;
|
|
183
|
-
return layout?.length && active ? (_jsx(CacheProvider, { children: _jsx("div", { ...styling, className: classNames('ss__autocomplete-modal', className, internalClassName), children: _jsx(Modal, { ...subProps.modal, children: _jsxs("div", { className: "ss__autocomplete-modal__inner", ref: (e) => useA11y(e, 0, true, reset), children: [renderInput ? (_jsx(SearchInput, { ...subProps.searchInput, value: controller.store.state.input || '', inputRef: renderedInputRef })) : (_jsx(_Fragment, {})), _jsx(AutocompleteLayout, { ...acProps, ...subProps.autocompleteLayout, input: _input, controller: controller, treePath: `${treePath} modal` })] }) }) }) })) : null;
|
|
186
|
+
return (_jsx(_Fragment, { children: layout?.length && active ? (_jsx(CacheProvider, { children: _jsx("div", { ...styling, className: classNames('ss__autocomplete-modal', className, internalClassName), children: _jsx(Modal, { ...subProps.modal, children: _jsxs("div", { className: "ss__autocomplete-modal__inner", ref: (e) => useA11y(e, 0, true, reset), children: [renderInput ? (_jsx(SearchInput, { ...subProps.searchInput, value: controller.store.state.input || '', inputRef: renderedInputRef })) : (_jsx(_Fragment, {})), _jsx(AutocompleteLayout, { ...acProps, ...subProps.autocompleteLayout, input: _input, controller: controller, treePath: `${treePath} modal` })] }) }) }) })) : null }));
|
|
184
187
|
});
|
package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { AutocompleteController } from '@athoscommerce/snap-controller';
|
|
|
2
2
|
import { ComponentProps, JSXComponent } from '../../../types';
|
|
3
3
|
import { AutocompleteLayoutProps } from '../../Organisms/AutocompleteLayout';
|
|
4
4
|
import { SlideDirectionType } from '../../Molecules/Slideout';
|
|
5
|
-
export declare const AutocompleteSlideout: ((properties: AutocompleteSlideoutProps) => import("@emotion/react/jsx-runtime").JSX.Element
|
|
5
|
+
export declare const AutocompleteSlideout: ((properties: AutocompleteSlideoutProps) => import("@emotion/react/jsx-runtime").JSX.Element) & {
|
|
6
6
|
displayName: string;
|
|
7
7
|
};
|
|
8
8
|
export type AutocompleteSlideoutProps = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AutocompleteSlideout.d.ts","sourceRoot":"","sources":["../../../../../../../components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAG7E,OAAO,EAAE,cAAc,EAAe,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAsB,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AACjG,OAAO,EAAE,kBAAkB,EAA2B,MAAM,0BAA0B,CAAC;AAsBvF,eAAO,MAAM,oBAAoB,gBAAyB,yBAAyB;;
|
|
1
|
+
{"version":3,"file":"AutocompleteSlideout.d.ts","sourceRoot":"","sources":["../../../../../../../components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAG7E,OAAO,EAAE,cAAc,EAAe,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAsB,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AACjG,OAAO,EAAE,kBAAkB,EAA2B,MAAM,0BAA0B,CAAC;AAsBvF,eAAO,MAAM,oBAAoB,gBAAyB,yBAAyB;;CA6JjF,CAAC;AAOH,MAAM,MAAM,yBAAyB,GAAG;IACvC,UAAU,EAAE,sBAAsB,CAAC;IACnC,eAAe,CAAC,EAAE,YAAY,GAAG,GAAG,CAAC,OAAO,CAAC;CAC7C,GAAG,uCAAuC,GAC1C,IAAI,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;AAEzC,MAAM,MAAM,uCAAuC,GAAG;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,kBAAkB,CAAC;IACpC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB,GAAG,uBAAuB,CAAC"}
|
package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.js
CHANGED
|
@@ -100,6 +100,9 @@ export const AutocompleteSlideout = observer((properties) => {
|
|
|
100
100
|
onClick: () => reset(),
|
|
101
101
|
icon: 'angle-left',
|
|
102
102
|
},
|
|
103
|
+
chatButton: {
|
|
104
|
+
onClick: () => controller.openChat(),
|
|
105
|
+
},
|
|
103
106
|
// inherited props
|
|
104
107
|
...defined({
|
|
105
108
|
disableStyles,
|
|
@@ -134,5 +137,5 @@ export const AutocompleteSlideout = observer((properties) => {
|
|
|
134
137
|
delete acProps.styleScript;
|
|
135
138
|
delete acProps.themeStyleScript;
|
|
136
139
|
/***************************************/
|
|
137
|
-
return layout?.length ? (_jsx(CacheProvider, { children: _jsx(Slideout, { ...styling, ...subProps.slideout, className: classNames('ss__autocomplete-slideout', 'ss__autocomplete-slideout__slideout', className, internalClassName), active: active, children: _jsxs("div", { className: "ss__autocomplete-slideout__inner", ref: (e) => useA11y(e, 0, true, reset), children: [renderInput ? (_jsx(SearchInput, { ...subProps.searchInput, value: controller.store.state.input || '', inputRef: renderedInputRef })) : (_jsx(_Fragment, {})), _jsx(AutocompleteLayout, { ...acProps, ...subProps.autocompleteLayout, input: _input, controller: controller, treePath: `${treePath} slideout` })] }) }) })) : null;
|
|
140
|
+
return (_jsx(_Fragment, { children: layout?.length ? (_jsx(CacheProvider, { children: _jsx(Slideout, { ...styling, ...subProps.slideout, className: classNames('ss__autocomplete-slideout', 'ss__autocomplete-slideout__slideout', className, internalClassName), active: active, children: _jsxs("div", { className: "ss__autocomplete-slideout__inner", ref: (e) => useA11y(e, 0, true, reset), children: [renderInput ? (_jsx(SearchInput, { ...subProps.searchInput, value: controller.store.state.input || '', inputRef: renderedInputRef })) : (_jsx(_Fragment, {})), _jsx(AutocompleteLayout, { ...acProps, ...subProps.autocompleteLayout, input: _input, controller: controller, treePath: `${treePath} slideout` })] }) }) })) : null }));
|
|
138
141
|
});
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ComponentProps } from '../../../types';
|
|
2
|
+
import { ChatTemplatesLegalProps, ChatLang } from '../../Organisms/Chat';
|
|
3
|
+
import type { ChatController } from '@athoscommerce/snap-controller';
|
|
4
|
+
export declare const Chat: ((properties: ChatProps) => JSX.Element) & {
|
|
5
|
+
displayName: string;
|
|
6
|
+
};
|
|
7
|
+
export type ChatProps = {
|
|
8
|
+
controller: ChatController;
|
|
9
|
+
lang?: Partial<ChatLang>;
|
|
10
|
+
} & ChatTemplatesLegalProps & Omit<ComponentProps, 'customComponent'>;
|
|
11
|
+
export type { ChatTemplatesLegalProps, ChatLang };
|
|
12
|
+
//# sourceMappingURL=Chat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Chat.d.ts","sourceRoot":"","sources":["../../../../../../../components/src/components/Templates/Chat/Chat.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,cAAc,EAAe,MAAM,gBAAgB,CAAC;AAI7D,OAAO,EAAmC,uBAAuB,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAC1G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAUrE,eAAO,MAAM,IAAI,gBAAyB,SAAS,KAAG,GAAG,CAAC,OAAO;;CAsC/D,CAAC;AAMH,MAAM,MAAM,SAAS,GAAG;IACvB,UAAU,EAAE,cAAc,CAAC;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;CACzB,GAAG,uBAAuB,GAC1B,IAAI,CAAC,cAAc,EAAE,iBAAiB,CAAC,CAAC;AAEzC,YAAY,EAAE,uBAAuB,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { jsx as _jsx } from "@emotion/react/jsx-runtime";
|
|
2
|
+
import { css } from '@emotion/react';
|
|
3
|
+
import classnames from 'classnames';
|
|
4
|
+
import { observer } from 'mobx-react-lite';
|
|
5
|
+
import { useTheme, CacheProvider, useTreePath } from '../../../providers';
|
|
6
|
+
import { defined, mergeProps, mergeStyles } from '../../../utilities';
|
|
7
|
+
import { useLang } from '../../../hooks';
|
|
8
|
+
import deepmerge from 'deepmerge';
|
|
9
|
+
import { ChatOrganism } from '../../Organisms/Chat';
|
|
10
|
+
const defaultStyles = () => {
|
|
11
|
+
// The template itself is layout-free — the underlying Chat organism handles
|
|
12
|
+
// fixed positioning and sizing. The wrapper exists purely so theme overrides
|
|
13
|
+
// flow through mergeProps('chat', ...) and so the Chat surface can be themed
|
|
14
|
+
// per-template like Search and Recommendation.
|
|
15
|
+
return css({});
|
|
16
|
+
};
|
|
17
|
+
export const Chat = observer((properties) => {
|
|
18
|
+
const globalTheme = useTheme();
|
|
19
|
+
const globalTreePath = useTreePath();
|
|
20
|
+
const defaultProps = {
|
|
21
|
+
treePath: globalTreePath,
|
|
22
|
+
};
|
|
23
|
+
const props = mergeProps('chat', globalTheme, defaultProps, properties);
|
|
24
|
+
const { className, internalClassName, controller, disableStyles, treePath } = props;
|
|
25
|
+
// Lang scaffold — keeps the Template ready for future i18n overrides
|
|
26
|
+
const defaultLang = {};
|
|
27
|
+
const lang = deepmerge(defaultLang, props.lang || {});
|
|
28
|
+
useLang(lang, { controller });
|
|
29
|
+
const subProps = {
|
|
30
|
+
Chat: {
|
|
31
|
+
// inherited props
|
|
32
|
+
...defined({
|
|
33
|
+
disableStyles,
|
|
34
|
+
}),
|
|
35
|
+
// component theme overrides
|
|
36
|
+
theme: props.theme,
|
|
37
|
+
treePath,
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
const styling = mergeStyles(props, defaultStyles);
|
|
41
|
+
return (_jsx(CacheProvider, { children: _jsx("div", { ...styling, className: classnames('ss__chat', className, internalClassName), children: _jsx(ChatOrganism, { ...subProps.Chat, ...props, controller: controller }) }) }));
|
|
42
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../components/src/components/Templates/Chat/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './Chat';
|