@gengage/assistant-fe 0.3.3 → 0.3.5
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 +12 -0
- package/dist/assistant-fe.css +1 -1
- package/dist/chat/components/AITopPicks.d.ts.map +1 -1
- package/dist/chat/components/GroundingReviewCard.d.ts.map +1 -1
- package/dist/chat/components/ReviewHighlights.d.ts +3 -1
- package/dist/chat/components/ReviewHighlights.d.ts.map +1 -1
- package/dist/chat/components/renderUISpec.d.ts.map +1 -1
- package/dist/chat/index.d.ts +12 -0
- package/dist/chat/index.d.ts.map +1 -1
- package/dist/chat/locales/en.d.ts.map +1 -1
- package/dist/chat/locales/tr.d.ts.map +1 -1
- package/dist/chat/types.d.ts +16 -5
- package/dist/chat/types.d.ts.map +1 -1
- package/dist/chat/utils/ui.d.ts +11 -0
- package/dist/chat/utils/ui.d.ts.map +1 -0
- package/dist/chat-CCSPwPmr.cjs +13 -0
- package/dist/chat-CCSPwPmr.cjs.map +1 -0
- package/dist/{chat-DrbdN7yo.js → chat-tG_XXqmm.js} +507 -394
- package/dist/chat-tG_XXqmm.js.map +1 -0
- package/dist/chat.cjs +1 -1
- package/dist/chat.iife.js +14 -14
- package/dist/chat.iife.js.map +1 -1
- package/dist/chat.js +1 -1
- package/dist/common/overlay.d.ts +2 -0
- package/dist/common/overlay.d.ts.map +1 -1
- package/dist/common/protocol-adapter.d.ts.map +1 -1
- package/dist/common/types.d.ts +1 -1
- package/dist/{common-DuTZ9psy.cjs → common-BQVcjB7s.cjs} +2 -2
- package/dist/{common-DuTZ9psy.cjs.map → common-BQVcjB7s.cjs.map} +1 -1
- package/dist/{common-4RfhKX4z.js → common-BtEjhpH-.js} +3 -3
- package/dist/{common-4RfhKX4z.js.map → common-BtEjhpH-.js.map} +1 -1
- package/dist/common.cjs +1 -1
- package/dist/common.js +4 -4
- package/dist/index.cjs +1 -1
- package/dist/index.js +6 -6
- package/dist/native-webview-CEgjvGWF.cjs +2 -0
- package/dist/native-webview-CEgjvGWF.cjs.map +1 -0
- package/dist/{native-webview-BHGSwpmL.js → native-webview-QLwuablV.js} +6 -6
- package/dist/native-webview-QLwuablV.js.map +1 -0
- package/dist/native.cjs +1 -1
- package/dist/native.iife.js +14 -14
- package/dist/native.iife.js.map +1 -1
- package/dist/native.js +1 -1
- package/dist/product-utils-BEnINMdx.cjs +2 -0
- package/dist/{product-utils-CUJMklz6.cjs.map → product-utils-BEnINMdx.cjs.map} +1 -1
- package/dist/{product-utils-CO7BBSGE.js → product-utils-BUalkWz3.js} +2 -2
- package/dist/{product-utils-CO7BBSGE.js.map → product-utils-BUalkWz3.js.map} +1 -1
- package/dist/{qna-DbmSBAP2.js → qna-C7XoZSSw.js} +2 -2
- package/dist/{qna-DbmSBAP2.js.map → qna-C7XoZSSw.js.map} +1 -1
- package/dist/{qna-DCtpM8u1.cjs → qna-cn9DHuBF.cjs} +2 -2
- package/dist/{qna-DCtpM8u1.cjs.map → qna-cn9DHuBF.cjs.map} +1 -1
- package/dist/qna.cjs +1 -1
- package/dist/qna.css +1 -1
- package/dist/qna.iife.js +1 -1
- package/dist/qna.iife.js.map +1 -1
- package/dist/qna.js +1 -1
- package/dist/{schemas-BhJLrCGk.js → schemas-Dcfz5vXW.js} +8 -19
- package/dist/schemas-Dcfz5vXW.js.map +1 -0
- package/dist/{schemas-Byx40x9I.cjs → schemas-DeE-RHGa.cjs} +2 -2
- package/dist/schemas-DeE-RHGa.cjs.map +1 -0
- package/dist/simbut.css +1 -1
- package/dist/{simrel-Bvsumvpl.cjs → simrel-CVKjhHee.cjs} +2 -2
- package/dist/{simrel-Bvsumvpl.cjs.map → simrel-CVKjhHee.cjs.map} +1 -1
- package/dist/{simrel-Dd_bVL7o.js → simrel-R3mVoFQG.js} +3 -3
- package/dist/{simrel-Dd_bVL7o.js.map → simrel-R3mVoFQG.js.map} +1 -1
- package/dist/simrel.cjs +1 -1
- package/dist/simrel.css +1 -1
- package/dist/simrel.iife.js +1 -1
- package/dist/simrel.iife.js.map +1 -1
- package/dist/simrel.js +1 -1
- package/package.json +1 -1
- package/dist/chat-CLbwX39O.cjs +0 -13
- package/dist/chat-CLbwX39O.cjs.map +0 -1
- package/dist/chat-DrbdN7yo.js.map +0 -1
- package/dist/native-webview-BHGSwpmL.js.map +0 -1
- package/dist/native-webview-DMWWHLVh.cjs +0 -2
- package/dist/native-webview-DMWWHLVh.cjs.map +0 -1
- package/dist/product-utils-CUJMklz6.cjs +0 -2
- package/dist/schemas-BhJLrCGk.js.map +0 -1
- package/dist/schemas-Byx40x9I.cjs.map +0 -1
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){align-self:flex-start;max-width:85%}:where(.gds-progress-loader-panel){justify-content:flex-start;width:100%}: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;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;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,2 +1,2 @@
|
|
|
1
|
-
const e=require(`./schemas-Byx40x9I.cjs`),t=require(`./ga-datalayer-boRrTCtO.cjs`),n=require(`./product-utils-CUJMklz6.cjs`),r=require(`./connection-warning-BXw7TANB.cjs`);function i(e){let t=[];for(let n of Object.values(e))if(n.type===`ProductCard`&&n.props){let e=n.props.product??n.props;typeof e.sku==`string`&&typeof e.name==`string`&&t.push(e)}return t}function a(e){let t=e.headers.get(`Content-Type`)??``;return t.includes(`application/x-ndjson`)||t.includes(`text/event-stream`)}async function o(t,n){let r=[],a={onEvent:t=>{let n=e.p(t);!n||n.type!==`ui_spec`||r.push(...i(n.spec.elements))}};return n!==void 0&&(a.signal=n),await e.y(t,a),r}async function s(t,n,r){let i=e.d(`similar_products`,n),s={method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)};r!==void 0&&(s.signal=r);let c=await fetch(i,s);if(!c.ok)throw Error(`HTTP ${c.status}: ${c.statusText}`);if(a(c))return o(c,r);let l=await c.text();if(!l)throw Error(`Empty response body from similar_products endpoint`);try{return e.h(JSON.parse(l))}catch{throw Error(`Invalid JSON from similar_products endpoint`)}}async function c(t,n){let r=[],a=null,o={onEvent:t=>{let n=e.p(t);if(n){if(n.type===`metadata`&&n.meta){let e=n.meta.group_name;if(typeof e==`string`){a={name:e,products:[]};let t=n.meta.highlight;typeof t==`string`&&(a.highlight=t),r.push(a)}}n.type===`ui_spec`&&a&&a.products.push(...i(n.spec.elements))}}};return n!==void 0&&(o.signal=n),await e.y(t,o),r}async function l(t,n,r){let i=e.d(`product_groupings`,n),o={method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)};r!==void 0&&(o.signal=r);let s=await fetch(i,o);if(!s.ok)throw Error(`HTTP ${s.status}: ${s.statusText}`);if(a(s))return c(s,r);let l=await s.text();if(!l)return[];try{return e.m(JSON.parse(l))}catch{throw Error(`Invalid JSON from product_groupings endpoint`)}}function u(e){let{product:r,index:i,discountType:a,onClick:o,onAddToCart:s,renderCard:c}=e,l=e.i18n,u=e.pricing;if(e.renderCardElement){let t=e.renderCardElement(r,i);if(t)return t}if(c){let e=document.createElement(`div`);return e.className=`gengage-simrel-card gengage-simrel-card--custom gds-card gds-product-card gds-card-interactive`,e.dataset.gengagePart=`simrel-product-card`,e.innerHTML=t.V(c(r,i)),e.addEventListener(`click`,e=>{e.target.closest(`.gengage-simrel-atc`)||e.target.closest(`.gengage-chat-product-card-atc`)||o(r)}),e}let d=document.createElement(`article`);d.className=`gengage-simrel-card gengage-chat-product-card gds-card gds-product-card gds-card-interactive`,d.dataset.gengagePart=`simrel-product-card`,r.inStock===!1&&d.classList.add(`gengage-simrel-card--out-of-stock`),d.setAttribute(`role`,`listitem`),d.dataset.sku=r.sku;let f=document.createElement(`div`);if(f.className=`gengage-simrel-card-image gengage-chat-product-card-img-wrapper`,f.dataset.gengagePart=`simrel-product-card-image`,r.imageUrl&&t.R(r.imageUrl)){let e=document.createElement(`img`);e.className=`gengage-chat-product-card-img`,e.src=r.imageUrl,e.alt=r.name,e.loading=`lazy`,n.t(e),f.appendChild(e)}if(a===`badge`&&r.discountPercent&&r.discountPercent>0){let e=document.createElement(`span`);e.className=`gengage-simrel-badge gengage-chat-product-card-discount-badge`,e.textContent=`%${n.n(r.discountPercent)}`,f.appendChild(e)}d.appendChild(f);let p=document.createElement(`div`);if(p.className=`gengage-simrel-card-info gengage-chat-product-card-body`,p.dataset.gengagePart=`simrel-product-card-body`,r.brand){let e=document.createElement(`div`);e.className=`gengage-simrel-card-brand gengage-chat-product-card-brand`,e.textContent=r.brand,p.appendChild(e)}let m=document.createElement(`div`);if(m.className=`gengage-simrel-card-name gengage-chat-product-card-name`,m.textContent=r.name,m.title=r.name,p.appendChild(m),r.rating!=null&&r.rating>0){let e=document.createElement(`div`);if(e.className=`gengage-simrel-card-rating gengage-chat-product-card-rating`,e.appendChild(n.i(r.rating)),r.reviewCount!=null){let t=document.createElement(`span`);t.className=`gengage-simrel-card-review-count gengage-chat-product-card-review-count`,t.textContent=` (${r.reviewCount})`,e.appendChild(t)}p.appendChild(e)}let h=document.createElement(`div`);if(h.className=`gengage-simrel-card-price gengage-chat-product-card-price`,r.originalPrice&&r.originalPrice!==r.price&&(a===`strike-through`||!a)){let e=document.createElement(`span`);e.className=`gengage-simrel-card-price-original gengage-chat-product-card-original-price`,e.textContent=n.a(r.originalPrice,u),h.appendChild(e)}if(r.price&&parseFloat(r.price)>0){let e=document.createElement(`span`);e.className=`gengage-simrel-card-price-current gengage-chat-product-card-price-current`,e.textContent=n.a(r.price,u),h.appendChild(e)}p.appendChild(h),d.appendChild(p);let g=document.createElement(`button`);if(g.className=`gengage-simrel-card-cta gengage-chat-product-card-cta gds-btn gds-btn-secondary`,g.type=`button`,g.dataset.gengagePart=`simrel-product-card-cta`,g.textContent=l?.ctaLabel??`View`,g.addEventListener(`click`,e=>{e.preventDefault(),e.stopPropagation(),o(r)}),d.appendChild(g),r.inStock===!1){let e=document.createElement(`div`);e.className=`gengage-simrel-card-oos`,e.textContent=l?.outOfStockLabel??`Out of Stock`,d.appendChild(e)}else if(r.cartCode){let e=document.createElement(`button`);e.className=`gengage-simrel-atc gengage-simrel-atc-button gds-btn gds-btn-secondary`,e.type=`button`,e.textContent=l?.addToCartButton??`Add to Cart`,e.addEventListener(`click`,e=>{e.preventDefault(),e.stopPropagation(),s({sku:r.sku,quantity:1,cartCode:r.cartCode})}),d.appendChild(e)}return d.addEventListener(`click`,e=>{e.target.closest(`.gengage-simrel-atc`)||e.target.closest(`.gengage-chat-product-card-atc`)||e.target.closest(`.gengage-chat-product-card-cta`)||o(r)}),d}function d(e){let t=document.createElement(`div`);t.className=`gengage-simrel-grid`,t.setAttribute(`role`,`list`),t.setAttribute(`aria-label`,e.i18n?.similarProductsAriaLabel??`Similar products`),e.columns&&t.style.setProperty(`--gengage-simrel-columns`,String(e.columns));for(let n=0;n<e.products.length;n++){let r={product:e.products[n],index:n,onClick:e.onClick,onAddToCart:e.onAddToCart};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);let i=u(r);t.appendChild(i)}return e.products.length===0&&(t.style.display=`none`,t.dataset.empty=`true`),t}var f=0;function p(e){let t=f++,n=document.createElement(`div`);if(n.className=`gengage-simrel-groups`,n.dataset.gengagePart=`simrel-groups`,e.groups.length===0)return n.style.display=`none`,n.dataset.empty=`true`,n;let r=document.createElement(`div`);r.className=`gengage-simrel-tabs gds-toolbar`,r.dataset.gengagePart=`simrel-tab-bar`,r.setAttribute(`role`,`tablist`);let i=[],a=[],o=t=>{let n={products:t.products,onClick:e.onClick,onAddToCart:e.onAddToCart};return e.i18n!==void 0&&(n.i18n=e.i18n),e.discountType!==void 0&&(n.discountType=e.discountType),e.renderCard!==void 0&&(n.renderCard=e.renderCard),e.renderCardElement!==void 0&&(n.renderCardElement=e.renderCardElement),e.columns!==void 0&&(n.columns=e.columns),n},s=t=>{for(let e=0;e<i.length;e++){let n=e===t;i[e].classList.toggle(`gengage-simrel-tab--active`,n),i[e].setAttribute(`aria-selected`,String(n)),i[e].tabIndex=n?0:-1}let n=e.groups[t],r=a[t];r.innerHTML=``;let s=d(o(n));r.appendChild(s);for(let e=0;e<a.length;e++){let n=e===t;a[e].style.display=n?``:`none`,a[e].tabIndex=n?0:-1}};for(let n=0;n<e.groups.length;n++){let o=e.groups[n],c=`gengage-simrel-tab-${t}-${n}`,l=`gengage-simrel-panel-${t}-${n}`,u=document.createElement(`button`);u.className=`gengage-simrel-tab gds-tab`,u.type=`button`,u.dataset.gengagePart=`simrel-tab`,u.id=c,u.textContent=o.name,u.setAttribute(`role`,`tab`),u.setAttribute(`aria-controls`,l),u.setAttribute(`aria-selected`,String(n===0)),u.tabIndex=n===0?0:-1,n===0&&u.classList.add(`gengage-simrel-tab--active`),u.addEventListener(`click`,()=>s(n)),u.addEventListener(`keydown`,t=>{let r=-1;t.key===`ArrowRight`||t.key===`ArrowDown`?r=(n+1)%e.groups.length:t.key===`ArrowLeft`||t.key===`ArrowUp`?r=(n-1+e.groups.length)%e.groups.length:t.key===`Home`?r=0:t.key===`End`&&(r=e.groups.length-1),r>=0&&(t.preventDefault(),s(r),i[r].focus())}),i.push(u),r.appendChild(u);let d=document.createElement(`div`);d.className=`gengage-simrel-tab-panel`,d.dataset.gengagePart=`simrel-tab-panel`,d.id=l,d.setAttribute(`role`,`tabpanel`),d.setAttribute(`aria-labelledby`,c),d.tabIndex=n===0?0:-1,n!==0&&(d.style.display=`none`),a.push(d)}let c=document.createElement(`button`);c.type=`button`,c.className=`gengage-simrel-tabs-arrow gengage-simrel-tabs-arrow--left`,c.setAttribute(`aria-label`,e.i18n?.scrollTabsLeft??`Scroll tabs left`),c.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>`;let l=document.createElement(`button`);l.type=`button`,l.className=`gengage-simrel-tabs-arrow gengage-simrel-tabs-arrow--right`,l.setAttribute(`aria-label`,e.i18n?.scrollTabsRight??`Scroll tabs right`),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="9 18 15 12 9 6"/></svg>`,c.addEventListener(`click`,()=>{r.scrollBy({left:-200,behavior:`smooth`})}),l.addEventListener(`click`,()=>{r.scrollBy({left:200,behavior:`smooth`})});let u=()=>{let e=r.scrollLeft<=4,t=r.scrollLeft+r.clientWidth>=r.scrollWidth-4;c.style.display=e?`none`:``,l.style.display=t?`none`:``,r.classList.toggle(`gengage-simrel-tabs--peek-right`,!t),r.classList.toggle(`gengage-simrel-tabs--peek-left`,!e)};r.addEventListener(`scroll`,u,{passive:!0}),typeof ResizeObserver<`u`&&new ResizeObserver(u).observe(r),c.style.display=`none`,l.style.display=`none`,requestAnimationFrame(u);let p=document.createElement(`div`);p.className=`gengage-simrel-tabs-wrapper`,p.appendChild(c),p.appendChild(r),p.appendChild(l),n.appendChild(p);let m=a[0],h=d(o(e.groups[0]));m.appendChild(h);for(let e of a)n.appendChild(e);return n}function m(e){if(!e||typeof e!=`object`)return null;let t=e;if(typeof t.sku!=`string`||typeof t.name!=`string`||typeof t.url!=`string`)return null;let n={sku:t.sku,name:t.name,url:t.url},r=t.imageUrl;typeof r==`string`&&(n.imageUrl=r);let i=t.price;typeof i==`string`&&(n.price=i);let a=t.originalPrice;typeof a==`string`&&(n.originalPrice=a);let o=t.discountPercent;typeof o==`number`&&(n.discountPercent=o);let s=t.brand;typeof s==`string`&&(n.brand=s);let c=t.rating;typeof c==`number`&&(n.rating=c);let l=t.reviewCount;typeof l==`number`&&(n.reviewCount=l);let u=t.cartCode;typeof u==`string`&&(n.cartCode=u);let d=t.inStock;typeof d==`boolean`&&(n.inStock=d);let f=t.extras;return typeof f==`object`&&f&&(n.extras=f),n}function h(e){if(!e||typeof e!=`object`)return null;let t=e,n=t.title,r=t.type;if(typeof n!=`string`||typeof r!=`string`)return null;let i={title:n,type:r};return t.payload!==void 0&&(i.payload=t.payload),i}var g={ProductGrid:({element:e,renderElement:t,context:n})=>{let r=document.createElement(`div`);r.className=`gengage-simrel-grid`,r.setAttribute(`role`,`list`);let i=e.props?.columns,a;typeof i==`number`&&Number.isFinite(i)&&i>0?a=Math.floor(i):typeof n.gridColumns==`number`&&Number.isFinite(n.gridColumns)&&n.gridColumns>0&&(a=Math.floor(n.gridColumns)),a!==void 0&&r.style.setProperty(`--gengage-simrel-columns`,String(a));for(let n of e.children??[]){let e=t(n);e&&r.appendChild(e)}if(r.children.length===0){let e=document.createElement(`div`);e.className=`gengage-simrel-empty`,e.textContent=n.i18n.emptyStateMessage,r.appendChild(e)}return r},ProductCard:({element:e,context:t})=>{let n=m(e.props?.product??e.props);if(!n)return null;let r=e.props?.index,i=typeof r==`number`&&Number.isFinite(r)?r:0,a=e.props?.discountType,o=a===`strike-through`||a===`badge`?a:t.discountType,s={product:n,index:i,onClick:t.onClick,onAddToCart:t.onAddToCart,i18n:t.i18n};return o!==void 0&&(s.discountType=o),t.renderCard!==void 0&&(s.renderCard=t.renderCard),t.renderCardElement!==void 0&&(s.renderCardElement=t.renderCardElement),t.pricing!==void 0&&(s.pricing=t.pricing),u(s)},GroupTabs:({element:e,context:t})=>{let n=e.props?.groups;if(!Array.isArray(n))return null;let r=[];for(let e of n){if(!e||typeof e!=`object`)continue;let t=e;if(typeof t.name!=`string`)continue;let n=[];if(Array.isArray(t.products))for(let e of t.products){let t=m(e);t&&n.push(t)}let i={name:t.name,products:n};typeof t.highlight==`string`&&(i.highlight=t.highlight),r.push(i)}let i={groups:r,onClick:t.onClick,onAddToCart:t.onAddToCart,i18n:t.i18n},a=e.props?.columns;return typeof a==`number`&&Number.isFinite(a)&&a>0?i.columns=Math.floor(a):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),p(i)},EmptyState:({element:e,context:t})=>{let n=document.createElement(`div`);n.className=`gengage-simrel-empty`;let r=e.props?.message;return n.textContent=typeof r==`string`?r:t.i18n.emptyStateMessage,n},AddToCartButton:({element:e,context:t})=>{let n=e.props?.sku,r=e.props?.cartCode;if(typeof n!=`string`||typeof r!=`string`)return null;let i=document.createElement(`button`);i.className=`gengage-simrel-atc gengage-chat-product-card-cta`,i.type=`button`;let a=e.props?.label;return i.textContent=typeof a==`string`?a:t.i18n.addToCartButton,i.addEventListener(`click`,e=>{e.preventDefault(),e.stopPropagation(),t.onAddToCart({sku:n,quantity:1,cartCode:r})}),i},QuickActions:({element:e,context:t})=>{let n=document.createElement(`div`);n.className=`gengage-simrel-quick-actions`;let r=e.props?.actions;if(!Array.isArray(r)||!t.onAction)return n;for(let e of r){if(!e||typeof e!=`object`)continue;let r=e,i=r.label,a=h(r.action);if(typeof i!=`string`||!a)continue;let o=document.createElement(`button`);o.className=`gengage-simrel-quick-action`,o.type=`button`,o.textContent=i,o.addEventListener(`click`,e=>{e.preventDefault(),e.stopPropagation(),t.onAction?.(a)}),n.appendChild(o)}return n}},_=({element:e,renderElement:t})=>{if(!e.children||e.children.length===0)return null;let n=document.createElement(`div`);for(let r of e.children){let e=t(r);e&&n.appendChild(e)}return n};function v(){return{...g}}function y(t,n,r=g,i=_){return e.C({spec:t,context:n,registry:r,containerClassName:`gengage-simrel-uispec`,unknownRenderer:i})}var b={similarProductsAriaLabel:`Benzer ürünler`,emptyStateMessage:`Benzer ürün bulunamadı.`,addToCartButton:`Sepete Ekle`,ctaLabel:`İncele`,outOfStockLabel:`Stokta Yok`,decreaseLabel:`Azalt`,increaseLabel:`Artır`,errorLoadingMessage:`Benzer ürünler yüklenemedi.`,retryButtonText:`Tekrar dene`,priceSuffix:` TL`,scrollTabsLeft:`Sola kaydır`,scrollTabsRight:`Sağa kaydır`},x={similarProductsAriaLabel:`Similar products`,emptyStateMessage:`No similar products found.`,addToCartButton:`Add to cart`,ctaLabel:`View`,outOfStockLabel:`Out of Stock`,decreaseLabel:`Decrease`,increaseLabel:`Increase`,errorLoadingMessage:`Could not load similar products.`,retryButtonText:`Try again`,priceSuffix:``,scrollTabsLeft:`Scroll tabs left`,scrollTabsRight:`Scroll tabs right`};function S(e){return e?e.toLowerCase().split(`-`)[0]??`tr`:`tr`}function C(e){switch(S(e)){case`en`:return x;default:return b}}var w=e.o({sku:e.c(),name:e.c(),imageUrl:e.c().url().optional(),price:e.c().optional(),originalPrice:e.c().optional(),discountPercent:e.a().optional(),url:e.c().url(),brand:e.c().optional(),rating:e.a().min(0).max(5).optional(),reviewCount:e.a().int().nonnegative().optional()}),T=e.o({layout:e.t([`grid`,`carousel`]).optional(),columns:e.a().int().positive().optional()}),E=e.o({product:w,index:e.a().int().nonnegative(),discountType:e.t([`strike-through`,`badge`]).optional()}),D=e.o({sku:e.c(),label:e.c().optional(),cartCode:e.c()}),O=e.o({actions:e.n(e.o({label:e.c(),action:e.o({title:e.c(),type:e.c(),payload:e.u().optional()})}))}),k=e.o({message:e.c().optional()}),A={components:{ProductGrid:{schema:T,description:`Outer grid or carousel container for similar products.`},ProductCard:{schema:E,description:`A single product card with image, title, price, and actions.`},AddToCartButton:{schema:D,description:`Add-to-cart CTA rendered inside or below a product card.`},QuickActions:{schema:O,description:`A row of quick-action buttons below product info.`},EmptyState:{schema:k,description:`Empty state shown when no similar products are available.`}}},j=class extends t.y{constructor(...e){super(...e),this._abortController=null,this._contentEl=null,this._lastResultCount=-1,this._i18n=b}async onInit(e){this._i18n=this._resolveI18n(e),this._contentEl=document.createElement(`div`),this._contentEl.className=`gengage-simrel-container`,this._contentEl.dataset.gengagePart=`simrel-container`;let n=this._clampGridColumns(e.gridColumns);n!==void 0&&this._contentEl.style.setProperty(`--gengage-simrel-columns`,String(n)),this.root.appendChild(this._contentEl),this._lastSku=e.sku,await this._fetchAndRender(e.sku),t.c(`simrel`)}onUpdate(e){let t=e.sku;!t||t===this._lastSku&&this._lastResultCount!==0||(this._lastSku=t,this._fetchAndRender(t))}onShow(){this._contentEl&&(this._contentEl.style.opacity=`0`,this._contentEl.style.transition=`opacity 0.3s ease-in`,requestAnimationFrame(()=>{this._contentEl&&(this._contentEl.style.opacity=`1`)}))}onHide(){}onDestroy(){this._abort(),this._contentEl&&=(this._contentEl.remove(),null)}_handleProductClick(e){let n={sku:e.sku,name:e.name,url:e.url};if(e.imageUrl!==void 0&&(n.imageUrl=e.imageUrl),e.price!==void 0&&(n.price=e.price),e.originalPrice!==void 0&&(n.originalPrice=e.originalPrice),e.discountPercent!==void 0&&(n.discountPercent=e.discountPercent),e.brand!==void 0&&(n.brand=e.brand),e.rating!==void 0&&(n.rating=e.rating),e.reviewCount!==void 0&&(n.reviewCount=e.reviewCount),e.cartCode!==void 0&&(n.cartCode=e.cartCode),e.inStock!==void 0&&(n.inStock=e.inStock),this.config.onProductClick?.(n)===!1)return;t.p(e.sku,e.name);let r=this.config.session?.sessionId??null;t.P(`gengage:similar:product-click`,{sku:e.sku,url:e.url,sessionId:r}),this.config.onProductNavigate?.(e.url,e.sku,r)}_handleAddToCart(e){t.t(e.sku,e.quantity),this.config.onAddToCart?.(e),t.P(`gengage:similar:add-to-cart`,e),this.track(t.H(this.analyticsContext(),{attribution_source:`simrel`,attribution_action_id:crypto.randomUUID(),cart_value:0,currency:this.config.pricing?.currencyCode??`TRY`,line_items:e.quantity,sku:e.sku}))}_abort(){this._abortController?.abort(),this._abortController=null}_isSuperseded(e){return this._abortController?.signal!==e}async _fetchAndRender(e){this._abort(),this._abortController=new AbortController;let n=this._abortController.signal,i=setTimeout(()=>this._abortController?.abort(),1e4);if(n.addEventListener(`abort`,()=>clearTimeout(i)),!this._contentEl)return;this._contentEl.innerHTML=``,this._contentEl.style.display=``;let a=document.createElement(`div`);a.className=`gengage-simrel-loading`,a.dataset.gengagePart=`simrel-loading`;let o=document.createElement(`div`);o.className=`gengage-simrel-spinner`,o.dataset.gengagePart=`simrel-loading-spinner`,a.appendChild(o),this._contentEl.appendChild(a);let c={middlewareUrl:this.config.middlewareUrl},u=crypto.randomUUID(),d=Date.now(),f=r.n({source:`simrel`,locale:this.config.locale});this.track(t.Q(this.analyticsContext(),{endpoint:`similar_products`,request_id:u,widget:`simrel`}));try{let r={account_id:this.config.accountId,session_id:this.config.session?.sessionId??``,correlation_id:this.config.session?.sessionId??``,sku:e};this.config.domain!==void 0&&(r.domain=this.config.domain);let i=await s(r,c,n);if(this._lastResultCount=i.length,!this._contentEl)return;if(this._contentEl.innerHTML=``,i.length>0)try{let e=i.map(e=>e.sku),r=new Map(i.map(e=>[e.sku,e])),a=(await l({account_id:this.config.accountId,session_id:this.config.session?.sessionId??``,correlation_id:this.config.session?.sessionId??``,skus:e},c,n)).map(e=>({...e,products:e.products.map(e=>({...r.get(e.sku),...e})).filter(e=>typeof e.sku==`string`&&typeof e.name==`string`&&typeof e.url==`string`)})).filter(e=>e.products.length>0);if(a.length>0&&this._contentEl){let e=this._buildGroupsSpec(a),n=this._renderUISpec(e);this._contentEl.appendChild(n),t.h(`simrel`),this.track(t.X(this.analyticsContext(),{request_id:u,latency_ms:Date.now()-d,chunk_count:a.reduce((e,t)=>e+t.products.length,0),widget:`simrel`})),this.track(t.et(this.analyticsContext(),{message_count:a.reduce((e,t)=>e+t.products.length,0),history_ref:u,redaction_level:`none`,widget:`simrel`}));return}}catch{}if(this._isSuperseded(n))return;if(this._contentEl){let e=this._buildProductsSpec(i),t=this._renderUISpec(e);this._contentEl.appendChild(t)}i.length>0&&t.h(`simrel`),this.track(t.X(this.analyticsContext(),{request_id:u,latency_ms:Date.now()-d,chunk_count:i.length,widget:`simrel`})),this.track(t.et(this.analyticsContext(),{message_count:i.length,history_ref:u,redaction_level:`none`,widget:`simrel`}))}catch(e){if(e instanceof DOMException&&e.name===`AbortError`&&this._isSuperseded(n))return;if(t.P(`gengage:global:error`,{source:`simrel`,code:`FETCH_ERROR`,message:t.S(this.config.locale,e)}),this.track(t.Z(this.analyticsContext(),{request_id:u,error_code:`FETCH_ERROR`,error_message:e instanceof Error?e.message:String(e),widget:`simrel`})),this._contentEl){this._contentEl.innerHTML=``;let e=document.createElement(`div`);e.className=`gengage-simrel-error`;let t=document.createElement(`span`);t.textContent=this._i18n.errorLoadingMessage,e.appendChild(t);let n=document.createElement(`button`);n.className=`gengage-simrel-retry`,n.textContent=this._i18n.retryButtonText,n.addEventListener(`click`,()=>{this._fetchAndRender(this.config.sku)}),e.appendChild(n),this._contentEl.appendChild(e)}}finally{f()}}_clampGridColumns(e){if(!(e===void 0||typeof e!=`number`||!Number.isFinite(e)))return Math.max(1,Math.min(12,Math.floor(e)))}_resolveI18n(e){return{...C(e.locale),...e.i18n}}_resolveUISpecRegistry(){return e.x(v(),this.config.renderer?.registry)}_buildRenderContext(){let e=this.config.renderCard,t={onClick:e=>this._handleProductClick(e),onAddToCart:e=>this._handleAddToCart(e),i18n:this._i18n};this.config.discountType!==void 0&&(t.discountType=this.config.discountType),e!==void 0&&(t.renderCard=e),this.config.renderCardElement!==void 0&&(t.renderCardElement=this.config.renderCardElement),this.config.pricing!==void 0&&(t.pricing=this.config.pricing);let n=this._clampGridColumns(this.config.gridColumns);return n!==void 0&&(t.gridColumns=n),t}_renderUISpec(e){let t=this._resolveUISpecRegistry(),n=this._buildRenderContext(),r=this.config.renderer?.unknownRenderer??_,i=(e,n)=>y(e,n,t,r),a=this.config.renderer?.renderUISpec;return a?a(e,n,{registry:t,unknownRenderer:r,defaultRender:i}):i(e,n)}_buildProductsSpec(e){let t={},n=[];for(let r=0;r<e.length;r++){let i=e[r],a=`product-${r}`;n.push(a),t[a]={type:`ProductCard`,props:{product:i,index:r,discountType:this.config.discountType}}}let r={layout:`grid`},i=this._clampGridColumns(this.config.gridColumns);return i!==void 0&&(r.columns=i),t.root={type:`ProductGrid`,props:r,children:n},{root:`root`,elements:t}}_buildGroupsSpec(e){return{root:`root`,elements:{root:{type:`GroupTabs`,props:{groups:e}}}}}};function M(){return new j}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return j}});
|
|
2
|
-
//# sourceMappingURL=simrel-
|
|
1
|
+
const e=require(`./schemas-DeE-RHGa.cjs`),t=require(`./ga-datalayer-boRrTCtO.cjs`),n=require(`./product-utils-BEnINMdx.cjs`),r=require(`./connection-warning-BXw7TANB.cjs`);function i(e){let t=[];for(let n of Object.values(e))if(n.type===`ProductCard`&&n.props){let e=n.props.product??n.props;typeof e.sku==`string`&&typeof e.name==`string`&&t.push(e)}return t}function a(e){let t=e.headers.get(`Content-Type`)??``;return t.includes(`application/x-ndjson`)||t.includes(`text/event-stream`)}async function o(t,n){let r=[],a={onEvent:t=>{let n=e.p(t);!n||n.type!==`ui_spec`||r.push(...i(n.spec.elements))}};return n!==void 0&&(a.signal=n),await e.y(t,a),r}async function s(t,n,r){let i=e.d(`similar_products`,n),s={method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)};r!==void 0&&(s.signal=r);let c=await fetch(i,s);if(!c.ok)throw Error(`HTTP ${c.status}: ${c.statusText}`);if(a(c))return o(c,r);let l=await c.text();if(!l)throw Error(`Empty response body from similar_products endpoint`);try{return e.h(JSON.parse(l))}catch{throw Error(`Invalid JSON from similar_products endpoint`)}}async function c(t,n){let r=[],a=null,o={onEvent:t=>{let n=e.p(t);if(n){if(n.type===`metadata`&&n.meta){let e=n.meta.group_name;if(typeof e==`string`){a={name:e,products:[]};let t=n.meta.highlight;typeof t==`string`&&(a.highlight=t),r.push(a)}}n.type===`ui_spec`&&a&&a.products.push(...i(n.spec.elements))}}};return n!==void 0&&(o.signal=n),await e.y(t,o),r}async function l(t,n,r){let i=e.d(`product_groupings`,n),o={method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)};r!==void 0&&(o.signal=r);let s=await fetch(i,o);if(!s.ok)throw Error(`HTTP ${s.status}: ${s.statusText}`);if(a(s))return c(s,r);let l=await s.text();if(!l)return[];try{return e.m(JSON.parse(l))}catch{throw Error(`Invalid JSON from product_groupings endpoint`)}}function u(e){let{product:r,index:i,discountType:a,onClick:o,onAddToCart:s,renderCard:c}=e,l=e.i18n,u=e.pricing;if(e.renderCardElement){let t=e.renderCardElement(r,i);if(t)return t}if(c){let e=document.createElement(`div`);return e.className=`gengage-simrel-card gengage-simrel-card--custom gds-card gds-product-card gds-card-interactive`,e.dataset.gengagePart=`simrel-product-card`,e.innerHTML=t.V(c(r,i)),e.addEventListener(`click`,e=>{e.target.closest(`.gengage-simrel-atc`)||e.target.closest(`.gengage-chat-product-card-atc`)||o(r)}),e}let d=document.createElement(`article`);d.className=`gengage-simrel-card gengage-chat-product-card gds-card gds-product-card gds-card-interactive`,d.dataset.gengagePart=`simrel-product-card`,r.inStock===!1&&d.classList.add(`gengage-simrel-card--out-of-stock`),d.setAttribute(`role`,`listitem`),d.dataset.sku=r.sku;let f=document.createElement(`div`);if(f.className=`gengage-simrel-card-image gengage-chat-product-card-img-wrapper`,f.dataset.gengagePart=`simrel-product-card-image`,r.imageUrl&&t.R(r.imageUrl)){let e=document.createElement(`img`);e.className=`gengage-chat-product-card-img`,e.src=r.imageUrl,e.alt=r.name,e.loading=`lazy`,n.t(e),f.appendChild(e)}if(a===`badge`&&r.discountPercent&&r.discountPercent>0){let e=document.createElement(`span`);e.className=`gengage-simrel-badge gengage-chat-product-card-discount-badge`,e.textContent=`%${n.n(r.discountPercent)}`,f.appendChild(e)}d.appendChild(f);let p=document.createElement(`div`);if(p.className=`gengage-simrel-card-info gengage-chat-product-card-body`,p.dataset.gengagePart=`simrel-product-card-body`,r.brand){let e=document.createElement(`div`);e.className=`gengage-simrel-card-brand gengage-chat-product-card-brand`,e.textContent=r.brand,p.appendChild(e)}let m=document.createElement(`div`);if(m.className=`gengage-simrel-card-name gengage-chat-product-card-name`,m.textContent=r.name,m.title=r.name,p.appendChild(m),r.rating!=null&&r.rating>0){let e=document.createElement(`div`);if(e.className=`gengage-simrel-card-rating gengage-chat-product-card-rating`,e.appendChild(n.i(r.rating)),r.reviewCount!=null){let t=document.createElement(`span`);t.className=`gengage-simrel-card-review-count gengage-chat-product-card-review-count`,t.textContent=` (${r.reviewCount})`,e.appendChild(t)}p.appendChild(e)}let h=document.createElement(`div`);if(h.className=`gengage-simrel-card-price gengage-chat-product-card-price`,r.originalPrice&&r.originalPrice!==r.price&&(a===`strike-through`||!a)){let e=document.createElement(`span`);e.className=`gengage-simrel-card-price-original gengage-chat-product-card-original-price`,e.textContent=n.a(r.originalPrice,u),h.appendChild(e)}if(r.price&&parseFloat(r.price)>0){let e=document.createElement(`span`);e.className=`gengage-simrel-card-price-current gengage-chat-product-card-price-current`,e.textContent=n.a(r.price,u),h.appendChild(e)}p.appendChild(h),d.appendChild(p);let g=document.createElement(`button`);if(g.className=`gengage-simrel-card-cta gengage-chat-product-card-cta gds-btn gds-btn-secondary`,g.type=`button`,g.dataset.gengagePart=`simrel-product-card-cta`,g.textContent=l?.ctaLabel??`View`,g.addEventListener(`click`,e=>{e.preventDefault(),e.stopPropagation(),o(r)}),d.appendChild(g),r.inStock===!1){let e=document.createElement(`div`);e.className=`gengage-simrel-card-oos`,e.textContent=l?.outOfStockLabel??`Out of Stock`,d.appendChild(e)}else if(r.cartCode){let e=document.createElement(`button`);e.className=`gengage-simrel-atc gengage-simrel-atc-button gds-btn gds-btn-secondary`,e.type=`button`,e.textContent=l?.addToCartButton??`Add to Cart`,e.addEventListener(`click`,e=>{e.preventDefault(),e.stopPropagation(),s({sku:r.sku,quantity:1,cartCode:r.cartCode})}),d.appendChild(e)}return d.addEventListener(`click`,e=>{e.target.closest(`.gengage-simrel-atc`)||e.target.closest(`.gengage-chat-product-card-atc`)||e.target.closest(`.gengage-chat-product-card-cta`)||o(r)}),d}function d(e){let t=document.createElement(`div`);t.className=`gengage-simrel-grid`,t.setAttribute(`role`,`list`),t.setAttribute(`aria-label`,e.i18n?.similarProductsAriaLabel??`Similar products`),e.columns&&t.style.setProperty(`--gengage-simrel-columns`,String(e.columns));for(let n=0;n<e.products.length;n++){let r={product:e.products[n],index:n,onClick:e.onClick,onAddToCart:e.onAddToCart};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);let i=u(r);t.appendChild(i)}return e.products.length===0&&(t.style.display=`none`,t.dataset.empty=`true`),t}var f=0;function p(e){let t=f++,n=document.createElement(`div`);if(n.className=`gengage-simrel-groups`,n.dataset.gengagePart=`simrel-groups`,e.groups.length===0)return n.style.display=`none`,n.dataset.empty=`true`,n;let r=document.createElement(`div`);r.className=`gengage-simrel-tabs gds-toolbar`,r.dataset.gengagePart=`simrel-tab-bar`,r.setAttribute(`role`,`tablist`);let i=[],a=[],o=t=>{let n={products:t.products,onClick:e.onClick,onAddToCart:e.onAddToCart};return e.i18n!==void 0&&(n.i18n=e.i18n),e.discountType!==void 0&&(n.discountType=e.discountType),e.renderCard!==void 0&&(n.renderCard=e.renderCard),e.renderCardElement!==void 0&&(n.renderCardElement=e.renderCardElement),e.columns!==void 0&&(n.columns=e.columns),n},s=t=>{for(let e=0;e<i.length;e++){let n=e===t;i[e].classList.toggle(`gengage-simrel-tab--active`,n),i[e].setAttribute(`aria-selected`,String(n)),i[e].tabIndex=n?0:-1}let n=e.groups[t],r=a[t];r.innerHTML=``;let s=d(o(n));r.appendChild(s);for(let e=0;e<a.length;e++){let n=e===t;a[e].style.display=n?``:`none`,a[e].tabIndex=n?0:-1}};for(let n=0;n<e.groups.length;n++){let o=e.groups[n],c=`gengage-simrel-tab-${t}-${n}`,l=`gengage-simrel-panel-${t}-${n}`,u=document.createElement(`button`);u.className=`gengage-simrel-tab gds-tab`,u.type=`button`,u.dataset.gengagePart=`simrel-tab`,u.id=c,u.textContent=o.name,u.setAttribute(`role`,`tab`),u.setAttribute(`aria-controls`,l),u.setAttribute(`aria-selected`,String(n===0)),u.tabIndex=n===0?0:-1,n===0&&u.classList.add(`gengage-simrel-tab--active`),u.addEventListener(`click`,()=>s(n)),u.addEventListener(`keydown`,t=>{let r=-1;t.key===`ArrowRight`||t.key===`ArrowDown`?r=(n+1)%e.groups.length:t.key===`ArrowLeft`||t.key===`ArrowUp`?r=(n-1+e.groups.length)%e.groups.length:t.key===`Home`?r=0:t.key===`End`&&(r=e.groups.length-1),r>=0&&(t.preventDefault(),s(r),i[r].focus())}),i.push(u),r.appendChild(u);let d=document.createElement(`div`);d.className=`gengage-simrel-tab-panel`,d.dataset.gengagePart=`simrel-tab-panel`,d.id=l,d.setAttribute(`role`,`tabpanel`),d.setAttribute(`aria-labelledby`,c),d.tabIndex=n===0?0:-1,n!==0&&(d.style.display=`none`),a.push(d)}let c=document.createElement(`button`);c.type=`button`,c.className=`gengage-simrel-tabs-arrow gengage-simrel-tabs-arrow--left`,c.setAttribute(`aria-label`,e.i18n?.scrollTabsLeft??`Scroll tabs left`),c.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>`;let l=document.createElement(`button`);l.type=`button`,l.className=`gengage-simrel-tabs-arrow gengage-simrel-tabs-arrow--right`,l.setAttribute(`aria-label`,e.i18n?.scrollTabsRight??`Scroll tabs right`),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="9 18 15 12 9 6"/></svg>`,c.addEventListener(`click`,()=>{r.scrollBy({left:-200,behavior:`smooth`})}),l.addEventListener(`click`,()=>{r.scrollBy({left:200,behavior:`smooth`})});let u=()=>{let e=r.scrollLeft<=4,t=r.scrollLeft+r.clientWidth>=r.scrollWidth-4;c.style.display=e?`none`:``,l.style.display=t?`none`:``,r.classList.toggle(`gengage-simrel-tabs--peek-right`,!t),r.classList.toggle(`gengage-simrel-tabs--peek-left`,!e)};r.addEventListener(`scroll`,u,{passive:!0}),typeof ResizeObserver<`u`&&new ResizeObserver(u).observe(r),c.style.display=`none`,l.style.display=`none`,requestAnimationFrame(u);let p=document.createElement(`div`);p.className=`gengage-simrel-tabs-wrapper`,p.appendChild(c),p.appendChild(r),p.appendChild(l),n.appendChild(p);let m=a[0],h=d(o(e.groups[0]));m.appendChild(h);for(let e of a)n.appendChild(e);return n}function m(e){if(!e||typeof e!=`object`)return null;let t=e;if(typeof t.sku!=`string`||typeof t.name!=`string`||typeof t.url!=`string`)return null;let n={sku:t.sku,name:t.name,url:t.url},r=t.imageUrl;typeof r==`string`&&(n.imageUrl=r);let i=t.price;typeof i==`string`&&(n.price=i);let a=t.originalPrice;typeof a==`string`&&(n.originalPrice=a);let o=t.discountPercent;typeof o==`number`&&(n.discountPercent=o);let s=t.brand;typeof s==`string`&&(n.brand=s);let c=t.rating;typeof c==`number`&&(n.rating=c);let l=t.reviewCount;typeof l==`number`&&(n.reviewCount=l);let u=t.cartCode;typeof u==`string`&&(n.cartCode=u);let d=t.inStock;typeof d==`boolean`&&(n.inStock=d);let f=t.extras;return typeof f==`object`&&f&&(n.extras=f),n}function h(e){if(!e||typeof e!=`object`)return null;let t=e,n=t.title,r=t.type;if(typeof n!=`string`||typeof r!=`string`)return null;let i={title:n,type:r};return t.payload!==void 0&&(i.payload=t.payload),i}var g={ProductGrid:({element:e,renderElement:t,context:n})=>{let r=document.createElement(`div`);r.className=`gengage-simrel-grid`,r.setAttribute(`role`,`list`);let i=e.props?.columns,a;typeof i==`number`&&Number.isFinite(i)&&i>0?a=Math.floor(i):typeof n.gridColumns==`number`&&Number.isFinite(n.gridColumns)&&n.gridColumns>0&&(a=Math.floor(n.gridColumns)),a!==void 0&&r.style.setProperty(`--gengage-simrel-columns`,String(a));for(let n of e.children??[]){let e=t(n);e&&r.appendChild(e)}if(r.children.length===0){let e=document.createElement(`div`);e.className=`gengage-simrel-empty`,e.textContent=n.i18n.emptyStateMessage,r.appendChild(e)}return r},ProductCard:({element:e,context:t})=>{let n=m(e.props?.product??e.props);if(!n)return null;let r=e.props?.index,i=typeof r==`number`&&Number.isFinite(r)?r:0,a=e.props?.discountType,o=a===`strike-through`||a===`badge`?a:t.discountType,s={product:n,index:i,onClick:t.onClick,onAddToCart:t.onAddToCart,i18n:t.i18n};return o!==void 0&&(s.discountType=o),t.renderCard!==void 0&&(s.renderCard=t.renderCard),t.renderCardElement!==void 0&&(s.renderCardElement=t.renderCardElement),t.pricing!==void 0&&(s.pricing=t.pricing),u(s)},GroupTabs:({element:e,context:t})=>{let n=e.props?.groups;if(!Array.isArray(n))return null;let r=[];for(let e of n){if(!e||typeof e!=`object`)continue;let t=e;if(typeof t.name!=`string`)continue;let n=[];if(Array.isArray(t.products))for(let e of t.products){let t=m(e);t&&n.push(t)}let i={name:t.name,products:n};typeof t.highlight==`string`&&(i.highlight=t.highlight),r.push(i)}let i={groups:r,onClick:t.onClick,onAddToCart:t.onAddToCart,i18n:t.i18n},a=e.props?.columns;return typeof a==`number`&&Number.isFinite(a)&&a>0?i.columns=Math.floor(a):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),p(i)},EmptyState:({element:e,context:t})=>{let n=document.createElement(`div`);n.className=`gengage-simrel-empty`;let r=e.props?.message;return n.textContent=typeof r==`string`?r:t.i18n.emptyStateMessage,n},AddToCartButton:({element:e,context:t})=>{let n=e.props?.sku,r=e.props?.cartCode;if(typeof n!=`string`||typeof r!=`string`)return null;let i=document.createElement(`button`);i.className=`gengage-simrel-atc gengage-chat-product-card-cta`,i.type=`button`;let a=e.props?.label;return i.textContent=typeof a==`string`?a:t.i18n.addToCartButton,i.addEventListener(`click`,e=>{e.preventDefault(),e.stopPropagation(),t.onAddToCart({sku:n,quantity:1,cartCode:r})}),i},QuickActions:({element:e,context:t})=>{let n=document.createElement(`div`);n.className=`gengage-simrel-quick-actions`;let r=e.props?.actions;if(!Array.isArray(r)||!t.onAction)return n;for(let e of r){if(!e||typeof e!=`object`)continue;let r=e,i=r.label,a=h(r.action);if(typeof i!=`string`||!a)continue;let o=document.createElement(`button`);o.className=`gengage-simrel-quick-action`,o.type=`button`,o.textContent=i,o.addEventListener(`click`,e=>{e.preventDefault(),e.stopPropagation(),t.onAction?.(a)}),n.appendChild(o)}return n}},_=({element:e,renderElement:t})=>{if(!e.children||e.children.length===0)return null;let n=document.createElement(`div`);for(let r of e.children){let e=t(r);e&&n.appendChild(e)}return n};function v(){return{...g}}function y(t,n,r=g,i=_){return e.C({spec:t,context:n,registry:r,containerClassName:`gengage-simrel-uispec`,unknownRenderer:i})}var b={similarProductsAriaLabel:`Benzer ürünler`,emptyStateMessage:`Benzer ürün bulunamadı.`,addToCartButton:`Sepete Ekle`,ctaLabel:`İncele`,outOfStockLabel:`Stokta Yok`,decreaseLabel:`Azalt`,increaseLabel:`Artır`,errorLoadingMessage:`Benzer ürünler yüklenemedi.`,retryButtonText:`Tekrar dene`,priceSuffix:` TL`,scrollTabsLeft:`Sola kaydır`,scrollTabsRight:`Sağa kaydır`},x={similarProductsAriaLabel:`Similar products`,emptyStateMessage:`No similar products found.`,addToCartButton:`Add to cart`,ctaLabel:`View`,outOfStockLabel:`Out of Stock`,decreaseLabel:`Decrease`,increaseLabel:`Increase`,errorLoadingMessage:`Could not load similar products.`,retryButtonText:`Try again`,priceSuffix:``,scrollTabsLeft:`Scroll tabs left`,scrollTabsRight:`Scroll tabs right`};function S(e){return e?e.toLowerCase().split(`-`)[0]??`tr`:`tr`}function C(e){switch(S(e)){case`en`:return x;default:return b}}var w=e.o({sku:e.c(),name:e.c(),imageUrl:e.c().url().optional(),price:e.c().optional(),originalPrice:e.c().optional(),discountPercent:e.a().optional(),url:e.c().url(),brand:e.c().optional(),rating:e.a().min(0).max(5).optional(),reviewCount:e.a().int().nonnegative().optional()}),T=e.o({layout:e.t([`grid`,`carousel`]).optional(),columns:e.a().int().positive().optional()}),E=e.o({product:w,index:e.a().int().nonnegative(),discountType:e.t([`strike-through`,`badge`]).optional()}),D=e.o({sku:e.c(),label:e.c().optional(),cartCode:e.c()}),O=e.o({actions:e.n(e.o({label:e.c(),action:e.o({title:e.c(),type:e.c(),payload:e.u().optional()})}))}),k=e.o({message:e.c().optional()}),A={components:{ProductGrid:{schema:T,description:`Outer grid or carousel container for similar products.`},ProductCard:{schema:E,description:`A single product card with image, title, price, and actions.`},AddToCartButton:{schema:D,description:`Add-to-cart CTA rendered inside or below a product card.`},QuickActions:{schema:O,description:`A row of quick-action buttons below product info.`},EmptyState:{schema:k,description:`Empty state shown when no similar products are available.`}}},j=class extends t.y{constructor(...e){super(...e),this._abortController=null,this._contentEl=null,this._lastResultCount=-1,this._i18n=b}async onInit(e){this._i18n=this._resolveI18n(e),this._contentEl=document.createElement(`div`),this._contentEl.className=`gengage-simrel-container`,this._contentEl.dataset.gengagePart=`simrel-container`;let n=this._clampGridColumns(e.gridColumns);n!==void 0&&this._contentEl.style.setProperty(`--gengage-simrel-columns`,String(n)),this.root.appendChild(this._contentEl),this._lastSku=e.sku,await this._fetchAndRender(e.sku),t.c(`simrel`)}onUpdate(e){let t=e.sku;!t||t===this._lastSku&&this._lastResultCount!==0||(this._lastSku=t,this._fetchAndRender(t))}onShow(){this._contentEl&&(this._contentEl.style.opacity=`0`,this._contentEl.style.transition=`opacity 0.3s ease-in`,requestAnimationFrame(()=>{this._contentEl&&(this._contentEl.style.opacity=`1`)}))}onHide(){}onDestroy(){this._abort(),this._contentEl&&=(this._contentEl.remove(),null)}_handleProductClick(e){let n={sku:e.sku,name:e.name,url:e.url};if(e.imageUrl!==void 0&&(n.imageUrl=e.imageUrl),e.price!==void 0&&(n.price=e.price),e.originalPrice!==void 0&&(n.originalPrice=e.originalPrice),e.discountPercent!==void 0&&(n.discountPercent=e.discountPercent),e.brand!==void 0&&(n.brand=e.brand),e.rating!==void 0&&(n.rating=e.rating),e.reviewCount!==void 0&&(n.reviewCount=e.reviewCount),e.cartCode!==void 0&&(n.cartCode=e.cartCode),e.inStock!==void 0&&(n.inStock=e.inStock),this.config.onProductClick?.(n)===!1)return;t.p(e.sku,e.name);let r=this.config.session?.sessionId??null;t.P(`gengage:similar:product-click`,{sku:e.sku,url:e.url,sessionId:r}),this.config.onProductNavigate?.(e.url,e.sku,r)}_handleAddToCart(e){t.t(e.sku,e.quantity),this.config.onAddToCart?.(e),t.P(`gengage:similar:add-to-cart`,e),this.track(t.H(this.analyticsContext(),{attribution_source:`simrel`,attribution_action_id:crypto.randomUUID(),cart_value:0,currency:this.config.pricing?.currencyCode??`TRY`,line_items:e.quantity,sku:e.sku}))}_abort(){this._abortController?.abort(),this._abortController=null}_isSuperseded(e){return this._abortController?.signal!==e}async _fetchAndRender(e){this._abort(),this._abortController=new AbortController;let n=this._abortController.signal,i=setTimeout(()=>this._abortController?.abort(),1e4);if(n.addEventListener(`abort`,()=>clearTimeout(i)),!this._contentEl)return;this._contentEl.innerHTML=``,this._contentEl.style.display=``;let a=document.createElement(`div`);a.className=`gengage-simrel-loading`,a.dataset.gengagePart=`simrel-loading`;let o=document.createElement(`div`);o.className=`gengage-simrel-spinner`,o.dataset.gengagePart=`simrel-loading-spinner`,a.appendChild(o),this._contentEl.appendChild(a);let c={middlewareUrl:this.config.middlewareUrl},u=crypto.randomUUID(),d=Date.now(),f=r.n({source:`simrel`,locale:this.config.locale});this.track(t.Q(this.analyticsContext(),{endpoint:`similar_products`,request_id:u,widget:`simrel`}));try{let r={account_id:this.config.accountId,session_id:this.config.session?.sessionId??``,correlation_id:this.config.session?.sessionId??``,sku:e};this.config.domain!==void 0&&(r.domain=this.config.domain);let i=await s(r,c,n);if(this._lastResultCount=i.length,!this._contentEl)return;if(this._contentEl.innerHTML=``,i.length>0)try{let e=i.map(e=>e.sku),r=new Map(i.map(e=>[e.sku,e])),a=(await l({account_id:this.config.accountId,session_id:this.config.session?.sessionId??``,correlation_id:this.config.session?.sessionId??``,skus:e},c,n)).map(e=>({...e,products:e.products.map(e=>({...r.get(e.sku),...e})).filter(e=>typeof e.sku==`string`&&typeof e.name==`string`&&typeof e.url==`string`)})).filter(e=>e.products.length>0);if(a.length>0&&this._contentEl){let e=this._buildGroupsSpec(a),n=this._renderUISpec(e);this._contentEl.appendChild(n),t.h(`simrel`),this.track(t.X(this.analyticsContext(),{request_id:u,latency_ms:Date.now()-d,chunk_count:a.reduce((e,t)=>e+t.products.length,0),widget:`simrel`})),this.track(t.et(this.analyticsContext(),{message_count:a.reduce((e,t)=>e+t.products.length,0),history_ref:u,redaction_level:`none`,widget:`simrel`}));return}}catch{}if(this._isSuperseded(n))return;if(this._contentEl){let e=this._buildProductsSpec(i),t=this._renderUISpec(e);this._contentEl.appendChild(t)}i.length>0&&t.h(`simrel`),this.track(t.X(this.analyticsContext(),{request_id:u,latency_ms:Date.now()-d,chunk_count:i.length,widget:`simrel`})),this.track(t.et(this.analyticsContext(),{message_count:i.length,history_ref:u,redaction_level:`none`,widget:`simrel`}))}catch(e){if(e instanceof DOMException&&e.name===`AbortError`&&this._isSuperseded(n))return;if(t.P(`gengage:global:error`,{source:`simrel`,code:`FETCH_ERROR`,message:t.S(this.config.locale,e)}),this.track(t.Z(this.analyticsContext(),{request_id:u,error_code:`FETCH_ERROR`,error_message:e instanceof Error?e.message:String(e),widget:`simrel`})),this._contentEl){this._contentEl.innerHTML=``;let e=document.createElement(`div`);e.className=`gengage-simrel-error`;let t=document.createElement(`span`);t.textContent=this._i18n.errorLoadingMessage,e.appendChild(t);let n=document.createElement(`button`);n.className=`gengage-simrel-retry`,n.textContent=this._i18n.retryButtonText,n.addEventListener(`click`,()=>{this._fetchAndRender(this.config.sku)}),e.appendChild(n),this._contentEl.appendChild(e)}}finally{f()}}_clampGridColumns(e){if(!(e===void 0||typeof e!=`number`||!Number.isFinite(e)))return Math.max(1,Math.min(12,Math.floor(e)))}_resolveI18n(e){return{...C(e.locale),...e.i18n}}_resolveUISpecRegistry(){return e.x(v(),this.config.renderer?.registry)}_buildRenderContext(){let e=this.config.renderCard,t={onClick:e=>this._handleProductClick(e),onAddToCart:e=>this._handleAddToCart(e),i18n:this._i18n};this.config.discountType!==void 0&&(t.discountType=this.config.discountType),e!==void 0&&(t.renderCard=e),this.config.renderCardElement!==void 0&&(t.renderCardElement=this.config.renderCardElement),this.config.pricing!==void 0&&(t.pricing=this.config.pricing);let n=this._clampGridColumns(this.config.gridColumns);return n!==void 0&&(t.gridColumns=n),t}_renderUISpec(e){let t=this._resolveUISpecRegistry(),n=this._buildRenderContext(),r=this.config.renderer?.unknownRenderer??_,i=(e,n)=>y(e,n,t,r),a=this.config.renderer?.renderUISpec;return a?a(e,n,{registry:t,unknownRenderer:r,defaultRender:i}):i(e,n)}_buildProductsSpec(e){let t={},n=[];for(let r=0;r<e.length;r++){let i=e[r],a=`product-${r}`;n.push(a),t[a]={type:`ProductCard`,props:{product:i,index:r,discountType:this.config.discountType}}}let r={layout:`grid`},i=this._clampGridColumns(this.config.gridColumns);return i!==void 0&&(r.columns=i),t.root={type:`ProductGrid`,props:r,children:n},{root:`root`,elements:t}}_buildGroupsSpec(e){return{root:`root`,elements:{root:{type:`GroupTabs`,props:{groups:e}}}}}};function M(){return new j}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return j}});
|
|
2
|
+
//# sourceMappingURL=simrel-CVKjhHee.cjs.map
|