@gengage/assistant-fe 0.1.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/LICENSE +61 -0
- package/README.md +232 -0
- package/dist/assistant-fe.css +1 -0
- package/dist/chat/api.d.ts +87 -0
- package/dist/chat/api.d.ts.map +1 -0
- package/dist/chat/attachment-utils.d.ts +10 -0
- package/dist/chat/attachment-utils.d.ts.map +1 -0
- package/dist/chat/catalog.d.ts +1114 -0
- package/dist/chat/catalog.d.ts.map +1 -0
- package/dist/chat/components/AIGroupingCards.d.ts +4 -0
- package/dist/chat/components/AIGroupingCards.d.ts.map +1 -0
- package/dist/chat/components/AISuggestedSearchCards.d.ts +4 -0
- package/dist/chat/components/AISuggestedSearchCards.d.ts.map +1 -0
- package/dist/chat/components/AITopPicks.d.ts +4 -0
- package/dist/chat/components/AITopPicks.d.ts.map +1 -0
- package/dist/chat/components/CategoriesContainer.d.ts +4 -0
- package/dist/chat/components/CategoriesContainer.d.ts.map +1 -0
- package/dist/chat/components/ChatDrawer.d.ts +140 -0
- package/dist/chat/components/ChatDrawer.d.ts.map +1 -0
- package/dist/chat/components/ChoicePrompter.d.ts +16 -0
- package/dist/chat/components/ChoicePrompter.d.ts.map +1 -0
- package/dist/chat/components/ComparisonTable.d.ts +47 -0
- package/dist/chat/components/ComparisonTable.d.ts.map +1 -0
- package/dist/chat/components/FloatingComparisonButton.d.ts +11 -0
- package/dist/chat/components/FloatingComparisonButton.d.ts.map +1 -0
- package/dist/chat/components/GroundingReviewCard.d.ts +4 -0
- package/dist/chat/components/GroundingReviewCard.d.ts.map +1 -0
- package/dist/chat/components/KvkkBanner.d.ts +6 -0
- package/dist/chat/components/KvkkBanner.d.ts.map +1 -0
- package/dist/chat/components/Launcher.d.ts +25 -0
- package/dist/chat/components/Launcher.d.ts.map +1 -0
- package/dist/chat/components/PanelTopBar.d.ts +20 -0
- package/dist/chat/components/PanelTopBar.d.ts.map +1 -0
- package/dist/chat/components/ProactivePopup.d.ts +11 -0
- package/dist/chat/components/ProactivePopup.d.ts.map +1 -0
- package/dist/chat/components/ProsAndCons.d.ts +9 -0
- package/dist/chat/components/ProsAndCons.d.ts.map +1 -0
- package/dist/chat/components/ReviewHighlights.d.ts +3 -0
- package/dist/chat/components/ReviewHighlights.d.ts.map +1 -0
- package/dist/chat/components/ThumbnailsColumn.d.ts +23 -0
- package/dist/chat/components/ThumbnailsColumn.d.ts.map +1 -0
- package/dist/chat/components/actionClassifier.d.ts +13 -0
- package/dist/chat/components/actionClassifier.d.ts.map +1 -0
- package/dist/chat/components/productMentionLinker.d.ts +26 -0
- package/dist/chat/components/productMentionLinker.d.ts.map +1 -0
- package/dist/chat/components/renderUISpec.d.ts +15 -0
- package/dist/chat/components/renderUISpec.d.ts.map +1 -0
- package/dist/chat/components/typewriter.d.ts +25 -0
- package/dist/chat/components/typewriter.d.ts.map +1 -0
- package/dist/chat/extendedModeManager.d.ts +33 -0
- package/dist/chat/extendedModeManager.d.ts.map +1 -0
- package/dist/chat/index.d.ts +192 -0
- package/dist/chat/index.d.ts.map +1 -0
- package/dist/chat/locales/en.d.ts +3 -0
- package/dist/chat/locales/en.d.ts.map +1 -0
- package/dist/chat/locales/index.d.ts +6 -0
- package/dist/chat/locales/index.d.ts.map +1 -0
- package/dist/chat/locales/tr.d.ts +3 -0
- package/dist/chat/locales/tr.d.ts.map +1 -0
- package/dist/chat/types.d.ts +212 -0
- package/dist/chat/types.d.ts.map +1 -0
- package/dist/chat.cjs +2 -0
- package/dist/chat.cjs.map +1 -0
- package/dist/chat.iife.js +59 -0
- package/dist/chat.iife.js.map +1 -0
- package/dist/chat.js +11 -0
- package/dist/chat.js.map +1 -0
- package/dist/common/action-router.d.ts +30 -0
- package/dist/common/action-router.d.ts.map +1 -0
- package/dist/common/activity-tracker.d.ts +38 -0
- package/dist/common/activity-tracker.d.ts.map +1 -0
- package/dist/common/analytics-events.d.ts +90 -0
- package/dist/common/analytics-events.d.ts.map +1 -0
- package/dist/common/analytics.d.ts +58 -0
- package/dist/common/analytics.d.ts.map +1 -0
- package/dist/common/api-paths.d.ts +14 -0
- package/dist/common/api-paths.d.ts.map +1 -0
- package/dist/common/client.d.ts +20 -0
- package/dist/common/client.d.ts.map +1 -0
- package/dist/common/communication-bridge.d.ts +51 -0
- package/dist/common/communication-bridge.d.ts.map +1 -0
- package/dist/common/config-schema.d.ts +241 -0
- package/dist/common/config-schema.d.ts.map +1 -0
- package/dist/common/context.d.ts +28 -0
- package/dist/common/context.d.ts.map +1 -0
- package/dist/common/customization-factories.d.ts +63 -0
- package/dist/common/customization-factories.d.ts.map +1 -0
- package/dist/common/events.d.ts +47 -0
- package/dist/common/events.d.ts.map +1 -0
- package/dist/common/global-error-toast.d.ts +6 -0
- package/dist/common/global-error-toast.d.ts.map +1 -0
- package/dist/common/index.d.ts +36 -0
- package/dist/common/index.d.ts.map +1 -0
- package/dist/common/indexed-db.d.ts +74 -0
- package/dist/common/indexed-db.d.ts.map +1 -0
- package/dist/common/overlay.d.ts +64 -0
- package/dist/common/overlay.d.ts.map +1 -0
- package/dist/common/preflight.d.ts +12 -0
- package/dist/common/preflight.d.ts.map +1 -0
- package/dist/common/renderer/dom.d.ts +4 -0
- package/dist/common/renderer/dom.d.ts.map +1 -0
- package/dist/common/renderer/index.d.ts +5 -0
- package/dist/common/renderer/index.d.ts.map +1 -0
- package/dist/common/renderer/overrides.d.ts +24 -0
- package/dist/common/renderer/overrides.d.ts.map +1 -0
- package/dist/common/renderer/registry.d.ts +3 -0
- package/dist/common/renderer/registry.d.ts.map +1 -0
- package/dist/common/renderer/types.d.ts +20 -0
- package/dist/common/renderer/types.d.ts.map +1 -0
- package/dist/common/safe-html.d.ts +19 -0
- package/dist/common/safe-html.d.ts.map +1 -0
- package/dist/common/streaming.d.ts +32 -0
- package/dist/common/streaming.d.ts.map +1 -0
- package/dist/common/theme-utils.d.ts +16 -0
- package/dist/common/theme-utils.d.ts.map +1 -0
- package/dist/common/types.d.ts +298 -0
- package/dist/common/types.d.ts.map +1 -0
- package/dist/common/ui-theme.d.ts +10 -0
- package/dist/common/ui-theme.d.ts.map +1 -0
- package/dist/common/uuidv7.d.ts +8 -0
- package/dist/common/uuidv7.d.ts.map +1 -0
- package/dist/common/v1-protocol-adapter.d.ts +66 -0
- package/dist/common/v1-protocol-adapter.d.ts.map +1 -0
- package/dist/common/widget-base.d.ts +75 -0
- package/dist/common/widget-base.d.ts.map +1 -0
- package/dist/common.cjs +2 -0
- package/dist/common.cjs.map +1 -0
- package/dist/common.js +584 -0
- package/dist/common.js.map +1 -0
- package/dist/index-CFA70IGF.js +3626 -0
- package/dist/index-CFA70IGF.js.map +1 -0
- package/dist/index-Dfl89zpe.cjs +13 -0
- package/dist/index-Dfl89zpe.cjs.map +1 -0
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +59 -0
- package/dist/index.js.map +1 -0
- package/dist/qna/api.d.ts +22 -0
- package/dist/qna/api.d.ts.map +1 -0
- package/dist/qna/catalog.d.ts +140 -0
- package/dist/qna/catalog.d.ts.map +1 -0
- package/dist/qna/components/ButtonRow.d.ts +16 -0
- package/dist/qna/components/ButtonRow.d.ts.map +1 -0
- package/dist/qna/components/TextInput.d.ts +12 -0
- package/dist/qna/components/TextInput.d.ts.map +1 -0
- package/dist/qna/components/renderUISpec.d.ts +8 -0
- package/dist/qna/components/renderUISpec.d.ts.map +1 -0
- package/dist/qna/index.d.ts +34 -0
- package/dist/qna/index.d.ts.map +1 -0
- package/dist/qna/locales/en.d.ts +3 -0
- package/dist/qna/locales/en.d.ts.map +1 -0
- package/dist/qna/locales/index.d.ts +6 -0
- package/dist/qna/locales/index.d.ts.map +1 -0
- package/dist/qna/locales/tr.d.ts +3 -0
- package/dist/qna/locales/tr.d.ts.map +1 -0
- package/dist/qna/types.d.ts +62 -0
- package/dist/qna/types.d.ts.map +1 -0
- package/dist/qna.cjs +2 -0
- package/dist/qna.cjs.map +1 -0
- package/dist/qna.css +1 -0
- package/dist/qna.iife.js +48 -0
- package/dist/qna.iife.js.map +1 -0
- package/dist/qna.js +435 -0
- package/dist/qna.js.map +1 -0
- package/dist/simrel/api.d.ts +26 -0
- package/dist/simrel/api.d.ts.map +1 -0
- package/dist/simrel/catalog.d.ts +319 -0
- package/dist/simrel/catalog.d.ts.map +1 -0
- package/dist/simrel/components/GroupTabs.d.ts +17 -0
- package/dist/simrel/components/GroupTabs.d.ts.map +1 -0
- package/dist/simrel/components/ProductCard.d.ts +17 -0
- package/dist/simrel/components/ProductCard.d.ts.map +1 -0
- package/dist/simrel/components/ProductGrid.d.ts +17 -0
- package/dist/simrel/components/ProductGrid.d.ts.map +1 -0
- package/dist/simrel/components/renderUISpec.d.ts +8 -0
- package/dist/simrel/components/renderUISpec.d.ts.map +1 -0
- package/dist/simrel/index.d.ts +36 -0
- package/dist/simrel/index.d.ts.map +1 -0
- package/dist/simrel/locales/en.d.ts +3 -0
- package/dist/simrel/locales/en.d.ts.map +1 -0
- package/dist/simrel/locales/index.d.ts +6 -0
- package/dist/simrel/locales/index.d.ts.map +1 -0
- package/dist/simrel/locales/tr.d.ts +3 -0
- package/dist/simrel/locales/tr.d.ts.map +1 -0
- package/dist/simrel/types.d.ts +111 -0
- package/dist/simrel/types.d.ts.map +1 -0
- package/dist/simrel.cjs +2 -0
- package/dist/simrel.cjs.map +1 -0
- package/dist/simrel.css +1 -0
- package/dist/simrel.iife.js +48 -0
- package/dist/simrel.iife.js.map +1 -0
- package/dist/simrel.js +620 -0
- package/dist/simrel.js.map +1 -0
- package/dist/types-CeON7iBO.cjs +48 -0
- package/dist/types-CeON7iBO.cjs.map +1 -0
- package/dist/types-yxW8WA7u.js +4132 -0
- package/dist/types-yxW8WA7u.js.map +1 -0
- package/package.json +100 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/chat/catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;EAI9B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;IAO5B,mDAAmD;;;;;;;;;;;;;;;;;;EAEnD,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;QAI1B,mEAAmE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQvE,CAAC;AAEH,eAAO,MAAM,qBAAqB,gDAAe,CAAC;AAElD,eAAO,MAAM,aAAa;;;;;;EAExB,CAAC;AAWH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6BhC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;EAG/B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAc9B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAE3B,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKpC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAShC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUvC,CAAC;AAUH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;gBA/HtB,mDAAmD;;;;;;;;;;;;;;;;;;;;;;;;;oBAQ/C,mEAAmE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkK/D,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC;AAC7C,MAAM,MAAM,iBAAiB,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AIGroupingCards.d.ts","sourceRoot":"","sources":["../../../src/chat/components/AIGroupingCards.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAoB3D,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,uBAAuB,GAAG,WAAW,CA0DnG"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { UIElement } from '../../common/types.js';
|
|
2
|
+
import { ChatUISpecRenderContext } from '../types.js';
|
|
3
|
+
export declare function renderAISuggestedSearchCards(element: UIElement, ctx: ChatUISpecRenderContext): HTMLElement;
|
|
4
|
+
//# sourceMappingURL=AISuggestedSearchCards.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AISuggestedSearchCards.d.ts","sourceRoot":"","sources":["../../../src/chat/components/AISuggestedSearchCards.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAoB3D,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,uBAAuB,GAAG,WAAW,CAmD1G"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AITopPicks.d.ts","sourceRoot":"","sources":["../../../src/chat/components/AITopPicks.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AA+B3D,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,uBAAuB,GAAG,WAAW,CAyB9F"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { UIElement } from '../../common/types.js';
|
|
2
|
+
import { ChatUISpecRenderContext } from '../types.js';
|
|
3
|
+
export declare function renderCategoriesContainer(element: UIElement, context: ChatUISpecRenderContext): HTMLElement;
|
|
4
|
+
//# sourceMappingURL=CategoriesContainer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CategoriesContainer.d.ts","sourceRoot":"","sources":["../../../src/chat/components/CategoriesContainer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAa3D,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,uBAAuB,GAAG,WAAW,CAyE3G"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { ChatI18n, ChatMessage } from '../types.js';
|
|
2
|
+
import { ThumbnailEntry } from './ThumbnailsColumn.js';
|
|
3
|
+
/** SVG icon map for suggested action chips/pills. Keys match backend icon names. */
|
|
4
|
+
declare const SUGGESTED_ACTION_ICONS: Record<string, string>;
|
|
5
|
+
export { SUGGESTED_ACTION_ICONS };
|
|
6
|
+
export interface ChatDrawerOptions {
|
|
7
|
+
i18n: ChatI18n;
|
|
8
|
+
onSend: (text: string, attachment?: File) => void;
|
|
9
|
+
onClose: () => void;
|
|
10
|
+
onAttachment?: (file: File) => void;
|
|
11
|
+
onPanelToggle?: () => void;
|
|
12
|
+
onRollback?: (messageId: string) => void;
|
|
13
|
+
headerTitle?: string | undefined;
|
|
14
|
+
headerAvatarUrl?: string | undefined;
|
|
15
|
+
headerBadge?: string | undefined;
|
|
16
|
+
/** URL for the cart icon link in the header (e.g. "/sepetim"). */
|
|
17
|
+
headerCartUrl?: string | undefined;
|
|
18
|
+
/** Show a favorites (heart) toggle button in the header. */
|
|
19
|
+
headerFavoritesToggle?: boolean | undefined;
|
|
20
|
+
onFavoritesClick?: (() => void) | undefined;
|
|
21
|
+
/** Callback fired when the panel back button is clicked. */
|
|
22
|
+
onPanelBack?: (() => void) | undefined;
|
|
23
|
+
/** Callback fired when the panel forward button is clicked. */
|
|
24
|
+
onPanelForward?: (() => void) | undefined;
|
|
25
|
+
/** Callback fired when a product thumbnail is clicked (for thread rollback). */
|
|
26
|
+
onThumbnailClick?: ((threadId: string) => void) | undefined;
|
|
27
|
+
/** Callback fired when a link in bot HTML is clicked. */
|
|
28
|
+
onLinkClick?: ((url: string) => void) | undefined;
|
|
29
|
+
}
|
|
30
|
+
export declare class ChatDrawer {
|
|
31
|
+
private root;
|
|
32
|
+
private messagesEl;
|
|
33
|
+
private inputEl;
|
|
34
|
+
private sendBtn;
|
|
35
|
+
private i18n;
|
|
36
|
+
private onSend;
|
|
37
|
+
private _panelEl;
|
|
38
|
+
private _panelVisible;
|
|
39
|
+
private _panelCollapsed;
|
|
40
|
+
private _panelForceExpanded;
|
|
41
|
+
private _dividerEl;
|
|
42
|
+
private _onPanelToggle;
|
|
43
|
+
private _pendingAttachment;
|
|
44
|
+
private _fileInput;
|
|
45
|
+
private _previewStrip;
|
|
46
|
+
private _previewName;
|
|
47
|
+
private _onAttachment;
|
|
48
|
+
private _onRollback;
|
|
49
|
+
private _onLinkClick;
|
|
50
|
+
private _pillsEl;
|
|
51
|
+
private _kvkkSlot;
|
|
52
|
+
private _panelTopBar;
|
|
53
|
+
private _userScrolledUp;
|
|
54
|
+
private _scrollLockedUntil;
|
|
55
|
+
private _inputChipsEl;
|
|
56
|
+
private _thumbnailsColumn;
|
|
57
|
+
private _thinkingSteps;
|
|
58
|
+
private _firstBotMessageIds;
|
|
59
|
+
constructor(container: HTMLElement, options: ChatDrawerOptions);
|
|
60
|
+
addMessage(message: ChatMessage): void;
|
|
61
|
+
showTypingIndicator(searchText?: string): void;
|
|
62
|
+
/** Accumulate a new thinking step (shown as a checklist in the typing indicator). */
|
|
63
|
+
addThinkingStep(text: string): void;
|
|
64
|
+
removeTypingIndicator(): void;
|
|
65
|
+
showError(message?: string): void;
|
|
66
|
+
clearMessages(): void;
|
|
67
|
+
/** Replace suggestion pills. Pass empty array to hide. */
|
|
68
|
+
setPills(pills: Array<{
|
|
69
|
+
label: string;
|
|
70
|
+
onAction: () => void;
|
|
71
|
+
icon?: string;
|
|
72
|
+
image?: string;
|
|
73
|
+
description?: string;
|
|
74
|
+
}>): void;
|
|
75
|
+
focusInput(): void;
|
|
76
|
+
showKvkkBanner(html: string, onDismiss: () => void): void;
|
|
77
|
+
hideKvkkBanner(): void;
|
|
78
|
+
getElement(): HTMLElement;
|
|
79
|
+
/** Stage a file attachment for sending. Shows preview. */
|
|
80
|
+
stageAttachment(file: File): void;
|
|
81
|
+
/** Remove the staged attachment and hide preview. */
|
|
82
|
+
clearAttachment(): void;
|
|
83
|
+
/** Get the currently staged attachment file, or null. */
|
|
84
|
+
getPendingAttachment(): File | null;
|
|
85
|
+
/** Replace panel content and show the panel. */
|
|
86
|
+
setPanelContent(el: HTMLElement): void;
|
|
87
|
+
/** Append content to the panel without replacing existing content. */
|
|
88
|
+
appendPanelContent(el: HTMLElement): void;
|
|
89
|
+
/** Return the panel element's content child (after topbar), or null. */
|
|
90
|
+
getPanelContentElement(): HTMLElement | null;
|
|
91
|
+
/** Whether the panel is currently visible and has rendered content (beyond the topbar). */
|
|
92
|
+
hasPanelContent(): boolean;
|
|
93
|
+
/** Whether panel currently shows loading skeleton blocks. */
|
|
94
|
+
isPanelLoading(): boolean;
|
|
95
|
+
/** Show loading skeleton in the panel. Variant depends on contentType hint. */
|
|
96
|
+
showPanelLoading(contentType?: string): void;
|
|
97
|
+
/** Update the panel top bar navigation state. */
|
|
98
|
+
updatePanelTopBar(canBack: boolean, canForward: boolean, title: string): void;
|
|
99
|
+
/** Hide the panel and clear its content. In force-expanded mode, keeps panel visible. */
|
|
100
|
+
clearPanel(): void;
|
|
101
|
+
/** Force the panel to stay expanded (panelMode: 'expanded'). Hides the divider toggle. */
|
|
102
|
+
setForceExpanded(): void;
|
|
103
|
+
/** Toggle panel between collapsed and expanded. */
|
|
104
|
+
togglePanel(): void;
|
|
105
|
+
/** Whether the panel is currently collapsed by the user. */
|
|
106
|
+
isPanelCollapsed(): boolean;
|
|
107
|
+
/** Programmatically set panel collapsed state. */
|
|
108
|
+
setPanelCollapsed(collapsed: boolean): void;
|
|
109
|
+
/** Save panel collapsed state to sessionStorage. */
|
|
110
|
+
persistPanelState(accountId: string): void;
|
|
111
|
+
/** Restore panel collapsed state from sessionStorage. */
|
|
112
|
+
restorePanelState(accountId: string): void;
|
|
113
|
+
/** Re-render thinking steps inside the existing typing indicator container. */
|
|
114
|
+
private _renderThinkingSteps;
|
|
115
|
+
/** Render the accumulated thinking-step checklist into a container element. */
|
|
116
|
+
private _renderThinkingStepsInto;
|
|
117
|
+
private _trapFocus;
|
|
118
|
+
private _submit;
|
|
119
|
+
/** Lock auto-scroll for 500ms after session history restore to prevent visual jump. */
|
|
120
|
+
lockScrollForRestore(): void;
|
|
121
|
+
/** Scroll to bottom only if user hasn't scrolled up. Force=true always scrolls. */
|
|
122
|
+
private _scrollToBottom;
|
|
123
|
+
/** Public method for typewriter ticks — scrolls only if user is near bottom. */
|
|
124
|
+
scrollToBottomIfNeeded(): void;
|
|
125
|
+
/** Mark a message as the first bot message in its thread (for special styling). */
|
|
126
|
+
markFirstBotMessage(messageId: string): void;
|
|
127
|
+
/** Scroll to the first message of the last thread (for restore targeting). */
|
|
128
|
+
scrollToLastThread(): void;
|
|
129
|
+
/** Set compact input-area chips (search/info/review shortcuts above input). */
|
|
130
|
+
setInputAreaChips(chips: Array<{
|
|
131
|
+
label: string;
|
|
132
|
+
onAction: () => void;
|
|
133
|
+
icon?: string;
|
|
134
|
+
}>): void;
|
|
135
|
+
/** Clear input-area chips. */
|
|
136
|
+
clearInputAreaChips(): void;
|
|
137
|
+
setThumbnails(entries: ThumbnailEntry[]): void;
|
|
138
|
+
hideThumbnails(): void;
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=ChatDrawer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatDrawer.d.ts","sourceRoot":"","sources":["../../../src/chat/components/ChatDrawer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Floating card that suggests the user try comparison mode.
|
|
3
|
+
*
|
|
4
|
+
* Shows in the panel bottom-right when a ProductGrid is displayed and
|
|
5
|
+
* comparison mode is not active.
|
|
6
|
+
*/
|
|
7
|
+
export interface ChoicePrompterOptions {
|
|
8
|
+
heading: string;
|
|
9
|
+
suggestion: string;
|
|
10
|
+
ctaLabel: string;
|
|
11
|
+
onCtaClick: () => void;
|
|
12
|
+
onDismiss?: () => void;
|
|
13
|
+
}
|
|
14
|
+
export declare function createChoicePrompter(options: ChoicePrompterOptions): HTMLElement;
|
|
15
|
+
export declare function isChoicePrompterDismissed(): boolean;
|
|
16
|
+
//# sourceMappingURL=ChoicePrompter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChoicePrompter.d.ts","sourceRoot":"","sources":["../../../src/chat/components/ChoicePrompter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,WAAW,CAsChF;AAED,wBAAgB,yBAAyB,IAAI,OAAO,CAMnD"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ComparisonTable — renders a product comparison table with recommended pick,
|
|
3
|
+
* attribute rows, highlights, and optional special cases.
|
|
4
|
+
*
|
|
5
|
+
* XSS safety: All text is set via textContent. Image URLs are validated
|
|
6
|
+
* for safe protocols before being assigned to img.src.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Map a raw criteria field name to a human-readable label.
|
|
10
|
+
* Uses the Turkish fallback map first, then falls back to a simple
|
|
11
|
+
* formatting heuristic (replace underscores, capitalize first letter).
|
|
12
|
+
*/
|
|
13
|
+
export declare function formatCriteriaName(rawName: string): string;
|
|
14
|
+
export interface ComparisonProduct {
|
|
15
|
+
sku: string;
|
|
16
|
+
name: string;
|
|
17
|
+
price: string;
|
|
18
|
+
imageUrl?: string | undefined;
|
|
19
|
+
rating?: number | undefined;
|
|
20
|
+
reviewCount?: number | undefined;
|
|
21
|
+
}
|
|
22
|
+
export interface ComparisonAttribute {
|
|
23
|
+
label: string;
|
|
24
|
+
values: string[];
|
|
25
|
+
}
|
|
26
|
+
export interface ComparisonTableOptions {
|
|
27
|
+
recommended: ComparisonProduct;
|
|
28
|
+
products: ComparisonProduct[];
|
|
29
|
+
attributes: ComparisonAttribute[];
|
|
30
|
+
highlights: string[];
|
|
31
|
+
specialCases?: string[] | undefined;
|
|
32
|
+
onProductClick: (sku: string) => void;
|
|
33
|
+
onAddToCart?: ((sku: string) => void) | undefined;
|
|
34
|
+
recommendedText?: string | undefined;
|
|
35
|
+
winnerHits?: Record<string, {
|
|
36
|
+
positive?: string[];
|
|
37
|
+
negative?: string[];
|
|
38
|
+
}> | undefined;
|
|
39
|
+
productActions?: Record<string, {
|
|
40
|
+
title: string;
|
|
41
|
+
type: string;
|
|
42
|
+
payload?: unknown;
|
|
43
|
+
}> | undefined;
|
|
44
|
+
keyDifferencesHtml?: string | undefined;
|
|
45
|
+
}
|
|
46
|
+
export declare function renderComparisonTable(options: ComparisonTableOptions): HTMLElement;
|
|
47
|
+
//# sourceMappingURL=ComparisonTable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ComparisonTable.d.ts","sourceRoot":"","sources":["../../../src/chat/components/ComparisonTable.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAwCH;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE1D;AAWD,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,iBAAiB,CAAC;IAC/B,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IACpC,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,WAAW,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAClD,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC;IACtF,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC;IAChG,kBAAkB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,WAAW,CA6LlF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ChatUISpecRenderContext } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a floating comparison button element.
|
|
4
|
+
* Only meaningful when `selectedSkus.length >= 2`.
|
|
5
|
+
*
|
|
6
|
+
* @param selectedSkus - Array of selected product SKU strings
|
|
7
|
+
* @param ctx - Render context with onAction and i18n
|
|
8
|
+
* @returns The button element
|
|
9
|
+
*/
|
|
10
|
+
export declare function renderFloatingComparisonButton(selectedSkus: string[], ctx: ChatUISpecRenderContext): HTMLElement;
|
|
11
|
+
//# sourceMappingURL=FloatingComparisonButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FloatingComparisonButton.d.ts","sourceRoot":"","sources":["../../../src/chat/components/FloatingComparisonButton.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAE3D;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,uBAAuB,GAAG,WAAW,CAiBhH"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { UIElement } from '../../common/types.js';
|
|
2
|
+
import { ChatUISpecRenderContext } from '../types.js';
|
|
3
|
+
export declare function renderGroundingReviewCard(element: UIElement, ctx: ChatUISpecRenderContext): HTMLElement;
|
|
4
|
+
//# sourceMappingURL=GroundingReviewCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GroundingReviewCard.d.ts","sourceRoot":"","sources":["../../../src/chat/components/GroundingReviewCard.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAE3D,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,uBAAuB,GAAG,WAAW,CAgDvG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KvkkBanner.d.ts","sourceRoot":"","sources":["../../../src/chat/components/KvkkBanner.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,WAAW,CAmBxE"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export interface LauncherOptions {
|
|
2
|
+
onClick: () => void;
|
|
3
|
+
svgMarkup?: string;
|
|
4
|
+
ariaLabel?: string;
|
|
5
|
+
hideMobile?: boolean;
|
|
6
|
+
mobileBreakpoint?: number;
|
|
7
|
+
tooltip?: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Result of createLauncher — the container wraps the button and exposes
|
|
11
|
+
* content-area slots where the QNA widget or host page can inject engagement
|
|
12
|
+
* actions (buying-hesitation questions, "Find Similar" buttons, etc.).
|
|
13
|
+
*/
|
|
14
|
+
export interface LauncherElements {
|
|
15
|
+
/** Outer container — append this to the DOM. */
|
|
16
|
+
container: HTMLElement;
|
|
17
|
+
/** The clickable FAB button. */
|
|
18
|
+
button: HTMLButtonElement;
|
|
19
|
+
/** Slot above the button (primary QNA actions). */
|
|
20
|
+
contentArea: HTMLElement;
|
|
21
|
+
/** Slot below the button (secondary content). */
|
|
22
|
+
contentAreaBottom: HTMLElement;
|
|
23
|
+
}
|
|
24
|
+
export declare function createLauncher(options: LauncherOptions): LauncherElements;
|
|
25
|
+
//# sourceMappingURL=Launcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Launcher.d.ts","sourceRoot":"","sources":["../../../src/chat/components/Launcher.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gDAAgD;IAChD,SAAS,EAAE,WAAW,CAAC;IACvB,gCAAgC;IAChC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,mDAAmD;IACnD,WAAW,EAAE,WAAW,CAAC;IACzB,iDAAiD;IACjD,iBAAiB,EAAE,WAAW,CAAC;CAChC;AAcD,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,gBAAgB,CAwCzE"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PanelTopBar — navigation bar at the top of the panel pane.
|
|
3
|
+
*
|
|
4
|
+
* Shows back/forward arrow buttons and a title derived from the current
|
|
5
|
+
* panel content type.
|
|
6
|
+
*/
|
|
7
|
+
export interface PanelTopBarOptions {
|
|
8
|
+
onBack: () => void;
|
|
9
|
+
onForward: () => void;
|
|
10
|
+
}
|
|
11
|
+
export declare class PanelTopBar {
|
|
12
|
+
private _el;
|
|
13
|
+
private _backBtn;
|
|
14
|
+
private _forwardBtn;
|
|
15
|
+
private _titleEl;
|
|
16
|
+
constructor(options: PanelTopBarOptions);
|
|
17
|
+
update(canBack: boolean, canForward: boolean, title: string): void;
|
|
18
|
+
getElement(): HTMLElement;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=PanelTopBar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PanelTopBar.d.ts","sourceRoot":"","sources":["../../../src/chat/components/PanelTopBar.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,GAAG,CAAc;IACzB,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,QAAQ,CAAc;gBAElB,OAAO,EAAE,kBAAkB;IA4BvC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAMlE,UAAU,IAAI,WAAW;CAG1B"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface ProactivePopupOptions {
|
|
2
|
+
message: string;
|
|
3
|
+
onAccept: () => void;
|
|
4
|
+
onDismiss: () => void;
|
|
5
|
+
/** Auto-dismiss after this many ms (default: 15000). 0 = never. */
|
|
6
|
+
autoDismissMs?: number;
|
|
7
|
+
/** Accept button label (default: "Sohbete Başla"). */
|
|
8
|
+
acceptLabel?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function createProactivePopup(options: ProactivePopupOptions): HTMLElement;
|
|
11
|
+
//# sourceMappingURL=ProactivePopup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProactivePopup.d.ts","sourceRoot":"","sources":["../../../src/chat/components/ProactivePopup.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,WAAW,CAkDhF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Renders a Pros & Cons list for a product.
|
|
3
|
+
*
|
|
4
|
+
* XSS safety: All text is set via textContent. No innerHTML.
|
|
5
|
+
*/
|
|
6
|
+
export declare function renderProsAndCons(element: {
|
|
7
|
+
props?: Record<string, unknown>;
|
|
8
|
+
}): HTMLElement;
|
|
9
|
+
//# sourceMappingURL=ProsAndCons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProsAndCons.d.ts","sourceRoot":"","sources":["../../../src/chat/components/ProsAndCons.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GAAG,WAAW,CAoD3F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReviewHighlights.d.ts","sourceRoot":"","sources":["../../../src/chat/components/ReviewHighlights.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AASvD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,SAAS,GAAG,WAAW,CA2ItE"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vertical strip of product thumbnails along the right edge of the panel (results) pane.
|
|
3
|
+
*
|
|
4
|
+
* Clicking a thumbnail dispatches a rollback to the thread where that product was shown.
|
|
5
|
+
*/
|
|
6
|
+
export interface ThumbnailEntry {
|
|
7
|
+
sku: string;
|
|
8
|
+
imageUrl: string;
|
|
9
|
+
threadId: string;
|
|
10
|
+
}
|
|
11
|
+
export interface ThumbnailsColumnOptions {
|
|
12
|
+
onThumbnailClick: (threadId: string) => void;
|
|
13
|
+
}
|
|
14
|
+
export declare class ThumbnailsColumn {
|
|
15
|
+
private readonly _el;
|
|
16
|
+
private readonly _onThumbnailClick;
|
|
17
|
+
constructor(options: ThumbnailsColumnOptions);
|
|
18
|
+
getElement(): HTMLElement;
|
|
19
|
+
setEntries(entries: ThumbnailEntry[]): void;
|
|
20
|
+
show(): void;
|
|
21
|
+
hide(): void;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=ThumbnailsColumn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThumbnailsColumn.d.ts","sourceRoot":"","sources":["../../../src/chat/components/ThumbnailsColumn.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAc;IAClC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA6B;gBAEnD,OAAO,EAAE,uBAAuB;IAQ5C,UAAU,IAAI,WAAW;IAIzB,UAAU,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,IAAI;IAmC3C,IAAI,IAAI,IAAI;IAIZ,IAAI,IAAI,IAAI;CAGb"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Classifies suggested actions into input-area chips vs message-flow pills.
|
|
3
|
+
*
|
|
4
|
+
* Input-area chips: compact shortcuts above the input field (search, info, review, similar).
|
|
5
|
+
* Message-flow pills: larger interactive cards in the suggestion row.
|
|
6
|
+
*/
|
|
7
|
+
export declare function isInputAreaAction(btn: {
|
|
8
|
+
icon?: string;
|
|
9
|
+
action?: {
|
|
10
|
+
type?: string;
|
|
11
|
+
};
|
|
12
|
+
}): boolean;
|
|
13
|
+
//# sourceMappingURL=actionClassifier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actionClassifier.d.ts","sourceRoot":"","sources":["../../../src/chat/components/actionClassifier.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAAG,OAAO,CAI7F"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Product mention linker.
|
|
3
|
+
*
|
|
4
|
+
* After sanitiseHtml() renders bot text, this module walks text nodes and
|
|
5
|
+
* wraps product name occurrences with clickable links that dispatch a
|
|
6
|
+
* `launchSingleProduct` action.
|
|
7
|
+
*
|
|
8
|
+
* XSS safety: Uses DOM text-node manipulation only — no innerHTML.
|
|
9
|
+
*/
|
|
10
|
+
export interface ProductMention {
|
|
11
|
+
sku: string;
|
|
12
|
+
short_name: string;
|
|
13
|
+
}
|
|
14
|
+
export interface ProductMentionLinkerOptions {
|
|
15
|
+
container: HTMLElement;
|
|
16
|
+
mentions: ProductMention[];
|
|
17
|
+
onProductClick: (sku: string) => void;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Walk text nodes in `container` and wrap occurrences of each mention's
|
|
21
|
+
* `short_name` with a clickable `<a>` element.
|
|
22
|
+
*
|
|
23
|
+
* Only the first occurrence of each mention is linked to avoid visual clutter.
|
|
24
|
+
*/
|
|
25
|
+
export declare function linkProductMentions(options: ProductMentionLinkerOptions): void;
|
|
26
|
+
//# sourceMappingURL=productMentionLinker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"productMentionLinker.d.ts","sourceRoot":"","sources":["../../../src/chat/components/productMentionLinker.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,2BAA2B;IAC1C,SAAS,EAAE,WAAW,CAAC;IACvB,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,cAAc,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,2BAA2B,GAAG,IAAI,CAuD9E"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { UISpec } from '../../common/types.js';
|
|
2
|
+
import { UISpecDomRegistry, UISpecDomUnknownRenderer } from '../../common/renderer/index.js';
|
|
3
|
+
import { ChatUISpecRenderContext } from '../types.js';
|
|
4
|
+
export type UISpecRenderContext = ChatUISpecRenderContext;
|
|
5
|
+
export type ChatUISpecRegistry = UISpecDomRegistry<UISpecRenderContext>;
|
|
6
|
+
/**
|
|
7
|
+
* Formats a raw numeric price string into Turkish locale format.
|
|
8
|
+
* Example: "17990" → "17.990 TL", "17990.5" → "17.990,50 TL"
|
|
9
|
+
* Returns the input as-is if it's not a valid number.
|
|
10
|
+
*/
|
|
11
|
+
export declare function formatTurkishPrice(raw: string): string;
|
|
12
|
+
export declare const defaultChatUnknownUISpecRenderer: UISpecDomUnknownRenderer<UISpecRenderContext>;
|
|
13
|
+
export declare function createDefaultChatUISpecRegistry(): ChatUISpecRegistry;
|
|
14
|
+
export declare function renderUISpec(spec: UISpec, ctx: UISpecRenderContext, registry?: ChatUISpecRegistry, unknownRenderer?: UISpecDomUnknownRenderer<UISpecRenderContext>): HTMLElement;
|
|
15
|
+
//# sourceMappingURL=renderUISpec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"renderUISpec.d.ts","sourceRoot":"","sources":["../../../src/chat/components/renderUISpec.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAA4B,MAAM,uBAAuB,CAAC;AAE9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAClG,OAAO,KAAK,EAAE,uBAAuB,EAAoB,MAAM,aAAa,CAAC;AAY7E,MAAM,MAAM,mBAAmB,GAAG,uBAAuB,CAAC;AAE1D,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;AAExE;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAgBtD;AA0CD,eAAO,MAAM,gCAAgC,EAAE,wBAAwB,CAAC,mBAAmB,CAgB1F,CAAC;AAEF,wBAAgB,+BAA+B,IAAI,kBAAkB,CAEpE;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,mBAAmB,EACxB,QAAQ,qBAAgC,EACxC,eAAe,GAAE,wBAAwB,CAAC,mBAAmB,CAAoC,GAChG,WAAW,CAQb"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Block-by-block HTML typewriter effect.
|
|
3
|
+
*
|
|
4
|
+
* Parses sanitised HTML into top-level blocks and reveals them one at a time
|
|
5
|
+
* with a configurable stagger delay. Respects prefers-reduced-motion.
|
|
6
|
+
*/
|
|
7
|
+
export interface TypewriterOptions {
|
|
8
|
+
container: HTMLElement;
|
|
9
|
+
html: string;
|
|
10
|
+
/** Delay in ms between block reveals (default: 30). */
|
|
11
|
+
delayMs?: number;
|
|
12
|
+
/** Called after each block is revealed — useful for scroll tracking. */
|
|
13
|
+
onTick?: () => void;
|
|
14
|
+
/** Called when all blocks have been revealed. */
|
|
15
|
+
onComplete?: () => void;
|
|
16
|
+
}
|
|
17
|
+
export interface TypewriterHandle {
|
|
18
|
+
/** Skip animation and show all content immediately. */
|
|
19
|
+
complete(): void;
|
|
20
|
+
/** Cancel animation, leave content as-is. */
|
|
21
|
+
cancel(): void;
|
|
22
|
+
readonly isRunning: boolean;
|
|
23
|
+
}
|
|
24
|
+
export declare function typewriteHtml(options: TypewriterOptions): TypewriterHandle;
|
|
25
|
+
//# sourceMappingURL=typewriter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typewriter.d.ts","sourceRoot":"","sources":["../../../src/chat/components/typewriter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,WAAW,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,uDAAuD;IACvD,QAAQ,IAAI,IAAI,CAAC;IACjB,6CAA6C;IAC7C,MAAM,IAAI,IAAI,CAAC;IACf,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B;AA0ED,wBAAgB,aAAa,CAAC,OAAO,EAAE,iBAAiB,GAAG,gBAAgB,CAkE1E"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extended Mode Manager — production lock-count system for panel extension.
|
|
3
|
+
*
|
|
4
|
+
* Controls whether the host page PDP area should be maximized or minimized
|
|
5
|
+
* based on a combination of conditions: lock count, user visibility preference,
|
|
6
|
+
* favorites mode, panel content type, and chat visibility.
|
|
7
|
+
*/
|
|
8
|
+
export type PanelContentType = 'comparisonTable' | 'groupList' | 'productDetails' | 'productDetailsSimilars' | 'productList';
|
|
9
|
+
export interface ExtendedModeManagerOptions {
|
|
10
|
+
onChange: (extended: boolean) => void;
|
|
11
|
+
/** Whether `productDetails` should trigger panel extension (default: false, true for demo sites). */
|
|
12
|
+
productDetailsInPanel?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare class ExtendedModeManager {
|
|
15
|
+
private _lockCount;
|
|
16
|
+
private _hiddenByUser;
|
|
17
|
+
private _lastPanelContentType;
|
|
18
|
+
private _chatShown;
|
|
19
|
+
private _isFavoritesMode;
|
|
20
|
+
private _lastExtended;
|
|
21
|
+
private _onChange;
|
|
22
|
+
private _panelContentTypes;
|
|
23
|
+
constructor(options: ExtendedModeManagerOptions);
|
|
24
|
+
get isExtended(): boolean;
|
|
25
|
+
unlock(): void;
|
|
26
|
+
lock(): void;
|
|
27
|
+
setHiddenByUser(hidden: boolean): void;
|
|
28
|
+
setChatShown(shown: boolean): void;
|
|
29
|
+
setFavoritesMode(fav: boolean): void;
|
|
30
|
+
setPanelContentType(type: PanelContentType | null): void;
|
|
31
|
+
private _checkStateChange;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=extendedModeManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extendedModeManager.d.ts","sourceRoot":"","sources":["../../src/chat/extendedModeManager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,MAAM,gBAAgB,GACxB,iBAAiB,GACjB,WAAW,GACX,gBAAgB,GAChB,wBAAwB,GACxB,aAAa,CAAC;AAclB,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,qGAAqG;IACrG,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,qBAAqB,CAAiC;IAC9D,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,SAAS,CAA8B;IAC/C,OAAO,CAAC,kBAAkB,CAAsB;gBAEpC,OAAO,EAAE,0BAA0B;IAU/C,IAAI,UAAU,IAAI,OAAO,CASxB;IAED,MAAM,IAAI,IAAI;IAOd,IAAI,IAAI,IAAI;IAKZ,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAKtC,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAKlC,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAKpC,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI,GAAG,IAAI;IAKxD,OAAO,CAAC,iBAAiB;CAO1B"}
|