@gengage/assistant-fe 0.5.2 → 0.5.4

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.
@@ -1,8 +1,8 @@
1
- import { d as x, h as Q, p as R, r as N, t as H } from "./api-paths-HBfd3rta.js";
1
+ import { d as x, h as Q, p as R, r as N, t as H } from "./api-paths-5v4fJh3b.js";
2
2
  import { A as O, D as U, E as j, a as q, v as M } from "./context-BBuSsXZ9.js";
3
- import { o as F, t as W } from "./widget-base-BcrlFdYt.js";
3
+ import { o as F, t as W } from "./widget-base-DTsBXrHi.js";
4
4
  import { t as A } from "./locale-CfqNifrU.js";
5
- import { n as D } from "./connection-warning-BvPwMY8A.js";
5
+ import { n as D } from "./connection-warning-BlkNv3zB.js";
6
6
  async function z(e, t, n) {
7
7
  const o = H("launcher_action", t), i = {
8
8
  uiSpecs: [],
@@ -1,9 +1,9 @@
1
- import { a as x, d as L, h as j, i as q, p as F, r as I, t as N } from "./api-paths-HBfd3rta.js";
1
+ import { a as x, d as L, h as j, i as q, p as F, r as I, t as N } from "./api-paths-5v4fJh3b.js";
2
2
  import { A as z, E as S, N as D, a as k, l as H, v as $ } from "./context-BBuSsXZ9.js";
3
- import { o as W, t as J } from "./widget-base-BcrlFdYt.js";
3
+ import { o as W, t as J } from "./widget-base-DTsBXrHi.js";
4
4
  import { t as K } from "./locale-CfqNifrU.js";
5
5
  import { a as Q, n as V, r as Y, t as A } from "./price-formatter-xI3g9Cd4.js";
6
- import { n as X } from "./connection-warning-BvPwMY8A.js";
6
+ import { n as X } from "./connection-warning-BlkNv3zB.js";
7
7
  function R(e) {
8
8
  const t = [];
9
9
  for (const n of Object.values(e)) if (n.type === "ProductCard" && n.props) {
@@ -17,23 +17,23 @@ function M(e) {
17
17
  return t.includes("application/x-ndjson") || t.includes("text/event-stream");
18
18
  }
19
19
  async function Z(e, t) {
20
- const n = [], r = { onEvent: (i) => {
21
- const s = I(i);
22
- !s || s.type !== "ui_spec" || n.push(...R(s.spec.elements));
20
+ const n = [], r = { onEvent: (s) => {
21
+ const i = I(s);
22
+ !i || i.type !== "ui_spec" || n.push(...R(i.spec.elements));
23
23
  } };
24
24
  return t !== void 0 && (r.signal = t), await L(e, r), n;
25
25
  }
26
26
  async function ee(e, t, n) {
27
- const r = N("similar_products", t), i = {
27
+ const r = N("similar_products", t), s = {
28
28
  method: "POST",
29
29
  headers: { "Content-Type": "application/json" },
30
30
  body: JSON.stringify(e)
31
31
  };
32
- n !== void 0 && (i.signal = n);
33
- const s = await fetch(r, i);
34
- if (!s.ok) throw new Error(`HTTP ${s.status}: ${s.statusText}`);
35
- if (M(s)) return Z(s, n);
36
- const a = await s.text();
32
+ n !== void 0 && (s.signal = n);
33
+ const i = await fetch(r, s);
34
+ if (!i.ok) throw new Error(`HTTP ${i.status}: ${i.statusText}`);
35
+ if (M(i)) return Z(i, n);
36
+ const a = await i.text();
37
37
  if (!a) throw new Error("Empty response body from similar_products endpoint");
38
38
  try {
39
39
  return x(JSON.parse(a));
@@ -44,8 +44,8 @@ async function ee(e, t, n) {
44
44
  async function te(e, t) {
45
45
  const n = [];
46
46
  let r = null;
47
- const i = { onEvent: (s) => {
48
- const a = I(s);
47
+ const s = { onEvent: (i) => {
48
+ const a = I(i);
49
49
  if (a) {
50
50
  if (a.type === "metadata" && a.meta) {
51
51
  const d = a.meta.group_name;
@@ -61,19 +61,19 @@ async function te(e, t) {
61
61
  a.type === "ui_spec" && r && r.products.push(...R(a.spec.elements));
62
62
  }
63
63
  } };
64
- return t !== void 0 && (i.signal = t), await L(e, i), n;
64
+ return t !== void 0 && (s.signal = t), await L(e, s), n;
65
65
  }
66
66
  async function ne(e, t, n) {
67
- const r = N("product_groupings", t), i = {
67
+ const r = N("product_groupings", t), s = {
68
68
  method: "POST",
69
69
  headers: { "Content-Type": "application/json" },
70
70
  body: JSON.stringify(e)
71
71
  };
72
- n !== void 0 && (i.signal = n);
73
- const s = await fetch(r, i);
74
- if (!s.ok) throw new Error(`HTTP ${s.status}: ${s.statusText}`);
75
- if (M(s)) return te(s, n);
76
- const a = await s.text();
72
+ n !== void 0 && (s.signal = n);
73
+ const i = await fetch(r, s);
74
+ if (!i.ok) throw new Error(`HTTP ${i.status}: ${i.statusText}`);
75
+ if (M(i)) return te(i, n);
76
+ const a = await i.text();
77
77
  if (!a) return [];
78
78
  try {
79
79
  return q(JSON.parse(a));
@@ -82,7 +82,7 @@ async function ne(e, t, n) {
82
82
  }
83
83
  }
84
84
  function U(e) {
85
- const { product: t, index: n, discountType: r, onClick: i, onAddToCart: s, renderCard: a } = e, d = e.i18n, m = e.pricing;
85
+ const { product: t, index: n, discountType: r, onClick: s, onAddToCart: i, renderCard: a } = e, d = e.i18n, m = e.pricing;
86
86
  if (e.renderCardElement) {
87
87
  const o = e.renderCardElement(t, n);
88
88
  if (o) return o;
@@ -90,7 +90,7 @@ function U(e) {
90
90
  if (a) {
91
91
  const o = document.createElement("div");
92
92
  return o.className = "gengage-simrel-card gengage-simrel-card--custom gds-card gds-product-card gds-card-interactive", o.dataset.gengagePart = "simrel-product-card", o.innerHTML = D(a(t, n)), o.addEventListener("click", (c) => {
93
- c.target.closest(".gengage-simrel-atc") || c.target.closest(".gengage-chat-product-card-atc") || i(t);
93
+ c.target.closest(".gengage-simrel-atc") || c.target.closest(".gengage-chat-product-card-atc") || s(t);
94
94
  }), o;
95
95
  }
96
96
  const l = document.createElement("article");
@@ -120,9 +120,9 @@ function U(e) {
120
120
  u.appendChild(o);
121
121
  }
122
122
  const y = document.createElement("div");
123
- if (y.className = "gengage-simrel-card-price gengage-chat-product-card-price", t.originalPrice && t.originalPrice !== t.price && (r === "strike-through" || !r)) {
123
+ if (y.className = "gengage-simrel-card-price gengage-chat-product-card-price", t.originalPrice && t.originalPrice !== t.price && (r === "strike-through" || r === "inline" || !r)) {
124
124
  const o = document.createElement("span");
125
- o.className = "gengage-simrel-card-price-original gengage-chat-product-card-original-price", o.textContent = A(t.originalPrice, m), y.appendChild(o);
125
+ o.className = ["gengage-simrel-card-price-original", "gengage-chat-product-card-original-price"].join(" "), r === "inline" && o.classList.add("gengage-simrel-card-price-original--inline"), o.textContent = A(t.originalPrice, m), y.appendChild(o);
126
126
  }
127
127
  if (t.price && parseFloat(t.price) > 0) {
128
128
  const o = document.createElement("span");
@@ -131,14 +131,14 @@ function U(e) {
131
131
  u.appendChild(y), l.appendChild(u);
132
132
  const f = document.createElement("button");
133
133
  if (f.className = "gengage-simrel-card-cta gengage-chat-product-card-cta gds-btn gds-btn-secondary", f.type = "button", f.dataset.gengagePart = "simrel-product-card-cta", f.textContent = d?.ctaLabel ?? "View", f.addEventListener("click", (o) => {
134
- o.preventDefault(), o.stopPropagation(), i(t);
134
+ o.preventDefault(), o.stopPropagation(), s(t);
135
135
  }), l.appendChild(f), t.inStock === !1) {
136
136
  const o = document.createElement("div");
137
137
  o.className = "gengage-simrel-card-oos", o.textContent = d?.outOfStockLabel ?? "Out of Stock", l.appendChild(o);
138
138
  } else if (t.cartCode) {
139
139
  const o = document.createElement("button");
140
140
  o.className = "gengage-simrel-atc gengage-simrel-atc-button gds-btn gds-btn-secondary", o.type = "button", o.textContent = d?.addToCartButton ?? "Add to Cart", o.addEventListener("click", (c) => {
141
- c.preventDefault(), c.stopPropagation(), s({
141
+ c.preventDefault(), c.stopPropagation(), i({
142
142
  sku: t.sku,
143
143
  quantity: 1,
144
144
  cartCode: t.cartCode
@@ -146,7 +146,7 @@ function U(e) {
146
146
  }), l.appendChild(o);
147
147
  }
148
148
  return l.addEventListener("click", (o) => {
149
- o.target.closest(".gengage-simrel-atc") || o.target.closest(".gengage-chat-product-card-atc") || o.target.closest(".gengage-chat-product-card-cta") || i(t);
149
+ o.target.closest(".gengage-simrel-atc") || o.target.closest(".gengage-chat-product-card-atc") || o.target.closest(".gengage-chat-product-card-cta") || s(t);
150
150
  }), l;
151
151
  }
152
152
  function w(e) {
@@ -160,8 +160,8 @@ function w(e) {
160
160
  onAddToCart: e.onAddToCart
161
161
  };
162
162
  e.i18n !== void 0 && (r.i18n = e.i18n), e.discountType !== void 0 && (r.discountType = e.discountType), e.renderCard !== void 0 && (r.renderCard = e.renderCard), e.renderCardElement !== void 0 && (r.renderCardElement = e.renderCardElement);
163
- const i = U(r);
164
- t.appendChild(i);
163
+ const s = U(r);
164
+ t.appendChild(s);
165
165
  }
166
166
  return e.products.length === 0 && (t.style.display = "none", t.dataset.empty = "true"), t;
167
167
  }
@@ -172,7 +172,7 @@ function ie(e) {
172
172
  return n.style.display = "none", n.dataset.empty = "true", n;
173
173
  const r = document.createElement("div");
174
174
  r.className = "gengage-simrel-tabs gds-toolbar", r.dataset.gengagePart = "simrel-tab-bar", r.setAttribute("role", "tablist");
175
- const i = [], s = [];
175
+ const s = [], i = [];
176
176
  let a = 0;
177
177
  const d = (c) => {
178
178
  const b = {
@@ -190,27 +190,27 @@ function ie(e) {
190
190
  });
191
191
  }
192
192
  a = c;
193
- for (let p = 0; p < i.length; p++) {
193
+ for (let p = 0; p < s.length; p++) {
194
194
  const v = p === c;
195
- i[p].classList.toggle("gengage-simrel-tab--active", v), i[p].setAttribute("aria-selected", String(v)), i[p].tabIndex = v ? 0 : -1;
195
+ s[p].classList.toggle("gengage-simrel-tab--active", v), s[p].setAttribute("aria-selected", String(v)), s[p].tabIndex = v ? 0 : -1;
196
196
  }
197
- const T = e.groups[c], _ = s[c];
197
+ const T = e.groups[c], _ = i[c];
198
198
  _.innerHTML = "";
199
199
  const C = w(d(T));
200
200
  _.appendChild(C);
201
- for (let p = 0; p < s.length; p++) {
201
+ for (let p = 0; p < i.length; p++) {
202
202
  const v = p === c;
203
- s[p].style.display = v ? "" : "none", s[p].tabIndex = v ? 0 : -1;
203
+ i[p].style.display = v ? "" : "none", i[p].tabIndex = v ? 0 : -1;
204
204
  }
205
205
  };
206
206
  for (let c = 0; c < e.groups.length; c++) {
207
207
  const b = e.groups[c], T = `gengage-simrel-tab-${t}-${c}`, _ = `gengage-simrel-panel-${t}-${c}`, C = document.createElement("button");
208
208
  C.className = "gengage-simrel-tab gds-tab", C.type = "button", C.dataset.gengagePart = "simrel-tab", C.id = T, C.textContent = b.name, C.setAttribute("role", "tab"), C.setAttribute("aria-controls", _), C.setAttribute("aria-selected", String(c === 0)), C.tabIndex = c === 0 ? 0 : -1, c === 0 && C.classList.add("gengage-simrel-tab--active"), C.addEventListener("click", () => m(c, !0)), C.addEventListener("keydown", (v) => {
209
209
  let E = -1;
210
- v.key === "ArrowRight" || v.key === "ArrowDown" ? E = (c + 1) % e.groups.length : v.key === "ArrowLeft" || v.key === "ArrowUp" ? E = (c - 1 + e.groups.length) % e.groups.length : v.key === "Home" ? E = 0 : v.key === "End" && (E = e.groups.length - 1), E >= 0 && (v.preventDefault(), m(E, !0), i[E].focus());
211
- }), i.push(C), r.appendChild(C);
210
+ v.key === "ArrowRight" || v.key === "ArrowDown" ? E = (c + 1) % e.groups.length : v.key === "ArrowLeft" || v.key === "ArrowUp" ? E = (c - 1 + e.groups.length) % e.groups.length : v.key === "Home" ? E = 0 : v.key === "End" && (E = e.groups.length - 1), E >= 0 && (v.preventDefault(), m(E, !0), s[E].focus());
211
+ }), s.push(C), r.appendChild(C);
212
212
  const p = document.createElement("div");
213
- p.className = "gengage-simrel-tab-panel", p.dataset.gengagePart = "simrel-tab-panel", p.id = _, p.setAttribute("role", "tabpanel"), p.setAttribute("aria-labelledby", T), p.tabIndex = c === 0 ? 0 : -1, c !== 0 && (p.style.display = "none"), s.push(p);
213
+ p.className = "gengage-simrel-tab-panel", p.dataset.gengagePart = "simrel-tab-panel", p.id = _, p.setAttribute("role", "tabpanel"), p.setAttribute("aria-labelledby", T), p.tabIndex = c === 0 ? 0 : -1, c !== 0 && (p.style.display = "none"), i.push(p);
214
214
  }
215
215
  const l = document.createElement("button");
216
216
  l.type = "button", l.className = "gengage-simrel-tabs-arrow gengage-simrel-tabs-arrow--left", l.setAttribute("aria-label", e.i18n?.scrollTabsLeft ?? "Scroll tabs left"), l.innerHTML = '<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="15 18 9 12 15 6"/></svg>';
@@ -235,9 +235,9 @@ function ie(e) {
235
235
  r.addEventListener("scroll", h, { passive: !0 }), typeof ResizeObserver < "u" && new ResizeObserver(h).observe(r), l.style.display = "none", g.style.display = "none", requestAnimationFrame(h);
236
236
  const y = document.createElement("div");
237
237
  y.className = "gengage-simrel-tabs-wrapper", y.appendChild(l), y.appendChild(r), y.appendChild(g), n.appendChild(y);
238
- const f = s[0], o = w(d(e.groups[0]));
238
+ const f = i[0], o = w(d(e.groups[0]));
239
239
  f.appendChild(o);
240
- for (const c of s) n.appendChild(c);
240
+ for (const c of i) n.appendChild(c);
241
241
  return n;
242
242
  }
243
243
  function P(e) {
@@ -250,10 +250,10 @@ function P(e) {
250
250
  url: t.url
251
251
  }, r = t.imageUrl;
252
252
  typeof r == "string" && (n.imageUrl = r);
253
- const i = t.price;
254
- typeof i == "string" && (n.price = i);
255
- const s = t.originalPrice;
256
- typeof s == "string" && (n.originalPrice = s);
253
+ const s = t.price;
254
+ typeof s == "string" && (n.price = s);
255
+ const i = t.originalPrice;
256
+ typeof i == "string" && (n.originalPrice = i);
257
257
  const a = t.discountPercent;
258
258
  typeof a == "number" && (n.discountPercent = a);
259
259
  const d = t.brand;
@@ -273,19 +273,19 @@ function se(e) {
273
273
  if (!e || typeof e != "object") return null;
274
274
  const t = e, n = t.title, r = t.type;
275
275
  if (typeof n != "string" || typeof r != "string") return null;
276
- const i = {
276
+ const s = {
277
277
  title: n,
278
278
  type: r
279
279
  };
280
- return t.payload !== void 0 && (i.payload = t.payload), i;
280
+ return t.payload !== void 0 && (s.payload = t.payload), s;
281
281
  }
282
282
  var G = {
283
283
  ProductGrid: ({ element: e, renderElement: t, context: n }) => {
284
284
  const r = document.createElement("div");
285
285
  r.className = "gengage-simrel-grid", r.setAttribute("role", "list");
286
- const i = e.props?.columns;
287
- let s;
288
- typeof i == "number" && Number.isFinite(i) && i > 0 ? s = Math.floor(i) : typeof n.gridColumns == "number" && Number.isFinite(n.gridColumns) && n.gridColumns > 0 && (s = Math.floor(n.gridColumns)), s !== void 0 && r.style.setProperty("--gengage-simrel-columns", String(s));
286
+ const s = e.props?.columns;
287
+ let i;
288
+ typeof s == "number" && Number.isFinite(s) && s > 0 ? i = Math.floor(s) : typeof n.gridColumns == "number" && Number.isFinite(n.gridColumns) && n.gridColumns > 0 && (i = Math.floor(n.gridColumns)), i !== void 0 && r.style.setProperty("--gengage-simrel-columns", String(i));
289
289
  for (const a of e.children ?? []) {
290
290
  const d = t(a);
291
291
  d && r.appendChild(d);
@@ -299,9 +299,9 @@ var G = {
299
299
  ProductCard: ({ element: e, context: t }) => {
300
300
  const n = P(e.props?.product ?? e.props);
301
301
  if (!n) return null;
302
- const r = e.props?.index, i = typeof r == "number" && Number.isFinite(r) ? r : 0, s = e.props?.discountType, a = s === "strike-through" || s === "badge" ? s : t.discountType, d = {
302
+ const r = e.props?.index, s = typeof r == "number" && Number.isFinite(r) ? r : 0, i = e.props?.discountType, a = i === "strike-through" || i === "badge" || i === "inline" ? i : t.discountType, d = {
303
303
  product: n,
304
- index: i,
304
+ index: s,
305
305
  onClick: t.onClick,
306
306
  onAddToCart: t.onAddToCart,
307
307
  i18n: t.i18n
@@ -327,13 +327,13 @@ var G = {
327
327
  };
328
328
  typeof d.highlight == "string" && (l.highlight = d.highlight), r.push(l);
329
329
  }
330
- const i = {
330
+ const s = {
331
331
  groups: r,
332
332
  onClick: t.onClick,
333
333
  onAddToCart: t.onAddToCart,
334
334
  i18n: t.i18n
335
- }, s = e.props?.columns;
336
- return typeof s == "number" && Number.isFinite(s) && s > 0 ? i.columns = Math.floor(s) : typeof t.gridColumns == "number" && Number.isFinite(t.gridColumns) && t.gridColumns > 0 && (i.columns = Math.floor(t.gridColumns)), t.discountType !== void 0 && (i.discountType = t.discountType), t.renderCard !== void 0 && (i.renderCard = t.renderCard), t.renderCardElement !== void 0 && (i.renderCardElement = t.renderCardElement), t.onGroupingActivate !== void 0 && (i.onGroupingActivate = t.onGroupingActivate), ie(i);
335
+ }, i = e.props?.columns;
336
+ return typeof i == "number" && Number.isFinite(i) && i > 0 ? s.columns = Math.floor(i) : typeof t.gridColumns == "number" && Number.isFinite(t.gridColumns) && t.gridColumns > 0 && (s.columns = Math.floor(t.gridColumns)), t.discountType !== void 0 && (s.discountType = t.discountType), t.renderCard !== void 0 && (s.renderCard = t.renderCard), t.renderCardElement !== void 0 && (s.renderCardElement = t.renderCardElement), t.onGroupingActivate !== void 0 && (s.onGroupingActivate = t.onGroupingActivate), ie(s);
337
337
  },
338
338
  EmptyState: ({ element: e, context: t }) => {
339
339
  const n = document.createElement("div");
@@ -344,25 +344,25 @@ var G = {
344
344
  AddToCartButton: ({ element: e, context: t }) => {
345
345
  const n = e.props?.sku, r = e.props?.cartCode;
346
346
  if (typeof n != "string" || typeof r != "string") return null;
347
- const i = document.createElement("button");
348
- i.className = "gengage-simrel-atc gengage-chat-product-card-cta", i.type = "button";
349
- const s = e.props?.label;
350
- return i.textContent = typeof s == "string" ? s : t.i18n.addToCartButton, i.addEventListener("click", (a) => {
347
+ const s = document.createElement("button");
348
+ s.className = "gengage-simrel-atc gengage-chat-product-card-cta", s.type = "button";
349
+ const i = e.props?.label;
350
+ return s.textContent = typeof i == "string" ? i : t.i18n.addToCartButton, s.addEventListener("click", (a) => {
351
351
  a.preventDefault(), a.stopPropagation(), t.onAddToCart({
352
352
  sku: n,
353
353
  quantity: 1,
354
354
  cartCode: r
355
355
  });
356
- }), i;
356
+ }), s;
357
357
  },
358
358
  QuickActions: ({ element: e, context: t }) => {
359
359
  const n = document.createElement("div");
360
360
  n.className = "gengage-simrel-quick-actions";
361
361
  const r = e.props?.actions;
362
362
  if (!Array.isArray(r) || !t.onAction) return n;
363
- for (const i of r) {
364
- if (!i || typeof i != "object") continue;
365
- const s = i, a = s.label, d = se(s.action);
363
+ for (const s of r) {
364
+ if (!s || typeof s != "object") continue;
365
+ const i = s, a = i.label, d = se(i.action);
366
366
  if (typeof a != "string" || !d) continue;
367
367
  const m = document.createElement("button");
368
368
  m.className = "gengage-simrel-quick-action", m.type = "button", m.textContent = a, m.addEventListener("click", (l) => {
@@ -375,8 +375,8 @@ var G = {
375
375
  if (!e.children || e.children.length === 0) return null;
376
376
  const n = document.createElement("div");
377
377
  for (const r of e.children) {
378
- const i = t(r);
379
- i && n.appendChild(i);
378
+ const s = t(r);
379
+ s && n.appendChild(s);
380
380
  }
381
381
  return n;
382
382
  };
@@ -514,15 +514,15 @@ var pe = class extends J {
514
514
  this._abortController = t;
515
515
  const n = t.signal;
516
516
  let r = !1;
517
- const i = setTimeout(() => {
517
+ const s = setTimeout(() => {
518
518
  r = !0, t.abort();
519
519
  }, this._resolveRequestTimeoutMs());
520
- if (n.addEventListener("abort", () => clearTimeout(i), { once: !0 }), !this._contentEl) return;
520
+ if (n.addEventListener("abort", () => clearTimeout(s), { once: !0 }), !this._contentEl) return;
521
521
  this._contentEl.innerHTML = "", this._contentEl.style.display = "";
522
- const s = document.createElement("div");
523
- s.className = "gengage-simrel-loading", s.dataset.gengagePart = "simrel-loading";
522
+ const i = document.createElement("div");
523
+ i.className = "gengage-simrel-loading", i.dataset.gengagePart = "simrel-loading";
524
524
  const a = document.createElement("div");
525
- a.className = "gengage-simrel-spinner", a.dataset.gengagePart = "simrel-loading-spinner", s.appendChild(a), this._contentEl.appendChild(s);
525
+ a.className = "gengage-simrel-spinner", a.dataset.gengagePart = "simrel-loading-spinner", i.appendChild(a), this._contentEl.appendChild(i);
526
526
  const d = { middlewareUrl: this.config.middlewareUrl }, m = X({
527
527
  source: "simrel",
528
528
  locale: this.config.locale
@@ -582,7 +582,7 @@ var pe = class extends J {
582
582
  }), u.appendChild(y), this._contentEl.appendChild(u);
583
583
  }
584
584
  } finally {
585
- clearTimeout(i), m();
585
+ clearTimeout(s), m();
586
586
  }
587
587
  }
588
588
  _clampGridColumns(e) {
@@ -618,28 +618,28 @@ var pe = class extends J {
618
618
  return n !== void 0 && (t.gridColumns = n), t;
619
619
  }
620
620
  _renderUISpec(e) {
621
- const t = this._resolveUISpecRegistry(), n = this._buildRenderContext(), r = this.config.renderer?.unknownRenderer ?? O, i = (a, d) => ae(a, d, t, r), s = this.config.renderer?.renderUISpec;
622
- return s ? s(e, n, {
621
+ const t = this._resolveUISpecRegistry(), n = this._buildRenderContext(), r = this.config.renderer?.unknownRenderer ?? O, s = (a, d) => ae(a, d, t, r), i = this.config.renderer?.renderUISpec;
622
+ return i ? i(e, n, {
623
623
  registry: t,
624
624
  unknownRenderer: r,
625
- defaultRender: i
626
- }) : i(e, n);
625
+ defaultRender: s
626
+ }) : s(e, n);
627
627
  }
628
628
  _buildProductsSpec(e) {
629
629
  const t = {}, n = [];
630
- for (let s = 0; s < e.length; s++) {
631
- const a = e[s], d = `product-${s}`;
630
+ for (let i = 0; i < e.length; i++) {
631
+ const a = e[i], d = `product-${i}`;
632
632
  n.push(d), t[d] = {
633
633
  type: "ProductCard",
634
634
  props: {
635
635
  product: a,
636
- index: s,
636
+ index: i,
637
637
  discountType: this.config.discountType
638
638
  }
639
639
  };
640
640
  }
641
- const r = { layout: "grid" }, i = this._clampGridColumns(this.config.gridColumns);
642
- return i !== void 0 && (r.columns = i), t.root = {
641
+ const r = { layout: "grid" }, s = this._clampGridColumns(this.config.gridColumns);
642
+ return s !== void 0 && (r.columns = s), t.root = {
643
643
  type: "ProductGrid",
644
644
  props: r,
645
645
  children: n
@@ -1,5 +1,5 @@
1
1
  import { A as m, D as h, _ as u, j as f, v as p } from "./context-BBuSsXZ9.js";
2
- import { t as b } from "./widget-base-BcrlFdYt.js";
2
+ import { t as b } from "./widget-base-DTsBXrHi.js";
3
3
  import { t as y } from "./locale-CfqNifrU.js";
4
4
  var g = { findSimilarLabel: "Benzerlerini Bul" }, _ = { findSimilarLabel: "Find Similar" };
5
5
  function S(t, n) {
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}.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}}
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%;min-height:44px;color:var(--text-secondary);background-size:220% 100%;border-radius:14px;align-items:center;gap:10px;padding:0 16px;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%;min-height:48px;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;align-self:center;font-size:13px;line-height:1.35;display:block}:where(.gds-progress-dots){flex-shrink:0;align-items:center;gap:6px;min-height:20px;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}}
@@ -44,4 +44,4 @@
44
44
  transform: translateY(0);
45
45
  }
46
46
  }
47
- `,document.head.appendChild(e)}var f=null;function Y(){if(f!==null)return f;try{f=localStorage.getItem("gengage:debug")==="1"}catch{f=!1}return f}function S(e,t,i){if(!Y())return;const n=[`[gengage:${e}]`,t];i!==void 0&&n.push(i),console.debug(...n)}var j=("0.5.2".trim(),"0.5.2".trim()),J=("iife-build".trim(),"iife-build".trim());function K(){if(typeof window>"u")return;const e=window;e.__gengageSdkRuntimeInfoLogged||(e.__gengageSdkRuntimeInfoLogged=!0,console.info(`[gengage] @gengage/assistant-fe v${j} (${J})`))}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=U(e.theme);K(),this.config={...e,theme:t,session:N(e.session)},this.root=this._resolveMount(e.mountTarget),this._applyTheme(t),O();const i=x("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._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)}emit(e,...t){this._handlers.get(e)?.forEach(i=>i(...t))}addCleanup(e){this._cleanups.push(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 s=h(this.config);if(!s)return;const o=this.config.imageUrl,g=typeof o=="string"&&L(o)?o:void 0;if(F(this._label,"findSimilar"),R(s),this.config.onFindSimilar){this.config.onFindSimilar(g?{sku:s,imageUrl:g}:{sku:s});return}const u=this.config.chat;if(!u)return;const a={title:this._label,type:"findSimilar",payload:{sku:s}};u.openWithAction(a,{sku:s})}),t==="inline-card"){const r=this._createInlineCard(e,i);this._inlineFrame=r,this.root.appendChild(r)}else this.root.appendChild(i);n(),k("simbut")}_createInlineCard(e,t){const i=e.inlineCard,n=typeof i?.title=="string"?i.title.trim():"",r=typeof i?.description=="string"?i.description.trim():"",s=typeof i?.imageUrl=="string"?i.imageUrl.trim():"",o=document.createElement("section");o.className="gengage-simbut-inline-card",o.dataset.gengagePart="simbut-inline-card";const g=document.createElement("div");if(g.className="gengage-simbut-inline-copy",g.dataset.gengagePart="simbut-inline-copy",n){const a=document.createElement("h4");a.className="gengage-simbut-inline-title",a.dataset.gengagePart="simbut-inline-title",a.textContent=n,g.appendChild(a)}if(r){const a=document.createElement("p");a.className="gengage-simbut-inline-description",a.dataset.gengagePart="simbut-inline-description",a.textContent=r,g.appendChild(a)}g.children.length>0&&o.appendChild(g);const u=document.createElement("div");if(u.className="gengage-simbut-inline-action",u.dataset.gengagePart="simbut-inline-action",u.appendChild(t),o.appendChild(u),s&&I(s)){const a=document.createElement("img");a.className="gengage-simbut-inline-image",a.dataset.gengagePart="simbut-inline-image",a.src=s,a.alt=typeof i?.imageAlt=="string"?i.imageAlt:"",a.loading="lazy",a.addEventListener("error",()=>{a.style.display="none"},{once:!0}),o.appendChild(a)}return o}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||{});
47
+ `,document.head.appendChild(e)}var f=null;function Y(){if(f!==null)return f;try{f=localStorage.getItem("gengage:debug")==="1"}catch{f=!1}return f}function S(e,t,i){if(!Y())return;const n=[`[gengage:${e}]`,t];i!==void 0&&n.push(i),console.debug(...n)}var j=("0.5.4".trim(),"0.5.4".trim()),J=("iife-build".trim(),"iife-build".trim());function K(){if(typeof window>"u")return;const e=window;e.__gengageSdkRuntimeInfoLogged||(e.__gengageSdkRuntimeInfoLogged=!0,console.info(`[gengage] @gengage/assistant-fe v${j} (${J})`))}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=U(e.theme);K(),this.config={...e,theme:t,session:N(e.session)},this.root=this._resolveMount(e.mountTarget),this._applyTheme(t),O();const i=x("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._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)}emit(e,...t){this._handlers.get(e)?.forEach(i=>i(...t))}addCleanup(e){this._cleanups.push(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 s=h(this.config);if(!s)return;const o=this.config.imageUrl,g=typeof o=="string"&&L(o)?o:void 0;if(F(this._label,"findSimilar"),R(s),this.config.onFindSimilar){this.config.onFindSimilar(g?{sku:s,imageUrl:g}:{sku:s});return}const u=this.config.chat;if(!u)return;const a={title:this._label,type:"findSimilar",payload:{sku:s}};u.openWithAction(a,{sku:s})}),t==="inline-card"){const r=this._createInlineCard(e,i);this._inlineFrame=r,this.root.appendChild(r)}else this.root.appendChild(i);n(),k("simbut")}_createInlineCard(e,t){const i=e.inlineCard,n=typeof i?.title=="string"?i.title.trim():"",r=typeof i?.description=="string"?i.description.trim():"",s=typeof i?.imageUrl=="string"?i.imageUrl.trim():"",o=document.createElement("section");o.className="gengage-simbut-inline-card",o.dataset.gengagePart="simbut-inline-card";const g=document.createElement("div");if(g.className="gengage-simbut-inline-copy",g.dataset.gengagePart="simbut-inline-copy",n){const a=document.createElement("h4");a.className="gengage-simbut-inline-title",a.dataset.gengagePart="simbut-inline-title",a.textContent=n,g.appendChild(a)}if(r){const a=document.createElement("p");a.className="gengage-simbut-inline-description",a.dataset.gengagePart="simbut-inline-description",a.textContent=r,g.appendChild(a)}g.children.length>0&&o.appendChild(g);const u=document.createElement("div");if(u.className="gengage-simbut-inline-action",u.dataset.gengagePart="simbut-inline-action",u.appendChild(t),o.appendChild(u),s&&I(s)){const a=document.createElement("img");a.className="gengage-simbut-inline-image",a.dataset.gengagePart="simbut-inline-image",a.src=s,a.alt=typeof i?.imageAlt=="string"?i.imageAlt:"",a.loading="lazy",a.addEventListener("error",()=>{a.style.display="none"},{once:!0}),o.appendChild(a)}return o}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
@@ -1,4 +1,4 @@
1
- import { n as e, t as a } from "./simbut-COq7dQRk.js";
1
+ import { n as e, t as a } from "./simbut-DNxmYY0Q.js";
2
2
  export {
3
3
  a as GengageSimBut,
4
4
  e as createSimButWidget