@gengage/assistant-fe 0.4.5 → 0.4.7
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/README.md +22 -2
- package/dist/api-paths-DR5bPNhi.js +1213 -0
- package/dist/assistant-fe.css +1 -1
- package/dist/chat/index.d.ts +1 -374
- package/dist/chat/runtime.d.ts +374 -0
- package/dist/chat-BRKK63lt.js +303 -0
- package/dist/chat-runtime.js +13 -0
- package/dist/chat.iife.js +8 -8
- package/dist/chat.js +11 -10
- package/dist/common/config-constants.d.ts +1 -0
- package/dist/common/config-schema.d.ts +0 -1
- package/dist/common/overlay.d.ts +8 -4
- package/dist/common/protocol-adapter.d.ts +1 -1
- package/dist/common/safe-html.d.ts +1 -1
- package/dist/common-c-awF96O.js +491 -0
- package/dist/common.js +78 -76
- package/dist/{connection-warning-n88bjkqL.js → connection-warning-ecZqpczd.js} +1 -1
- package/dist/context-DGz5F81j.js +532 -0
- package/dist/index.d.ts +4 -4
- package/dist/index.js +73 -68
- package/dist/locale-CfqNifrU.js +7 -0
- package/dist/native-webview-C_PmKnzm.js +273 -0
- package/dist/native.iife.js +28 -91
- package/dist/native.js +1 -1
- package/dist/overlay-DJ1ZRMfI.js +212 -0
- package/dist/overlay.d.ts +4 -0
- package/dist/overlay.js +10 -0
- package/dist/pill-launcher-DSEeJT9h.js +364 -0
- package/dist/qna/index.d.ts +1 -61
- package/dist/qna/runtime.d.ts +62 -0
- package/dist/qna/types.d.ts +14 -0
- package/dist/qna-BNvttR6s.js +40 -0
- package/dist/qna-runtime.js +8 -0
- package/dist/qna.css +1 -1
- package/dist/qna.iife.js +21 -21
- package/dist/qna.js +6 -5
- package/dist/{simrel-K2TGFi1r.js → runtime-BsZZ8zTg.js} +245 -293
- package/dist/{chat-B1lLKIxj.js → runtime-DNbjpTCh.js} +1643 -2297
- package/dist/runtime-SKDvc0Xc.js +660 -0
- package/dist/schemas-CLo8wCjs.js +3207 -0
- package/dist/simbut/index.d.ts +3 -1
- package/dist/simbut/types.d.ts +11 -0
- package/dist/simbut-Bw3vBFtW.js +109 -0
- package/dist/simbut.css +1 -1
- package/dist/simbut.iife.js +10 -10
- package/dist/simbut.js +1 -1
- package/dist/simrel/index.d.ts +3 -59
- package/dist/simrel/renderers/default.d.ts +40 -0
- package/dist/simrel/runtime.d.ts +59 -0
- package/dist/simrel-DJZ983BF.js +513 -0
- package/dist/simrel-runtime.js +8 -0
- package/dist/simrel.css +3 -0
- package/dist/simrel.iife.js +38 -38
- package/dist/simrel.js +8 -6
- package/dist/widget-base-2-B1Ch5I.js +578 -0
- package/package.json +22 -1
- package/dist/common-C5e2gLuG.js +0 -387
- package/dist/locale-MM0U5eeR.js +0 -1109
- package/dist/native-webview-niMtkiHX.js +0 -586
- package/dist/qna-C5Ok3wd0.js +0 -663
- package/dist/schemas-JpRGzRQT.js +0 -4419
- package/dist/simbut-Cb5RfaAp.js +0 -79
- /package/dist/{price-formatter-CR6VT5z4.js → price-formatter-xI3g9Cd4.js} +0 -0
package/dist/simbut/index.d.ts
CHANGED
|
@@ -4,8 +4,10 @@ import { GengageChat } from '../chat/index.js';
|
|
|
4
4
|
import { SimButWidgetConfig } from './types.js';
|
|
5
5
|
export declare class GengageSimBut extends BaseWidget<SimButWidgetConfig> {
|
|
6
6
|
private _button;
|
|
7
|
+
private _inlineFrame;
|
|
7
8
|
private _label;
|
|
8
9
|
protected onInit(config: SimButWidgetConfig): Promise<void>;
|
|
10
|
+
private _createInlineCard;
|
|
9
11
|
protected onUpdate(_context: Partial<PageContext>): void;
|
|
10
12
|
hide(): void;
|
|
11
13
|
show(): void;
|
|
@@ -17,4 +19,4 @@ export declare class GengageSimBut extends BaseWidget<SimButWidgetConfig> {
|
|
|
17
19
|
setChat(chat: GengageChat | null): void;
|
|
18
20
|
}
|
|
19
21
|
export declare function createSimButWidget(): GengageSimBut;
|
|
20
|
-
export type { SimButWidgetConfig, SimButI18n } from './types.js';
|
|
22
|
+
export type { SimButWidgetConfig, SimButI18n, SimButInlineCardConfig, SimButLayout } from './types.js';
|
package/dist/simbut/types.d.ts
CHANGED
|
@@ -3,12 +3,23 @@ import { GengageChat } from '../chat/index.js';
|
|
|
3
3
|
export interface SimButI18n {
|
|
4
4
|
findSimilarLabel: string;
|
|
5
5
|
}
|
|
6
|
+
export type SimButLayout = 'overlay' | 'inline-card';
|
|
7
|
+
export interface SimButInlineCardConfig {
|
|
8
|
+
title?: string;
|
|
9
|
+
description?: string;
|
|
10
|
+
imageUrl?: string;
|
|
11
|
+
imageAlt?: string;
|
|
12
|
+
}
|
|
6
13
|
export interface SimButWidgetConfig extends BaseWidgetConfig {
|
|
7
14
|
/**
|
|
8
15
|
* Ürün görselinin (veya onun `position: relative` saran kutusunun) DOM öğesi.
|
|
9
16
|
* Düğme bu kutuya göre `absolute` konumlanır; akışta ekstra yer kaplamaz.
|
|
10
17
|
*/
|
|
11
18
|
mountTarget: HTMLElement | string;
|
|
19
|
+
/** Visual layout. Defaults to the existing product-image overlay pill. */
|
|
20
|
+
layout?: SimButLayout;
|
|
21
|
+
/** Content used by `layout: 'inline-card'`. Ignored for overlay layout. */
|
|
22
|
+
inlineCard?: SimButInlineCardConfig;
|
|
12
23
|
/**
|
|
13
24
|
* Ürün SKU. Verilmezse `pageContext.sku` kullanılır (overlay güncellemeleriyle birlikte).
|
|
14
25
|
*/
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { t as m } from "./widget-base-2-B1Ch5I.js";
|
|
2
|
+
import { A as h, D as u, _ as f, j as p, v as b } from "./context-DGz5F81j.js";
|
|
3
|
+
import { t as _ } from "./locale-CfqNifrU.js";
|
|
4
|
+
var g = { findSimilarLabel: "Benzerlerini Bul" }, y = { findSimilarLabel: "Find Similar" };
|
|
5
|
+
function S(t, n) {
|
|
6
|
+
return n?.findSimilarLabel ? n.findSimilarLabel : (t ?? "tr").toLowerCase().startsWith("en") ? y.findSimilarLabel : g.findSimilarLabel;
|
|
7
|
+
}
|
|
8
|
+
function d(t) {
|
|
9
|
+
const n = typeof t.sku == "string" && t.sku.length > 0 ? t.sku : void 0, i = typeof t.pageContext?.sku == "string" && t.pageContext.sku.length > 0 ? t.pageContext.sku : void 0;
|
|
10
|
+
return n ?? i;
|
|
11
|
+
}
|
|
12
|
+
var C = class extends m {
|
|
13
|
+
constructor(...t) {
|
|
14
|
+
super(...t), this._button = null, this._inlineFrame = null, this._label = g.findSimilarLabel;
|
|
15
|
+
}
|
|
16
|
+
async onInit(t) {
|
|
17
|
+
this._label = S(t.locale, t.i18n);
|
|
18
|
+
const n = t.layout ?? "overlay";
|
|
19
|
+
this.root.classList.add("gengage-simbut-root"), this.root.classList.toggle("gengage-simbut-root--overlay", n === "overlay"), this.root.classList.toggle("gengage-simbut-root--inline-card", n === "inline-card"), n === "overlay" && window.getComputedStyle(this.root).position === "static" && (this.root.style.position = "relative");
|
|
20
|
+
const i = document.createElement("button");
|
|
21
|
+
i.type = "button", i.className = "gengage-chat-find-similar-pill", i.lang = _(t.locale), i.textContent = this._label, this._button = i;
|
|
22
|
+
const c = () => {
|
|
23
|
+
i.disabled = !(d(this.config) && (this.config.onFindSimilar || this.config.chat));
|
|
24
|
+
};
|
|
25
|
+
if (i.addEventListener("click", (l) => {
|
|
26
|
+
l.stopPropagation();
|
|
27
|
+
const s = d(this.config);
|
|
28
|
+
if (!s) return;
|
|
29
|
+
const o = this.config.imageUrl, a = typeof o == "string" && p(o) ? o : void 0;
|
|
30
|
+
if (u(this._label, "findSimilar"), f(s), this.config.onFindSimilar) {
|
|
31
|
+
this.config.onFindSimilar(a ? {
|
|
32
|
+
sku: s,
|
|
33
|
+
imageUrl: a
|
|
34
|
+
} : { sku: s });
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const r = this.config.chat;
|
|
38
|
+
if (!r) return;
|
|
39
|
+
const e = {
|
|
40
|
+
title: this._label,
|
|
41
|
+
type: "findSimilar",
|
|
42
|
+
payload: a ? {
|
|
43
|
+
sku: s,
|
|
44
|
+
image_url: a
|
|
45
|
+
} : { sku: s }
|
|
46
|
+
};
|
|
47
|
+
r.openWithAction(e, { sku: s });
|
|
48
|
+
}), n === "inline-card") {
|
|
49
|
+
const l = this._createInlineCard(t, i);
|
|
50
|
+
this._inlineFrame = l, this.root.appendChild(l);
|
|
51
|
+
} else this.root.appendChild(i);
|
|
52
|
+
c(), b("simbut");
|
|
53
|
+
}
|
|
54
|
+
_createInlineCard(t, n) {
|
|
55
|
+
const i = t.inlineCard, c = typeof i?.title == "string" ? i.title.trim() : "", l = typeof i?.description == "string" ? i.description.trim() : "", s = typeof i?.imageUrl == "string" ? i.imageUrl.trim() : "", o = document.createElement("section");
|
|
56
|
+
o.className = "gengage-simbut-inline-card", o.dataset.gengagePart = "simbut-inline-card";
|
|
57
|
+
const a = document.createElement("div");
|
|
58
|
+
if (a.className = "gengage-simbut-inline-copy", a.dataset.gengagePart = "simbut-inline-copy", c) {
|
|
59
|
+
const e = document.createElement("h4");
|
|
60
|
+
e.className = "gengage-simbut-inline-title", e.dataset.gengagePart = "simbut-inline-title", e.textContent = c, a.appendChild(e);
|
|
61
|
+
}
|
|
62
|
+
if (l) {
|
|
63
|
+
const e = document.createElement("p");
|
|
64
|
+
e.className = "gengage-simbut-inline-description", e.dataset.gengagePart = "simbut-inline-description", e.textContent = l, a.appendChild(e);
|
|
65
|
+
}
|
|
66
|
+
a.children.length > 0 && o.appendChild(a);
|
|
67
|
+
const r = document.createElement("div");
|
|
68
|
+
if (r.className = "gengage-simbut-inline-action", r.dataset.gengagePart = "simbut-inline-action", r.appendChild(n), o.appendChild(r), s && h(s)) {
|
|
69
|
+
const e = document.createElement("img");
|
|
70
|
+
e.className = "gengage-simbut-inline-image", e.dataset.gengagePart = "simbut-inline-image", e.src = s, e.alt = typeof i?.imageAlt == "string" ? i.imageAlt : "", e.loading = "lazy", e.addEventListener("error", () => {
|
|
71
|
+
e.style.display = "none";
|
|
72
|
+
}, { once: !0 }), o.appendChild(e);
|
|
73
|
+
}
|
|
74
|
+
return o;
|
|
75
|
+
}
|
|
76
|
+
onUpdate(t) {
|
|
77
|
+
if (!this._button) return;
|
|
78
|
+
const n = !!d(this.config) && (!!this.config.onFindSimilar || !!this.config.chat);
|
|
79
|
+
this._button.disabled = !n;
|
|
80
|
+
}
|
|
81
|
+
hide() {
|
|
82
|
+
this.isVisible && (this.isVisible = !1, this._inlineFrame && (this._inlineFrame.style.display = "none"), this._button && (this._button.style.display = "none"), this.onHide(), this.emit("hide"));
|
|
83
|
+
}
|
|
84
|
+
show() {
|
|
85
|
+
this.isVisible || (this.isVisible = !0, this._inlineFrame && (this._inlineFrame.style.display = ""), this._button && (this._button.style.display = ""), this.onShow(), this.emit("show"));
|
|
86
|
+
}
|
|
87
|
+
_cleanupRoot() {
|
|
88
|
+
}
|
|
89
|
+
onShow() {
|
|
90
|
+
}
|
|
91
|
+
onHide() {
|
|
92
|
+
}
|
|
93
|
+
onDestroy() {
|
|
94
|
+
this._inlineFrame?.remove(), this._inlineFrame = null, this._button?.remove(), this._button = null;
|
|
95
|
+
}
|
|
96
|
+
setChat(t) {
|
|
97
|
+
if (this.config.chat = t, this._button) {
|
|
98
|
+
const n = !!d(this.config) && (!!this.config.onFindSimilar || !!this.config.chat);
|
|
99
|
+
this._button.disabled = !n;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
function k() {
|
|
104
|
+
return new C();
|
|
105
|
+
}
|
|
106
|
+
export {
|
|
107
|
+
k as n,
|
|
108
|
+
C as t
|
|
109
|
+
};
|
package/dist/simbut.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
:where(:root,.gengage-chat-root,.gengage-qna-container,.gengage-simrel-container,.gengage-simbut-root){--ds-neutral-0:#fff;--ds-neutral-25:#fcfcfd;--ds-neutral-50:#f6f7fb;--ds-neutral-100:#f3f4f6;--ds-neutral-200:#e5e7eb;--ds-neutral-300:#d0d5dd;--ds-neutral-500:#667085;--ds-neutral-600:#475467;--ds-neutral-700:#344054;--ds-neutral-900:#111827;--ds-radius-2:8px;--ds-radius-3:12px;--ds-radius-4:16px;--ds-radius-5:20px;--ds-radius-6:24px;--ds-radius-pill:999px;--ds-shadow-1:0 1px 2px #1018280a, 0 1px 3px #1018280f;--ds-shadow-2:0 4px 12px #10182814;--ds-shadow-3:0 10px 24px #1018281f;--client-primary:var(--gengage-primary-color,#b7102a);--client-primary-hover:var(--gengage-primary-hover,color-mix(in srgb, var(--client-primary) 88%, black 12%));--client-primary-active:var(--gengage-primary-active,color-mix(in srgb, var(--client-primary) 78%, black 22%));--client-primary-subtle:color-mix(in srgb, var(--client-primary) 12%, white);--client-primary-soft:color-mix(in srgb, var(--client-primary) 20%, white);--client-on-primary:var(--gengage-primary-foreground,#fff);--client-focus-ring:color-mix(in srgb, var(--client-primary) 32%, transparent);--ai-accent-start:#0b24d6;--ai-accent-end:#f768f2;--ai-accent-soft:linear-gradient(135deg, #0b24d614, #f768f214);--surface-page:var(--gengage-page-bg,var(--ds-neutral-50));--surface-shell:var(--gengage-shell-bg,#10131a);--surface-card:var(--gengage-background-color,var(--ds-neutral-0));--surface-card-muted:var(--gengage-surface-soft,#f8fafc);--surface-card-soft:var(--surface-card-muted);--surface-elevated:var(--gengage-surface-elevated,var(--ds-neutral-0));--surface-input:var(--gengage-input-bg,var(--ds-neutral-0));--surface-overlay:var(--gengage-overlay-bg,#10131a85);--text-primary:var(--gengage-foreground-color,var(--ds-neutral-900));--text-secondary:var(--gengage-text-secondary,#4b5563);--text-muted:var(--gengage-text-muted,#6b7280);--text-inverse:var(--gengage-text-inverse,#f9fafb);--border-subtle:var(--gengage-border-subtle,#1118270f);--border-default:var(--gengage-border-color,#1118271a);--border-strong:var(--gengage-border-strong,#1118272e);--shadow-1:var(--gengage-shadow-1,var(--ds-shadow-1));--shadow-2:var(--gengage-shadow-2,var(--ds-shadow-2));--shadow-3:var(--gengage-shadow-3,var(--ds-shadow-3));--radius-control:var(--gengage-control-radius,var(--ds-radius-3));--radius-card:var(--gengage-card-radius,var(--ds-radius-4));--radius-panel:var(--gengage-panel-radius,var(--ds-radius-6));--radius-pill:var(--gengage-pill-radius,var(--ds-radius-pill));--success:var(--gengage-success-color,#16a34a);--warning:var(--gengage-warning-color,#d97706);--error:var(--gengage-error-color,#dc2626);--info:var(--gengage-info-color,#2563eb);--rating:var(--gengage-rating-color,#f5b301);--gengage-primary:var(--client-primary);--gengage-primary-soft:var(--client-primary-soft);--gengage-primary-subtle:var(--client-primary-subtle);--gengage-text-color:var(--text-primary);--gengage-text-secondary:var(--text-secondary);--gengage-hover-color:var(--surface-card-soft);--ds-button-primary-bg:var(--client-primary);--ds-button-primary-bg-hover:var(--client-primary-hover);--ds-button-primary-bg-active:var(--client-primary-active);--ds-button-primary-fg:var(--client-on-primary);--ds-button-primary-border:color-mix(in srgb, var(--client-primary) 82%, black 18%);--ds-button-secondary-bg:var(--surface-card);--ds-button-secondary-bg-hover:var(--client-primary-subtle);--ds-button-secondary-fg:var(--client-primary);--ds-button-secondary-border:color-mix(in srgb, var(--client-primary) 26%, white);--ds-button-ghost-bg:var(--surface-card-muted);--ds-button-ghost-bg-hover:var(--ds-button-ghost-bg);--ds-button-ghost-fg:var(--text-primary);--ds-button-ghost-fg-hover:var(--client-primary);--ds-button-ghost-border:var(--border-default);--ds-button-ghost-border-hover:color-mix(in srgb, var(--client-primary) 18%, white);--ds-panel-bg:var(--surface-card);--ds-panel-border:var(--border-default);--ds-panel-shadow:var(--shadow-1);--ds-panel-radius:var(--radius-panel);--ds-header-bg:var(--surface-card);--ds-header-fg:var(--text-primary);--ds-header-muted:var(--text-muted);--ds-header-border:var(--border-default);--ds-card-bg:var(--surface-card);--ds-card-bg-soft:var(--surface-card-muted);--ds-card-border:var(--border-default);--ds-card-shadow:var(--shadow-1);--ds-card-shadow-hover:var(--shadow-2);--ds-card-radius:var(--radius-card);--ds-card-border-hover:color-mix(in srgb, var(--client-primary) 14%, var(--border-default));--ds-card-bg-hover:color-mix(in srgb, var(--client-primary) 2%, var(--surface-card));--ds-product-card-media-bg:var(--surface-card-muted);--ds-product-card-media-border:var(--border-subtle);--ds-input-bg:var(--surface-input);--ds-input-border:var(--border-default);--ds-input-radius:16px;--ds-input-focus-border:color-mix(in srgb, var(--client-primary) 28%, white);--ds-input-focus-ring:0 0 0 4px var(--client-focus-ring);--ds-input-highlight:inset 0 1px 0 #fff9;--ds-chip-bg:var(--surface-card);--ds-chip-border:var(--border-default);--ds-chip-fg:var(--text-secondary);--ds-chip-bg-hover:var(--surface-card-muted);--ds-chip-bg-active:color-mix(in srgb, var(--client-primary) 8%, white);--ds-chip-border-active:color-mix(in srgb, var(--client-primary) 30%, white);--ds-chip-fg-active:var(--client-primary);--ds-tab-bg:var(--surface-card);--ds-tab-bg-hover:var(--surface-card-muted);--ds-tab-bg-active:color-mix(in srgb, var(--client-primary) 8%, white);--ds-tab-border:var(--border-default);--ds-tab-border-active:color-mix(in srgb, var(--client-primary) 26%, white);--ds-tab-fg:var(--text-secondary);--ds-tab-fg-active:var(--client-primary);--ds-badge-brand-bg:color-mix(in srgb, var(--client-primary) 10%, white);--ds-badge-brand-border:color-mix(in srgb, var(--client-primary) 18%, white);--ds-badge-brand-fg:var(--client-primary);--ds-message-user-bg:color-mix(in srgb, var(--client-primary) 10%, white);--ds-message-user-fg:var(--text-primary);--ds-message-user-border:color-mix(in srgb, var(--client-primary) 18%, var(--border-default));--ds-message-user-shadow:none;--ds-message-assistant-bg:var(--surface-card-soft);--ds-message-assistant-fg:var(--text-primary);--ds-message-assistant-border:var(--border-default);--ds-message-assistant-shadow:none;--ds-message-active-outline:color-mix(in srgb, var(--client-primary) 68%, white);--ds-progress-card-border:var(--border-subtle);--ds-progress-mark-bg:color-mix(in srgb, var(--ai-accent-start) 8%, var(--surface-card));--ds-progress-mark-border:color-mix(in srgb, var(--ai-accent-start) 12%, var(--border-default));--ds-progress-scrollbar-thumb:color-mix(in srgb, var(--text-primary) 18%, transparent);--ds-toast-error-bg:color-mix(in srgb, var(--error) 5%, var(--surface-card));--ds-toast-error-border:color-mix(in srgb, var(--error) 18%, var(--border-default));--ds-toast-error-accent:var(--error);--ds-toast-error-fg:color-mix(in srgb, var(--error) 22%, var(--text-primary));--ds-toast-error-shadow:var(--shadow-3);--ds-comparison-table-bg:var(--surface-card);--ds-comparison-table-border:var(--border-default);--ds-comparison-table-header-bg:var(--surface-card-muted);--ds-comparison-table-header-fg:var(--text-muted);--ds-comparison-table-row-border:var(--border-subtle);--ds-comparison-table-winner-bg:color-mix(in srgb, var(--client-primary) 6%, white);--ds-comparison-table-winner-fg:var(--client-primary)}:where(.gds-panel){background:var(--ds-panel-bg);border:1px solid var(--ds-panel-border);border-radius:var(--ds-panel-radius);box-shadow:var(--ds-panel-shadow)}:where(.gengage-qna-panel,.gengage-chat-panel-topbar,.gengage-chat-chat-header,.gengage-chat-panel-ai-zone>.gengage-chat-ai-top-picks,.gengage-chat-grounding-review){border-color:var(--ds-panel-border)}:where(.gds-btn){border-radius:var(--radius-control);min-height:46px;font:inherit;cursor:pointer;border:0;outline:none;justify-content:center;align-items:center;gap:10px;padding:0 18px;font-weight:700;transition:box-shadow .15s,border-color .15s,background-color .15s,color .15s;display:inline-flex}:where(.gds-btn:hover){transform:none}:where(.gds-btn:focus-visible){outline:2px solid var(--client-focus-ring);outline-offset:2px}:where(.gds-btn:disabled){cursor:not-allowed;opacity:.56;box-shadow:none}:where(.gds-btn-primary){background:var(--ds-button-primary-bg);color:var(--ds-button-primary-fg);border:1px solid var(--ds-button-primary-border)}:where(.gds-btn-primary:hover){background:var(--ds-button-primary-bg-hover)}:where(.gds-btn-secondary){background:var(--ds-button-secondary-bg);color:var(--ds-button-secondary-fg);border:1px solid var(--ds-button-secondary-border)}:where(.gds-btn-secondary:hover){background:var(--ds-button-secondary-bg-hover)}:where(.gds-btn-ghost){background:var(--ds-button-ghost-bg);color:var(--ds-button-ghost-fg);border:1px solid var(--ds-button-ghost-border)}:where(.gds-btn-ghost:hover){background:var(--ds-button-ghost-bg-hover);border-color:var(--ds-button-ghost-border-hover);color:var(--ds-button-ghost-fg-hover)}:where(.gds-chip){border-radius:var(--radius-pill);border:1px solid var(--ds-chip-border);background:var(--ds-chip-bg);color:var(--ds-chip-fg);align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:700;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s;display:inline-flex}:where(.gds-chip:hover){background:var(--ds-chip-bg-hover);border-color:color-mix(in srgb, var(--client-primary) 16%, var(--ds-chip-border))}:where(.gds-chip:focus-visible){outline:2px solid var(--client-focus-ring);outline-offset:2px}:where(.gds-chip-active){border-color:var(--ds-chip-border-active);background:var(--ds-chip-bg-active);color:var(--ds-chip-fg-active)}:where(.gds-badge){border-radius:var(--radius-pill);letter-spacing:.04em;align-items:center;min-height:28px;padding:0 10px;font-size:11px;font-weight:800;display:inline-flex}:where(.gds-badge-brand){background:var(--ds-badge-brand-bg);color:var(--ds-badge-brand-fg);border:1px solid var(--ds-badge-brand-border)}:where(.gds-shell-header){background:var(--ds-header-bg);color:var(--ds-header-fg);border-bottom:1px solid var(--ds-header-border);box-shadow:none;justify-content:space-between;align-items:center;gap:14px;padding:14px 16px;display:flex}:where(.gds-shell-header [data-gengage-part=chat-header-powered-by]){color:var(--ds-header-muted)}:where(.gds-icon-btn){border-radius:var(--radius-control);width:42px;min-width:42px;height:42px;min-height:42px;padding:0}:where(.gds-input-shell){border-radius:var(--ds-input-radius);border:1px solid var(--ds-input-border);background:var(--ds-input-bg);min-height:52px;box-shadow:var(--ds-input-highlight);align-items:center;gap:12px;padding:6px 6px 6px 14px;transition:border-color .15s,box-shadow .15s,background-color .15s;display:flex}:where(.gds-input-shell:focus-within){border-color:var(--ds-input-focus-border);box-shadow:var(--ds-input-focus-ring)}:where(.gds-tab){border-radius:var(--radius-pill);border:1px solid var(--ds-tab-border);background:var(--ds-tab-bg);color:var(--ds-tab-fg);align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:700;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}:where(.gds-tab:hover){background:var(--ds-tab-bg-hover)}:where(.gds-tab:focus-visible){outline:2px solid var(--client-focus-ring);outline-offset:2px}:where(.gds-tab[aria-selected=true],.gds-tab.is-active){color:var(--ds-tab-fg-active);border-color:var(--ds-tab-border-active);background:var(--ds-tab-bg-active)}:where(.gds-toolbar){flex-wrap:wrap;align-items:center;gap:10px;display:flex}:where(.gds-toolbar-compact){gap:8px}:where(.gds-card){background:var(--ds-card-bg);border:1px solid var(--ds-card-border);border-radius:var(--ds-card-radius);box-shadow:var(--ds-card-shadow);transition:border-color .15s,box-shadow .15s,background-color .15s}:where(.gds-card-interactive),:where(.gds-clickable){cursor:pointer}:where(.gds-card-interactive:hover){background:var(--ds-card-bg-hover);border-color:var(--ds-card-border-hover);box-shadow:var(--ds-card-shadow-hover)}:where(.gds-card-soft){background:var(--ds-card-bg-soft)}:where(.gds-product-card){border-radius:16px}:where(.gds-evidence-card){background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-control);box-shadow:var(--shadow-1)}:where(.gds-evidence-card-success){background:color-mix(in srgb, var(--success) 10%, white);border-color:color-mix(in srgb, var(--success) 22%, var(--border-default))}:where(.gds-evidence-card-danger){background:color-mix(in srgb, var(--error) 8%, white);border-color:color-mix(in srgb, var(--error) 20%, var(--border-default))}:where(.gds-evidence-card-warning){background:color-mix(in srgb, var(--warning) 10%, white);border-color:color-mix(in srgb, var(--warning) 22%, var(--border-default))}:where(.gds-message){border-radius:calc(var(--radius-control) + 4px);word-wrap:break-word;overflow-wrap:break-word;border:1px solid #0000;max-width:85%;padding:14px 16px;font-size:14px;font-weight:400;line-height:1.55;animation:.3s cubic-bezier(.2,.7,.2,1) gengage-chat-msg-in}:where(.gds-message-user){background:var(--ds-message-user-bg);color:var(--ds-message-user-fg);border-color:var(--ds-message-user-border);box-shadow:var(--ds-message-user-shadow);border-bottom-right-radius:6px;align-self:flex-end}:where(.gds-message-assistant){background:var(--ds-message-assistant-bg);color:var(--ds-message-assistant-fg);border-color:var(--ds-message-assistant-border);box-shadow:var(--ds-message-assistant-shadow);border-bottom-left-radius:6px;align-self:flex-start;min-width:120px}:where(.gds-message-active){outline:2px solid var(--ds-message-active-outline);outline-offset:-2px}:where(.gds-ai-card){background:var(--surface-card);border:1px solid var(--ds-progress-card-border);border-radius:20px;gap:16px;padding:18px;display:grid}:where(.gds-ai-mark){background:var(--ds-progress-mark-bg);width:42px;height:42px;color:var(--ai-accent-start);border:1px solid var(--ds-progress-mark-border);border-radius:14px;place-items:center;display:grid}:where(.gds-ai-loader-row){align-items:center;gap:12px;display:flex}:where(.gds-progress-loader){border:1px solid color-mix(in srgb, var(--ai-accent-start) 10%, var(--border-default));background:linear-gradient(110deg, var(--surface-card-soft) 8%, color-mix(in srgb, var(--ai-accent-start) 5%, var(--surface-card)) 18%, var(--surface-card-soft) 33%);width:fit-content;max-width:100%;color:var(--text-secondary);background-size:220% 100%;border-radius:14px;align-items:center;gap:10px;padding:8px 14px;animation:1.8s linear infinite gds-progress-shimmer;display:inline-flex}:where(.gds-progress-loader-chat){box-sizing:border-box;align-self:flex-start;width:100%;min-width:0;max-width:85%;display:flex}:where(.gds-progress-loader-chat) .gds-progress-label{overflow-wrap:anywhere;flex:auto;min-width:0}:where(.gds-progress-loader-panel){box-sizing:border-box;justify-content:flex-start;align-items:center;width:100%;min-width:0;max-width:100%;display:flex}:where(.gds-progress-loader-panel) .gds-progress-label{overflow-wrap:anywhere;flex:auto;min-width:0}:where(.gds-progress-label){min-width:0;color:var(--text-secondary);word-break:break-word;font-size:13px;line-height:1.5}:where(.gds-progress-dots){flex-shrink:0;align-items:center;gap:6px;display:inline-flex}:where(.gds-progress-dot){background:color-mix(in srgb, var(--ai-accent-start) 20%, var(--text-muted));border-radius:50%;width:8px;height:8px;animation:1.2s ease-in-out infinite gds-progress-dot-pulse;display:inline-block}:where(.gds-progress-dot:nth-child(2)){animation-delay:.2s}:where(.gds-progress-dot:nth-child(3)){animation-delay:.4s}:where(.gds-ai-status){border-radius:calc(var(--radius-control) + 2px);border:1px solid var(--border-default);background:var(--surface-card-muted);max-width:85%;color:var(--text-secondary);border-bottom-left-radius:6px;align-self:flex-start;align-items:center;gap:8px;padding:10px 14px;display:flex}:where(.gds-ai-status-text){color:var(--text-secondary);font-size:13px;font-style:italic}:where(.gds-ai-dot-loader){align-items:center;gap:5px;display:inline-flex}:where(.gds-ai-dot-loader span){background:color-mix(in srgb, var(--ai-accent-start) 38%, var(--text-muted));border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite gds-progress-dot-pulse;display:inline-block}:where(.gds-ai-dot-loader span:nth-child(2)){animation-delay:.2s}:where(.gds-ai-dot-loader span:nth-child(3)){animation-delay:.4s}:where(.gds-ai-spinner){border:2.5px solid var(--border-default);border-top-color:var(--ai-accent-start);border-radius:50%;flex-shrink:0;width:26px;height:26px;animation:.72s linear infinite gds-spin}@keyframes gds-spin{to{transform:rotate(360deg)}}@keyframes gds-progress-shimmer{0%{background-position:200% 0}to{background-position:-20% 0}}@keyframes gds-progress-dot-pulse{0%,to{opacity:.45;transform:scale(.7)}50%{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){:where(.gds-progress-loader){animation:none}:where(.gds-progress-dot){opacity:.85;animation:none;transform:scale(1)}:where(.gds-ai-spinner){animation:none}:where(.gds-ai-dot-loader span){opacity:.85;animation:none}}:where(.gds-menu){border-radius:var(--radius-card);border:1px solid var(--border-default);background:var(--surface-elevated);box-shadow:var(--shadow-3);padding:4px}:where(.gds-menu-option){border-radius:calc(var(--radius-control) - 4px);width:100%;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:8px 10px;font-size:12px;font-weight:500;line-height:1.25;transition:background-color .15s,color .15s;display:flex}:where(.gds-menu-option:hover){background:var(--surface-card-muted)}:where(.gds-menu-option:focus-visible){outline:2px solid var(--client-focus-ring);outline-offset:2px}:where(.gds-menu-option-active){background:var(--client-primary-subtle);color:var(--client-primary);font-weight:600}:where(.gds-comparison-table){border-collapse:separate;border-spacing:0;border:1px solid var(--ds-comparison-table-border);background:var(--ds-comparison-table-bg);border-radius:20px;width:100%;overflow:hidden}:where(.gds-comparison-table th,.gds-comparison-table td){text-align:left;border-bottom:1px solid var(--ds-comparison-table-row-border);padding:14px 16px;font-size:13px}:where(.gds-comparison-table th){background:var(--ds-comparison-table-header-bg);text-transform:uppercase;letter-spacing:.08em;color:var(--ds-comparison-table-header-fg);font-size:11px}:where(.gds-comparison-table tr:last-child td){border-bottom:0}:where(.gds-comparison-table-winner-cell){background:var(--ds-comparison-table-winner-bg);color:var(--ds-comparison-table-winner-fg);font-weight:800}.gengage-simbut-root{box-sizing:border-box;pointer-events:none;font-family:var(--gengage-font-family,"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);font-size:var(--gengage-font-size,14px);margin:0;padding:0;overflow:visible}.gengage-simbut-root .gengage-chat-find-similar-pill{z-index:5;border:1px solid var(--ds-button-primary-border);border-radius:var(--radius-pill,var(--gengage-qna-pill-radius,999px));background:var(--ds-button-primary-bg);min-height:32px;color:var(--ds-button-primary-fg);letter-spacing:.01em;white-space:nowrap;cursor:pointer;opacity:1;pointer-events:auto;box-shadow:var(--shadow-1);justify-content:center;align-items:center;padding:6px 12px;font-family:inherit;font-size:12px;font-weight:700;line-height:1.25;transition:filter .14s,transform .12s,opacity .2s,box-shadow .14s;display:inline-flex;position:absolute;top:8px;right:8px}.gengage-simbut-root .gengage-chat-find-similar-pill:not(:disabled):hover{background:var(--ds-button-primary-bg-hover);box-shadow:var(--shadow-2);transform:translateY(-1px)}.gengage-simbut-root .gengage-chat-find-similar-pill:not(:disabled):active{filter:brightness(.98);transform:translateY(0)scale(.988)}.gengage-simbut-root .gengage-chat-find-similar-pill:focus-visible{outline:2px solid var(--client-primary);outline-offset:2px}.gengage-simbut-root .gengage-chat-find-similar-pill:disabled{opacity:.5;cursor:not-allowed;filter:none;box-shadow:none;transform:none}
|
|
1
|
+
:where(:root,.gengage-chat-root,.gengage-qna-container,.gengage-simrel-container,.gengage-simbut-root){--ds-neutral-0:#fff;--ds-neutral-25:#fcfcfd;--ds-neutral-50:#f6f7fb;--ds-neutral-100:#f3f4f6;--ds-neutral-200:#e5e7eb;--ds-neutral-300:#d0d5dd;--ds-neutral-500:#667085;--ds-neutral-600:#475467;--ds-neutral-700:#344054;--ds-neutral-900:#111827;--ds-radius-2:8px;--ds-radius-3:12px;--ds-radius-4:16px;--ds-radius-5:20px;--ds-radius-6:24px;--ds-radius-pill:999px;--ds-shadow-1:0 1px 2px #1018280a, 0 1px 3px #1018280f;--ds-shadow-2:0 4px 12px #10182814;--ds-shadow-3:0 10px 24px #1018281f;--client-primary:var(--gengage-primary-color,#b7102a);--client-primary-hover:var(--gengage-primary-hover,color-mix(in srgb, var(--client-primary) 88%, black 12%));--client-primary-active:var(--gengage-primary-active,color-mix(in srgb, var(--client-primary) 78%, black 22%));--client-primary-subtle:color-mix(in srgb, var(--client-primary) 12%, white);--client-primary-soft:color-mix(in srgb, var(--client-primary) 20%, white);--client-on-primary:var(--gengage-primary-foreground,#fff);--client-focus-ring:color-mix(in srgb, var(--client-primary) 32%, transparent);--ai-accent-start:#0b24d6;--ai-accent-end:#f768f2;--ai-accent-soft:linear-gradient(135deg, #0b24d614, #f768f214);--surface-page:var(--gengage-page-bg,var(--ds-neutral-50));--surface-shell:var(--gengage-shell-bg,#10131a);--surface-card:var(--gengage-background-color,var(--ds-neutral-0));--surface-card-muted:var(--gengage-surface-soft,#f8fafc);--surface-card-soft:var(--surface-card-muted);--surface-elevated:var(--gengage-surface-elevated,var(--ds-neutral-0));--surface-input:var(--gengage-input-bg,var(--ds-neutral-0));--surface-overlay:var(--gengage-overlay-bg,#10131a85);--text-primary:var(--gengage-foreground-color,var(--ds-neutral-900));--text-secondary:var(--gengage-text-secondary,#4b5563);--text-muted:var(--gengage-text-muted,#6b7280);--text-inverse:var(--gengage-text-inverse,#f9fafb);--border-subtle:var(--gengage-border-subtle,#1118270f);--border-default:var(--gengage-border-color,#1118271a);--border-strong:var(--gengage-border-strong,#1118272e);--shadow-1:var(--gengage-shadow-1,var(--ds-shadow-1));--shadow-2:var(--gengage-shadow-2,var(--ds-shadow-2));--shadow-3:var(--gengage-shadow-3,var(--ds-shadow-3));--radius-control:var(--gengage-control-radius,var(--ds-radius-3));--radius-card:var(--gengage-card-radius,var(--ds-radius-4));--radius-panel:var(--gengage-panel-radius,var(--ds-radius-6));--radius-pill:var(--gengage-pill-radius,var(--ds-radius-pill));--success:var(--gengage-success-color,#16a34a);--warning:var(--gengage-warning-color,#d97706);--error:var(--gengage-error-color,#dc2626);--info:var(--gengage-info-color,#2563eb);--rating:var(--gengage-rating-color,#f5b301);--gengage-primary:var(--client-primary);--gengage-primary-soft:var(--client-primary-soft);--gengage-primary-subtle:var(--client-primary-subtle);--gengage-text-color:var(--text-primary);--gengage-text-secondary:var(--text-secondary);--gengage-hover-color:var(--surface-card-soft);--ds-button-primary-bg:var(--client-primary);--ds-button-primary-bg-hover:var(--client-primary-hover);--ds-button-primary-bg-active:var(--client-primary-active);--ds-button-primary-fg:var(--client-on-primary);--ds-button-primary-border:color-mix(in srgb, var(--client-primary) 82%, black 18%);--ds-button-secondary-bg:var(--surface-card);--ds-button-secondary-bg-hover:var(--client-primary-subtle);--ds-button-secondary-fg:var(--client-primary);--ds-button-secondary-border:color-mix(in srgb, var(--client-primary) 26%, white);--ds-button-ghost-bg:var(--surface-card-muted);--ds-button-ghost-bg-hover:var(--ds-button-ghost-bg);--ds-button-ghost-fg:var(--text-primary);--ds-button-ghost-fg-hover:var(--client-primary);--ds-button-ghost-border:var(--border-default);--ds-button-ghost-border-hover:color-mix(in srgb, var(--client-primary) 18%, white);--ds-panel-bg:var(--surface-card);--ds-panel-border:var(--border-default);--ds-panel-shadow:var(--shadow-1);--ds-panel-radius:var(--radius-panel);--ds-header-bg:var(--surface-card);--ds-header-fg:var(--text-primary);--ds-header-muted:var(--text-muted);--ds-header-border:var(--border-default);--ds-card-bg:var(--surface-card);--ds-card-bg-soft:var(--surface-card-muted);--ds-card-border:var(--border-default);--ds-card-shadow:var(--shadow-1);--ds-card-shadow-hover:var(--shadow-2);--ds-card-radius:var(--radius-card);--ds-card-border-hover:color-mix(in srgb, var(--client-primary) 14%, var(--border-default));--ds-card-bg-hover:color-mix(in srgb, var(--client-primary) 2%, var(--surface-card));--ds-product-card-media-bg:var(--surface-card-muted);--ds-product-card-media-border:var(--border-subtle);--ds-input-bg:var(--surface-input);--ds-input-border:var(--border-default);--ds-input-radius:16px;--ds-input-focus-border:color-mix(in srgb, var(--client-primary) 28%, white);--ds-input-focus-ring:0 0 0 4px var(--client-focus-ring);--ds-input-highlight:inset 0 1px 0 #fff9;--ds-chip-bg:var(--surface-card);--ds-chip-border:var(--border-default);--ds-chip-fg:var(--text-secondary);--ds-chip-bg-hover:var(--surface-card-muted);--ds-chip-bg-active:color-mix(in srgb, var(--client-primary) 8%, white);--ds-chip-border-active:color-mix(in srgb, var(--client-primary) 30%, white);--ds-chip-fg-active:var(--client-primary);--ds-tab-bg:var(--surface-card);--ds-tab-bg-hover:var(--surface-card-muted);--ds-tab-bg-active:color-mix(in srgb, var(--client-primary) 8%, white);--ds-tab-border:var(--border-default);--ds-tab-border-active:color-mix(in srgb, var(--client-primary) 26%, white);--ds-tab-fg:var(--text-secondary);--ds-tab-fg-active:var(--client-primary);--ds-badge-brand-bg:color-mix(in srgb, var(--client-primary) 10%, white);--ds-badge-brand-border:color-mix(in srgb, var(--client-primary) 18%, white);--ds-badge-brand-fg:var(--client-primary);--ds-message-user-bg:color-mix(in srgb, var(--client-primary) 10%, white);--ds-message-user-fg:var(--text-primary);--ds-message-user-border:color-mix(in srgb, var(--client-primary) 18%, var(--border-default));--ds-message-user-shadow:none;--ds-message-assistant-bg:var(--surface-card-soft);--ds-message-assistant-fg:var(--text-primary);--ds-message-assistant-border:var(--border-default);--ds-message-assistant-shadow:none;--ds-message-active-outline:color-mix(in srgb, var(--client-primary) 68%, white);--ds-progress-card-border:var(--border-subtle);--ds-progress-mark-bg:color-mix(in srgb, var(--ai-accent-start) 8%, var(--surface-card));--ds-progress-mark-border:color-mix(in srgb, var(--ai-accent-start) 12%, var(--border-default));--ds-progress-scrollbar-thumb:color-mix(in srgb, var(--text-primary) 18%, transparent);--ds-toast-error-bg:color-mix(in srgb, var(--error) 5%, var(--surface-card));--ds-toast-error-border:color-mix(in srgb, var(--error) 18%, var(--border-default));--ds-toast-error-accent:var(--error);--ds-toast-error-fg:color-mix(in srgb, var(--error) 22%, var(--text-primary));--ds-toast-error-shadow:var(--shadow-3);--ds-comparison-table-bg:var(--surface-card);--ds-comparison-table-border:var(--border-default);--ds-comparison-table-header-bg:var(--surface-card-muted);--ds-comparison-table-header-fg:var(--text-muted);--ds-comparison-table-row-border:var(--border-subtle);--ds-comparison-table-winner-bg:color-mix(in srgb, var(--client-primary) 6%, white);--ds-comparison-table-winner-fg:var(--client-primary)}:where(.gds-panel){background:var(--ds-panel-bg);border:1px solid var(--ds-panel-border);border-radius:var(--ds-panel-radius);box-shadow:var(--ds-panel-shadow)}:where(.gengage-qna-panel,.gengage-chat-panel-topbar,.gengage-chat-chat-header,.gengage-chat-panel-ai-zone>.gengage-chat-ai-top-picks,.gengage-chat-grounding-review){border-color:var(--ds-panel-border)}:where(.gds-btn){border-radius:var(--radius-control);min-height:46px;font:inherit;cursor:pointer;border:0;outline:none;justify-content:center;align-items:center;gap:10px;padding:0 18px;font-weight:700;transition:box-shadow .15s,border-color .15s,background-color .15s,color .15s;display:inline-flex}:where(.gds-btn:hover){transform:none}:where(.gds-btn:focus-visible){outline:2px solid var(--client-focus-ring);outline-offset:2px}:where(.gds-btn:disabled){cursor:not-allowed;opacity:.56;box-shadow:none}:where(.gds-btn-primary){background:var(--ds-button-primary-bg);color:var(--ds-button-primary-fg);border:1px solid var(--ds-button-primary-border)}:where(.gds-btn-primary:hover){background:var(--ds-button-primary-bg-hover)}:where(.gds-btn-secondary){background:var(--ds-button-secondary-bg);color:var(--ds-button-secondary-fg);border:1px solid var(--ds-button-secondary-border)}:where(.gds-btn-secondary:hover){background:var(--ds-button-secondary-bg-hover)}:where(.gds-btn-ghost){background:var(--ds-button-ghost-bg);color:var(--ds-button-ghost-fg);border:1px solid var(--ds-button-ghost-border)}:where(.gds-btn-ghost:hover){background:var(--ds-button-ghost-bg-hover);border-color:var(--ds-button-ghost-border-hover);color:var(--ds-button-ghost-fg-hover)}:where(.gds-chip){border-radius:var(--radius-pill);border:1px solid var(--ds-chip-border);background:var(--ds-chip-bg);color:var(--ds-chip-fg);align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:700;transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s;display:inline-flex}:where(.gds-chip:hover){background:var(--ds-chip-bg-hover);border-color:color-mix(in srgb, var(--client-primary) 16%, var(--ds-chip-border))}:where(.gds-chip:focus-visible){outline:2px solid var(--client-focus-ring);outline-offset:2px}:where(.gds-chip-active){border-color:var(--ds-chip-border-active);background:var(--ds-chip-bg-active);color:var(--ds-chip-fg-active)}:where(.gds-badge){border-radius:var(--radius-pill);letter-spacing:.04em;align-items:center;min-height:28px;padding:0 10px;font-size:11px;font-weight:800;display:inline-flex}:where(.gds-badge-brand){background:var(--ds-badge-brand-bg);color:var(--ds-badge-brand-fg);border:1px solid var(--ds-badge-brand-border)}:where(.gds-shell-header){background:var(--ds-header-bg);color:var(--ds-header-fg);border-bottom:1px solid var(--ds-header-border);box-shadow:none;justify-content:space-between;align-items:center;gap:14px;padding:14px 16px;display:flex}:where(.gds-shell-header [data-gengage-part=chat-header-powered-by]){color:var(--ds-header-muted)}:where(.gds-icon-btn){border-radius:var(--radius-control);width:42px;min-width:42px;height:42px;min-height:42px;padding:0}:where(.gds-input-shell){border-radius:var(--ds-input-radius);border:1px solid var(--ds-input-border);background:var(--ds-input-bg);min-height:52px;box-shadow:var(--ds-input-highlight);align-items:center;gap:12px;padding:6px 6px 6px 14px;transition:border-color .15s,box-shadow .15s,background-color .15s;display:flex}:where(.gds-input-shell:focus-within){border-color:var(--ds-input-focus-border);box-shadow:var(--ds-input-focus-ring)}:where(.gds-tab){border-radius:var(--radius-pill);border:1px solid var(--ds-tab-border);background:var(--ds-tab-bg);color:var(--ds-tab-fg);align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:700;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex}:where(.gds-tab:hover){background:var(--ds-tab-bg-hover)}:where(.gds-tab:focus-visible){outline:2px solid var(--client-focus-ring);outline-offset:2px}:where(.gds-tab[aria-selected=true],.gds-tab.is-active){color:var(--ds-tab-fg-active);border-color:var(--ds-tab-border-active);background:var(--ds-tab-bg-active)}:where(.gds-toolbar){flex-wrap:wrap;align-items:center;gap:10px;display:flex}:where(.gds-toolbar-compact){gap:8px}:where(.gds-card){background:var(--ds-card-bg);border:1px solid var(--ds-card-border);border-radius:var(--ds-card-radius);box-shadow:var(--ds-card-shadow);transition:border-color .15s,box-shadow .15s,background-color .15s}:where(.gds-card-interactive),:where(.gds-clickable){cursor:pointer}:where(.gds-card-interactive:hover){background:var(--ds-card-bg-hover);border-color:var(--ds-card-border-hover);box-shadow:var(--ds-card-shadow-hover)}:where(.gds-card-soft){background:var(--ds-card-bg-soft)}:where(.gds-product-card){border-radius:16px}:where(.gds-evidence-card){background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-control);box-shadow:var(--shadow-1)}:where(.gds-evidence-card-success){background:color-mix(in srgb, var(--success) 10%, white);border-color:color-mix(in srgb, var(--success) 22%, var(--border-default))}:where(.gds-evidence-card-danger){background:color-mix(in srgb, var(--error) 8%, white);border-color:color-mix(in srgb, var(--error) 20%, var(--border-default))}:where(.gds-evidence-card-warning){background:color-mix(in srgb, var(--warning) 10%, white);border-color:color-mix(in srgb, var(--warning) 22%, var(--border-default))}:where(.gds-message){border-radius:calc(var(--radius-control) + 4px);word-wrap:break-word;overflow-wrap:break-word;border:1px solid #0000;max-width:85%;padding:14px 16px;font-size:14px;font-weight:400;line-height:1.55;animation:.3s cubic-bezier(.2,.7,.2,1) gengage-chat-msg-in}:where(.gds-message-user){background:var(--ds-message-user-bg);color:var(--ds-message-user-fg);border-color:var(--ds-message-user-border);box-shadow:var(--ds-message-user-shadow);border-bottom-right-radius:6px;align-self:flex-end}:where(.gds-message-assistant){background:var(--ds-message-assistant-bg);color:var(--ds-message-assistant-fg);border-color:var(--ds-message-assistant-border);box-shadow:var(--ds-message-assistant-shadow);border-bottom-left-radius:6px;align-self:flex-start;min-width:120px}:where(.gds-message-active){outline:2px solid var(--ds-message-active-outline);outline-offset:-2px}:where(.gds-ai-card){background:var(--surface-card);border:1px solid var(--ds-progress-card-border);border-radius:20px;gap:16px;padding:18px;display:grid}:where(.gds-ai-mark){background:var(--ds-progress-mark-bg);width:42px;height:42px;color:var(--ai-accent-start);border:1px solid var(--ds-progress-mark-border);border-radius:14px;place-items:center;display:grid}:where(.gds-ai-loader-row){align-items:center;gap:12px;display:flex}:where(.gds-progress-loader){border:1px solid color-mix(in srgb, var(--ai-accent-start) 10%, var(--border-default));background:linear-gradient(110deg, var(--surface-card-soft) 8%, color-mix(in srgb, var(--ai-accent-start) 5%, var(--surface-card)) 18%, var(--surface-card-soft) 33%);width:fit-content;max-width:100%;color:var(--text-secondary);background-size:220% 100%;border-radius:14px;align-items:center;gap:10px;padding:8px 14px;animation:1.8s linear infinite gds-progress-shimmer;display:inline-flex}:where(.gds-progress-loader-chat){box-sizing:border-box;align-self:flex-start;width:100%;min-width:0;max-width:85%;display:flex}:where(.gds-progress-loader-chat) .gds-progress-label{overflow-wrap:anywhere;flex:auto;min-width:0}:where(.gds-progress-loader-panel){box-sizing:border-box;justify-content:flex-start;align-items:center;width:100%;min-width:0;max-width:100%;display:flex}:where(.gds-progress-loader-panel) .gds-progress-label{overflow-wrap:anywhere;flex:auto;min-width:0}:where(.gds-progress-label){min-width:0;color:var(--text-secondary);word-break:break-word;font-size:13px;line-height:1.5}:where(.gds-progress-dots){flex-shrink:0;align-items:center;gap:6px;display:inline-flex}:where(.gds-progress-dot){background:color-mix(in srgb, var(--ai-accent-start) 20%, var(--text-muted));border-radius:50%;width:8px;height:8px;animation:1.2s ease-in-out infinite gds-progress-dot-pulse;display:inline-block}:where(.gds-progress-dot:nth-child(2)){animation-delay:.2s}:where(.gds-progress-dot:nth-child(3)){animation-delay:.4s}:where(.gds-ai-status){border-radius:calc(var(--radius-control) + 2px);border:1px solid var(--border-default);background:var(--surface-card-muted);max-width:85%;color:var(--text-secondary);border-bottom-left-radius:6px;align-self:flex-start;align-items:center;gap:8px;padding:10px 14px;display:flex}:where(.gds-ai-status-text){color:var(--text-secondary);font-size:13px;font-style:italic}:where(.gds-ai-dot-loader){align-items:center;gap:5px;display:inline-flex}:where(.gds-ai-dot-loader span){background:color-mix(in srgb, var(--ai-accent-start) 38%, var(--text-muted));border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite gds-progress-dot-pulse;display:inline-block}:where(.gds-ai-dot-loader span:nth-child(2)){animation-delay:.2s}:where(.gds-ai-dot-loader span:nth-child(3)){animation-delay:.4s}:where(.gds-ai-spinner){border:2.5px solid var(--border-default);border-top-color:var(--ai-accent-start);border-radius:50%;flex-shrink:0;width:26px;height:26px;animation:.72s linear infinite gds-spin}@keyframes gds-spin{to{transform:rotate(360deg)}}@keyframes gds-progress-shimmer{0%{background-position:200% 0}to{background-position:-20% 0}}@keyframes gds-progress-dot-pulse{0%,to{opacity:.45;transform:scale(.7)}50%{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){:where(.gds-progress-loader){animation:none}:where(.gds-progress-dot){opacity:.85;animation:none;transform:scale(1)}:where(.gds-ai-spinner){animation:none}:where(.gds-ai-dot-loader span){opacity:.85;animation:none}}:where(.gds-menu){border-radius:var(--radius-card);border:1px solid var(--border-default);background:var(--surface-elevated);box-shadow:var(--shadow-3);padding:4px}:where(.gds-menu-option){border-radius:calc(var(--radius-control) - 4px);width:100%;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:8px 10px;font-size:12px;font-weight:500;line-height:1.25;transition:background-color .15s,color .15s;display:flex}:where(.gds-menu-option:hover){background:var(--surface-card-muted)}:where(.gds-menu-option:focus-visible){outline:2px solid var(--client-focus-ring);outline-offset:2px}:where(.gds-menu-option-active){background:var(--client-primary-subtle);color:var(--client-primary);font-weight:600}:where(.gds-comparison-table){border-collapse:separate;border-spacing:0;border:1px solid var(--ds-comparison-table-border);background:var(--ds-comparison-table-bg);border-radius:20px;width:100%;overflow:hidden}:where(.gds-comparison-table th,.gds-comparison-table td){text-align:left;border-bottom:1px solid var(--ds-comparison-table-row-border);padding:14px 16px;font-size:13px}:where(.gds-comparison-table th){background:var(--ds-comparison-table-header-bg);text-transform:uppercase;letter-spacing:.08em;color:var(--ds-comparison-table-header-fg);font-size:11px}:where(.gds-comparison-table tr:last-child td){border-bottom:0}:where(.gds-comparison-table-winner-cell){background:var(--ds-comparison-table-winner-bg);color:var(--ds-comparison-table-winner-fg);font-weight:800}.gengage-simbut-root{box-sizing:border-box;pointer-events:none;font-family:var(--gengage-font-family,"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif);font-size:var(--gengage-font-size,14px);margin:0;padding:0;overflow:visible}.gengage-simbut-root .gengage-chat-find-similar-pill{z-index:5;border:1px solid var(--ds-button-primary-border);border-radius:var(--radius-pill,var(--gengage-qna-pill-radius,999px));background:var(--ds-button-primary-bg);min-height:32px;color:var(--ds-button-primary-fg);letter-spacing:.01em;white-space:nowrap;cursor:pointer;opacity:1;pointer-events:auto;box-shadow:var(--shadow-1);justify-content:center;align-items:center;padding:6px 12px;font-family:inherit;font-size:12px;font-weight:700;line-height:1.25;transition:filter .14s,transform .12s,opacity .2s,box-shadow .14s;display:inline-flex;position:absolute;top:8px;right:8px}.gengage-simbut-root .gengage-chat-find-similar-pill:not(:disabled):hover{background:var(--ds-button-primary-bg-hover);box-shadow:var(--shadow-2);transform:translateY(-1px)}.gengage-simbut-root .gengage-chat-find-similar-pill:not(:disabled):active{filter:brightness(.98);transform:translateY(0)scale(.988)}.gengage-simbut-root .gengage-chat-find-similar-pill:focus-visible{outline:2px solid var(--client-primary);outline-offset:2px}.gengage-simbut-root .gengage-chat-find-similar-pill:disabled{opacity:.5;cursor:not-allowed;filter:none;box-shadow:none;transform:none}.gengage-simbut-root--inline-card{pointer-events:auto;width:100%;overflow:visible}.gengage-simbut-inline-card{box-sizing:border-box;align-items:start;gap:var(--gengage-simbut-inline-gap,16px);min-height:var(--gengage-simbut-inline-min-height,0);margin:var(--gengage-simbut-inline-margin,30px 0 0);padding:var(--gengage-simbut-inline-padding,20px 24px);border:var(--gengage-simbut-inline-border,0);border-radius:var(--gengage-simbut-inline-radius,6px);background:var(--gengage-simbut-inline-bg,#f6f6f6);color:var(--gengage-simbut-inline-color,var(--text-primary,#242424));pointer-events:auto;grid-template-columns:minmax(0,1fr) auto;display:grid;position:relative;overflow:visible}.gengage-simbut-inline-copy{min-width:0;padding-right:var(--gengage-simbut-inline-copy-padding-right,100px)}.gengage-simbut-inline-title{margin:var(--gengage-simbut-inline-title-margin,0 0 8px);color:var(--gengage-simbut-inline-title-color,var(--text-primary,#000));font-family:inherit;font-size:var(--gengage-simbut-inline-title-font-size,20px);font-weight:var(--gengage-simbut-inline-title-font-weight,700);line-height:var(--gengage-simbut-inline-title-line-height,1.25);letter-spacing:0}.gengage-simbut-inline-description{margin:var(--gengage-simbut-inline-description-margin,0);max-width:var(--gengage-simbut-inline-description-max-width,560px);color:var(--gengage-simbut-inline-description-color,var(--text-secondary,#4b5563));font-family:inherit;font-size:var(--gengage-simbut-inline-description-font-size,14px);font-weight:var(--gengage-simbut-inline-description-font-weight,400);line-height:var(--gengage-simbut-inline-description-line-height,1.45);letter-spacing:0}.gengage-simbut-inline-action{min-width:0;margin-top:var(--gengage-simbut-inline-action-margin-top,16px);grid-column:1}.gengage-simbut-inline-image{right:var(--gengage-simbut-inline-image-right,0);bottom:var(--gengage-simbut-inline-image-bottom,-5px);width:var(--gengage-simbut-inline-image-width,180px);max-width:var(--gengage-simbut-inline-image-max-width,42%);height:var(--gengage-simbut-inline-image-height,180px);object-fit:contain;pointer-events:none;position:absolute}.gengage-simbut-root--inline-card .gengage-chat-find-similar-pill{z-index:1;width:var(--gengage-simbut-inline-button-width,200px);max-width:100%;min-height:var(--gengage-simbut-inline-button-min-height,44px);padding:var(--gengage-simbut-inline-button-padding,0 20px);border:var(--gengage-simbut-inline-button-border,0);border-radius:var(--gengage-simbut-inline-button-radius,25px);background:var(--gengage-simbut-inline-button-bg,var(--ds-button-primary-bg));color:var(--gengage-simbut-inline-button-fg,var(--ds-button-primary-fg));font-size:var(--gengage-simbut-inline-button-font-size,12px);font-weight:var(--gengage-simbut-inline-button-font-weight,700);letter-spacing:0;box-shadow:var(--gengage-simbut-inline-button-shadow,none);position:static;inset:auto}.gengage-simbut-root--inline-card .gengage-chat-find-similar-pill:not(:disabled):hover{background:var(--gengage-simbut-inline-button-bg-hover,var(--ds-button-primary-bg-hover));box-shadow:var(--gengage-simbut-inline-button-shadow-hover,none)}@media (width<=1025px){.gengage-simbut-inline-card{padding:var(--gengage-simbut-inline-padding-compact,20px 18px)}.gengage-simbut-inline-copy{padding-right:var(--gengage-simbut-inline-copy-padding-right-compact,78px)}.gengage-simbut-inline-image{width:var(--gengage-simbut-inline-image-width-compact,140px);height:var(--gengage-simbut-inline-image-height-compact,140px)}.gengage-simbut-root--inline-card .gengage-chat-find-similar-pill{width:var(--gengage-simbut-inline-button-width-compact,150px)}}@media (prefers-reduced-motion:reduce){.gengage-simbut-inline-card,.gengage-simbut-root--inline-card .gengage-chat-find-similar-pill{transition:none!important;transform:none!important}}
|
package/dist/simbut.iife.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
(function(
|
|
2
|
-
#${
|
|
1
|
+
(function(m){Object.defineProperty(m,Symbol.toStringTag,{value:"Module"});function I(e,t){const i={event_name:"metering.summary",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,payload:{meter_key:t.meter_key,quantity:t.quantity,unit:t.unit}};return e.view_id!==void 0&&(i.view_id=e.view_id),e.user_id!==void 0&&(i.user_id=e.user_id),e.page_type!==void 0&&(i.page_type=e.page_type),e.sku!==void 0&&(i.sku=e.sku),i}function k(e,t){const i={event_name:"checkout.start",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,widget:t.attribution_source,payload:{attribution_source:t.attribution_source,attribution_action_id:t.attribution_action_id,cart_value:t.cart_value,currency:t.currency,line_items:t.line_items}};return e.view_id!==void 0&&(i.view_id=e.view_id),e.user_id!==void 0&&(i.user_id=e.user_id),e.page_type!==void 0&&(i.page_type=e.page_type),e.sku!==void 0&&(i.sku=e.sku),i}function T(e,t){const i={event_name:"checkout.complete",account_id:e.account_id,session_id:e.session_id,correlation_id:e.correlation_id,widget:t.attribution_source,payload:{attribution_source:t.attribution_source,attribution_action_id:t.attribution_action_id,cart_value:t.cart_value,currency:t.currency,line_items:t.line_items}};return e.view_id!==void 0&&(i.view_id=e.view_id),e.user_id!==void 0&&(i.user_id=e.user_id),e.page_type!==void 0&&(i.page_type=e.page_type),e.sku!==void 0&&(i.sku=e.sku),i}var _=["http:","https:"];function L(e){const t=e.trim();if(!t)return!1;if(t.startsWith("/")&&!t.startsWith("//"))return!0;try{return _.includes(new URL(t).protocol)}catch{return!1}}function F(e){if(e.startsWith("/")&&!e.startsWith("//"))return!0;try{const t=new URL(e);return _.includes(t.protocol)}catch{return!1}}function M(){return typeof window<"u"&&Array.isArray(window.dataLayer)}function p(e,t){const i={event:e,...t};M()&&window.dataLayer.push(i)}function U(e){p("gengage-on-init",{gengage_widget:e})}function $(e,t){p("gengage-suggested-question",{gengage_question_title:e,gengage_action_type:t})}function N(e){p("gengage-find-similars",{gengage_sku:e})}function y(e,t){const i=n=>{t(n.detail)};return window.addEventListener(e,i),()=>window.removeEventListener(e,i)}function R(){const e=window.__gengageSessionId??sessionStorage.getItem("gengage_session_id")??null??crypto.randomUUID();return window.__gengageSessionId=e,sessionStorage.setItem("gengage_session_id",e),window.gengage||(window.gengage={}),window.gengage.sessionId=e,e}function A(e){return{sessionId:e?.sessionId??R(),...e}}var v={"--gengage-chat-offset":"20px","--gengage-chat-launcher-size":"56px","--gengage-chat-width":"400px","--gengage-chat-shell-radius":"1rem","--gengage-chat-header-height":"72px","--gengage-chat-conversation-width":"396px","--gengage-chat-panel-min-width":"320px","--gengage-chat-panel-max-width":"1200px","--gengage-chat-input-height":"48px","--gengage-qna-pill-radius":"999px","--gengage-qna-input-radius":"12px","--gengage-simrel-card-radius":"0.75rem","--radius-control":"12px","--radius-card":"16px","--radius-panel":"24px","--radius-pill":"999px","--surface-card-muted":"#f8fafc","--text-secondary":"#4b5563","--text-muted":"#6b7280","--border-default":"rgba(17, 24, 39, 0.10)"};function B(e){return e?{...v,...e}:{...v}}var d={primaryColor:"#b7102a",primaryForeground:"#ffffff",backgroundColor:"#ffffff",foregroundColor:"#111827",borderRadius:"0.75rem",fontFamily:'"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',fontSize:"14px",zIndex:"1000","--glov-chatbot-width":"420px","--glov-left-spacing":"260px","--chatbot-padding":"16px","--root-wrapper-background-color":"#f8f9fa","--root-wrapper-border-color":"#edeeef","--gengage-chat-width":"400px","--gengage-chat-shell-radius":"1rem","--gengage-chat-header-height":"72px","--gengage-chat-conversation-width":"396px","--gengage-chat-panel-min-width":"320px","--gengage-chat-panel-max-width":"1200px","--gengage-chat-input-height":"48px","--gengage-qna-pill-radius":"999px","--gengage-qna-input-radius":"0.75rem","--gengage-simrel-card-radius":"0.75rem","--client-primary":"#b7102a","--client-primary-hover":"color-mix(in srgb, #b7102a 88%, black 12%)","--client-primary-active":"color-mix(in srgb, #b7102a 78%, black 22%)","--client-primary-subtle":"color-mix(in srgb, #b7102a 12%, white)","--client-primary-soft":"color-mix(in srgb, #b7102a 20%, white)","--client-on-primary":"#ffffff","--client-focus-ring":"color-mix(in srgb, #b7102a 32%, transparent)","--surface-page":"#f6f7fb","--surface-shell":"#10131a","--surface-card":"#ffffff","--surface-card-muted":"#f8fafc","--surface-card-soft":"#f8fafc","--surface-elevated":"#ffffff","--surface-input":"#ffffff","--surface-overlay":"rgba(16, 19, 26, 0.52)","--text-primary":"#111827","--text-secondary":"#4b5563","--text-muted":"#6b7280","--text-inverse":"#f9fafb","--border-subtle":"rgba(17, 24, 39, 0.06)","--border-default":"rgba(17, 24, 39, 0.10)","--border-strong":"rgba(17, 24, 39, 0.18)","--shadow-1":"0 1px 2px rgba(16, 24, 40, 0.04), 0 1px 3px rgba(16, 24, 40, 0.06)","--shadow-2":"0 4px 12px rgba(16, 24, 40, 0.08)","--shadow-3":"0 10px 24px rgba(16, 24, 40, 0.12)","--radius-control":"12px","--radius-card":"16px","--radius-panel":"24px","--radius-pill":"999px","--success":"#16a34a","--warning":"#d97706","--error":"#dc2626","--info":"#2563eb","--rating":"#f5b301","--ai-accent-start":"#0b24d6","--ai-accent-end":"#f768f2","--ai-accent-soft":"linear-gradient(135deg, rgba(11, 36, 214, 0.08), rgba(247, 104, 242, 0.08))"},l="gengage-global-toast-root",w="gengage-global-toast-style",b="gengage-global-toast-root--visible",D=4200,W=1500,P=15e3,V=["--gengage-font-family","--surface-card","--text-primary","--text-muted","--border-default","--radius-card","--shadow-3","--error","--ds-toast-error-bg","--ds-toast-error-border","--ds-toast-error-accent","--ds-toast-error-fg","--ds-toast-error-shadow"],x=!1,c=null;function O(){x||typeof window>"u"||typeof document>"u"||(x=!0,y("gengage:global:error",e=>{q(e)}))}function q(e){if(typeof document>"u")return;const t=e.message.trim();if(!t)return;J();const i=z();Y(i),i.innerHTML="";const n=document.createElement("section");n.className="gengage-global-toast gengage-global-toast--error",n.setAttribute("role","status"),n.setAttribute("aria-live","polite");const r=document.createElement("div");r.className="gengage-global-toast-title",r.textContent=G(e.source);const a=document.createElement("div");a.className="gengage-global-toast-message",a.textContent=t,n.appendChild(r),n.appendChild(a),i.appendChild(n),i.classList.add(b),c&&(clearTimeout(c),c=null),e.sticky!==!0&&(c=setTimeout(()=>{H()},j(e.durationMs)))}function H(){if(typeof document>"u")return;const e=document.getElementById(l);e&&(e.classList.remove(b),e.innerHTML="",c&&(clearTimeout(c),c=null))}function G(e){switch(e){case"chat":return"Chat warning";case"qna":return"QnA warning";case"simrel":return"Widget warning";default:return"Connection warning"}}function z(){const e=document.getElementById(l);if(e instanceof HTMLElement)return e;const t=document.createElement("div");return t.id=l,t.className="gengage-global-toast-root",document.body.appendChild(t),t}function Y(e){if(typeof document>"u"||typeof window>"u")return;const t=document.querySelector(".gengage-chat-root, .gengage-qna-container, .gengage-simrel-container, .gengage-simbut-root");if(!t)return;const i=window.getComputedStyle(t);for(const n of V){const r=i.getPropertyValue(n).trim();r?e.style.setProperty(n,r):e.style.removeProperty(n)}}function j(e){return typeof e!="number"||!Number.isFinite(e)?D:Math.min(P,Math.max(W,Math.round(e)))}function J(){if(document.getElementById(w))return;const e=document.createElement("style");e.id=w;const t=d["--surface-card"]??d.backgroundColor??"#ffffff",i=d["--text-primary"]??d.foregroundColor??"#111827",n=d["--border-default"]??"rgba(17, 24, 39, 0.10)",r=d["--error"]??"#dc2626",a=d["--shadow-3"]??"0 10px 24px rgba(16, 24, 40, 0.12)",g=d["--radius-card"]??"16px",o=d["--text-muted"]??"#6b7280";e.textContent=`
|
|
2
|
+
#${l} {
|
|
3
3
|
position: fixed;
|
|
4
4
|
top: 16px;
|
|
5
5
|
right: 16px;
|
|
6
6
|
z-index: 2147483646;
|
|
7
7
|
pointer-events: none;
|
|
8
8
|
}
|
|
9
|
-
#${
|
|
9
|
+
#${l}.${b} {
|
|
10
10
|
pointer-events: auto;
|
|
11
11
|
}
|
|
12
|
-
#${
|
|
12
|
+
#${l} .gengage-global-toast {
|
|
13
13
|
min-width: 260px;
|
|
14
14
|
max-width: min(92vw, 420px);
|
|
15
15
|
border-radius: var(--radius-card, ${g});
|
|
@@ -17,20 +17,20 @@
|
|
|
17
17
|
border-left: 4px solid var(--ds-toast-error-accent, var(--error, ${r}));
|
|
18
18
|
background: var(--ds-toast-error-bg, color-mix(in srgb, var(--error, ${r}) 5%, var(--surface-card, ${t})));
|
|
19
19
|
color: var(--ds-toast-error-fg, color-mix(in srgb, var(--error, ${r}) 22%, var(--text-primary, ${i})));
|
|
20
|
-
box-shadow: var(--ds-toast-error-shadow, var(--shadow-3, ${
|
|
20
|
+
box-shadow: var(--ds-toast-error-shadow, var(--shadow-3, ${a}));
|
|
21
21
|
padding: 10px 12px;
|
|
22
|
-
font-family: var(--gengage-font-family, ${JSON.stringify(
|
|
22
|
+
font-family: var(--gengage-font-family, ${JSON.stringify(d.fontFamily??'-apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif')});
|
|
23
23
|
font-size: 13px;
|
|
24
24
|
line-height: 1.4;
|
|
25
25
|
animation: gengage-global-toast-in 180ms ease-out forwards;
|
|
26
26
|
}
|
|
27
|
-
#${
|
|
27
|
+
#${l} .gengage-global-toast-title {
|
|
28
28
|
margin: 0 0 4px;
|
|
29
29
|
font-size: 12px;
|
|
30
30
|
font-weight: 700;
|
|
31
|
-
color: var(--text-muted, ${
|
|
31
|
+
color: var(--text-muted, ${o});
|
|
32
32
|
}
|
|
33
|
-
#${
|
|
33
|
+
#${l} .gengage-global-toast-message {
|
|
34
34
|
margin: 0;
|
|
35
35
|
font-weight: 500;
|
|
36
36
|
}
|
|
@@ -44,4 +44,4 @@
|
|
|
44
44
|
transform: translateY(0);
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
|
-
`,document.head.appendChild(e)}var
|
|
47
|
+
`,document.head.appendChild(e)}var f=null;function K(){if(f!==null)return f;try{f=localStorage.getItem("gengage:debug")==="1"}catch{f=!1}return f}function S(e,t,i){if(!K())return;const n=[`[gengage:${e}]`,t];i!==void 0&&n.push(i),console.debug(...n)}var Q=class{constructor(){this.isVisible=!1,this.isInitialised=!1,this._handlers=new Map,this._cleanups=[],this._ownsRoot=!1,this._destroying=!1}async init(e){if(this.isInitialised){console.warn("[gengage] Widget already initialised. Call update() instead.");return}const t=B(e.theme);this.config={...e,theme:t,session:A(e.session)},this.root=this._resolveMount(e.mountTarget),this._applyTheme(t),O();const i=y("gengage:context:update",n=>this.update(n));this._cleanups.push(i),S("lifecycle",`${this.constructor.name}.init`,{accountId:e.accountId,sku:e.pageContext?.sku});try{await this.onInit(this.config)}catch(n){throw this.destroy(),n}this._destroying||(this.isInitialised=!0,S("lifecycle",`${this.constructor.name} ready`),this.emit("ready"))}update(e){this.isInitialised&&(this.config.pageContext?this.config={...this.config,pageContext:{...this.config.pageContext,...e}}:e.pageType!==void 0&&(this.config={...this.config,pageContext:e}),this.onUpdate(e),this.emit("context-update",this.config.pageContext))}show(){this.isVisible||(this.isVisible=!0,this.root.style.display="",this.onShow(),this.emit("show"))}hide(){this.isVisible&&(this.isVisible=!1,this.root.style.display="none",this.onHide(),this.emit("hide"))}destroy(){this._destroying||(this._destroying=!0,this.emit("destroy"),this._cleanups.forEach(e=>e()),this._cleanups.length=0,this._handlers.clear(),this.onDestroy(),this.config.analyticsClient?.destroy(),this._cleanupRoot(),this.isInitialised=!1)}_cleanupRoot(){this._ownsRoot?this.root.remove():this.root.innerHTML=""}on(e,t){return this._handlers.has(e)||this._handlers.set(e,new Set),this._handlers.get(e).add(t),()=>this._handlers.get(e)?.delete(t)}trackCheckout(e,t){const i=e==="start"?k:T;this.track(i(this.analyticsContext(),t))}flushMeteringSummary(e){this.track(I(this.analyticsContext(),e))}emit(e,...t){this._handlers.get(e)?.forEach(i=>i(...t))}addCleanup(e){this._cleanups.push(e)}track(e){this.config.analyticsClient?.track(e)}analyticsContext(){const e={account_id:this.config.accountId,session_id:this.config.session?.sessionId??"",correlation_id:this.config.session?.sessionId??""};return this.config.session?.viewId!==void 0&&(e.view_id=this.config.session.viewId),this.config.session?.userId!==void 0&&(e.user_id=this.config.session.userId),this.config.pageContext?.pageType!==void 0&&(e.page_type=this.config.pageContext.pageType),this.config.pageContext?.sku!==void 0&&(e.sku=this.config.pageContext.sku),this.config.session?.abTestVariant!==void 0&&(e.ab_test_variant=this.config.session.abTestVariant),this.config.session?.abTestExperimentId!==void 0&&(e.ab_test_experiment_id=this.config.session.abTestExperimentId),e}_resolveMount(e){if(e instanceof HTMLElement)return e;if(typeof e=="string"){const i=document.querySelector(e);if(!i)throw new Error(`[gengage] Mount target not found: "${e}"`);return i}const t=document.createElement("div");return t.dataset.gengageWidget=this.constructor.name.toLowerCase(),document.body.insertBefore(t,document.body.firstChild),this._ownsRoot=!0,t}_applyTheme(e){if(e){for(const[t,i]of Object.entries(e))if(i!==void 0){const n=t.startsWith("--")?t:`--gengage-${X(t)}`;this.root.style.setProperty(n,i)}}}};function X(e){return e.replace(/([A-Z])/g,"-$1").toLowerCase()}function Z(e){const t=e?.trim();return t||"tr"}var C={findSimilarLabel:"Benzerlerini Bul"},ee={findSimilarLabel:"Find Similar"};function te(e,t){return t?.findSimilarLabel?t.findSimilarLabel:(e??"tr").toLowerCase().startsWith("en")?ee.findSimilarLabel:C.findSimilarLabel}function h(e){const t=typeof e.sku=="string"&&e.sku.length>0?e.sku:void 0,i=typeof e.pageContext?.sku=="string"&&e.pageContext.sku.length>0?e.pageContext.sku:void 0;return t??i}var E=class extends Q{constructor(...e){super(...e),this._button=null,this._inlineFrame=null,this._label=C.findSimilarLabel}async onInit(e){this._label=te(e.locale,e.i18n);const t=e.layout??"overlay";this.root.classList.add("gengage-simbut-root"),this.root.classList.toggle("gengage-simbut-root--overlay",t==="overlay"),this.root.classList.toggle("gengage-simbut-root--inline-card",t==="inline-card"),t==="overlay"&&window.getComputedStyle(this.root).position==="static"&&(this.root.style.position="relative");const i=document.createElement("button");i.type="button",i.className="gengage-chat-find-similar-pill",i.lang=Z(e.locale),i.textContent=this._label,this._button=i;const n=()=>{i.disabled=!(h(this.config)&&(this.config.onFindSimilar||this.config.chat))};if(i.addEventListener("click",r=>{r.stopPropagation();const a=h(this.config);if(!a)return;const g=this.config.imageUrl,o=typeof g=="string"&&F(g)?g:void 0;if($(this._label,"findSimilar"),N(a),this.config.onFindSimilar){this.config.onFindSimilar(o?{sku:a,imageUrl:o}:{sku:a});return}const u=this.config.chat;if(!u)return;const s={title:this._label,type:"findSimilar",payload:o?{sku:a,image_url:o}:{sku:a}};u.openWithAction(s,{sku:a})}),t==="inline-card"){const r=this._createInlineCard(e,i);this._inlineFrame=r,this.root.appendChild(r)}else this.root.appendChild(i);n(),U("simbut")}_createInlineCard(e,t){const i=e.inlineCard,n=typeof i?.title=="string"?i.title.trim():"",r=typeof i?.description=="string"?i.description.trim():"",a=typeof i?.imageUrl=="string"?i.imageUrl.trim():"",g=document.createElement("section");g.className="gengage-simbut-inline-card",g.dataset.gengagePart="simbut-inline-card";const o=document.createElement("div");if(o.className="gengage-simbut-inline-copy",o.dataset.gengagePart="simbut-inline-copy",n){const s=document.createElement("h4");s.className="gengage-simbut-inline-title",s.dataset.gengagePart="simbut-inline-title",s.textContent=n,o.appendChild(s)}if(r){const s=document.createElement("p");s.className="gengage-simbut-inline-description",s.dataset.gengagePart="simbut-inline-description",s.textContent=r,o.appendChild(s)}o.children.length>0&&g.appendChild(o);const u=document.createElement("div");if(u.className="gengage-simbut-inline-action",u.dataset.gengagePart="simbut-inline-action",u.appendChild(t),g.appendChild(u),a&&L(a)){const s=document.createElement("img");s.className="gengage-simbut-inline-image",s.dataset.gengagePart="simbut-inline-image",s.src=a,s.alt=typeof i?.imageAlt=="string"?i.imageAlt:"",s.loading="lazy",s.addEventListener("error",()=>{s.style.display="none"},{once:!0}),g.appendChild(s)}return g}onUpdate(e){if(!this._button)return;const t=!!h(this.config)&&(!!this.config.onFindSimilar||!!this.config.chat);this._button.disabled=!t}hide(){this.isVisible&&(this.isVisible=!1,this._inlineFrame&&(this._inlineFrame.style.display="none"),this._button&&(this._button.style.display="none"),this.onHide(),this.emit("hide"))}show(){this.isVisible||(this.isVisible=!0,this._inlineFrame&&(this._inlineFrame.style.display=""),this._button&&(this._button.style.display=""),this.onShow(),this.emit("show"))}_cleanupRoot(){}onShow(){}onHide(){}onDestroy(){this._inlineFrame?.remove(),this._inlineFrame=null,this._button?.remove(),this._button=null}setChat(e){if(this.config.chat=e,this._button){const t=!!h(this.config)&&(!!this.config.onFindSimilar||!!this.config.chat);this._button.disabled=!t}}};function ie(){return new E}m.GengageSimBut=E,m.createSimButWidget=ie})(this.Gengage=this.Gengage||{});
|
package/dist/simbut.js
CHANGED
package/dist/simrel/index.d.ts
CHANGED
|
@@ -1,61 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import { SimRelWidgetConfig } from './types.js';
|
|
5
|
-
/**
|
|
6
|
-
* Similar / related products widget for product pages.
|
|
7
|
-
* Fetches AI-powered product recommendations and renders them as a scrollable grid.
|
|
8
|
-
*
|
|
9
|
-
* @example
|
|
10
|
-
* ```ts
|
|
11
|
-
* import { GengageSimRel, bootstrapSession } from '@gengage/assistant-fe';
|
|
12
|
-
*
|
|
13
|
-
* const simrel = new GengageSimRel();
|
|
14
|
-
* await simrel.init({
|
|
15
|
-
* accountId: 'mystore',
|
|
16
|
-
* middlewareUrl: '<backend service location provided for your Gengage account>',
|
|
17
|
-
* sku: '12345',
|
|
18
|
-
* mountTarget: '#similar-products',
|
|
19
|
-
* session: { sessionId: bootstrapSession() },
|
|
20
|
-
* onAddToCart: ({ sku, quantity }) => cart.add(sku, quantity),
|
|
21
|
-
* });
|
|
22
|
-
* ```
|
|
23
|
-
*/
|
|
24
|
-
export declare class GengageSimRel extends BaseWidget<SimRelWidgetConfig> {
|
|
25
|
-
private _abortController;
|
|
26
|
-
private _contentEl;
|
|
27
|
-
private _lastSku;
|
|
28
|
-
/** Number of products returned from the last successful fetch. Used to allow
|
|
29
|
-
* retry when the same SKU previously produced an empty result set. */
|
|
30
|
-
private _lastResultCount;
|
|
31
|
-
private _i18n;
|
|
32
|
-
protected onInit(config: SimRelWidgetConfig): Promise<void>;
|
|
33
|
-
protected onUpdate(context: Partial<PageContext>): void;
|
|
34
|
-
protected onShow(): void;
|
|
35
|
-
protected onHide(): void;
|
|
36
|
-
protected onDestroy(): void;
|
|
37
|
-
_handleProductClick(product: NormalizedProduct): void;
|
|
38
|
-
_handleAddToCart(params: {
|
|
39
|
-
sku: string;
|
|
40
|
-
quantity: number;
|
|
41
|
-
cartCode: string;
|
|
42
|
-
}): void;
|
|
43
|
-
private _abort;
|
|
44
|
-
private _isSuperseded;
|
|
45
|
-
private _emitSimilarProductsImpression;
|
|
46
|
-
private _resolveRequestTimeoutMs;
|
|
47
|
-
private _fetchAndRender;
|
|
48
|
-
private _clampGridColumns;
|
|
49
|
-
private _resolveI18n;
|
|
50
|
-
private _resolveUISpecRegistry;
|
|
51
|
-
private _buildRenderContext;
|
|
52
|
-
private _renderUISpec;
|
|
53
|
-
private _buildProductsSpec;
|
|
54
|
-
private _buildGroupsSpec;
|
|
55
|
-
}
|
|
56
|
-
export declare function createSimRelWidget(): GengageSimRel;
|
|
57
|
-
export type { SimRelWidgetConfig, SimilarProduct, SimRelUIComponents, SimRelI18n, SimRelUISpecRenderContext, SimRelRendererConfig, } from './types.js';
|
|
58
|
-
export { renderSimRelUISpec, createDefaultSimRelUISpecRegistry, defaultSimRelUnknownUISpecRenderer, } from './components/renderUISpec.js';
|
|
59
|
-
export type { SimRelUISpecRegistry } from './components/renderUISpec.js';
|
|
1
|
+
export * from './runtime.js';
|
|
2
|
+
export { createSimRelRenderer } from './renderers/default.js';
|
|
3
|
+
export type { SimRelFieldPath, SimRelRendererFields, SimRelRendererLabels, SimRelRendererMedia, SimRelRendererOptions, } from './renderers/default.js';
|
|
60
4
|
export { simRelCatalog } from './catalog.js';
|
|
61
5
|
export type { SimRelCatalog, SimRelComponentName } from './catalog.js';
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { PriceFormatConfig } from '../../common/price-formatter.js';
|
|
2
|
+
import { SimilarProduct, SimRelRendererConfig } from '../types.js';
|
|
3
|
+
export type SimRelFieldPath = string | readonly string[];
|
|
4
|
+
export interface SimRelRendererLabels {
|
|
5
|
+
cta?: string;
|
|
6
|
+
productInfo?: string;
|
|
7
|
+
customBadgeAlt?: string;
|
|
8
|
+
review?: (count: number) => string;
|
|
9
|
+
imageDot?: (index: number) => string;
|
|
10
|
+
previousPromotion?: string;
|
|
11
|
+
nextPromotion?: string;
|
|
12
|
+
specialPriceBadgeAlt?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface SimRelRendererFields {
|
|
15
|
+
images?: SimRelFieldPath[];
|
|
16
|
+
subtitle?: SimRelFieldPath[];
|
|
17
|
+
promotions?: SimRelFieldPath[];
|
|
18
|
+
warranties?: SimRelFieldPath[];
|
|
19
|
+
productInfoUrl?: SimRelFieldPath[];
|
|
20
|
+
discountReason?: SimRelFieldPath[];
|
|
21
|
+
specialPrice?: SimRelFieldPath[];
|
|
22
|
+
customBadgeFacets?: SimRelFieldPath[];
|
|
23
|
+
customBadgeText?: SimRelFieldPath[];
|
|
24
|
+
customBadgeImageUrl?: SimRelFieldPath[];
|
|
25
|
+
}
|
|
26
|
+
export interface SimRelRendererMedia {
|
|
27
|
+
promotionIconUrl?: string;
|
|
28
|
+
specialPriceBadgeUrl?: string;
|
|
29
|
+
imageUrlTransform?: (url: string, product: SimilarProduct) => string;
|
|
30
|
+
customBadgeImageUrl?: (product: SimilarProduct, labelText: string) => string | null | undefined;
|
|
31
|
+
}
|
|
32
|
+
export interface SimRelRendererOptions {
|
|
33
|
+
labels?: SimRelRendererLabels;
|
|
34
|
+
fields?: SimRelRendererFields;
|
|
35
|
+
media?: SimRelRendererMedia;
|
|
36
|
+
warrantyPromotionPattern?: RegExp;
|
|
37
|
+
specialPricePattern?: RegExp;
|
|
38
|
+
pricing?: PriceFormatConfig | undefined;
|
|
39
|
+
}
|
|
40
|
+
export declare function createSimRelRenderer(options?: SimRelRendererOptions): SimRelRendererConfig;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { PageContext } from '../common/types.js';
|
|
2
|
+
import { NormalizedProduct } from '../common/protocol-adapter.js';
|
|
3
|
+
import { BaseWidget } from '../common/widget-base.js';
|
|
4
|
+
import { SimRelWidgetConfig } from './types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Similar / related products widget for product pages.
|
|
7
|
+
* Fetches AI-powered product recommendations and renders them as a scrollable grid.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* import { GengageSimRel, bootstrapSession } from '@gengage/assistant-fe';
|
|
12
|
+
*
|
|
13
|
+
* const simrel = new GengageSimRel();
|
|
14
|
+
* await simrel.init({
|
|
15
|
+
* accountId: 'mystore',
|
|
16
|
+
* middlewareUrl: '<backend service location provided for your Gengage account>',
|
|
17
|
+
* sku: '12345',
|
|
18
|
+
* mountTarget: '#similar-products',
|
|
19
|
+
* session: { sessionId: bootstrapSession() },
|
|
20
|
+
* onAddToCart: ({ sku, quantity }) => cart.add(sku, quantity),
|
|
21
|
+
* });
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare class GengageSimRel extends BaseWidget<SimRelWidgetConfig> {
|
|
25
|
+
private _abortController;
|
|
26
|
+
private _contentEl;
|
|
27
|
+
private _lastSku;
|
|
28
|
+
/** Number of products returned from the last successful fetch. Used to allow
|
|
29
|
+
* retry when the same SKU previously produced an empty result set. */
|
|
30
|
+
private _lastResultCount;
|
|
31
|
+
private _i18n;
|
|
32
|
+
protected onInit(config: SimRelWidgetConfig): Promise<void>;
|
|
33
|
+
protected onUpdate(context: Partial<PageContext>): void;
|
|
34
|
+
protected onShow(): void;
|
|
35
|
+
protected onHide(): void;
|
|
36
|
+
protected onDestroy(): void;
|
|
37
|
+
_handleProductClick(product: NormalizedProduct): void;
|
|
38
|
+
_handleAddToCart(params: {
|
|
39
|
+
sku: string;
|
|
40
|
+
quantity: number;
|
|
41
|
+
cartCode: string;
|
|
42
|
+
}): void;
|
|
43
|
+
private _abort;
|
|
44
|
+
private _isSuperseded;
|
|
45
|
+
private _emitSimilarProductsImpression;
|
|
46
|
+
private _resolveRequestTimeoutMs;
|
|
47
|
+
private _fetchAndRender;
|
|
48
|
+
private _clampGridColumns;
|
|
49
|
+
private _resolveI18n;
|
|
50
|
+
private _resolveUISpecRegistry;
|
|
51
|
+
private _buildRenderContext;
|
|
52
|
+
private _renderUISpec;
|
|
53
|
+
private _buildProductsSpec;
|
|
54
|
+
private _buildGroupsSpec;
|
|
55
|
+
}
|
|
56
|
+
export declare function createSimRelWidget(): GengageSimRel;
|
|
57
|
+
export type { SimRelWidgetConfig, SimilarProduct, SimRelUIComponents, SimRelI18n, SimRelUISpecRenderContext, SimRelRendererConfig, } from './types.js';
|
|
58
|
+
export { renderSimRelUISpec, createDefaultSimRelUISpecRegistry, defaultSimRelUnknownUISpecRenderer, } from './components/renderUISpec.js';
|
|
59
|
+
export type { SimRelUISpecRegistry } from './components/renderUISpec.js';
|