@athoscommerce/snap-preact 1.13.3-beta.168 → 1.13.3-beta.191
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/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.js +3 -1
- package/dist/cjs/components/src/components/Molecules/ChatMessageText/ChatMessageText.js +2 -1
- package/dist/cjs/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.js +4 -0
- package/dist/cjs/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.js +1 -0
- package/dist/cjs/components/src/components/Molecules/ChatQuickview/ChatQuickview.js +514 -0
- package/dist/cjs/components/src/components/Molecules/{ChatProductQueryMessage → ChatQuickview}/index.js +1 -1
- package/dist/cjs/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.js +2 -2
- package/dist/cjs/components/src/components/Molecules/Slideshow/Slideshow.js +47 -20
- package/dist/cjs/components/src/components/Organisms/Chat/Chat.js +12 -5
- package/dist/cjs/components/src/components/Organisms/Chat/Chat.lang.js +5 -0
- package/dist/cjs/components/src/components/Organisms/Chat/components/ChatAttachments.js +5 -4
- package/dist/cjs/components/src/components/Organisms/Chat/components/ChatComposer.js +3 -3
- package/dist/cjs/components/src/components/Organisms/Chat/components/ChatSideChat.js +3 -3
- package/dist/cjs/components/src/components/Organisms/Chat/components/chatAccentTheme.js +22 -20
- package/dist/cjs/components/src/components/Organisms/QuickviewLayout/QuickviewLayout.js +44 -11
- package/dist/cjs/components/src/index.js +1 -1
- package/dist/cjs/components/src/providers/themeComponents.js +1 -1
- package/dist/cjs/src/Snap.js +13 -1
- package/dist/cjs/src/Templates/Stores/LibraryStore.js +2 -2
- package/dist/cjs/src/Templates/Stores/library/languages/ar.js +45 -34
- package/dist/cjs/src/Templates/Stores/library/languages/de.js +45 -34
- package/dist/cjs/src/Templates/Stores/library/languages/es.js +45 -34
- package/dist/cjs/src/Templates/Stores/library/languages/fr.js +45 -34
- package/dist/cjs/src/Templates/Stores/library/languages/hi.js +45 -34
- package/dist/cjs/src/Templates/Stores/library/languages/it.js +45 -34
- package/dist/cjs/src/Templates/Stores/library/languages/ja.js +45 -34
- package/dist/cjs/src/Templates/Stores/library/languages/ko.js +45 -34
- package/dist/cjs/src/Templates/Stores/library/languages/nl.js +45 -34
- package/dist/cjs/src/Templates/Stores/library/languages/pt.js +45 -34
- package/dist/cjs/src/Templates/Stores/library/languages/ru.js +45 -34
- package/dist/cjs/src/Templates/Stores/library/languages/tr.js +45 -34
- package/dist/cjs/src/Templates/Stores/library/languages/vi.js +45 -34
- package/dist/cjs/src/Templates/Stores/library/languages/zh.js +45 -34
- package/dist/cjs/src/create/createChatController.js +1 -0
- 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/Molecules/ChatAttachmentContext/ChatAttachmentContext.d.ts +12 -5
- package/dist/esm/components/src/components/Molecules/ChatAttachmentContext/ChatAttachmentContext.d.ts.map +1 -1
- package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts +13 -2
- package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.d.ts.map +1 -1
- package/dist/esm/components/src/components/Molecules/ChatInspirationResultMessage/ChatInspirationResultMessage.js +3 -1
- package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.d.ts.map +1 -1
- package/dist/esm/components/src/components/Molecules/ChatMessageText/ChatMessageText.js +2 -1
- package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.d.ts +17 -3
- package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.d.ts.map +1 -1
- package/dist/esm/components/src/components/Molecules/ChatMessageUser/ChatMessageUser.js +4 -0
- package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts +7 -1
- package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.d.ts.map +1 -1
- package/dist/esm/components/src/components/Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage.js +1 -0
- package/dist/esm/components/src/components/Molecules/ChatQuickview/ChatQuickview.d.ts +30 -0
- package/dist/esm/components/src/components/Molecules/ChatQuickview/ChatQuickview.d.ts.map +1 -0
- package/dist/esm/components/src/components/Molecules/ChatQuickview/ChatQuickview.js +508 -0
- package/dist/esm/components/src/components/Molecules/ChatQuickview/index.d.ts +2 -0
- package/dist/esm/components/src/components/Molecules/ChatQuickview/index.d.ts.map +1 -0
- package/dist/esm/components/src/components/Molecules/ChatQuickview/index.js +1 -0
- package/dist/esm/components/src/components/Molecules/ChatResultsDisplay/ChatResultsDisplay.js +2 -2
- package/dist/esm/components/src/components/Molecules/Slideshow/Slideshow.d.ts.map +1 -1
- package/dist/esm/components/src/components/Molecules/Slideshow/Slideshow.js +47 -20
- package/dist/esm/components/src/components/Organisms/Chat/Chat.d.ts.map +1 -1
- package/dist/esm/components/src/components/Organisms/Chat/Chat.js +12 -5
- package/dist/esm/components/src/components/Organisms/Chat/Chat.lang.d.ts +3 -0
- package/dist/esm/components/src/components/Organisms/Chat/Chat.lang.d.ts.map +1 -1
- package/dist/esm/components/src/components/Organisms/Chat/Chat.lang.js +5 -0
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatAttachments.d.ts.map +1 -1
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatAttachments.js +5 -4
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatComposer.d.ts.map +1 -1
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatComposer.js +3 -3
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatSideChat.d.ts.map +1 -1
- package/dist/esm/components/src/components/Organisms/Chat/components/ChatSideChat.js +3 -3
- package/dist/esm/components/src/components/Organisms/Chat/components/chatAccentTheme.d.ts +1 -1
- package/dist/esm/components/src/components/Organisms/Chat/components/chatAccentTheme.d.ts.map +1 -1
- package/dist/esm/components/src/components/Organisms/Chat/components/chatAccentTheme.js +22 -20
- package/dist/esm/components/src/components/Organisms/QuickviewLayout/QuickviewLayout.d.ts +5 -1
- package/dist/esm/components/src/components/Organisms/QuickviewLayout/QuickviewLayout.d.ts.map +1 -1
- package/dist/esm/components/src/components/Organisms/QuickviewLayout/QuickviewLayout.js +44 -11
- package/dist/esm/components/src/index.d.ts +1 -1
- package/dist/esm/components/src/index.d.ts.map +1 -1
- package/dist/esm/components/src/index.js +1 -1
- package/dist/esm/components/src/providers/langComponents.d.ts +2 -2
- package/dist/esm/components/src/providers/langComponents.d.ts.map +1 -1
- package/dist/esm/components/src/providers/themeComponents.d.ts +7 -7
- package/dist/esm/components/src/providers/themeComponents.d.ts.map +1 -1
- package/dist/esm/components/src/providers/themeComponents.js +1 -1
- package/dist/esm/src/Snap.d.ts +1 -0
- package/dist/esm/src/Snap.d.ts.map +1 -1
- package/dist/esm/src/Snap.js +13 -1
- package/dist/esm/src/Templates/Stores/LibraryStore.d.ts +2 -2
- package/dist/esm/src/Templates/Stores/LibraryStore.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/LibraryStore.js +2 -2
- package/dist/esm/src/Templates/Stores/library/languages/ar.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/library/languages/ar.js +45 -34
- package/dist/esm/src/Templates/Stores/library/languages/de.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/library/languages/de.js +45 -34
- package/dist/esm/src/Templates/Stores/library/languages/es.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/library/languages/es.js +45 -34
- package/dist/esm/src/Templates/Stores/library/languages/fr.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/library/languages/fr.js +45 -34
- package/dist/esm/src/Templates/Stores/library/languages/hi.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/library/languages/hi.js +45 -34
- package/dist/esm/src/Templates/Stores/library/languages/it.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/library/languages/it.js +45 -34
- package/dist/esm/src/Templates/Stores/library/languages/ja.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/library/languages/ja.js +45 -34
- package/dist/esm/src/Templates/Stores/library/languages/ko.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/library/languages/ko.js +45 -34
- package/dist/esm/src/Templates/Stores/library/languages/nl.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/library/languages/nl.js +45 -34
- package/dist/esm/src/Templates/Stores/library/languages/pt.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/library/languages/pt.js +45 -34
- package/dist/esm/src/Templates/Stores/library/languages/ru.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/library/languages/ru.js +45 -34
- package/dist/esm/src/Templates/Stores/library/languages/tr.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/library/languages/tr.js +45 -34
- package/dist/esm/src/Templates/Stores/library/languages/vi.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/library/languages/vi.js +45 -34
- package/dist/esm/src/Templates/Stores/library/languages/zh.d.ts.map +1 -1
- package/dist/esm/src/Templates/Stores/library/languages/zh.js +45 -34
- package/dist/esm/src/create/createChatController.js +1 -0
- package/package.json +12 -12
- package/dist/cjs/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.js +0 -577
- package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts +0 -38
- package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.d.ts.map +0 -1
- package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/ChatProductQueryMessage.js +0 -571
- package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts +0 -2
- package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.d.ts.map +0 -1
- package/dist/esm/components/src/components/Molecules/ChatProductQueryMessage/index.js +0 -1
|
@@ -393,7 +393,6 @@ export const ChatOrganism = observer((properties) => {
|
|
|
393
393
|
position: 'right',
|
|
394
394
|
hideMessageTypeIndicatorText: false,
|
|
395
395
|
buttonBelowMessage: false,
|
|
396
|
-
poweredByText: 'Powered by Athos Commerce.',
|
|
397
396
|
};
|
|
398
397
|
let props = mergeProps('chat', globalTheme, defaultProps, properties);
|
|
399
398
|
const { overrideElement, shouldRenderDefault } = useCustomComponentOverride('chat', props);
|
|
@@ -495,7 +494,13 @@ export const ChatOrganism = observer((properties) => {
|
|
|
495
494
|
const sideChatTypes = isMobile
|
|
496
495
|
? ['inspirationResult', ...(isFirstMobileComparison ? ['productComparison'] : []), ...(mobileProductInfoOpen ? ['productQuery'] : [])]
|
|
497
496
|
: ['inspirationResult', 'productComparison', 'productQuery'];
|
|
498
|
-
|
|
497
|
+
// productQuery panels are additionally driven by the chat quickview store — the controller's
|
|
498
|
+
// `show()` opening the store is what opens the window, and `close()` is what dismisses it
|
|
499
|
+
const quickviewOpen = Boolean(controller.quickviewManager?.store.isOpen);
|
|
500
|
+
const shouldShowSideChat = activeMessage &&
|
|
501
|
+
sideChatTypes.includes(activeMessage?.messageType) &&
|
|
502
|
+
store.currentChat?.dismissedSideChatMessageId !== activeMessage.id &&
|
|
503
|
+
(activeMessage.messageType !== 'productQuery' || quickviewOpen);
|
|
499
504
|
const hasSideChat = !!shouldShowSideChat;
|
|
500
505
|
// Lock body scrolling (wheel + touch) to the chat while it is open. Mobile only —
|
|
501
506
|
// on desktop the chat is a side panel and the page behind it stays scrollable.
|
|
@@ -508,7 +513,8 @@ export const ChatOrganism = observer((properties) => {
|
|
|
508
513
|
if (e.key !== 'Escape')
|
|
509
514
|
return;
|
|
510
515
|
if (store.currentChat?.activeMessage && shouldShowSideChat) {
|
|
511
|
-
|
|
516
|
+
// dismiss through the controller so the product quickview closes with the window
|
|
517
|
+
controller.dismissSideChat();
|
|
512
518
|
}
|
|
513
519
|
else {
|
|
514
520
|
controller.handlers.button.click();
|
|
@@ -541,7 +547,8 @@ export const ChatOrganism = observer((properties) => {
|
|
|
541
547
|
item.requestType !== 'productComparison');
|
|
542
548
|
productAttachmentsToRemove.forEach((item) => store.currentChat?.attachments.remove(item.id));
|
|
543
549
|
setMobileProductInfoOpen(false);
|
|
544
|
-
|
|
550
|
+
// dismiss through the controller so the product quickview closes with the window
|
|
551
|
+
controller.dismissSideChat();
|
|
545
552
|
};
|
|
546
553
|
const requestType = store.currentChat?.requestType;
|
|
547
554
|
const loadingVerbLangKey = requestType ? LOADING_VERB_LANG_KEYS[requestType] : undefined;
|
|
@@ -603,7 +610,7 @@ export const ChatOrganism = observer((properties) => {
|
|
|
603
610
|
// On mobile, interacting with the primary chat (header or anywhere within)
|
|
604
611
|
// dismisses the secondary panel. Capture phase so it fires even when an
|
|
605
612
|
// inner control stops propagation.
|
|
606
|
-
onClickCapture: isMobile && shouldShowSideChat ? () => dismissSideChat() : undefined, children: [_jsxs("div", { className: 'ss__chat__header', children: [_jsxs("div", { className: "ss__chat__header__title", children: [logo ? _jsx(Image, { className: "ss__chat__header__title__logo", src: logo, alt: title || '
|
|
613
|
+
onClickCapture: isMobile && shouldShowSideChat ? () => dismissSideChat() : undefined, children: [_jsxs("div", { className: 'ss__chat__header', children: [_jsxs("div", { className: "ss__chat__header__title", children: [logo ? (_jsx(Image, { className: "ss__chat__header__title__logo", src: logo, alt: title || langAttrOf(lang.headerLogo, 'alt') || '' })) : null, _jsxs("div", { className: "ss__chat__header__title__text", children: [title ? _jsx("div", { className: "ss__chat__header__title__text__primary", children: title }) : null, subtitle ? _jsx("div", { className: "ss__chat__header__title__text__secondary", children: subtitle }) : null] })] }), _jsxs("div", { className: "ss__chat__header__buttons", children: [_jsx(Button, { className: "ss__chat__header__button--new", "aria-label": langAttrOf(lang.newChatButton, 'aria-label'), icon: { icon: controller.store.initChatLoading ? 'spinner' : 'plus-rounded', title: langAttrOf(lang.newChatButton, 'title') }, onClick: () => controller.store.createChat() }), store.chats.length > 1 && _jsx(ChatHistory, { ...subProps.history, controller: controller }), _jsx(Button, { className: "ss__chat__header__button--close", "aria-label": langAttrOf(lang.closeChatButton, 'aria-label'), icon: { icon: 'close-rounded', title: langAttrOf(lang.closeChatButton, 'title') }, onClick: () => controller.handlers.button.click() })] })] }), _jsxs("div", { className: "ss__chat__content", children: [_jsx(ChatSessionFeedback, { ...subProps.sessionFeedback, controller: controller }), _jsx("div", { ref: headerRef, className: classnames('ss__chat__content__header', {
|
|
607
614
|
'ss__chat__content__header--overlay': messagesOverflow,
|
|
608
615
|
}), children: _jsx(ChatComparisonsTray, { ...subProps.comparisonsTray, controller: controller }) }), _jsx(ChatMessages, { ...subProps.messages, controller: controller, messagesContainerRef: messagesContainerRef, messagesEndRef: messagesEndRef, mobile: isMobile, avatarCharacter: avatarCharacter, avatarImage: avatarImage, sideChatOpen: !!shouldShowSideChat, onProductQuickView: () => setMobileProductInfoOpen(true), scrollToBottom: scrollToBottom, scrollToBottomIfNear: scrollToBottomIfNear, showNewMessages: showNewMessages, setShowNewMessages: setShowNewMessages, messagesOverflow: messagesOverflow }), _jsx(ChatLoadingIndicator, { ...subProps.loadingIndicator, loading: store.loading, verbs: loadingVerbs }), !store.currentChat?.isExpired ? (_jsxs("div", { className: "ss__chat__content__footer", ref: footerRef, ...dragHandlers, children: [(store.error || store.chatEnabled === false) && (_jsx("div", { className: "ss__chat__error", children: store.error?.message || langTextOf(lang.chatUnavailableMessage) })), _jsx(ChatTopicDrift, { ...subProps.topicDrift, controller: controller, variant: "sessionLimit" }), _jsx(ChatFacetsBar, { ...subProps.facetsBar, controller: controller, chatRef: chatRef, multiselectFacets: multiselectFacets }), _jsx(ChatAttachments, { ...subProps.attachments, controller: controller, activeMessage: activeMessage, sideChatOpen: !!shouldShowSideChat, mobile: isMobile, onProductQuickView: () => setMobileProductInfoOpen(true), onProductAttachmentsRemoved: () => setMobileProductInfoOpen(false) }), _jsx(ChatTopicDrift, { ...subProps.topicDrift, controller: controller, variant: "drift" }), _jsx(ChatComposer, { ...subProps.composer, controller: controller, fileInputRef: fileInputRef, onUserSend: () => {
|
|
609
616
|
if (isMobile && mobileProductInfoOpen) {
|
|
@@ -3,6 +3,7 @@ import { LangAttributes, LangValue } from '../../../hooks/useLang';
|
|
|
3
3
|
export interface ChatLang {
|
|
4
4
|
openChatButton: Lang<never>;
|
|
5
5
|
closeChatButton: Lang<never>;
|
|
6
|
+
headerLogo: Lang<never>;
|
|
6
7
|
newChatButton: Lang<never>;
|
|
7
8
|
chatHistoryButton: Lang<never>;
|
|
8
9
|
historyTitle: Lang<never>;
|
|
@@ -50,6 +51,7 @@ export interface ChatLang {
|
|
|
50
51
|
attachmentCompareTitle: Lang<never>;
|
|
51
52
|
attachmentAskProductTitle: Lang<never>;
|
|
52
53
|
attachmentImageSimilarTitle: Lang<never>;
|
|
54
|
+
attachmentImageName: Lang<never>;
|
|
53
55
|
topicDriftScopeMessage: Lang<never>;
|
|
54
56
|
topicDriftScopeSubMessage: Lang<never>;
|
|
55
57
|
topicDriftMessage: Lang<never>;
|
|
@@ -64,6 +66,7 @@ export interface ChatLang {
|
|
|
64
66
|
uploadImageButton: Lang<never>;
|
|
65
67
|
sendMessageButton: Lang<never>;
|
|
66
68
|
dropOverlayText: Lang<never>;
|
|
69
|
+
poweredByText: Lang<never>;
|
|
67
70
|
disclaimerText: Lang<never>;
|
|
68
71
|
privacyPolicyLinkText: Lang<never>;
|
|
69
72
|
expiredMessage: Lang<never>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chat.lang.d.ts","sourceRoot":"","sources":["../../../../../../../components/src/components/Organisms/Chat/Chat.lang.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAsB,cAAc,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEvF,MAAM,WAAW,QAAQ;IAExB,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAE7B,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAEjC,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,sBAAsB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,yBAAyB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,sBAAsB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,yBAAyB,EAAE,IAAI,CAAC;QAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC,CAAC;IAE5D,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAE/B,wBAAwB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACtC,yBAAyB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,6BAA6B,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,uBAAuB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACrC,0BAA0B,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,8BAA8B,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAE5C,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,sBAAsB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,wBAAwB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACtC,qBAAqB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAEnC,gBAAgB,EAAE,IAAI,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvD,sBAAsB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,wBAAwB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACtC,uBAAuB,EAAE,IAAI,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAEhD,sBAAsB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/B,oBAAoB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAClC,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAE9B,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,iBAAiB,EAAE,IAAI,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3C,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAE/B,sBAAsB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACpC,yBAAyB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,2BAA2B,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"Chat.lang.d.ts","sourceRoot":"","sources":["../../../../../../../components/src/components/Organisms/Chat/Chat.lang.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,9 @@ export const chatDefaultLang = {
|
|
|
5
5
|
closeChatButton: {
|
|
6
6
|
attributes: { 'aria-label': 'Close chat', title: 'Close Chat' },
|
|
7
7
|
},
|
|
8
|
+
headerLogo: {
|
|
9
|
+
attributes: { alt: 'Chat logo' },
|
|
10
|
+
},
|
|
8
11
|
newChatButton: {
|
|
9
12
|
attributes: { 'aria-label': 'New chat', title: 'New Chat' },
|
|
10
13
|
},
|
|
@@ -64,6 +67,7 @@ export const chatDefaultLang = {
|
|
|
64
67
|
attachmentCompareTitle: { value: 'Compare these products' },
|
|
65
68
|
attachmentAskProductTitle: { value: 'Ask about this product' },
|
|
66
69
|
attachmentImageSimilarTitle: { value: 'Find products similar to this image:' },
|
|
70
|
+
attachmentImageName: { value: 'Image' },
|
|
67
71
|
topicDriftScopeMessage: { value: "I'm here to help with shopping" },
|
|
68
72
|
topicDriftScopeSubMessage: { value: 'Try asking about products, comparisons, or recommendations' },
|
|
69
73
|
topicDriftMessage: { value: 'Looking for something new?' },
|
|
@@ -84,6 +88,7 @@ export const chatDefaultLang = {
|
|
|
84
88
|
attributes: { 'aria-label': 'Send Message', title: 'Send Message' },
|
|
85
89
|
},
|
|
86
90
|
dropOverlayText: { value: 'Drop image to upload' },
|
|
91
|
+
poweredByText: { value: 'Powered by Athos Commerce.' },
|
|
87
92
|
disclaimerText: { value: 'AI-powered assistant. It sometimes makes mistakes. Avoid sharing personal data.' },
|
|
88
93
|
privacyPolicyLinkText: { value: 'Privacy Policy' },
|
|
89
94
|
expiredMessage: { value: 'This chat is expired. Please start a new chat.' },
|
package/dist/esm/components/src/components/Organisms/Chat/components/ChatAttachments.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatAttachments.d.ts","sourceRoot":"","sources":["../../../../../../../../components/src/components/Organisms/Chat/components/ChatAttachments.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAA8C,MAAM,gCAAgC,CAAC;AAE9G,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE9C,OAAO,EAAE,QAAQ,EAA+B,MAAM,cAAc,CAAC;AAKrE;;;;GAIG;AACH,eAAO,MAAM,eAAe,WAAoB,oBAAoB,KAAG,GAAG,CAAC,OAAO;;
|
|
1
|
+
{"version":3,"file":"ChatAttachments.d.ts","sourceRoot":"","sources":["../../../../../../../../components/src/components/Organisms/Chat/components/ChatAttachments.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAA8C,MAAM,gCAAgC,CAAC;AAE9G,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE9C,OAAO,EAAE,QAAQ,EAA+B,MAAM,cAAc,CAAC;AAKrE;;;;GAIG;AACH,eAAO,MAAM,eAAe,WAAoB,oBAAoB,KAAG,GAAG,CAAC,OAAO;;CA4HhF,CAAC;AAEH,MAAM,MAAM,oBAAoB,GAAG;IAClC,UAAU,EAAE,cAAc,CAAC;IAC3B,aAAa,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACnC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,0FAA0F;IAC1F,2BAA2B,CAAC,EAAE,MAAM,IAAI,CAAC;IACzC,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC"}
|
|
@@ -63,7 +63,8 @@ export const ChatAttachments = observer((props) => {
|
|
|
63
63
|
const dismissProductAttachment = (id) => {
|
|
64
64
|
store.currentChat?.attachments.remove(id);
|
|
65
65
|
props.onProductAttachmentsRemoved && props.onProductAttachmentsRemoved();
|
|
66
|
-
|
|
66
|
+
// dismiss through the controller so a product quickview closes with the window
|
|
67
|
+
controller.dismissSideChat();
|
|
67
68
|
};
|
|
68
69
|
const productItems = productAttachments.map((item) => {
|
|
69
70
|
const remove = () => dismissProductAttachment(item.id);
|
|
@@ -77,7 +78,7 @@ export const ChatAttachments = observer((props) => {
|
|
|
77
78
|
});
|
|
78
79
|
const imageItems = imageAttachments.map((item) => ({
|
|
79
80
|
id: item.id,
|
|
80
|
-
name: item.fileName || '
|
|
81
|
+
name: item.fileName || langTextOf(lang.attachmentImageName) || '',
|
|
81
82
|
imageUrl: item.base64 || item.thumbnailUrl || '',
|
|
82
83
|
isLoading: item.state === 'loading',
|
|
83
84
|
hasError: !!item.error,
|
|
@@ -89,10 +90,10 @@ export const ChatAttachments = observer((props) => {
|
|
|
89
90
|
const imageTitle = (imageItems.length > 0 && !hasImageError ? langTextOf(lang.attachmentImageSimilarTitle) : '') || '';
|
|
90
91
|
return (_jsxs(_Fragment, { children: [comparisonItems.length > 0 && (_jsx(ChatAttachmentContext, { ...subProps.attachmentContext, title: langTextOf(lang.attachmentCompareTitle) || '', items: comparisonItems, onClose: () => {
|
|
91
92
|
store.currentChat?.comparisons.resetCommitted();
|
|
92
|
-
|
|
93
|
+
controller.dismissSideChat();
|
|
93
94
|
} })), productItems.length > 0 && (_jsx(ChatAttachmentContext, { ...subProps.attachmentContext, title: productTitle, items: productItems, onClose: () => {
|
|
94
95
|
productAttachments.forEach((item) => store.currentChat?.attachments.remove(item.id));
|
|
95
96
|
props.onProductAttachmentsRemoved && props.onProductAttachmentsRemoved();
|
|
96
|
-
|
|
97
|
+
controller.dismissSideChat();
|
|
97
98
|
} })), imageItems.length > 0 && _jsx(ChatAttachmentContext, { ...subProps.attachmentContext, title: imageTitle, items: imageItems })] }));
|
|
98
99
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatComposer.d.ts","sourceRoot":"","sources":["../../../../../../../../components/src/components/Organisms/Chat/components/ChatComposer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AAOtC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAIrE,OAAO,EAAE,cAAc,EAAe,MAAM,mBAAmB,CAAC;AAEhE,OAAO,EAAE,QAAQ,EAA2C,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"ChatComposer.d.ts","sourceRoot":"","sources":["../../../../../../../../components/src/components/Organisms/Chat/components/ChatComposer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AAOtC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAIrE,OAAO,EAAE,cAAc,EAAe,MAAM,mBAAmB,CAAC;AAEhE,OAAO,EAAE,QAAQ,EAA2C,MAAM,cAAc,CAAC;AAoGjF,eAAO,MAAM,YAAY,gBAAyB,iBAAiB,KAAG,GAAG,CAAC,OAAO;;CA8H/E,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG;IAC/B,UAAU,EAAE,cAAc,CAAC;IAC3B,YAAY,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAC1C,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,cAAc,CAAC,iBAAiB,CAAC,CAAC"}
|
|
@@ -37,7 +37,8 @@ const defaultStyles = ({ primaryColorBg, primaryColorFg }) => {
|
|
|
37
37
|
'input[type="text"]': {
|
|
38
38
|
padding: '0.5em 0',
|
|
39
39
|
margin: '0 0 0 1em',
|
|
40
|
-
flex: '1 0
|
|
40
|
+
flex: '1 1 0%',
|
|
41
|
+
minWidth: 0,
|
|
41
42
|
border: 'none',
|
|
42
43
|
backgroundColor: 'transparent',
|
|
43
44
|
'&::placeholder': {
|
|
@@ -107,7 +108,6 @@ export const ChatComposer = observer((properties) => {
|
|
|
107
108
|
const globalTheme = useTheme();
|
|
108
109
|
const globalTreePath = useTreePath();
|
|
109
110
|
const defaultProps = {
|
|
110
|
-
poweredByText: 'Powered by Athos Commerce.',
|
|
111
111
|
treePath: globalTreePath,
|
|
112
112
|
};
|
|
113
113
|
const props = mergeProps('chatComposer', globalTheme, defaultProps, properties);
|
|
@@ -156,5 +156,5 @@ export const ChatComposer = observer((properties) => {
|
|
|
156
156
|
return;
|
|
157
157
|
controller.search();
|
|
158
158
|
onUserSend && onUserSend();
|
|
159
|
-
} }) })] }), _jsx("div", { className: 'ss__chat__disclaimer', children: _jsxs("i", { children: [poweredByText, " ", langTextOf(lang.disclaimerText), privacyPolicyUrl && (_jsxs(_Fragment, { children: [' ', _jsx("a", { href: privacyPolicyUrl, target: "_blank", rel: "noopener noreferrer", children: langTextOf(lang.privacyPolicyLinkText) })] }))] }) })] }) }));
|
|
159
|
+
} }) })] }), _jsx("div", { className: 'ss__chat__disclaimer', children: _jsxs("i", { children: [poweredByText ?? langTextOf(lang.poweredByText), " ", langTextOf(lang.disclaimerText), privacyPolicyUrl && (_jsxs(_Fragment, { children: [' ', _jsx("a", { href: privacyPolicyUrl, target: "_blank", rel: "noopener noreferrer", children: langTextOf(lang.privacyPolicyLinkText) })] }))] }) })] }) }));
|
|
160
160
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatSideChat.d.ts","sourceRoot":"","sources":["../../../../../../../../components/src/components/Organisms/Chat/components/ChatSideChat.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAIlE,OAAO,EAAE,cAAc,EAAe,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"ChatSideChat.d.ts","sourceRoot":"","sources":["../../../../../../../../components/src/components/Organisms/Chat/components/ChatSideChat.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAIlE,OAAO,EAAE,cAAc,EAAe,MAAM,mBAAmB,CAAC;AAWhE,OAAO,EAAE,QAAQ,EAA+B,MAAM,cAAc,CAAC;AA+ErE,eAAO,MAAM,YAAY,gBAAyB,iBAAiB,KAAG,GAAG,CAAC,OAAO,GAAG,IAAI;;CAqKtF,CAAC;AAQH,MAAM,MAAM,iBAAiB,GAAG;IAC/B,UAAU,EAAE,cAAc,CAAC;IAC3B,aAAa,CAAC,EAAE,WAAW,CAAC;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,IAAI,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,cAAc,CAAC,iBAAiB,CAAC,CAAC"}
|
|
@@ -10,7 +10,7 @@ import { useLang } from '../../../../hooks';
|
|
|
10
10
|
import { Button } from '../../../Atoms/Button';
|
|
11
11
|
import { ChatInspirationResultMessage } from '../../../Molecules/ChatInspirationResultMessage';
|
|
12
12
|
import { ChatProductComparisonMessage, } from '../../../Molecules/ChatProductComparisonMessage/ChatProductComparisonMessage';
|
|
13
|
-
import {
|
|
13
|
+
import { ChatQuickview } from '../../../Molecules/ChatQuickview/ChatQuickview';
|
|
14
14
|
import { useChatGestures } from '../hooks/useChatGestures';
|
|
15
15
|
import { chatDefaultLang, langAttrOf } from '../Chat.lang';
|
|
16
16
|
const defaultStyles = ({ mobile, footerHeight, primaryColorBg }) => {
|
|
@@ -129,7 +129,7 @@ export const ChatSideChat = observer((properties) => {
|
|
|
129
129
|
theme: props.theme,
|
|
130
130
|
treePath,
|
|
131
131
|
},
|
|
132
|
-
|
|
132
|
+
quickview: {
|
|
133
133
|
disableStyles,
|
|
134
134
|
theme: props.theme,
|
|
135
135
|
treePath,
|
|
@@ -152,7 +152,7 @@ export const ChatSideChat = observer((properties) => {
|
|
|
152
152
|
case 'productComparison':
|
|
153
153
|
return (_jsx(ChatProductComparisonMessage, { ...subProps.productComparisonMessage, chatItem: activeMessage, controller: controller }));
|
|
154
154
|
case 'productQuery':
|
|
155
|
-
return (_jsx(
|
|
155
|
+
return (_jsx(ChatQuickview, { ...subProps.quickview, chatItem: activeMessage, controller: controller, primaryColor: primaryColorBg, primaryColorText: primaryColorFg }));
|
|
156
156
|
default:
|
|
157
157
|
return null;
|
|
158
158
|
}
|
|
@@ -7,7 +7,7 @@ export type ChatAccentColors = {
|
|
|
7
7
|
};
|
|
8
8
|
/**
|
|
9
9
|
* Accent styling for buttons living inside child components (ChatResult's cart /
|
|
10
|
-
* inquire icons and
|
|
10
|
+
* inquire icons and ChatQuickview's action buttons) — injected through
|
|
11
11
|
* the theme so each child applies it via its own style pipeline instead of the
|
|
12
12
|
* organism reaching in with `!important` overrides.
|
|
13
13
|
*/
|
package/dist/esm/components/src/components/Organisms/Chat/components/chatAccentTheme.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chatAccentTheme.d.ts","sourceRoot":"","sources":["../../../../../../../../components/src/components/Organisms/Chat/components/chatAccentTheme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAG9C,MAAM,MAAM,gBAAgB,GAAG;IAC9B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,sBAAsB,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,oGAKnC,gBAAgB,KAAG,KAAK,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"chatAccentTheme.d.ts","sourceRoot":"","sources":["../../../../../../../../components/src/components/Organisms/Chat/components/chatAccentTheme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAG9C,MAAM,MAAM,gBAAgB,GAAG;IAC9B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,sBAAsB,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,oGAKnC,gBAAgB,KAAG,KAAK,CAAC,YAAY,CAkDvC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Colour } from '../../../../utilities';
|
|
2
2
|
/**
|
|
3
3
|
* Accent styling for buttons living inside child components (ChatResult's cart /
|
|
4
|
-
* inquire icons and
|
|
4
|
+
* inquire icons and ChatQuickview's action buttons) — injected through
|
|
5
5
|
* the theme so each child applies it via its own style pipeline instead of the
|
|
6
6
|
* organism reaching in with `!important` overrides.
|
|
7
7
|
*/
|
|
@@ -27,27 +27,29 @@ export const chatAccentThemeComponents = ({ primaryAccentColorBg, primaryAccentC
|
|
|
27
27
|
},
|
|
28
28
|
},
|
|
29
29
|
},
|
|
30
|
-
|
|
30
|
+
chatQuickview: {
|
|
31
31
|
style: {
|
|
32
|
-
'.
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
stroke: primaryAccentColorFg,
|
|
39
|
-
},
|
|
40
|
-
'&:not(.ss__button--disabled):hover': {
|
|
41
|
-
background: new Colour(primaryAccentColorBg).mixBlack(),
|
|
42
|
-
},
|
|
32
|
+
'.ss__quickview__add-to-cart.ss__button': {
|
|
33
|
+
background: primaryAccentColorBg,
|
|
34
|
+
color: primaryAccentColorFg,
|
|
35
|
+
svg: {
|
|
36
|
+
fill: primaryAccentColorFg,
|
|
37
|
+
stroke: primaryAccentColorFg,
|
|
43
38
|
},
|
|
44
|
-
'.
|
|
45
|
-
background:
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
39
|
+
'&:not(.ss__button--disabled):hover': {
|
|
40
|
+
background: new Colour(primaryAccentColorBg).mixBlack(),
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
'.ss__quickview__more-info.ss__button, .ss__quickview__similar.ss__button, .ss__quickview__discuss.ss__button': {
|
|
44
|
+
background: secondaryAccentColorBg,
|
|
45
|
+
color: secondaryAccentColorFg,
|
|
46
|
+
border: `1px solid ${secondaryAccentColorFg}`,
|
|
47
|
+
svg: {
|
|
48
|
+
fill: secondaryAccentColorFg,
|
|
49
|
+
stroke: secondaryAccentColorFg,
|
|
50
|
+
},
|
|
51
|
+
'&:not(.ss__button--disabled):hover': {
|
|
52
|
+
background: new Colour(secondaryAccentColorBg).mixBlack(),
|
|
51
53
|
},
|
|
52
54
|
},
|
|
53
55
|
},
|
|
@@ -12,7 +12,7 @@ export declare const QuickviewTracker: ({ quickviewManager, product, children, }
|
|
|
12
12
|
export declare const QuickviewLayout: ((properties: QuickviewLayoutProps) => import("@emotion/react/jsx-runtime").JSX.Element | h.JSX.Element | null) & {
|
|
13
13
|
displayName: string;
|
|
14
14
|
};
|
|
15
|
-
export type QuickviewModuleNames = 'slideshow' | 'calloutBadge' | `calloutBadge.${string}` | 'variantSelections' | `variantSelection.${string}` | `productDetail.${string}` | 'button.add-to-cart' | 'button.more-info' | 'quantityPicker' | 'productDetailTable' | `recommendation.${string}` | '_';
|
|
15
|
+
export type QuickviewModuleNames = 'slideshow' | 'calloutBadge' | `calloutBadge.${string}` | 'variantSelections' | `variantSelection.${string}` | `productDetail.${string}` | 'button.add-to-cart' | 'button.more-info' | 'button.similar' | 'button.discuss' | 'quantityPicker' | 'productDetailTable' | `recommendation.${string}` | '_';
|
|
16
16
|
type ColumnsNames = 'c1' | 'c2' | 'c3' | 'c4';
|
|
17
17
|
type ModuleNamesWithColumns = QuickviewModuleNames | ColumnsNames | QuickviewModuleNames[] | ColumnsNames[];
|
|
18
18
|
export type QuickviewColumn = {
|
|
@@ -23,6 +23,7 @@ export type QuickviewColumn = {
|
|
|
23
23
|
export type QuickviewLayoutProps = {
|
|
24
24
|
quickviewManager: QuickviewManager;
|
|
25
25
|
onClose?: () => void;
|
|
26
|
+
inline?: boolean;
|
|
26
27
|
lang?: Partial<QuickviewLayoutLang>;
|
|
27
28
|
} & QuickviewLayoutTemplatesLegalProps & ComponentProps<QuickviewLayoutProps>;
|
|
28
29
|
export interface QuickviewLayoutLang {
|
|
@@ -32,6 +33,8 @@ export interface QuickviewLayoutLang {
|
|
|
32
33
|
closeButton: Lang<never>;
|
|
33
34
|
addToCartButton: Lang<never>;
|
|
34
35
|
moreInfoButton: Lang<never>;
|
|
36
|
+
similarButton: Lang<never>;
|
|
37
|
+
discussButton: Lang<never>;
|
|
35
38
|
loadingText: Lang<{
|
|
36
39
|
quickviewManager: QuickviewManager;
|
|
37
40
|
}>;
|
|
@@ -39,6 +42,7 @@ export interface QuickviewLayoutLang {
|
|
|
39
42
|
export type QuickviewLayoutTemplatesLegalProps = {
|
|
40
43
|
layout: ModuleNamesWithColumns[];
|
|
41
44
|
hideBadge?: boolean;
|
|
45
|
+
variantDropdownType?: 'dropdown' | 'list';
|
|
42
46
|
column1?: QuickviewColumn;
|
|
43
47
|
column2?: QuickviewColumn;
|
|
44
48
|
column3?: QuickviewColumn;
|
package/dist/esm/components/src/components/Organisms/QuickviewLayout/QuickviewLayout.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QuickviewLayout.d.ts","sourceRoot":"","sources":["../../../../../../../components/src/components/Organisms/QuickviewLayout/QuickviewLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAS9C,OAAO,EAAE,IAAI,EAAgG,MAAM,gBAAgB,CAAC;AACpI,OAAO,EAAE,cAAc,EAA6B,MAAM,gBAAgB,CAAC;AAa3E,OAAO,KAAK,EAAE,OAAO,EAAsB,MAAM,gCAAgC,CAAC;AAElF,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"QuickviewLayout.d.ts","sourceRoot":"","sources":["../../../../../../../components/src/components/Organisms/QuickviewLayout/QuickviewLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAS9C,OAAO,EAAE,IAAI,EAAgG,MAAM,gBAAgB,CAAC;AACpI,OAAO,EAAE,cAAc,EAA6B,MAAM,gBAAgB,CAAC;AAa3E,OAAO,KAAK,EAAE,OAAO,EAAsB,MAAM,gCAAgC,CAAC;AAElF,OAAO,KAAK,EAA4C,8BAA8B,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAEjJ,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kDAAkD,CAAC;AAmNvF,eAAO,MAAM,gBAAgB,6CAI1B;IACF,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,iBAAiB,CAAC;CAC5B,qDAOA,CAAC;AAEF,eAAO,MAAM,eAAe,gBAAyB,oBAAoB;;CAinBvE,CAAC;AAGH,MAAM,MAAM,oBAAoB,GAC7B,WAAW,GACX,cAAc,GACd,gBAAgB,MAAM,EAAE,GACxB,mBAAmB,GACnB,oBAAoB,MAAM,EAAE,GAC5B,iBAAiB,MAAM,EAAE,GACzB,oBAAoB,GACpB,kBAAkB,GAClB,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,oBAAoB,GACpB,kBAAkB,MAAM,EAAE,GAC1B,GAAG,CAAC;AACP,KAAK,YAAY,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAC9C,KAAK,sBAAsB,GAAG,oBAAoB,GAAG,YAAY,GAAG,oBAAoB,EAAE,GAAG,YAAY,EAAE,CAAC;AAE5G,MAAM,MAAM,eAAe,GAAG;IAC7B,MAAM,EAAE,oBAAoB,EAAE,EAAE,GAAG,oBAAoB,EAAE,CAAC;IAC1D,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,QAAQ,GAAG,YAAY,GAAG,UAAU,GAAG,eAAe,CAAC;CACtE,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAClC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAGrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACpC,GAAG,kCAAkC,GACrC,cAAc,CAAC,oBAAoB,CAAC,CAAC;AAEtC,MAAM,WAAW,mBAAmB;IACnC,SAAS,EAAE,IAAI,CAAC;QACf,gBAAgB,EAAE,gBAAgB,CAAC;KACnC,CAAC,CAAC;IACH,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3B,WAAW,EAAE,IAAI,CAAC;QACjB,gBAAgB,EAAE,gBAAgB,CAAC;KACnC,CAAC,CAAC;CACH;AAED,MAAM,MAAM,kCAAkC,GAAG;IAChD,MAAM,EAAE,sBAAsB,EAAE,CAAC;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,mBAAmB,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IAC1C,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,cAAc,CAAC,EAAE;QAChB,SAAS,CAAC,EAAE,MAAM,cAAc,CAAC,WAAW,CAAC,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC;QAC3E,eAAe,CAAC,EAAE,MAAM,cAAc,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;QAChG,MAAM,CAAC,EAAE,OAAO,CAAC,8BAA8B,CAAC,CAAC;KACjD,CAAC;CACF,CAAC"}
|
|
@@ -251,7 +251,7 @@ export const QuickviewLayout = observer((properties) => {
|
|
|
251
251
|
hideBadge: false,
|
|
252
252
|
};
|
|
253
253
|
const props = mergeProps('quickviewLayout', globalTheme, defaultProps, properties);
|
|
254
|
-
const { quickviewManager, className, internalClassName, disableStyles, treePath, hideBadge, column1, column2, column3, column4, recommendation } = props;
|
|
254
|
+
const { quickviewManager, className, internalClassName, disableStyles, treePath, hideBadge, variantDropdownType, column1, column2, column3, column4, recommendation, } = props;
|
|
255
255
|
// NOTE: the `!shouldRenderDefault` return lives below the last hook call — every hook in this
|
|
256
256
|
// component must run unconditionally on every render (shouldRenderDefault can flip while
|
|
257
257
|
// mounted, e.g. when a pending customComponent import resolves or fails).
|
|
@@ -274,6 +274,12 @@ export const QuickviewLayout = observer((properties) => {
|
|
|
274
274
|
moreInfoButton: {
|
|
275
275
|
value: 'More info',
|
|
276
276
|
},
|
|
277
|
+
similarButton: {
|
|
278
|
+
value: 'Similar',
|
|
279
|
+
},
|
|
280
|
+
discussButton: {
|
|
281
|
+
value: 'Discuss',
|
|
282
|
+
},
|
|
277
283
|
loadingText: {
|
|
278
284
|
value: 'Loading…',
|
|
279
285
|
},
|
|
@@ -336,7 +342,8 @@ export const QuickviewLayout = observer((properties) => {
|
|
|
336
342
|
// is within it).
|
|
337
343
|
useEffect(() => {
|
|
338
344
|
const isOpenNow = Boolean(quickviewManager?.store?.isOpen);
|
|
339
|
-
|
|
345
|
+
// inline embeds (e.g. the chat secondary window) are not modal — Escape must not close them
|
|
346
|
+
if (!shouldRenderDefault || !isOpenNow || props.inline)
|
|
340
347
|
return;
|
|
341
348
|
const onKey = (e) => {
|
|
342
349
|
if (e.key === 'Escape' && !galleryOpen) {
|
|
@@ -345,7 +352,7 @@ export const QuickviewLayout = observer((properties) => {
|
|
|
345
352
|
};
|
|
346
353
|
window.addEventListener('keydown', onKey);
|
|
347
354
|
return () => window.removeEventListener('keydown', onKey);
|
|
348
|
-
}, [shouldRenderDefault, quickviewManager?.store?.isOpen, galleryOpen]);
|
|
355
|
+
}, [shouldRenderDefault, quickviewManager?.store?.isOpen, galleryOpen, props.inline]);
|
|
349
356
|
// Recommendation modules. `findModule` runs inside .map()/recursion and must not call hooks, so
|
|
350
357
|
// resolve every referenced profile's controller + components here (stable order) and let
|
|
351
358
|
// findModule read from this map. Mirrors Organisms/NoResults.
|
|
@@ -442,12 +449,18 @@ export const QuickviewLayout = observer((properties) => {
|
|
|
442
449
|
};
|
|
443
450
|
// Dialog semantics + focus trap for the quickview content, following the autocomplete
|
|
444
451
|
// containers (AutocompleteModal/AutocompleteSlideout): useA11y traps Tab within the
|
|
445
|
-
// content and wires Escape to the callback above.
|
|
452
|
+
// content and wires Escape to the callback above. Inline embeds (e.g. the chat secondary
|
|
453
|
+
// window) are part of the surrounding page — no dialog role and no focus trap, which
|
|
454
|
+
// would otherwise stop the shopper tabbing out to the chat composer.
|
|
446
455
|
const contentProps = {
|
|
447
456
|
className: 'ss__quickview__content',
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
457
|
+
...(props.inline
|
|
458
|
+
? {}
|
|
459
|
+
: {
|
|
460
|
+
role: 'dialog',
|
|
461
|
+
'aria-modal': 'true',
|
|
462
|
+
ref: (e) => useA11y(e, 0, true, handleEscape),
|
|
463
|
+
}),
|
|
451
464
|
...mergedLang.quickview?.attributes,
|
|
452
465
|
};
|
|
453
466
|
// Prefer `product.display` so the displayed name/image/attributes reflect the
|
|
@@ -542,17 +555,23 @@ export const QuickviewLayout = observer((properties) => {
|
|
|
542
555
|
// the selection whose field matches (e.g. `variantSelection.color`). The field also matches its
|
|
543
556
|
// component-name form (`color_family` → `color-family`). A bare `variantSelection` module is
|
|
544
557
|
// not supported.
|
|
558
|
+
// `variantDropdownType` swaps the component for selections that aren't swatches.
|
|
559
|
+
const renderSelection = (selection) => {
|
|
560
|
+
const isSwatch = selection.type === 'swatch' || selection.type === 'swatches';
|
|
561
|
+
const type = variantDropdownType && !isSwatch ? variantDropdownType : selection.type;
|
|
562
|
+
return (_jsxs("div", { className: "ss__quickview__variant", children: [_jsx("div", { className: "ss__quickview__variant-title", children: selection.label || selection.field }), _jsx(VariantSelection, { selection: selection, type: type, theme: props.theme, treePath: treePath, ...defined({ disableStyles }) })] }, selection.field));
|
|
563
|
+
};
|
|
545
564
|
if (module == 'variantSelections') {
|
|
546
565
|
if (!selections || selections.length === 0)
|
|
547
566
|
return null;
|
|
548
|
-
return
|
|
567
|
+
return _jsx("div", { className: "ss__quickview__variants", children: selections.map((selection) => renderSelection(selection)) });
|
|
549
568
|
}
|
|
550
569
|
if (module.startsWith('variantSelection.')) {
|
|
551
570
|
const name = module.slice('variantSelection.'.length);
|
|
552
571
|
const selection = selections?.find((selection) => selection.field === name || fieldNameToComponentName(selection.field) === name);
|
|
553
572
|
if (!name || !selection)
|
|
554
573
|
return null;
|
|
555
|
-
return (
|
|
574
|
+
return renderSelection(selection);
|
|
556
575
|
}
|
|
557
576
|
if (module == 'button.add-to-cart') {
|
|
558
577
|
if (!product)
|
|
@@ -562,7 +581,7 @@ export const QuickviewLayout = observer((properties) => {
|
|
|
562
581
|
if (module == 'button.more-info') {
|
|
563
582
|
if (!url)
|
|
564
583
|
return null;
|
|
565
|
-
return (_jsx(Button, { name: "more-info", internalClassName: "
|
|
584
|
+
return (_jsx(Button, { name: "more-info", internalClassName: "ss__quickview__more-info", lang: { button: lang.moreInfoButton }, onClick: (e) => {
|
|
566
585
|
// track the redirect to the product page as a quickview clickThrough
|
|
567
586
|
// before navigating away (delegated with `quickView: true`)
|
|
568
587
|
if (product) {
|
|
@@ -571,6 +590,20 @@ export const QuickviewLayout = observer((properties) => {
|
|
|
571
590
|
window.location.href = url;
|
|
572
591
|
}, theme: props.theme, treePath: treePath, ...defined({ disableStyles }) }));
|
|
573
592
|
}
|
|
593
|
+
// Chat-only modules: `button.similar` and `button.discuss` forward to the chat controller
|
|
594
|
+
// that opened the quickview. They render nothing for non-chat source controllers, so a
|
|
595
|
+
// layout carrying them stays safe to share across surfaces.
|
|
596
|
+
if (module == 'button.similar' || module == 'button.discuss') {
|
|
597
|
+
const chatController = quickviewManager.sourceController?.type === 'chat' ? quickviewManager.sourceController : undefined;
|
|
598
|
+
if (!product || !chatController)
|
|
599
|
+
return null;
|
|
600
|
+
if (module == 'button.similar') {
|
|
601
|
+
if (!chatController.store.features?.similarProducts?.enabled)
|
|
602
|
+
return null;
|
|
603
|
+
return (_jsx(Button, { name: "similar", internalClassName: "ss__quickview__similar", lang: { button: lang.similarButton }, onClick: () => chatController.productSimilar(product), theme: props.theme, treePath: treePath, ...defined({ disableStyles }) }));
|
|
604
|
+
}
|
|
605
|
+
return (_jsx(Button, { name: "discuss", internalClassName: "ss__quickview__discuss", lang: { button: lang.discussButton }, onClick: () => chatController.productQuery(product), theme: props.theme, treePath: treePath, ...defined({ disableStyles }) }));
|
|
606
|
+
}
|
|
574
607
|
// `quantityPicker` binds to the observable `product.quantity`, which `button.add-to-cart`
|
|
575
608
|
// (via the cart store) picks up when the product is added.
|
|
576
609
|
if (module == 'quantityPicker') {
|
|
@@ -606,5 +639,5 @@ export const QuickviewLayout = observer((properties) => {
|
|
|
606
639
|
}
|
|
607
640
|
const topRowCounter = { value: 0 };
|
|
608
641
|
const closeButton = (_jsx(Button, { name: "close", internalClassName: "ss__quickview__close", icon: "close-thin", lang: { button: lang.closeButton }, onClick: () => onClose(), theme: props.theme, treePath: treePath, ...defined({ disableStyles }) }));
|
|
609
|
-
return (_jsx(CacheProvider, { children: _jsx("div", { ...styling, className: classnames('ss__quickview', className, internalClassName), children: error || loading || product ? (_jsxs("div", { ...contentProps, children: [closeButton, error ? (_jsx("div", { className: "ss__quickview__error", role: "alert", children: error.message })) : loading ? (_jsx("div", { className: "ss__quickview__loading", ...mergedLang.loadingText?.all })) : (_jsxs(_Fragment, { children: [layout?.map((module) => findModule(module, topRowCounter)), _jsx(Gallery, { images: galleryImages, open: galleryOpen, startIndex: galleryIndex, onClose: () => setGalleryOpen(false), alt: name, theme: props.theme, treePath: treePath, ...defined({ disableStyles }) })] }))] })) : null }) }));
|
|
642
|
+
return (_jsx(CacheProvider, { children: _jsx("div", { ...styling, className: classnames('ss__quickview', className, internalClassName), children: error || loading || product ? (_jsxs("div", { ...contentProps, children: [!props.inline && closeButton, error ? (_jsx("div", { className: "ss__quickview__error", role: "alert", children: error.message })) : loading ? (_jsx("div", { className: "ss__quickview__loading", ...mergedLang.loadingText?.all })) : (_jsxs(_Fragment, { children: [layout?.map((module) => findModule(module, topRowCounter)), _jsx(Gallery, { images: galleryImages, open: galleryOpen, startIndex: galleryIndex, onClose: () => setGalleryOpen(false), alt: name, theme: props.theme, treePath: treePath, ...defined({ disableStyles }) })] }))] })) : null }) }));
|
|
610
643
|
});
|
|
@@ -25,7 +25,7 @@ export * from './components/Molecules/ChatInspirationResultMessage';
|
|
|
25
25
|
export * from './components/Molecules/ChatMessageText';
|
|
26
26
|
export * from './components/Molecules/ChatMessageUser';
|
|
27
27
|
export * from './components/Molecules/ChatProductComparisonMessage';
|
|
28
|
-
export * from './components/Molecules/
|
|
28
|
+
export * from './components/Molecules/ChatQuickview';
|
|
29
29
|
export * from './components/Molecules/ChatResult';
|
|
30
30
|
export * from './components/Molecules/ChatResultsDisplay';
|
|
31
31
|
export * from './components/Molecules/ChatSuggestedQuestions';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../components/src/index.ts"],"names":[],"mappings":"AACA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yCAAyC,CAAC;AACxD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oCAAoC,CAAC;AACnD,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mCAAmC,CAAC;AAClD,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAG5C,cAAc,qCAAqC,CAAC;AACpD,cAAc,iCAAiC,CAAC;AAChD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,qDAAqD,CAAC;AACpE,cAAc,wCAAwC,CAAC;AACvD,cAAc,wCAAwC,CAAC;AACvD,cAAc,qDAAqD,CAAC;AACpE,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../components/src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,7 +27,7 @@ export * from './components/Molecules/ChatInspirationResultMessage';
|
|
|
27
27
|
export * from './components/Molecules/ChatMessageText';
|
|
28
28
|
export * from './components/Molecules/ChatMessageUser';
|
|
29
29
|
export * from './components/Molecules/ChatProductComparisonMessage';
|
|
30
|
-
export * from './components/Molecules/
|
|
30
|
+
export * from './components/Molecules/ChatQuickview';
|
|
31
31
|
export * from './components/Molecules/ChatResult';
|
|
32
32
|
export * from './components/Molecules/ChatResultsDisplay';
|
|
33
33
|
export * from './components/Molecules/ChatSuggestedQuestions';
|
|
@@ -6,7 +6,7 @@ import type { ChatInspirationResultMessageLang } from '../components/Molecules/C
|
|
|
6
6
|
import type { ChatMessageTextLang } from '../components/Molecules/ChatMessageText';
|
|
7
7
|
import type { ChatMessageUserLang } from '../components/Molecules/ChatMessageUser';
|
|
8
8
|
import type { ChatProductComparisonMessageLang } from '../components/Molecules/ChatProductComparisonMessage';
|
|
9
|
-
import type {
|
|
9
|
+
import type { ChatQuickviewLang } from '../components/Molecules/ChatQuickview';
|
|
10
10
|
import type { ChatResultLang } from '../components/Molecules/ChatResult';
|
|
11
11
|
import type { CheckboxLang } from '../components/Molecules/Checkbox';
|
|
12
12
|
import type { ErrorHandlerLang } from '../components/Molecules/ErrorHandler';
|
|
@@ -58,7 +58,7 @@ export type LangComponents = {
|
|
|
58
58
|
chatMessageText: ChatMessageTextLang;
|
|
59
59
|
chatMessageUser: ChatMessageUserLang;
|
|
60
60
|
chatProductComparisonMessage: ChatProductComparisonMessageLang;
|
|
61
|
-
|
|
61
|
+
chatQuickview: ChatQuickviewLang;
|
|
62
62
|
chatResult: ChatResultLang;
|
|
63
63
|
checkbox: CheckboxLang;
|
|
64
64
|
slideshow: SlideshowLang;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"langComponents.d.ts","sourceRoot":"","sources":["../../../../../components/src/providers/langComponents.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAQ7D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACzF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAQ7E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+CAA+C,CAAC;AAC/F,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,sDAAsD,CAAC;AAC7G,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AACnF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AACnF,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,sDAAsD,CAAC;AAC7G,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"langComponents.d.ts","sourceRoot":"","sources":["../../../../../components/src/providers/langComponents.ts"],"names":[],"mappings":"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"}
|