@athoscommerce/snap-preact 1.13.3-beta.187 → 1.14.0
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/Dropdown/Dropdown.js +11 -56
- package/dist/cjs/components/src/components/Atoms/Icon/paths.js +0 -13
- package/dist/cjs/components/src/components/Molecules/Filter/Filter.js +1 -1
- package/dist/cjs/components/src/components/Molecules/Result/Result.js +4 -51
- package/dist/cjs/components/src/components/Molecules/SearchInput/SearchInput.js +2 -28
- package/dist/cjs/components/src/components/Molecules/Slideout/Slideout.js +28 -24
- package/dist/cjs/components/src/components/Molecules/Slideshow/Slideshow.js +20 -50
- package/dist/cjs/components/src/components/Organisms/AutocompleteLayout/AutocompleteLayout.js +44 -21
- package/dist/cjs/components/src/components/Organisms/FacetsHorizontal/FacetsHorizontal.js +64 -6
- package/dist/cjs/components/src/components/Organisms/FilterSummary/FilterSummary.js +19 -8
- package/dist/cjs/components/src/components/Organisms/QuickviewLayout/QuickviewLayout.js +11 -44
- package/dist/cjs/components/src/components/Organisms/Results/Results.js +1 -1
- package/dist/cjs/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.js +12 -11
- package/dist/cjs/components/src/components/Templates/AutocompleteModal/AutocompleteModal.js +6 -8
- package/dist/cjs/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.js +6 -8
- package/dist/cjs/components/src/components/Templates/Search/Search.js +1 -1
- package/dist/cjs/components/src/index.js +1 -17
- package/dist/cjs/components/src/providers/themeComponents.js +0 -20
- package/dist/cjs/components/src/themes/base/components/templates/index.js +0 -10
- package/dist/cjs/components/src/themes/bocachica/components/templates/index.js +0 -10
- package/dist/cjs/components/src/themes/pike/components/templates/autocompleteFixed.js +1 -1
- package/dist/cjs/components/src/themes/pike/components/templates/autocompleteModal.js +1 -1
- package/dist/cjs/components/src/themes/pike/components/templates/autocompleteSlideout.js +3 -2
- package/dist/cjs/components/src/themes/pike/components/templates/index.js +0 -10
- package/dist/cjs/components/src/themes/snapnco/components/templates/index.js +0 -10
- package/dist/cjs/components/src/themes/snappy/components/templates/index.js +0 -10
- package/dist/cjs/components/src/utilities/Colour/Colour.js +0 -41
- package/dist/cjs/components/src/utilities/componentArgs.js +1 -1
- package/dist/cjs/components/src/utilities/index.js +0 -1
- package/dist/cjs/components/src/utilities/snapify.js +0 -27
- package/dist/cjs/src/Snap.js +6 -85
- package/dist/cjs/src/Templates/SnapTemplates.js +5 -55
- package/dist/cjs/src/Templates/Stores/LibraryStore.js +1 -51
- package/dist/cjs/src/Templates/Stores/TemplateStore.js +3 -3
- package/dist/cjs/src/Templates/Stores/library/languages/ar.js +6 -485
- package/dist/cjs/src/Templates/Stores/library/languages/de.js +6 -485
- package/dist/cjs/src/Templates/Stores/library/languages/es.js +6 -490
- package/dist/cjs/src/Templates/Stores/library/languages/fr.js +6 -490
- package/dist/cjs/src/Templates/Stores/library/languages/hi.js +6 -485
- package/dist/cjs/src/Templates/Stores/library/languages/it.js +6 -485
- package/dist/cjs/src/Templates/Stores/library/languages/ja.js +6 -485
- package/dist/cjs/src/Templates/Stores/library/languages/ko.js +6 -485
- package/dist/cjs/src/Templates/Stores/library/languages/nl.js +6 -485
- package/dist/cjs/src/Templates/Stores/library/languages/pt.js +6 -485
- package/dist/cjs/src/Templates/Stores/library/languages/ru.js +6 -485
- package/dist/cjs/src/Templates/Stores/library/languages/tr.js +6 -485
- package/dist/cjs/src/Templates/Stores/library/languages/vi.js +6 -485
- package/dist/cjs/src/Templates/Stores/library/languages/zh.js +6 -485
- package/dist/cjs/src/create/index.js +1 -3
- package/dist/cjs/src/setupEvents.js +0 -44
- package/dist/cjs/src/utils/index.js +1 -3
- package/dist/esm/components/src/components/Atoms/Button/Button.d.ts +1 -3
- package/dist/esm/components/src/components/Atoms/Button/Button.d.ts.map +1 -1
- package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.d.ts +1 -6
- package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/esm/components/src/components/Atoms/Dropdown/Dropdown.js +12 -57
- package/dist/esm/components/src/components/Atoms/Icon/paths.d.ts +0 -13
- package/dist/esm/components/src/components/Atoms/Icon/paths.d.ts.map +1 -1
- package/dist/esm/components/src/components/Atoms/Icon/paths.js +0 -13
- package/dist/esm/components/src/components/Molecules/Filter/Filter.d.ts.map +1 -1
- package/dist/esm/components/src/components/Molecules/Filter/Filter.js +1 -1
- package/dist/esm/components/src/components/Molecules/OverlayBadge/OverlayBadge.d.ts +2 -2
- package/dist/esm/components/src/components/Molecules/OverlayBadge/OverlayBadge.d.ts.map +1 -1
- package/dist/esm/components/src/components/Molecules/Result/Result.d.ts +3 -7
- package/dist/esm/components/src/components/Molecules/Result/Result.d.ts.map +1 -1
- package/dist/esm/components/src/components/Molecules/Result/Result.js +4 -51
- package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.d.ts +0 -3
- package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.d.ts.map +1 -1
- package/dist/esm/components/src/components/Molecules/SearchInput/SearchInput.js +2 -28
- package/dist/esm/components/src/components/Molecules/Slideout/Slideout.d.ts.map +1 -1
- package/dist/esm/components/src/components/Molecules/Slideout/Slideout.js +29 -25
- package/dist/esm/components/src/components/Molecules/Slideshow/Slideshow.d.ts.map +1 -1
- package/dist/esm/components/src/components/Molecules/Slideshow/Slideshow.js +20 -50
- package/dist/esm/components/src/components/Organisms/AutocompleteLayout/AutocompleteLayout.d.ts +3 -1
- package/dist/esm/components/src/components/Organisms/AutocompleteLayout/AutocompleteLayout.d.ts.map +1 -1
- package/dist/esm/components/src/components/Organisms/AutocompleteLayout/AutocompleteLayout.js +43 -21
- package/dist/esm/components/src/components/Organisms/FacetsHorizontal/FacetsHorizontal.d.ts +1 -0
- package/dist/esm/components/src/components/Organisms/FacetsHorizontal/FacetsHorizontal.d.ts.map +1 -1
- package/dist/esm/components/src/components/Organisms/FacetsHorizontal/FacetsHorizontal.js +65 -7
- package/dist/esm/components/src/components/Organisms/FilterSummary/FilterSummary.d.ts +5 -0
- package/dist/esm/components/src/components/Organisms/FilterSummary/FilterSummary.d.ts.map +1 -1
- package/dist/esm/components/src/components/Organisms/FilterSummary/FilterSummary.js +19 -8
- package/dist/esm/components/src/components/Organisms/QuickviewLayout/QuickviewLayout.d.ts +1 -5
- package/dist/esm/components/src/components/Organisms/QuickviewLayout/QuickviewLayout.d.ts.map +1 -1
- package/dist/esm/components/src/components/Organisms/QuickviewLayout/QuickviewLayout.js +11 -44
- package/dist/esm/components/src/components/Organisms/Results/Results.js +1 -1
- package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.d.ts +4 -0
- package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.d.ts.map +1 -1
- package/dist/esm/components/src/components/Templates/AutocompleteFixed/AutocompleteFixed.js +13 -12
- package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts +3 -0
- package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.d.ts.map +1 -1
- package/dist/esm/components/src/components/Templates/AutocompleteModal/AutocompleteModal.js +7 -9
- package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.d.ts +3 -0
- package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.d.ts.map +1 -1
- package/dist/esm/components/src/components/Templates/AutocompleteSlideout/AutocompleteSlideout.js +7 -9
- package/dist/esm/components/src/components/Templates/Search/Search.js +2 -2
- package/dist/esm/components/src/hooks/index.d.ts +2 -1
- package/dist/esm/components/src/hooks/index.d.ts.map +1 -1
- package/dist/esm/components/src/index.d.ts +4 -16
- package/dist/esm/components/src/index.d.ts.map +1 -1
- package/dist/esm/components/src/index.js +1 -15
- package/dist/esm/components/src/providers/langComponents.d.ts +0 -20
- package/dist/esm/components/src/providers/langComponents.d.ts.map +1 -1
- package/dist/esm/components/src/providers/themeComponents.d.ts +1 -203
- package/dist/esm/components/src/providers/themeComponents.d.ts.map +1 -1
- package/dist/esm/components/src/providers/themeComponents.js +0 -20
- 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/index.d.ts.map +1 -1
- package/dist/esm/components/src/themes/base/components/templates/index.js +0 -10
- 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 +0 -10
- package/dist/esm/components/src/themes/pike/components/templates/autocompleteFixed.js +1 -1
- package/dist/esm/components/src/themes/pike/components/templates/autocompleteModal.js +1 -1
- package/dist/esm/components/src/themes/pike/components/templates/autocompleteSlideout.d.ts.map +1 -1
- package/dist/esm/components/src/themes/pike/components/templates/autocompleteSlideout.js +3 -2
- 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 +0 -10
- 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 +0 -10
- 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 +0 -10
- package/dist/esm/components/src/utilities/Colour/Colour.d.ts +0 -15
- package/dist/esm/components/src/utilities/Colour/Colour.d.ts.map +1 -1
- package/dist/esm/components/src/utilities/Colour/Colour.js +0 -41
- package/dist/esm/components/src/utilities/componentArgs.d.ts +1 -3
- package/dist/esm/components/src/utilities/componentArgs.d.ts.map +1 -1
- package/dist/esm/components/src/utilities/componentArgs.js +1 -1
- package/dist/esm/components/src/utilities/index.d.ts +0 -1
- package/dist/esm/components/src/utilities/index.d.ts.map +1 -1
- package/dist/esm/components/src/utilities/index.js +0 -1
- package/dist/esm/components/src/utilities/snapify.d.ts +2 -3
- package/dist/esm/components/src/utilities/snapify.d.ts.map +1 -1
- package/dist/esm/components/src/utilities/snapify.js +2 -29
- package/dist/esm/src/Snap.d.ts +1 -3
- package/dist/esm/src/Snap.d.ts.map +1 -1
- package/dist/esm/src/Snap.js +7 -86
- package/dist/esm/src/Templates/SnapTemplates.d.ts +1 -2
- package/dist/esm/src/Templates/SnapTemplates.d.ts.map +1 -1
- package/dist/esm/src/Templates/SnapTemplates.js +5 -54
- package/dist/esm/src/Templates/Stores/LibraryStore.d.ts +0 -43
- package/dist/esm/src/Templates/Stores/LibraryStore.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/LibraryStore.js +1 -51
- package/dist/esm/src/Templates/Stores/TemplateStore.d.ts +5 -19
- package/dist/esm/src/Templates/Stores/TemplateStore.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/TemplateStore.js +3 -3
- package/dist/esm/src/Templates/Stores/library/languages/ar.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/library/languages/ar.js +6 -485
- package/dist/esm/src/Templates/Stores/library/languages/de.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/library/languages/de.js +6 -485
- package/dist/esm/src/Templates/Stores/library/languages/es.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/library/languages/es.js +6 -490
- package/dist/esm/src/Templates/Stores/library/languages/fr.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/library/languages/fr.js +6 -490
- package/dist/esm/src/Templates/Stores/library/languages/hi.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/library/languages/hi.js +6 -485
- package/dist/esm/src/Templates/Stores/library/languages/it.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/library/languages/it.js +6 -485
- package/dist/esm/src/Templates/Stores/library/languages/ja.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/library/languages/ja.js +6 -485
- package/dist/esm/src/Templates/Stores/library/languages/ko.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/library/languages/ko.js +6 -485
- package/dist/esm/src/Templates/Stores/library/languages/nl.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/library/languages/nl.js +6 -485
- package/dist/esm/src/Templates/Stores/library/languages/pt.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/library/languages/pt.js +6 -485
- package/dist/esm/src/Templates/Stores/library/languages/ru.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/library/languages/ru.js +6 -485
- package/dist/esm/src/Templates/Stores/library/languages/tr.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/library/languages/tr.js +6 -485
- package/dist/esm/src/Templates/Stores/library/languages/vi.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/library/languages/vi.js +6 -485
- package/dist/esm/src/Templates/Stores/library/languages/zh.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/library/languages/zh.js +6 -485
- package/dist/esm/src/create/index.d.ts +0 -1
- package/dist/esm/src/create/index.d.ts.map +1 -1
- package/dist/esm/src/create/index.js +0 -1
- package/dist/esm/src/setupEvents.d.ts +0 -13
- package/dist/esm/src/setupEvents.d.ts.map +1 -1
- package/dist/esm/src/setupEvents.js +0 -44
- package/dist/esm/src/types.d.ts +3 -13
- package/dist/esm/src/types.d.ts.map +1 -1
- package/dist/esm/src/utils/index.d.ts +0 -1
- package/dist/esm/src/utils/index.d.ts.map +1 -1
- package/dist/esm/src/utils/index.js +0 -1
- package/package.json +20 -29
- package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.js +0 -99
- package/dist/cjs/components/src/components/Atoms/ChatLoadingIndicator/index.js +0 -17
- package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.js +0 -221
- package/dist/cjs/components/src/components/Molecules/ChatAttachmentContext/index.js +0 -17
- package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.js +0 -211
- package/dist/cjs/components/src/components/Molecules/ChatInspirationResultMessage/index.js +0 -17
- package/dist/cjs/components/src/components/Molecules/ChatMessageText/ChatMessageText.js +0 -259
- package/dist/cjs/components/src/components/Molecules/ChatMessageText/index.js +0 -17
- package/dist/cjs/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.js +0 -286
- package/dist/cjs/components/src/components/Molecules/ChatMessageUser/index.js +0 -17
- package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.js +0 -174
- package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/index.js +0 -17
- package/dist/cjs/components/src/components/Molecules/ChatQuickview/ChatQuickview.js +0 -514
- package/dist/cjs/components/src/components/Molecules/ChatQuickview/index.js +0 -17
- package/dist/cjs/components/src/components/Molecules/ChatResult/ChatResult.js +0 -252
- package/dist/cjs/components/src/components/Molecules/ChatResult/index.js +0 -17
- package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.js +0 -113
- package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/index.js +0 -17
- package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.js +0 -107
- package/dist/cjs/components/src/components/Molecules/ChatSuggestedQuestions/index.js +0 -17
- package/dist/cjs/components/src/components/Organisms/Chat/Chat.js +0 -628
- package/dist/cjs/components/src/components/Organisms/Chat/Chat.lang.js +0 -110
- package/dist/cjs/components/src/components/Organisms/Chat/components/ChatAttachments.js +0 -105
- package/dist/cjs/components/src/components/Organisms/Chat/components/ChatComparisonsTray.js +0 -161
- package/dist/cjs/components/src/components/Organisms/Chat/components/ChatComposer.js +0 -166
- package/dist/cjs/components/src/components/Organisms/Chat/components/ChatFacetsBar.js +0 -369
- package/dist/cjs/components/src/components/Organisms/Chat/components/ChatHistory.js +0 -130
- package/dist/cjs/components/src/components/Organisms/Chat/components/ChatMessages.js +0 -218
- package/dist/cjs/components/src/components/Organisms/Chat/components/ChatSessionFeedback.js +0 -123
- package/dist/cjs/components/src/components/Organisms/Chat/components/ChatSideChat.js +0 -173
- package/dist/cjs/components/src/components/Organisms/Chat/components/ChatTopicDrift.js +0 -149
- package/dist/cjs/components/src/components/Organisms/Chat/components/chatAccentTheme.js +0 -62
- package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatFileUpload.js +0 -66
- package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatGestures.js +0 -96
- package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatOverflow.js +0 -113
- package/dist/cjs/components/src/components/Organisms/Chat/hooks/useChatScrollLock.js +0 -135
- package/dist/cjs/components/src/components/Organisms/Chat/index.js +0 -18
- package/dist/cjs/components/src/components/Organisms/ChatButton/ChatButton.js +0 -94
- package/dist/cjs/components/src/components/Organisms/ChatButton/ChatButton.lang.js +0 -11
- package/dist/cjs/components/src/components/Organisms/ChatButton/index.js +0 -18
- package/dist/cjs/components/src/components/Templates/Chat/Chat.js +0 -47
- package/dist/cjs/components/src/components/Templates/Chat/index.js +0 -17
- package/dist/cjs/components/src/components/Templates/ChatButton/ChatButton.js +0 -47
- package/dist/cjs/components/src/components/Templates/ChatButton/index.js +0 -17
- package/dist/cjs/components/src/themes/base/components/templates/chat.js +0 -6
- package/dist/cjs/components/src/themes/base/components/templates/chatButton.js +0 -6
- package/dist/cjs/components/src/themes/bocachica/components/templates/chat.js +0 -6
- package/dist/cjs/components/src/themes/bocachica/components/templates/chatButton.js +0 -6
- package/dist/cjs/components/src/themes/pike/components/templates/chat.js +0 -6
- package/dist/cjs/components/src/themes/pike/components/templates/chatButton.js +0 -6
- package/dist/cjs/components/src/themes/snapnco/components/templates/chat.js +0 -6
- package/dist/cjs/components/src/themes/snapnco/components/templates/chatButton.js +0 -6
- package/dist/cjs/components/src/themes/snappy/components/templates/chat.js +0 -6
- package/dist/cjs/components/src/themes/snappy/components/templates/chatButton.js +0 -6
- package/dist/cjs/components/src/themes/themeComponents/chat.js +0 -14
- package/dist/cjs/components/src/themes/themeComponents/chatButton.js +0 -9
- package/dist/cjs/components/src/utilities/storybook.js +0 -17
- package/dist/cjs/src/Templates/Stores/library/components/Chat.js +0 -5
- package/dist/cjs/src/Templates/Stores/library/components/ChatButton.js +0 -5
- package/dist/cjs/src/create/createChatController.js +0 -31
- package/dist/cjs/src/utils/applyChatTargetInject.js +0 -25
- package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts +0 -17
- package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.d.ts.map +0 -1
- package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/ChatLoadingIndicator.js +0 -92
- package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts +0 -2
- package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.d.ts.map +0 -1
- package/dist/esm/components/src/components/Atoms/ChatLoadingIndicator/index.js +0 -1
- package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.d.ts +0 -37
- package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.d.ts.map +0 -1
- package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.js +0 -215
- package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.d.ts +0 -2
- package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.d.ts.map +0 -1
- package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/index.js +0 -1
- package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts +0 -30
- package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts.map +0 -1
- package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.js +0 -205
- package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts +0 -2
- package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.d.ts.map +0 -1
- package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/index.js +0 -1
- package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.d.ts +0 -36
- package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.d.ts.map +0 -1
- package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.js +0 -253
- package/dist/esm/components/src/components/Molecules/ChatMessageText/index.d.ts +0 -2
- package/dist/esm/components/src/components/Molecules/ChatMessageText/index.d.ts.map +0 -1
- package/dist/esm/components/src/components/Molecules/ChatMessageText/index.js +0 -1
- package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.d.ts +0 -52
- package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.d.ts.map +0 -1
- package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.js +0 -280
- package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.d.ts +0 -2
- package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.d.ts.map +0 -1
- package/dist/esm/components/src/components/Molecules/ChatMessageUser/index.js +0 -1
- package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts +0 -25
- package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts.map +0 -1
- package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.js +0 -168
- package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts +0 -2
- package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.d.ts.map +0 -1
- package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/index.js +0 -1
- package/dist/esm/components/src/components/Molecules/ChatQuickview/ChatQuickview.d.ts +0 -30
- package/dist/esm/components/src/components/Molecules/ChatQuickview/ChatQuickview.d.ts.map +0 -1
- package/dist/esm/components/src/components/Molecules/ChatQuickview/ChatQuickview.js +0 -508
- package/dist/esm/components/src/components/Molecules/ChatQuickview/index.d.ts +0 -2
- package/dist/esm/components/src/components/Molecules/ChatQuickview/index.d.ts.map +0 -1
- package/dist/esm/components/src/components/Molecules/ChatQuickview/index.js +0 -1
- package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.d.ts +0 -35
- package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.d.ts.map +0 -1
- package/dist/esm/components/src/components/Molecules/ChatResult/ChatResult.js +0 -246
- package/dist/esm/components/src/components/Molecules/ChatResult/index.d.ts +0 -2
- package/dist/esm/components/src/components/Molecules/ChatResult/index.d.ts.map +0 -1
- package/dist/esm/components/src/components/Molecules/ChatResult/index.js +0 -1
- package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.d.ts +0 -24
- package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.d.ts.map +0 -1
- package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.js +0 -107
- package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.d.ts +0 -2
- package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.d.ts.map +0 -1
- package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/index.js +0 -1
- package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.d.ts +0 -16
- package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.d.ts.map +0 -1
- package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/ChatSuggestedQuestions.js +0 -101
- package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.d.ts +0 -2
- package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.d.ts.map +0 -1
- package/dist/esm/components/src/components/Molecules/ChatSuggestedQuestions/index.js +0 -1
- package/dist/esm/components/src/components/Organisms/Chat/Chat.d.ts +0 -41
- package/dist/esm/components/src/components/Organisms/Chat/Chat.d.ts.map +0 -1
- package/dist/esm/components/src/components/Organisms/Chat/Chat.js +0 -622
- package/dist/esm/components/src/components/Organisms/Chat/Chat.lang.d.ts +0 -79
- package/dist/esm/components/src/components/Organisms/Chat/Chat.lang.d.ts.map +0 -1
- package/dist/esm/components/src/components/Organisms/Chat/Chat.lang.js +0 -105
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatAttachments.d.ts +0 -26
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatAttachments.d.ts.map +0 -1
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatAttachments.js +0 -99
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatComparisonsTray.d.ts +0 -13
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatComparisonsTray.d.ts.map +0 -1
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatComparisonsTray.js +0 -155
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatComposer.d.ts +0 -19
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatComposer.d.ts.map +0 -1
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatComposer.js +0 -160
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatFacetsBar.d.ts +0 -18
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatFacetsBar.d.ts.map +0 -1
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatFacetsBar.js +0 -363
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatHistory.d.ts +0 -11
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatHistory.d.ts.map +0 -1
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatHistory.js +0 -124
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatMessages.d.ts +0 -30
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatMessages.d.ts.map +0 -1
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatMessages.js +0 -212
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatSessionFeedback.d.ts +0 -13
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatSessionFeedback.d.ts.map +0 -1
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatSessionFeedback.js +0 -117
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatSideChat.d.ts +0 -19
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatSideChat.d.ts.map +0 -1
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatSideChat.js +0 -167
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatTopicDrift.d.ts +0 -14
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatTopicDrift.d.ts.map +0 -1
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatTopicDrift.js +0 -143
- package/dist/esm/components/src/components/Organisms/Chat/components/chatAccentTheme.d.ts +0 -15
- package/dist/esm/components/src/components/Organisms/Chat/components/chatAccentTheme.d.ts.map +0 -1
- package/dist/esm/components/src/components/Organisms/Chat/components/chatAccentTheme.js +0 -58
- package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.d.ts +0 -32
- package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.d.ts.map +0 -1
- package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatFileUpload.js +0 -62
- package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.d.ts +0 -40
- package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.d.ts.map +0 -1
- package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatGestures.js +0 -92
- package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.d.ts +0 -43
- package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.d.ts.map +0 -1
- package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatOverflow.js +0 -109
- package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatScrollLock.d.ts +0 -26
- package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatScrollLock.d.ts.map +0 -1
- package/dist/esm/components/src/components/Organisms/Chat/hooks/useChatScrollLock.js +0 -131
- package/dist/esm/components/src/components/Organisms/Chat/index.d.ts +0 -3
- package/dist/esm/components/src/components/Organisms/Chat/index.d.ts.map +0 -1
- package/dist/esm/components/src/components/Organisms/Chat/index.js +0 -2
- package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.d.ts +0 -18
- package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.d.ts.map +0 -1
- package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.js +0 -88
- package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.lang.d.ts +0 -7
- package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.lang.d.ts.map +0 -1
- package/dist/esm/components/src/components/Organisms/ChatButton/ChatButton.lang.js +0 -8
- package/dist/esm/components/src/components/Organisms/ChatButton/index.d.ts +0 -3
- package/dist/esm/components/src/components/Organisms/ChatButton/index.d.ts.map +0 -1
- package/dist/esm/components/src/components/Organisms/ChatButton/index.js +0 -2
- package/dist/esm/components/src/components/Templates/Chat/Chat.d.ts +0 -12
- package/dist/esm/components/src/components/Templates/Chat/Chat.d.ts.map +0 -1
- package/dist/esm/components/src/components/Templates/Chat/Chat.js +0 -41
- package/dist/esm/components/src/components/Templates/Chat/index.d.ts +0 -2
- package/dist/esm/components/src/components/Templates/Chat/index.d.ts.map +0 -1
- package/dist/esm/components/src/components/Templates/Chat/index.js +0 -1
- package/dist/esm/components/src/components/Templates/ChatButton/ChatButton.d.ts +0 -13
- package/dist/esm/components/src/components/Templates/ChatButton/ChatButton.d.ts.map +0 -1
- package/dist/esm/components/src/components/Templates/ChatButton/ChatButton.js +0 -41
- package/dist/esm/components/src/components/Templates/ChatButton/index.d.ts +0 -2
- package/dist/esm/components/src/components/Templates/ChatButton/index.d.ts.map +0 -1
- package/dist/esm/components/src/components/Templates/ChatButton/index.js +0 -1
- package/dist/esm/components/src/themes/base/components/templates/chat.d.ts +0 -4
- package/dist/esm/components/src/themes/base/components/templates/chat.d.ts.map +0 -1
- package/dist/esm/components/src/themes/base/components/templates/chat.js +0 -3
- package/dist/esm/components/src/themes/base/components/templates/chatButton.d.ts +0 -4
- package/dist/esm/components/src/themes/base/components/templates/chatButton.d.ts.map +0 -1
- package/dist/esm/components/src/themes/base/components/templates/chatButton.js +0 -3
- package/dist/esm/components/src/themes/bocachica/components/templates/chat.d.ts +0 -4
- package/dist/esm/components/src/themes/bocachica/components/templates/chat.d.ts.map +0 -1
- package/dist/esm/components/src/themes/bocachica/components/templates/chat.js +0 -3
- package/dist/esm/components/src/themes/bocachica/components/templates/chatButton.d.ts +0 -4
- package/dist/esm/components/src/themes/bocachica/components/templates/chatButton.d.ts.map +0 -1
- package/dist/esm/components/src/themes/bocachica/components/templates/chatButton.js +0 -3
- package/dist/esm/components/src/themes/pike/components/templates/chat.d.ts +0 -4
- package/dist/esm/components/src/themes/pike/components/templates/chat.d.ts.map +0 -1
- package/dist/esm/components/src/themes/pike/components/templates/chat.js +0 -3
- package/dist/esm/components/src/themes/pike/components/templates/chatButton.d.ts +0 -4
- package/dist/esm/components/src/themes/pike/components/templates/chatButton.d.ts.map +0 -1
- package/dist/esm/components/src/themes/pike/components/templates/chatButton.js +0 -3
- package/dist/esm/components/src/themes/snapnco/components/templates/chat.d.ts +0 -4
- package/dist/esm/components/src/themes/snapnco/components/templates/chat.d.ts.map +0 -1
- package/dist/esm/components/src/themes/snapnco/components/templates/chat.js +0 -3
- package/dist/esm/components/src/themes/snapnco/components/templates/chatButton.d.ts +0 -4
- package/dist/esm/components/src/themes/snapnco/components/templates/chatButton.d.ts.map +0 -1
- package/dist/esm/components/src/themes/snapnco/components/templates/chatButton.js +0 -3
- package/dist/esm/components/src/themes/snappy/components/templates/chat.d.ts +0 -4
- package/dist/esm/components/src/themes/snappy/components/templates/chat.d.ts.map +0 -1
- package/dist/esm/components/src/themes/snappy/components/templates/chat.js +0 -3
- package/dist/esm/components/src/themes/snappy/components/templates/chatButton.d.ts +0 -4
- package/dist/esm/components/src/themes/snappy/components/templates/chatButton.d.ts.map +0 -1
- package/dist/esm/components/src/themes/snappy/components/templates/chatButton.js +0 -3
- package/dist/esm/components/src/themes/themeComponents/chat.d.ts +0 -4
- package/dist/esm/components/src/themes/themeComponents/chat.d.ts.map +0 -1
- package/dist/esm/components/src/themes/themeComponents/chat.js +0 -11
- package/dist/esm/components/src/themes/themeComponents/chatButton.d.ts +0 -4
- package/dist/esm/components/src/themes/themeComponents/chatButton.d.ts.map +0 -1
- package/dist/esm/components/src/themes/themeComponents/chatButton.js +0 -6
- package/dist/esm/components/src/utilities/storybook.d.ts +0 -5
- package/dist/esm/components/src/utilities/storybook.d.ts.map +0 -1
- package/dist/esm/components/src/utilities/storybook.js +0 -13
- package/dist/esm/src/Templates/Stores/library/components/Chat.d.ts +0 -2
- package/dist/esm/src/Templates/Stores/library/components/Chat.d.ts.map +0 -1
- package/dist/esm/src/Templates/Stores/library/components/Chat.js +0 -1
- package/dist/esm/src/Templates/Stores/library/components/ChatButton.d.ts +0 -2
- package/dist/esm/src/Templates/Stores/library/components/ChatButton.d.ts.map +0 -1
- package/dist/esm/src/Templates/Stores/library/components/ChatButton.js +0 -1
- package/dist/esm/src/create/createChatController.d.ts +0 -5
- package/dist/esm/src/create/createChatController.d.ts.map +0 -1
- package/dist/esm/src/create/createChatController.js +0 -29
- package/dist/esm/src/utils/applyChatTargetInject.d.ts +0 -3
- package/dist/esm/src/utils/applyChatTargetInject.d.ts.map +0 -1
- package/dist/esm/src/utils/applyChatTargetInject.js +0 -22
package/dist/cjs/components/src/components/Organisms/AutocompleteLayout/AutocompleteLayout.js
CHANGED
|
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.AutocompleteLayout = void 0;
|
|
7
|
+
exports.layoutHasModule = layoutHasModule;
|
|
7
8
|
const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
|
|
8
9
|
const hooks_1 = require("preact/hooks");
|
|
9
10
|
const mobx_react_lite_1 = require("mobx-react-lite");
|
|
@@ -132,6 +133,9 @@ const defaultStyles = ({ controller, input, viewportMaxHeight, width, theme, col
|
|
|
132
133
|
'.ss__autocomplete__facets-wrapper': {
|
|
133
134
|
width: '100%',
|
|
134
135
|
},
|
|
136
|
+
'.ss__autocomplete__search-input-wrapper': {
|
|
137
|
+
width: '100%',
|
|
138
|
+
},
|
|
135
139
|
'.ss__autocomplete__content': {
|
|
136
140
|
display: 'flex',
|
|
137
141
|
flex: `1 1 0%`,
|
|
@@ -281,7 +285,7 @@ exports.AutocompleteLayout = (0, mobx_react_lite_1.observer)((properties) => {
|
|
|
281
285
|
input = document.querySelector(input);
|
|
282
286
|
}
|
|
283
287
|
}
|
|
284
|
-
const { facetsTitle, contentTitle, column1, column2, column3, column4, onReset, excludeBanners, resultComponent, templates, disableStyles, className, internalClassName, controller, tabManager, } = props;
|
|
288
|
+
const { facetsTitle, contentTitle, column1, column2, column3, column4, onReset, excludeBanners, resultComponent, templates, disableStyles, className, internalClassName, controller, tabManager, searchInputSlot, } = props;
|
|
285
289
|
let layout = props.layout;
|
|
286
290
|
const subProps = {
|
|
287
291
|
button: {
|
|
@@ -337,6 +341,7 @@ exports.AutocompleteLayout = (0, mobx_react_lite_1.observer)((properties) => {
|
|
|
337
341
|
facetsHorizontal: {
|
|
338
342
|
name: 'autocomplete',
|
|
339
343
|
// default props
|
|
344
|
+
controller,
|
|
340
345
|
// inherited props
|
|
341
346
|
...(0, utilities_1.defined)({
|
|
342
347
|
disableStyles,
|
|
@@ -406,8 +411,10 @@ exports.AutocompleteLayout = (0, mobx_react_lite_1.observer)((properties) => {
|
|
|
406
411
|
controller.bind();
|
|
407
412
|
}, []);
|
|
408
413
|
}
|
|
409
|
-
|
|
410
|
-
|
|
414
|
+
// content modules require a focused input and something to show (terms, or a loaded query)
|
|
415
|
+
const contentVisible = Boolean(input === state.focusedInput) &&
|
|
416
|
+
Boolean(terms.length > 0 || trending?.length > 0 || history?.length > 0 || (state.input && controller.store.loaded));
|
|
417
|
+
const visible = contentVisible || Boolean(searchInputSlot);
|
|
411
418
|
const showResultsBool = () => Boolean(results.length > 0 || Object.keys(merchandising.content).length > 0 || search?.query?.string || loading);
|
|
412
419
|
const [showResults, setShowResults] = (0, hooks_1.useState)(showResultsBool());
|
|
413
420
|
const checkAndSetShowResults = () => {
|
|
@@ -464,6 +471,8 @@ exports.AutocompleteLayout = (0, mobx_react_lite_1.observer)((properties) => {
|
|
|
464
471
|
RecommendationTemplateResultComponent = recs.RecommendationTemplateResultComponent;
|
|
465
472
|
recsController = recs.recsController;
|
|
466
473
|
}
|
|
474
|
+
// the slot element can only be rendered once - the first 'searchInput' module claims it
|
|
475
|
+
let searchInputRendered = false;
|
|
467
476
|
const findModule = (module, rowCounter) => {
|
|
468
477
|
//new row
|
|
469
478
|
if (typeof module !== 'string') {
|
|
@@ -505,6 +514,15 @@ exports.AutocompleteLayout = (0, mobx_react_lite_1.observer)((properties) => {
|
|
|
505
514
|
return null;
|
|
506
515
|
return (0, jsx_runtime_1.jsx)("div", { className: "ss__autocomplete__column ss__autocomplete__column--c4", children: children });
|
|
507
516
|
}
|
|
517
|
+
if (module == 'searchInput') {
|
|
518
|
+
if (!searchInputSlot || searchInputRendered)
|
|
519
|
+
return null;
|
|
520
|
+
searchInputRendered = true;
|
|
521
|
+
return (0, jsx_runtime_1.jsx)("div", { className: "ss__autocomplete__search-input-wrapper", children: searchInputSlot });
|
|
522
|
+
}
|
|
523
|
+
// separators render whenever the layout does; every other module needs a focused input with content
|
|
524
|
+
if (module !== '_' && !contentVisible)
|
|
525
|
+
return null;
|
|
508
526
|
if (module == 'termsList') {
|
|
509
527
|
if (!terms?.length && !history?.length && !trending?.length)
|
|
510
528
|
return null;
|
|
@@ -558,23 +576,11 @@ exports.AutocompleteLayout = (0, mobx_react_lite_1.observer)((properties) => {
|
|
|
558
576
|
if (module == 'button.see-more' && showResults && search?.query?.string && results.length > 0) {
|
|
559
577
|
return ((0, jsx_runtime_1.jsxs)(Button_1.Button, { ...subProps.button, ...mergedLang.seeMoreButton.attributes, children: [(0, jsx_runtime_1.jsx)("span", { ...mergedLang.seeMoreButton.value }), (0, jsx_runtime_1.jsx)(Icon_1.Icon, { ...subProps.icon })] }));
|
|
560
578
|
}
|
|
579
|
+
return null;
|
|
561
580
|
};
|
|
562
|
-
|
|
563
|
-
if (props.layout === 'terms') {
|
|
564
|
-
layout = [['termsList'], ['no-results'], ['_', 'button.see-more']];
|
|
565
|
-
}
|
|
566
|
-
if (props.layout === 'mobile') {
|
|
567
|
-
layout = [['termsList'], ['content'], ['_', 'button.see-more']];
|
|
568
|
-
}
|
|
569
|
-
if (props.layout === 'tablet') {
|
|
570
|
-
layout = [['c1', 'c3']];
|
|
571
|
-
}
|
|
572
|
-
if (props.layout === 'desktop') {
|
|
573
|
-
layout = [['c1', 'c2', 'c3']];
|
|
574
|
-
}
|
|
575
|
-
}
|
|
581
|
+
layout = typeof props.layout === 'string' ? PREBUILT_LAYOUTS[props.layout] : props.layout;
|
|
576
582
|
//fallback for unsupported layout values
|
|
577
|
-
if (typeof layout === 'string') {
|
|
583
|
+
if (typeof props.layout === 'string' && !layout) {
|
|
578
584
|
controller.log.warn(`unsupported layout found. ${props.layout}`);
|
|
579
585
|
layout = [];
|
|
580
586
|
}
|
|
@@ -586,7 +592,24 @@ exports.AutocompleteLayout = (0, mobx_react_lite_1.observer)((properties) => {
|
|
|
586
592
|
role: 'tabpanel',
|
|
587
593
|
'aria-labelledby': `ss__tab--${tabControllerId}`,
|
|
588
594
|
}
|
|
589
|
-
: {}), children: [(0, jsx_runtime_1.jsx)("span", { role: 'link', ref: (e) => (0, hooks_2.useA11y)(e), onClick: () => props.onReset && props.onReset(), className: "ss__autocomplete__close-button", style: { position: 'absolute', top: '-10000000px', left: '-1000000px' }, ...mergedLang.closeButton?.all }), layout
|
|
590
|
-
return findModule(module, topRowCounter);
|
|
591
|
-
})] }) })) : null;
|
|
595
|
+
: {}), children: [(0, jsx_runtime_1.jsx)("span", { role: 'link', ref: (e) => (0, hooks_2.useA11y)(e), onClick: () => props.onReset && props.onReset(), className: "ss__autocomplete__close-button", style: { position: 'absolute', top: '-10000000px', left: '-1000000px' }, ...mergedLang.closeButton?.all }), layout.map((module) => findModule(module, topRowCounter))] }) })) : null;
|
|
592
596
|
});
|
|
597
|
+
const PREBUILT_LAYOUTS = {
|
|
598
|
+
terms: [['termsList'], ['no-results'], ['_', 'button.see-more']],
|
|
599
|
+
mobile: [['termsList'], ['content'], ['_', 'button.see-more']],
|
|
600
|
+
tablet: [['c1', 'c3']],
|
|
601
|
+
desktop: [['c1', 'c2', 'c3']],
|
|
602
|
+
};
|
|
603
|
+
// checks a layout (and the column layouts it references) for a module
|
|
604
|
+
function layoutHasModule({ layout, column1, column2, column3, column4, }, moduleToFind) {
|
|
605
|
+
//recast names back to c1 style
|
|
606
|
+
const columns = {
|
|
607
|
+
c1: column1,
|
|
608
|
+
c2: column2,
|
|
609
|
+
c3: column3,
|
|
610
|
+
c4: column4,
|
|
611
|
+
};
|
|
612
|
+
const modulesList = (typeof layout === 'string' ? PREBUILT_LAYOUTS[layout] : layout)?.flat() || [];
|
|
613
|
+
// a module is either listed directly or inside a referenced column's layout
|
|
614
|
+
return modulesList.some((entry) => entry === moduleToFind || Boolean(columns[entry]?.layout.flat().includes(moduleToFind)));
|
|
615
|
+
}
|
|
@@ -19,6 +19,7 @@ const Icon_1 = require("../../Atoms/Icon");
|
|
|
19
19
|
const Button_1 = require("../../Atoms/Button");
|
|
20
20
|
const Slideout_1 = require("../../Molecules/Slideout");
|
|
21
21
|
const Sidebar_1 = require("../Sidebar");
|
|
22
|
+
const useA11y_1 = require("../../../hooks/useA11y");
|
|
22
23
|
const defaultStyles = ({ theme }) => {
|
|
23
24
|
return (0, react_1.css)({
|
|
24
25
|
margin: '10px 0px',
|
|
@@ -101,6 +102,8 @@ exports.FacetsHorizontal = (0, mobx_react_lite_1.observer)((properties) => {
|
|
|
101
102
|
};
|
|
102
103
|
let props = (0, utilities_1.mergeProps)('facetsHorizontal', globalTheme, defaultProps, properties);
|
|
103
104
|
const { facets, limit, alwaysShowToggleSidebarButton, hideToggleSidebarButton, onFacetOptionClick, showSelectedCount, hideSelectedCountParenthesis, clearAllIcon, showClearAllText, iconExpand, clearAllText, iconCollapse, toggleSidebarButtonText, disableStyles, className, internalClassName, controller, treePath, } = props;
|
|
105
|
+
//we just dont allow this prop to be used outside of the search controller.
|
|
106
|
+
const openFacetsInSidebar = controller?.type !== 'search' ? false : props.openFacetsInSidebar;
|
|
104
107
|
const { overrideElement, shouldRenderDefault } = (0, hooks_2.useCustomComponentOverride)('facetsHorizontal', props);
|
|
105
108
|
if (!shouldRenderDefault) {
|
|
106
109
|
return overrideElement;
|
|
@@ -142,6 +145,7 @@ exports.FacetsHorizontal = (0, mobx_react_lite_1.observer)((properties) => {
|
|
|
142
145
|
}
|
|
143
146
|
}
|
|
144
147
|
const [sidebarOpenState, setSidebarOpenState] = (0, hooks_1.useState)(false);
|
|
148
|
+
const renderToggleSidebarButton = Boolean(!hideToggleSidebarButton && (isOverflowing || alwaysShowToggleSidebarButton));
|
|
145
149
|
const subProps = {
|
|
146
150
|
dropdown: {
|
|
147
151
|
// default props
|
|
@@ -182,7 +186,7 @@ exports.FacetsHorizontal = (0, mobx_react_lite_1.observer)((properties) => {
|
|
|
182
186
|
internalClassName: `ss__facets-horizontal__content__facet`,
|
|
183
187
|
justContent: true,
|
|
184
188
|
// this should be turned on if there is ever a filters button rendering.
|
|
185
|
-
statefulOverflow:
|
|
189
|
+
statefulOverflow: renderToggleSidebarButton ? true : undefined,
|
|
186
190
|
// inherited props
|
|
187
191
|
...(0, utilities_1.defined)({
|
|
188
192
|
disableStyles,
|
|
@@ -206,6 +210,7 @@ exports.FacetsHorizontal = (0, mobx_react_lite_1.observer)((properties) => {
|
|
|
206
210
|
sidebar: {
|
|
207
211
|
// default props
|
|
208
212
|
internalClassName: 'ss__facets-horizontal__sidebar',
|
|
213
|
+
onToggleSidebar: () => setSidebarOpenState(false),
|
|
209
214
|
// inherited props
|
|
210
215
|
...(0, utilities_1.defined)({
|
|
211
216
|
disableStyles,
|
|
@@ -229,6 +234,54 @@ exports.FacetsHorizontal = (0, mobx_react_lite_1.observer)((properties) => {
|
|
|
229
234
|
const innerRef = (0, hooks_2.useClickOutside)(() => {
|
|
230
235
|
selectedFacet && setSelectedFacet(undefined);
|
|
231
236
|
});
|
|
237
|
+
// facet field to scroll into view once the slideout renders
|
|
238
|
+
const [sidebarFacetField, setSidebarFacetField] = (0, hooks_1.useState)(undefined);
|
|
239
|
+
// facet expanded by a header click; collapsed again when the sidebar closes
|
|
240
|
+
const autoOpenedFacet = (0, hooks_1.useRef)(undefined);
|
|
241
|
+
// field of the header that opened the sidebar; focus returns to it when the sidebar closes
|
|
242
|
+
const openerField = (0, hooks_1.useRef)(undefined);
|
|
243
|
+
const openFacetsInSidebarFunc = (facet) => {
|
|
244
|
+
// expand the facet so it renders open in the sidebar
|
|
245
|
+
if (facet.collapsed) {
|
|
246
|
+
facet.toggleCollapse();
|
|
247
|
+
autoOpenedFacet.current = facet;
|
|
248
|
+
}
|
|
249
|
+
openerField.current = facet.field;
|
|
250
|
+
setSidebarFacetField(facet.field);
|
|
251
|
+
setSidebarOpenState(true);
|
|
252
|
+
};
|
|
253
|
+
(0, hooks_1.useEffect)(() => {
|
|
254
|
+
if (!sidebarFacetField || !sidebarOpenState)
|
|
255
|
+
return;
|
|
256
|
+
// slideout content is already mounted; match by class so field names need no CSS escaping
|
|
257
|
+
const slideoutElem = innerRef.current?.querySelector('.ss__facets-horizontal__slideout');
|
|
258
|
+
const facetElem = Array.from(slideoutElem?.querySelectorAll('.ss__facet') || []).find((elem) => elem.classList.contains(`ss__facet--${sidebarFacetField}`));
|
|
259
|
+
if (facetElem) {
|
|
260
|
+
if (typeof facetElem.scrollIntoView == 'function') {
|
|
261
|
+
facetElem.scrollIntoView({ block: 'start' });
|
|
262
|
+
}
|
|
263
|
+
// move focus into the sidebar so keyboard navigation continues from the opened facet
|
|
264
|
+
facetElem.querySelector('.ss__facet__header')?.focus({ preventScroll: true });
|
|
265
|
+
}
|
|
266
|
+
setSidebarFacetField(undefined);
|
|
267
|
+
}, [sidebarFacetField, sidebarOpenState]);
|
|
268
|
+
(0, hooks_1.useEffect)(() => {
|
|
269
|
+
if (sidebarOpenState)
|
|
270
|
+
return;
|
|
271
|
+
// re-collapse the auto-opened facet (slideout content is already unmounted, so nothing flickers)
|
|
272
|
+
const facet = autoOpenedFacet.current;
|
|
273
|
+
autoOpenedFacet.current = undefined;
|
|
274
|
+
if (facet && !facet.collapsed && typeof facet.toggleCollapse == 'function') {
|
|
275
|
+
facet.toggleCollapse();
|
|
276
|
+
}
|
|
277
|
+
// return focus to the header that opened the sidebar
|
|
278
|
+
const field = openerField.current;
|
|
279
|
+
openerField.current = undefined;
|
|
280
|
+
if (field) {
|
|
281
|
+
const headerDropdown = Array.from(innerRef.current?.querySelectorAll('.ss__facets-horizontal__header__dropdown') || []).find((elem) => elem.classList.contains(`ss__facets-horizontal__header__dropdown--${field}`));
|
|
282
|
+
headerDropdown?.querySelector('.ss__dropdown__button')?.focus();
|
|
283
|
+
}
|
|
284
|
+
}, [sidebarOpenState]);
|
|
232
285
|
//initialize lang
|
|
233
286
|
const defaultLang = {
|
|
234
287
|
toggleSidebarButtonText: {
|
|
@@ -241,7 +294,8 @@ exports.FacetsHorizontal = (0, mobx_react_lite_1.observer)((properties) => {
|
|
|
241
294
|
const ToggleSidebarButton = ({ sidebarOpenState, setSidebarOpenState, subProps }) => {
|
|
242
295
|
return ((0, jsx_runtime_1.jsx)(Button_1.Button, { ...subProps.toggleSidebarButton, internalClassName: "ss__facets-horizontal__header__toggle-sidebar", onClick: () => setSidebarOpenState(!sidebarOpenState), children: (0, jsx_runtime_1.jsx)("span", { ...mergedLang.toggleSidebarButtonText.all }) }));
|
|
243
296
|
};
|
|
244
|
-
|
|
297
|
+
// the slideout is also needed when facet headers open the sidebar
|
|
298
|
+
const renderSlideout = renderToggleSidebarButton || Boolean(openFacetsInSidebar);
|
|
245
299
|
//todo investigate keyboard navigation here when overlay prop is true/false
|
|
246
300
|
return (facetsToShow && facetsToShow?.length > 0) || isOverflowing ? ((0, jsx_runtime_1.jsx)(providers_1.CacheProvider, { children: (0, jsx_runtime_1.jsxs)("div", { className: (0, classnames_1.default)('ss__facets-horizontal', className, internalClassName), ref: innerRef, ...styling, children: [(0, jsx_runtime_1.jsxs)("div", { className: "ss__facets-horizontal__header", children: [facetsToShow?.map((facet) => {
|
|
247
301
|
const selectedCount = facet?.values?.filter((value) => value?.filtered).length ||
|
|
@@ -264,8 +318,12 @@ exports.FacetsHorizontal = (0, mobx_react_lite_1.observer)((properties) => {
|
|
|
264
318
|
selectedFacet,
|
|
265
319
|
facet,
|
|
266
320
|
}, { activeBreakpoint: globalTheme?.activeBreakpoint });
|
|
267
|
-
return ((0, jsx_runtime_1.jsx)(Dropdown_1.Dropdown, { ...subProps.dropdown, internalClassName: (0, classnames_1.default)(subProps.dropdown.internalClassName, `ss__facets-horizontal__header__dropdown--${facet.display}`, `ss__facets-horizontal__header__dropdown--${facet.field}`), open: selectedFacet?.field === facet.field, onClick: (e) => {
|
|
268
|
-
|
|
321
|
+
return ((0, jsx_runtime_1.jsx)(Dropdown_1.Dropdown, { ...subProps.dropdown, internalClassName: (0, classnames_1.default)(subProps.dropdown.internalClassName, `ss__facets-horizontal__header__dropdown--${facet.display}`, `ss__facets-horizontal__header__dropdown--${facet.field}`), open: openFacetsInSidebar ? false : selectedFacet?.field === facet.field, onClick: (e) => {
|
|
322
|
+
if (openFacetsInSidebar) {
|
|
323
|
+
openFacetsInSidebarFunc(facet);
|
|
324
|
+
return;
|
|
325
|
+
}
|
|
326
|
+
// @ts-ignore - escape key closes the dropdown
|
|
269
327
|
if (selectedFacet !== facet && e.code !== 'Escape') {
|
|
270
328
|
setSelectedFacet(facet);
|
|
271
329
|
}
|
|
@@ -277,6 +335,6 @@ exports.FacetsHorizontal = (0, mobx_react_lite_1.observer)((properties) => {
|
|
|
277
335
|
facet?.clear.url.link.onClick();
|
|
278
336
|
}, icon: clearAllIcon ? clearAllIcon : undefined, children: mergedLang.clearAllText.value && showClearAllText ? (0, jsx_runtime_1.jsx)("label", { ...mergedLang.clearAllText.all }) : null })) : ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {}))] }), (0, jsx_runtime_1.jsx)(Icon_1.Icon, { ...subProps.icon, ...(selectedFacet?.field === facet.field
|
|
279
337
|
? { ...(typeof iconExpand == 'string' ? { icon: iconExpand } : iconExpand) }
|
|
280
|
-
: { ...(typeof iconCollapse == 'string' ? { icon: iconCollapse } : iconCollapse) }) })] }), disableOverlay: false, children: (0, jsx_runtime_1.jsx)(Facet_1.Facet, { ...subProps.facet, facet: facet }) }));
|
|
281
|
-
}),
|
|
338
|
+
: { ...(typeof iconCollapse == 'string' ? { icon: iconCollapse } : iconCollapse) }) })] }), disableOverlay: false, children: !openFacetsInSidebar && (0, jsx_runtime_1.jsx)(Facet_1.Facet, { ...subProps.facet, facet: facet }) }));
|
|
339
|
+
}), renderToggleSidebarButton && ((0, jsx_runtime_1.jsx)(ToggleSidebarButton, { sidebarOpenState: sidebarOpenState, setSidebarOpenState: setSidebarOpenState, subProps: subProps }))] }), renderSlideout && ((0, jsx_runtime_1.jsx)(Slideout_1.Slideout, { ...subProps.slideout, active: sidebarOpenState, children: (0, jsx_runtime_1.jsx)("div", { className: 'ss__facets-horizontal__slideout__sidebar-wrapper', ref: (e) => (0, useA11y_1.useA11y)(e, 0, true, () => setSidebarOpenState((prev) => !prev)), children: (0, jsx_runtime_1.jsx)(Sidebar_1.Sidebar, { ...subProps.sidebar, controller: controller }) }) }))] }) })) : null;
|
|
282
340
|
});
|
|
@@ -26,6 +26,9 @@ const defaultStyles = (props) => {
|
|
|
26
26
|
gap: '10px',
|
|
27
27
|
flexWrap: 'wrap',
|
|
28
28
|
},
|
|
29
|
+
'.ss__filter-summary__no-filters': {
|
|
30
|
+
margin: '5px 0',
|
|
31
|
+
},
|
|
29
32
|
'&.ss__filter-summary--list': {
|
|
30
33
|
'& .ss__filter-summary__clear-all .ss__filter__value': {
|
|
31
34
|
marginLeft: '5px',
|
|
@@ -70,6 +73,8 @@ exports.FilterSummary = (0, mobx_react_lite_1.observer)((properties) => {
|
|
|
70
73
|
title: 'Current Filters',
|
|
71
74
|
type: 'inline',
|
|
72
75
|
clearAllLabel: 'Clear All',
|
|
76
|
+
noFiltersText: 'No filters applied',
|
|
77
|
+
hideNoFiltersText: true,
|
|
73
78
|
clearAllIcon: 'close-thin',
|
|
74
79
|
filterIcon: 'close-thin',
|
|
75
80
|
filters: properties.controller?.store?.filters,
|
|
@@ -77,7 +82,7 @@ exports.FilterSummary = (0, mobx_react_lite_1.observer)((properties) => {
|
|
|
77
82
|
treePath: globalTreePath,
|
|
78
83
|
};
|
|
79
84
|
const props = (0, utilities_1.mergeProps)('filterSummary', globalTheme, defaultProps, properties);
|
|
80
|
-
const { filters, title, type, filterIcon, clearAllIcon, separator, hideFacetLabel, hideTitle, clearAllLabel, hideClearAll, onClick, onClearAllClick, disableStyles, className, internalClassName, treePath, } = props;
|
|
85
|
+
const { filters, title, type, filterIcon, clearAllIcon, separator, hideFacetLabel, hideTitle, clearAllLabel, hideClearAll, noFiltersText, hideNoFiltersText, onClick, onClearAllClick, disableStyles, className, internalClassName, treePath, } = props;
|
|
81
86
|
const { overrideElement, shouldRenderDefault } = (0, hooks_1.useCustomComponentOverride)('filterSummary', props);
|
|
82
87
|
if (!shouldRenderDefault) {
|
|
83
88
|
return overrideElement;
|
|
@@ -108,16 +113,22 @@ exports.FilterSummary = (0, mobx_react_lite_1.observer)((properties) => {
|
|
|
108
113
|
clearAllLabel: {
|
|
109
114
|
value: clearAllLabel,
|
|
110
115
|
},
|
|
116
|
+
noFiltersText: {
|
|
117
|
+
value: noFiltersText,
|
|
118
|
+
},
|
|
111
119
|
};
|
|
112
120
|
//deep merge with props.lang
|
|
113
121
|
const lang = (0, deepmerge_1.default)(defaultLang, props.lang || {});
|
|
114
|
-
const
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
122
|
+
const langOptions = { activeBreakpoint: globalTheme?.activeBreakpoint };
|
|
123
|
+
const mergedLang = {
|
|
124
|
+
...(0, hooks_1.useLang)({ title: lang.title }, { filters }, langOptions),
|
|
125
|
+
...(0, hooks_1.useLang)({ noFiltersText: lang.noFiltersText }, { controller: properties.controller }, langOptions),
|
|
126
|
+
};
|
|
127
|
+
if (!filters?.length && hideNoFiltersText) {
|
|
128
|
+
return null;
|
|
129
|
+
}
|
|
130
|
+
return ((0, jsx_runtime_1.jsx)(providers_1.CacheProvider, { children: (0, jsx_runtime_1.jsxs)("div", { ...styling, className: (0, classnames_1.default)('ss__filter-summary', { 'ss__filter-summary--list': type === 'list' }, { 'ss__filter-summary--inline': type === 'inline' }, { 'ss__filter-summary--no-filters': !filters?.length }, className, internalClassName), children: [!hideTitle && (0, jsx_runtime_1.jsx)("div", { className: "ss__filter-summary__title", ...mergedLang.title?.all }), filters?.length ? ((0, jsx_runtime_1.jsxs)("div", { className: "ss__filter-summary__filters", children: [filters.map((filter) => ((0, jsx_runtime_1.jsx)(Filter_1.Filter, { ...subProps.filter, filter: filter, onClick: (e) => onClick && onClick(e, filter) }))), !hideClearAll && ((0, jsx_runtime_1.jsx)(Filter_1.Filter, { ...subProps.filter, name: 'clear-all', icon: clearAllIcon, internalClassName: `${subProps?.filter?.internalClassName} ss__filter-summary__clear-all`, hideFacetLabel: true, valueLabel: clearAllLabel, onClick: (e) => {
|
|
118
131
|
onClearAllClick && onClearAllClick(e);
|
|
119
132
|
properties.controller?.urlManager.remove('filter').remove('page').go();
|
|
120
|
-
}, lang: {
|
|
121
|
-
filter: { attributes: { 'aria-label': clearAllLabel } },
|
|
122
|
-
} }))] })] }) })) : null;
|
|
133
|
+
}, lang: { filter: lang.clearAllLabel } }))] })) : ((0, jsx_runtime_1.jsx)("div", { className: "ss__filter-summary__no-filters", ...mergedLang.noFiltersText?.all }))] }) }));
|
|
123
134
|
});
|
|
@@ -258,7 +258,7 @@ exports.QuickviewLayout = (0, mobx_react_lite_1.observer)((properties) => {
|
|
|
258
258
|
hideBadge: false,
|
|
259
259
|
};
|
|
260
260
|
const props = (0, utilities_1.mergeProps)('quickviewLayout', globalTheme, defaultProps, properties);
|
|
261
|
-
const { quickviewManager, className, internalClassName, disableStyles, treePath, hideBadge,
|
|
261
|
+
const { quickviewManager, className, internalClassName, disableStyles, treePath, hideBadge, column1, column2, column3, column4, recommendation } = props;
|
|
262
262
|
// NOTE: the `!shouldRenderDefault` return lives below the last hook call — every hook in this
|
|
263
263
|
// component must run unconditionally on every render (shouldRenderDefault can flip while
|
|
264
264
|
// mounted, e.g. when a pending customComponent import resolves or fails).
|
|
@@ -281,12 +281,6 @@ exports.QuickviewLayout = (0, mobx_react_lite_1.observer)((properties) => {
|
|
|
281
281
|
moreInfoButton: {
|
|
282
282
|
value: 'More info',
|
|
283
283
|
},
|
|
284
|
-
similarButton: {
|
|
285
|
-
value: 'Similar',
|
|
286
|
-
},
|
|
287
|
-
discussButton: {
|
|
288
|
-
value: 'Discuss',
|
|
289
|
-
},
|
|
290
284
|
loadingText: {
|
|
291
285
|
value: 'Loading…',
|
|
292
286
|
},
|
|
@@ -349,8 +343,7 @@ exports.QuickviewLayout = (0, mobx_react_lite_1.observer)((properties) => {
|
|
|
349
343
|
// is within it).
|
|
350
344
|
(0, hooks_1.useEffect)(() => {
|
|
351
345
|
const isOpenNow = Boolean(quickviewManager?.store?.isOpen);
|
|
352
|
-
|
|
353
|
-
if (!shouldRenderDefault || !isOpenNow || props.inline)
|
|
346
|
+
if (!shouldRenderDefault || !isOpenNow)
|
|
354
347
|
return;
|
|
355
348
|
const onKey = (e) => {
|
|
356
349
|
if (e.key === 'Escape' && !galleryOpen) {
|
|
@@ -359,7 +352,7 @@ exports.QuickviewLayout = (0, mobx_react_lite_1.observer)((properties) => {
|
|
|
359
352
|
};
|
|
360
353
|
window.addEventListener('keydown', onKey);
|
|
361
354
|
return () => window.removeEventListener('keydown', onKey);
|
|
362
|
-
}, [shouldRenderDefault, quickviewManager?.store?.isOpen, galleryOpen
|
|
355
|
+
}, [shouldRenderDefault, quickviewManager?.store?.isOpen, galleryOpen]);
|
|
363
356
|
// Recommendation modules. `findModule` runs inside .map()/recursion and must not call hooks, so
|
|
364
357
|
// resolve every referenced profile's controller + components here (stable order) and let
|
|
365
358
|
// findModule read from this map. Mirrors Organisms/NoResults.
|
|
@@ -456,18 +449,12 @@ exports.QuickviewLayout = (0, mobx_react_lite_1.observer)((properties) => {
|
|
|
456
449
|
};
|
|
457
450
|
// Dialog semantics + focus trap for the quickview content, following the autocomplete
|
|
458
451
|
// containers (AutocompleteModal/AutocompleteSlideout): useA11y traps Tab within the
|
|
459
|
-
// content and wires Escape to the callback above.
|
|
460
|
-
// window) are part of the surrounding page — no dialog role and no focus trap, which
|
|
461
|
-
// would otherwise stop the shopper tabbing out to the chat composer.
|
|
452
|
+
// content and wires Escape to the callback above.
|
|
462
453
|
const contentProps = {
|
|
463
454
|
className: 'ss__quickview__content',
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
role: 'dialog',
|
|
468
|
-
'aria-modal': 'true',
|
|
469
|
-
ref: (e) => (0, hooks_2.useA11y)(e, 0, true, handleEscape),
|
|
470
|
-
}),
|
|
455
|
+
role: 'dialog',
|
|
456
|
+
'aria-modal': 'true',
|
|
457
|
+
ref: (e) => (0, hooks_2.useA11y)(e, 0, true, handleEscape),
|
|
471
458
|
...mergedLang.quickview?.attributes,
|
|
472
459
|
};
|
|
473
460
|
// Prefer `product.display` so the displayed name/image/attributes reflect the
|
|
@@ -562,23 +549,17 @@ exports.QuickviewLayout = (0, mobx_react_lite_1.observer)((properties) => {
|
|
|
562
549
|
// the selection whose field matches (e.g. `variantSelection.color`). The field also matches its
|
|
563
550
|
// component-name form (`color_family` → `color-family`). A bare `variantSelection` module is
|
|
564
551
|
// not supported.
|
|
565
|
-
// `variantDropdownType` swaps the component for selections that aren't swatches.
|
|
566
|
-
const renderSelection = (selection) => {
|
|
567
|
-
const isSwatch = selection.type === 'swatch' || selection.type === 'swatches';
|
|
568
|
-
const type = variantDropdownType && !isSwatch ? variantDropdownType : selection.type;
|
|
569
|
-
return ((0, jsx_runtime_1.jsxs)("div", { className: "ss__quickview__variant", children: [(0, jsx_runtime_1.jsx)("div", { className: "ss__quickview__variant-title", children: selection.label || selection.field }), (0, jsx_runtime_1.jsx)(VariantSelection_1.VariantSelection, { selection: selection, type: type, theme: props.theme, treePath: treePath, ...(0, utilities_1.defined)({ disableStyles }) })] }, selection.field));
|
|
570
|
-
};
|
|
571
552
|
if (module == 'variantSelections') {
|
|
572
553
|
if (!selections || selections.length === 0)
|
|
573
554
|
return null;
|
|
574
|
-
return (0, jsx_runtime_1.jsx)("div", { className: "ss__quickview__variants", children: selections.map((selection) =>
|
|
555
|
+
return ((0, jsx_runtime_1.jsx)("div", { className: "ss__quickview__variants", children: selections.map((selection) => ((0, jsx_runtime_1.jsxs)("div", { className: "ss__quickview__variant", children: [(0, jsx_runtime_1.jsx)("div", { className: "ss__quickview__variant-title", children: selection.label || selection.field }), (0, jsx_runtime_1.jsx)(VariantSelection_1.VariantSelection, { selection: selection, type: selection.type, theme: props.theme, treePath: treePath, ...(0, utilities_1.defined)({ disableStyles }) })] }, selection.field))) }));
|
|
575
556
|
}
|
|
576
557
|
if (module.startsWith('variantSelection.')) {
|
|
577
558
|
const name = module.slice('variantSelection.'.length);
|
|
578
559
|
const selection = selections?.find((selection) => selection.field === name || (0, snap_toolbox_1.fieldNameToComponentName)(selection.field) === name);
|
|
579
560
|
if (!name || !selection)
|
|
580
561
|
return null;
|
|
581
|
-
return
|
|
562
|
+
return ((0, jsx_runtime_1.jsxs)("div", { className: "ss__quickview__variant", children: [(0, jsx_runtime_1.jsx)("div", { className: "ss__quickview__variant-title", children: selection.label || selection.field }), (0, jsx_runtime_1.jsx)(VariantSelection_1.VariantSelection, { selection: selection, type: selection.type, theme: props.theme, treePath: treePath, ...(0, utilities_1.defined)({ disableStyles }) })] }));
|
|
582
563
|
}
|
|
583
564
|
if (module == 'button.add-to-cart') {
|
|
584
565
|
if (!product)
|
|
@@ -588,7 +569,7 @@ exports.QuickviewLayout = (0, mobx_react_lite_1.observer)((properties) => {
|
|
|
588
569
|
if (module == 'button.more-info') {
|
|
589
570
|
if (!url)
|
|
590
571
|
return null;
|
|
591
|
-
return ((0, jsx_runtime_1.jsx)(Button_1.Button, { name: "more-info", internalClassName: "
|
|
572
|
+
return ((0, jsx_runtime_1.jsx)(Button_1.Button, { name: "more-info", internalClassName: "ss__quickview__go-to-product", lang: { button: lang.moreInfoButton }, onClick: (e) => {
|
|
592
573
|
// track the redirect to the product page as a quickview clickThrough
|
|
593
574
|
// before navigating away (delegated with `quickView: true`)
|
|
594
575
|
if (product) {
|
|
@@ -597,20 +578,6 @@ exports.QuickviewLayout = (0, mobx_react_lite_1.observer)((properties) => {
|
|
|
597
578
|
window.location.href = url;
|
|
598
579
|
}, theme: props.theme, treePath: treePath, ...(0, utilities_1.defined)({ disableStyles }) }));
|
|
599
580
|
}
|
|
600
|
-
// Chat-only modules: `button.similar` and `button.discuss` forward to the chat controller
|
|
601
|
-
// that opened the quickview. They render nothing for non-chat source controllers, so a
|
|
602
|
-
// layout carrying them stays safe to share across surfaces.
|
|
603
|
-
if (module == 'button.similar' || module == 'button.discuss') {
|
|
604
|
-
const chatController = quickviewManager.sourceController?.type === 'chat' ? quickviewManager.sourceController : undefined;
|
|
605
|
-
if (!product || !chatController)
|
|
606
|
-
return null;
|
|
607
|
-
if (module == 'button.similar') {
|
|
608
|
-
if (!chatController.store.features?.similarProducts?.enabled)
|
|
609
|
-
return null;
|
|
610
|
-
return ((0, jsx_runtime_1.jsx)(Button_1.Button, { name: "similar", internalClassName: "ss__quickview__similar", lang: { button: lang.similarButton }, onClick: () => chatController.productSimilar(product), theme: props.theme, treePath: treePath, ...(0, utilities_1.defined)({ disableStyles }) }));
|
|
611
|
-
}
|
|
612
|
-
return ((0, jsx_runtime_1.jsx)(Button_1.Button, { name: "discuss", internalClassName: "ss__quickview__discuss", lang: { button: lang.discussButton }, onClick: () => chatController.productQuery(product), theme: props.theme, treePath: treePath, ...(0, utilities_1.defined)({ disableStyles }) }));
|
|
613
|
-
}
|
|
614
581
|
// `quantityPicker` binds to the observable `product.quantity`, which `button.add-to-cart`
|
|
615
582
|
// (via the cart store) picks up when the product is added.
|
|
616
583
|
if (module == 'quantityPicker') {
|
|
@@ -646,5 +613,5 @@ exports.QuickviewLayout = (0, mobx_react_lite_1.observer)((properties) => {
|
|
|
646
613
|
}
|
|
647
614
|
const topRowCounter = { value: 0 };
|
|
648
615
|
const closeButton = ((0, jsx_runtime_1.jsx)(Button_1.Button, { name: "close", internalClassName: "ss__quickview__close", icon: "close-thin", lang: { button: lang.closeButton }, onClick: () => onClose(), theme: props.theme, treePath: treePath, ...(0, utilities_1.defined)({ disableStyles }) }));
|
|
649
|
-
return ((0, jsx_runtime_1.jsx)(providers_1.CacheProvider, { children: (0, jsx_runtime_1.jsx)("div", { ...styling, className: (0, classnames_1.default)('ss__quickview', className, internalClassName), children: error || loading || product ? ((0, jsx_runtime_1.jsxs)("div", { ...contentProps, children: [
|
|
616
|
+
return ((0, jsx_runtime_1.jsx)(providers_1.CacheProvider, { children: (0, jsx_runtime_1.jsx)("div", { ...styling, className: (0, classnames_1.default)('ss__quickview', className, internalClassName), children: error || loading || product ? ((0, jsx_runtime_1.jsxs)("div", { ...contentProps, children: [closeButton, error ? ((0, jsx_runtime_1.jsx)("div", { className: "ss__quickview__error", role: "alert", children: error.message })) : loading ? ((0, jsx_runtime_1.jsx)("div", { className: "ss__quickview__loading", ...mergedLang.loadingText?.all })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [layout?.map((module) => findModule(module, topRowCounter)), (0, jsx_runtime_1.jsx)(Gallery_1.Gallery, { images: galleryImages, open: galleryOpen, startIndex: galleryIndex, onClose: () => setGalleryOpen(false), alt: name, theme: props.theme, treePath: treePath, ...(0, utilities_1.defined)({ disableStyles }) })] }))] })) : null }) }));
|
|
650
617
|
});
|
|
@@ -25,7 +25,7 @@ const defaultStyles = ({ gapSize, columns }) => {
|
|
|
25
25
|
flexFlow: 'row wrap',
|
|
26
26
|
gap: gapSize,
|
|
27
27
|
gridTemplateRows: 'auto',
|
|
28
|
-
gridTemplateColumns: `repeat(${columns},
|
|
28
|
+
gridTemplateColumns: `repeat(${columns}, 1fr)`,
|
|
29
29
|
'& .ss__result, & .ss__result-layout': {
|
|
30
30
|
boxSizing: 'border-box',
|
|
31
31
|
flex: '0 1 auto',
|
|
@@ -17,7 +17,9 @@ const SearchInput_1 = require("../../Molecules/SearchInput");
|
|
|
17
17
|
const snap_toolbox_1 = require("@athoscommerce/snap-toolbox");
|
|
18
18
|
const hooks_2 = require("../../../hooks");
|
|
19
19
|
const useAcRenderedInput_1 = require("../../../hooks/useAcRenderedInput");
|
|
20
|
-
const defaultStyles = ({ inputBounds, offset, renderInput, width }) => {
|
|
20
|
+
const defaultStyles = ({ inputBounds, offset, renderInput, searchInputInLayout, width }) => {
|
|
21
|
+
// the rendered input only overlays the native input when it sits above the layout
|
|
22
|
+
const inputAboveLayout = Boolean(renderInput) && !searchInputInLayout;
|
|
21
23
|
return (0, react_1.css)({
|
|
22
24
|
position: 'absolute',
|
|
23
25
|
left: '0',
|
|
@@ -35,7 +37,8 @@ const defaultStyles = ({ inputBounds, offset, renderInput, width }) => {
|
|
|
35
37
|
zIndex: 1001,
|
|
36
38
|
maxWidth: '100vw',
|
|
37
39
|
pointerEvents: 'auto',
|
|
38
|
-
|
|
40
|
+
// direct child only - this sizes the input overlaying the native one, not an input placed inside the layout
|
|
41
|
+
'& > .ss__search-input': {
|
|
39
42
|
background: '#fff',
|
|
40
43
|
width: `${inputBounds.width}px`,
|
|
41
44
|
height: `${inputBounds.height}px`,
|
|
@@ -45,7 +48,7 @@ const defaultStyles = ({ inputBounds, offset, renderInput, width }) => {
|
|
|
45
48
|
'.ss__autocomplete-fixed__inner__layout-wrapper': {
|
|
46
49
|
width: width,
|
|
47
50
|
overflowY: 'scroll',
|
|
48
|
-
maxHeight: `calc(90vh - ${inputBounds.top || 0}px - ${
|
|
51
|
+
maxHeight: `calc(90vh - ${inputBounds.top || 0}px - ${inputAboveLayout ? `${inputBounds.height}px` : '0px'} + ${offset?.top || 0}px)`,
|
|
49
52
|
},
|
|
50
53
|
'.ss__search-input__button--close-search-icon': {
|
|
51
54
|
border: 'none',
|
|
@@ -77,7 +80,7 @@ exports.AutocompleteFixed = (0, mobx_react_lite_1.observer)((properties) => {
|
|
|
77
80
|
if (!buttonSelector && input) {
|
|
78
81
|
buttonSelector = input;
|
|
79
82
|
}
|
|
80
|
-
const { layout, disableStyles, renderInput, overlayColor, className, internalClassName, offset, treePath, tabManager } = props;
|
|
83
|
+
const { layout, column1, column2, column3, column4, disableStyles, renderInput, overlayColor, className, internalClassName, offset, treePath, tabManager, } = props;
|
|
81
84
|
let controller = props.controller;
|
|
82
85
|
let controllers = [controller];
|
|
83
86
|
if (tabManager && tabManager.active) {
|
|
@@ -151,11 +154,6 @@ exports.AutocompleteFixed = (0, mobx_react_lite_1.observer)((properties) => {
|
|
|
151
154
|
closeSearchButton: {
|
|
152
155
|
onClick: () => reset(),
|
|
153
156
|
},
|
|
154
|
-
// wiring only — no default `icon`, so the button stays hidden until a site
|
|
155
|
-
// opts in by supplying one via theme or props (see SearchInput.hideChatButton)
|
|
156
|
-
chatButton: {
|
|
157
|
-
onClick: () => controller.openChat(),
|
|
158
|
-
},
|
|
159
157
|
inputName: inputName,
|
|
160
158
|
// inherited props
|
|
161
159
|
...(0, utilities_1.defined)({
|
|
@@ -208,7 +206,10 @@ exports.AutocompleteFixed = (0, mobx_react_lite_1.observer)((properties) => {
|
|
|
208
206
|
(0, hooks_1.useEffect)(() => {
|
|
209
207
|
window.addEventListener('resize', debouncedHandleResize);
|
|
210
208
|
}, []);
|
|
211
|
-
|
|
209
|
+
// the search input renders inside the layout when it contains a 'searchInput' module, otherwise above the layout
|
|
210
|
+
const searchInputInLayout = Boolean(renderInput) && (0, AutocompleteLayout_1.layoutHasModule)({ layout, column1, column2, column3, column4 }, 'searchInput');
|
|
211
|
+
const searchInput = renderInput ? ((0, jsx_runtime_1.jsx)(SearchInput_1.SearchInput, { ...subProps.searchInput, value: controller.store.state.input || '', inputRef: renderedInputRef })) : undefined;
|
|
212
|
+
const styling = (0, utilities_1.mergeStyles)({ ...props, inputBounds, searchInputInLayout }, defaultStyles);
|
|
212
213
|
let _input;
|
|
213
214
|
if (input) {
|
|
214
215
|
_input = (0, useAcRenderedInput_1.useAcRenderedInput)({
|
|
@@ -229,5 +230,5 @@ exports.AutocompleteFixed = (0, mobx_react_lite_1.observer)((properties) => {
|
|
|
229
230
|
delete acProps.style;
|
|
230
231
|
delete acProps.styleScript;
|
|
231
232
|
delete acProps.themeStyleScript;
|
|
232
|
-
return layout?.length && active ? ((0, jsx_runtime_1.jsx)(providers_1.CacheProvider, { children: (0, jsx_runtime_1.jsx)("div", { ...styling, className: (0, classnames_1.default)('ss__autocomplete-fixed', className, internalClassName), children: (0, jsx_runtime_1.jsx)(Modal_1.Modal, { ...subProps.modal, children: (0, jsx_runtime_1.jsxs)("div", { className: "ss__autocomplete-fixed__inner", ref: (e) => (0, hooks_2.useA11y)(e, 0, true, reset), children: [
|
|
233
|
+
return layout?.length && active ? ((0, jsx_runtime_1.jsx)(providers_1.CacheProvider, { children: (0, jsx_runtime_1.jsx)("div", { ...styling, className: (0, classnames_1.default)('ss__autocomplete-fixed', className, internalClassName), children: (0, jsx_runtime_1.jsx)(Modal_1.Modal, { ...subProps.modal, children: (0, jsx_runtime_1.jsxs)("div", { className: "ss__autocomplete-fixed__inner", ref: (e) => (0, hooks_2.useA11y)(e, 0, true, reset), children: [searchInput && !searchInputInLayout ? searchInput : (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {}), (0, jsx_runtime_1.jsx)("div", { className: "ss__autocomplete-fixed__inner__layout-wrapper", children: (0, jsx_runtime_1.jsx)(AutocompleteLayout_1.AutocompleteLayout, { ...acProps, ...subProps.autocompleteLayout, input: _input, controller: controller, searchInputSlot: searchInputInLayout ? searchInput : undefined, treePath: `${treePath} modal` }) })] }) }) }) })) : null;
|
|
233
234
|
});
|
|
@@ -89,7 +89,7 @@ exports.AutocompleteModal = (0, mobx_react_lite_1.observer)((properties) => {
|
|
|
89
89
|
if (!buttonSelector && input) {
|
|
90
90
|
buttonSelector = input;
|
|
91
91
|
}
|
|
92
|
-
const { layout, disableStyles, overlayColor, renderInput, className, internalClassName, treePath, tabManager } = props;
|
|
92
|
+
const { layout, column1, column2, column3, column4, disableStyles, overlayColor, renderInput, className, internalClassName, treePath, tabManager } = props;
|
|
93
93
|
let controller = props.controller;
|
|
94
94
|
let controllers = [controller];
|
|
95
95
|
if (tabManager && tabManager.active) {
|
|
@@ -162,11 +162,6 @@ exports.AutocompleteModal = (0, mobx_react_lite_1.observer)((properties) => {
|
|
|
162
162
|
onClick: () => reset(),
|
|
163
163
|
icon: 'angle-left',
|
|
164
164
|
},
|
|
165
|
-
// wiring only — no default `icon`, so the button stays hidden until a site
|
|
166
|
-
// opts in by supplying one via theme or props (see SearchInput.hideChatButton)
|
|
167
|
-
chatButton: {
|
|
168
|
-
onClick: () => controller.openChat(),
|
|
169
|
-
},
|
|
170
165
|
inputName: inputName,
|
|
171
166
|
// inherited props
|
|
172
167
|
...(0, utilities_1.defined)({
|
|
@@ -177,7 +172,9 @@ exports.AutocompleteModal = (0, mobx_react_lite_1.observer)((properties) => {
|
|
|
177
172
|
treePath: `${treePath} modal`,
|
|
178
173
|
},
|
|
179
174
|
};
|
|
180
|
-
|
|
175
|
+
// the search input renders inside the layout when it contains a 'searchInput' module, otherwise above the layout
|
|
176
|
+
const searchInputInLayout = Boolean(renderInput) && (0, AutocompleteLayout_1.layoutHasModule)({ layout, column1, column2, column3, column4 }, 'searchInput');
|
|
177
|
+
const styling = (0, utilities_1.mergeStyles)({ ...props, searchInputInLayout }, defaultStyles);
|
|
181
178
|
let _input;
|
|
182
179
|
if (input) {
|
|
183
180
|
_input = (0, useAcRenderedInput_1.useAcRenderedInput)({
|
|
@@ -189,6 +186,7 @@ exports.AutocompleteModal = (0, mobx_react_lite_1.observer)((properties) => {
|
|
|
189
186
|
setActive: setActive,
|
|
190
187
|
});
|
|
191
188
|
}
|
|
189
|
+
const searchInput = renderInput ? ((0, jsx_runtime_1.jsx)(SearchInput_1.SearchInput, { ...subProps.searchInput, value: controller.store.state.input || '', inputRef: renderedInputRef })) : undefined;
|
|
192
190
|
const acProps = {
|
|
193
191
|
...props,
|
|
194
192
|
};
|
|
@@ -198,5 +196,5 @@ exports.AutocompleteModal = (0, mobx_react_lite_1.observer)((properties) => {
|
|
|
198
196
|
delete acProps.style;
|
|
199
197
|
delete acProps.styleScript;
|
|
200
198
|
delete acProps.themeStyleScript;
|
|
201
|
-
return layout?.length && active ? ((0, jsx_runtime_1.jsx)(providers_1.CacheProvider, { children: (0, jsx_runtime_1.jsx)("div", { ...styling, className: (0, classnames_1.default)('ss__autocomplete-modal', className, internalClassName), children: (0, jsx_runtime_1.jsx)(Modal_1.Modal, { ...subProps.modal, children: (0, jsx_runtime_1.jsxs)("div", { className: "ss__autocomplete-modal__inner", ref: (e) => (0, hooks_2.useA11y)(e, 0, true, reset), children: [
|
|
199
|
+
return layout?.length && active ? ((0, jsx_runtime_1.jsx)(providers_1.CacheProvider, { children: (0, jsx_runtime_1.jsx)("div", { ...styling, className: (0, classnames_1.default)('ss__autocomplete-modal', className, internalClassName), children: (0, jsx_runtime_1.jsx)(Modal_1.Modal, { ...subProps.modal, children: (0, jsx_runtime_1.jsxs)("div", { className: "ss__autocomplete-modal__inner", ref: (e) => (0, hooks_2.useA11y)(e, 0, true, reset), children: [searchInput && !searchInputInLayout ? searchInput : (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {}), (0, jsx_runtime_1.jsx)(AutocompleteLayout_1.AutocompleteLayout, { ...acProps, ...subProps.autocompleteLayout, input: _input, controller: controller, searchInputSlot: searchInputInLayout ? searchInput : undefined, treePath: `${treePath} modal` })] }) }) }) })) : null;
|
|
202
200
|
});
|