@gengage/assistant-fe 0.3.17 → 0.3.19
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/chat/api.d.ts +3 -0
- package/dist/chat/api.d.ts.map +1 -1
- package/dist/chat/assistant-mode.d.ts +20 -0
- package/dist/chat/assistant-mode.d.ts.map +1 -0
- package/dist/chat/catalog.d.ts +56 -0
- package/dist/chat/catalog.d.ts.map +1 -1
- package/dist/chat/components/AITopPicks.d.ts.map +1 -1
- package/dist/chat/components/BeautyPhotoStep.d.ts +17 -0
- package/dist/chat/components/BeautyPhotoStep.d.ts.map +1 -0
- package/dist/chat/components/ChatDrawer.d.ts +22 -1
- package/dist/chat/components/ChatDrawer.d.ts.map +1 -1
- package/dist/chat/components/ConsultingStylePicker.d.ts +26 -0
- package/dist/chat/components/ConsultingStylePicker.d.ts.map +1 -0
- package/dist/chat/components/PhotoAnalysisCard.d.ts +23 -0
- package/dist/chat/components/PhotoAnalysisCard.d.ts.map +1 -0
- package/dist/chat/components/ProductSummaryCard.d.ts.map +1 -1
- package/dist/chat/components/product-price-layout.d.ts +19 -0
- package/dist/chat/components/product-price-layout.d.ts.map +1 -0
- package/dist/chat/components/renderUISpec.d.ts +2 -1
- package/dist/chat/components/renderUISpec.d.ts.map +1 -1
- package/dist/chat/features/beauty-consulting/consulting-grid.d.ts +19 -0
- package/dist/chat/features/beauty-consulting/consulting-grid.d.ts.map +1 -0
- package/dist/chat/features/beauty-consulting/drawer-extensions.d.ts +21 -0
- package/dist/chat/features/beauty-consulting/drawer-extensions.d.ts.map +1 -0
- package/dist/chat/features/beauty-consulting/mode-controller.d.ts +54 -0
- package/dist/chat/features/beauty-consulting/mode-controller.d.ts.map +1 -0
- package/dist/chat/features/beauty-consulting/registry.d.ts +4 -0
- package/dist/chat/features/beauty-consulting/registry.d.ts.map +1 -0
- package/dist/chat/features/beauty-consulting/stream-handler.d.ts +39 -0
- package/dist/chat/features/beauty-consulting/stream-handler.d.ts.map +1 -0
- package/dist/chat/index.d.ts +12 -0
- package/dist/chat/index.d.ts.map +1 -1
- package/dist/chat/locales/en.d.ts.map +1 -1
- package/dist/chat/locales/tr.d.ts.map +1 -1
- package/dist/chat/types.d.ts +54 -1
- package/dist/chat/types.d.ts.map +1 -1
- package/dist/{chat-D60Ci1vQ.js → chat-CtfmY7kp.js} +1723 -1039
- package/dist/chat-CtfmY7kp.js.map +1 -0
- package/dist/chat-sSkxxKuL.cjs +94 -0
- package/dist/chat-sSkxxKuL.cjs.map +1 -0
- package/dist/chat.cjs +1 -1
- package/dist/chat.iife.js +16 -16
- package/dist/chat.iife.js.map +1 -1
- package/dist/chat.js +1 -1
- package/dist/common/consulting-sources.d.ts +10 -0
- package/dist/common/consulting-sources.d.ts.map +1 -0
- package/dist/common/overlay.d.ts +2 -0
- package/dist/common/overlay.d.ts.map +1 -1
- package/dist/common/protocol-adapter.d.ts.map +1 -1
- package/dist/common/types.d.ts +4 -0
- package/dist/common/types.d.ts.map +1 -1
- package/dist/{common-Dz2_34VG.js → common-C9GYMjJY.js} +3 -3
- package/dist/{common-Dz2_34VG.js.map → common-C9GYMjJY.js.map} +1 -1
- package/dist/{common-BmcjPIOR.cjs → common-CSWRku57.cjs} +2 -2
- package/dist/{common-BmcjPIOR.cjs.map → common-CSWRku57.cjs.map} +1 -1
- package/dist/common.cjs +1 -1
- package/dist/common.js +5 -5
- package/dist/index.cjs +1 -1
- package/dist/index.js +7 -7
- package/dist/{native-webview-DBxtreGf.js → native-webview-BHewgko1.js} +6 -6
- package/dist/native-webview-BHewgko1.js.map +1 -0
- package/dist/native-webview-C_gxZA79.cjs +2 -0
- package/dist/native-webview-C_gxZA79.cjs.map +1 -0
- package/dist/native.cjs +1 -1
- package/dist/native.iife.js +10 -10
- package/dist/native.iife.js.map +1 -1
- package/dist/native.js +1 -1
- package/dist/{qna-J0v3olA2.js → qna-BBZogvdp.js} +34 -34
- package/dist/{qna-J0v3olA2.js.map → qna-BBZogvdp.js.map} +1 -1
- package/dist/{qna-T6ACPKRB.cjs → qna-d7DnJ0pP.cjs} +2 -2
- package/dist/{qna-T6ACPKRB.cjs.map → qna-d7DnJ0pP.cjs.map} +1 -1
- package/dist/qna.cjs +1 -1
- package/dist/qna.iife.js +5 -5
- package/dist/qna.iife.js.map +1 -1
- package/dist/qna.js +1 -1
- package/dist/schemas-C-flaqAd.cjs +41 -0
- package/dist/schemas-C-flaqAd.cjs.map +1 -0
- package/dist/{schemas-DRZ9l0Z4.js → schemas-CKfd_Bqh.js} +776 -704
- package/dist/schemas-CKfd_Bqh.js.map +1 -0
- package/dist/{simrel-B3wJOMlY.cjs → simrel-BwZFl03Z.cjs} +2 -2
- package/dist/{simrel-B3wJOMlY.cjs.map → simrel-BwZFl03Z.cjs.map} +1 -1
- package/dist/{simrel-CGT83sSF.js → simrel-D74BsZbA.js} +50 -50
- package/dist/{simrel-CGT83sSF.js.map → simrel-D74BsZbA.js.map} +1 -1
- package/dist/simrel.cjs +1 -1
- package/dist/simrel.iife.js +4 -4
- package/dist/simrel.iife.js.map +1 -1
- package/dist/simrel.js +1 -1
- package/package.json +1 -1
- package/dist/chat-CRGCgvrz.cjs +0 -94
- package/dist/chat-CRGCgvrz.cjs.map +0 -1
- package/dist/chat-D60Ci1vQ.js.map +0 -1
- package/dist/native-webview-COipdC9f.cjs +0 -2
- package/dist/native-webview-COipdC9f.cjs.map +0 -1
- package/dist/native-webview-DBxtreGf.js.map +0 -1
- package/dist/schemas-B3zzmCPF.cjs +0 -41
- package/dist/schemas-B3zzmCPF.cjs.map +0 -1
- package/dist/schemas-DRZ9l0Z4.js.map +0 -1
package/dist/chat/api.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ export interface BackendRequestMeta {
|
|
|
17
17
|
isControlGroup: boolean;
|
|
18
18
|
isMobile: boolean;
|
|
19
19
|
viewId?: string;
|
|
20
|
+
assistantMode?: string;
|
|
20
21
|
}
|
|
21
22
|
export interface ProcessActionRequest {
|
|
22
23
|
account_id: string;
|
|
@@ -75,6 +76,8 @@ export interface StreamCallbacks {
|
|
|
75
76
|
}> | undefined;
|
|
76
77
|
skuToProductItem?: Record<string, Record<string, unknown>> | undefined;
|
|
77
78
|
conversationMode?: string | undefined;
|
|
79
|
+
renderHint?: string | undefined;
|
|
80
|
+
kvkk?: boolean | undefined;
|
|
78
81
|
}) => void;
|
|
79
82
|
onUISpec: (spec: UISpec, widget: string, panelHint?: 'panel', clearPanel?: boolean) => void;
|
|
80
83
|
onAction: (event: StreamEvent) => void;
|
package/dist/chat/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/chat/api.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,OAAO,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/chat/api.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,OAAO,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,MAAM,CAAC,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;IAEF,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qFAAqF;IACrF,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACpD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;CACH;AAED,MAAM,WAAW,uBAAuB;IACtC,WAAW,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IACtC,cAAc,CAAC,EAAE,OAAO,oBAAoB,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,CAAC;IAChF,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAChC;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,EAC1D,GAAG,EAAE,uBAAuB,GAC3B;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CA+DpD;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,CACX,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,EAChB,KAAK,CAAC,EAAE;QACN,eAAe,CAAC,EAAE,KAAK,CAAC;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,CAAC,GAAG,SAAS,CAAC;QACzE,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;QACvE,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACtC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAChC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;KAC5B,KACE,IAAI,CAAC;IACV,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC5F,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACvC,UAAU,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IACzC,OAAO,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;IAC9B,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAkCD,wBAAgB,eAAe,CAC7B,OAAO,EAAE,oBAAoB,EAC7B,SAAS,EAAE,eAAe,EAC1B,SAAS,EAAE,mBAAmB,GAC7B,eAAe,CAgHjB"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Assistant-mode utilities for the chat widget.
|
|
3
|
+
*
|
|
4
|
+
* The chat widget can operate in multiple modes (shopping, beauty consulting,
|
|
5
|
+
* watch expert, booking). This module contains the type, parsing helpers, and
|
|
6
|
+
* recognised mode list so the main index.ts stays focused on orchestration.
|
|
7
|
+
*/
|
|
8
|
+
export type AssistantMode = 'shopping' | 'booking' | 'beauty_consulting' | 'watch_expert';
|
|
9
|
+
/** Return the value as an AssistantMode if it is a known mode string, otherwise null. */
|
|
10
|
+
export declare function toAssistantMode(value: unknown): AssistantMode | null;
|
|
11
|
+
/** Safely cast an unknown value to a plain Record, or null. */
|
|
12
|
+
export declare function asRecord(value: unknown): Record<string, unknown> | null;
|
|
13
|
+
/** Return the first non-empty string among the given values. */
|
|
14
|
+
export declare function firstString(...values: unknown[]): string | undefined;
|
|
15
|
+
/**
|
|
16
|
+
* Parse a redirect metadata payload and return the target assistant mode,
|
|
17
|
+
* or `null` if the payload is not a valid mode-switch redirect.
|
|
18
|
+
*/
|
|
19
|
+
export declare function parseRedirectMode(redirectPayload: unknown): AssistantMode | null;
|
|
20
|
+
//# sourceMappingURL=assistant-mode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assistant-mode.d.ts","sourceRoot":"","sources":["../../src/chat/assistant-mode.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,SAAS,GAAG,mBAAmB,GAAG,cAAc,CAAC;AAO1F,yFAAyF;AACzF,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,GAAG,IAAI,CAGpE;AAED,+DAA+D;AAC/D,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAGvE;AAED,gEAAgE;AAChE,wBAAgB,WAAW,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,GAAG,SAAS,CAQpE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,eAAe,EAAE,OAAO,GAAG,aAAa,GAAG,IAAI,CAQhF"}
|
package/dist/chat/catalog.d.ts
CHANGED
|
@@ -159,6 +159,18 @@ export declare const ProductDetailsPanelSchema: z.ZodObject<{
|
|
|
159
159
|
reviewCount: z.ZodOptional<z.ZodNumber>;
|
|
160
160
|
price: z.ZodOptional<z.ZodString>;
|
|
161
161
|
originalPrice: z.ZodOptional<z.ZodString>;
|
|
162
|
+
discountReason: z.ZodOptional<z.ZodString>;
|
|
163
|
+
discount_reason: z.ZodOptional<z.ZodString>;
|
|
164
|
+
campaignReason: z.ZodOptional<z.ZodString>;
|
|
165
|
+
campaign_reason: z.ZodOptional<z.ZodString>;
|
|
166
|
+
originalPriceStyle: z.ZodOptional<z.ZodEnum<{
|
|
167
|
+
inline: "inline";
|
|
168
|
+
strikethrough: "strikethrough";
|
|
169
|
+
}>>;
|
|
170
|
+
price_original_style: z.ZodOptional<z.ZodEnum<{
|
|
171
|
+
inline: "inline";
|
|
172
|
+
strikethrough: "strikethrough";
|
|
173
|
+
}>>;
|
|
162
174
|
price_discount_rate: z.ZodOptional<z.ZodNumber>;
|
|
163
175
|
price_async: z.ZodOptional<z.ZodBoolean>;
|
|
164
176
|
inStock: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -347,6 +359,19 @@ export declare const HandoffNoticeSchema: z.ZodObject<{
|
|
|
347
359
|
products_discussed: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
348
360
|
user_sentiment: z.ZodOptional<z.ZodString>;
|
|
349
361
|
}, z.core.$strip>;
|
|
362
|
+
export declare const PhotoAnalysisCardSchema: z.ZodObject<{
|
|
363
|
+
summary: z.ZodString;
|
|
364
|
+
clues: z.ZodArray<z.ZodString>;
|
|
365
|
+
next_question: z.ZodOptional<z.ZodString>;
|
|
366
|
+
style_images: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
367
|
+
}, z.core.$strip>;
|
|
368
|
+
export declare const BeautyPhotoStepSchema: z.ZodObject<{
|
|
369
|
+
processing: z.ZodOptional<z.ZodBoolean>;
|
|
370
|
+
title: z.ZodOptional<z.ZodString>;
|
|
371
|
+
description: z.ZodOptional<z.ZodString>;
|
|
372
|
+
upload_label: z.ZodOptional<z.ZodString>;
|
|
373
|
+
skip_label: z.ZodOptional<z.ZodString>;
|
|
374
|
+
}, z.core.$strip>;
|
|
350
375
|
export declare const chatCatalog: {
|
|
351
376
|
readonly components: {
|
|
352
377
|
readonly MessageBubble: {
|
|
@@ -512,6 +537,18 @@ export declare const chatCatalog: {
|
|
|
512
537
|
reviewCount: z.ZodOptional<z.ZodNumber>;
|
|
513
538
|
price: z.ZodOptional<z.ZodString>;
|
|
514
539
|
originalPrice: z.ZodOptional<z.ZodString>;
|
|
540
|
+
discountReason: z.ZodOptional<z.ZodString>;
|
|
541
|
+
discount_reason: z.ZodOptional<z.ZodString>;
|
|
542
|
+
campaignReason: z.ZodOptional<z.ZodString>;
|
|
543
|
+
campaign_reason: z.ZodOptional<z.ZodString>;
|
|
544
|
+
originalPriceStyle: z.ZodOptional<z.ZodEnum<{
|
|
545
|
+
inline: "inline";
|
|
546
|
+
strikethrough: "strikethrough";
|
|
547
|
+
}>>;
|
|
548
|
+
price_original_style: z.ZodOptional<z.ZodEnum<{
|
|
549
|
+
inline: "inline";
|
|
550
|
+
strikethrough: "strikethrough";
|
|
551
|
+
}>>;
|
|
515
552
|
price_discount_rate: z.ZodOptional<z.ZodNumber>;
|
|
516
553
|
price_async: z.ZodOptional<z.ZodBoolean>;
|
|
517
554
|
inStock: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -717,6 +754,25 @@ export declare const chatCatalog: {
|
|
|
717
754
|
}, z.core.$strip>;
|
|
718
755
|
readonly description: "A notice shown when the conversation is escalated to a human agent.";
|
|
719
756
|
};
|
|
757
|
+
readonly PhotoAnalysisCard: {
|
|
758
|
+
readonly schema: z.ZodObject<{
|
|
759
|
+
summary: z.ZodString;
|
|
760
|
+
clues: z.ZodArray<z.ZodString>;
|
|
761
|
+
next_question: z.ZodOptional<z.ZodString>;
|
|
762
|
+
style_images: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
763
|
+
}, z.core.$strip>;
|
|
764
|
+
readonly description: "Structured photo analysis card with summary, clues, and follow-up question.";
|
|
765
|
+
};
|
|
766
|
+
readonly BeautyPhotoStep: {
|
|
767
|
+
readonly schema: z.ZodObject<{
|
|
768
|
+
processing: z.ZodOptional<z.ZodBoolean>;
|
|
769
|
+
title: z.ZodOptional<z.ZodString>;
|
|
770
|
+
description: z.ZodOptional<z.ZodString>;
|
|
771
|
+
upload_label: z.ZodOptional<z.ZodString>;
|
|
772
|
+
skip_label: z.ZodOptional<z.ZodString>;
|
|
773
|
+
}, z.core.$strip>;
|
|
774
|
+
readonly description: "Transient selfie upload prompt for beauty consulting init flow.";
|
|
775
|
+
};
|
|
720
776
|
};
|
|
721
777
|
};
|
|
722
778
|
export type ChatCatalog = typeof chatCatalog;
|
|
@@ -1 +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;;;;;;;iBAI9B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;iBAS5B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;iBAY9B,CAAC;AAEH,eAAO,MAAM,qBAAqB,gCAAe,CAAC;AAElD,eAAO,MAAM,aAAa;;iBAExB,CAAC;AAWH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA+BhC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;iBAG/B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;iBAc9B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;iBAE3B,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;iBAKpC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;iBAShC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;iBAUvC,CAAC;AAkCH,eAAO,MAAM,yBAAyB
|
|
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;;;;;;;iBAI9B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;iBAS5B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;iBAY9B,CAAC;AAEH,eAAO,MAAM,qBAAqB,gCAAe,CAAC;AAElD,eAAO,MAAM,aAAa;;iBAExB,CAAC;AAWH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA+BhC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;iBAG/B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;iBAc9B,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;iBAE3B,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;iBAKpC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;iBAShC,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;iBAUvC,CAAC;AAkCH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAiDpC,CAAC;AAEH,eAAO,MAAM,iBAAiB;;iBAE5B,CAAC;AASH,eAAO,MAAM,sBAAsB;;;;;;;iBAEjC,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;iBAI5B,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;iBAiBpC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;iBAI9B,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;iBAKlC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;iBAMhC,CAAC;AAUH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2Ed,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC;AAC7C,MAAM,MAAM,iBAAiB,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AITopPicks.d.ts","sourceRoot":"","sources":["../../../src/chat/components/AITopPicks.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"AITopPicks.d.ts","sourceRoot":"","sources":["../../../src/chat/components/AITopPicks.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AA6Z3D,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,uBAAuB,GAAG,WAAW,CAoC9F"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { UIElement } from '../../common/types.js';
|
|
2
|
+
import { ChatUISpecRenderContext } from '../types.js';
|
|
3
|
+
export interface BeautyPhotoStepProps {
|
|
4
|
+
processing: boolean;
|
|
5
|
+
title?: string | undefined;
|
|
6
|
+
description?: string | undefined;
|
|
7
|
+
uploadLabel?: string | undefined;
|
|
8
|
+
skipLabel?: string | undefined;
|
|
9
|
+
}
|
|
10
|
+
/** Extract typed props from a raw UISpec element props bag. */
|
|
11
|
+
export declare function parseBeautyPhotoStepProps(props: Record<string, unknown>): BeautyPhotoStepProps;
|
|
12
|
+
export interface BeautyPhotoStepCallbacks {
|
|
13
|
+
onUpload?: (() => void) | undefined;
|
|
14
|
+
onSkip?: (() => void) | undefined;
|
|
15
|
+
}
|
|
16
|
+
export declare function renderBeautyPhotoStep(element: UIElement, ctx: ChatUISpecRenderContext, callbacks?: BeautyPhotoStepCallbacks): HTMLElement;
|
|
17
|
+
//# sourceMappingURL=BeautyPhotoStep.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BeautyPhotoStep.d.ts","sourceRoot":"","sources":["../../../src/chat/components/BeautyPhotoStep.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAE3D,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAED,+DAA+D;AAC/D,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,oBAAoB,CAQ9F;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACpC,MAAM,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;CACnC;AAED,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,SAAS,EAClB,GAAG,EAAE,uBAAuB,EAC5B,SAAS,CAAC,EAAE,wBAAwB,GACnC,WAAW,CAiEb"}
|
|
@@ -141,6 +141,8 @@ export declare class ChatDrawer {
|
|
|
141
141
|
private _typingLoadingBinding;
|
|
142
142
|
private _panelLoadingBinding;
|
|
143
143
|
private _panelAiZoneLoadingBinding;
|
|
144
|
+
private _beautyPhotoStepEl;
|
|
145
|
+
private _renderPhotoAnalysisCard;
|
|
144
146
|
constructor(container: HTMLElement, options: ChatDrawerOptions);
|
|
145
147
|
addMessage(message: ChatMessage): void;
|
|
146
148
|
/** Remove one transcript bubble (e.g. superseded empty assistant placeholder). */
|
|
@@ -181,6 +183,20 @@ export declare class ChatDrawer {
|
|
|
181
183
|
/** True when the KVKK banner is mounted (user has not dismissed it yet). */
|
|
182
184
|
isKvkkBannerVisible(): boolean;
|
|
183
185
|
getElement(): HTMLElement;
|
|
186
|
+
/** Opens the hidden file picker used by the attachment flow. */
|
|
187
|
+
openAttachmentPicker(): void;
|
|
188
|
+
/** Show/hide camera attach controls in the input shell. */
|
|
189
|
+
setAttachmentControlsVisible(visible: boolean): void;
|
|
190
|
+
/** Beauty mode selfie helper card shown above the input area. */
|
|
191
|
+
setBeautyPhotoStepCard(options: {
|
|
192
|
+
visible: boolean;
|
|
193
|
+
processing?: boolean;
|
|
194
|
+
onSkip?: (() => void) | undefined;
|
|
195
|
+
title?: string | undefined;
|
|
196
|
+
description?: string | undefined;
|
|
197
|
+
uploadLabel?: string | undefined;
|
|
198
|
+
skipLabel?: string | undefined;
|
|
199
|
+
}): void;
|
|
184
200
|
/** Stage a file attachment for sending. Shows preview. */
|
|
185
201
|
stageAttachment(file: File): void;
|
|
186
202
|
/** Remove the staged attachment and hide preview. */
|
|
@@ -284,7 +300,11 @@ export declare class ChatDrawer {
|
|
|
284
300
|
/** Public method for typewriter ticks — scrolls only if user is near bottom. */
|
|
285
301
|
scrollToBottomIfNeeded(): void;
|
|
286
302
|
/** Update a bot message's text content in the DOM (e.g. for fallback messages). */
|
|
287
|
-
updateBotMessage(messageId: string, html: string
|
|
303
|
+
updateBotMessage(messageId: string, html: string, renderHint?: string, photoAnalysis?: {
|
|
304
|
+
summary: string;
|
|
305
|
+
clues: string[];
|
|
306
|
+
nextQuestion?: string;
|
|
307
|
+
}): void;
|
|
288
308
|
/** Mark a message as the first bot message in its thread (for special styling). */
|
|
289
309
|
markFirstBotMessage(messageId: string): void;
|
|
290
310
|
/** Scroll to the first message of the last thread (for restore targeting). */
|
|
@@ -300,6 +320,7 @@ export declare class ChatDrawer {
|
|
|
300
320
|
/** Collapse transcript to a single thread (null = show full history). */
|
|
301
321
|
setPresentationFocus(threadId: string | null): void;
|
|
302
322
|
setFormerMessagesButtonVisible(visible: boolean): void;
|
|
323
|
+
setInputPlaceholder(placeholder: string): void;
|
|
303
324
|
private _applyPresentationCollapsed;
|
|
304
325
|
/** Call after inline chat DOM (e.g. ProductSummaryCard) is appended — reapplies thread collapse. */
|
|
305
326
|
refreshPresentationCollapsed(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatDrawer.d.ts","sourceRoot":"","sources":["../../../src/chat/components/ChatDrawer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AASzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"ChatDrawer.d.ts","sourceRoot":"","sources":["../../../src/chat/components/ChatDrawer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AASzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAI5D,kGAAkG;AAClG,QAAA,MAAM,mBAAmB,iNACuK,CAAC;AAEjM,oFAAoF;AACpF,QAAA,MAAM,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAQlD,CAAC;AAEF,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,CAAC;AAEvD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,IAAI,KAAK,IAAI,CAAC;IAClD,yEAAyE;IACzE,WAAW,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACvC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACpC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,oFAAoF;IACpF,gBAAgB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,kEAAkE;IAClE,8FAA8F;IAC9F,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,6DAA6D;IAC7D,mBAAmB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1C,gBAAgB,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAC5C,4DAA4D;IAC5D,WAAW,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACvC,+DAA+D;IAC/D,cAAc,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAC1C;yEACqE;IACrE,YAAY,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACxC;;;;OAIG;IACH,YAAY,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACxE,6FAA6F;IAC7F,cAAc,CAAC,EAAE,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,SAAS,CAAC;IACrD,gIAAgI;IAChI,iBAAiB,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,GAAG,SAAS,CAAC;IAChD,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC5D,yDAAyD;IACzD,WAAW,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAClD,+DAA+D;IAC/D,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACnC,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,4DAA4D;IAC5D,SAAS,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACrC;;;OAGG;IACH,YAAY,CAAC,EAAE;QACb,sBAAsB,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACnD,uBAAuB,CAAC,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;QACzD,0FAA0F;QAC1F,oBAAoB,CAAC,EAAE,MAAM,IAAI,CAAC;QAClC,mEAAmE;QACnE,yBAAyB,CAAC,EAAE,MAAM,OAAO,CAAC;QAC1C,yCAAyC;QACzC,0BAA0B,CAAC,EAAE,MAAM,IAAI,CAAC;KACzC,CAAC;CACH;AA6ED,qBAAa,UAAU;IACrB,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,gBAAgB,CAA6B;IACrD,OAAO,CAAC,IAAI,CAAW;IACvB,OAAO,CAAC,MAAM,CAA4C;IAC1D,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,iBAAiB,CAAc;IACvC,OAAO,CAAC,cAAc,CAAuC;IAC7D,OAAO,CAAC,gBAAgB,CAAuC;IAC/D,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,aAAa,CAAiD;IACtE,OAAO,CAAC,WAAW,CAAwD;IAC3E,OAAO,CAAC,YAAY,CAAkD;IACtE,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,iBAAiB,CAAmB;IAC5C,OAAO,CAAC,gBAAgB,CAAc;IACtC,gHAAgH;IAChH,OAAO,CAAC,qBAAqB,CAAc;IAC3C,+FAA+F;IAC/F,OAAO,CAAC,cAAc,CAAe;IACrC,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,mBAAmB,CAA0B;IACrD,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,UAAU,CAAW;IAC7B,OAAO,CAAC,uBAAuB,CAAS;IACxC,8EAA8E;IAC9E,OAAO,CAAC,yBAAyB,CAAK;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;IACnD,OAAO,CAAC,iBAAiB,CAA6C;IACtE,OAAO,CAAC,yBAAyB,CAA4B;IAC7D,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,eAAe,CAAkC;IACzD,OAAO,CAAC,0BAA0B,CAAuB;IACzD,OAAO,CAAC,kBAAkB,CAAkC;IAC5D,OAAO,CAAC,wBAAwB,CAAK;IACrC,OAAO,CAAC,qBAAqB,CAAK;IAClC,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,mBAAmB,CAAQ;IACnC,OAAO,CAAC,4BAA4B,CAAS;IAC7C,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,UAAU,CAAkC;IACpD,OAAO,CAAC,kBAAkB,CAA6B;IACvD,OAAO,CAAC,uBAAuB,CAAuB;IACtD,OAAO,CAAC,qBAAqB,CAAuC;IACpE,OAAO,CAAC,oBAAoB,CAAuC;IACnE,OAAO,CAAC,0BAA0B,CAAuC;IACzE,OAAO,CAAC,kBAAkB,CAA4B;IAEtD,OAAO,CAAC,wBAAwB;gBAQpB,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,iBAAiB;IA42B9D,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAgFtC,kFAAkF;IAClF,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAQ5C,mBAAmB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAqB9C,qFAAqF;IACrF,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAiBnC,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAkBvC,qBAAqB,IAAI,IAAI;IAS7B,kEAAkE;IAClE,cAAc,CAAC,MAAM,EAAE,MAAM,IAAI,GAAG,IAAI;IAUxC,oDAAoD;IACpD,cAAc,IAAI,IAAI;IAUtB,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI;IAuBvD,kFAAkF;IAClF,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,IAAI,CAAC;QAAC,aAAa,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,IAAI;IAKzG,+EAA+E;IAC/E,qBAAqB,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,MAAM,IAAI,CAAC;QAAC,aAAa,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,IAAI;IAIxF,OAAO,CAAC,gBAAgB;IAOxB,aAAa,IAAI,IAAI;IAOrB,0DAA0D;IAC1D,QAAQ,CACN,KAAK,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,IAAI,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GACzG,IAAI;IA8DP,UAAU,IAAI,IAAI;IAIlB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,IAAI,GAAG,IAAI;IAMzD,cAAc,IAAI,IAAI;IAItB,4EAA4E;IAC5E,mBAAmB,IAAI,OAAO;IAI9B,UAAU,IAAI,WAAW;IAIzB,gEAAgE;IAChE,oBAAoB,IAAI,IAAI;IAI5B,2DAA2D;IAC3D,4BAA4B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAMpD,iEAAiE;IACjE,sBAAsB,CAAC,OAAO,EAAE;QAC9B,OAAO,EAAE,OAAO,CAAC;QACjB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,MAAM,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;QAClC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACjC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACjC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;KAChC,GAAG,IAAI;IAUR,0DAA0D;IAC1D,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI;IAejC,qDAAqD;IACrD,eAAe,IAAI,IAAI;IAWvB,OAAO,CAAC,oBAAoB;IAY5B,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,eAAe;IAyBvB,OAAO,CAAC,iBAAiB;YASX,4BAA4B;IAc1C,yDAAyD;IACzD,oBAAoB,IAAI,IAAI,GAAG,IAAI;IAInC;;;OAGG;IACH,mBAAmB,CACjB,KAAK,EAAE,QAAQ,GAAG,WAAW,GAAG,SAAS,EACzC,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,WAAW,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAC5D,IAAI;IA8BP,OAAO,CAAC,wBAAwB;IAMhC,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,2BAA2B;IAsBnC,OAAO,CAAC,gCAAgC;IAexC,gDAAgD;IAChD,eAAe,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAwCtC,sEAAsE;IACtE,kBAAkB,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAezC,wEAAwE;IACxE,sBAAsB,IAAI,WAAW,GAAG,IAAI;IAiB5C,6DAA6D;IAC7D,cAAc,IAAI,OAAO;IAIzB,2GAA2G;IAC3G,eAAe,IAAI,OAAO;IAI1B,6DAA6D;IAC7D,cAAc,IAAI,OAAO;IAIzB,+EAA+E;IAC/E,gBAAgB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IA+L5C,iDAAiD;IACjD,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAU7E,mBAAmB,IAAI,MAAM;IAI7B,kEAAkE;IAClE,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAUzC;;;;;OAKG;IACH,UAAU,IAAI,IAAI;IAuBlB;;;OAGG;IACH,wBAAwB,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI;IAKtD;;;OAGG;IACH,eAAe,IAAI,IAAI;IAQvB,OAAO,CAAC,uBAAuB;IAQ/B,wEAAwE;IACxE,WAAW,IAAI,IAAI;IAYnB;;;OAGG;IACH,gBAAgB,IAAI,IAAI;IAcxB;;;;OAIG;IACH,OAAO,CAAC,2BAA2B;IA0CnC,oEAAoE;IACpE,OAAO,CAAC,uBAAuB;IAO/B,sFAAsF;IACtF,OAAO,CAAC,qBAAqB;IAiC7B,mDAAmD;IACnD,WAAW,IAAI,IAAI;IAInB,4DAA4D;IAC5D,gBAAgB,IAAI,OAAO;IAI3B,kDAAkD;IAClD,iBAAiB,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI;IAc3C,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAKhD,oDAAoD;IACpD,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAa1C,kGAAkG;IAClG,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAa7C,OAAO,CAAC,sBAAsB;IAuC9B,OAAO,CAAC,kBAAkB;IA0B1B,OAAO,CAAC,4BAA4B;IAOpC,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,OAAO;IAmBf,OAAO,CAAC,YAAY;IAcpB,uFAAuF;IACvF,oBAAoB,IAAI,IAAI;IAI5B,mFAAmF;IACnF,OAAO,CAAC,eAAe;IAUvB,gFAAgF;IAChF,sBAAsB,IAAI,IAAI;IAI9B,mFAAmF;IACnF,gBAAgB,CACd,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,EACnB,aAAa,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,GAC1E,IAAI;IAmBP,mFAAmF;IACnF,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAQ5C,8EAA8E;IAC9E,kBAAkB,IAAI,IAAI;IAuB1B;;;OAGG;IACH,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAE,cAAyB,GAAG,OAAO;IAqBpF,uGAAuG;IACvG,0BAA0B,CAAC,QAAQ,GAAE,cAAyB,GAAG,IAAI;IAQrE,OAAO,CAAC,iBAAiB;IAQzB,yEAAyE;IACzE,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAKnD,8BAA8B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAMtD,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAI9C,OAAO,CAAC,2BAA2B;IAanC,oGAAoG;IACpG,4BAA4B,IAAI,IAAI;IAMpC,+EAA+E;IAC/E,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,IAAI,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI;IA8B7F,8BAA8B;IAC9B,mBAAmB,IAAI,IAAI;IAK3B,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,IAAI;IAW9C,cAAc,IAAI,IAAI;IAMtB,OAAO,CAAC,qBAAqB;IA4B7B,OAAO,CAAC,mBAAmB;IAU3B,oEAAoE;IACpE,SAAS,IAAI,IAAI;IAkCjB,qEAAqE;IACrE,YAAY,IAAI,IAAI;IAepB,+EAA+E;IAC/E,cAAc,IAAI,IAAI;IAetB,6DAA6D;IAC7D,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAkBpC,yEAAyE;IACzE,OAAO,IAAI,IAAI;CAmBhB"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ChatUISpecRenderContext } from '../types.js';
|
|
2
|
+
export type StyleVariationProduct = Record<string, unknown>;
|
|
3
|
+
export type StyleVariation = {
|
|
4
|
+
style_label?: string;
|
|
5
|
+
style_mood?: string;
|
|
6
|
+
image_url?: string;
|
|
7
|
+
product_list?: StyleVariationProduct[];
|
|
8
|
+
recommendation_groups?: Array<{
|
|
9
|
+
label?: string;
|
|
10
|
+
reason?: string;
|
|
11
|
+
skus?: string[];
|
|
12
|
+
}>;
|
|
13
|
+
};
|
|
14
|
+
/** Normalise a consulting image URL from the backend (absolute or relative). */
|
|
15
|
+
export declare function toConsultingImageUrl(input: unknown): string | undefined;
|
|
16
|
+
/**
|
|
17
|
+
* Renders the consulting style picker UI (variation buttons + grouped product grid).
|
|
18
|
+
*
|
|
19
|
+
* @param wrapper Container to append into.
|
|
20
|
+
* @param grid The product grid element (cleared and repopulated per variation).
|
|
21
|
+
* @param source Backend source tag (`beauty_consulting` | `watch_expert`).
|
|
22
|
+
* @param styleVariations Non-empty filtered variation list.
|
|
23
|
+
* @param ctx Render context (i18n, callbacks).
|
|
24
|
+
*/
|
|
25
|
+
export declare function renderConsultingStylePicker(wrapper: HTMLElement, grid: HTMLElement, source: string, styleVariations: StyleVariation[], ctx?: ChatUISpecRenderContext): void;
|
|
26
|
+
//# sourceMappingURL=ConsultingStylePicker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConsultingStylePicker.d.ts","sourceRoot":"","sources":["../../../src/chat/components/ConsultingStylePicker.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAK3D,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5D,MAAM,MAAM,cAAc,GAAG;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACvC,qBAAqB,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CACrF,CAAC;AAEF,gFAAgF;AAChF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAmBvE;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,cAAc,EAAE,EACjC,GAAG,CAAC,EAAE,uBAAuB,GAC5B,IAAI,CAoKN"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { UIElement } from '../../common/types.js';
|
|
2
|
+
import { ChatUISpecRenderContext } from '../types.js';
|
|
3
|
+
export interface PhotoAnalysisData {
|
|
4
|
+
summary: string;
|
|
5
|
+
clues: string[];
|
|
6
|
+
nextQuestion?: string;
|
|
7
|
+
}
|
|
8
|
+
/** Extract structured photo-analysis data from a UISpec element's props. */
|
|
9
|
+
export declare function parsePhotoAnalysisProps(props: Record<string, unknown>): PhotoAnalysisData | null;
|
|
10
|
+
export declare function renderPhotoAnalysisCard(element: UIElement, ctx: ChatUISpecRenderContext): HTMLElement;
|
|
11
|
+
/**
|
|
12
|
+
* Renders a photo analysis card into a chat message bubble.
|
|
13
|
+
*
|
|
14
|
+
* When structured data is available (from a PhotoAnalysisCard UISpec), it renders
|
|
15
|
+
* the summary, clues, and next question directly. Otherwise, falls back to a
|
|
16
|
+
* sentence-splitting heuristic for old backends that don't send the UISpec.
|
|
17
|
+
*/
|
|
18
|
+
export declare function renderPhotoAnalysisBubble(container: HTMLElement, content: string, badgeText: string, structured?: {
|
|
19
|
+
summary: string;
|
|
20
|
+
clues: string[];
|
|
21
|
+
nextQuestion?: string;
|
|
22
|
+
}): void;
|
|
23
|
+
//# sourceMappingURL=PhotoAnalysisCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PhotoAnalysisCard.d.ts","sourceRoot":"","sources":["../../../src/chat/components/PhotoAnalysisCard.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAE3D,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,4EAA4E;AAC5E,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,iBAAiB,GAAG,IAAI,CAMhG;AA4CD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,uBAAuB,GAAG,WAAW,CAIrG;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,WAAW,EACtB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,UAAU,CAAC,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GACvE,IAAI,CA2BN"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProductSummaryCard.d.ts","sourceRoot":"","sources":["../../../src/chat/components/ProductSummaryCard.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"ProductSummaryCard.d.ts","sourceRoot":"","sources":["../../../src/chat/components/ProductSummaryCard.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAY3D,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,uBAAuB,GAAG,WAAW,CAwKtG"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ChatUISpecRenderContext, ProductPriceOriginalStyle } from '../types.js';
|
|
2
|
+
export declare function discountReasonFromProduct(product: Record<string, unknown> | undefined): string | undefined;
|
|
3
|
+
export declare function campaignReasonForDisplay(ctx: ChatUISpecRenderContext, product: Record<string, unknown> | undefined): string | undefined;
|
|
4
|
+
/**
|
|
5
|
+
* Per-product `originalPriceStyle` / `price_original_style` override config.
|
|
6
|
+
* Default `strikethrough`; `inline` uses a separator row without a strike line.
|
|
7
|
+
*/
|
|
8
|
+
export declare function resolveOriginalPriceStyle(ctx: ChatUISpecRenderContext, product: Record<string, unknown> | undefined): ProductPriceOriginalStyle;
|
|
9
|
+
export declare function createCampaignReasonElement(text: string): HTMLDivElement;
|
|
10
|
+
export declare function resolveCampaignBadgeLogoUrl(ctx: ChatUISpecRenderContext, product: Record<string, unknown> | undefined): string | undefined;
|
|
11
|
+
/**
|
|
12
|
+
* Single bordered badge: optional logo, campaign line (body text), sale price — gradient border, transparent fill.
|
|
13
|
+
*/
|
|
14
|
+
export declare function createCampaignPriceBadge(options: {
|
|
15
|
+
reasonText: string;
|
|
16
|
+
salePriceFormatted: string;
|
|
17
|
+
logoUrl?: string;
|
|
18
|
+
}): HTMLElement;
|
|
19
|
+
//# sourceMappingURL=product-price-layout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product-price-layout.d.ts","sourceRoot":"","sources":["../../../src/chat/components/product-price-layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAItF,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAO1G;AAED,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,uBAAuB,EAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC3C,MAAM,GAAG,SAAS,CAGpB;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,uBAAuB,EAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC3C,yBAAyB,CAM3B;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAKxE;AAED,wBAAgB,2BAA2B,CACzC,GAAG,EAAE,uBAAuB,EAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC3C,MAAM,GAAG,SAAS,CAepB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,WAAW,CAiCd"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { UISpec } from '../../common/types.js';
|
|
1
|
+
import { UISpec, UIElement } from '../../common/types.js';
|
|
2
2
|
import { UISpecDomRegistry, UISpecDomUnknownRenderer } from '../../common/renderer/index.js';
|
|
3
3
|
import { ChatUISpecRenderContext } from '../types.js';
|
|
4
4
|
import { PriceFormatConfig } from '../../common/price-formatter.js';
|
|
@@ -8,4 +8,5 @@ export type { PriceFormatConfig };
|
|
|
8
8
|
export declare const defaultChatUnknownUISpecRenderer: UISpecDomUnknownRenderer<UISpecRenderContext>;
|
|
9
9
|
export declare function createDefaultChatUISpecRegistry(): ChatUISpecRegistry;
|
|
10
10
|
export declare function renderUISpec(spec: UISpec, ctx: UISpecRenderContext, registry?: ChatUISpecRegistry, unknownRenderer?: UISpecDomUnknownRenderer<UISpecRenderContext>): HTMLElement;
|
|
11
|
+
export declare function renderProductCard(element: UIElement, ctx: UISpecRenderContext): HTMLElement;
|
|
11
12
|
//# sourceMappingURL=renderUISpec.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderUISpec.d.ts","sourceRoot":"","sources":["../../../src/chat/components/renderUISpec.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"renderUISpec.d.ts","sourceRoot":"","sources":["../../../src/chat/components/renderUISpec.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAiB,MAAM,uBAAuB,CAAC;AAE9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAClG,OAAO,KAAK,EAAE,uBAAuB,EAAoB,MAAM,aAAa,CAAC;AAE7E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AA+BzE,MAAM,MAAM,mBAAmB,GAAG,uBAAuB,CAAC;AAE1D,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;AAExE,YAAY,EAAE,iBAAiB,EAAE,CAAC;AAmClC,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;AAmMD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,mBAAmB,GAAG,WAAW,CAwV3F"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { UIElement } from '../../../common/types.js';
|
|
2
|
+
import { ChatUISpecRenderContext } from '../../types.js';
|
|
3
|
+
import { StyleVariation } from '../../components/ConsultingStylePicker.js';
|
|
4
|
+
export interface ConsultingGridResult {
|
|
5
|
+
isConsulting: boolean;
|
|
6
|
+
source: string | undefined;
|
|
7
|
+
styleVariations: StyleVariation[];
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Check whether a ProductGrid element should render as a consulting style picker.
|
|
11
|
+
* Returns the check result plus pre-parsed data for {@link renderConsultingGrid}.
|
|
12
|
+
*/
|
|
13
|
+
export declare function detectConsultingGrid(element: UIElement): ConsultingGridResult;
|
|
14
|
+
/**
|
|
15
|
+
* Render a consulting style picker into the ProductGrid wrapper.
|
|
16
|
+
* Call only when `detectConsultingGrid` returned `isConsulting: true`.
|
|
17
|
+
*/
|
|
18
|
+
export declare function renderConsultingGrid(wrapper: HTMLElement, grid: HTMLElement, detected: ConsultingGridResult, ctx?: ChatUISpecRenderContext): void;
|
|
19
|
+
//# sourceMappingURL=consulting-grid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consulting-grid.d.ts","sourceRoot":"","sources":["../../../../src/chat/features/beauty-consulting/consulting-grid.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAGhF,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,eAAe,EAAE,cAAc,EAAE,CAAC;CACnC;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,SAAS,GAAG,oBAAoB,CAU7E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,WAAW,EACjB,QAAQ,EAAE,oBAAoB,EAC9B,GAAG,CAAC,EAAE,uBAAuB,GAC5B,IAAI,CAEN"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ChatI18n } from '../../types.js';
|
|
2
|
+
export interface BeautyPhotoStepCardOptions {
|
|
3
|
+
visible: boolean;
|
|
4
|
+
processing?: boolean;
|
|
5
|
+
onSkip?: (() => void) | undefined;
|
|
6
|
+
title?: string | undefined;
|
|
7
|
+
description?: string | undefined;
|
|
8
|
+
uploadLabel?: string | undefined;
|
|
9
|
+
skipLabel?: string | undefined;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Lazily create the beauty photo step slot element and insert it before
|
|
13
|
+
* the input area. Returns the created or existing element.
|
|
14
|
+
*/
|
|
15
|
+
export declare function ensureBeautyPhotoStepSlot(existing: HTMLElement | null, conversationEl: HTMLElement | null): HTMLElement;
|
|
16
|
+
/**
|
|
17
|
+
* Show or hide the beauty photo step card.
|
|
18
|
+
* Returns the slot element (possibly newly created).
|
|
19
|
+
*/
|
|
20
|
+
export declare function applyBeautyPhotoStepCard(slotEl: HTMLElement | null, conversationEl: HTMLElement | null, options: BeautyPhotoStepCardOptions, i18n: ChatI18n, openAttachmentPicker: () => void): HTMLElement | null;
|
|
21
|
+
//# sourceMappingURL=drawer-extensions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drawer-extensions.d.ts","sourceRoot":"","sources":["../../../../src/chat/features/beauty-consulting/drawer-extensions.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAA2B,MAAM,gBAAgB,CAAC;AAExE,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,WAAW,GAAG,IAAI,EAC5B,cAAc,EAAE,WAAW,GAAG,IAAI,GACjC,WAAW,CAab;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,WAAW,GAAG,IAAI,EAC1B,cAAc,EAAE,WAAW,GAAG,IAAI,EAClC,OAAO,EAAE,0BAA0B,EACnC,IAAI,EAAE,QAAQ,EACd,oBAAoB,EAAE,MAAM,IAAI,GAC/B,WAAW,GAAG,IAAI,CAiCpB"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { AssistantMode } from '../../assistant-mode.js';
|
|
2
|
+
/**
|
|
3
|
+
* Minimal drawer interface consumed by the mode controller.
|
|
4
|
+
* Keeps the controller decoupled from ChatDrawer internals.
|
|
5
|
+
*/
|
|
6
|
+
export interface ModeDrawerAdapter {
|
|
7
|
+
setAttachmentControlsVisible(visible: boolean): void;
|
|
8
|
+
setInputPlaceholder(text: string): void;
|
|
9
|
+
setBeautyPhotoStepCard(options: {
|
|
10
|
+
visible: boolean;
|
|
11
|
+
}): void;
|
|
12
|
+
}
|
|
13
|
+
export declare class AssistantModeController {
|
|
14
|
+
private _mode;
|
|
15
|
+
private _uiHints;
|
|
16
|
+
get mode(): AssistantMode;
|
|
17
|
+
set mode(value: AssistantMode);
|
|
18
|
+
get uiHints(): Record<string, unknown> | null;
|
|
19
|
+
set uiHints(value: Record<string, unknown> | null);
|
|
20
|
+
get isShopping(): boolean;
|
|
21
|
+
get isBeautyConsulting(): boolean;
|
|
22
|
+
/** Whether choice prompter is hidden by backend ui_hints. */
|
|
23
|
+
get isChoicePrompterHidden(): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Apply backend ui_hints to the drawer.
|
|
26
|
+
*
|
|
27
|
+
* @param drawer Drawer adapter (null when drawer not yet created).
|
|
28
|
+
* @param defaultPlaceholder Default input placeholder for shopping mode.
|
|
29
|
+
* @param removePersistentChoicePrompter Callback to remove persistent choice prompter from Shadow DOM.
|
|
30
|
+
*/
|
|
31
|
+
applyUiHints(drawer: ModeDrawerAdapter | null, defaultPlaceholder: string, removePersistentChoicePrompter?: () => void): void;
|
|
32
|
+
/**
|
|
33
|
+
* Handle redirect metadata from a backend metadata event.
|
|
34
|
+
* Returns true if the mode actually switched.
|
|
35
|
+
*/
|
|
36
|
+
handleRedirect(redirectPayload: unknown): boolean;
|
|
37
|
+
/** Switch to a new assistant mode. */
|
|
38
|
+
switchMode(mode: AssistantMode): void;
|
|
39
|
+
/**
|
|
40
|
+
* Derive mode and ui_hints from a backend CONTEXT panel payload.
|
|
41
|
+
* Missing `assistant_mode` field preserves current mode (old backends).
|
|
42
|
+
* Explicit `null` resets to shopping.
|
|
43
|
+
*/
|
|
44
|
+
updateFromContext(panel: Record<string, unknown>): void;
|
|
45
|
+
/**
|
|
46
|
+
* Reset to shopping mode. Returns true if mode was non-shopping before reset.
|
|
47
|
+
*/
|
|
48
|
+
reset(): boolean;
|
|
49
|
+
/** Resolve attachment action type based on current mode. */
|
|
50
|
+
resolveAttachmentActionType(): 'user_message' | 'findSimilar';
|
|
51
|
+
/** Non-shopping modes condense thinking step lists. */
|
|
52
|
+
shouldCondenseThinking(): boolean;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=mode-controller.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mode-controller.d.ts","sourceRoot":"","sources":["../../../../src/chat/features/beauty-consulting/mode-controller.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAI7D;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,4BAA4B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACrD,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,sBAAsB,CAAC,OAAO,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;CAC7D;AAED,qBAAa,uBAAuB;IAClC,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,QAAQ,CAAwC;IAExD,IAAI,IAAI,IAAI,aAAa,CAExB;IAED,IAAI,IAAI,CAAC,KAAK,EAAE,aAAa,EAE5B;IAED,IAAI,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAE5C;IAED,IAAI,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,EAEhD;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,IAAI,kBAAkB,IAAI,OAAO,CAEhC;IAED,6DAA6D;IAC7D,IAAI,sBAAsB,IAAI,OAAO,CAEpC;IAED;;;;;;OAMG;IACH,YAAY,CACV,MAAM,EAAE,iBAAiB,GAAG,IAAI,EAChC,kBAAkB,EAAE,MAAM,EAC1B,8BAA8B,CAAC,EAAE,MAAM,IAAI,GAC1C,IAAI;IAiBP;;;OAGG;IACH,cAAc,CAAC,eAAe,EAAE,OAAO,GAAG,OAAO;IAQjD,sCAAsC;IACtC,UAAU,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI;IAMrC;;;;OAIG;IACH,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAevD;;OAEG;IACH,KAAK,IAAI,OAAO;IAOhB,4DAA4D;IAC5D,2BAA2B,IAAI,cAAc,GAAG,aAAa;IAI7D,uDAAuD;IACvD,sBAAsB,IAAI,OAAO;CAGlC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/chat/features/beauty-consulting/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAQ9D,eAAO,MAAM,wBAAwB,EAAE,OAAO,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,CAGxF,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { PhotoAnalysisData } from '../../components/PhotoAnalysisCard.js';
|
|
2
|
+
import { ChatMessage } from '../../types.js';
|
|
3
|
+
/** Per-stream state for beauty consulting features. */
|
|
4
|
+
export interface BeautyStreamState {
|
|
5
|
+
streamIncludedBeautyPhotoStep: boolean;
|
|
6
|
+
pendingPhotoStepSkip: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare function createBeautyStreamState(): BeautyStreamState;
|
|
9
|
+
/** Callbacks needed by the beauty stream handler. */
|
|
10
|
+
export interface BeautyStreamContext {
|
|
11
|
+
drawer: {
|
|
12
|
+
updateBotMessage(messageId: string, html: string, renderHint?: string, photoAnalysis?: PhotoAnalysisData): void;
|
|
13
|
+
setBeautyPhotoStepCard(options: {
|
|
14
|
+
visible: boolean;
|
|
15
|
+
processing?: boolean;
|
|
16
|
+
onSkip?: (() => void) | undefined;
|
|
17
|
+
title?: string | undefined;
|
|
18
|
+
description?: string | undefined;
|
|
19
|
+
uploadLabel?: string | undefined;
|
|
20
|
+
skipLabel?: string | undefined;
|
|
21
|
+
}): void;
|
|
22
|
+
} | null;
|
|
23
|
+
ensureRendered: () => void;
|
|
24
|
+
cancelTypewriter: () => void;
|
|
25
|
+
sendSkipMessage: () => void;
|
|
26
|
+
streamDone: boolean;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Handle a beauty-specific UISpec component during stream processing.
|
|
30
|
+
* Returns true if the component was handled (caller should `return`).
|
|
31
|
+
*/
|
|
32
|
+
export declare function handleBeautyUISpec(componentType: string, rootElementProps: Record<string, unknown>, state: BeautyStreamState, ctx: BeautyStreamContext, botMsg: ChatMessage): boolean;
|
|
33
|
+
/** Returns true if the bot message should render as a photo analysis card. */
|
|
34
|
+
export declare function isPhotoAnalysisMessage(botMsg: ChatMessage): boolean;
|
|
35
|
+
/** Flush pending beauty photo step state on stream complete. */
|
|
36
|
+
export declare function flushBeautyStreamComplete(state: BeautyStreamState, ctx: BeautyStreamContext): void;
|
|
37
|
+
/** Flush pending beauty photo step skip on stream error. */
|
|
38
|
+
export declare function flushBeautyStreamError(state: BeautyStreamState, ctx: BeautyStreamContext): void;
|
|
39
|
+
//# sourceMappingURL=stream-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream-handler.d.ts","sourceRoot":"","sources":["../../../../src/chat/features/beauty-consulting/stream-handler.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGlD,uDAAuD;AACvD,MAAM,WAAW,iBAAiB;IAChC,6BAA6B,EAAE,OAAO,CAAC;IACvC,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED,wBAAgB,uBAAuB,IAAI,iBAAiB,CAK3D;AAED,qDAAqD;AACrD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE;QACN,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;QAChH,sBAAsB,CAAC,OAAO,EAAE;YAC9B,OAAO,EAAE,OAAO,CAAC;YACjB,UAAU,CAAC,EAAE,OAAO,CAAC;YACrB,MAAM,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;YAClC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YACjC,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;YACjC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;SAChC,GAAG,IAAI,CAAC;KACV,GAAG,IAAI,CAAC;IACT,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,MAAM,EACrB,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACzC,KAAK,EAAE,iBAAiB,EACxB,GAAG,EAAE,mBAAmB,EACxB,MAAM,EAAE,WAAW,GAClB,OAAO,CAsCT;AAED,8EAA8E;AAC9E,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAEnE;AAED,gEAAgE;AAChE,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,EAAE,mBAAmB,GAAG,IAAI,CAQlG;AAED,4DAA4D;AAC5D,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,EAAE,mBAAmB,GAAG,IAAI,CAK/F"}
|
package/dist/chat/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ActionPayload, PageContext } from '../common/types.js';
|
|
2
2
|
import { BaseWidget } from '../common/widget-base.js';
|
|
3
3
|
import { ChatWidgetConfig } from './types.js';
|
|
4
|
+
import { AssistantMode } from './assistant-mode.js';
|
|
4
5
|
/**
|
|
5
6
|
* Floating AI chat widget with streaming NDJSON responses, product cards, and comparison tables.
|
|
6
7
|
*
|
|
@@ -109,6 +110,13 @@ export declare class GengageChat extends BaseWidget<ChatWidgetConfig> {
|
|
|
109
110
|
private _consecutiveErrorCount;
|
|
110
111
|
/** Last error message text for deduplication. */
|
|
111
112
|
private _lastErrorMessage;
|
|
113
|
+
private _modeController;
|
|
114
|
+
/** @deprecated Alias for backward compat in tests. Use _modeController.mode. */
|
|
115
|
+
get _assistantMode(): AssistantMode;
|
|
116
|
+
set _assistantMode(value: AssistantMode);
|
|
117
|
+
/** @deprecated Alias for backward compat in tests. Use _modeController.uiHints. */
|
|
118
|
+
get _uiHints(): Record<string, unknown> | null;
|
|
119
|
+
set _uiHints(value: Record<string, unknown> | null);
|
|
112
120
|
protected onInit(config: ChatWidgetConfig): Promise<void>;
|
|
113
121
|
protected onUpdate(context: Partial<PageContext>): void;
|
|
114
122
|
protected onShow(): void;
|
|
@@ -139,6 +147,7 @@ export declare class GengageChat extends BaseWidget<ChatWidgetConfig> {
|
|
|
139
147
|
* @returns unsubscribe function
|
|
140
148
|
*/
|
|
141
149
|
addCallback(eventName: string, callback: (detail: Record<string, unknown>) => boolean | Promise<boolean>): () => void;
|
|
150
|
+
private _applyDiscountedPriceColorVar;
|
|
142
151
|
private _abortAllActiveRequests;
|
|
143
152
|
/**
|
|
144
153
|
* Drop assistant rows that are still "streaming" with no text when the user starts
|
|
@@ -195,6 +204,9 @@ export declare class GengageChat extends BaseWidget<ChatWidgetConfig> {
|
|
|
195
204
|
private _handleAttachment;
|
|
196
205
|
private _sendMessage;
|
|
197
206
|
private _flushQueuedUserMessages;
|
|
207
|
+
/** Apply ui_hints from the backend CONTEXT event — delegates to mode controller. */
|
|
208
|
+
private _applyUiHints;
|
|
209
|
+
private _handleRedirectMetadata;
|
|
198
210
|
private _sendAction;
|
|
199
211
|
/** Return messages visible at the current thread cursor. */
|
|
200
212
|
private _getVisibleMessages;
|