@gengage/assistant-fe 0.6.36 → 0.6.38

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.
Files changed (36) hide show
  1. package/dist/chat/catalog.d.ts +13 -0
  2. package/dist/chat/components/InlineQuestionButtons.d.ts +3 -0
  3. package/dist/chat/runtime.d.ts +2 -0
  4. package/dist/chat/types.d.ts +14 -0
  5. package/dist/{chat-CIfQyuBl.js → chat-CJzuUZxy.js} +42 -38
  6. package/dist/chat-runtime.js +1 -1
  7. package/dist/chat.iife.js +21 -21
  8. package/dist/chat.js +2 -2
  9. package/dist/common/overlay.d.ts +2 -0
  10. package/dist/common/transport.d.ts +1 -0
  11. package/dist/{common-ByXFSuDh.js → common-BepNMlcD.js} +2 -2
  12. package/dist/common.js +7 -7
  13. package/dist/{connection-warning-ChSjBT_4.js → connection-warning-cL8ugEzc.js} +1 -1
  14. package/dist/{fastIntent-B9AE8K30.js → fastIntent-CT6Y3Nc5.js} +1 -1
  15. package/dist/index.js +12 -12
  16. package/dist/{native-webview-BcwGKkDe.js → native-webview-Ch9lsx7E.js} +1 -1
  17. package/dist/native.iife.js +18 -18
  18. package/dist/native.js +1 -1
  19. package/dist/{overlay-cF2SjxYU.js → overlay-CPLLn1eK.js} +7 -7
  20. package/dist/overlay.js +1 -1
  21. package/dist/qna-runtime.js +1 -1
  22. package/dist/qna.iife.js +8 -8
  23. package/dist/qna.js +1 -1
  24. package/dist/{request-response-cache-D6O2m-O-.js → request-response-cache-DG7cyJoj.js} +240 -214
  25. package/dist/{runtime-YKSfwMAr.js → runtime-Doqy3tpm.js} +1053 -1013
  26. package/dist/{runtime-aR-A6Jh2.js → runtime-P4cDEO6v.js} +3 -3
  27. package/dist/{runtime-CCQGaWOq.js → runtime-sfPDgpLA.js} +3 -3
  28. package/dist/{simbut-BCKrXmkh.js → simbut-BPr1MH0y.js} +1 -1
  29. package/dist/simbut.iife.js +1 -1
  30. package/dist/simbut.js +1 -1
  31. package/dist/{simrel-CSlprSEe.js → simrel-C-Y8YCZt.js} +1 -1
  32. package/dist/simrel-runtime.js +1 -1
  33. package/dist/simrel.iife.js +9 -9
  34. package/dist/simrel.js +2 -2
  35. package/dist/{widget-base-CmxCHKJi.js → widget-base-2pgQZGMX.js} +1 -1
  36. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- (function(q){Object.defineProperty(q,Symbol.toStringTag,{value:"Module"});var sn=({element:e,renderElement:t})=>{if(!e.children||e.children.length===0)return null;const r=document.createElement("div");for(const n of e.children){const o=t(n);o&&r.appendChild(o)}return r};function an(e){const t=document.createElement("div");if(t.className=e.containerClassName,!e.spec.elements[e.spec.root])return t;const r=e.unknownRenderer??sn,n=i=>{const s=e.spec.elements[i];if(!s)return null;const a=e.registry[s.type];return a?a({elementId:i,element:s,spec:e.spec,context:e.context,renderElement:n}):r({elementId:i,element:s,spec:e.spec,context:e.context,renderElement:n})},o=n(e.spec.root);return o&&t.appendChild(o),t}function cn(e,t){if(!t)return e;const r={...e};for(const[n,o]of Object.entries(t))o&&(r[n]=o);return r}var un=new Set(["p","br","a","strong","b","em","i","u","ul","ol","li","h1","h2","h3","h4","h5","h6","span","div","table","thead","tbody","tr","th","td","hr","code","pre","blockquote","img","sup","sub","button"]),ln=new Set(["script","iframe","object","embed","form","input","textarea","select","style","link","meta","template","noscript"]),pt={"*":new Set(["class"]),a:new Set(["href","target","rel"]),img:new Set(["src","alt","width","height"]),button:new Set(["type","disabled","aria-label","aria-hidden","title"]),div:new Set(["style"]),span:new Set(["style"]),p:new Set(["style"])};function dn(e){return/^\s*javascript\s*:/i.test(e)}var fn=new Set(["color","background-color","font-size","font-weight","font-style","font-family","text-align","text-decoration","line-height","letter-spacing","margin","margin-top","margin-right","margin-bottom","margin-left","padding","padding-top","padding-right","padding-bottom","padding-left","border","border-top","border-right","border-bottom","border-left","border-radius","border-color","border-width","border-style","width","max-width","min-width","height","max-height","min-height","display","vertical-align","white-space","word-break","overflow","opacity","visibility","list-style","list-style-type","text-transform","text-indent","text-overflow","box-sizing","flex","flex-direction","flex-wrap","justify-content","align-items","gap"]),pn=/url\s*\(|expression\s*\(|javascript\s*:|\bimport\b|-moz-binding|behavior\s*:/i;function gn(e){const t=[];for(const r of e.split(";")){const n=r.trim();if(!n)continue;const o=n.indexOf(":");if(o===-1)continue;const i=n.slice(0,o).trim().toLowerCase(),s=n.slice(o+1).trim();fn.has(i)&&(pn.test(s)||t.push(n))}return t.join("; ")}function Re(e,t){if(e.nodeType===Node.TEXT_NODE)return;if(e.nodeType!==Node.ELEMENT_NODE){e.parentNode?.removeChild(e);return}const r=e,n=r.tagName.toLowerCase();if(ln.has(n)){r.parentNode?.removeChild(r);return}if(!un.has(n)){const c=Array.from(r.childNodes);for(const u of c)t.insertBefore(u,r);t.removeChild(r);for(const u of c)Re(u,t);return}const o=pt["*"]??new Set,i=pt[n]??new Set,s=Array.from(r.attributes);for(const c of s){const u=c.name.toLowerCase();if(!o.has(u)&&!i.has(u)){r.removeAttribute(c.name);continue}if(dn(c.value)){r.removeAttribute(c.name);continue}if(u==="style"){const l=gn(c.value);l?r.setAttribute("style",l):r.removeAttribute("style");continue}}if(n==="a"){const c=r.getAttribute("href");if(c!==null){const u=c.trim().toLowerCase();!u.startsWith("http://")&&!u.startsWith("https://")&&!u.startsWith("mailto:")&&r.removeAttribute("href")}r.setAttribute("target","_blank"),r.setAttribute("rel","noopener noreferrer")}if(n==="img"){const c=r.getAttribute("src");c!==null&&(c.trim().toLowerCase().startsWith("https://")||r.removeAttribute("src"))}if(n==="button"){const c=r.getAttribute("type")?.trim().toLowerCase();(!c||c!=="button")&&r.setAttribute("type","button")}const a=Array.from(r.childNodes);for(const c of a)Re(c,r)}var gt=["http:","https:"];function _e(e){const t=e.trim();if(!t)return!1;if(t.startsWith("/")&&!t.startsWith("//"))return!0;try{return gt.includes(new URL(t).protocol)}catch{return!1}}function mt(e){if(e.startsWith("/")&&!e.startsWith("//"))return!0;try{const t=new URL(e);return gt.includes(t.protocol)}catch{return!1}}function mn(e){if(!e)return"";const t=new DOMParser().parseFromString(e,"text/html").body,r=Array.from(t.childNodes);for(const n of r)Re(n,t);return t.innerHTML}function hn(){return typeof window<"u"&&Array.isArray(window.dataLayer)}function Ze(e,t){const r={event:e,...t};hn()&&window.dataLayer.push(r)}function yn(e){Ze("gengage-on-init",{gengage_widget:e})}function ht(e){Ze("gengage-show",{gengage_widget:e})}function _n(e,t){Ze("gengage-cart-add",{gengage_sku:e,gengage_quantity:t})}function se(e,t){window.dispatchEvent(new CustomEvent(e,{detail:t,bubbles:!1}))}function yt(e,t){const r=n=>{t(n.detail)};return window.addEventListener(e,r),()=>window.removeEventListener(e,r)}function vn(){const e=window.__gengageSessionId??sessionStorage.getItem("gengage_session_id")??null??crypto.randomUUID();return window.__gengageSessionId=e,sessionStorage.setItem("gengage_session_id",e),window.gengage||(window.gengage={}),window.gengage.sessionId=e,e}function bn(e){return{sessionId:e?.sessionId??vn(),...e}}var _t={"--gengage-chat-offset":"20px","--gengage-chat-launcher-width":"56px","--gengage-chat-launcher-height":"56px","--gengage-chat-width":"400px","--gengage-chat-shell-radius":"1rem","--gengage-chat-header-height":"72px","--gengage-chat-conversation-width":"396px","--gengage-chat-panel-min-width":"320px","--gengage-chat-panel-max-width":"1200px","--gengage-chat-input-height":"48px","--gengage-qna-pill-radius":"999px","--gengage-qna-input-radius":"12px","--gengage-simrel-card-radius":"0.75rem","--radius-control":"12px","--radius-card":"16px","--radius-panel":"24px","--radius-pill":"999px","--surface-card-muted":"#f8fafc","--text-secondary":"#4b5563","--text-muted":"#6b7280","--border-default":"rgba(17, 24, 39, 0.10)"};function wn(e){if(!e)return{..._t};const t={..._t,...e},r=e["--gengage-chat-launcher-size"];return r!==void 0&&(e["--gengage-chat-launcher-width"]===void 0&&(t["--gengage-chat-launcher-width"]=r),e["--gengage-chat-launcher-height"]===void 0&&(t["--gengage-chat-launcher-height"]=r)),t}var D={primaryColor:"#b7102a",primaryForeground:"#ffffff",backgroundColor:"#ffffff",foregroundColor:"#111827",borderRadius:"0.75rem",fontFamily:'"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',fontSize:"14px",zIndex:"1000","--glov-chatbot-width":"420px","--glov-left-spacing":"260px","--chatbot-padding":"16px","--root-wrapper-background-color":"#f8f9fa","--root-wrapper-border-color":"#edeeef","--gengage-chat-width":"400px","--gengage-chat-shell-radius":"1rem","--gengage-chat-header-height":"72px","--gengage-chat-conversation-width":"396px","--gengage-chat-panel-min-width":"320px","--gengage-chat-panel-max-width":"1200px","--gengage-chat-input-height":"48px","--gengage-qna-pill-radius":"999px","--gengage-qna-input-radius":"0.75rem","--gengage-simrel-card-radius":"0.75rem","--client-primary":"#b7102a","--client-primary-hover":"color-mix(in srgb, #b7102a 88%, black 12%)","--client-primary-active":"color-mix(in srgb, #b7102a 78%, black 22%)","--client-primary-subtle":"color-mix(in srgb, #b7102a 12%, white)","--client-primary-soft":"color-mix(in srgb, #b7102a 20%, white)","--client-on-primary":"#ffffff","--client-focus-ring":"color-mix(in srgb, #b7102a 32%, transparent)","--surface-page":"#f6f7fb","--surface-shell":"#10131a","--surface-card":"#ffffff","--surface-card-muted":"#f8fafc","--surface-card-soft":"#f8fafc","--surface-elevated":"#ffffff","--surface-input":"#ffffff","--surface-overlay":"rgba(16, 19, 26, 0.52)","--text-primary":"#111827","--text-secondary":"#4b5563","--text-muted":"#6b7280","--text-inverse":"#f9fafb","--border-subtle":"rgba(17, 24, 39, 0.06)","--border-default":"rgba(17, 24, 39, 0.10)","--border-strong":"rgba(17, 24, 39, 0.18)","--shadow-1":"0 1px 2px rgba(16, 24, 40, 0.04), 0 1px 3px rgba(16, 24, 40, 0.06)","--shadow-2":"0 4px 12px rgba(16, 24, 40, 0.08)","--shadow-3":"0 10px 24px rgba(16, 24, 40, 0.12)","--radius-control":"12px","--radius-card":"16px","--radius-panel":"24px","--radius-pill":"999px","--success":"#16a34a","--warning":"#d97706","--error":"#dc2626","--info":"#2563eb","--rating":"#f5b301","--ai-accent-start":"#0b24d6","--ai-accent-end":"#f768f2","--ai-accent-soft":"linear-gradient(135deg, rgba(11, 36, 214, 0.08), rgba(247, 104, 242, 0.08))"},J="gengage-global-toast-root",vt="gengage-global-toast-style",De="gengage-global-toast-root--visible",kn=4200,Sn=1500,En=15e3,Cn=["--gengage-font-family","--surface-card","--text-primary","--text-muted","--border-default","--radius-card","--shadow-3","--error","--ds-toast-error-bg","--ds-toast-error-border","--ds-toast-error-accent","--ds-toast-error-fg","--ds-toast-error-shadow"],bt=!1,Y=null,Tn=[/failed to fetch/i,/networkerror/i,/network request failed/i,/load failed/i,/err_network/i,/fetch failed/i,/network error/i];function wt(e){return typeof e=="string"&&e.toLowerCase().startsWith("tr")}function xn(e){if(typeof navigator<"u"&&navigator.onLine===!1)return!0;const t=e instanceof Error?e.message.trim():"";return t?Tn.some(r=>r.test(t)):!1}function zn(e,t){return xn(t)?wt(e)?"Bağlantı sorunu oluştu. Lütfen tekrar deneyin.":"Connection issue. Please try again.":wt(e)?"Bir hata oluştu. Lütfen tekrar deneyin.":"Something went wrong. Please try again."}function An(){bt||typeof window>"u"||typeof document>"u"||(bt=!0,yt("gengage:global:error",e=>{Ue(e)}))}function Ue(e){if(typeof document>"u")return;const t=e.message.trim();if(!t)return;On();const r=Pn();$n(r),r.innerHTML="";const n=document.createElement("section");n.className="gengage-global-toast gengage-global-toast--error",n.setAttribute("role","status"),n.setAttribute("aria-live","polite");const o=document.createElement("div");o.className="gengage-global-toast-title",o.textContent=In(e.source);const i=document.createElement("div");i.className="gengage-global-toast-message",i.textContent=t,n.appendChild(o),n.appendChild(i),r.appendChild(n),r.classList.add(De),Y&&(clearTimeout(Y),Y=null),e.sticky!==!0&&(Y=setTimeout(()=>{kt()},Nn(e.durationMs)))}function kt(){if(typeof document>"u")return;const e=document.getElementById(J);e&&(e.classList.remove(De),e.innerHTML="",Y&&(clearTimeout(Y),Y=null))}function In(e){switch(e){case"chat":return"Chat warning";case"qna":return"QnA warning";case"simrel":return"Widget warning";default:return"Connection warning"}}function Pn(){const e=document.getElementById(J);if(e instanceof HTMLElement)return e;const t=document.createElement("div");return t.id=J,t.className="gengage-global-toast-root",document.body.appendChild(t),t}function $n(e){if(typeof document>"u"||typeof window>"u")return;const t=document.querySelector(".gengage-chat-root, .gengage-qna-container, .gengage-simrel-container, .gengage-simbut-root");if(!t)return;const r=window.getComputedStyle(t);for(const n of Cn){const o=r.getPropertyValue(n).trim();o?e.style.setProperty(n,o):e.style.removeProperty(n)}}function Nn(e){return typeof e!="number"||!Number.isFinite(e)?kn:Math.min(En,Math.max(Sn,Math.round(e)))}function On(){if(document.getElementById(vt))return;const e=document.createElement("style");e.id=vt;const t=D["--surface-card"]??D.backgroundColor??"#ffffff",r=D["--text-primary"]??D.foregroundColor??"#111827",n=D["--border-default"]??"rgba(17, 24, 39, 0.10)",o=D["--error"]??"#dc2626",i=D["--shadow-3"]??"0 10px 24px rgba(16, 24, 40, 0.12)",s=D["--radius-card"]??"16px",a=D["--text-muted"]??"#6b7280";e.textContent=`
1
+ (function(q){Object.defineProperty(q,Symbol.toStringTag,{value:"Module"});var ln=({element:e,renderElement:t})=>{if(!e.children||e.children.length===0)return null;const r=document.createElement("div");for(const n of e.children){const o=t(n);o&&r.appendChild(o)}return r};function dn(e){const t=document.createElement("div");if(t.className=e.containerClassName,!e.spec.elements[e.spec.root])return t;const r=e.unknownRenderer??ln,n=i=>{const a=e.spec.elements[i];if(!a)return null;const s=e.registry[a.type];return s?s({elementId:i,element:a,spec:e.spec,context:e.context,renderElement:n}):r({elementId:i,element:a,spec:e.spec,context:e.context,renderElement:n})},o=n(e.spec.root);return o&&t.appendChild(o),t}function fn(e,t){if(!t)return e;const r={...e};for(const[n,o]of Object.entries(t))o&&(r[n]=o);return r}var pn=new Set(["p","br","a","strong","b","em","i","u","ul","ol","li","h1","h2","h3","h4","h5","h6","span","div","table","thead","tbody","tr","th","td","hr","code","pre","blockquote","img","sup","sub","button"]),gn=new Set(["script","iframe","object","embed","form","input","textarea","select","style","link","meta","template","noscript"]),gt={"*":new Set(["class"]),a:new Set(["href","target","rel"]),img:new Set(["src","alt","width","height"]),button:new Set(["type","disabled","aria-label","aria-hidden","title"]),div:new Set(["style"]),span:new Set(["style"]),p:new Set(["style"])};function mn(e){return/^\s*javascript\s*:/i.test(e)}var hn=new Set(["color","background-color","font-size","font-weight","font-style","font-family","text-align","text-decoration","line-height","letter-spacing","margin","margin-top","margin-right","margin-bottom","margin-left","padding","padding-top","padding-right","padding-bottom","padding-left","border","border-top","border-right","border-bottom","border-left","border-radius","border-color","border-width","border-style","width","max-width","min-width","height","max-height","min-height","display","vertical-align","white-space","word-break","overflow","opacity","visibility","list-style","list-style-type","text-transform","text-indent","text-overflow","box-sizing","flex","flex-direction","flex-wrap","justify-content","align-items","gap"]),yn=/url\s*\(|expression\s*\(|javascript\s*:|\bimport\b|-moz-binding|behavior\s*:/i;function _n(e){const t=[];for(const r of e.split(";")){const n=r.trim();if(!n)continue;const o=n.indexOf(":");if(o===-1)continue;const i=n.slice(0,o).trim().toLowerCase(),a=n.slice(o+1).trim();hn.has(i)&&(yn.test(a)||t.push(n))}return t.join("; ")}function Ze(e,t){if(e.nodeType===Node.TEXT_NODE)return;if(e.nodeType!==Node.ELEMENT_NODE){e.parentNode?.removeChild(e);return}const r=e,n=r.tagName.toLowerCase();if(gn.has(n)){r.parentNode?.removeChild(r);return}if(!pn.has(n)){const c=Array.from(r.childNodes);for(const u of c)t.insertBefore(u,r);t.removeChild(r);for(const u of c)Ze(u,t);return}const o=gt["*"]??new Set,i=gt[n]??new Set,a=Array.from(r.attributes);for(const c of a){const u=c.name.toLowerCase();if(!o.has(u)&&!i.has(u)){r.removeAttribute(c.name);continue}if(mn(c.value)){r.removeAttribute(c.name);continue}if(u==="style"){const l=_n(c.value);l?r.setAttribute("style",l):r.removeAttribute("style");continue}}if(n==="a"){const c=r.getAttribute("href");if(c!==null){const u=c.trim().toLowerCase();!u.startsWith("http://")&&!u.startsWith("https://")&&!u.startsWith("mailto:")&&r.removeAttribute("href")}r.setAttribute("target","_blank"),r.setAttribute("rel","noopener noreferrer")}if(n==="img"){const c=r.getAttribute("src");c!==null&&(c.trim().toLowerCase().startsWith("https://")||r.removeAttribute("src"))}if(n==="button"){const c=r.getAttribute("type")?.trim().toLowerCase();(!c||c!=="button")&&r.setAttribute("type","button")}const s=Array.from(r.childNodes);for(const c of s)Ze(c,r)}var mt=["http:","https:"];function ve(e){const t=e.trim();if(!t)return!1;if(t.startsWith("/")&&!t.startsWith("//"))return!0;try{return mt.includes(new URL(t).protocol)}catch{return!1}}function ht(e){if(e.startsWith("/")&&!e.startsWith("//"))return!0;try{const t=new URL(e);return mt.includes(t.protocol)}catch{return!1}}function vn(e){if(!e)return"";const t=new DOMParser().parseFromString(e,"text/html").body,r=Array.from(t.childNodes);for(const n of r)Ze(n,t);return t.innerHTML}function bn(){return typeof window<"u"&&Array.isArray(window.dataLayer)}function De(e,t){const r={event:e,...t};bn()&&window.dataLayer.push(r)}function wn(e){De("gengage-on-init",{gengage_widget:e})}function yt(e){De("gengage-show",{gengage_widget:e})}function kn(e,t){De("gengage-cart-add",{gengage_sku:e,gengage_quantity:t})}function ae(e,t){window.dispatchEvent(new CustomEvent(e,{detail:t,bubbles:!1}))}function _t(e,t){const r=n=>{t(n.detail)};return window.addEventListener(e,r),()=>window.removeEventListener(e,r)}function Sn(){const e=window.__gengageSessionId??sessionStorage.getItem("gengage_session_id")??null??crypto.randomUUID();return window.__gengageSessionId=e,sessionStorage.setItem("gengage_session_id",e),window.gengage||(window.gengage={}),window.gengage.sessionId=e,e}function En(e){return{sessionId:e?.sessionId??Sn(),...e}}var vt={"--gengage-chat-offset":"20px","--gengage-chat-launcher-width":"56px","--gengage-chat-launcher-height":"56px","--gengage-chat-width":"400px","--gengage-chat-shell-radius":"1rem","--gengage-chat-header-height":"72px","--gengage-chat-conversation-width":"396px","--gengage-chat-panel-min-width":"320px","--gengage-chat-panel-max-width":"1200px","--gengage-chat-input-height":"48px","--gengage-qna-pill-radius":"999px","--gengage-qna-input-radius":"12px","--gengage-simrel-card-radius":"0.75rem","--radius-control":"12px","--radius-card":"16px","--radius-panel":"24px","--radius-pill":"999px","--surface-card-muted":"#f8fafc","--text-secondary":"#4b5563","--text-muted":"#6b7280","--border-default":"rgba(17, 24, 39, 0.10)"};function Cn(e){if(!e)return{...vt};const t={...vt,...e},r=e["--gengage-chat-launcher-size"];return r!==void 0&&(e["--gengage-chat-launcher-width"]===void 0&&(t["--gengage-chat-launcher-width"]=r),e["--gengage-chat-launcher-height"]===void 0&&(t["--gengage-chat-launcher-height"]=r)),t}var D={primaryColor:"#b7102a",primaryForeground:"#ffffff",backgroundColor:"#ffffff",foregroundColor:"#111827",borderRadius:"0.75rem",fontFamily:'"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',fontSize:"14px",zIndex:"1000","--glov-chatbot-width":"420px","--glov-left-spacing":"260px","--chatbot-padding":"16px","--root-wrapper-background-color":"#f8f9fa","--root-wrapper-border-color":"#edeeef","--gengage-chat-width":"400px","--gengage-chat-shell-radius":"1rem","--gengage-chat-header-height":"72px","--gengage-chat-conversation-width":"396px","--gengage-chat-panel-min-width":"320px","--gengage-chat-panel-max-width":"1200px","--gengage-chat-input-height":"48px","--gengage-qna-pill-radius":"999px","--gengage-qna-input-radius":"0.75rem","--gengage-simrel-card-radius":"0.75rem","--client-primary":"#b7102a","--client-primary-hover":"color-mix(in srgb, #b7102a 88%, black 12%)","--client-primary-active":"color-mix(in srgb, #b7102a 78%, black 22%)","--client-primary-subtle":"color-mix(in srgb, #b7102a 12%, white)","--client-primary-soft":"color-mix(in srgb, #b7102a 20%, white)","--client-on-primary":"#ffffff","--client-focus-ring":"color-mix(in srgb, #b7102a 32%, transparent)","--surface-page":"#f6f7fb","--surface-shell":"#10131a","--surface-card":"#ffffff","--surface-card-muted":"#f8fafc","--surface-card-soft":"#f8fafc","--surface-elevated":"#ffffff","--surface-input":"#ffffff","--surface-overlay":"rgba(16, 19, 26, 0.52)","--text-primary":"#111827","--text-secondary":"#4b5563","--text-muted":"#6b7280","--text-inverse":"#f9fafb","--border-subtle":"rgba(17, 24, 39, 0.06)","--border-default":"rgba(17, 24, 39, 0.10)","--border-strong":"rgba(17, 24, 39, 0.18)","--shadow-1":"0 1px 2px rgba(16, 24, 40, 0.04), 0 1px 3px rgba(16, 24, 40, 0.06)","--shadow-2":"0 4px 12px rgba(16, 24, 40, 0.08)","--shadow-3":"0 10px 24px rgba(16, 24, 40, 0.12)","--radius-control":"12px","--radius-card":"16px","--radius-panel":"24px","--radius-pill":"999px","--success":"#16a34a","--warning":"#d97706","--error":"#dc2626","--info":"#2563eb","--rating":"#f5b301","--ai-accent-start":"#0b24d6","--ai-accent-end":"#f768f2","--ai-accent-soft":"linear-gradient(135deg, rgba(11, 36, 214, 0.08), rgba(247, 104, 242, 0.08))"},J="gengage-global-toast-root",bt="gengage-global-toast-style",Ue="gengage-global-toast-root--visible",Tn=4200,xn=1500,An=15e3,zn=["--gengage-font-family","--surface-card","--text-primary","--text-muted","--border-default","--radius-card","--shadow-3","--error","--ds-toast-error-bg","--ds-toast-error-border","--ds-toast-error-accent","--ds-toast-error-fg","--ds-toast-error-shadow"],wt=!1,Y=null,In=[/failed to fetch/i,/networkerror/i,/network request failed/i,/load failed/i,/err_network/i,/fetch failed/i,/network error/i];function kt(e){return typeof e=="string"&&e.toLowerCase().startsWith("tr")}function Pn(e){if(typeof navigator<"u"&&navigator.onLine===!1)return!0;const t=e instanceof Error?e.message.trim():"";return t?In.some(r=>r.test(t)):!1}function $n(e,t){return Pn(t)?kt(e)?"Bağlantı sorunu oluştu. Lütfen tekrar deneyin.":"Connection issue. Please try again.":kt(e)?"Bir hata oluştu. Lütfen tekrar deneyin.":"Something went wrong. Please try again."}function Nn(){wt||typeof window>"u"||typeof document>"u"||(wt=!0,_t("gengage:global:error",e=>{je(e)}))}function je(e){if(typeof document>"u")return;const t=e.message.trim();if(!t)return;Dn();const r=Ln();Rn(r),r.innerHTML="";const n=document.createElement("section");n.className="gengage-global-toast gengage-global-toast--error",n.setAttribute("role","status"),n.setAttribute("aria-live","polite");const o=document.createElement("div");o.className="gengage-global-toast-title",o.textContent=On(e.source);const i=document.createElement("div");i.className="gengage-global-toast-message",i.textContent=t,n.appendChild(o),n.appendChild(i),r.appendChild(n),r.classList.add(Ue),Y&&(clearTimeout(Y),Y=null),e.sticky!==!0&&(Y=setTimeout(()=>{St()},Zn(e.durationMs)))}function St(){if(typeof document>"u")return;const e=document.getElementById(J);e&&(e.classList.remove(Ue),e.innerHTML="",Y&&(clearTimeout(Y),Y=null))}function On(e){switch(e){case"chat":return"Chat warning";case"qna":return"QnA warning";case"simrel":return"Widget warning";default:return"Connection warning"}}function Ln(){const e=document.getElementById(J);if(e instanceof HTMLElement)return e;const t=document.createElement("div");return t.id=J,t.className="gengage-global-toast-root",document.body.appendChild(t),t}function Rn(e){if(typeof document>"u"||typeof window>"u")return;const t=document.querySelector(".gengage-chat-root, .gengage-qna-container, .gengage-simrel-container, .gengage-simbut-root");if(!t)return;const r=window.getComputedStyle(t);for(const n of zn){const o=r.getPropertyValue(n).trim();o?e.style.setProperty(n,o):e.style.removeProperty(n)}}function Zn(e){return typeof e!="number"||!Number.isFinite(e)?Tn:Math.min(An,Math.max(xn,Math.round(e)))}function Dn(){if(document.getElementById(bt))return;const e=document.createElement("style");e.id=bt;const t=D["--surface-card"]??D.backgroundColor??"#ffffff",r=D["--text-primary"]??D.foregroundColor??"#111827",n=D["--border-default"]??"rgba(17, 24, 39, 0.10)",o=D["--error"]??"#dc2626",i=D["--shadow-3"]??"0 10px 24px rgba(16, 24, 40, 0.12)",a=D["--radius-card"]??"16px",s=D["--text-muted"]??"#6b7280";e.textContent=`
2
2
  #${J} {
3
3
  position: fixed;
4
4
  top: 16px;
@@ -6,13 +6,13 @@
6
6
  z-index: 2147483646;
7
7
  pointer-events: none;
8
8
  }
9
- #${J}.${De} {
9
+ #${J}.${Ue} {
10
10
  pointer-events: auto;
11
11
  }
12
12
  #${J} .gengage-global-toast {
13
13
  min-width: 260px;
14
14
  max-width: min(92vw, 420px);
15
- border-radius: var(--radius-card, ${s});
15
+ border-radius: var(--radius-card, ${a});
16
16
  border: 1px solid var(--ds-toast-error-border, color-mix(in srgb, var(--error, ${o}) 18%, var(--border-default, ${n})));
17
17
  border-left: 4px solid var(--ds-toast-error-accent, var(--error, ${o}));
18
18
  background: var(--ds-toast-error-bg, color-mix(in srgb, var(--error, ${o}) 5%, var(--surface-card, ${t})));
@@ -28,7 +28,7 @@
28
28
  margin: 0 0 4px;
29
29
  font-size: 12px;
30
30
  font-weight: 700;
31
- color: var(--text-muted, ${a});
31
+ color: var(--text-muted, ${s});
32
32
  }
33
33
  #${J} .gengage-global-toast-message {
34
34
  margin: 0;
@@ -44,10 +44,10 @@
44
44
  transform: translateY(0);
45
45
  }
46
46
  }
47
- `,document.head.appendChild(e)}var ae=null;function Ln(){if(ae!==null)return ae;try{ae=localStorage.getItem("gengage:debug")==="1"}catch{ae=!1}return ae}function je(e,t,r){if(!Ln())return;const n=[`[gengage:${e}]`,t];r!==void 0&&n.push(r),console.debug(...n)}var Rn=("0.6.36".trim(),"0.6.36".trim()),Zn=("iife-build".trim(),"iife-build".trim());function Dn(){if(typeof window>"u")return;const e=window;e.__gengageSdkRuntimeInfoLogged||(e.__gengageSdkRuntimeInfoLogged=!0,console.info(`[gengage] @gengage/assistant-fe v${Rn} (${Zn})`))}var Un=class{constructor(){this.isVisible=!1,this.isInitialised=!1,this._handlers=new Map,this._cleanups=[],this._ownsRoot=!1,this._destroying=!1}async init(e){if(this.isInitialised){console.warn("[gengage] Widget already initialised. Call update() instead.");return}const t=wn(e.theme);Dn(),this.config={...e,theme:t,session:bn(e.session)},this.root=this._resolveMount(e.mountTarget),this._applyTheme(t),An();const r=yt("gengage:context:update",n=>this.update(n));this._cleanups.push(r),je("lifecycle",`${this.constructor.name}.init`,{accountId:e.accountId,sku:e.pageContext?.sku});try{await this.onInit(this.config)}catch(n){throw this.destroy(),n}this._destroying||(this.isInitialised=!0,je("lifecycle",`${this.constructor.name} ready`),this.emit("ready"))}update(e){this.isInitialised&&(this.config.pageContext?this.config={...this.config,pageContext:{...this.config.pageContext,...e}}:e.pageType!==void 0&&(this.config={...this.config,pageContext:e}),this.onUpdate(e),this.emit("context-update",this.config.pageContext))}show(){this.isVisible||(this.isVisible=!0,this.root.style.display="",this.onShow(),this.emit("show"))}hide(){this.isVisible&&(this.isVisible=!1,this.root.style.display="none",this.onHide(),this.emit("hide"))}destroy(){this._destroying||(this._destroying=!0,this.emit("destroy"),this._cleanups.forEach(e=>e()),this._cleanups.length=0,this._handlers.clear(),this.onDestroy(),this._cleanupRoot(),this.isInitialised=!1)}_cleanupRoot(){this._ownsRoot?this.root.remove():this.root.innerHTML=""}on(e,t){return this._handlers.has(e)||this._handlers.set(e,new Set),this._handlers.get(e).add(t),()=>this._handlers.get(e)?.delete(t)}emit(e,...t){this._handlers.get(e)?.forEach(r=>r(...t))}addCleanup(e){this._cleanups.push(e)}_resolveMount(e){if(e instanceof HTMLElement)return e;if(typeof e=="string"){const r=document.querySelector(e);if(!r)throw new Error(`[gengage] Mount target not found: "${e}"`);return r}const t=document.createElement("div");return t.dataset.gengageWidget=this.constructor.name.toLowerCase(),document.body.insertBefore(t,document.body.firstChild),this._ownsRoot=!0,t}_applyTheme(e){if(e){for(const[t,r]of Object.entries(e))if(r!==void 0){const n=t.startsWith("--")?t:`--gengage-${jn(t)}`;this.root.style.setProperty(n,r)}}}};function jn(e){return e.replace(/([A-Z])/g,"-$1").toLowerCase()}function Mn(e){const t=e?.trim();return t||"tr"}var Fn=8e3,Bn=5e3,Gn="https://www.google.com/favicon.ico",F=new Map,St=!1,re=null,ce=null,X=!1;function qn(e){return typeof e=="string"&&e.toLowerCase().startsWith("tr")}function Et(e){return qn(e)?"İnternet bağlantısında sorun var gibi görünüyor. İstek sürerken yeniden deneyeceğiz.":"Your internet connection looks unstable. We'll keep retrying while this request is active."}function Ct(){let e;for(const t of F.values())e=t;return e}function Me(){re&&(clearTimeout(re),re=null)}function Jn(){ce&&(clearInterval(ce),ce=null)}async function Tt(){try{if(typeof navigator<"u"&&navigator.onLine===!1)return!1;if(typeof window<"u"){const r=window.location.hostname;if(r==="localhost"||r==="127.0.0.1")return navigator.onLine}const e=new AbortController,t=setTimeout(()=>e.abort(),3e3);try{return await fetch(Gn,{method:"HEAD",mode:"no-cors",cache:"no-cache",signal:e.signal}),!0}catch{return navigator.onLine}finally{clearTimeout(t)}}catch{return typeof navigator>"u"?!0:navigator.onLine}}function ve(){X=!1,Jn(),kt()}function be(){re||X||F.size===0||(re=setTimeout(async()=>{re=null,!(X||F.size===0)&&!await Tt()&&F.size>0&&(X=!0,Ue({source:"sdk",message:Et(Ct()),sticky:!0}),ce||(ce=setInterval(async()=>{if(F.size===0){ve();return}await Tt()&&(ve(),be())},Bn)))},Fn))}function Vn(){St||typeof window>"u"||(St=!0,window.addEventListener("online",()=>{ve(),be()}),window.addEventListener("offline",()=>{F.size===0||X||(X=!0,Me(),Ue({source:"sdk",message:Et(Ct()),sticky:!0}))}))}function Wn(e){Vn();const t=Symbol(e.source);F.set(t,e.locale),be();let r=!1;return()=>{if(!r){if(r=!0,F.delete(t),F.size===0){Me(),ve();return}X||(Me(),be())}}}var Hn={process_action:"/process_action",launcher_action:"/launcher_action",similar_products:"/similar_products",product_groupings:"/product_groupings"};function Kn(e){if(e===void 0)throw new Error("[gengage] middlewareUrl is required. Pass your Gengage backend URL in widget config.");const t=e.trim();return t===""?"":t.replace(/\/+$/,"")}function xt(e,t){return`${Kn(t?.middlewareUrl)}/chat${Hn[e]}`}function zt(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}function Yn(e){const t=[];let r=0,n=!1,o=!1,i=0;for(let s=0;s<e.length;s++){const a=e[s];if(o){o=!1;continue}if(a==="\\"&&n){o=!0;continue}if(a==='"'){n=!n;continue}n||(a==="{"&&r++,a==="}"&&(r--,r===0&&(t.push(e.slice(i,s+1)),i=s+1)))}return t.length>0?t:[e]}function At(e,t){const r=e.trim();if(!r||r.startsWith(":"))return!1;const n=r.startsWith("data: ")?r.slice(6):r;if(n==="[DONE]")return t.onDone?.(),!0;try{const o=JSON.parse(n);return zt(o)?(je("stream",`event: ${o.type}`,o),t.onEvent(o),o.type==="done"?(t.onDone?.(),!0):!1):!1}catch{const o=Yn(n);if(o.length>1){for(const i of o)try{const s=JSON.parse(i);if(!zt(s))continue;if(t.onEvent(s),s.type==="done")return t.onDone?.(),!0}catch{}return!1}return!1}}async function It(e,t){if(!e.ok){t.onError?.(new Error(`HTTP ${e.status}: ${e.statusText}`));return}if(!e.body){t.onError?.(new Error("Response body is null — streaming not supported"));return}const r=e.body.getReader(),n=new TextDecoder("utf-8");let o="";const i=t.idleTimeoutMs??6e4,s=Symbol("idle-timeout");let a=!1;try{for(;;){const c=r.read();let u;const l=await(i>0?Promise.race([c.then(h=>(clearTimeout(u),h)),new Promise(h=>{u=setTimeout(()=>h(s),i)})]):c);if(l===s){a=!0,await r.cancel();break}const{done:d,value:f}=l;if(d)break;o+=n.decode(f,{stream:!0});const m=o.split(`
48
- `);o=m.pop()??"";for(const h of m)if(At(h,t))return}if(o.trim()&&At(o,t))return}catch(c){if(c instanceof DOMException&&c.name==="AbortError")return;t.onError?.(c instanceof Error?c:new Error(String(c)))}finally{a||r.releaseLock()}t.onDone?.()}var Xn=7200*1e3,Pt=200,Qn=5*1024*1024,eo="gengage_request_response_cache",to=1,U="responses",ro=new Set(["addToCart","like"]),j=new Map,$t=null;async function Nt(e,t={},r={}){const n=no(e,t);if(!n)return fetch(e,t);const o=Date.now(),i=await io(n,o);if(i)return co(i);const s=await fetch(e,t);return s.ok&&so(n,s.clone(),o,{ttlMs:r.ttlMs??Xn,maxEntries:r.maxEntries??Pt,maxBodyBytes:r.maxBodyBytes??Qn}),s}function no(e,t={}){if(typeof Request<"u"&&e instanceof Request)return null;const r=String(t.method||"GET").toUpperCase();return r!=="POST"||typeof t.body!="string"||oo(t.body)?null:`rr:${ho(mo({url:String(e),method:r,headers:uo(t.headers),body:t.body}))}`}function oo(e){try{const t=JSON.parse(e);if(!t||typeof t!="object"||Array.isArray(t))return!1;const r=t.type;return typeof r=="string"&&ro.has(r)}catch{return!1}}async function io(e,t){const r=j.get(e);if(r)if(r.expiresAt<=t)j.delete(e);else return r.lastAccessedAt=t,j.delete(e),j.set(e,r),Fe(r),r;const n=await fo(e);return n?n.expiresAt<=t?(j.delete(e),po(e),null):(n.lastAccessedAt=t,j.set(e,n),Fe(n),Ot(Pt),n):null}async function so(e,t,r,n){try{const o=await t.text();if(yo(o)>n.maxBodyBytes||ao(o))return;const i={key:e,status:t.status,statusText:t.statusText,headers:lo(t.headers),body:o,createdAt:r,expiresAt:r+n.ttlMs,lastAccessedAt:r};j.set(e,i),Ot(n.maxEntries),await Fe(i),await go(n.maxEntries,r)}catch{}}function ao(e){return/"_error"\s*:/u.test(e)||/"type"\s*:\s*"error"/u.test(e)}function co(e){return new Response(e.body,{status:e.status,statusText:e.statusText,headers:new Headers(e.headers)})}function uo(e){const t=new Headers(e),r=[];return t.forEach((n,o)=>{const i=o.toLowerCase();i!=="authorization"&&i!=="cookie"&&r.push([i,n])}),r.sort(([n],[o])=>n.localeCompare(o))}function lo(e){const t=[];return e.forEach((r,n)=>{const o=n.toLowerCase();o!=="set-cookie"&&t.push([o,r])}),t.sort(([r],[n])=>r.localeCompare(n))}function Ot(e){for(;j.size>e;){const t=[...j.values()].sort((r,n)=>r.lastAccessedAt-n.lastAccessedAt)[0];if(!t)break;j.delete(t.key)}}async function we(){return typeof indexedDB>"u"?null:($t??=new Promise(e=>{const t=indexedDB.open(eo,to);t.onupgradeneeded=()=>{const r=t.result;r.objectStoreNames.contains(U)||r.createObjectStore(U,{keyPath:"key"}).createIndex("lastAccessedAt","lastAccessedAt",{unique:!1})},t.onsuccess=()=>e(t.result),t.onerror=()=>e(null),t.onblocked=()=>e(null)}),$t)}async function fo(e){const t=await we();return t?new Promise(r=>{const n=t.transaction(U,"readonly"),o=n.objectStore(U).get(e);o.onsuccess=()=>r(o.result??null),o.onerror=()=>r(null),n.onerror=()=>r(null)}):null}async function Fe(e){const t=await we();t&&await new Promise(r=>{const n=t.transaction(U,"readwrite");n.objectStore(U).put(e),n.oncomplete=()=>r(),n.onerror=()=>r(),n.onabort=()=>r()})}async function po(e){const t=await we();t&&await new Promise(r=>{const n=t.transaction(U,"readwrite");n.objectStore(U).delete(e),n.oncomplete=()=>r(),n.onerror=()=>r(),n.onabort=()=>r()})}async function go(e,t){const r=await we();r&&await new Promise(n=>{const o=r.transaction(U,"readwrite"),i=o.objectStore(U),s=[],a=i.openCursor();a.onsuccess=()=>{const c=a.result;if(!c){const u=s.filter(d=>d.expiresAt<=t),l=s.filter(d=>d.expiresAt>t).sort((d,f)=>d.lastAccessedAt-f.lastAccessedAt).slice(0,Math.max(0,s.length-u.length-e));for(const d of[...u,...l])i.delete(d.key);return}s.push(c.value),c.continue()},a.onerror=()=>n(),o.oncomplete=()=>n(),o.onerror=()=>n(),o.onabort=()=>n()})}function mo(e){return JSON.stringify(Be(e))}function Be(e){return Array.isArray(e)?e.map(Be):!e||typeof e!="object"?e:Object.fromEntries(Object.entries(e).sort(([t],[r])=>t.localeCompare(r)).map(([t,r])=>[t,Be(r)]))}function ho(e){let t=14695981039346656037n;const r=1099511628211n;for(let n=0;n<e.length;n+=1)t^=BigInt(e.charCodeAt(n)),t=BigInt.asUintN(64,t*r);return t.toString(16).padStart(16,"0")}function yo(e){return typeof TextEncoder<"u"?new TextEncoder().encode(e).byteLength:e.length}var Lt=3,_o=(e,t)=>{const r=e.replace(/\s+/g," ").trim().replace(/^[,.;:!?•-]+|[,.;:!?•-]+$/g,"");if(!r)return"";const n=t?.stripLeadingStopWords?r.replace(/^(?:daha|için)\s+/i,"").trim():r;return n?n.split(/\s+/).slice(0,3).join(" ").trim():""},Ge=(e,t)=>e?e.split(/[•,;:/()]|(?:\sve\s)|(?:\sand\s)|(?:\sile\s)|(?:\sfor\s)|(?:\swith\s)/i).map(r=>_o(r,t)).filter(Boolean):[];function vo(e){const t=(e.display_keywords??[]).flatMap(o=>Ge(o,{stripLeadingStopWords:!0})),r=t.filter((o,i)=>t.indexOf(o)===i);if(r.length>0)return r.slice(0,Lt);const n=[...Ge(e.chosen_attribute,{stripLeadingStopWords:!0}),...Ge(e.short_name)];return n.filter((o,i)=>n.indexOf(o)===i).slice(0,Lt)}function bo(e){return vo(e).join(" • ")}function wo(e){return e==="beauty_consulting"||e==="account_expert"}function qe(...e){for(const t of e){if(typeof t!="string")continue;const r=t.trim();if(r.length>0)return r}}function Je(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.trim().length>0).map(t=>t.trim()):[]}function Rt(e){const t={...e},r=qe(t.sku),n=Je(t.group_skus);if(r?t.sku=r:delete t.sku,n.length>0?t.group_skus=n:delete t.group_skus,r||n.length>0)delete t.image_url;else{const o=qe(t.image_url);o?t.image_url=o:delete t.image_url}return t}function Zt(e){if(typeof e.type!="string")return null;if(ko(e))return e;const t=e;switch(t.type){case"outputText":return So(t);case"suggestedActions":return Eo(t);case"productList":return Co(t);case"productDetails":return To(t);case"productDetailsSimilars":return xo(t);case"comparisonTable":return zo(t);case"context":return $o(t);case"chatStreamEnd":return No();case"loading":return Oo(t);case"panelLoading":return Lo(t);case"similarLoading":return Ro(t);case"redirect":return Zo(t);case"error":return Do(t);case"dummy":return Uo(t);case"launcherAction":return jo(t);case"text":return Ve(t);case"productItem":return Mo(t);case"text_image":return Dt(t);case"quick_qna":return Ut(t);case"reviewHighlights":return Fo(t);case"aiProductSuggestions":return qo(t);case"aiProductGroupings":return Jo(t);case"aiSuggestedSearches":return Wo(t);case"prosAndCons":return Bo(t);case"getGroundingReview":return Ho(t);case"voice":return Yo(t);case"visitorDataResponse":return Go(t);case"productListPreview":return Ko();case"groupList":return Xo(t);case"formGetInfo":case"formTestDrive":case"formServiceRequest":case"launchFormPage":return Qo(t);case"launcherContent":return ti(t);case"handoff":return ei(t);case"uiSpec":return di(t);default:return null}}function ko(e){const t=e.type;if(typeof t!="string")return!1;switch(t){case"metadata":return typeof e.sessionId=="string"&&typeof e.model=="string";case"text_chunk":return typeof e.content=="string";case"ui_spec":{const r=e.widget;if(r!=="chat"&&r!=="qna"&&r!=="simrel")return!1;const n=$(e.spec);return n?typeof n.root=="string"&&$(n.elements)!==null:!1}case"action":{const r=$(e.action);return r!==null&&typeof r.kind=="string"}case"error":return typeof e.code=="string"&&typeof e.message=="string";case"done":return!0;default:return!1}}function So(e){const t=k(e.payload.text,e.payload.plain_text)??"",r=k(e.payload.plain_text,e.payload.text)??t;if(e.payload.is_error)return{type:"error",code:"BACKEND_ERROR",message:r||"Backend returned an error"};const n={type:"text_chunk",content:t,final:!0},o=e.payload.product_mentions;Array.isArray(o)&&o.length>0&&(n.productMentions=o.filter(c=>typeof c=="object"&&c!==null&&typeof c.sku=="string"&&typeof c.short_name=="string"));const i=e.payload.sku_to_product_item;i&&typeof i=="object"&&!Array.isArray(i)&&(n.skuToProductItem=i);const s=e.payload.conversation_mode;typeof s=="string"&&s&&(n.conversationMode=s);const a=e.payload.render_hint;return typeof a=="string"&&a&&(n.renderHint=a),e.payload.kvkk===!0&&(n.kvkk=!0),n}function Eo(e){return jt((e.payload.actions??[]).map(t=>{const r=k(t.title)??"",n=R(t.requestDetails,r),o=n?{label:r,action:n}:null;return o?(typeof t.icon=="string"&&(o.icon=t.icon),typeof t.image=="string"&&(o.image=t.image),o):null}).filter(le),"chat")}function Co(e){const t=Array.isArray(e.payload.grouped_assignment)?e.payload.grouped_assignment:[],r=(Array.isArray(e.payload.style_variations)?e.payload.style_variations:[]).map(a=>{const c=k(a.style_label);if(!c)return null;const u=k(a.style_mood),l=k(a.image_url??void 0),d=(Array.isArray(a.product_list)?a.product_list:[]).map(m=>{const h=$(m);return h?Ke($(h.product_detail)??$(h.product)??h):null}).filter(le),f=Array.isArray(a.recommendation_groups)?a.recommendation_groups.map(m=>({label:k(m.label)??"",reason:k(m.reason)??"",skus:Array.isArray(m.skus)?m.skus.filter(h=>typeof h=="string"&&h.trim().length>0):[]})):[];return{style_label:c,style_mood:u??"",...l?{image_url:l}:{},...typeof a.status=="string"?{status:a.status}:{},product_list:d,recommendation_groups:f}}).filter(le),n=e.payload.product_list??[],o=wo(e.payload.source)&&r.length>0?r[0].product_list:null,i=o?ni(o,"chat"):t.length>0?ri(t,n,"chat")??He(n,"chat"):He(n,"chat");i.panelHint="panel";const s=i.spec.elements[i.spec.root];if(s){const a={};typeof e.payload.offset=="number"&&(a.offset=e.payload.offset),typeof e.payload.end_of_list=="boolean"&&(a.endOfList=e.payload.end_of_list),typeof e.payload.title=="string"&&(a.panelTitle=e.payload.title),typeof e.payload.source=="string"&&(a.source=e.payload.source),r.length>0&&(a.styleVariations=r),e.payload.replace_panel===!0&&(a.replacePanel=!0),(e.payload.ranking_state==="pending"||e.payload.ranking_state==="final")&&(a.rankingState=e.payload.ranking_state);const c=e.payload.sequence_id??e.payload.search_id;typeof c=="string"&&c.length>0&&(a.sequenceId=c),Object.keys(a).length>0&&(s.props={...s.props,...a})}return i}function To(e){const t=e.payload.productDetails;if(!t)return ii("chat");const r=B(t);return{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"ProductDetailsPanel",props:{product:{...t,...r}}}}},panelHint:"panel"}}function xo(e){const t=He(e.payload.similarProducts??[],"chat"),r=t.spec.elements[t.spec.root];return r&&(r.props={...r.props,similarsAppend:!0}),{...t,panelHint:"panel"}}function zo(e){const t=e.payload.multiple_product_details??[],r=e.payload,n={key_differences:r.key_differences,recommended_choice:r.recommended_choice,recommended_choice_sku:r.recommended_choice_sku,special_considerations:r.special_considerations,criteria_view:r.criteria_view,criteria_view_short:r.criteria_view_short,compared_field_names:r.compared_field_names,winner_product:r.winner_product,winner_hits:r.winner_hits,...e.payload.product_comparison_framework??{}},o=e.payload.table,i=e.payload.features_list,s=[];for(const y of t){const v=B(y);s.push(v)}const a=Ao(o,s,n,i);let c;n?.recommended_choice_sku?c=n.recommended_choice_sku:n?.winner_product&&n.winner_product.length>0&&(c=n.winner_product[0]?.product_detail?.sku??n.winner_product[0]?.sku);const u=c?s.find(y=>y.sku===c)??s[0]:s[0],l=[];if(Array.isArray(n?.key_differences))for(const y of n.key_differences)typeof y=="string"&&l.push(y);const d=Mt(n?.special_considerations),f=n?.recommended_choice,m=n?.winner_hits,h={};for(const y of s){const v=y.sku;v&&(h[v]={title:y.name??v,type:"launchSingleProduct",payload:{sku:v}})}const p={products:s,attributes:a,highlights:l,productActions:h};return u&&(p.recommended=u),d.length>0&&(p.specialCases=d),f&&(p.recommendedText=f),m&&(p.winnerHits=m),typeof n?.key_differences=="string"&&(p.keyDifferencesHtml=n.key_differences),n?.special_considerations&&(p.specialConsiderations=n.special_considerations),{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"ComparisonTable",props:p}}},panelHint:"panel"}}function Ao(e,t,r,n){if(!e)return[];const o=Object.entries(e);if(o.length===0)return[];const i=o[0]?.[1];if(Array.isArray(i)){const d=r.criteria_view??r.criteria_view_short??{},f=r.compared_field_names??Object.keys(e),m=[];for(const h of f){const p=e[h];if(!p||!Array.isArray(p))continue;const y=d[h]??h;m.push({label:y,values:p.map(v=>typeof v=="string"?v:String(v??""))})}return m}const s=e,a=t.map(d=>String(d.sku??"")).filter(d=>d.length>0),c=r.criteria_view??r.criteria_view_short??{},u=(n&&n.length>0?n:r.compared_field_names&&r.compared_field_names.length>0?r.compared_field_names:Io(s)).filter(d=>d!=="name"&&d!=="name_short"&&!d.endsWith("_short")),l=[];for(const d of u){const f=a.map(h=>{const p=s[h];if(!p||typeof p!="object")return"";const y=p[`${d}_short`],v=p[d];return Po(y??v)});if(f.every(h=>h.length===0))continue;const m=c[d]??d;l.push({label:m,values:f})}return l}function Io(e){const t=[],r=new Set;for(const n of Object.values(e))if(!(!n||typeof n!="object"))for(const o of Object.keys(n))r.has(o)||(r.add(o),t.push(o));return t}function Po(e){return typeof e=="string"?e:typeof e=="number"||typeof e=="boolean"?String(e):""}function $o(e){return{type:"metadata",sessionId:"",model:"",meta:{panel:e.payload.panel,messages:e.payload.messages,message_id:e.payload.message_id}}}function No(){return{type:"done"}}function Oo(e){return{type:"metadata",sessionId:"",model:"",meta:{loading:!0,loadingText:e.payload.text,thinkingMessages:e.payload.thinking_messages,dynamicLoading:e.payload.is_dynamic===!0}}}function Lo(e){return{type:"metadata",sessionId:"",model:"",meta:{loading:!0,panelLoading:!0,panelPendingType:e.payload?.pending_type,loadingText:e.payload?.text}}}function Ro(e){return{type:"metadata",sessionId:"",model:"",meta:{loading:!0,similarPanelLoading:!0,panelPendingType:e.payload?.pending_type,loadingText:e.payload?.text}}}function Zo(e){const t=k(e.payload.url);return t?{type:"action",action:{kind:"navigate",url:t,newTab:e.payload.new_tab===!0}}:{type:"metadata",sessionId:"",model:"",meta:{redirect:e.payload,redirectTarget:k(e.payload.to)}}}function Do(e){return{type:"error",code:"BACKEND_ERROR",message:k(e.payload?.text,e.payload?.message,e.payload?.error)??"Backend returned an error"}}function Uo(e){return{type:"metadata",sessionId:"",model:"",meta:{noop:!0}}}function jo(e){const t=e.payload??{};if(Array.isArray(t.action_list)){const o={action_list:t.action_list},i=typeof t.type=="string"?t.type:void 0,s=typeof t.theme=="string"?t.theme:void 0;return i!==void 0&&(o.type=i),s!==void 0&&(o.theme=s),Ut({type:"quick_qna",payload:o})}const r=$(t.action);if(r){const o={action:r},i=typeof t.text=="string"?t.text:void 0,s=typeof t.image_url=="string"?t.image_url:void 0,a=typeof t.theme=="string"?t.theme:void 0;return i!==void 0&&(o.text=i),s!==void 0&&(o.image_url=s),a!==void 0&&(o.theme=a),Dt({type:"text_image",payload:o})}const n=typeof t.text=="string"?t.text:"";if(n){const o={text:n},i=typeof t.type=="string"?t.type:void 0,s=typeof t.theme=="string"?t.theme:void 0,a=$(t.payload)??void 0;return i!==void 0&&(o.type=i),a!==void 0&&(o.payload=a),s!==void 0&&(o.theme=s),Ve({type:"text",payload:o})}return{type:"metadata",sessionId:"",model:"",meta:{launcherAction:t}}}function Ve(e){const t={text:k(e.payload.text)??""};return typeof e.payload.theme=="string"&&(t.theme=e.payload.theme),e.payload.payload!==void 0&&(t.payload=e.payload.payload),{type:"ui_spec",widget:"qna",spec:{root:"root",elements:{root:{type:"QuestionHeading",props:t}}}}}function Mo(e){return oi(e.payload,"qna")}function Dt(e){const t=k(e.payload.text)??"",r=R(e.payload.action,t);if(r){const o={label:t||r.title,action:r};return typeof e.payload.image_url=="string"&&(o.image=e.payload.image_url),typeof e.payload.theme=="string"&&(o.theme=e.payload.theme),{type:"ui_spec",widget:"qna",spec:{root:"root",elements:{root:{type:"ActionButton",props:o}}}}}const n={text:t};return typeof e.payload.theme=="string"&&(n.theme=e.payload.theme),Ve({type:"text",payload:n})}function Ut(e){return jt((e.payload.action_list??[]).map(t=>{const r=k(t.title)??"",n=R(t.requestDetails,r),o=n?{label:r,action:n}:null;return o?(typeof t.icon=="string"&&(o.icon=t.icon),typeof t.image=="string"&&(o.image=t.image),o):null}).filter(le),"qna")}function Fo(e){const t={reviews:(e.payload.reviews??[]).map(r=>{const n={};return typeof r.review_class=="string"&&(n.review_class=r.review_class),typeof r.review_text=="string"&&(n.review_text=r.review_text),(typeof r.review_rating=="string"||typeof r.review_rating=="number")&&(n.review_rating=r.review_rating),typeof r.review_tag=="string"&&(n.review_tag=r.review_tag),n})};return typeof e.payload.sku=="string"&&(t.sku=e.payload.sku),{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"ReviewHighlights",props:t}}}}}function Bo(e){const t={};return Array.isArray(e.payload.pros)&&(t.pros=e.payload.pros),Array.isArray(e.payload.cons)&&(t.cons=e.payload.cons),typeof e.payload.product_name=="string"&&(t.productName=e.payload.product_name),{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"ProsAndCons",props:t}}}}}function Go(e){return{type:"metadata",sessionId:"",model:"",meta:{visitorDataResponse:e.payload}}}function qo(e){const t=e.payload.product_suggestions??[],r=[];for(let n=0;n<t.length;n++){const o=t[n];if(!o)continue;const i=si(o);if(!i)continue;const s={product:i},a=R(o.requestDetails,i.name);a&&(s.action=a),typeof o.role=="string"&&(s.role=o.role),typeof o.reason=="string"&&(s.reason=o.reason),typeof o.review_highlight=="string"&&(s.reviewHighlight=o.review_highlight),Array.isArray(o.labels)&&(s.labels=o.labels),typeof o.expert_quality_score=="number"&&(s.expertQualityScore=o.expert_quality_score),r.push(s)}return r.length===0?{type:"metadata",sessionId:"",model:"",meta:{aiProductSuggestions:e.payload.product_suggestions??[]}}:{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"AITopPicks",props:{suggestions:r}}}}}}function Jo(e){const t=e.payload.product_groupings??[],r=[],n=[];for(let o=0;o<t.length;o++){const i=t[o];if(!i)continue;const s=k(i.name)??"",a=k(i.description),c=k(i.highlight),u=Array.isArray(i.labels)?Mt(i.labels):[],l=k(i.sku,i.repr_sku),d=k(i.image,i.repr_image),f=Vo(i,s,l),m=(Array.isArray(i.group_products)?i.group_products:[]).map(y=>{const v=$(y);return v?Ke(v):null}).filter(le),h=d??k(...m.map(y=>y.imageUrl));if(s&&m.length>0){const y={groupName:s,products:m};h&&(y.image=h),a&&(y.description=a),c&&(y.highlight=c),u.length>0&&(y.labels=u),r.push(y)}if(!f)continue;const p={name:s,action:f};u.length>0&&(p.labels=u),d!==void 0&&(p.image=d),n.push(p)}return r.length>0?{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"CategoriesContainer",props:{groups:r}}}},panelHint:"panel"}:n.length===0?{type:"metadata",sessionId:"",model:"",meta:{aiProductGroupings:e.payload.product_groupings??[]}}:{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"AIGroupingCards",props:{entries:n}}}}}}function Vo(e,t,r){const n=$(e.requestDetails);if(n){if(n.type!=="findSimilar")return R(n,t);const s={...$(n.payload)??{}};r&&!qe(s.sku)&&(s.sku=r);const a=Je(e.group_skus);return a.length>0&&(s.group_skus=a),R({...n,payload:Rt(s)},t)}const o={};r&&(o.sku=r);const i=Je(e.group_skus);return i.length>0&&(o.group_skus=i),Object.keys(o).length===0?null:R({type:"findSimilar",payload:Rt(o)},t)}function Wo(e){const t=e.payload.suggested_searches??[],r=[];for(let n=0;n<t.length;n++){const o=t[n];if(!o)continue;const i=k(o.short_name,o.chosen_attribute,o.detailed_user_message)??`Search ${n+1}`,s={},a=k(o.detailed_user_message);a&&(s.text=a);const c=$($(o.requestDetails)?.payload),u=c?.group_skus;o.group_skus&&Array.isArray(o.group_skus)?s.group_skus=o.group_skus:Array.isArray(u)&&(s.group_skus=u.filter(v=>typeof v=="string"));const l=k(o.sku,o.representative_product_sku,c?.sku);l&&(s.sku=l),s.is_suggested_text=1;const d={type:"inputText",payload:s},f=R(o.requestDetails,i),m=f?.type==="findSimilar"&&typeof s.text=="string"?R(d,i):f??R(d,i);if(!m)continue;const h={shortName:i,action:m},p=k(o.detailed_user_message);p&&p!==i&&(h.detailedMessage=p);const y=bo(o);y&&y!==i&&y!==(p??"")&&(h.whyDifferent=y),typeof o.image=="string"&&(h.image=o.image),r.push(h)}return r.length===0?{type:"metadata",sessionId:"",model:"",meta:{aiSuggestedSearches:e.payload.suggested_searches??[]}}:{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"AISuggestedSearchCards",props:{entries:r}}}}}}function Ho(e){const t=e.payload,r=R(t.requestDetails??t.request_details,k(t.review_count,t.reviewCount,t.text,t.title)??"Show product reviews");if(!r)return{type:"metadata",sessionId:"",model:"",meta:{groundingReview:t}};const n={action:r};return t.title&&(n.title=t.title),t.text&&(n.text=t.text),t.review_count?n.reviewCount=t.review_count:typeof t.reviewCount=="string"&&t.reviewCount.trim()&&(n.reviewCount=t.reviewCount),{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"GroundingReviewCard",props:n}}}}}function Ko(){return{type:"metadata",sessionId:"",model:"",meta:{analyzeAnimation:!0}}}function Yo(e){return{type:"metadata",sessionId:"",model:"",meta:{voice:e.payload}}}function Xo(e){const t=e.payload.group_list??[],r=[];for(const o of t){const i=o.group_name??"",s=(o.product_list??[]).map(B);r.push({groupName:i,products:s})}const n=[];for(const o of e.payload.filter_tags??[]){const i=o.title??"";if(!i)continue;const s=R(o.requestDetails,i),a={title:i};s&&(a.action=s),n.push(a)}return{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"CategoriesContainer",props:{groups:r,filterTags:n}}}},panelHint:"panel"}}function Qo(e){return{type:"metadata",sessionId:"",model:"",meta:{formType:e.type,formPayload:e.payload??{}}}}function ei(e){const t={};return typeof e.payload?.summary=="string"&&(t.summary=e.payload.summary),Array.isArray(e.payload?.products_discussed)&&(t.products_discussed=e.payload.products_discussed),typeof e.payload?.user_sentiment=="string"&&(t.user_sentiment=e.payload.user_sentiment),{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"HandoffNotice",props:t}}}}}function ti(e){return{type:"metadata",sessionId:"",model:"",meta:{launcherContent:e.payload??{}}}}function We(e,t){const r={product:e,index:t},n=e,o=typeof n.sku=="string"?n.sku:void 0;return o&&(r.action={title:typeof n.name=="string"?n.name:"",type:"launchSingleProduct",payload:{sku:o}}),{type:"ProductCard",props:r}}function jt(e,t){const r={},n=[];for(let o=0;o<e.length;o++){const i=e[o];if(!i)continue;const s=`action-${o}`;n.push(s);const a={label:i.label,action:i.action};i.icon!==void 0&&(a.icon=i.icon),i.image!==void 0&&(a.image=i.image),i.description!==void 0&&(a.description=i.description),r[s]={type:"ActionButton",props:a}}return r.root={type:"ActionButtons",props:{buttons:e.map(o=>{const i={label:o.label,action:o.action};return o.image!==void 0&&(i.image=o.image),o.description!==void 0&&(i.description=o.description),o.icon!==void 0&&(i.icon=o.icon),i})},children:n},{type:"ui_spec",widget:t,spec:{root:"root",elements:r}}}function He(e,t){const r={},n=[];for(let o=0;o<e.length;o++){const i=e[o];if(!i)continue;const s=B(i),a=`product-${o}`;n.push(a),r[a]=We(s,o)}return r.root={type:"ProductGrid",props:{layout:"grid"},children:n},{type:"ui_spec",widget:t,spec:{root:"root",elements:r}}}function ri(e,t,r){const n=new Map;for(const u of t)u?.sku&&n.set(u.sku,u);if(n.size===0)return null;const o=new Set,i={},s=[],a=[];let c=0;for(let u=0;u<e.length;u++){const l=e[u],d=k(l?.title)??"",f=Array.isArray(l?.skus)?l.skus:[],m=[];for(let h=0;h<f.length;h++){const p=typeof f[h]=="string"?f[h].trim():"";if(!p||o.has(p))continue;const y=n.get(p);if(!y)continue;o.add(p);const v=`product-${u}-${h}`,I=B(y);s.push(v),m.push(v),i[v]=We(I,c),c+=1}m.length>0&&a.push({title:d,children:m})}return a.length===0||o.size<n.size?null:(i.root={type:"ProductGrid",props:{layout:"grouped",productSections:a},children:s},{type:"ui_spec",widget:r,spec:{root:"root",elements:i}})}function ni(e,t){const r={},n=[];for(let o=0;o<e.length;o++){const i=e[o];if(!i)continue;const s=`product-${o}`;n.push(s),r[s]=We(i,o)}return r.root={type:"ProductGrid",props:{layout:"grid"},children:n},{type:"ui_spec",widget:t,spec:{root:"root",elements:r}}}function oi(e,t){return{type:"ui_spec",widget:t,spec:{root:"root",elements:{root:{type:"ProductCard",props:{product:B(e),index:0}}}}}}function ii(e){return{type:"ui_spec",widget:e,spec:{root:"root",elements:{root:{type:"ActionButtons",props:{buttons:[]},children:[]}}}}}function si(e){const t=k(e.sku),r=k(e.short_name),n={...$(e.product_item)??e},o=k(e.discount_reason,e.discountReason);return o&&!k(n.discount_reason,n.discountReason)&&(n.discount_reason=o),Ke(n,t,r)}function Ke(e,t,r){const n=k(e.sku,t),o=k(e.name,r);if(!n||!o)return null;const i={sku:n,name:o},s=k(e.brand);s&&(i.brand=s);const a=k(e.url);a&&(i.url=a);const c=ai(e.images);if(c.length>0)i.images=c;else{const p=k(e.image,e.image_url,e.imageUrl);p&&(i.images=[p])}const u=ue(e.price_discounted);u!==void 0&&(i.price_discounted=u);const l=ue(e.price);l!==void 0&&(i.price=l);const d=ue(e.rating);d!==void 0&&(i.rating=d);const f=ue(e.review_count)??ue(e.reviewCount);f!==void 0&&(i.review_count=f);const m=k(e.cart_code,e.cartCode);m&&(i.cart_code=m),typeof e.in_stock=="boolean"&&(i.in_stock=e.in_stock),typeof e.inStock=="boolean"&&(i.in_stock=e.inStock);const h=k(e.discount_reason,e.discountReason);return h&&(i.discount_reason=h),B(i)}function R(e,t){const r=$(e);if(!r)return null;const n=r.type;if(typeof n!="string"||n.length===0)return null;const o={title:t||n,type:n};return r.payload!==void 0&&(o.payload=r.payload),o}function $(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function k(...e){for(const t of e)if(typeof t=="string"){const r=t.trim();if(r.length>0)return r}}function ai(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.length>0):[]}function Mt(e){if(typeof e=="string"){const t=e.trim();return t?[t]:[]}return Array.isArray(e)?e.filter(t=>typeof t=="string").map(t=>t.trim()).filter(t=>t.length>0):[]}function ue(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"){let t;e.includes(".")&&e.includes(",")?t=e.replace(/\./g,"").replace(",","."):t=e.replace(",",".");const r=Number(t);if(Number.isFinite(r))return r}}function le(e){return e!=null}var ci=new Set(["sku","name","brand","images","price","price_discounted","price_discount_rate","price_currency","discount_reason","url","rating","review_count","cart_code","in_stock","description","description_html","features","specifications","short_name","category_ids","category_names","variants","facet_hits","promotions"]);function B(e){const t=e.price_discounted!=null&&e.price_discounted>0,r=t?e.price_discounted:e.price,n=t&&e.price!=null?e.price:void 0;let o;n!=null&&r!=null&&n>0?o=Math.round((n-r)/n*100):e.price_discount_rate!=null&&e.price_discount_rate>0&&(o=e.price_discount_rate);const i=k(e.brand),s=k(e.name)??e.sku,a=i&&!s.toLowerCase().startsWith(i.toLowerCase())?`${i} ${s}`:s,c={sku:e.sku,name:a,url:k(e.url)??""},u=e.images?.[0];u&&(c.imageUrl=u),e.images&&e.images.length>1&&(c.images=e.images),r!=null&&r>0&&(c.price=String(r)),n!=null&&n>0&&(c.originalPrice=String(n)),o!==void 0&&(c.discountPercent=o),i!==void 0&&(c.brand=i),e.rating!==void 0&&(c.rating=e.rating),e.review_count!==void 0&&(c.reviewCount=e.review_count),e.cart_code!==void 0&&(c.cartCode=e.cart_code),e.in_stock!==void 0&&(c.inStock=e.in_stock),e.variants&&e.variants.length>0&&(c.variants=e.variants),e.discount_reason!==void 0&&(c.discountReason=e.discount_reason),e.promotions&&e.promotions.length>0&&(c.promotions=e.promotions),e.description!==void 0&&(c.description=e.description),e.description_html!==void 0&&(c.descriptionHtml=e.description_html),e.features&&e.features.length>0&&(c.features=e.features),e.specifications!==void 0&&(c.specifications=e.specifications),e.facet_hits&&(c.facetHits=e.facet_hits),e.category_names&&e.category_names.length>0&&(c.categoryNames=e.category_names),e.short_name!==void 0&&(c.shortName=e.short_name);const l=e,d={};let f=!1;for(const m of Object.keys(l))ci.has(m)||(d[m]=l[m],f=!0);return f&&(c.extras=d),c}function ui(e){return e.results.map(B)}function li(e){return e.product_groupings.map(t=>{const r={name:t.name,products:(t.group_products??[]).map(B)};return t.highlight!==void 0&&(r.highlight=t.highlight),r})}function di(e){const t=e.payload.type,{type:r,...n}=e.payload;return{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:t,props:n}}}}}function Ft(e){const t=[];for(const r of Object.values(e))if(r.type==="ProductCard"&&r.props){const n=r.props.product??r.props;typeof n.sku=="string"&&typeof n.name=="string"&&t.push(n)}return t}function Bt(e){const t=e.headers.get("Content-Type")??"";return t.includes("application/x-ndjson")||t.includes("text/event-stream")}async function fi(e,t){const r=[],n={onEvent:o=>{const i=Zt(o);!i||i.type!=="ui_spec"||r.push(...Ft(i.spec.elements))}};return t!==void 0&&(n.signal=t),await It(e,n),r}async function pi(e,t,r){const n=xt("similar_products",t),o={method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)};r!==void 0&&(o.signal=r);const i=await Nt(n,o);if(!i.ok)throw new Error(`HTTP ${i.status}: ${i.statusText}`);if(Bt(i))return fi(i,r);const s=await i.text();if(!s)throw new Error("Empty response body from similar_products endpoint");try{return ui(JSON.parse(s))}catch{throw new Error("Invalid JSON from similar_products endpoint")}}async function gi(e,t){const r=[];let n=null;const o={onEvent:i=>{const s=Zt(i);if(s){if(s.type==="metadata"&&s.meta){const a=s.meta.group_name;if(typeof a=="string"){n={name:a,products:[]};const c=s.meta.highlight;typeof c=="string"&&(n.highlight=c),r.push(n)}}s.type==="ui_spec"&&n&&n.products.push(...Ft(s.spec.elements))}}};return t!==void 0&&(o.signal=t),await It(e,o),r}async function mi(e,t,r){const n=xt("product_groupings",t),o={method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)};r!==void 0&&(o.signal=r);const i=await Nt(n,o);if(!i.ok)throw new Error(`HTTP ${i.status}: ${i.statusText}`);if(Bt(i))return gi(i,r);const s=await i.text();if(!s)return[];try{return li(JSON.parse(s))}catch{throw new Error("Invalid JSON from product_groupings endpoint")}}var hi={currencyCode:"TRY",currencySymbol:"TL",currencyPosition:"suffix",thousandsSeparator:".",decimalSeparator:",",alwaysShowDecimals:!1};function de(e,t){const r=Number(e);if(!Number.isFinite(r)||r<0)return e;const n={...hi,...t},o=Math.abs(r%1)<Number.EPSILON,i=n.alwaysShowDecimals||!o?r.toFixed(2):r.toFixed(0),s=i.indexOf("."),a=s===-1?i:i.slice(0,s),c=s===-1?void 0:i.slice(s+1),u=a.replace(/\B(?=(\d{3})+(?!\d))/g,n.thousandsSeparator);let l;return c!==void 0?l=`${u}${n.decimalSeparator}${c}`:l=u,n.currencySymbol?n.currencyPosition==="prefix"?`${n.currencySymbol}${l}`:`${l} ${n.currencySymbol}`:l}function yi(e){return Number.isFinite(e)?Math.max(0,Math.min(5,e)):0}function _i(e){return Number.isFinite(e)?Math.max(0,Math.min(100,Math.round(e))):0}function vi(e){const t=yi(e),r=Math.floor(t),n=t-r>=.5,o=5-r-(n?1:0),i=document.createElement("span");if(i.className="gengage-star-rating",i.setAttribute("role","img"),i.setAttribute("aria-label",`${t.toFixed(1)} out of 5 stars`),r>0&&i.appendChild(document.createTextNode("★".repeat(r))),n){const s=document.createElement("span");s.className="gengage-star-half",s.textContent="☆";const a=document.createElement("span");a.textContent="★",s.appendChild(a),i.appendChild(s)}return o>0&&i.appendChild(document.createTextNode("☆".repeat(o))),i}function Gt(e){e.addEventListener("error",()=>{e.style.display="none"},{once:!0})}function qt(e){const{product:t,index:r,discountType:n,onClick:o,onAddToCart:i,renderCard:s}=e,a=e.i18n,c=e.pricing;if(e.renderCardElement){const p=e.renderCardElement(t,r);if(p)return p}if(s){const p=document.createElement("div");return p.className="gengage-simrel-card gengage-simrel-card--custom gds-card gds-product-card gds-card-interactive",p.dataset.gengagePart="simrel-product-card",p.innerHTML=mn(s(t,r)),p.addEventListener("click",y=>{y.target.closest(".gengage-simrel-atc")||y.target.closest(".gengage-chat-product-card-atc")||o(t)}),p}const u=document.createElement("article");u.className="gengage-simrel-card gengage-chat-product-card gds-card gds-product-card gds-card-interactive",u.dataset.gengagePart="simrel-product-card",t.inStock===!1&&u.classList.add("gengage-simrel-card--out-of-stock"),u.setAttribute("role","listitem"),u.dataset.sku=t.sku;const l=document.createElement("div");if(l.className="gengage-simrel-card-image gengage-chat-product-card-img-wrapper",l.dataset.gengagePart="simrel-product-card-image",t.imageUrl&&_e(t.imageUrl)){const p=document.createElement("img");p.className="gengage-chat-product-card-img",p.src=t.imageUrl,p.alt=t.name,p.loading="lazy",Gt(p),l.appendChild(p)}if(n==="badge"&&t.discountPercent&&t.discountPercent>0){const p=document.createElement("span");p.className="gengage-simrel-badge gengage-chat-product-card-discount-badge",p.textContent=`%${_i(t.discountPercent)}`,l.appendChild(p)}u.appendChild(l);const d=document.createElement("div");if(d.className="gengage-simrel-card-info gengage-chat-product-card-body",d.dataset.gengagePart="simrel-product-card-body",t.brand){const p=document.createElement("div");p.className="gengage-simrel-card-brand gengage-chat-product-card-brand",p.textContent=t.brand,d.appendChild(p)}const f=document.createElement("div");if(f.className="gengage-simrel-card-name gengage-chat-product-card-name",f.textContent=t.name,f.title=t.name,d.appendChild(f),t.rating!=null&&t.rating>0){const p=document.createElement("div");if(p.className="gengage-simrel-card-rating gengage-chat-product-card-rating",p.appendChild(vi(t.rating)),t.reviewCount!=null){const y=document.createElement("span");y.className="gengage-simrel-card-review-count gengage-chat-product-card-review-count",y.textContent=` (${t.reviewCount})`,p.appendChild(y)}d.appendChild(p)}const m=document.createElement("div");if(m.className="gengage-simrel-card-price gengage-chat-product-card-price",t.originalPrice&&t.originalPrice!==t.price&&(n==="strike-through"||n==="inline"||!n)){const p=document.createElement("span");p.className=["gengage-simrel-card-price-original","gengage-chat-product-card-original-price"].join(" "),n==="inline"&&p.classList.add("gengage-simrel-card-price-original--inline"),p.textContent=de(t.originalPrice,c),m.appendChild(p)}if(t.price&&parseFloat(t.price)>0){const p=document.createElement("span");p.className="gengage-simrel-card-price-current gengage-chat-product-card-price-current",p.textContent=de(t.price,c),m.appendChild(p)}d.appendChild(m),u.appendChild(d);const h=document.createElement("button");if(h.className="gengage-simrel-card-cta gengage-chat-product-card-cta gds-btn gds-btn-secondary",h.type="button",h.dataset.gengagePart="simrel-product-card-cta",h.textContent=a?.ctaLabel??"View",h.addEventListener("click",p=>{p.preventDefault(),p.stopPropagation(),o(t)}),u.appendChild(h),t.inStock===!1){const p=document.createElement("div");p.className="gengage-simrel-card-oos",p.textContent=a?.outOfStockLabel??"Out of Stock",u.appendChild(p)}else if(t.cartCode){const p=document.createElement("button");p.className="gengage-simrel-atc gengage-simrel-atc-button gds-btn gds-btn-secondary",p.type="button",p.textContent=a?.addToCartButton??"Add to Cart",p.addEventListener("click",y=>{y.preventDefault(),y.stopPropagation(),i({sku:t.sku,quantity:1,cartCode:t.cartCode})}),u.appendChild(p)}return u.addEventListener("click",p=>{p.target.closest(".gengage-simrel-atc")||p.target.closest(".gengage-chat-product-card-atc")||p.target.closest(".gengage-chat-product-card-cta")||o(t)}),u}function Jt(e){const 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 r=0;r<e.products.length;r++){const n={product:e.products[r],index:r,onClick:e.onClick,onAddToCart:e.onAddToCart};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);const o=qt(n);t.appendChild(o)}return e.products.length===0&&(t.style.display="none",t.dataset.empty="true"),t}var bi=0;function Vt(e){const t=bi++,r=document.createElement("div");if(r.className="gengage-simrel-groups",r.dataset.gengagePart="simrel-groups",e.groups.length===0)return r.style.display="none",r.dataset.empty="true",r;const n=document.createElement("div");n.className="gengage-simrel-tabs gds-toolbar",n.dataset.gengagePart="simrel-tab-bar",n.setAttribute("role","tablist");const o=[],i=[];let s=0;const a=y=>{const v={products:y.products,onClick:e.onClick,onAddToCart:e.onAddToCart};return e.i18n!==void 0&&(v.i18n=e.i18n),e.discountType!==void 0&&(v.discountType=e.discountType),e.renderCard!==void 0&&(v.renderCard=e.renderCard),e.renderCardElement!==void 0&&(v.renderCardElement=e.renderCardElement),e.columns!==void 0&&(v.columns=e.columns),v},c=(y,v=!1)=>{if(v&&y!==s&&e.onGroupingActivate){const w=e.groups[y];e.onGroupingActivate({grouping_label:w.name,grouping_index:y})}s=y;for(let w=0;w<o.length;w++){const P=w===y;o[w].classList.toggle("gengage-simrel-tab--active",P),o[w].setAttribute("aria-selected",String(P)),o[w].tabIndex=P?0:-1}const I=e.groups[y],S=i[y];S.innerHTML="";const b=Jt(a(I));S.appendChild(b);for(let w=0;w<i.length;w++){const P=w===y;i[w].style.display=P?"":"none",i[w].tabIndex=P?0:-1}};for(let y=0;y<e.groups.length;y++){const v=e.groups[y],I=`gengage-simrel-tab-${t}-${y}`,S=`gengage-simrel-panel-${t}-${y}`,b=document.createElement("button");b.className="gengage-simrel-tab gds-tab",b.type="button",b.dataset.gengagePart="simrel-tab",b.id=I,b.textContent=v.name,b.setAttribute("role","tab"),b.setAttribute("aria-controls",S),b.setAttribute("aria-selected",String(y===0)),b.tabIndex=y===0?0:-1,y===0&&b.classList.add("gengage-simrel-tab--active"),b.addEventListener("click",()=>c(y,!0)),b.addEventListener("keydown",P=>{let M=-1;P.key==="ArrowRight"||P.key==="ArrowDown"?M=(y+1)%e.groups.length:P.key==="ArrowLeft"||P.key==="ArrowUp"?M=(y-1+e.groups.length)%e.groups.length:P.key==="Home"?M=0:P.key==="End"&&(M=e.groups.length-1),M>=0&&(P.preventDefault(),c(M,!0),o[M].focus())}),o.push(b),n.appendChild(b);const w=document.createElement("div");w.className="gengage-simrel-tab-panel",w.dataset.gengagePart="simrel-tab-panel",w.id=S,w.setAttribute("role","tabpanel"),w.setAttribute("aria-labelledby",I),w.tabIndex=y===0?0:-1,y!==0&&(w.style.display="none"),i.push(w)}const u=document.createElement("button");u.type="button",u.className="gengage-simrel-tabs-arrow gengage-simrel-tabs-arrow--left",u.setAttribute("aria-label",e.i18n?.scrollTabsLeft??"Scroll tabs left"),u.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>';const 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>';const d=200;u.addEventListener("click",()=>{n.scrollBy({left:-200,behavior:"smooth"})}),l.addEventListener("click",()=>{n.scrollBy({left:d,behavior:"smooth"})});const f=()=>{const y=n.scrollLeft<=4,v=n.scrollLeft+n.clientWidth>=n.scrollWidth-4;u.style.display=y?"none":"",l.style.display=v?"none":"",n.classList.toggle("gengage-simrel-tabs--peek-right",!v),n.classList.toggle("gengage-simrel-tabs--peek-left",!y)};n.addEventListener("scroll",f,{passive:!0}),typeof ResizeObserver<"u"&&new ResizeObserver(f).observe(n),u.style.display="none",l.style.display="none",requestAnimationFrame(f);const m=document.createElement("div");m.className="gengage-simrel-tabs-wrapper",m.appendChild(u),m.appendChild(n),m.appendChild(l),r.appendChild(m);const h=i[0],p=Jt(a(e.groups[0]));h.appendChild(p);for(const y of i)r.appendChild(y);return r}function Wt(e){if(!e||typeof e!="object")return null;const t=e;if(typeof t.sku!="string"||typeof t.name!="string"||typeof t.url!="string")return null;const r={sku:t.sku,name:t.name,url:t.url},n=t.imageUrl;typeof n=="string"&&(r.imageUrl=n);const o=t.price;typeof o=="string"&&(r.price=o);const i=t.originalPrice;typeof i=="string"&&(r.originalPrice=i);const s=t.discountPercent;typeof s=="number"&&(r.discountPercent=s);const a=t.brand;typeof a=="string"&&(r.brand=a);const c=t.rating;typeof c=="number"&&(r.rating=c);const u=t.reviewCount;typeof u=="number"&&(r.reviewCount=u);const l=t.cartCode;typeof l=="string"&&(r.cartCode=l);const d=t.inStock;typeof d=="boolean"&&(r.inStock=d);const f=t.extras;return f!=null&&typeof f=="object"&&(r.extras=f),r}function wi(e){if(!e||typeof e!="object")return null;const t=e,r=t.title,n=t.type;if(typeof r!="string"||typeof n!="string")return null;const o={title:r,type:n};return t.payload!==void 0&&(o.payload=t.payload),o}var Ht={ProductGrid:({element:e,renderElement:t,context:r})=>{const n=document.createElement("div");n.className="gengage-simrel-grid",n.setAttribute("role","list");const o=e.props?.columns;let i;typeof o=="number"&&Number.isFinite(o)&&o>0?i=Math.floor(o):typeof r.gridColumns=="number"&&Number.isFinite(r.gridColumns)&&r.gridColumns>0&&(i=Math.floor(r.gridColumns)),i!==void 0&&n.style.setProperty("--gengage-simrel-columns",String(i));for(const s of e.children??[]){const a=t(s);a&&n.appendChild(a)}if(n.children.length===0){const s=document.createElement("div");s.className="gengage-simrel-empty",s.textContent=r.i18n.emptyStateMessage,n.appendChild(s)}return n},ProductCard:({element:e,context:t})=>{const r=Wt(e.props?.product??e.props);if(!r)return null;const n=e.props?.index,o=typeof n=="number"&&Number.isFinite(n)?n:0,i=e.props?.discountType,s=i==="strike-through"||i==="badge"||i==="inline"?i:t.discountType,a={product:r,index:o,onClick:t.onClick,onAddToCart:t.onAddToCart,i18n:t.i18n};return s!==void 0&&(a.discountType=s),t.renderCard!==void 0&&(a.renderCard=t.renderCard),t.renderCardElement!==void 0&&(a.renderCardElement=t.renderCardElement),t.pricing!==void 0&&(a.pricing=t.pricing),qt(a)},GroupTabs:({element:e,context:t})=>{const r=e.props?.groups;if(!Array.isArray(r))return null;const n=[];for(const s of r){if(!s||typeof s!="object")continue;const a=s;if(typeof a.name!="string")continue;const c=[];if(Array.isArray(a.products))for(const l of a.products){const d=Wt(l);d&&c.push(d)}const u={name:a.name,products:c};typeof a.highlight=="string"&&(u.highlight=a.highlight),n.push(u)}const o={groups:n,onClick:t.onClick,onAddToCart:t.onAddToCart,i18n:t.i18n},i=e.props?.columns;return typeof i=="number"&&Number.isFinite(i)&&i>0?o.columns=Math.floor(i):typeof t.gridColumns=="number"&&Number.isFinite(t.gridColumns)&&t.gridColumns>0&&(o.columns=Math.floor(t.gridColumns)),t.discountType!==void 0&&(o.discountType=t.discountType),t.renderCard!==void 0&&(o.renderCard=t.renderCard),t.renderCardElement!==void 0&&(o.renderCardElement=t.renderCardElement),t.onGroupingActivate!==void 0&&(o.onGroupingActivate=t.onGroupingActivate),Vt(o)},EmptyState:({element:e,context:t})=>{const r=document.createElement("div");r.className="gengage-simrel-empty";const n=e.props?.message;return r.textContent=typeof n=="string"?n:t.i18n.emptyStateMessage,r},AddToCartButton:({element:e,context:t})=>{const r=e.props?.sku,n=e.props?.cartCode;if(typeof r!="string"||typeof n!="string")return null;const o=document.createElement("button");o.className="gengage-simrel-atc gengage-chat-product-card-cta",o.type="button";const i=e.props?.label;return o.textContent=typeof i=="string"?i:t.i18n.addToCartButton,o.addEventListener("click",s=>{s.preventDefault(),s.stopPropagation(),t.onAddToCart({sku:r,quantity:1,cartCode:n})}),o},QuickActions:({element:e,context:t})=>{const r=document.createElement("div");r.className="gengage-simrel-quick-actions";const n=e.props?.actions;if(!Array.isArray(n)||!t.onAction)return r;for(const o of n){if(!o||typeof o!="object")continue;const i=o,s=i.label,a=wi(i.action);if(typeof s!="string"||!a)continue;const c=document.createElement("button");c.className="gengage-simrel-quick-action",c.type="button",c.textContent=s,c.addEventListener("click",u=>{u.preventDefault(),u.stopPropagation(),t.onAction?.(a)}),r.appendChild(c)}return r}},Ye=({element:e,renderElement:t})=>{if(!e.children||e.children.length===0)return null;const r=document.createElement("div");for(const n of e.children){const o=t(n);o&&r.appendChild(o)}return r};function Kt(){return{...Ht}}function Yt(e,t,r=Ht,n=Ye){return an({spec:e,context:t,registry:r,containerClassName:"gengage-simrel-uispec",unknownRenderer:n})}var Xt={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"},ki={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 Si(e){return e?e.toLowerCase().split("-")[0]??"tr":"tr"}function Ei(e){return Si(e)==="en"?ki:Xt}var Ci=12e4;function Ti(e){return e instanceof DOMException&&e.name==="AbortError"}var Qt=class extends Un{constructor(...e){super(...e),this._abortController=null,this._contentEl=null,this._lastResultCount=-1,this._i18n=Xt,this._pendingAddToCartKeys=new Set}async init(e){if(!this.isInitialised&&(e.mountTarget===void 0||e.mountTarget===null))throw new Error("[gengage] SimRel mountTarget is required. Provide a merchant-owned mount before initializing.");await super.init(e)}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",this._contentEl.lang=Mn(e.locale);const t=this._clampGridColumns(e.gridColumns);t!==void 0&&this._contentEl.style.setProperty("--gengage-simrel-columns",String(t)),this.root.appendChild(this._contentEl),this._lastSku=e.sku,await this._fetchAndRender(e.sku),yn("simrel")}onUpdate(e){const 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(),this._contentEl=null)}_handleProductClick(e){const t={sku:e.sku,name:e.name,url:e.url};if(e.imageUrl!==void 0&&(t.imageUrl=e.imageUrl),e.price!==void 0&&(t.price=e.price),e.originalPrice!==void 0&&(t.originalPrice=e.originalPrice),e.discountPercent!==void 0&&(t.discountPercent=e.discountPercent),e.brand!==void 0&&(t.brand=e.brand),e.rating!==void 0&&(t.rating=e.rating),e.reviewCount!==void 0&&(t.reviewCount=e.reviewCount),e.cartCode!==void 0&&(t.cartCode=e.cartCode),e.inStock!==void 0&&(t.inStock=e.inStock),this.config.onProductClick?.(t)===!1)return;const r=this.config.session?.sessionId??null;se("gengage:similar:product-click",{sku:e.sku,url:e.url,sessionId:r,productName:e.name}),this.config.onProductNavigate?.(e.url,e.sku,r)}async _handleAddToCart(e){const t=`${e.sku}\0${e.cartCode}\0${e.quantity}`;if(!this._pendingAddToCartKeys.has(t)){this._pendingAddToCartKeys.add(t);try{if(this.config.onAddToCart===void 0)return;try{await Promise.resolve(this.config.onAddToCart(e))}catch(r){console.error("[gengage] simrel onAddToCart",r);return}_n(e.sku,e.quantity),se("gengage:similar:add-to-cart",e)}finally{this._pendingAddToCartKeys.delete(t)}}}_abort(){this._abortController?.abort(),this._abortController=null}_isSuperseded(e){return this._abortController?.signal!==e}_emitSimilarProductsImpression(e,t){const r=this.config.session?.sessionId??null;se("gengage:similar:products-impression",{source_sku:this.config.sku,product_count:e,grouped:t,sessionId:r})}_resolveRequestTimeoutMs(){const e=this.config.requestTimeoutMs;return typeof e!="number"||!Number.isFinite(e)||e<=0?Ci:Math.floor(e)}async _fetchAndRender(e){this._abort();const t=new AbortController;this._abortController=t;const r=t.signal;let n=!1;const o=setTimeout(()=>{n=!0,t.abort()},this._resolveRequestTimeoutMs());if(r.addEventListener("abort",()=>clearTimeout(o),{once:!0}),!this._contentEl)return;this._contentEl.innerHTML="",this._contentEl.style.display="";const i=document.createElement("div");i.className="gengage-simrel-loading",i.dataset.gengagePart="simrel-loading";const s=document.createElement("div");s.className="gengage-simrel-spinner",s.dataset.gengagePart="simrel-loading-spinner",i.appendChild(s),this._contentEl.appendChild(i);const a={middlewareUrl:this.config.middlewareUrl},c=Wn({source:"simrel",locale:this.config.locale});try{const u={account_id:this.config.accountId,session_id:this.config.session?.sessionId??"",correlation_id:this.config.session?.sessionId??"",sku:e};this.config.domain!==void 0&&(u.domain=this.config.domain);const l=await pi(u,a,r);if(this._lastResultCount=l.length,!this._contentEl)return;if(this._contentEl.innerHTML="",l.length>0&&this.config.enableProductGroupings!==!1)try{const d=l.map(h=>h.sku),f=new Map(l.map(h=>[h.sku,h])),m=(await mi({account_id:this.config.accountId,session_id:this.config.session?.sessionId??"",correlation_id:this.config.session?.sessionId??"",skus:d},a,r)).map(h=>({...h,products:h.products.map(p=>({...f.get(p.sku),...p})).filter(p=>typeof p.sku=="string"&&typeof p.name=="string"&&typeof p.url=="string")})).filter(h=>h.products.length>0);if(m.length>0&&this._contentEl){const h=this._buildGroupsSpec(m),p=this._renderUISpec(h);this._contentEl.appendChild(p),ht("simrel"),this._emitSimilarProductsImpression(m.reduce((y,v)=>y+v.products.length,0),!0);return}}catch{}if(this._isSuperseded(r))return;if(this._contentEl){const d=this._buildProductsSpec(l),f=this._renderUISpec(d);this._contentEl.appendChild(f)}l.length>0&&ht("simrel"),this._emitSimilarProductsImpression(l.length,!1)}catch(u){const l=Ti(u);if(l&&this._isSuperseded(r))return;if(se("gengage:global:error",{source:"simrel",code:l&&n?"REQUEST_TIMEOUT":"FETCH_ERROR",message:zn(this.config.locale,u)}),this._contentEl){this._contentEl.innerHTML="";const d=document.createElement("div");d.className="gengage-simrel-error";const f=document.createElement("span");f.textContent=this._i18n.errorLoadingMessage,d.appendChild(f);const m=document.createElement("button");m.className="gengage-simrel-retry",m.textContent=this._i18n.retryButtonText,m.addEventListener("click",()=>{this._fetchAndRender(this.config.sku)}),d.appendChild(m),this._contentEl.appendChild(d)}}finally{clearTimeout(o),c()}}_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{...Ei(e.locale),...e.i18n}}_resolveUISpecRegistry(){return cn(Kt(),this.config.renderer?.registry)}_buildRenderContext(){const e=this.config.renderCard,t={onClick:n=>this._handleProductClick(n),onAddToCart:n=>{this._handleAddToCart(n)},onGroupingActivate:n=>{se("gengage:similar:grouping-click",{grouping_label:n.grouping_label,grouping_index:n.grouping_index,sessionId:this.config.session?.sessionId??null})},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);const r=this._clampGridColumns(this.config.gridColumns);return r!==void 0&&(t.gridColumns=r),t}_renderUISpec(e){const t=this._resolveUISpecRegistry(),r=this._buildRenderContext(),n=this.config.renderer?.unknownRenderer??Ye,o=(s,a)=>Yt(s,a,t,n),i=this.config.renderer?.renderUISpec;return i?i(e,r,{registry:t,unknownRenderer:n,defaultRender:o}):o(e,r)}_buildProductsSpec(e){const t={},r=[];for(let i=0;i<e.length;i++){const s=e[i],a=`product-${i}`;r.push(a),t[a]={type:"ProductCard",props:{product:s,index:i,discountType:this.config.discountType}}}const n={layout:"grid"},o=this._clampGridColumns(this.config.gridColumns);return o!==void 0&&(n.columns=o),t.root={type:"ProductGrid",props:n,children:r},{root:"root",elements:t}}_buildGroupsSpec(e){return{root:"root",elements:{root:{type:"GroupTabs",props:{groups:e}}}}}};function xi(){return new Qt}var zi={images:["images","extras.images","imageUrl"],subtitle:["categoryNames","category_names","extras.categoryNames","extras.category_names","description"],promotions:["promotions","extras.promotions"],warranties:["warranties","extras.warranties"],productInfoUrl:["productInfoFormUrl","extras.productInfoFormUrl","documents.0.url","extras.documents.0.url"],discountReason:["discountReason","discount_reason","extras.discountReason","extras.discount_reason"],specialPrice:["isSpecialPrice","extras.isSpecialPrice"],customBadgeFacets:["customBadgeFacets","custom_badge_facets","extras.customBadgeFacets","extras.custom_badge_facets","facetHits","facet_hits","extras.facetHits","extras.facet_hits"],customBadgeText:["customBadgeText","custom_badge_text","customBadge","custom_badge","customLabel","custom_label","bottomLabel","bottom_label","cornerBadge","corner_badge","extras.customBadgeText","extras.custom_badge_text","extras.customBadge","extras.custom_badge","extras.customLabel","extras.custom_label","extras.bottomLabel","extras.bottom_label","extras.cornerBadge","extras.corner_badge"],customBadgeImageUrl:["customBadgeImageUrl","custom_badge_image_url","customLabelImageUrl","custom_label_image_url","bottomLabelImageUrl","bottom_label_image_url","cornerBadgeImageUrl","corner_badge_image_url","extras.customBadgeImageUrl","extras.custom_badge_image_url","extras.customLabelImageUrl","extras.custom_label_image_url","extras.bottomLabelImageUrl","extras.bottom_label_image_url","extras.cornerBadgeImageUrl","extras.corner_badge_image_url"]};function ke(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function G(e){if(typeof e!="string")return;const t=e.trim();return t.length>0?t:void 0}function er(e){if(Array.isArray(e))return e.map(r=>G(r)).filter(r=>!!r);const t=G(e);return t?[t]:[]}function tr(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"){const t=Number.parseFloat(e);if(Number.isFinite(t))return t}}function Ai(e){if(typeof e=="boolean")return e;if(typeof e=="number"&&Number.isFinite(e)){if(e===1)return!0;if(e===0)return!1}if(typeof e=="string"){const t=e.trim().toLowerCase();if(t==="true")return!0;if(t==="false")return!1;if(t==="1")return!0;if(t==="0")return!1}}function rr(...e){for(const t of e){const r=G(t);if(r)return r}}function nr(e){const t=ke(e);if(!t)return null;const r=G(t.sku),n=G(t.name),o=G(t.url);if(!r||!n||!o)return null;const i={sku:r,name:n,url:o};for(const[s,a]of Object.entries(t))a!==void 0&&(i[s]=a);return i}function Ii(e){const t=ke(e);if(!t)return null;const r=G(t.name);if(!r)return null;const n=[];if(Array.isArray(t.products))for(const s of t.products){const a=nr(s);a&&n.push(a)}const o={name:r,products:n},i=G(t.highlight);return i&&(o.highlight=i),o}function Se(e,t){const r=typeof t=="string"?t.split("."):[...t];let n=e;for(const o of r){if(n==null)return;if(Array.isArray(n)){const s=Number.parseInt(o,10);if(!Number.isInteger(s))return;n=n[s];continue}const i=ke(n);if(!i)return;n=i[o]}return n}function Pi(e,t){for(const r of t){const n=Se(e,r);if(n!=null)return n}}function Xe(e,t){for(const r of t){const n=er(Se(e,r));if(n.length>0)return n}return[]}function fe(e,t){for(const r of t){const n=Se(e,r),o=G(n);if(o)return o;const i=er(n);if(i.length>0)return i[0]}}function $i(e,t){for(const r of t){const n=ke(Se(e,r));if(n)return n}return null}function or(e,t){return{labels:{customBadgeAlt:e.labels?.customBadgeAlt??"Product badge",imageDot:e.labels?.imageDot??(r=>`Show product image ${r+1}`),previousPromotion:e.labels?.previousPromotion??"Previous promotion",nextPromotion:e.labels?.nextPromotion??"Next promotion"},ctaLabel:e.labels?.cta??t.i18n.ctaLabel,productInfoLabel:e.labels?.productInfo,reviewLabel:e.labels?.review??(r=>`${r} reviews`),specialPriceBadgeAlt:e.labels?.specialPriceBadgeAlt??"",fields:{...zi,...e.fields},media:e.media??{},warrantyPromotionPattern:e.warrantyPromotionPattern??/warranty/i,specialPricePattern:e.specialPricePattern??/special/i,pricing:e.pricing??t.pricing}}function Ni(e,t,r){return r.media.imageUrlTransform?.(e,t)??e}function Oi(e,t){const r=e.trim(),n=t.trim();if(!r||!n)return r;const o=r.toLocaleLowerCase().indexOf(n.toLocaleLowerCase());return o===-1?r:`${r.slice(0,o).trim()} ${r.slice(o+n.length).trim()}`.replace(/\s{2,}/g," ").replace(/(\s[-|/,:]){2,}/g,"$1").replace(/^\s*[-|/,:]\s*/,"").replace(/\s*[-|/,:]\s*$/,"").trim()||r}function Li(e,t){const r=fe(e,t.fields.customBadgeImageUrl);if(r)return{imageUrl:r,labelText:null};const n=fe(e,t.fields.customBadgeText);if(n)return{imageUrl:t.media.customBadgeImageUrl?.(e,n)??null,labelText:n};const o=$i(e,t.fields.customBadgeFacets);if(!o)return{imageUrl:null,labelText:null};const i=rr(o["Custom Badge Image"],o["Custom Label Image"],o["Bottom Label Image"],o["Corner Badge Image"],o.custom_badge_image,o.custom_label_image,o.bottom_label_image,o.corner_badge_image,o.customBadgeImage,o.customLabelImage,o.bottomLabelImage,o.cornerBadgeImage);if(i)return{imageUrl:i,labelText:null};const s=rr(o["Custom Badge"],o["Custom Label"],o["Bottom Label"],o["Corner Badge"],o.custom_badge,o.custom_label,o.bottom_label,o.corner_badge,o.customBadge,o.customLabel,o.bottomLabel,o.cornerBadge);return s?{imageUrl:t.media.customBadgeImageUrl?.(e,s)??null,labelText:s}:{imageUrl:null,labelText:null}}function V(e,t,r){const n=document.createElement(e);return n.className=t,n.textContent=r,n}function Ri(e,t,r){const n=document.createElement("div");n.className="gengage-simrel-default-card-image";let o=null;return r.length>0&&(o=document.createElement("img"),o.src=r[0],o.alt=t,o.loading="lazy",Gt(o),n.appendChild(o)),r.length>1&&o&&(n.addEventListener("mousemove",i=>{const s=n.getBoundingClientRect(),a=Math.min(Math.floor((i.clientX-s.left)/s.width*r.length),r.length-1);o?.dataset.hoverIdx!==String(a)&&(o.dataset.hoverIdx=String(a),o.src=r[a],e.querySelectorAll(".gengage-simrel-default-card-image-dot").forEach((c,u)=>c.classList.toggle("is-active",u===a)))}),n.addEventListener("mouseleave",()=>{o&&(delete o.dataset.hoverIdx,o.src=r[0],e.querySelectorAll(".gengage-simrel-default-card-image-dot").forEach((i,s)=>i.classList.toggle("is-active",s===0)))})),n}function Zi(e,t){if(!e.imageUrl&&!e.labelText)return null;const r=document.createElement("div");if(r.className="gengage-simrel-default-card-custom-badge",e.imageUrl&&_e(e.imageUrl)){const n=document.createElement("img");return n.src=e.imageUrl,n.className="gengage-simrel-default-card-custom-badge-icon",n.alt=t,e.labelText&&n.addEventListener("error",()=>{r.innerHTML="",r.appendChild(V("span","gengage-simrel-default-card-custom-badge-text",e.labelText))},{once:!0}),r.appendChild(n),r}return e.labelText&&r.appendChild(V("span","gengage-simrel-default-card-custom-badge-text",e.labelText)),r}function Di(e,t,r){if(e.length<=1||!t)return null;const n=document.createElement("div");return n.className="gengage-simrel-default-card-image-dots",e.forEach((o,i)=>{const s=document.createElement("button");s.className=`gengage-simrel-default-card-image-dot${i===0?" is-active":""}`,s.type="button",s.setAttribute("aria-label",r.labels.imageDot(i)),s.addEventListener("click",a=>{a.preventDefault(),a.stopPropagation(),t.dataset.hoverIdx=String(i),t.style.opacity="0",window.setTimeout(()=>{t.src=o,t.style.opacity="1"},50),n.querySelectorAll(".gengage-simrel-default-card-image-dot").forEach((c,u)=>c.classList.toggle("is-active",u===i))}),n.appendChild(s)}),n}function Ui(e,t,r,n){const o=e.reviewCount??0,i=e.rating??0,s=document.createElement("div");s.className="gengage-simrel-default-card-rating",o<=0&&!r.productInfoLabel&&s.classList.add("is-placeholder");const a=document.createElement("div");a.className="gengage-simrel-default-card-rating-left";const c=document.createElement("div");c.className="gengage-simrel-default-card-stars";const u=Math.max(0,Math.min(5,Math.round(i)));for(let d=1;d<=5;d+=1){const f=document.createElement("span");f.className=`gengage-simrel-default-card-star${d<=u?" is-filled":""}`,f.textContent="★",c.appendChild(f)}a.appendChild(c);const l=document.createElement("button");if(l.className="gengage-simrel-default-card-review-link",l.type="button",l.textContent=r.reviewLabel(o),l.addEventListener("click",d=>{d.preventDefault(),d.stopPropagation(),n(e)}),a.appendChild(l),s.appendChild(a),r.productInfoLabel){const d=document.createElement(t&&mt(t)?"a":"span");d.className="gengage-simrel-default-card-product-info-link",d.textContent=r.productInfoLabel,d instanceof HTMLAnchorElement&&(d.href=t,d.target="_blank",d.rel="noopener noreferrer",d.addEventListener("click",f=>f.stopPropagation())),s.appendChild(d)}return s}function ji(e){const t=document.createElement("div");t.className="gengage-simrel-default-card-warranty-row";const r=e.length>0?e:[""];for(const n of r){const o=document.createElement("div");o.className=`gengage-simrel-default-card-warranty-badge${n?"":" is-placeholder"}`,n||o.setAttribute("aria-hidden","true"),o.textContent=n,t.appendChild(o)}return t}function Mi(e,t){const r=document.createElement("div");r.className="gengage-simrel-default-card-feature-slot";const n=document.createElement("div");if(n.className="gengage-simrel-default-card-feature-swiper",e.length===0&&n.classList.add("is-placeholder"),n.dataset.current="0",e.length>0){if(t.media.promotionIconUrl&&mt(t.media.promotionIconUrl)){const s=document.createElement("img");s.src=t.media.promotionIconUrl,s.className="gengage-simrel-default-card-feature-icon",s.alt="",n.appendChild(s)}const o=document.createElement("div");o.className="gengage-simrel-default-card-feature-content";const i=V("span","gengage-simrel-default-card-feature-text",e[0]);if(o.appendChild(i),n.appendChild(o),e.length>1){const s=document.createElement("div");s.className="gengage-simrel-default-card-feature-arrows";const a=(l,d)=>{const f=d==="next"?"slide-out-left":"slide-out-right",m=d==="next"?"prepare-from-right":"prepare-from-left";i.classList.add(f),window.setTimeout(()=>{i.classList.remove(f),i.classList.add(m),i.textContent=e[l]??"",n.dataset.current=String(l),requestAnimationFrame(()=>requestAnimationFrame(()=>i.classList.remove(m)))},250)},c=document.createElement("button");c.className="gengage-simrel-default-card-feature-prev",c.type="button",c.textContent="‹",c.setAttribute("aria-label",t.labels.previousPromotion),c.addEventListener("click",l=>{l.preventDefault(),l.stopPropagation(),a((Number.parseInt(n.dataset.current??"0",10)-1+e.length)%e.length,"prev")});const u=document.createElement("button");u.className="gengage-simrel-default-card-feature-next",u.type="button",u.textContent="›",u.setAttribute("aria-label",t.labels.nextPromotion),u.addEventListener("click",l=>{l.preventDefault(),l.stopPropagation(),a((Number.parseInt(n.dataset.current??"0",10)+1)%e.length,"next")}),s.appendChild(c),s.appendChild(u),n.appendChild(s)}}return r.appendChild(n),r}function Fi(e,t,r,n,o){const i=tr(e.originalPrice),s=tr(e.price),a=s!==void 0&&i!==void 0&&s>0&&i>0&&s<i,c=document.createElement("div");c.className="gengage-simrel-default-card-price-action";const u=document.createElement("div");if(u.className="gengage-simrel-default-card-price",a){const l=o==="inline"?"gengage-simrel-default-card-price-old gengage-simrel-default-card-price-old--inline":"gengage-simrel-default-card-price-old";u.appendChild(V("span",l,de(String(i),r.pricing)));const d=document.createElement("div");if(d.className="gengage-simrel-default-card-price-current-row",d.appendChild(V("span","gengage-simrel-default-card-price-current",de(String(s),r.pricing))),t&&r.media.specialPriceBadgeUrl&&_e(r.media.specialPriceBadgeUrl)){const f=document.createElement("img");f.src=r.media.specialPriceBadgeUrl,f.className="gengage-simrel-default-card-special-price-badge",f.alt=r.specialPriceBadgeAlt,d.appendChild(f)}u.appendChild(d)}else{const l=i??s;u.appendChild(V("span","gengage-simrel-default-card-price-current",l!==void 0?de(String(l),r.pricing):""))}if(c.appendChild(u),r.ctaLabel){const l=document.createElement("button");l.className="gengage-simrel-default-card-cta",l.dataset.gengagePart="simrel-product-card-cta",l.type="button",l.dataset.sku=e.sku,l.textContent=r.ctaLabel,l.addEventListener("click",d=>{d.preventDefault(),d.stopPropagation(),n(e)}),c.appendChild(l)}return c}function Bi(e,t){return e==="strike-through"||e==="badge"||e==="inline"?e:t.discountType}function ir(e){const{product:t,config:r}=e,n=Xe(t,r.fields.images).map(S=>Ni(S,t,r)).filter(_e),o=Xe(t,r.fields.promotions),i=o.filter(S=>r.warrantyPromotionPattern.test(S)),s=o.filter(S=>!r.warrantyPromotionPattern.test(S)),a=fe(t,r.fields.subtitle)??"",c=fe(t,r.fields.discountReason)??"",u=Ai(Pi(t,r.fields.specialPrice))===!0||r.specialPricePattern.test(c),l=t.brand??"",d=Oi(l&&t.name.startsWith(`${l} `)?t.name.slice(l.length+1):t.name,a),f=document.createElement("article");f.className="gengage-simrel-default-card gengage-simrel-default-scope gengage-simrel-card gds-card gds-product-card gds-card-interactive",f.dataset.gengagePart="simrel-product-card",f.setAttribute("role","listitem"),f.setAttribute("tabindex","0"),f.setAttribute("aria-label",d),f.dataset.sku=t.sku,f.dataset.index=String(e.index);const m=Ri(f,d,n);f.appendChild(m);const h=m.querySelector("img"),p=document.createElement("div");p.className="gengage-simrel-default-card-meta-row";const y=Zi(Li(t,r),r.labels.customBadgeAlt);y&&p.appendChild(y);const v=Di(n,h,r);v&&p.appendChild(v),f.appendChild(p);const I=document.createElement("div");return I.className="gengage-simrel-default-card-info",I.dataset.gengagePart="simrel-product-card-body",I.appendChild(V("h3","gengage-simrel-default-card-title",d)),a&&I.appendChild(V("p","gengage-simrel-default-card-subtitle",a)),I.appendChild(Ui(t,fe(t,r.fields.productInfoUrl),r,e.context.onClick)),I.appendChild(ji([...Xe(t,r.fields.warranties),...i])),I.appendChild(Mi(s,r)),f.appendChild(I),f.appendChild(Fi(t,u,r,e.context.onClick,e.context.discountType)),f.addEventListener("click",S=>{(S.target instanceof HTMLElement?S.target:null)?.closest("button, a")||e.context.onClick(t)}),f.addEventListener("keydown",S=>{if(S.key!=="Enter"&&S.key!==" ")return;const b=S.target instanceof HTMLElement?S.target:null;b&&b!==f||(S.preventDefault(),e.context.onClick(t))}),f}function Gi(e,t){const r=nr(e.element.props?.product??e.element.props);if(!r)return null;const n=e.element.props?.index,o=typeof n=="number"&&Number.isFinite(n)?n:0,i=Bi(e.element.props?.discountType,e.context);return ir({product:r,index:o,context:i===e.context.discountType?e.context:{...e.context,...i!==void 0?{discountType:i}:{}},config:or(t,e.context)})}function qi(e){const t=document.createElement("div");t.className="gengage-simrel-grid gengage-simrel-default-grid gengage-simrel-default-scope",t.setAttribute("role","list");const r=e.element.props?.columns;let n;typeof r=="number"&&Number.isFinite(r)&&r>0?n=Math.floor(r):typeof e.context.gridColumns=="number"&&Number.isFinite(e.context.gridColumns)&&e.context.gridColumns>0&&(n=Math.floor(e.context.gridColumns)),n!==void 0&&t.style.setProperty("--gengage-simrel-columns",String(n));for(const o of e.element.children??[]){const i=e.renderElement(o);i&&t.appendChild(i)}if(t.children.length===0){const o=document.createElement("div");o.className="gengage-simrel-empty",o.textContent=e.context.i18n.emptyStateMessage,t.appendChild(o)}return t}function Ji(e,t){const r=e.element.props?.groups;if(!Array.isArray(r))return null;const n=r.map(Ii).filter(c=>!!c),o=e.element.props?.columns,i=or(t,e.context),s=(c,u)=>ir({product:c,index:u,context:e.context,config:i}),a=Vt({groups:n,onClick:e.context.onClick,onAddToCart:e.context.onAddToCart,renderCardElement:s,i18n:e.context.i18n,...e.context.discountType!==void 0?{discountType:e.context.discountType}:{},...e.context.onGroupingActivate!==void 0?{onGroupingActivate:e.context.onGroupingActivate}:{},...typeof o=="number"&&Number.isFinite(o)&&o>0?{columns:Math.floor(o)}:e.context.gridColumns!==void 0?{columns:e.context.gridColumns}:{}});return a.classList.add("gengage-simrel-default-groups","gengage-simrel-default-scope"),a}function Vi(e={}){return{registry:{ProductGrid:t=>qi(t),ProductCard:t=>Gi(t,e),GroupTabs:t=>Ji(t,e)}}}var sr;function g(e,t,r){function n(a,c){if(a._zod||Object.defineProperty(a,"_zod",{value:{def:c,constr:s,traits:new Set},enumerable:!1}),a._zod.traits.has(e))return;a._zod.traits.add(e),t(a,c);const u=s.prototype,l=Object.keys(u);for(let d=0;d<l.length;d++){const f=l[d];f in a||(a[f]=u[f].bind(a))}}const o=r?.Parent??Object;class i extends o{}Object.defineProperty(i,"name",{value:e});function s(a){var c;const u=r?.Parent?new i:this;n(u,a),(c=u._zod).deferred??(c.deferred=[]);for(const l of u._zod.deferred)l();return u}return Object.defineProperty(s,"init",{value:n}),Object.defineProperty(s,Symbol.hasInstance,{value:a=>r?.Parent&&a instanceof r.Parent?!0:a?._zod?.traits?.has(e)}),Object.defineProperty(s,"name",{value:e}),s}var ne=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},ar=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}};(sr=globalThis).__zod_globalConfig??(sr.__zod_globalConfig={});var Ee=globalThis.__zod_globalConfig;function Q(e){return e&&Object.assign(Ee,e),Ee}function cr(e){const t=Object.values(e).filter(r=>typeof r=="number");return Object.entries(e).filter(([r,n])=>t.indexOf(+r)===-1).map(([r,n])=>n)}function Qe(e,t){return typeof t=="bigint"?t.toString():t}function et(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}throw new Error("cached value already set")}}}function tt(e){return e==null}function rt(e){const t=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(t,r)}function Wi(e,t){const r=e/t,n=Math.round(r),o=Number.EPSILON*Math.max(Math.abs(r),1);return Math.abs(r-n)<o?0:r-n}var ur=Symbol("evaluating");function E(e,t,r){let n;Object.defineProperty(e,t,{get(){if(n!==ur)return n===void 0&&(n=ur,n=r()),n},set(o){Object.defineProperty(e,t,{value:o})},configurable:!0})}function ee(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function W(...e){const t={};for(const r of e)Object.assign(t,Object.getOwnPropertyDescriptors(r));return Object.defineProperties({},t)}function lr(e){return JSON.stringify(e)}function Hi(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var dr="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function Ce(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Ki=et(()=>{if(Ee.jitless||typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch{return!1}});function pe(e){if(Ce(e)===!1)return!1;const t=e.constructor;if(t===void 0||typeof t!="function")return!0;const r=t.prototype;return!(Ce(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function fr(e){return pe(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}var Yi=new Set(["string","number","symbol"]);function Te(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function H(e,t,r){const n=new e._zod.constr(t??e._zod.def);return(!t||r?.parent)&&(n._zod.parent=e),n}function _(e){const t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function Xi(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}var Qi={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function es(e,t){const r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");return H(e,W(e._zod.def,{get shape(){const o={};for(const i in t){if(!(i in r.shape))throw new Error(`Unrecognized key: "${i}"`);t[i]&&(o[i]=r.shape[i])}return ee(this,"shape",o),o},checks:[]}))}function ts(e,t){const r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");return H(e,W(e._zod.def,{get shape(){const o={...e._zod.def.shape};for(const i in t){if(!(i in r.shape))throw new Error(`Unrecognized key: "${i}"`);t[i]&&delete o[i]}return ee(this,"shape",o),o},checks:[]}))}function rs(e,t){if(!pe(t))throw new Error("Invalid input to extend: expected a plain object");const r=e._zod.def.checks;if(r&&r.length>0){const n=e._zod.def.shape;for(const o in t)if(Object.getOwnPropertyDescriptor(n,o)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return H(e,W(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t};return ee(this,"shape",n),n}}))}function ns(e,t){if(!pe(t))throw new Error("Invalid input to safeExtend: expected a plain object");return H(e,W(e._zod.def,{get shape(){const r={...e._zod.def.shape,...t};return ee(this,"shape",r),r}}))}function os(e,t){if(e._zod.def.checks?.length)throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");return H(e,W(e._zod.def,{get shape(){const r={...e._zod.def.shape,...t._zod.def.shape};return ee(this,"shape",r),r},get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]}))}function is(e,t,r){const n=t._zod.def.checks;if(n&&n.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");return H(t,W(t._zod.def,{get shape(){const o=t._zod.def.shape,i={...o};if(r)for(const s in r){if(!(s in o))throw new Error(`Unrecognized key: "${s}"`);r[s]&&(i[s]=e?new e({type:"optional",innerType:o[s]}):o[s])}else for(const s in o)i[s]=e?new e({type:"optional",innerType:o[s]}):o[s];return ee(this,"shape",i),i},checks:[]}))}function ss(e,t,r){return H(t,W(t._zod.def,{get shape(){const n=t._zod.def.shape,o={...n};if(r)for(const i in r){if(!(i in o))throw new Error(`Unrecognized key: "${i}"`);r[i]&&(o[i]=new e({type:"nonoptional",innerType:n[i]}))}else for(const i in n)o[i]=new e({type:"nonoptional",innerType:n[i]});return ee(this,"shape",o),o}}))}function oe(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(e.issues[r]?.continue!==!0)return!0;return!1}function as(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(e.issues[r]?.continue===!1)return!0;return!1}function pr(e,t){return t.map(r=>{var n;return(n=r).path??(n.path=[]),r.path.unshift(e),r})}function xe(e){return typeof e=="string"?e:e?.message}function te(e,t,r){const n=e.message?e.message:xe(e.inst?._zod.def?.error?.(e))??xe(t?.error?.(e))??xe(r.customError?.(e))??xe(r.localeError?.(e))??"Invalid input",{inst:o,continue:i,input:s,...a}=e;return a.path??(a.path=[]),a.message=n,t?.reportInput&&(a.input=s),a}function nt(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function ge(...e){const[t,r,n]=e;return typeof t=="string"?{message:t,code:"custom",input:r,inst:n}:{...t}}var gr=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,Qe,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},mr=g("$ZodError",gr),hr=g("$ZodError",gr,{Parent:Error});function cs(e,t=r=>r.message){const r={},n=[];for(const o of e.issues)o.path.length>0?(r[o.path[0]]=r[o.path[0]]||[],r[o.path[0]].push(t(o))):n.push(t(o));return{formErrors:n,fieldErrors:r}}function us(e,t=r=>r.message){const r={_errors:[]},n=(o,i=[])=>{for(const s of o.issues)if(s.code==="invalid_union"&&s.errors.length)s.errors.map(a=>n({issues:a},[...i,...s.path]));else if(s.code==="invalid_key")n({issues:s.issues},[...i,...s.path]);else if(s.code==="invalid_element")n({issues:s.issues},[...i,...s.path]);else{const a=[...i,...s.path];if(a.length===0)r._errors.push(t(s));else{let c=r,u=0;for(;u<a.length;){const l=a[u];u!==a.length-1?c[l]=c[l]||{_errors:[]}:(c[l]=c[l]||{_errors:[]},c[l]._errors.push(t(s))),c=c[l],u++}}}};return n(e),r}var ot=e=>(t,r,n,o)=>{const i=n?{...n,async:!1}:{async:!1},s=t._zod.run({value:r,issues:[]},i);if(s instanceof Promise)throw new ne;if(s.issues.length){const a=new(o?.Err??e)(s.issues.map(c=>te(c,i,Q())));throw dr(a,o?.callee),a}return s.value},it=e=>async(t,r,n,o)=>{const i=n?{...n,async:!0}:{async:!0};let s=t._zod.run({value:r,issues:[]},i);if(s instanceof Promise&&(s=await s),s.issues.length){const a=new(o?.Err??e)(s.issues.map(c=>te(c,i,Q())));throw dr(a,o?.callee),a}return s.value},ze=e=>(t,r,n)=>{const o=n?{...n,async:!1}:{async:!1},i=t._zod.run({value:r,issues:[]},o);if(i instanceof Promise)throw new ne;return i.issues.length?{success:!1,error:new(e??mr)(i.issues.map(s=>te(s,o,Q())))}:{success:!0,data:i.value}},ls=ze(hr),Ae=e=>async(t,r,n)=>{const o=n?{...n,async:!0}:{async:!0};let i=t._zod.run({value:r,issues:[]},o);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new e(i.issues.map(s=>te(s,o,Q())))}:{success:!0,data:i.value}},ds=Ae(hr),fs=e=>(t,r,n)=>{const o=n?{...n,direction:"backward"}:{direction:"backward"};return ot(e)(t,r,o)},ps=e=>(t,r,n)=>ot(e)(t,r,n),gs=e=>async(t,r,n)=>{const o=n?{...n,direction:"backward"}:{direction:"backward"};return it(e)(t,r,o)},ms=e=>async(t,r,n)=>it(e)(t,r,n),hs=e=>(t,r,n)=>{const o=n?{...n,direction:"backward"}:{direction:"backward"};return ze(e)(t,r,o)},ys=e=>(t,r,n)=>ze(e)(t,r,n),_s=e=>async(t,r,n)=>{const o=n?{...n,direction:"backward"}:{direction:"backward"};return Ae(e)(t,r,o)},vs=e=>async(t,r,n)=>Ae(e)(t,r,n),bs=/^[cC][0-9a-z]{6,}$/,ws=/^[0-9a-z]+$/,ks=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Ss=/^[0-9a-vA-V]{20}$/,Es=/^[A-Za-z0-9]{27}$/,Cs=/^[a-zA-Z0-9_-]{21}$/,Ts=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,xs=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,yr=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,zs=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,As="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function Is(){return new RegExp(As,"u")}var Ps=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,$s=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,Ns=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Os=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Ls=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,_r=/^[A-Za-z0-9_-]*$/,Rs=/^https?$/,Zs=/^\+[1-9]\d{6,14}$/,vr="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",Ds=new RegExp(`^${vr}$`);function br(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function Us(e){return new RegExp(`^${br(e)}$`)}function js(e){const t=br({precision:e.precision}),r=["Z"];e.local&&r.push(""),e.offset&&r.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const n=`${t}(?:${r.join("|")})`;return new RegExp(`^${vr}T(?:${n})$`)}var Ms=e=>{const t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},Fs=/^-?\d+$/,Bs=/^-?\d+(?:\.\d+)?$/,Gs=/^[^A-Z]*$/,qs=/^[^a-z]*$/,O=g("$ZodCheck",(e,t)=>{var r;e._zod??(e._zod={}),e._zod.def=t,(r=e._zod).onattach??(r.onattach=[])}),wr={number:"number",bigint:"bigint",object:"date"},kr=g("$ZodCheckLessThan",(e,t)=>{O.init(e,t);const r=wr[typeof t.value];e._zod.onattach.push(n=>{const o=n._zod.bag,i=(t.inclusive?o.maximum:o.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<i&&(t.inclusive?o.maximum=t.value:o.exclusiveMaximum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value<=t.value:n.value<t.value)||n.issues.push({origin:r,code:"too_big",maximum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Sr=g("$ZodCheckGreaterThan",(e,t)=>{O.init(e,t);const r=wr[typeof t.value];e._zod.onattach.push(n=>{const o=n._zod.bag,i=(t.inclusive?o.minimum:o.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>i&&(t.inclusive?o.minimum=t.value:o.exclusiveMinimum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value>=t.value:n.value>t.value)||n.issues.push({origin:r,code:"too_small",minimum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Js=g("$ZodCheckMultipleOf",(e,t)=>{O.init(e,t),e._zod.onattach.push(r=>{var n;(n=r._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=r=>{if(typeof r.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof r.value=="bigint"?r.value%t.value===BigInt(0):Wi(r.value,t.value)===0)||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:t.value,input:r.value,inst:e,continue:!t.abort})}}),Vs=g("$ZodCheckNumberFormat",(e,t)=>{O.init(e,t),t.format=t.format||"float64";const r=t.format?.includes("int"),n=r?"int":"number",[o,i]=Qi[t.format];e._zod.onattach.push(s=>{const a=s._zod.bag;a.format=t.format,a.minimum=o,a.maximum=i,r&&(a.pattern=Fs)}),e._zod.check=s=>{const a=s.value;if(r){if(!Number.isInteger(a)){s.issues.push({expected:n,format:t.format,code:"invalid_type",continue:!1,input:a,inst:e});return}if(!Number.isSafeInteger(a)){a>0?s.issues.push({input:a,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort}):s.issues.push({input:a,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort});return}}a<o&&s.issues.push({origin:"number",input:a,code:"too_small",minimum:o,inclusive:!0,inst:e,continue:!t.abort}),a>i&&s.issues.push({origin:"number",input:a,code:"too_big",maximum:i,inclusive:!0,inst:e,continue:!t.abort})}}),Ws=g("$ZodCheckMaxLength",(e,t)=>{var r;O.init(e,t),(r=e._zod.def).when??(r.when=n=>{const o=n.value;return!tt(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{const o=n._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<o&&(n._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{const o=n.value;if(o.length<=t.maximum)return;const i=nt(o);n.issues.push({origin:i,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Hs=g("$ZodCheckMinLength",(e,t)=>{var r;O.init(e,t),(r=e._zod.def).when??(r.when=n=>{const o=n.value;return!tt(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{const o=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>o&&(n._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{const o=n.value;if(o.length>=t.minimum)return;const i=nt(o);n.issues.push({origin:i,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Ks=g("$ZodCheckLengthEquals",(e,t)=>{var r;O.init(e,t),(r=e._zod.def).when??(r.when=n=>{const o=n.value;return!tt(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{const o=n._zod.bag;o.minimum=t.length,o.maximum=t.length,o.length=t.length}),e._zod.check=n=>{const o=n.value,i=o.length;if(i===t.length)return;const s=nt(o),a=i>t.length;n.issues.push({origin:s,...a?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),Ie=g("$ZodCheckStringFormat",(e,t)=>{var r,n;O.init(e,t),e._zod.onattach.push(o=>{const i=o._zod.bag;i.format=t.format,t.pattern&&(i.patterns??(i.patterns=new Set),i.patterns.add(t.pattern))}),t.pattern?(r=e._zod).check??(r.check=o=>{t.pattern.lastIndex=0,!t.pattern.test(o.value)&&o.issues.push({origin:"string",code:"invalid_format",format:t.format,input:o.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(n=e._zod).check??(n.check=()=>{})}),Ys=g("$ZodCheckRegex",(e,t)=>{Ie.init(e,t),e._zod.check=r=>{t.pattern.lastIndex=0,!t.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),Xs=g("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Gs),Ie.init(e,t)}),Qs=g("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=qs),Ie.init(e,t)}),ea=g("$ZodCheckIncludes",(e,t)=>{O.init(e,t);const r=Te(t.includes),n=new RegExp(typeof t.position=="number"?`^.{${t.position}}${r}`:r);t.pattern=n,e._zod.onattach.push(o=>{const i=o._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=o=>{o.value.includes(t.includes,t.position)||o.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:o.value,inst:e,continue:!t.abort})}}),ta=g("$ZodCheckStartsWith",(e,t)=>{O.init(e,t);const r=new RegExp(`^${Te(t.prefix)}.*`);t.pattern??(t.pattern=r),e._zod.onattach.push(n=>{const o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),ra=g("$ZodCheckEndsWith",(e,t)=>{O.init(e,t);const r=new RegExp(`.*${Te(t.suffix)}$`);t.pattern??(t.pattern=r),e._zod.onattach.push(n=>{const o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),na=g("$ZodCheckOverwrite",(e,t)=>{O.init(e,t),e._zod.check=r=>{r.value=t.tx(r.value)}}),oa=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if(typeof e=="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}const t=e.split(`
47
+ `,document.head.appendChild(e)}var se=null;function Un(){if(se!==null)return se;try{se=localStorage.getItem("gengage:debug")==="1"}catch{se=!1}return se}function Me(e,t,r){if(!Un())return;const n=[`[gengage:${e}]`,t];r!==void 0&&n.push(r),console.debug(...n)}var jn=("0.6.38".trim(),"0.6.38".trim()),Mn=("iife-build".trim(),"iife-build".trim());function Fn(){if(typeof window>"u")return;const e=window;e.__gengageSdkRuntimeInfoLogged||(e.__gengageSdkRuntimeInfoLogged=!0,console.info(`[gengage] @gengage/assistant-fe v${jn} (${Mn})`))}var Bn=class{constructor(){this.isVisible=!1,this.isInitialised=!1,this._handlers=new Map,this._cleanups=[],this._ownsRoot=!1,this._destroying=!1}async init(e){if(this.isInitialised){console.warn("[gengage] Widget already initialised. Call update() instead.");return}const t=Cn(e.theme);Fn(),this.config={...e,theme:t,session:En(e.session)},this.root=this._resolveMount(e.mountTarget),this._applyTheme(t),Nn();const r=_t("gengage:context:update",n=>this.update(n));this._cleanups.push(r),Me("lifecycle",`${this.constructor.name}.init`,{accountId:e.accountId,sku:e.pageContext?.sku});try{await this.onInit(this.config)}catch(n){throw this.destroy(),n}this._destroying||(this.isInitialised=!0,Me("lifecycle",`${this.constructor.name} ready`),this.emit("ready"))}update(e){this.isInitialised&&(this.config.pageContext?this.config={...this.config,pageContext:{...this.config.pageContext,...e}}:e.pageType!==void 0&&(this.config={...this.config,pageContext:e}),this.onUpdate(e),this.emit("context-update",this.config.pageContext))}show(){this.isVisible||(this.isVisible=!0,this.root.style.display="",this.onShow(),this.emit("show"))}hide(){this.isVisible&&(this.isVisible=!1,this.root.style.display="none",this.onHide(),this.emit("hide"))}destroy(){this._destroying||(this._destroying=!0,this.emit("destroy"),this._cleanups.forEach(e=>e()),this._cleanups.length=0,this._handlers.clear(),this.onDestroy(),this._cleanupRoot(),this.isInitialised=!1)}_cleanupRoot(){this._ownsRoot?this.root.remove():this.root.innerHTML=""}on(e,t){return this._handlers.has(e)||this._handlers.set(e,new Set),this._handlers.get(e).add(t),()=>this._handlers.get(e)?.delete(t)}emit(e,...t){this._handlers.get(e)?.forEach(r=>r(...t))}addCleanup(e){this._cleanups.push(e)}_resolveMount(e){if(e instanceof HTMLElement)return e;if(typeof e=="string"){const r=document.querySelector(e);if(!r)throw new Error(`[gengage] Mount target not found: "${e}"`);return r}const t=document.createElement("div");return t.dataset.gengageWidget=this.constructor.name.toLowerCase(),document.body.insertBefore(t,document.body.firstChild),this._ownsRoot=!0,t}_applyTheme(e){if(e){for(const[t,r]of Object.entries(e))if(r!==void 0){const n=t.startsWith("--")?t:`--gengage-${Gn(t)}`;this.root.style.setProperty(n,r)}}}};function Gn(e){return e.replace(/([A-Z])/g,"-$1").toLowerCase()}function qn(e){const t=e?.trim();return t||"tr"}var Jn=8e3,Vn=5e3,Wn="https://www.google.com/favicon.ico",F=new Map,Et=!1,re=null,ce=null,X=!1;function Hn(e){return typeof e=="string"&&e.toLowerCase().startsWith("tr")}function Ct(e){return Hn(e)?"İnternet bağlantısında sorun var gibi görünüyor. İstek sürerken yeniden deneyeceğiz.":"Your internet connection looks unstable. We'll keep retrying while this request is active."}function Tt(){let e;for(const t of F.values())e=t;return e}function Fe(){re&&(clearTimeout(re),re=null)}function Kn(){ce&&(clearInterval(ce),ce=null)}async function xt(){try{if(typeof navigator<"u"&&navigator.onLine===!1)return!1;if(typeof window<"u"){const r=window.location.hostname;if(r==="localhost"||r==="127.0.0.1")return navigator.onLine}const e=new AbortController,t=setTimeout(()=>e.abort(),3e3);try{return await fetch(Wn,{method:"HEAD",mode:"no-cors",cache:"no-cache",signal:e.signal}),!0}catch{return navigator.onLine}finally{clearTimeout(t)}}catch{return typeof navigator>"u"?!0:navigator.onLine}}function be(){X=!1,Kn(),St()}function we(){re||X||F.size===0||(re=setTimeout(async()=>{re=null,!(X||F.size===0)&&!await xt()&&F.size>0&&(X=!0,je({source:"sdk",message:Ct(Tt()),sticky:!0}),ce||(ce=setInterval(async()=>{if(F.size===0){be();return}await xt()&&(be(),we())},Vn)))},Jn))}function Yn(){Et||typeof window>"u"||(Et=!0,window.addEventListener("online",()=>{be(),we()}),window.addEventListener("offline",()=>{F.size===0||X||(X=!0,Fe(),je({source:"sdk",message:Ct(Tt()),sticky:!0}))}))}function Xn(e){Yn();const t=Symbol(e.source);F.set(t,e.locale),we();let r=!1;return()=>{if(!r){if(r=!0,F.delete(t),F.size===0){Fe(),be();return}X||(Fe(),we())}}}var Qn={process_action:"/process_action",launcher_action:"/launcher_action",similar_products:"/similar_products",product_groupings:"/product_groupings"};function eo(e){if(e===void 0)throw new Error("[gengage] middlewareUrl is required. Pass your Gengage backend URL in widget config.");const t=e.trim();return t===""?"":t.replace(/\/+$/,"")}function At(e,t){return`${eo(t?.middlewareUrl)}/chat${Qn[e]}`}function zt(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}function to(e){const t=[];let r=0,n=!1,o=!1,i=0;for(let a=0;a<e.length;a++){const s=e[a];if(o){o=!1;continue}if(s==="\\"&&n){o=!0;continue}if(s==='"'){n=!n;continue}n||(s==="{"&&r++,s==="}"&&(r--,r===0&&(t.push(e.slice(i,a+1)),i=a+1)))}return t.length>0?t:[e]}function It(e,t){const r=e.trim();if(!r||r.startsWith(":"))return!1;const n=r.startsWith("data: ")?r.slice(6):r;if(n==="[DONE]")return t.onDone?.(),!0;try{const o=JSON.parse(n);return zt(o)?(Me("stream",`event: ${o.type}`,o),t.onEvent(o),o.type==="done"?(t.onDone?.(),!0):!1):!1}catch{const o=to(n);if(o.length>1){for(const i of o)try{const a=JSON.parse(i);if(!zt(a))continue;if(t.onEvent(a),a.type==="done")return t.onDone?.(),!0}catch{}return!1}return!1}}async function Pt(e,t){if(!e.ok){t.onError?.(new Error(`HTTP ${e.status}: ${e.statusText}`));return}if(!e.body){t.onError?.(new Error("Response body is null — streaming not supported"));return}const r=e.body.getReader(),n=new TextDecoder("utf-8");let o="";const i=t.idleTimeoutMs??6e4,a=Symbol("idle-timeout");let s=!1;try{for(;;){const c=r.read();let u;const l=await(i>0?Promise.race([c.then(h=>(clearTimeout(u),h)),new Promise(h=>{u=setTimeout(()=>h(a),i)})]):c);if(l===a){s=!0,await r.cancel();break}const{done:d,value:f}=l;if(d)break;o+=n.decode(f,{stream:!0});const m=o.split(`
48
+ `);o=m.pop()??"";for(const h of m)if(It(h,t))return}if(o.trim()&&It(o,t))return}catch(c){if(c instanceof DOMException&&c.name==="AbortError")return;t.onError?.(c instanceof Error?c:new Error(String(c)))}finally{s||r.releaseLock()}t.onDone?.()}var ro=7200*1e3,$t=200,no=5*1024*1024,oo="gengage_request_response_cache",io=1,U="responses",ao=new Set(["addToCart","like"]),j=new Map,Nt=null;async function Ot(e,t={},r={}){const n=so(e,t);if(!n)return fetch(e,t);const o=Date.now(),i=await fo(n,o);if(i)return mo(i);const a=await fetch(e,t);return a.ok&&po(n,a.clone(),o,{ttlMs:r.ttlMs??ro,maxEntries:r.maxEntries??$t,maxBodyBytes:r.maxBodyBytes??no}),a}function so(e,t={}){if(typeof Request<"u"&&e instanceof Request)return null;const r=String(t.method||"GET").toUpperCase();if(r!=="POST"||typeof t.body!="string")return null;const n=co(t.body);if(uo(n))return null;const o=lo(n);if(o){const i=ue(n?.action);return`rr:${Dt(Zt({url:String(e),method:r,headers:Lt(t.headers),type:n?.type??i?.type??"",account_id:n?.account_id??n?.accountId??"",locale:n?.locale??"",outputLanguage:ue(n?.meta)?.outputLanguage??"",cache_key:o}))}`}return`rr:${Dt(Zt({url:String(e),method:r,headers:Lt(t.headers),body:t.body}))}`}function co(e){try{const t=JSON.parse(e);return!t||typeof t!="object"||Array.isArray(t)?null:t}catch{return null}}function uo(e){const t=e?.type;return typeof t=="string"&&ao.has(t)}function lo(e){const t=(ue(e?.payload)??ue(ue(e?.action)?.payload))?.cache_key;return typeof t=="string"&&t.trim().length>0?t.trim():null}async function fo(e,t){const r=j.get(e);if(r)if(r.expiresAt<=t)j.delete(e);else return r.lastAccessedAt=t,j.delete(e),j.set(e,r),Be(r),r;const n=await yo(e);return n?n.expiresAt<=t?(j.delete(e),_o(e),null):(n.lastAccessedAt=t,j.set(e,n),Be(n),Rt($t),n):null}async function po(e,t,r,n){try{const o=await t.text();if(bo(o)>n.maxBodyBytes||go(o))return;const i={key:e,status:t.status,statusText:t.statusText,headers:ho(t.headers),body:o,createdAt:r,expiresAt:r+n.ttlMs,lastAccessedAt:r};j.set(e,i),Rt(n.maxEntries),await Be(i),await vo(n.maxEntries,r)}catch{}}function go(e){return/"_error"\s*:/u.test(e)||/"type"\s*:\s*"error"/u.test(e)}function mo(e){return new Response(e.body,{status:e.status,statusText:e.statusText,headers:new Headers(e.headers)})}function Lt(e){const t=new Headers(e),r=[];return t.forEach((n,o)=>{const i=o.toLowerCase();i!=="authorization"&&i!=="cookie"&&r.push([i,n])}),r.sort(([n],[o])=>n.localeCompare(o))}function ho(e){const t=[];return e.forEach((r,n)=>{const o=n.toLowerCase();o!=="set-cookie"&&t.push([o,r])}),t.sort(([r],[n])=>r.localeCompare(n))}function Rt(e){for(;j.size>e;){const t=[...j.values()].sort((r,n)=>r.lastAccessedAt-n.lastAccessedAt)[0];if(!t)break;j.delete(t.key)}}async function ke(){return typeof indexedDB>"u"?null:(Nt??=new Promise(e=>{const t=indexedDB.open(oo,io);t.onupgradeneeded=()=>{const r=t.result;r.objectStoreNames.contains(U)||r.createObjectStore(U,{keyPath:"key"}).createIndex("lastAccessedAt","lastAccessedAt",{unique:!1})},t.onsuccess=()=>e(t.result),t.onerror=()=>e(null),t.onblocked=()=>e(null)}),Nt)}async function yo(e){const t=await ke();return t?new Promise(r=>{const n=t.transaction(U,"readonly"),o=n.objectStore(U).get(e);o.onsuccess=()=>r(o.result??null),o.onerror=()=>r(null),n.onerror=()=>r(null)}):null}async function Be(e){const t=await ke();t&&await new Promise(r=>{const n=t.transaction(U,"readwrite");n.objectStore(U).put(e),n.oncomplete=()=>r(),n.onerror=()=>r(),n.onabort=()=>r()})}async function _o(e){const t=await ke();t&&await new Promise(r=>{const n=t.transaction(U,"readwrite");n.objectStore(U).delete(e),n.oncomplete=()=>r(),n.onerror=()=>r(),n.onabort=()=>r()})}async function vo(e,t){const r=await ke();r&&await new Promise(n=>{const o=r.transaction(U,"readwrite"),i=o.objectStore(U),a=[],s=i.openCursor();s.onsuccess=()=>{const c=s.result;if(!c){const u=a.filter(d=>d.expiresAt<=t),l=a.filter(d=>d.expiresAt>t).sort((d,f)=>d.lastAccessedAt-f.lastAccessedAt).slice(0,Math.max(0,a.length-u.length-e));for(const d of[...u,...l])i.delete(d.key);return}a.push(c.value),c.continue()},s.onerror=()=>n(),o.oncomplete=()=>n(),o.onerror=()=>n(),o.onabort=()=>n()})}function Zt(e){return JSON.stringify(Ge(e))}function ue(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}function Ge(e){return Array.isArray(e)?e.map(Ge):!e||typeof e!="object"?e:Object.fromEntries(Object.entries(e).sort(([t],[r])=>t.localeCompare(r)).map(([t,r])=>[t,Ge(r)]))}function Dt(e){let t=14695981039346656037n;const r=1099511628211n;for(let n=0;n<e.length;n+=1)t^=BigInt(e.charCodeAt(n)),t=BigInt.asUintN(64,t*r);return t.toString(16).padStart(16,"0")}function bo(e){return typeof TextEncoder<"u"?new TextEncoder().encode(e).byteLength:e.length}var Ut=3,wo=(e,t)=>{const r=e.replace(/\s+/g," ").trim().replace(/^[,.;:!?•-]+|[,.;:!?•-]+$/g,"");if(!r)return"";const n=t?.stripLeadingStopWords?r.replace(/^(?:daha|için)\s+/i,"").trim():r;return n?n.split(/\s+/).slice(0,3).join(" ").trim():""},qe=(e,t)=>e?e.split(/[•,;:/()]|(?:\sve\s)|(?:\sand\s)|(?:\sile\s)|(?:\sfor\s)|(?:\swith\s)/i).map(r=>wo(r,t)).filter(Boolean):[];function ko(e){const t=(e.display_keywords??[]).flatMap(o=>qe(o,{stripLeadingStopWords:!0})),r=t.filter((o,i)=>t.indexOf(o)===i);if(r.length>0)return r.slice(0,Ut);const n=[...qe(e.chosen_attribute,{stripLeadingStopWords:!0}),...qe(e.short_name)];return n.filter((o,i)=>n.indexOf(o)===i).slice(0,Ut)}function So(e){return ko(e).join(" • ")}function Eo(e){return e==="beauty_consulting"||e==="account_expert"}function Je(...e){for(const t of e){if(typeof t!="string")continue;const r=t.trim();if(r.length>0)return r}}function Ve(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.trim().length>0).map(t=>t.trim()):[]}function jt(e){const t={...e},r=Je(t.sku),n=Ve(t.group_skus);if(r?t.sku=r:delete t.sku,n.length>0?t.group_skus=n:delete t.group_skus,r||n.length>0)delete t.image_url;else{const o=Je(t.image_url);o?t.image_url=o:delete t.image_url}return t}function Mt(e){if(typeof e.type!="string")return null;if(Co(e))return e;const t=e;switch(t.type){case"outputText":return To(t);case"suggestedActions":return xo(t);case"productList":return Ao(t);case"productDetails":return zo(t);case"productDetailsSimilars":return Io(t);case"comparisonTable":return Po(t);case"context":return Lo(t);case"chatStreamEnd":return Ro();case"loading":return Zo(t);case"panelLoading":return Do(t);case"similarLoading":return Uo(t);case"redirect":return jo(t);case"error":return Mo(t);case"dummy":return Fo(t);case"launcherAction":return Bo(t);case"text":return We(t);case"productItem":return Go(t);case"text_image":return Ft(t);case"quick_qna":return Bt(t);case"reviewHighlights":return qo(t);case"aiProductSuggestions":return Wo(t);case"aiProductGroupings":return Ho(t);case"aiSuggestedSearches":return Yo(t);case"prosAndCons":return Jo(t);case"getGroundingReview":return Xo(t);case"voice":return ei(t);case"visitorDataResponse":return Vo(t);case"productListPreview":return Qo();case"groupList":return ti(t);case"formGetInfo":case"formTestDrive":case"formServiceRequest":case"launchFormPage":return ri(t);case"launcherContent":return oi(t);case"handoff":return ni(t);case"uiSpec":return gi(t);default:return null}}function Co(e){const t=e.type;if(typeof t!="string")return!1;switch(t){case"metadata":return typeof e.sessionId=="string"&&typeof e.model=="string";case"text_chunk":return typeof e.content=="string";case"ui_spec":{const r=e.widget;if(r!=="chat"&&r!=="qna"&&r!=="simrel")return!1;const n=$(e.spec);return n?typeof n.root=="string"&&$(n.elements)!==null:!1}case"action":{const r=$(e.action);return r!==null&&typeof r.kind=="string"}case"error":return typeof e.code=="string"&&typeof e.message=="string";case"done":return!0;default:return!1}}function To(e){const t=k(e.payload.text,e.payload.plain_text)??"",r=k(e.payload.plain_text,e.payload.text)??t;if(e.payload.is_error)return{type:"error",code:"BACKEND_ERROR",message:r||"Backend returned an error"};const n={type:"text_chunk",content:t,final:!0},o=e.payload.product_mentions;Array.isArray(o)&&o.length>0&&(n.productMentions=o.filter(c=>typeof c=="object"&&c!==null&&typeof c.sku=="string"&&typeof c.short_name=="string"));const i=e.payload.sku_to_product_item;i&&typeof i=="object"&&!Array.isArray(i)&&(n.skuToProductItem=i);const a=e.payload.conversation_mode;typeof a=="string"&&a&&(n.conversationMode=a);const s=e.payload.render_hint;return typeof s=="string"&&s&&(n.renderHint=s),e.payload.kvkk===!0&&(n.kvkk=!0),n}function xo(e){return Gt((e.payload.actions??[]).map(t=>{const r=k(t.title)??"",n=R(t.requestDetails,r),o=n?{label:r,action:n}:null;return o?(typeof t.icon=="string"&&(o.icon=t.icon),typeof t.image=="string"&&(o.image=t.image),o):null}).filter(de),"chat")}function Ao(e){const t=Array.isArray(e.payload.grouped_assignment)?e.payload.grouped_assignment:[],r=(Array.isArray(e.payload.style_variations)?e.payload.style_variations:[]).map(s=>{const c=k(s.style_label);if(!c)return null;const u=k(s.style_mood),l=k(s.image_url??void 0),d=(Array.isArray(s.product_list)?s.product_list:[]).map(m=>{const h=$(m);return h?Ye($(h.product_detail)??$(h.product)??h):null}).filter(de),f=Array.isArray(s.recommendation_groups)?s.recommendation_groups.map(m=>({label:k(m.label)??"",reason:k(m.reason)??"",skus:Array.isArray(m.skus)?m.skus.filter(h=>typeof h=="string"&&h.trim().length>0):[]})):[];return{style_label:c,style_mood:u??"",...l?{image_url:l}:{},...typeof s.status=="string"?{status:s.status}:{},product_list:d,recommendation_groups:f}}).filter(de),n=e.payload.product_list??[],o=Eo(e.payload.source)&&r.length>0?r[0].product_list:null,i=o?ai(o,"chat"):t.length>0?ii(t,n,"chat")??Ke(n,"chat"):Ke(n,"chat");i.panelHint="panel";const a=i.spec.elements[i.spec.root];if(a){const s={};typeof e.payload.offset=="number"&&(s.offset=e.payload.offset),typeof e.payload.end_of_list=="boolean"&&(s.endOfList=e.payload.end_of_list),typeof e.payload.title=="string"&&(s.panelTitle=e.payload.title),typeof e.payload.source=="string"&&(s.source=e.payload.source),r.length>0&&(s.styleVariations=r),e.payload.replace_panel===!0&&(s.replacePanel=!0),(e.payload.ranking_state==="pending"||e.payload.ranking_state==="final")&&(s.rankingState=e.payload.ranking_state);const c=e.payload.sequence_id??e.payload.search_id;typeof c=="string"&&c.length>0&&(s.sequenceId=c),Object.keys(s).length>0&&(a.props={...a.props,...s})}return i}function zo(e){const t=e.payload.productDetails;if(!t)return ci("chat");const r=B(t);return{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"ProductDetailsPanel",props:{product:{...t,...r}}}}},panelHint:"panel"}}function Io(e){const t=Ke(e.payload.similarProducts??[],"chat"),r=t.spec.elements[t.spec.root];return r&&(r.props={...r.props,similarsAppend:!0}),{...t,panelHint:"panel"}}function Po(e){const t=e.payload.multiple_product_details??[],r=e.payload,n={key_differences:r.key_differences,recommended_choice:r.recommended_choice,recommended_choice_sku:r.recommended_choice_sku,special_considerations:r.special_considerations,criteria_view:r.criteria_view,criteria_view_short:r.criteria_view_short,compared_field_names:r.compared_field_names,winner_product:r.winner_product,winner_hits:r.winner_hits,...e.payload.product_comparison_framework??{}},o=e.payload.table,i=e.payload.features_list,a=[];for(const y of t){const v=B(y);a.push(v)}const s=$o(o,a,n,i);let c;n?.recommended_choice_sku?c=n.recommended_choice_sku:n?.winner_product&&n.winner_product.length>0&&(c=n.winner_product[0]?.product_detail?.sku??n.winner_product[0]?.sku);const u=c?a.find(y=>y.sku===c)??a[0]:a[0],l=[];if(Array.isArray(n?.key_differences))for(const y of n.key_differences)typeof y=="string"&&l.push(y);const d=qt(n?.special_considerations),f=n?.recommended_choice,m=n?.winner_hits,h={};for(const y of a){const v=y.sku;v&&(h[v]={title:y.name??v,type:"launchSingleProduct",payload:{sku:v}})}const p={products:a,attributes:s,highlights:l,productActions:h};return u&&(p.recommended=u),d.length>0&&(p.specialCases=d),f&&(p.recommendedText=f),m&&(p.winnerHits=m),typeof n?.key_differences=="string"&&(p.keyDifferencesHtml=n.key_differences),n?.special_considerations&&(p.specialConsiderations=n.special_considerations),{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"ComparisonTable",props:p}}},panelHint:"panel"}}function $o(e,t,r,n){if(!e)return[];const o=Object.entries(e);if(o.length===0)return[];const i=o[0]?.[1];if(Array.isArray(i)){const d=r.criteria_view??r.criteria_view_short??{},f=r.compared_field_names??Object.keys(e),m=[];for(const h of f){const p=e[h];if(!p||!Array.isArray(p))continue;const y=d[h]??h;m.push({label:y,values:p.map(v=>typeof v=="string"?v:String(v??""))})}return m}const a=e,s=t.map(d=>String(d.sku??"")).filter(d=>d.length>0),c=r.criteria_view??r.criteria_view_short??{},u=(n&&n.length>0?n:r.compared_field_names&&r.compared_field_names.length>0?r.compared_field_names:No(a)).filter(d=>d!=="name"&&d!=="name_short"&&!d.endsWith("_short")),l=[];for(const d of u){const f=s.map(h=>{const p=a[h];if(!p||typeof p!="object")return"";const y=p[`${d}_short`],v=p[d];return Oo(y??v)});if(f.every(h=>h.length===0))continue;const m=c[d]??d;l.push({label:m,values:f})}return l}function No(e){const t=[],r=new Set;for(const n of Object.values(e))if(!(!n||typeof n!="object"))for(const o of Object.keys(n))r.has(o)||(r.add(o),t.push(o));return t}function Oo(e){return typeof e=="string"?e:typeof e=="number"||typeof e=="boolean"?String(e):""}function Lo(e){return{type:"metadata",sessionId:"",model:"",meta:{panel:e.payload.panel,messages:e.payload.messages,message_id:e.payload.message_id}}}function Ro(){return{type:"done"}}function Zo(e){return{type:"metadata",sessionId:"",model:"",meta:{loading:!0,loadingText:e.payload.text,thinkingMessages:e.payload.thinking_messages,dynamicLoading:e.payload.is_dynamic===!0}}}function Do(e){return{type:"metadata",sessionId:"",model:"",meta:{loading:!0,panelLoading:!0,panelPendingType:e.payload?.pending_type,loadingText:e.payload?.text}}}function Uo(e){return{type:"metadata",sessionId:"",model:"",meta:{loading:!0,similarPanelLoading:!0,panelPendingType:e.payload?.pending_type,loadingText:e.payload?.text}}}function jo(e){const t=k(e.payload.url);return t?{type:"action",action:{kind:"navigate",url:t,newTab:e.payload.new_tab===!0}}:{type:"metadata",sessionId:"",model:"",meta:{redirect:e.payload,redirectTarget:k(e.payload.to)}}}function Mo(e){return{type:"error",code:"BACKEND_ERROR",message:k(e.payload?.text,e.payload?.message,e.payload?.error)??"Backend returned an error"}}function Fo(e){return{type:"metadata",sessionId:"",model:"",meta:{noop:!0}}}function Bo(e){const t=e.payload??{};if(Array.isArray(t.action_list)){const o={action_list:t.action_list},i=typeof t.type=="string"?t.type:void 0,a=typeof t.theme=="string"?t.theme:void 0;return i!==void 0&&(o.type=i),a!==void 0&&(o.theme=a),Bt({type:"quick_qna",payload:o})}const r=$(t.action);if(r){const o={action:r},i=typeof t.text=="string"?t.text:void 0,a=typeof t.image_url=="string"?t.image_url:void 0,s=typeof t.theme=="string"?t.theme:void 0;return i!==void 0&&(o.text=i),a!==void 0&&(o.image_url=a),s!==void 0&&(o.theme=s),Ft({type:"text_image",payload:o})}const n=typeof t.text=="string"?t.text:"";if(n){const o={text:n},i=typeof t.type=="string"?t.type:void 0,a=typeof t.theme=="string"?t.theme:void 0,s=$(t.payload)??void 0;return i!==void 0&&(o.type=i),s!==void 0&&(o.payload=s),a!==void 0&&(o.theme=a),We({type:"text",payload:o})}return{type:"metadata",sessionId:"",model:"",meta:{launcherAction:t}}}function We(e){const t={text:k(e.payload.text)??""};return typeof e.payload.theme=="string"&&(t.theme=e.payload.theme),e.payload.payload!==void 0&&(t.payload=e.payload.payload),{type:"ui_spec",widget:"qna",spec:{root:"root",elements:{root:{type:"QuestionHeading",props:t}}}}}function Go(e){return si(e.payload,"qna")}function Ft(e){const t=k(e.payload.text)??"",r=R(e.payload.action,t);if(r){const o={label:t||r.title,action:r};return typeof e.payload.image_url=="string"&&(o.image=e.payload.image_url),typeof e.payload.theme=="string"&&(o.theme=e.payload.theme),{type:"ui_spec",widget:"qna",spec:{root:"root",elements:{root:{type:"ActionButton",props:o}}}}}const n={text:t};return typeof e.payload.theme=="string"&&(n.theme=e.payload.theme),We({type:"text",payload:n})}function Bt(e){return Gt((e.payload.action_list??[]).map(t=>{const r=k(t.title)??"",n=R(t.requestDetails,r),o=n?{label:r,action:n}:null;return o?(typeof t.icon=="string"&&(o.icon=t.icon),typeof t.image=="string"&&(o.image=t.image),o):null}).filter(de),"qna")}function qo(e){const t={reviews:(e.payload.reviews??[]).map(r=>{const n={};return typeof r.review_class=="string"&&(n.review_class=r.review_class),typeof r.review_text=="string"&&(n.review_text=r.review_text),(typeof r.review_rating=="string"||typeof r.review_rating=="number")&&(n.review_rating=r.review_rating),typeof r.review_tag=="string"&&(n.review_tag=r.review_tag),n})};return typeof e.payload.sku=="string"&&(t.sku=e.payload.sku),{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"ReviewHighlights",props:t}}}}}function Jo(e){const t={};return Array.isArray(e.payload.pros)&&(t.pros=e.payload.pros),Array.isArray(e.payload.cons)&&(t.cons=e.payload.cons),typeof e.payload.product_name=="string"&&(t.productName=e.payload.product_name),{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"ProsAndCons",props:t}}}}}function Vo(e){return{type:"metadata",sessionId:"",model:"",meta:{visitorDataResponse:e.payload}}}function Wo(e){const t=e.payload.product_suggestions??[],r=[];for(let n=0;n<t.length;n++){const o=t[n];if(!o)continue;const i=ui(o);if(!i)continue;const a={product:i},s=R(o.requestDetails,i.name);s&&(a.action=s),typeof o.role=="string"&&(a.role=o.role),typeof o.reason=="string"&&(a.reason=o.reason),typeof o.review_highlight=="string"&&(a.reviewHighlight=o.review_highlight),Array.isArray(o.labels)&&(a.labels=o.labels),typeof o.expert_quality_score=="number"&&(a.expertQualityScore=o.expert_quality_score),r.push(a)}return r.length===0?{type:"metadata",sessionId:"",model:"",meta:{aiProductSuggestions:e.payload.product_suggestions??[]}}:{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"AITopPicks",props:{suggestions:r}}}}}}function Ho(e){const t=e.payload.product_groupings??[],r=[],n=[];for(let o=0;o<t.length;o++){const i=t[o];if(!i)continue;const a=k(i.name)??"",s=k(i.description),c=k(i.highlight),u=Array.isArray(i.labels)?qt(i.labels):[],l=k(i.sku,i.repr_sku),d=k(i.image,i.repr_image),f=Ko(i,a,l),m=(Array.isArray(i.group_products)?i.group_products:[]).map(y=>{const v=$(y);return v?Ye(v):null}).filter(de),h=d??k(...m.map(y=>y.imageUrl));if(a&&m.length>0){const y={groupName:a,products:m};h&&(y.image=h),s&&(y.description=s),c&&(y.highlight=c),u.length>0&&(y.labels=u),r.push(y)}if(!f)continue;const p={name:a,action:f};u.length>0&&(p.labels=u),d!==void 0&&(p.image=d),n.push(p)}return r.length>0?{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"CategoriesContainer",props:{groups:r}}}},panelHint:"panel"}:n.length===0?{type:"metadata",sessionId:"",model:"",meta:{aiProductGroupings:e.payload.product_groupings??[]}}:{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"AIGroupingCards",props:{entries:n}}}}}}function Ko(e,t,r){const n=$(e.requestDetails);if(n){if(n.type!=="findSimilar")return R(n,t);const a={...$(n.payload)??{}};r&&!Je(a.sku)&&(a.sku=r);const s=Ve(e.group_skus);return s.length>0&&(a.group_skus=s),R({...n,payload:jt(a)},t)}const o={};r&&(o.sku=r);const i=Ve(e.group_skus);return i.length>0&&(o.group_skus=i),Object.keys(o).length===0?null:R({type:"findSimilar",payload:jt(o)},t)}function Yo(e){const t=e.payload.suggested_searches??[],r=[];for(let n=0;n<t.length;n++){const o=t[n];if(!o)continue;const i=k(o.short_name,o.chosen_attribute,o.detailed_user_message)??`Search ${n+1}`,a={},s=k(o.detailed_user_message);s&&(a.text=s);const c=$($(o.requestDetails)?.payload),u=c?.group_skus;o.group_skus&&Array.isArray(o.group_skus)?a.group_skus=o.group_skus:Array.isArray(u)&&(a.group_skus=u.filter(v=>typeof v=="string"));const l=k(o.sku,o.representative_product_sku,c?.sku);l&&(a.sku=l),a.is_suggested_text=1;const d={type:"inputText",payload:a},f=R(o.requestDetails,i),m=f?.type==="findSimilar"&&typeof a.text=="string"?R(d,i):f??R(d,i);if(!m)continue;const h={shortName:i,action:m},p=k(o.detailed_user_message);p&&p!==i&&(h.detailedMessage=p);const y=So(o);y&&y!==i&&y!==(p??"")&&(h.whyDifferent=y),typeof o.image=="string"&&(h.image=o.image),r.push(h)}return r.length===0?{type:"metadata",sessionId:"",model:"",meta:{aiSuggestedSearches:e.payload.suggested_searches??[]}}:{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"AISuggestedSearchCards",props:{entries:r}}}}}}function Xo(e){const t=e.payload,r=R(t.requestDetails??t.request_details,k(t.review_count,t.reviewCount,t.text,t.title)??"Show product reviews");if(!r)return{type:"metadata",sessionId:"",model:"",meta:{groundingReview:t}};const n={action:r};return t.title&&(n.title=t.title),t.text&&(n.text=t.text),t.review_count?n.reviewCount=t.review_count:typeof t.reviewCount=="string"&&t.reviewCount.trim()&&(n.reviewCount=t.reviewCount),{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"GroundingReviewCard",props:n}}}}}function Qo(){return{type:"metadata",sessionId:"",model:"",meta:{analyzeAnimation:!0}}}function ei(e){return{type:"metadata",sessionId:"",model:"",meta:{voice:e.payload}}}function ti(e){const t=e.payload.group_list??[],r=[];for(const o of t){const i=o.group_name??"",a=(o.product_list??[]).map(B);r.push({groupName:i,products:a})}const n=[];for(const o of e.payload.filter_tags??[]){const i=o.title??"";if(!i)continue;const a=R(o.requestDetails,i),s={title:i};a&&(s.action=a),n.push(s)}return{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"CategoriesContainer",props:{groups:r,filterTags:n}}}},panelHint:"panel"}}function ri(e){return{type:"metadata",sessionId:"",model:"",meta:{formType:e.type,formPayload:e.payload??{}}}}function ni(e){const t={};return typeof e.payload?.summary=="string"&&(t.summary=e.payload.summary),Array.isArray(e.payload?.products_discussed)&&(t.products_discussed=e.payload.products_discussed),typeof e.payload?.user_sentiment=="string"&&(t.user_sentiment=e.payload.user_sentiment),{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:"HandoffNotice",props:t}}}}}function oi(e){return{type:"metadata",sessionId:"",model:"",meta:{launcherContent:e.payload??{}}}}function He(e,t){const r={product:e,index:t},n=e,o=typeof n.sku=="string"?n.sku:void 0;return o&&(r.action={title:typeof n.name=="string"?n.name:"",type:"launchSingleProduct",payload:{sku:o}}),{type:"ProductCard",props:r}}function Gt(e,t){const r={},n=[];for(let o=0;o<e.length;o++){const i=e[o];if(!i)continue;const a=`action-${o}`;n.push(a);const s={label:i.label,action:i.action};i.icon!==void 0&&(s.icon=i.icon),i.image!==void 0&&(s.image=i.image),i.description!==void 0&&(s.description=i.description),r[a]={type:"ActionButton",props:s}}return r.root={type:"ActionButtons",props:{buttons:e.map(o=>{const i={label:o.label,action:o.action};return o.image!==void 0&&(i.image=o.image),o.description!==void 0&&(i.description=o.description),o.icon!==void 0&&(i.icon=o.icon),i})},children:n},{type:"ui_spec",widget:t,spec:{root:"root",elements:r}}}function Ke(e,t){const r={},n=[];for(let o=0;o<e.length;o++){const i=e[o];if(!i)continue;const a=B(i),s=`product-${o}`;n.push(s),r[s]=He(a,o)}return r.root={type:"ProductGrid",props:{layout:"grid"},children:n},{type:"ui_spec",widget:t,spec:{root:"root",elements:r}}}function ii(e,t,r){const n=new Map;for(const u of t)u?.sku&&n.set(u.sku,u);if(n.size===0)return null;const o=new Set,i={},a=[],s=[];let c=0;for(let u=0;u<e.length;u++){const l=e[u],d=k(l?.title)??"",f=Array.isArray(l?.skus)?l.skus:[],m=[];for(let h=0;h<f.length;h++){const p=typeof f[h]=="string"?f[h].trim():"";if(!p||o.has(p))continue;const y=n.get(p);if(!y)continue;o.add(p);const v=`product-${u}-${h}`,I=B(y);a.push(v),m.push(v),i[v]=He(I,c),c+=1}m.length>0&&s.push({title:d,children:m})}return s.length===0||o.size<n.size?null:(i.root={type:"ProductGrid",props:{layout:"grouped",productSections:s},children:a},{type:"ui_spec",widget:r,spec:{root:"root",elements:i}})}function ai(e,t){const r={},n=[];for(let o=0;o<e.length;o++){const i=e[o];if(!i)continue;const a=`product-${o}`;n.push(a),r[a]=He(i,o)}return r.root={type:"ProductGrid",props:{layout:"grid"},children:n},{type:"ui_spec",widget:t,spec:{root:"root",elements:r}}}function si(e,t){return{type:"ui_spec",widget:t,spec:{root:"root",elements:{root:{type:"ProductCard",props:{product:B(e),index:0}}}}}}function ci(e){return{type:"ui_spec",widget:e,spec:{root:"root",elements:{root:{type:"ActionButtons",props:{buttons:[]},children:[]}}}}}function ui(e){const t=k(e.sku),r=k(e.short_name),n={...$(e.product_item)??e},o=k(e.discount_reason,e.discountReason);return o&&!k(n.discount_reason,n.discountReason)&&(n.discount_reason=o),Ye(n,t,r)}function Ye(e,t,r){const n=k(e.sku,t),o=k(e.name,r);if(!n||!o)return null;const i={sku:n,name:o},a=k(e.brand);a&&(i.brand=a);const s=k(e.url);s&&(i.url=s);const c=li(e.images);if(c.length>0)i.images=c;else{const p=k(e.image,e.image_url,e.imageUrl);p&&(i.images=[p])}const u=le(e.price_discounted);u!==void 0&&(i.price_discounted=u);const l=le(e.price);l!==void 0&&(i.price=l);const d=le(e.rating);d!==void 0&&(i.rating=d);const f=le(e.review_count)??le(e.reviewCount);f!==void 0&&(i.review_count=f);const m=k(e.cart_code,e.cartCode);m&&(i.cart_code=m),typeof e.in_stock=="boolean"&&(i.in_stock=e.in_stock),typeof e.inStock=="boolean"&&(i.in_stock=e.inStock);const h=k(e.discount_reason,e.discountReason);return h&&(i.discount_reason=h),B(i)}function R(e,t){const r=$(e);if(!r)return null;const n=r.type;if(typeof n!="string"||n.length===0)return null;const o={title:t||n,type:n};return r.payload!==void 0&&(o.payload=r.payload),o}function $(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function k(...e){for(const t of e)if(typeof t=="string"){const r=t.trim();if(r.length>0)return r}}function li(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.length>0):[]}function qt(e){if(typeof e=="string"){const t=e.trim();return t?[t]:[]}return Array.isArray(e)?e.filter(t=>typeof t=="string").map(t=>t.trim()).filter(t=>t.length>0):[]}function le(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"){let t;e.includes(".")&&e.includes(",")?t=e.replace(/\./g,"").replace(",","."):t=e.replace(",",".");const r=Number(t);if(Number.isFinite(r))return r}}function de(e){return e!=null}var di=new Set(["sku","name","brand","images","price","price_discounted","price_discount_rate","price_currency","discount_reason","url","rating","review_count","cart_code","in_stock","description","description_html","features","specifications","short_name","category_ids","category_names","variants","facet_hits","promotions"]);function B(e){const t=e.price_discounted!=null&&e.price_discounted>0,r=t?e.price_discounted:e.price,n=t&&e.price!=null?e.price:void 0;let o;n!=null&&r!=null&&n>0?o=Math.round((n-r)/n*100):e.price_discount_rate!=null&&e.price_discount_rate>0&&(o=e.price_discount_rate);const i=k(e.brand),a=k(e.name)??e.sku,s=i&&!a.toLowerCase().startsWith(i.toLowerCase())?`${i} ${a}`:a,c={sku:e.sku,name:s,url:k(e.url)??""},u=e.images?.[0];u&&(c.imageUrl=u),e.images&&e.images.length>1&&(c.images=e.images),r!=null&&r>0&&(c.price=String(r)),n!=null&&n>0&&(c.originalPrice=String(n)),o!==void 0&&(c.discountPercent=o),i!==void 0&&(c.brand=i),e.rating!==void 0&&(c.rating=e.rating),e.review_count!==void 0&&(c.reviewCount=e.review_count),e.cart_code!==void 0&&(c.cartCode=e.cart_code),e.in_stock!==void 0&&(c.inStock=e.in_stock),e.variants&&e.variants.length>0&&(c.variants=e.variants),e.discount_reason!==void 0&&(c.discountReason=e.discount_reason),e.promotions&&e.promotions.length>0&&(c.promotions=e.promotions),e.description!==void 0&&(c.description=e.description),e.description_html!==void 0&&(c.descriptionHtml=e.description_html),e.features&&e.features.length>0&&(c.features=e.features),e.specifications!==void 0&&(c.specifications=e.specifications),e.facet_hits&&(c.facetHits=e.facet_hits),e.category_names&&e.category_names.length>0&&(c.categoryNames=e.category_names),e.short_name!==void 0&&(c.shortName=e.short_name);const l=e,d={};let f=!1;for(const m of Object.keys(l))di.has(m)||(d[m]=l[m],f=!0);return f&&(c.extras=d),c}function fi(e){return e.results.map(B)}function pi(e){return e.product_groupings.map(t=>{const r={name:t.name,products:(t.group_products??[]).map(B)};return t.highlight!==void 0&&(r.highlight=t.highlight),r})}function gi(e){const t=e.payload.type,{type:r,...n}=e.payload;return{type:"ui_spec",widget:"chat",spec:{root:"root",elements:{root:{type:t,props:n}}}}}function Jt(e){const t=[];for(const r of Object.values(e))if(r.type==="ProductCard"&&r.props){const n=r.props.product??r.props;typeof n.sku=="string"&&typeof n.name=="string"&&t.push(n)}return t}function Vt(e){const t=e.headers.get("Content-Type")??"";return t.includes("application/x-ndjson")||t.includes("text/event-stream")}async function mi(e,t){const r=[],n={onEvent:o=>{const i=Mt(o);!i||i.type!=="ui_spec"||r.push(...Jt(i.spec.elements))}};return t!==void 0&&(n.signal=t),await Pt(e,n),r}async function hi(e,t,r){const n=At("similar_products",t),o={method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)};r!==void 0&&(o.signal=r);const i=await Ot(n,o);if(!i.ok)throw new Error(`HTTP ${i.status}: ${i.statusText}`);if(Vt(i))return mi(i,r);const a=await i.text();if(!a)throw new Error("Empty response body from similar_products endpoint");try{return fi(JSON.parse(a))}catch{throw new Error("Invalid JSON from similar_products endpoint")}}async function yi(e,t){const r=[];let n=null;const o={onEvent:i=>{const a=Mt(i);if(a){if(a.type==="metadata"&&a.meta){const s=a.meta.group_name;if(typeof s=="string"){n={name:s,products:[]};const c=a.meta.highlight;typeof c=="string"&&(n.highlight=c),r.push(n)}}a.type==="ui_spec"&&n&&n.products.push(...Jt(a.spec.elements))}}};return t!==void 0&&(o.signal=t),await Pt(e,o),r}async function _i(e,t,r){const n=At("product_groupings",t),o={method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)};r!==void 0&&(o.signal=r);const i=await Ot(n,o);if(!i.ok)throw new Error(`HTTP ${i.status}: ${i.statusText}`);if(Vt(i))return yi(i,r);const a=await i.text();if(!a)return[];try{return pi(JSON.parse(a))}catch{throw new Error("Invalid JSON from product_groupings endpoint")}}var vi={currencyCode:"TRY",currencySymbol:"TL",currencyPosition:"suffix",thousandsSeparator:".",decimalSeparator:",",alwaysShowDecimals:!1};function fe(e,t){const r=Number(e);if(!Number.isFinite(r)||r<0)return e;const n={...vi,...t},o=Math.abs(r%1)<Number.EPSILON,i=n.alwaysShowDecimals||!o?r.toFixed(2):r.toFixed(0),a=i.indexOf("."),s=a===-1?i:i.slice(0,a),c=a===-1?void 0:i.slice(a+1),u=s.replace(/\B(?=(\d{3})+(?!\d))/g,n.thousandsSeparator);let l;return c!==void 0?l=`${u}${n.decimalSeparator}${c}`:l=u,n.currencySymbol?n.currencyPosition==="prefix"?`${n.currencySymbol}${l}`:`${l} ${n.currencySymbol}`:l}function bi(e){return Number.isFinite(e)?Math.max(0,Math.min(5,e)):0}function wi(e){return Number.isFinite(e)?Math.max(0,Math.min(100,Math.round(e))):0}function ki(e){const t=bi(e),r=Math.floor(t),n=t-r>=.5,o=5-r-(n?1:0),i=document.createElement("span");if(i.className="gengage-star-rating",i.setAttribute("role","img"),i.setAttribute("aria-label",`${t.toFixed(1)} out of 5 stars`),r>0&&i.appendChild(document.createTextNode("★".repeat(r))),n){const a=document.createElement("span");a.className="gengage-star-half",a.textContent="☆";const s=document.createElement("span");s.textContent="★",a.appendChild(s),i.appendChild(a)}return o>0&&i.appendChild(document.createTextNode("☆".repeat(o))),i}function Wt(e){e.addEventListener("error",()=>{e.style.display="none"},{once:!0})}function Ht(e){const{product:t,index:r,discountType:n,onClick:o,onAddToCart:i,renderCard:a}=e,s=e.i18n,c=e.pricing;if(e.renderCardElement){const p=e.renderCardElement(t,r);if(p)return p}if(a){const p=document.createElement("div");return p.className="gengage-simrel-card gengage-simrel-card--custom gds-card gds-product-card gds-card-interactive",p.dataset.gengagePart="simrel-product-card",p.innerHTML=vn(a(t,r)),p.addEventListener("click",y=>{y.target.closest(".gengage-simrel-atc")||y.target.closest(".gengage-chat-product-card-atc")||o(t)}),p}const u=document.createElement("article");u.className="gengage-simrel-card gengage-chat-product-card gds-card gds-product-card gds-card-interactive",u.dataset.gengagePart="simrel-product-card",t.inStock===!1&&u.classList.add("gengage-simrel-card--out-of-stock"),u.setAttribute("role","listitem"),u.dataset.sku=t.sku;const l=document.createElement("div");if(l.className="gengage-simrel-card-image gengage-chat-product-card-img-wrapper",l.dataset.gengagePart="simrel-product-card-image",t.imageUrl&&ve(t.imageUrl)){const p=document.createElement("img");p.className="gengage-chat-product-card-img",p.src=t.imageUrl,p.alt=t.name,p.loading="lazy",Wt(p),l.appendChild(p)}if(n==="badge"&&t.discountPercent&&t.discountPercent>0){const p=document.createElement("span");p.className="gengage-simrel-badge gengage-chat-product-card-discount-badge",p.textContent=`%${wi(t.discountPercent)}`,l.appendChild(p)}u.appendChild(l);const d=document.createElement("div");if(d.className="gengage-simrel-card-info gengage-chat-product-card-body",d.dataset.gengagePart="simrel-product-card-body",t.brand){const p=document.createElement("div");p.className="gengage-simrel-card-brand gengage-chat-product-card-brand",p.textContent=t.brand,d.appendChild(p)}const f=document.createElement("div");if(f.className="gengage-simrel-card-name gengage-chat-product-card-name",f.textContent=t.name,f.title=t.name,d.appendChild(f),t.rating!=null&&t.rating>0){const p=document.createElement("div");if(p.className="gengage-simrel-card-rating gengage-chat-product-card-rating",p.appendChild(ki(t.rating)),t.reviewCount!=null){const y=document.createElement("span");y.className="gengage-simrel-card-review-count gengage-chat-product-card-review-count",y.textContent=` (${t.reviewCount})`,p.appendChild(y)}d.appendChild(p)}const m=document.createElement("div");if(m.className="gengage-simrel-card-price gengage-chat-product-card-price",t.originalPrice&&t.originalPrice!==t.price&&(n==="strike-through"||n==="inline"||!n)){const p=document.createElement("span");p.className=["gengage-simrel-card-price-original","gengage-chat-product-card-original-price"].join(" "),n==="inline"&&p.classList.add("gengage-simrel-card-price-original--inline"),p.textContent=fe(t.originalPrice,c),m.appendChild(p)}if(t.price&&parseFloat(t.price)>0){const p=document.createElement("span");p.className="gengage-simrel-card-price-current gengage-chat-product-card-price-current",p.textContent=fe(t.price,c),m.appendChild(p)}d.appendChild(m),u.appendChild(d);const h=document.createElement("button");if(h.className="gengage-simrel-card-cta gengage-chat-product-card-cta gds-btn gds-btn-secondary",h.type="button",h.dataset.gengagePart="simrel-product-card-cta",h.textContent=s?.ctaLabel??"View",h.addEventListener("click",p=>{p.preventDefault(),p.stopPropagation(),o(t)}),u.appendChild(h),t.inStock===!1){const p=document.createElement("div");p.className="gengage-simrel-card-oos",p.textContent=s?.outOfStockLabel??"Out of Stock",u.appendChild(p)}else if(t.cartCode){const p=document.createElement("button");p.className="gengage-simrel-atc gengage-simrel-atc-button gds-btn gds-btn-secondary",p.type="button",p.textContent=s?.addToCartButton??"Add to Cart",p.addEventListener("click",y=>{y.preventDefault(),y.stopPropagation(),i({sku:t.sku,quantity:1,cartCode:t.cartCode})}),u.appendChild(p)}return u.addEventListener("click",p=>{p.target.closest(".gengage-simrel-atc")||p.target.closest(".gengage-chat-product-card-atc")||p.target.closest(".gengage-chat-product-card-cta")||o(t)}),u}function Kt(e){const 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 r=0;r<e.products.length;r++){const n={product:e.products[r],index:r,onClick:e.onClick,onAddToCart:e.onAddToCart};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);const o=Ht(n);t.appendChild(o)}return e.products.length===0&&(t.style.display="none",t.dataset.empty="true"),t}var Si=0;function Yt(e){const t=Si++,r=document.createElement("div");if(r.className="gengage-simrel-groups",r.dataset.gengagePart="simrel-groups",e.groups.length===0)return r.style.display="none",r.dataset.empty="true",r;const n=document.createElement("div");n.className="gengage-simrel-tabs gds-toolbar",n.dataset.gengagePart="simrel-tab-bar",n.setAttribute("role","tablist");const o=[],i=[];let a=0;const s=y=>{const v={products:y.products,onClick:e.onClick,onAddToCart:e.onAddToCart};return e.i18n!==void 0&&(v.i18n=e.i18n),e.discountType!==void 0&&(v.discountType=e.discountType),e.renderCard!==void 0&&(v.renderCard=e.renderCard),e.renderCardElement!==void 0&&(v.renderCardElement=e.renderCardElement),e.columns!==void 0&&(v.columns=e.columns),v},c=(y,v=!1)=>{if(v&&y!==a&&e.onGroupingActivate){const w=e.groups[y];e.onGroupingActivate({grouping_label:w.name,grouping_index:y})}a=y;for(let w=0;w<o.length;w++){const P=w===y;o[w].classList.toggle("gengage-simrel-tab--active",P),o[w].setAttribute("aria-selected",String(P)),o[w].tabIndex=P?0:-1}const I=e.groups[y],S=i[y];S.innerHTML="";const b=Kt(s(I));S.appendChild(b);for(let w=0;w<i.length;w++){const P=w===y;i[w].style.display=P?"":"none",i[w].tabIndex=P?0:-1}};for(let y=0;y<e.groups.length;y++){const v=e.groups[y],I=`gengage-simrel-tab-${t}-${y}`,S=`gengage-simrel-panel-${t}-${y}`,b=document.createElement("button");b.className="gengage-simrel-tab gds-tab",b.type="button",b.dataset.gengagePart="simrel-tab",b.id=I,b.textContent=v.name,b.setAttribute("role","tab"),b.setAttribute("aria-controls",S),b.setAttribute("aria-selected",String(y===0)),b.tabIndex=y===0?0:-1,y===0&&b.classList.add("gengage-simrel-tab--active"),b.addEventListener("click",()=>c(y,!0)),b.addEventListener("keydown",P=>{let M=-1;P.key==="ArrowRight"||P.key==="ArrowDown"?M=(y+1)%e.groups.length:P.key==="ArrowLeft"||P.key==="ArrowUp"?M=(y-1+e.groups.length)%e.groups.length:P.key==="Home"?M=0:P.key==="End"&&(M=e.groups.length-1),M>=0&&(P.preventDefault(),c(M,!0),o[M].focus())}),o.push(b),n.appendChild(b);const w=document.createElement("div");w.className="gengage-simrel-tab-panel",w.dataset.gengagePart="simrel-tab-panel",w.id=S,w.setAttribute("role","tabpanel"),w.setAttribute("aria-labelledby",I),w.tabIndex=y===0?0:-1,y!==0&&(w.style.display="none"),i.push(w)}const u=document.createElement("button");u.type="button",u.className="gengage-simrel-tabs-arrow gengage-simrel-tabs-arrow--left",u.setAttribute("aria-label",e.i18n?.scrollTabsLeft??"Scroll tabs left"),u.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>';const 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>';const d=200;u.addEventListener("click",()=>{n.scrollBy({left:-200,behavior:"smooth"})}),l.addEventListener("click",()=>{n.scrollBy({left:d,behavior:"smooth"})});const f=()=>{const y=n.scrollLeft<=4,v=n.scrollLeft+n.clientWidth>=n.scrollWidth-4;u.style.display=y?"none":"",l.style.display=v?"none":"",n.classList.toggle("gengage-simrel-tabs--peek-right",!v),n.classList.toggle("gengage-simrel-tabs--peek-left",!y)};n.addEventListener("scroll",f,{passive:!0}),typeof ResizeObserver<"u"&&new ResizeObserver(f).observe(n),u.style.display="none",l.style.display="none",requestAnimationFrame(f);const m=document.createElement("div");m.className="gengage-simrel-tabs-wrapper",m.appendChild(u),m.appendChild(n),m.appendChild(l),r.appendChild(m);const h=i[0],p=Kt(s(e.groups[0]));h.appendChild(p);for(const y of i)r.appendChild(y);return r}function Xt(e){if(!e||typeof e!="object")return null;const t=e;if(typeof t.sku!="string"||typeof t.name!="string"||typeof t.url!="string")return null;const r={sku:t.sku,name:t.name,url:t.url},n=t.imageUrl;typeof n=="string"&&(r.imageUrl=n);const o=t.price;typeof o=="string"&&(r.price=o);const i=t.originalPrice;typeof i=="string"&&(r.originalPrice=i);const a=t.discountPercent;typeof a=="number"&&(r.discountPercent=a);const s=t.brand;typeof s=="string"&&(r.brand=s);const c=t.rating;typeof c=="number"&&(r.rating=c);const u=t.reviewCount;typeof u=="number"&&(r.reviewCount=u);const l=t.cartCode;typeof l=="string"&&(r.cartCode=l);const d=t.inStock;typeof d=="boolean"&&(r.inStock=d);const f=t.extras;return f!=null&&typeof f=="object"&&(r.extras=f),r}function Ei(e){if(!e||typeof e!="object")return null;const t=e,r=t.title,n=t.type;if(typeof r!="string"||typeof n!="string")return null;const o={title:r,type:n};return t.payload!==void 0&&(o.payload=t.payload),o}var Qt={ProductGrid:({element:e,renderElement:t,context:r})=>{const n=document.createElement("div");n.className="gengage-simrel-grid",n.setAttribute("role","list");const o=e.props?.columns;let i;typeof o=="number"&&Number.isFinite(o)&&o>0?i=Math.floor(o):typeof r.gridColumns=="number"&&Number.isFinite(r.gridColumns)&&r.gridColumns>0&&(i=Math.floor(r.gridColumns)),i!==void 0&&n.style.setProperty("--gengage-simrel-columns",String(i));for(const a of e.children??[]){const s=t(a);s&&n.appendChild(s)}if(n.children.length===0){const a=document.createElement("div");a.className="gengage-simrel-empty",a.textContent=r.i18n.emptyStateMessage,n.appendChild(a)}return n},ProductCard:({element:e,context:t})=>{const r=Xt(e.props?.product??e.props);if(!r)return null;const n=e.props?.index,o=typeof n=="number"&&Number.isFinite(n)?n:0,i=e.props?.discountType,a=i==="strike-through"||i==="badge"||i==="inline"?i:t.discountType,s={product:r,index:o,onClick:t.onClick,onAddToCart:t.onAddToCart,i18n:t.i18n};return a!==void 0&&(s.discountType=a),t.renderCard!==void 0&&(s.renderCard=t.renderCard),t.renderCardElement!==void 0&&(s.renderCardElement=t.renderCardElement),t.pricing!==void 0&&(s.pricing=t.pricing),Ht(s)},GroupTabs:({element:e,context:t})=>{const r=e.props?.groups;if(!Array.isArray(r))return null;const n=[];for(const a of r){if(!a||typeof a!="object")continue;const s=a;if(typeof s.name!="string")continue;const c=[];if(Array.isArray(s.products))for(const l of s.products){const d=Xt(l);d&&c.push(d)}const u={name:s.name,products:c};typeof s.highlight=="string"&&(u.highlight=s.highlight),n.push(u)}const o={groups:n,onClick:t.onClick,onAddToCart:t.onAddToCart,i18n:t.i18n},i=e.props?.columns;return typeof i=="number"&&Number.isFinite(i)&&i>0?o.columns=Math.floor(i):typeof t.gridColumns=="number"&&Number.isFinite(t.gridColumns)&&t.gridColumns>0&&(o.columns=Math.floor(t.gridColumns)),t.discountType!==void 0&&(o.discountType=t.discountType),t.renderCard!==void 0&&(o.renderCard=t.renderCard),t.renderCardElement!==void 0&&(o.renderCardElement=t.renderCardElement),t.onGroupingActivate!==void 0&&(o.onGroupingActivate=t.onGroupingActivate),Yt(o)},EmptyState:({element:e,context:t})=>{const r=document.createElement("div");r.className="gengage-simrel-empty";const n=e.props?.message;return r.textContent=typeof n=="string"?n:t.i18n.emptyStateMessage,r},AddToCartButton:({element:e,context:t})=>{const r=e.props?.sku,n=e.props?.cartCode;if(typeof r!="string"||typeof n!="string")return null;const o=document.createElement("button");o.className="gengage-simrel-atc gengage-chat-product-card-cta",o.type="button";const i=e.props?.label;return o.textContent=typeof i=="string"?i:t.i18n.addToCartButton,o.addEventListener("click",a=>{a.preventDefault(),a.stopPropagation(),t.onAddToCart({sku:r,quantity:1,cartCode:n})}),o},QuickActions:({element:e,context:t})=>{const r=document.createElement("div");r.className="gengage-simrel-quick-actions";const n=e.props?.actions;if(!Array.isArray(n)||!t.onAction)return r;for(const o of n){if(!o||typeof o!="object")continue;const i=o,a=i.label,s=Ei(i.action);if(typeof a!="string"||!s)continue;const c=document.createElement("button");c.className="gengage-simrel-quick-action",c.type="button",c.textContent=a,c.addEventListener("click",u=>{u.preventDefault(),u.stopPropagation(),t.onAction?.(s)}),r.appendChild(c)}return r}},Xe=({element:e,renderElement:t})=>{if(!e.children||e.children.length===0)return null;const r=document.createElement("div");for(const n of e.children){const o=t(n);o&&r.appendChild(o)}return r};function er(){return{...Qt}}function tr(e,t,r=Qt,n=Xe){return dn({spec:e,context:t,registry:r,containerClassName:"gengage-simrel-uispec",unknownRenderer:n})}var rr={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"},Ci={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 Ti(e){return e?e.toLowerCase().split("-")[0]??"tr":"tr"}function xi(e){return Ti(e)==="en"?Ci:rr}var Ai=12e4;function zi(e){return e instanceof DOMException&&e.name==="AbortError"}var nr=class extends Bn{constructor(...e){super(...e),this._abortController=null,this._contentEl=null,this._lastResultCount=-1,this._i18n=rr,this._pendingAddToCartKeys=new Set}async init(e){if(!this.isInitialised&&(e.mountTarget===void 0||e.mountTarget===null))throw new Error("[gengage] SimRel mountTarget is required. Provide a merchant-owned mount before initializing.");await super.init(e)}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",this._contentEl.lang=qn(e.locale);const t=this._clampGridColumns(e.gridColumns);t!==void 0&&this._contentEl.style.setProperty("--gengage-simrel-columns",String(t)),this.root.appendChild(this._contentEl),this._lastSku=e.sku,await this._fetchAndRender(e.sku),wn("simrel")}onUpdate(e){const 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(),this._contentEl=null)}_handleProductClick(e){const t={sku:e.sku,name:e.name,url:e.url};if(e.imageUrl!==void 0&&(t.imageUrl=e.imageUrl),e.price!==void 0&&(t.price=e.price),e.originalPrice!==void 0&&(t.originalPrice=e.originalPrice),e.discountPercent!==void 0&&(t.discountPercent=e.discountPercent),e.brand!==void 0&&(t.brand=e.brand),e.rating!==void 0&&(t.rating=e.rating),e.reviewCount!==void 0&&(t.reviewCount=e.reviewCount),e.cartCode!==void 0&&(t.cartCode=e.cartCode),e.inStock!==void 0&&(t.inStock=e.inStock),this.config.onProductClick?.(t)===!1)return;const r=this.config.session?.sessionId??null;ae("gengage:similar:product-click",{sku:e.sku,url:e.url,sessionId:r,productName:e.name}),this.config.onProductNavigate?.(e.url,e.sku,r)}async _handleAddToCart(e){const t=`${e.sku}\0${e.cartCode}\0${e.quantity}`;if(!this._pendingAddToCartKeys.has(t)){this._pendingAddToCartKeys.add(t);try{if(this.config.onAddToCart===void 0)return;try{await Promise.resolve(this.config.onAddToCart(e))}catch(r){console.error("[gengage] simrel onAddToCart",r);return}kn(e.sku,e.quantity),ae("gengage:similar:add-to-cart",e)}finally{this._pendingAddToCartKeys.delete(t)}}}_abort(){this._abortController?.abort(),this._abortController=null}_isSuperseded(e){return this._abortController?.signal!==e}_emitSimilarProductsImpression(e,t){const r=this.config.session?.sessionId??null;ae("gengage:similar:products-impression",{source_sku:this.config.sku,product_count:e,grouped:t,sessionId:r})}_resolveRequestTimeoutMs(){const e=this.config.requestTimeoutMs;return typeof e!="number"||!Number.isFinite(e)||e<=0?Ai:Math.floor(e)}async _fetchAndRender(e){this._abort();const t=new AbortController;this._abortController=t;const r=t.signal;let n=!1;const o=setTimeout(()=>{n=!0,t.abort()},this._resolveRequestTimeoutMs());if(r.addEventListener("abort",()=>clearTimeout(o),{once:!0}),!this._contentEl)return;this._contentEl.innerHTML="",this._contentEl.style.display="";const i=document.createElement("div");i.className="gengage-simrel-loading",i.dataset.gengagePart="simrel-loading";const a=document.createElement("div");a.className="gengage-simrel-spinner",a.dataset.gengagePart="simrel-loading-spinner",i.appendChild(a),this._contentEl.appendChild(i);const s={middlewareUrl:this.config.middlewareUrl},c=Xn({source:"simrel",locale:this.config.locale});try{const u={account_id:this.config.accountId,session_id:this.config.session?.sessionId??"",correlation_id:this.config.session?.sessionId??"",sku:e};this.config.domain!==void 0&&(u.domain=this.config.domain);const l=await hi(u,s,r);if(this._lastResultCount=l.length,!this._contentEl)return;if(this._contentEl.innerHTML="",l.length>0&&this.config.enableProductGroupings!==!1)try{const d=l.map(h=>h.sku),f=new Map(l.map(h=>[h.sku,h])),m=(await _i({account_id:this.config.accountId,session_id:this.config.session?.sessionId??"",correlation_id:this.config.session?.sessionId??"",skus:d},s,r)).map(h=>({...h,products:h.products.map(p=>({...f.get(p.sku),...p})).filter(p=>typeof p.sku=="string"&&typeof p.name=="string"&&typeof p.url=="string")})).filter(h=>h.products.length>0);if(m.length>0&&this._contentEl){const h=this._buildGroupsSpec(m),p=this._renderUISpec(h);this._contentEl.appendChild(p),yt("simrel"),this._emitSimilarProductsImpression(m.reduce((y,v)=>y+v.products.length,0),!0);return}}catch{}if(this._isSuperseded(r))return;if(this._contentEl){const d=this._buildProductsSpec(l),f=this._renderUISpec(d);this._contentEl.appendChild(f)}l.length>0&&yt("simrel"),this._emitSimilarProductsImpression(l.length,!1)}catch(u){const l=zi(u);if(l&&this._isSuperseded(r))return;if(ae("gengage:global:error",{source:"simrel",code:l&&n?"REQUEST_TIMEOUT":"FETCH_ERROR",message:$n(this.config.locale,u)}),this._contentEl){this._contentEl.innerHTML="";const d=document.createElement("div");d.className="gengage-simrel-error";const f=document.createElement("span");f.textContent=this._i18n.errorLoadingMessage,d.appendChild(f);const m=document.createElement("button");m.className="gengage-simrel-retry",m.textContent=this._i18n.retryButtonText,m.addEventListener("click",()=>{this._fetchAndRender(this.config.sku)}),d.appendChild(m),this._contentEl.appendChild(d)}}finally{clearTimeout(o),c()}}_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{...xi(e.locale),...e.i18n}}_resolveUISpecRegistry(){return fn(er(),this.config.renderer?.registry)}_buildRenderContext(){const e=this.config.renderCard,t={onClick:n=>this._handleProductClick(n),onAddToCart:n=>{this._handleAddToCart(n)},onGroupingActivate:n=>{ae("gengage:similar:grouping-click",{grouping_label:n.grouping_label,grouping_index:n.grouping_index,sessionId:this.config.session?.sessionId??null})},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);const r=this._clampGridColumns(this.config.gridColumns);return r!==void 0&&(t.gridColumns=r),t}_renderUISpec(e){const t=this._resolveUISpecRegistry(),r=this._buildRenderContext(),n=this.config.renderer?.unknownRenderer??Xe,o=(a,s)=>tr(a,s,t,n),i=this.config.renderer?.renderUISpec;return i?i(e,r,{registry:t,unknownRenderer:n,defaultRender:o}):o(e,r)}_buildProductsSpec(e){const t={},r=[];for(let i=0;i<e.length;i++){const a=e[i],s=`product-${i}`;r.push(s),t[s]={type:"ProductCard",props:{product:a,index:i,discountType:this.config.discountType}}}const n={layout:"grid"},o=this._clampGridColumns(this.config.gridColumns);return o!==void 0&&(n.columns=o),t.root={type:"ProductGrid",props:n,children:r},{root:"root",elements:t}}_buildGroupsSpec(e){return{root:"root",elements:{root:{type:"GroupTabs",props:{groups:e}}}}}};function Ii(){return new nr}var Pi={images:["images","extras.images","imageUrl"],subtitle:["categoryNames","category_names","extras.categoryNames","extras.category_names","description"],promotions:["promotions","extras.promotions"],warranties:["warranties","extras.warranties"],productInfoUrl:["productInfoFormUrl","extras.productInfoFormUrl","documents.0.url","extras.documents.0.url"],discountReason:["discountReason","discount_reason","extras.discountReason","extras.discount_reason"],specialPrice:["isSpecialPrice","extras.isSpecialPrice"],customBadgeFacets:["customBadgeFacets","custom_badge_facets","extras.customBadgeFacets","extras.custom_badge_facets","facetHits","facet_hits","extras.facetHits","extras.facet_hits"],customBadgeText:["customBadgeText","custom_badge_text","customBadge","custom_badge","customLabel","custom_label","bottomLabel","bottom_label","cornerBadge","corner_badge","extras.customBadgeText","extras.custom_badge_text","extras.customBadge","extras.custom_badge","extras.customLabel","extras.custom_label","extras.bottomLabel","extras.bottom_label","extras.cornerBadge","extras.corner_badge"],customBadgeImageUrl:["customBadgeImageUrl","custom_badge_image_url","customLabelImageUrl","custom_label_image_url","bottomLabelImageUrl","bottom_label_image_url","cornerBadgeImageUrl","corner_badge_image_url","extras.customBadgeImageUrl","extras.custom_badge_image_url","extras.customLabelImageUrl","extras.custom_label_image_url","extras.bottomLabelImageUrl","extras.bottom_label_image_url","extras.cornerBadgeImageUrl","extras.corner_badge_image_url"]};function Se(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function G(e){if(typeof e!="string")return;const t=e.trim();return t.length>0?t:void 0}function or(e){if(Array.isArray(e))return e.map(r=>G(r)).filter(r=>!!r);const t=G(e);return t?[t]:[]}function ir(e){if(typeof e=="number"&&Number.isFinite(e))return e;if(typeof e=="string"){const t=Number.parseFloat(e);if(Number.isFinite(t))return t}}function $i(e){if(typeof e=="boolean")return e;if(typeof e=="number"&&Number.isFinite(e)){if(e===1)return!0;if(e===0)return!1}if(typeof e=="string"){const t=e.trim().toLowerCase();if(t==="true")return!0;if(t==="false")return!1;if(t==="1")return!0;if(t==="0")return!1}}function ar(...e){for(const t of e){const r=G(t);if(r)return r}}function sr(e){const t=Se(e);if(!t)return null;const r=G(t.sku),n=G(t.name),o=G(t.url);if(!r||!n||!o)return null;const i={sku:r,name:n,url:o};for(const[a,s]of Object.entries(t))s!==void 0&&(i[a]=s);return i}function Ni(e){const t=Se(e);if(!t)return null;const r=G(t.name);if(!r)return null;const n=[];if(Array.isArray(t.products))for(const a of t.products){const s=sr(a);s&&n.push(s)}const o={name:r,products:n},i=G(t.highlight);return i&&(o.highlight=i),o}function Ee(e,t){const r=typeof t=="string"?t.split("."):[...t];let n=e;for(const o of r){if(n==null)return;if(Array.isArray(n)){const a=Number.parseInt(o,10);if(!Number.isInteger(a))return;n=n[a];continue}const i=Se(n);if(!i)return;n=i[o]}return n}function Oi(e,t){for(const r of t){const n=Ee(e,r);if(n!=null)return n}}function Qe(e,t){for(const r of t){const n=or(Ee(e,r));if(n.length>0)return n}return[]}function pe(e,t){for(const r of t){const n=Ee(e,r),o=G(n);if(o)return o;const i=or(n);if(i.length>0)return i[0]}}function Li(e,t){for(const r of t){const n=Se(Ee(e,r));if(n)return n}return null}function cr(e,t){return{labels:{customBadgeAlt:e.labels?.customBadgeAlt??"Product badge",imageDot:e.labels?.imageDot??(r=>`Show product image ${r+1}`),previousPromotion:e.labels?.previousPromotion??"Previous promotion",nextPromotion:e.labels?.nextPromotion??"Next promotion"},ctaLabel:e.labels?.cta??t.i18n.ctaLabel,productInfoLabel:e.labels?.productInfo,reviewLabel:e.labels?.review??(r=>`${r} reviews`),specialPriceBadgeAlt:e.labels?.specialPriceBadgeAlt??"",fields:{...Pi,...e.fields},media:e.media??{},warrantyPromotionPattern:e.warrantyPromotionPattern??/warranty/i,specialPricePattern:e.specialPricePattern??/special/i,pricing:e.pricing??t.pricing}}function Ri(e,t,r){return r.media.imageUrlTransform?.(e,t)??e}function Zi(e,t){const r=e.trim(),n=t.trim();if(!r||!n)return r;const o=r.toLocaleLowerCase().indexOf(n.toLocaleLowerCase());return o===-1?r:`${r.slice(0,o).trim()} ${r.slice(o+n.length).trim()}`.replace(/\s{2,}/g," ").replace(/(\s[-|/,:]){2,}/g,"$1").replace(/^\s*[-|/,:]\s*/,"").replace(/\s*[-|/,:]\s*$/,"").trim()||r}function Di(e,t){const r=pe(e,t.fields.customBadgeImageUrl);if(r)return{imageUrl:r,labelText:null};const n=pe(e,t.fields.customBadgeText);if(n)return{imageUrl:t.media.customBadgeImageUrl?.(e,n)??null,labelText:n};const o=Li(e,t.fields.customBadgeFacets);if(!o)return{imageUrl:null,labelText:null};const i=ar(o["Custom Badge Image"],o["Custom Label Image"],o["Bottom Label Image"],o["Corner Badge Image"],o.custom_badge_image,o.custom_label_image,o.bottom_label_image,o.corner_badge_image,o.customBadgeImage,o.customLabelImage,o.bottomLabelImage,o.cornerBadgeImage);if(i)return{imageUrl:i,labelText:null};const a=ar(o["Custom Badge"],o["Custom Label"],o["Bottom Label"],o["Corner Badge"],o.custom_badge,o.custom_label,o.bottom_label,o.corner_badge,o.customBadge,o.customLabel,o.bottomLabel,o.cornerBadge);return a?{imageUrl:t.media.customBadgeImageUrl?.(e,a)??null,labelText:a}:{imageUrl:null,labelText:null}}function V(e,t,r){const n=document.createElement(e);return n.className=t,n.textContent=r,n}function Ui(e,t,r){const n=document.createElement("div");n.className="gengage-simrel-default-card-image";let o=null;return r.length>0&&(o=document.createElement("img"),o.src=r[0],o.alt=t,o.loading="lazy",Wt(o),n.appendChild(o)),r.length>1&&o&&(n.addEventListener("mousemove",i=>{const a=n.getBoundingClientRect(),s=Math.min(Math.floor((i.clientX-a.left)/a.width*r.length),r.length-1);o?.dataset.hoverIdx!==String(s)&&(o.dataset.hoverIdx=String(s),o.src=r[s],e.querySelectorAll(".gengage-simrel-default-card-image-dot").forEach((c,u)=>c.classList.toggle("is-active",u===s)))}),n.addEventListener("mouseleave",()=>{o&&(delete o.dataset.hoverIdx,o.src=r[0],e.querySelectorAll(".gengage-simrel-default-card-image-dot").forEach((i,a)=>i.classList.toggle("is-active",a===0)))})),n}function ji(e,t){if(!e.imageUrl&&!e.labelText)return null;const r=document.createElement("div");if(r.className="gengage-simrel-default-card-custom-badge",e.imageUrl&&ve(e.imageUrl)){const n=document.createElement("img");return n.src=e.imageUrl,n.className="gengage-simrel-default-card-custom-badge-icon",n.alt=t,e.labelText&&n.addEventListener("error",()=>{r.innerHTML="",r.appendChild(V("span","gengage-simrel-default-card-custom-badge-text",e.labelText))},{once:!0}),r.appendChild(n),r}return e.labelText&&r.appendChild(V("span","gengage-simrel-default-card-custom-badge-text",e.labelText)),r}function Mi(e,t,r){if(e.length<=1||!t)return null;const n=document.createElement("div");return n.className="gengage-simrel-default-card-image-dots",e.forEach((o,i)=>{const a=document.createElement("button");a.className=`gengage-simrel-default-card-image-dot${i===0?" is-active":""}`,a.type="button",a.setAttribute("aria-label",r.labels.imageDot(i)),a.addEventListener("click",s=>{s.preventDefault(),s.stopPropagation(),t.dataset.hoverIdx=String(i),t.style.opacity="0",window.setTimeout(()=>{t.src=o,t.style.opacity="1"},50),n.querySelectorAll(".gengage-simrel-default-card-image-dot").forEach((c,u)=>c.classList.toggle("is-active",u===i))}),n.appendChild(a)}),n}function Fi(e,t,r,n){const o=e.reviewCount??0,i=e.rating??0,a=document.createElement("div");a.className="gengage-simrel-default-card-rating",o<=0&&!r.productInfoLabel&&a.classList.add("is-placeholder");const s=document.createElement("div");s.className="gengage-simrel-default-card-rating-left";const c=document.createElement("div");c.className="gengage-simrel-default-card-stars";const u=Math.max(0,Math.min(5,Math.round(i)));for(let d=1;d<=5;d+=1){const f=document.createElement("span");f.className=`gengage-simrel-default-card-star${d<=u?" is-filled":""}`,f.textContent="★",c.appendChild(f)}s.appendChild(c);const l=document.createElement("button");if(l.className="gengage-simrel-default-card-review-link",l.type="button",l.textContent=r.reviewLabel(o),l.addEventListener("click",d=>{d.preventDefault(),d.stopPropagation(),n(e)}),s.appendChild(l),a.appendChild(s),r.productInfoLabel){const d=document.createElement(t&&ht(t)?"a":"span");d.className="gengage-simrel-default-card-product-info-link",d.textContent=r.productInfoLabel,d instanceof HTMLAnchorElement&&(d.href=t,d.target="_blank",d.rel="noopener noreferrer",d.addEventListener("click",f=>f.stopPropagation())),a.appendChild(d)}return a}function Bi(e){const t=document.createElement("div");t.className="gengage-simrel-default-card-warranty-row";const r=e.length>0?e:[""];for(const n of r){const o=document.createElement("div");o.className=`gengage-simrel-default-card-warranty-badge${n?"":" is-placeholder"}`,n||o.setAttribute("aria-hidden","true"),o.textContent=n,t.appendChild(o)}return t}function Gi(e,t){const r=document.createElement("div");r.className="gengage-simrel-default-card-feature-slot";const n=document.createElement("div");if(n.className="gengage-simrel-default-card-feature-swiper",e.length===0&&n.classList.add("is-placeholder"),n.dataset.current="0",e.length>0){if(t.media.promotionIconUrl&&ht(t.media.promotionIconUrl)){const a=document.createElement("img");a.src=t.media.promotionIconUrl,a.className="gengage-simrel-default-card-feature-icon",a.alt="",n.appendChild(a)}const o=document.createElement("div");o.className="gengage-simrel-default-card-feature-content";const i=V("span","gengage-simrel-default-card-feature-text",e[0]);if(o.appendChild(i),n.appendChild(o),e.length>1){const a=document.createElement("div");a.className="gengage-simrel-default-card-feature-arrows";const s=(l,d)=>{const f=d==="next"?"slide-out-left":"slide-out-right",m=d==="next"?"prepare-from-right":"prepare-from-left";i.classList.add(f),window.setTimeout(()=>{i.classList.remove(f),i.classList.add(m),i.textContent=e[l]??"",n.dataset.current=String(l),requestAnimationFrame(()=>requestAnimationFrame(()=>i.classList.remove(m)))},250)},c=document.createElement("button");c.className="gengage-simrel-default-card-feature-prev",c.type="button",c.textContent="‹",c.setAttribute("aria-label",t.labels.previousPromotion),c.addEventListener("click",l=>{l.preventDefault(),l.stopPropagation(),s((Number.parseInt(n.dataset.current??"0",10)-1+e.length)%e.length,"prev")});const u=document.createElement("button");u.className="gengage-simrel-default-card-feature-next",u.type="button",u.textContent="›",u.setAttribute("aria-label",t.labels.nextPromotion),u.addEventListener("click",l=>{l.preventDefault(),l.stopPropagation(),s((Number.parseInt(n.dataset.current??"0",10)+1)%e.length,"next")}),a.appendChild(c),a.appendChild(u),n.appendChild(a)}}return r.appendChild(n),r}function qi(e,t,r,n,o){const i=ir(e.originalPrice),a=ir(e.price),s=a!==void 0&&i!==void 0&&a>0&&i>0&&a<i,c=document.createElement("div");c.className="gengage-simrel-default-card-price-action";const u=document.createElement("div");if(u.className="gengage-simrel-default-card-price",s){const l=o==="inline"?"gengage-simrel-default-card-price-old gengage-simrel-default-card-price-old--inline":"gengage-simrel-default-card-price-old";u.appendChild(V("span",l,fe(String(i),r.pricing)));const d=document.createElement("div");if(d.className="gengage-simrel-default-card-price-current-row",d.appendChild(V("span","gengage-simrel-default-card-price-current",fe(String(a),r.pricing))),t&&r.media.specialPriceBadgeUrl&&ve(r.media.specialPriceBadgeUrl)){const f=document.createElement("img");f.src=r.media.specialPriceBadgeUrl,f.className="gengage-simrel-default-card-special-price-badge",f.alt=r.specialPriceBadgeAlt,d.appendChild(f)}u.appendChild(d)}else{const l=i??a;u.appendChild(V("span","gengage-simrel-default-card-price-current",l!==void 0?fe(String(l),r.pricing):""))}if(c.appendChild(u),r.ctaLabel){const l=document.createElement("button");l.className="gengage-simrel-default-card-cta",l.dataset.gengagePart="simrel-product-card-cta",l.type="button",l.dataset.sku=e.sku,l.textContent=r.ctaLabel,l.addEventListener("click",d=>{d.preventDefault(),d.stopPropagation(),n(e)}),c.appendChild(l)}return c}function Ji(e,t){return e==="strike-through"||e==="badge"||e==="inline"?e:t.discountType}function ur(e){const{product:t,config:r}=e,n=Qe(t,r.fields.images).map(S=>Ri(S,t,r)).filter(ve),o=Qe(t,r.fields.promotions),i=o.filter(S=>r.warrantyPromotionPattern.test(S)),a=o.filter(S=>!r.warrantyPromotionPattern.test(S)),s=pe(t,r.fields.subtitle)??"",c=pe(t,r.fields.discountReason)??"",u=$i(Oi(t,r.fields.specialPrice))===!0||r.specialPricePattern.test(c),l=t.brand??"",d=Zi(l&&t.name.startsWith(`${l} `)?t.name.slice(l.length+1):t.name,s),f=document.createElement("article");f.className="gengage-simrel-default-card gengage-simrel-default-scope gengage-simrel-card gds-card gds-product-card gds-card-interactive",f.dataset.gengagePart="simrel-product-card",f.setAttribute("role","listitem"),f.setAttribute("tabindex","0"),f.setAttribute("aria-label",d),f.dataset.sku=t.sku,f.dataset.index=String(e.index);const m=Ui(f,d,n);f.appendChild(m);const h=m.querySelector("img"),p=document.createElement("div");p.className="gengage-simrel-default-card-meta-row";const y=ji(Di(t,r),r.labels.customBadgeAlt);y&&p.appendChild(y);const v=Mi(n,h,r);v&&p.appendChild(v),f.appendChild(p);const I=document.createElement("div");return I.className="gengage-simrel-default-card-info",I.dataset.gengagePart="simrel-product-card-body",I.appendChild(V("h3","gengage-simrel-default-card-title",d)),s&&I.appendChild(V("p","gengage-simrel-default-card-subtitle",s)),I.appendChild(Fi(t,pe(t,r.fields.productInfoUrl),r,e.context.onClick)),I.appendChild(Bi([...Qe(t,r.fields.warranties),...i])),I.appendChild(Gi(a,r)),f.appendChild(I),f.appendChild(qi(t,u,r,e.context.onClick,e.context.discountType)),f.addEventListener("click",S=>{(S.target instanceof HTMLElement?S.target:null)?.closest("button, a")||e.context.onClick(t)}),f.addEventListener("keydown",S=>{if(S.key!=="Enter"&&S.key!==" ")return;const b=S.target instanceof HTMLElement?S.target:null;b&&b!==f||(S.preventDefault(),e.context.onClick(t))}),f}function Vi(e,t){const r=sr(e.element.props?.product??e.element.props);if(!r)return null;const n=e.element.props?.index,o=typeof n=="number"&&Number.isFinite(n)?n:0,i=Ji(e.element.props?.discountType,e.context);return ur({product:r,index:o,context:i===e.context.discountType?e.context:{...e.context,...i!==void 0?{discountType:i}:{}},config:cr(t,e.context)})}function Wi(e){const t=document.createElement("div");t.className="gengage-simrel-grid gengage-simrel-default-grid gengage-simrel-default-scope",t.setAttribute("role","list");const r=e.element.props?.columns;let n;typeof r=="number"&&Number.isFinite(r)&&r>0?n=Math.floor(r):typeof e.context.gridColumns=="number"&&Number.isFinite(e.context.gridColumns)&&e.context.gridColumns>0&&(n=Math.floor(e.context.gridColumns)),n!==void 0&&t.style.setProperty("--gengage-simrel-columns",String(n));for(const o of e.element.children??[]){const i=e.renderElement(o);i&&t.appendChild(i)}if(t.children.length===0){const o=document.createElement("div");o.className="gengage-simrel-empty",o.textContent=e.context.i18n.emptyStateMessage,t.appendChild(o)}return t}function Hi(e,t){const r=e.element.props?.groups;if(!Array.isArray(r))return null;const n=r.map(Ni).filter(c=>!!c),o=e.element.props?.columns,i=cr(t,e.context),a=(c,u)=>ur({product:c,index:u,context:e.context,config:i}),s=Yt({groups:n,onClick:e.context.onClick,onAddToCart:e.context.onAddToCart,renderCardElement:a,i18n:e.context.i18n,...e.context.discountType!==void 0?{discountType:e.context.discountType}:{},...e.context.onGroupingActivate!==void 0?{onGroupingActivate:e.context.onGroupingActivate}:{},...typeof o=="number"&&Number.isFinite(o)&&o>0?{columns:Math.floor(o)}:e.context.gridColumns!==void 0?{columns:e.context.gridColumns}:{}});return s.classList.add("gengage-simrel-default-groups","gengage-simrel-default-scope"),s}function Ki(e={}){return{registry:{ProductGrid:t=>Wi(t),ProductCard:t=>Vi(t,e),GroupTabs:t=>Hi(t,e)}}}var lr;function g(e,t,r){function n(s,c){if(s._zod||Object.defineProperty(s,"_zod",{value:{def:c,constr:a,traits:new Set},enumerable:!1}),s._zod.traits.has(e))return;s._zod.traits.add(e),t(s,c);const u=a.prototype,l=Object.keys(u);for(let d=0;d<l.length;d++){const f=l[d];f in s||(s[f]=u[f].bind(s))}}const o=r?.Parent??Object;class i extends o{}Object.defineProperty(i,"name",{value:e});function a(s){var c;const u=r?.Parent?new i:this;n(u,s),(c=u._zod).deferred??(c.deferred=[]);for(const l of u._zod.deferred)l();return u}return Object.defineProperty(a,"init",{value:n}),Object.defineProperty(a,Symbol.hasInstance,{value:s=>r?.Parent&&s instanceof r.Parent?!0:s?._zod?.traits?.has(e)}),Object.defineProperty(a,"name",{value:e}),a}var ne=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},dr=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}};(lr=globalThis).__zod_globalConfig??(lr.__zod_globalConfig={});var Ce=globalThis.__zod_globalConfig;function Q(e){return e&&Object.assign(Ce,e),Ce}function fr(e){const t=Object.values(e).filter(r=>typeof r=="number");return Object.entries(e).filter(([r,n])=>t.indexOf(+r)===-1).map(([r,n])=>n)}function et(e,t){return typeof t=="bigint"?t.toString():t}function tt(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}throw new Error("cached value already set")}}}function rt(e){return e==null}function nt(e){const t=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(t,r)}function Yi(e,t){const r=e/t,n=Math.round(r),o=Number.EPSILON*Math.max(Math.abs(r),1);return Math.abs(r-n)<o?0:r-n}var pr=Symbol("evaluating");function E(e,t,r){let n;Object.defineProperty(e,t,{get(){if(n!==pr)return n===void 0&&(n=pr,n=r()),n},set(o){Object.defineProperty(e,t,{value:o})},configurable:!0})}function ee(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function W(...e){const t={};for(const r of e)Object.assign(t,Object.getOwnPropertyDescriptors(r));return Object.defineProperties({},t)}function gr(e){return JSON.stringify(e)}function Xi(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var mr="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function Te(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Qi=tt(()=>{if(Ce.jitless||typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch{return!1}});function ge(e){if(Te(e)===!1)return!1;const t=e.constructor;if(t===void 0||typeof t!="function")return!0;const r=t.prototype;return!(Te(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function hr(e){return ge(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}var ea=new Set(["string","number","symbol"]);function xe(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function H(e,t,r){const n=new e._zod.constr(t??e._zod.def);return(!t||r?.parent)&&(n._zod.parent=e),n}function _(e){const t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function ta(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}var ra={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function na(e,t){const r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");return H(e,W(e._zod.def,{get shape(){const o={};for(const i in t){if(!(i in r.shape))throw new Error(`Unrecognized key: "${i}"`);t[i]&&(o[i]=r.shape[i])}return ee(this,"shape",o),o},checks:[]}))}function oa(e,t){const r=e._zod.def,n=r.checks;if(n&&n.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");return H(e,W(e._zod.def,{get shape(){const o={...e._zod.def.shape};for(const i in t){if(!(i in r.shape))throw new Error(`Unrecognized key: "${i}"`);t[i]&&delete o[i]}return ee(this,"shape",o),o},checks:[]}))}function ia(e,t){if(!ge(t))throw new Error("Invalid input to extend: expected a plain object");const r=e._zod.def.checks;if(r&&r.length>0){const n=e._zod.def.shape;for(const o in t)if(Object.getOwnPropertyDescriptor(n,o)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return H(e,W(e._zod.def,{get shape(){const n={...e._zod.def.shape,...t};return ee(this,"shape",n),n}}))}function aa(e,t){if(!ge(t))throw new Error("Invalid input to safeExtend: expected a plain object");return H(e,W(e._zod.def,{get shape(){const r={...e._zod.def.shape,...t};return ee(this,"shape",r),r}}))}function sa(e,t){if(e._zod.def.checks?.length)throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");return H(e,W(e._zod.def,{get shape(){const r={...e._zod.def.shape,...t._zod.def.shape};return ee(this,"shape",r),r},get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]}))}function ca(e,t,r){const n=t._zod.def.checks;if(n&&n.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");return H(t,W(t._zod.def,{get shape(){const o=t._zod.def.shape,i={...o};if(r)for(const a in r){if(!(a in o))throw new Error(`Unrecognized key: "${a}"`);r[a]&&(i[a]=e?new e({type:"optional",innerType:o[a]}):o[a])}else for(const a in o)i[a]=e?new e({type:"optional",innerType:o[a]}):o[a];return ee(this,"shape",i),i},checks:[]}))}function ua(e,t,r){return H(t,W(t._zod.def,{get shape(){const n=t._zod.def.shape,o={...n};if(r)for(const i in r){if(!(i in o))throw new Error(`Unrecognized key: "${i}"`);r[i]&&(o[i]=new e({type:"nonoptional",innerType:n[i]}))}else for(const i in n)o[i]=new e({type:"nonoptional",innerType:n[i]});return ee(this,"shape",o),o}}))}function oe(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(e.issues[r]?.continue!==!0)return!0;return!1}function la(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r<e.issues.length;r++)if(e.issues[r]?.continue===!1)return!0;return!1}function yr(e,t){return t.map(r=>{var n;return(n=r).path??(n.path=[]),r.path.unshift(e),r})}function Ae(e){return typeof e=="string"?e:e?.message}function te(e,t,r){const n=e.message?e.message:Ae(e.inst?._zod.def?.error?.(e))??Ae(t?.error?.(e))??Ae(r.customError?.(e))??Ae(r.localeError?.(e))??"Invalid input",{inst:o,continue:i,input:a,...s}=e;return s.path??(s.path=[]),s.message=n,t?.reportInput&&(s.input=a),s}function ot(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function me(...e){const[t,r,n]=e;return typeof t=="string"?{message:t,code:"custom",input:r,inst:n}:{...t}}var _r=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,et,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},vr=g("$ZodError",_r),br=g("$ZodError",_r,{Parent:Error});function da(e,t=r=>r.message){const r={},n=[];for(const o of e.issues)o.path.length>0?(r[o.path[0]]=r[o.path[0]]||[],r[o.path[0]].push(t(o))):n.push(t(o));return{formErrors:n,fieldErrors:r}}function fa(e,t=r=>r.message){const r={_errors:[]},n=(o,i=[])=>{for(const a of o.issues)if(a.code==="invalid_union"&&a.errors.length)a.errors.map(s=>n({issues:s},[...i,...a.path]));else if(a.code==="invalid_key")n({issues:a.issues},[...i,...a.path]);else if(a.code==="invalid_element")n({issues:a.issues},[...i,...a.path]);else{const s=[...i,...a.path];if(s.length===0)r._errors.push(t(a));else{let c=r,u=0;for(;u<s.length;){const l=s[u];u!==s.length-1?c[l]=c[l]||{_errors:[]}:(c[l]=c[l]||{_errors:[]},c[l]._errors.push(t(a))),c=c[l],u++}}}};return n(e),r}var it=e=>(t,r,n,o)=>{const i=n?{...n,async:!1}:{async:!1},a=t._zod.run({value:r,issues:[]},i);if(a instanceof Promise)throw new ne;if(a.issues.length){const s=new(o?.Err??e)(a.issues.map(c=>te(c,i,Q())));throw mr(s,o?.callee),s}return a.value},at=e=>async(t,r,n,o)=>{const i=n?{...n,async:!0}:{async:!0};let a=t._zod.run({value:r,issues:[]},i);if(a instanceof Promise&&(a=await a),a.issues.length){const s=new(o?.Err??e)(a.issues.map(c=>te(c,i,Q())));throw mr(s,o?.callee),s}return a.value},ze=e=>(t,r,n)=>{const o=n?{...n,async:!1}:{async:!1},i=t._zod.run({value:r,issues:[]},o);if(i instanceof Promise)throw new ne;return i.issues.length?{success:!1,error:new(e??vr)(i.issues.map(a=>te(a,o,Q())))}:{success:!0,data:i.value}},pa=ze(br),Ie=e=>async(t,r,n)=>{const o=n?{...n,async:!0}:{async:!0};let i=t._zod.run({value:r,issues:[]},o);return i instanceof Promise&&(i=await i),i.issues.length?{success:!1,error:new e(i.issues.map(a=>te(a,o,Q())))}:{success:!0,data:i.value}},ga=Ie(br),ma=e=>(t,r,n)=>{const o=n?{...n,direction:"backward"}:{direction:"backward"};return it(e)(t,r,o)},ha=e=>(t,r,n)=>it(e)(t,r,n),ya=e=>async(t,r,n)=>{const o=n?{...n,direction:"backward"}:{direction:"backward"};return at(e)(t,r,o)},_a=e=>async(t,r,n)=>at(e)(t,r,n),va=e=>(t,r,n)=>{const o=n?{...n,direction:"backward"}:{direction:"backward"};return ze(e)(t,r,o)},ba=e=>(t,r,n)=>ze(e)(t,r,n),wa=e=>async(t,r,n)=>{const o=n?{...n,direction:"backward"}:{direction:"backward"};return Ie(e)(t,r,o)},ka=e=>async(t,r,n)=>Ie(e)(t,r,n),Sa=/^[cC][0-9a-z]{6,}$/,Ea=/^[0-9a-z]+$/,Ca=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Ta=/^[0-9a-vA-V]{20}$/,xa=/^[A-Za-z0-9]{27}$/,Aa=/^[a-zA-Z0-9_-]{21}$/,za=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Ia=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,wr=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/,Pa=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,$a="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function Na(){return new RegExp($a,"u")}var Oa=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,La=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/,Ra=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Za=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Da=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,kr=/^[A-Za-z0-9_-]*$/,Ua=/^https?$/,ja=/^\+[1-9]\d{6,14}$/,Sr="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",Ma=new RegExp(`^${Sr}$`);function Er(e){const t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function Fa(e){return new RegExp(`^${Er(e)}$`)}function Ba(e){const t=Er({precision:e.precision}),r=["Z"];e.local&&r.push(""),e.offset&&r.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");const n=`${t}(?:${r.join("|")})`;return new RegExp(`^${Sr}T(?:${n})$`)}var Ga=e=>{const t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},qa=/^-?\d+$/,Ja=/^-?\d+(?:\.\d+)?$/,Va=/^[^A-Z]*$/,Wa=/^[^a-z]*$/,O=g("$ZodCheck",(e,t)=>{var r;e._zod??(e._zod={}),e._zod.def=t,(r=e._zod).onattach??(r.onattach=[])}),Cr={number:"number",bigint:"bigint",object:"date"},Tr=g("$ZodCheckLessThan",(e,t)=>{O.init(e,t);const r=Cr[typeof t.value];e._zod.onattach.push(n=>{const o=n._zod.bag,i=(t.inclusive?o.maximum:o.exclusiveMaximum)??Number.POSITIVE_INFINITY;t.value<i&&(t.inclusive?o.maximum=t.value:o.exclusiveMaximum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value<=t.value:n.value<t.value)||n.issues.push({origin:r,code:"too_big",maximum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),xr=g("$ZodCheckGreaterThan",(e,t)=>{O.init(e,t);const r=Cr[typeof t.value];e._zod.onattach.push(n=>{const o=n._zod.bag,i=(t.inclusive?o.minimum:o.exclusiveMinimum)??Number.NEGATIVE_INFINITY;t.value>i&&(t.inclusive?o.minimum=t.value:o.exclusiveMinimum=t.value)}),e._zod.check=n=>{(t.inclusive?n.value>=t.value:n.value>t.value)||n.issues.push({origin:r,code:"too_small",minimum:typeof t.value=="object"?t.value.getTime():t.value,input:n.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),Ha=g("$ZodCheckMultipleOf",(e,t)=>{O.init(e,t),e._zod.onattach.push(r=>{var n;(n=r._zod.bag).multipleOf??(n.multipleOf=t.value)}),e._zod.check=r=>{if(typeof r.value!=typeof t.value)throw new Error("Cannot mix number and bigint in multiple_of check.");(typeof r.value=="bigint"?r.value%t.value===BigInt(0):Yi(r.value,t.value)===0)||r.issues.push({origin:typeof r.value,code:"not_multiple_of",divisor:t.value,input:r.value,inst:e,continue:!t.abort})}}),Ka=g("$ZodCheckNumberFormat",(e,t)=>{O.init(e,t),t.format=t.format||"float64";const r=t.format?.includes("int"),n=r?"int":"number",[o,i]=ra[t.format];e._zod.onattach.push(a=>{const s=a._zod.bag;s.format=t.format,s.minimum=o,s.maximum=i,r&&(s.pattern=qa)}),e._zod.check=a=>{const s=a.value;if(r){if(!Number.isInteger(s)){a.issues.push({expected:n,format:t.format,code:"invalid_type",continue:!1,input:s,inst:e});return}if(!Number.isSafeInteger(s)){s>0?a.issues.push({input:s,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort}):a.issues.push({input:s,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:n,inclusive:!0,continue:!t.abort});return}}s<o&&a.issues.push({origin:"number",input:s,code:"too_small",minimum:o,inclusive:!0,inst:e,continue:!t.abort}),s>i&&a.issues.push({origin:"number",input:s,code:"too_big",maximum:i,inclusive:!0,inst:e,continue:!t.abort})}}),Ya=g("$ZodCheckMaxLength",(e,t)=>{var r;O.init(e,t),(r=e._zod.def).when??(r.when=n=>{const o=n.value;return!rt(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{const o=n._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum<o&&(n._zod.bag.maximum=t.maximum)}),e._zod.check=n=>{const o=n.value;if(o.length<=t.maximum)return;const i=ot(o);n.issues.push({origin:i,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Xa=g("$ZodCheckMinLength",(e,t)=>{var r;O.init(e,t),(r=e._zod.def).when??(r.when=n=>{const o=n.value;return!rt(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{const o=n._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>o&&(n._zod.bag.minimum=t.minimum)}),e._zod.check=n=>{const o=n.value;if(o.length>=t.minimum)return;const i=ot(o);n.issues.push({origin:i,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Qa=g("$ZodCheckLengthEquals",(e,t)=>{var r;O.init(e,t),(r=e._zod.def).when??(r.when=n=>{const o=n.value;return!rt(o)&&o.length!==void 0}),e._zod.onattach.push(n=>{const o=n._zod.bag;o.minimum=t.length,o.maximum=t.length,o.length=t.length}),e._zod.check=n=>{const o=n.value,i=o.length;if(i===t.length)return;const a=ot(o),s=i>t.length;n.issues.push({origin:a,...s?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:n.value,inst:e,continue:!t.abort})}}),Pe=g("$ZodCheckStringFormat",(e,t)=>{var r,n;O.init(e,t),e._zod.onattach.push(o=>{const i=o._zod.bag;i.format=t.format,t.pattern&&(i.patterns??(i.patterns=new Set),i.patterns.add(t.pattern))}),t.pattern?(r=e._zod).check??(r.check=o=>{t.pattern.lastIndex=0,!t.pattern.test(o.value)&&o.issues.push({origin:"string",code:"invalid_format",format:t.format,input:o.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(n=e._zod).check??(n.check=()=>{})}),es=g("$ZodCheckRegex",(e,t)=>{Pe.init(e,t),e._zod.check=r=>{t.pattern.lastIndex=0,!t.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),ts=g("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Va),Pe.init(e,t)}),rs=g("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=Wa),Pe.init(e,t)}),ns=g("$ZodCheckIncludes",(e,t)=>{O.init(e,t);const r=xe(t.includes),n=new RegExp(typeof t.position=="number"?`^.{${t.position}}${r}`:r);t.pattern=n,e._zod.onattach.push(o=>{const i=o._zod.bag;i.patterns??(i.patterns=new Set),i.patterns.add(n)}),e._zod.check=o=>{o.value.includes(t.includes,t.position)||o.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:o.value,inst:e,continue:!t.abort})}}),os=g("$ZodCheckStartsWith",(e,t)=>{O.init(e,t);const r=new RegExp(`^${xe(t.prefix)}.*`);t.pattern??(t.pattern=r),e._zod.onattach.push(n=>{const o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),e._zod.check=n=>{n.value.startsWith(t.prefix)||n.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:n.value,inst:e,continue:!t.abort})}}),is=g("$ZodCheckEndsWith",(e,t)=>{O.init(e,t);const r=new RegExp(`.*${xe(t.suffix)}$`);t.pattern??(t.pattern=r),e._zod.onattach.push(n=>{const o=n._zod.bag;o.patterns??(o.patterns=new Set),o.patterns.add(r)}),e._zod.check=n=>{n.value.endsWith(t.suffix)||n.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:n.value,inst:e,continue:!t.abort})}}),as=g("$ZodCheckOverwrite",(e,t)=>{O.init(e,t),e._zod.check=r=>{r.value=t.tx(r.value)}}),ss=class{constructor(e=[]){this.content=[],this.indent=0,this&&(this.args=e)}indented(e){this.indent+=1,e(this),this.indent-=1}write(e){if(typeof e=="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}const t=e.split(`
49
49
  `).filter(o=>o),r=Math.min(...t.map(o=>o.length-o.trimStart().length)),n=t.map(o=>o.slice(r)).map(o=>" ".repeat(this.indent*2)+o);for(const o of n)this.content.push(o)}compile(){const e=Function,t=this?.args,r=[...(this?.content??[""]).map(n=>` ${n}`)];return new e(...t,r.join(`
50
- `))}},ia={major:4,minor:4,patch:3},x=g("$ZodType",(e,t)=>{var r;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=ia;const n=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&n.unshift(e);for(const o of n)for(const i of o._zod.onattach)i(e);if(n.length===0)(r=e._zod).deferred??(r.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{const o=(s,a,c)=>{let u=oe(s),l;for(const d of a){if(d._zod.def.when){if(as(s)||!d._zod.def.when(s))continue}else if(u)continue;const f=s.issues.length,m=d._zod.check(s);if(m instanceof Promise&&c?.async===!1)throw new ne;if(l||m instanceof Promise)l=(l??Promise.resolve()).then(async()=>{await m,s.issues.length!==f&&(u||(u=oe(s,f)))});else{if(s.issues.length===f)continue;u||(u=oe(s,f))}}return l?l.then(()=>s):s},i=(s,a,c)=>{if(oe(s))return s.aborted=!0,s;const u=o(a,n,c);if(u instanceof Promise){if(c.async===!1)throw new ne;return u.then(l=>e._zod.parse(l,c))}return e._zod.parse(u,c)};e._zod.run=(s,a)=>{if(a.skipChecks)return e._zod.parse(s,a);if(a.direction==="backward"){const u=e._zod.parse({value:s.value,issues:[]},{...a,skipChecks:!0});return u instanceof Promise?u.then(l=>i(l,s,a)):i(u,s,a)}const c=e._zod.parse(s,a);if(c instanceof Promise){if(a.async===!1)throw new ne;return c.then(u=>o(u,n,a))}return o(c,n,a)}}E(e,"~standard",()=>({validate:o=>{try{const i=ls(e,o);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return ds(e,o).then(s=>s.success?{value:s.data}:{issues:s.error?.issues})}},vendor:"zod",version:1}))}),st=g("$ZodString",(e,t)=>{x.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??Ms(e._zod.bag),e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:e}),r}}),C=g("$ZodStringFormat",(e,t)=>{Ie.init(e,t),st.init(e,t)}),sa=g("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=xs),C.init(e,t)}),aa=g("$ZodUUID",(e,t)=>{if(t.version){const r={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(r===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=yr(r))}else t.pattern??(t.pattern=yr());C.init(e,t)}),ca=g("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=zs),C.init(e,t)}),ua=g("$ZodURL",(e,t)=>{C.init(e,t),e._zod.check=r=>{try{const n=r.value.trim();if(!t.normalize&&t.protocol?.source===Rs.source&&!/^https?:\/\//i.test(n)){r.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:r.value,inst:e,continue:!t.abort});return}const o=new URL(n);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(o.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:r.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(o.protocol.endsWith(":")?o.protocol.slice(0,-1):o.protocol)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:r.value,inst:e,continue:!t.abort})),t.normalize?r.value=o.href:r.value=n;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:e,continue:!t.abort})}}}),la=g("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=Is()),C.init(e,t)}),da=g("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=Cs),C.init(e,t)}),fa=g("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=bs),C.init(e,t)}),pa=g("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=ws),C.init(e,t)}),ga=g("$ZodULID",(e,t)=>{t.pattern??(t.pattern=ks),C.init(e,t)}),ma=g("$ZodXID",(e,t)=>{t.pattern??(t.pattern=Ss),C.init(e,t)}),ha=g("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=Es),C.init(e,t)}),ya=g("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=js(t)),C.init(e,t)}),_a=g("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=Ds),C.init(e,t)}),va=g("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=Us(t)),C.init(e,t)}),ba=g("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=Ts),C.init(e,t)}),wa=g("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=Ps),C.init(e,t),e._zod.bag.format="ipv4"}),ka=g("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=$s),C.init(e,t),e._zod.bag.format="ipv6",e._zod.check=r=>{try{new URL(`http://[${r.value}]`)}catch{r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:e,continue:!t.abort})}}}),Sa=g("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=Ns),C.init(e,t)}),Ea=g("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=Os),C.init(e,t),e._zod.check=r=>{const n=r.value.split("/");try{if(n.length!==2)throw new Error;const[o,i]=n;if(!i)throw new Error;const s=Number(i);if(`${s}`!==i)throw new Error;if(s<0||s>128)throw new Error;new URL(`http://[${o}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:e,continue:!t.abort})}}});function Er(e){if(e==="")return!0;if(/\s/.test(e)||e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}var Ca=g("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=Ls),C.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=r=>{Er(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:e,continue:!t.abort})}});function Ta(e){if(!_r.test(e))return!1;const t=e.replace(/[-_]/g,r=>r==="-"?"+":"/");return Er(t.padEnd(Math.ceil(t.length/4)*4,"="))}var xa=g("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=_r),C.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=r=>{Ta(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:e,continue:!t.abort})}}),za=g("$ZodE164",(e,t)=>{t.pattern??(t.pattern=Zs),C.init(e,t)});function Aa(e,t=null){try{const r=e.split(".");if(r.length!==3)return!1;const[n]=r;if(!n)return!1;const o=JSON.parse(atob(n));return!("typ"in o&&o?.typ!=="JWT"||!o.alg||t&&(!("alg"in o)||o.alg!==t))}catch{return!1}}var Ia=g("$ZodJWT",(e,t)=>{C.init(e,t),e._zod.check=r=>{Aa(r.value,t.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:e,continue:!t.abort})}}),Cr=g("$ZodNumber",(e,t)=>{x.init(e,t),e._zod.pattern=e._zod.bag.pattern??Bs,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=Number(r.value)}catch{}const o=r.value;if(typeof o=="number"&&!Number.isNaN(o)&&Number.isFinite(o))return r;const i=typeof o=="number"?Number.isNaN(o)?"NaN":Number.isFinite(o)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:o,inst:e,...i?{received:i}:{}}),r}}),Pa=g("$ZodNumberFormat",(e,t)=>{Vs.init(e,t),Cr.init(e,t)}),$a=g("$ZodUnknown",(e,t)=>{x.init(e,t),e._zod.parse=r=>r}),Na=g("$ZodNever",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:e}),r)});function Tr(e,t,r){e.issues.length&&t.issues.push(...pr(r,e.issues)),t.value[r]=e.value}var Oa=g("$ZodArray",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{const o=r.value;if(!Array.isArray(o))return r.issues.push({expected:"array",code:"invalid_type",input:o,inst:e}),r;r.value=Array(o.length);const i=[];for(let s=0;s<o.length;s++){const a=o[s],c=t.element._zod.run({value:a,issues:[]},n);c instanceof Promise?i.push(c.then(u=>Tr(u,r,s))):Tr(c,r,s)}return i.length?Promise.all(i).then(()=>r):r}});function Pe(e,t,r,n,o,i){const s=r in n;if(e.issues.length){if(o&&i&&!s)return;t.issues.push(...pr(r,e.issues))}if(!s&&!o){e.issues.length||t.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[r]});return}e.value===void 0?s&&(t.value[r]=void 0):t.value[r]=e.value}function xr(e){const t=Object.keys(e.shape);for(const n of t)if(!e.shape?.[n]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${n}": expected a Zod schema`);const r=Xi(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(r)}}function zr(e,t,r,n,o,i){const s=[],a=o.keySet,c=o.catchall._zod,u=c.def.type,l=c.optin==="optional",d=c.optout==="optional";for(const f in t){if(f==="__proto__"||a.has(f))continue;if(u==="never"){s.push(f);continue}const m=c.run({value:t[f],issues:[]},n);m instanceof Promise?e.push(m.then(h=>Pe(h,r,f,t,l,d))):Pe(m,r,f,t,l,d)}return s.length&&r.issues.push({code:"unrecognized_keys",keys:s,input:t,inst:i}),e.length?Promise.all(e).then(()=>r):r}var La=g("$ZodObject",(e,t)=>{if(x.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){const s=t.shape;Object.defineProperty(t,"shape",{get:()=>{const a={...s};return Object.defineProperty(t,"shape",{value:a}),a}})}const r=et(()=>xr(t));E(e._zod,"propValues",()=>{const s=t.shape,a={};for(const c in s){const u=s[c]._zod;if(u.values){a[c]??(a[c]=new Set);for(const l of u.values)a[c].add(l)}}return a});const n=Ce,o=t.catchall;let i;e._zod.parse=(s,a)=>{i??(i=r.value);const c=s.value;if(!n(c))return s.issues.push({expected:"object",code:"invalid_type",input:c,inst:e}),s;s.value={};const u=[],l=i.shape;for(const d of i.keys){const f=l[d],m=f._zod.optin==="optional",h=f._zod.optout==="optional",p=f._zod.run({value:c[d],issues:[]},a);p instanceof Promise?u.push(p.then(y=>Pe(y,s,d,c,m,h))):Pe(p,s,d,c,m,h)}return o?zr(u,c,s,a,r.value,e):u.length?Promise.all(u).then(()=>s):s}}),Ra=g("$ZodObjectJIT",(e,t)=>{La.init(e,t);const r=e._zod.parse,n=et(()=>xr(t)),o=f=>{const m=new oa(["shape","payload","ctx"]),h=n.value,p=S=>{const b=lr(S);return`shape[${b}]._zod.run({ value: input[${b}], issues: [] }, ctx)`};m.write("const input = payload.value;");const y=Object.create(null);let v=0;for(const S of h.keys)y[S]=`key_${v++}`;m.write("const newResult = {};");for(const S of h.keys){const b=y[S],w=lr(S),P=f[S],M=P?._zod?.optin==="optional",Al=P?._zod?.optout==="optional";m.write(`const ${b} = ${p(S)};`),M&&Al?m.write(`
50
+ `))}},cs={major:4,minor:4,patch:3},x=g("$ZodType",(e,t)=>{var r;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=cs;const n=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&n.unshift(e);for(const o of n)for(const i of o._zod.onattach)i(e);if(n.length===0)(r=e._zod).deferred??(r.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{const o=(a,s,c)=>{let u=oe(a),l;for(const d of s){if(d._zod.def.when){if(la(a)||!d._zod.def.when(a))continue}else if(u)continue;const f=a.issues.length,m=d._zod.check(a);if(m instanceof Promise&&c?.async===!1)throw new ne;if(l||m instanceof Promise)l=(l??Promise.resolve()).then(async()=>{await m,a.issues.length!==f&&(u||(u=oe(a,f)))});else{if(a.issues.length===f)continue;u||(u=oe(a,f))}}return l?l.then(()=>a):a},i=(a,s,c)=>{if(oe(a))return a.aborted=!0,a;const u=o(s,n,c);if(u instanceof Promise){if(c.async===!1)throw new ne;return u.then(l=>e._zod.parse(l,c))}return e._zod.parse(u,c)};e._zod.run=(a,s)=>{if(s.skipChecks)return e._zod.parse(a,s);if(s.direction==="backward"){const u=e._zod.parse({value:a.value,issues:[]},{...s,skipChecks:!0});return u instanceof Promise?u.then(l=>i(l,a,s)):i(u,a,s)}const c=e._zod.parse(a,s);if(c instanceof Promise){if(s.async===!1)throw new ne;return c.then(u=>o(u,n,s))}return o(c,n,s)}}E(e,"~standard",()=>({validate:o=>{try{const i=pa(e,o);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return ga(e,o).then(a=>a.success?{value:a.data}:{issues:a.error?.issues})}},vendor:"zod",version:1}))}),st=g("$ZodString",(e,t)=>{x.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??Ga(e._zod.bag),e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:e}),r}}),C=g("$ZodStringFormat",(e,t)=>{Pe.init(e,t),st.init(e,t)}),us=g("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=Ia),C.init(e,t)}),ls=g("$ZodUUID",(e,t)=>{if(t.version){const r={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(r===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=wr(r))}else t.pattern??(t.pattern=wr());C.init(e,t)}),ds=g("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=Pa),C.init(e,t)}),fs=g("$ZodURL",(e,t)=>{C.init(e,t),e._zod.check=r=>{try{const n=r.value.trim();if(!t.normalize&&t.protocol?.source===Ua.source&&!/^https?:\/\//i.test(n)){r.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:r.value,inst:e,continue:!t.abort});return}const o=new URL(n);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(o.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:r.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(o.protocol.endsWith(":")?o.protocol.slice(0,-1):o.protocol)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:r.value,inst:e,continue:!t.abort})),t.normalize?r.value=o.href:r.value=n;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:e,continue:!t.abort})}}}),ps=g("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=Na()),C.init(e,t)}),gs=g("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=Aa),C.init(e,t)}),ms=g("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=Sa),C.init(e,t)}),hs=g("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=Ea),C.init(e,t)}),ys=g("$ZodULID",(e,t)=>{t.pattern??(t.pattern=Ca),C.init(e,t)}),_s=g("$ZodXID",(e,t)=>{t.pattern??(t.pattern=Ta),C.init(e,t)}),vs=g("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=xa),C.init(e,t)}),bs=g("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=Ba(t)),C.init(e,t)}),ws=g("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=Ma),C.init(e,t)}),ks=g("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=Fa(t)),C.init(e,t)}),Ss=g("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=za),C.init(e,t)}),Es=g("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=Oa),C.init(e,t),e._zod.bag.format="ipv4"}),Cs=g("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=La),C.init(e,t),e._zod.bag.format="ipv6",e._zod.check=r=>{try{new URL(`http://[${r.value}]`)}catch{r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:e,continue:!t.abort})}}}),Ts=g("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=Ra),C.init(e,t)}),xs=g("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=Za),C.init(e,t),e._zod.check=r=>{const n=r.value.split("/");try{if(n.length!==2)throw new Error;const[o,i]=n;if(!i)throw new Error;const a=Number(i);if(`${a}`!==i)throw new Error;if(a<0||a>128)throw new Error;new URL(`http://[${o}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:e,continue:!t.abort})}}});function Ar(e){if(e==="")return!0;if(/\s/.test(e)||e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}var As=g("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=Da),C.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=r=>{Ar(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:e,continue:!t.abort})}});function zs(e){if(!kr.test(e))return!1;const t=e.replace(/[-_]/g,r=>r==="-"?"+":"/");return Ar(t.padEnd(Math.ceil(t.length/4)*4,"="))}var Is=g("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=kr),C.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=r=>{zs(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:e,continue:!t.abort})}}),Ps=g("$ZodE164",(e,t)=>{t.pattern??(t.pattern=ja),C.init(e,t)});function $s(e,t=null){try{const r=e.split(".");if(r.length!==3)return!1;const[n]=r;if(!n)return!1;const o=JSON.parse(atob(n));return!("typ"in o&&o?.typ!=="JWT"||!o.alg||t&&(!("alg"in o)||o.alg!==t))}catch{return!1}}var Ns=g("$ZodJWT",(e,t)=>{C.init(e,t),e._zod.check=r=>{$s(r.value,t.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:e,continue:!t.abort})}}),zr=g("$ZodNumber",(e,t)=>{x.init(e,t),e._zod.pattern=e._zod.bag.pattern??Ja,e._zod.parse=(r,n)=>{if(t.coerce)try{r.value=Number(r.value)}catch{}const o=r.value;if(typeof o=="number"&&!Number.isNaN(o)&&Number.isFinite(o))return r;const i=typeof o=="number"?Number.isNaN(o)?"NaN":Number.isFinite(o)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:o,inst:e,...i?{received:i}:{}}),r}}),Os=g("$ZodNumberFormat",(e,t)=>{Ka.init(e,t),zr.init(e,t)}),Ls=g("$ZodUnknown",(e,t)=>{x.init(e,t),e._zod.parse=r=>r}),Rs=g("$ZodNever",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:e}),r)});function Ir(e,t,r){e.issues.length&&t.issues.push(...yr(r,e.issues)),t.value[r]=e.value}var Zs=g("$ZodArray",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{const o=r.value;if(!Array.isArray(o))return r.issues.push({expected:"array",code:"invalid_type",input:o,inst:e}),r;r.value=Array(o.length);const i=[];for(let a=0;a<o.length;a++){const s=o[a],c=t.element._zod.run({value:s,issues:[]},n);c instanceof Promise?i.push(c.then(u=>Ir(u,r,a))):Ir(c,r,a)}return i.length?Promise.all(i).then(()=>r):r}});function $e(e,t,r,n,o,i){const a=r in n;if(e.issues.length){if(o&&i&&!a)return;t.issues.push(...yr(r,e.issues))}if(!a&&!o){e.issues.length||t.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[r]});return}e.value===void 0?a&&(t.value[r]=void 0):t.value[r]=e.value}function Pr(e){const t=Object.keys(e.shape);for(const n of t)if(!e.shape?.[n]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${n}": expected a Zod schema`);const r=ta(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(r)}}function $r(e,t,r,n,o,i){const a=[],s=o.keySet,c=o.catchall._zod,u=c.def.type,l=c.optin==="optional",d=c.optout==="optional";for(const f in t){if(f==="__proto__"||s.has(f))continue;if(u==="never"){a.push(f);continue}const m=c.run({value:t[f],issues:[]},n);m instanceof Promise?e.push(m.then(h=>$e(h,r,f,t,l,d))):$e(m,r,f,t,l,d)}return a.length&&r.issues.push({code:"unrecognized_keys",keys:a,input:t,inst:i}),e.length?Promise.all(e).then(()=>r):r}var Ds=g("$ZodObject",(e,t)=>{if(x.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){const a=t.shape;Object.defineProperty(t,"shape",{get:()=>{const s={...a};return Object.defineProperty(t,"shape",{value:s}),s}})}const r=tt(()=>Pr(t));E(e._zod,"propValues",()=>{const a=t.shape,s={};for(const c in a){const u=a[c]._zod;if(u.values){s[c]??(s[c]=new Set);for(const l of u.values)s[c].add(l)}}return s});const n=Te,o=t.catchall;let i;e._zod.parse=(a,s)=>{i??(i=r.value);const c=a.value;if(!n(c))return a.issues.push({expected:"object",code:"invalid_type",input:c,inst:e}),a;a.value={};const u=[],l=i.shape;for(const d of i.keys){const f=l[d],m=f._zod.optin==="optional",h=f._zod.optout==="optional",p=f._zod.run({value:c[d],issues:[]},s);p instanceof Promise?u.push(p.then(y=>$e(y,a,d,c,m,h))):$e(p,a,d,c,m,h)}return o?$r(u,c,a,s,r.value,e):u.length?Promise.all(u).then(()=>a):a}}),Us=g("$ZodObjectJIT",(e,t)=>{Ds.init(e,t);const r=e._zod.parse,n=tt(()=>Pr(t)),o=f=>{const m=new ss(["shape","payload","ctx"]),h=n.value,p=S=>{const b=gr(S);return`shape[${b}]._zod.run({ value: input[${b}], issues: [] }, ctx)`};m.write("const input = payload.value;");const y=Object.create(null);let v=0;for(const S of h.keys)y[S]=`key_${v++}`;m.write("const newResult = {};");for(const S of h.keys){const b=y[S],w=gr(S),P=f[S],M=P?._zod?.optin==="optional",$l=P?._zod?.optout==="optional";m.write(`const ${b} = ${p(S)};`),M&&$l?m.write(`
51
51
  if (${b}.issues.length) {
52
52
  if (${w} in input) {
53
53
  payload.issues = payload.issues.concat(${b}.issues.map(iss => ({
@@ -106,6 +106,6 @@
106
106
  }
107
107
  }
108
108
 
109
- `)}m.write("payload.value = newResult;"),m.write("return payload;");const I=m.compile();return(S,b)=>I(f,S,b)};let i;const s=Ce,a=!Ee.jitless,u=a&&Ki.value,l=t.catchall;let d;e._zod.parse=(f,m)=>{d??(d=n.value);const h=f.value;return s(h)?a&&u&&m?.async===!1&&m.jitless!==!0?(i||(i=o(t.shape)),f=i(f,m),l?zr([],h,f,m,d,e):f):r(f,m):(f.issues.push({expected:"object",code:"invalid_type",input:h,inst:e}),f)}});function Ar(e,t,r,n){for(const i of e)if(i.issues.length===0)return t.value=i.value,t;const o=e.filter(i=>!oe(i));return o.length===1?(t.value=o[0].value,o[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:e.map(i=>i.issues.map(s=>te(s,n,Q())))}),t)}var Za=g("$ZodUnion",(e,t)=>{x.init(e,t),E(e._zod,"optin",()=>t.options.some(n=>n._zod.optin==="optional")?"optional":void 0),E(e._zod,"optout",()=>t.options.some(n=>n._zod.optout==="optional")?"optional":void 0),E(e._zod,"values",()=>{if(t.options.every(n=>n._zod.values))return new Set(t.options.flatMap(n=>Array.from(n._zod.values)))}),E(e._zod,"pattern",()=>{if(t.options.every(n=>n._zod.pattern)){const n=t.options.map(o=>o._zod.pattern);return new RegExp(`^(${n.map(o=>rt(o.source)).join("|")})$`)}});const r=t.options.length===1?t.options[0]._zod.run:null;e._zod.parse=(n,o)=>{if(r)return r(n,o);let i=!1;const s=[];for(const a of t.options){const c=a._zod.run({value:n.value,issues:[]},o);if(c instanceof Promise)s.push(c),i=!0;else{if(c.issues.length===0)return c;s.push(c)}}return i?Promise.all(s).then(a=>Ar(a,n,e,o)):Ar(s,n,e,o)}}),Da=g("$ZodIntersection",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{const o=r.value,i=t.left._zod.run({value:o,issues:[]},n),s=t.right._zod.run({value:o,issues:[]},n);return i instanceof Promise||s instanceof Promise?Promise.all([i,s]).then(([a,c])=>Ir(r,a,c)):Ir(r,i,s)}});function at(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(pe(e)&&pe(t)){const r=Object.keys(t),n=Object.keys(e).filter(i=>r.indexOf(i)!==-1),o={...e,...t};for(const i of n){const s=at(e[i],t[i]);if(!s.valid)return{valid:!1,mergeErrorPath:[i,...s.mergeErrorPath]};o[i]=s.data}return{valid:!0,data:o}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const r=[];for(let n=0;n<e.length;n++){const o=e[n],i=t[n],s=at(o,i);if(!s.valid)return{valid:!1,mergeErrorPath:[n,...s.mergeErrorPath]};r.push(s.data)}return{valid:!0,data:r}}return{valid:!1,mergeErrorPath:[]}}function Ir(e,t,r){const n=new Map;let o;for(const a of t.issues)if(a.code==="unrecognized_keys"){o??(o=a);for(const c of a.keys)n.has(c)||n.set(c,{}),n.get(c).l=!0}else e.issues.push(a);for(const a of r.issues)if(a.code==="unrecognized_keys")for(const c of a.keys)n.has(c)||n.set(c,{}),n.get(c).r=!0;else e.issues.push(a);const i=[...n].filter(([,a])=>a.l&&a.r).map(([a])=>a);if(i.length&&o&&e.issues.push({...o,keys:i}),oe(e))return e;const s=at(t.value,r.value);if(!s.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(s.mergeErrorPath)}`);return e.value=s.data,e}var Ua=g("$ZodEnum",(e,t)=>{x.init(e,t);const r=cr(t.entries),n=new Set(r);e._zod.values=n,e._zod.pattern=new RegExp(`^(${r.filter(o=>Yi.has(typeof o)).map(o=>typeof o=="string"?Te(o):o.toString()).join("|")})$`),e._zod.parse=(o,i)=>{const s=o.value;return n.has(s)||o.issues.push({code:"invalid_value",values:r,input:s,inst:e}),o}}),ja=g("$ZodTransform",(e,t)=>{x.init(e,t),e._zod.optin="optional",e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new ar(e.constructor.name);const o=t.transform(r.value,r);if(n.async)return(o instanceof Promise?o:Promise.resolve(o)).then(i=>(r.value=i,r.fallback=!0,r));if(o instanceof Promise)throw new ne;return r.value=o,r.fallback=!0,r}});function Pr(e,t){return t===void 0&&(e.issues.length||e.fallback)?{issues:[],value:void 0}:e}var $r=g("$ZodOptional",(e,t)=>{x.init(e,t),e._zod.optin="optional",e._zod.optout="optional",E(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),E(e._zod,"pattern",()=>{const r=t.innerType._zod.pattern;return r?new RegExp(`^(${rt(r.source)})?$`):void 0}),e._zod.parse=(r,n)=>{if(t.innerType._zod.optin==="optional"){const o=r.value,i=t.innerType._zod.run(r,n);return i instanceof Promise?i.then(s=>Pr(s,o)):Pr(i,o)}return r.value===void 0?r:t.innerType._zod.run(r,n)}}),Ma=g("$ZodExactOptional",(e,t)=>{$r.init(e,t),E(e._zod,"values",()=>t.innerType._zod.values),E(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(r,n)=>t.innerType._zod.run(r,n)}),Fa=g("$ZodNullable",(e,t)=>{x.init(e,t),E(e._zod,"optin",()=>t.innerType._zod.optin),E(e._zod,"optout",()=>t.innerType._zod.optout),E(e._zod,"pattern",()=>{const r=t.innerType._zod.pattern;return r?new RegExp(`^(${rt(r.source)}|null)$`):void 0}),E(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(r,n)=>r.value===null?r:t.innerType._zod.run(r,n)}),Ba=g("$ZodDefault",(e,t)=>{x.init(e,t),e._zod.optin="optional",E(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);if(r.value===void 0)return r.value=t.defaultValue,r;const o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>Nr(i,t)):Nr(o,t)}});function Nr(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var Ga=g("$ZodPrefault",(e,t)=>{x.init(e,t),e._zod.optin="optional",E(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>(n.direction==="backward"||r.value===void 0&&(r.value=t.defaultValue),t.innerType._zod.run(r,n))}),qa=g("$ZodNonOptional",(e,t)=>{x.init(e,t),E(e._zod,"values",()=>{const r=t.innerType._zod.values;return r?new Set([...r].filter(n=>n!==void 0)):void 0}),e._zod.parse=(r,n)=>{const o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>Or(i,e)):Or(o,e)}});function Or(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}var Ja=g("$ZodCatch",(e,t)=>{x.init(e,t),e._zod.optin="optional",E(e._zod,"optout",()=>t.innerType._zod.optout),E(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);const o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>(r.value=i.value,i.issues.length&&(r.value=t.catchValue({...r,error:{issues:i.issues.map(s=>te(s,n,Q()))},input:r.value}),r.issues=[],r.fallback=!0),r)):(r.value=o.value,o.issues.length&&(r.value=t.catchValue({...r,error:{issues:o.issues.map(i=>te(i,n,Q()))},input:r.value}),r.issues=[],r.fallback=!0),r)}}),Va=g("$ZodPipe",(e,t)=>{x.init(e,t),E(e._zod,"values",()=>t.in._zod.values),E(e._zod,"optin",()=>t.in._zod.optin),E(e._zod,"optout",()=>t.out._zod.optout),E(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(r,n)=>{if(n.direction==="backward"){const i=t.out._zod.run(r,n);return i instanceof Promise?i.then(s=>$e(s,t.in,n)):$e(i,t.in,n)}const o=t.in._zod.run(r,n);return o instanceof Promise?o.then(i=>$e(i,t.out,n)):$e(o,t.out,n)}});function $e(e,t,r){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues,fallback:e.fallback},r)}var Wa=g("$ZodReadonly",(e,t)=>{x.init(e,t),E(e._zod,"propValues",()=>t.innerType._zod.propValues),E(e._zod,"values",()=>t.innerType._zod.values),E(e._zod,"optin",()=>t.innerType?._zod?.optin),E(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);const o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(Lr):Lr(o)}});function Lr(e){return e.value=Object.freeze(e.value),e}var Ha=g("$ZodCustom",(e,t)=>{O.init(e,t),x.init(e,t),e._zod.parse=(r,n)=>r,e._zod.check=r=>{const n=r.value,o=t.fn(n);if(o instanceof Promise)return o.then(i=>Rr(i,r,n,e));Rr(o,r,n,e)}});function Rr(e,t,r,n){if(!e){const o={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(o.params=n._zod.def.params),t.issues.push(ge(o))}}var Zr,Ka=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){const r=t[0];return this._map.set(e,r),r&&typeof r=="object"&&"id"in r&&this._idmap.set(r.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){const t=this._map.get(e);return t&&typeof t=="object"&&"id"in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){const t=e._zod.parent;if(t){const r={...this.get(t)??{}};delete r.id;const n={...r,...this._map.get(e)};return Object.keys(n).length?n:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function Ya(){return new Ka}(Zr=globalThis).__zod_globalRegistry??(Zr.__zod_globalRegistry=Ya());var me=globalThis.__zod_globalRegistry;function Xa(e,t){return new e({type:"string",..._(t)})}function Qa(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,..._(t)})}function Dr(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,..._(t)})}function ec(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,..._(t)})}function tc(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",..._(t)})}function rc(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",..._(t)})}function nc(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",..._(t)})}function oc(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,..._(t)})}function ic(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,..._(t)})}function sc(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,..._(t)})}function ac(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,..._(t)})}function cc(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,..._(t)})}function uc(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,..._(t)})}function lc(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,..._(t)})}function dc(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,..._(t)})}function fc(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,..._(t)})}function pc(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,..._(t)})}function gc(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,..._(t)})}function mc(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,..._(t)})}function hc(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,..._(t)})}function yc(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,..._(t)})}function _c(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,..._(t)})}function vc(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,..._(t)})}function bc(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,..._(t)})}function wc(e,t){return new e({type:"string",format:"date",check:"string_format",..._(t)})}function kc(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,..._(t)})}function Sc(e,t){return new e({type:"string",format:"duration",check:"string_format",..._(t)})}function Ec(e,t){return new e({type:"number",checks:[],..._(t)})}function Cc(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",..._(t)})}function Tc(e){return new e({type:"unknown"})}function xc(e,t){return new e({type:"never",..._(t)})}function Ur(e,t){return new kr({check:"less_than",..._(t),value:e,inclusive:!1})}function ct(e,t){return new kr({check:"less_than",..._(t),value:e,inclusive:!0})}function jr(e,t){return new Sr({check:"greater_than",..._(t),value:e,inclusive:!1})}function ut(e,t){return new Sr({check:"greater_than",..._(t),value:e,inclusive:!0})}function Mr(e,t){return new Js({check:"multiple_of",..._(t),value:e})}function Fr(e,t){return new Ws({check:"max_length",..._(t),maximum:e})}function Ne(e,t){return new Hs({check:"min_length",..._(t),minimum:e})}function Br(e,t){return new Ks({check:"length_equals",..._(t),length:e})}function zc(e,t){return new Ys({check:"string_format",format:"regex",..._(t),pattern:e})}function Ac(e){return new Xs({check:"string_format",format:"lowercase",..._(e)})}function Ic(e){return new Qs({check:"string_format",format:"uppercase",..._(e)})}function Pc(e,t){return new ea({check:"string_format",format:"includes",..._(t),includes:e})}function $c(e,t){return new ta({check:"string_format",format:"starts_with",..._(t),prefix:e})}function Nc(e,t){return new ra({check:"string_format",format:"ends_with",..._(t),suffix:e})}function ie(e){return new na({check:"overwrite",tx:e})}function Oc(e){return ie(t=>t.normalize(e))}function Lc(){return ie(e=>e.trim())}function Rc(){return ie(e=>e.toLowerCase())}function Zc(){return ie(e=>e.toUpperCase())}function Dc(){return ie(e=>Hi(e))}function Uc(e,t,r){return new e({type:"array",element:t,..._(r)})}function jc(e,t,r){return new e({type:"custom",check:"custom",fn:t,..._(r)})}function Mc(e,t){const r=Fc(n=>(n.addIssue=o=>{if(typeof o=="string")n.issues.push(ge(o,n.value,r._zod.def));else{const i=o;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=n.value),i.inst??(i.inst=r),i.continue??(i.continue=!r._zod.def.abort),n.issues.push(ge(i))}},e(n.value,n)),t);return r}function Fc(e,t){const r=new O({check:"custom",..._(t)});return r._zod.check=e,r}function Gr(e){let t=e?.target??"draft-2020-12";return t==="draft-4"&&(t="draft-04"),t==="draft-7"&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??me,target:t,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function A(e,t,r={path:[],schemaPath:[]}){var n;const o=e._zod.def,i=t.seen.get(e);if(i)return i.count++,r.schemaPath.includes(e)&&(i.cycle=r.path),i.schema;const s={schema:{},count:1,cycle:void 0,path:r.path};t.seen.set(e,s);const a=e._zod.toJSONSchema?.();if(a)s.schema=a;else{const u={...r,schemaPath:[...r.schemaPath,e],path:r.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,s.schema,u);else{const d=s.schema,f=t.processors[o.type];if(!f)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${o.type}`);f(e,t,d,u)}const l=e._zod.parent;l&&(s.ref||(s.ref=l),A(l,t,u),t.seen.get(l).isParent=!0)}const c=t.metadataRegistry.get(e);return c&&Object.assign(s.schema,c),t.io==="input"&&N(e)&&(delete s.schema.examples,delete s.schema.default),t.io==="input"&&"_prefault"in s.schema&&((n=s.schema).default??(n.default=s.schema._prefault)),delete s.schema._prefault,t.seen.get(e).schema}function qr(e,t){const r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");const n=new Map;for(const s of e.seen.entries()){const a=e.metadataRegistry.get(s[0])?.id;if(a){const c=n.get(a);if(c&&c!==s[0])throw new Error(`Duplicate schema id "${a}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);n.set(a,s[0])}}const o=s=>{const a=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){const l=e.external.registry.get(s[0])?.id,d=e.external.uri??(m=>m);if(l)return{ref:d(l)};const f=s[1].defId??s[1].schema.id??`schema${e.counter++}`;return s[1].defId=f,{defId:f,ref:`${d("__shared")}#/${a}/${f}`}}if(s[1]===r)return{ref:"#"};const c=`#/${a}/`,u=s[1].schema.id??`__schema${e.counter++}`;return{defId:u,ref:c+u}},i=s=>{if(s[1].schema.$ref)return;const a=s[1],{ref:c,defId:u}=o(s);a.def={...a.schema},u&&(a.defId=u);const l=a.schema;for(const d in l)delete l[d];l.$ref=c};if(e.cycles==="throw")for(const s of e.seen.entries()){const a=s[1];if(a.cycle)throw new Error(`Cycle detected: #/${a.cycle?.join("/")}/<root>
109
+ `)}m.write("payload.value = newResult;"),m.write("return payload;");const I=m.compile();return(S,b)=>I(f,S,b)};let i;const a=Te,s=!Ce.jitless,u=s&&Qi.value,l=t.catchall;let d;e._zod.parse=(f,m)=>{d??(d=n.value);const h=f.value;return a(h)?s&&u&&m?.async===!1&&m.jitless!==!0?(i||(i=o(t.shape)),f=i(f,m),l?$r([],h,f,m,d,e):f):r(f,m):(f.issues.push({expected:"object",code:"invalid_type",input:h,inst:e}),f)}});function Nr(e,t,r,n){for(const i of e)if(i.issues.length===0)return t.value=i.value,t;const o=e.filter(i=>!oe(i));return o.length===1?(t.value=o[0].value,o[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:e.map(i=>i.issues.map(a=>te(a,n,Q())))}),t)}var js=g("$ZodUnion",(e,t)=>{x.init(e,t),E(e._zod,"optin",()=>t.options.some(n=>n._zod.optin==="optional")?"optional":void 0),E(e._zod,"optout",()=>t.options.some(n=>n._zod.optout==="optional")?"optional":void 0),E(e._zod,"values",()=>{if(t.options.every(n=>n._zod.values))return new Set(t.options.flatMap(n=>Array.from(n._zod.values)))}),E(e._zod,"pattern",()=>{if(t.options.every(n=>n._zod.pattern)){const n=t.options.map(o=>o._zod.pattern);return new RegExp(`^(${n.map(o=>nt(o.source)).join("|")})$`)}});const r=t.options.length===1?t.options[0]._zod.run:null;e._zod.parse=(n,o)=>{if(r)return r(n,o);let i=!1;const a=[];for(const s of t.options){const c=s._zod.run({value:n.value,issues:[]},o);if(c instanceof Promise)a.push(c),i=!0;else{if(c.issues.length===0)return c;a.push(c)}}return i?Promise.all(a).then(s=>Nr(s,n,e,o)):Nr(a,n,e,o)}}),Ms=g("$ZodIntersection",(e,t)=>{x.init(e,t),e._zod.parse=(r,n)=>{const o=r.value,i=t.left._zod.run({value:o,issues:[]},n),a=t.right._zod.run({value:o,issues:[]},n);return i instanceof Promise||a instanceof Promise?Promise.all([i,a]).then(([s,c])=>Or(r,s,c)):Or(r,i,a)}});function ct(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(ge(e)&&ge(t)){const r=Object.keys(t),n=Object.keys(e).filter(i=>r.indexOf(i)!==-1),o={...e,...t};for(const i of n){const a=ct(e[i],t[i]);if(!a.valid)return{valid:!1,mergeErrorPath:[i,...a.mergeErrorPath]};o[i]=a.data}return{valid:!0,data:o}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};const r=[];for(let n=0;n<e.length;n++){const o=e[n],i=t[n],a=ct(o,i);if(!a.valid)return{valid:!1,mergeErrorPath:[n,...a.mergeErrorPath]};r.push(a.data)}return{valid:!0,data:r}}return{valid:!1,mergeErrorPath:[]}}function Or(e,t,r){const n=new Map;let o;for(const s of t.issues)if(s.code==="unrecognized_keys"){o??(o=s);for(const c of s.keys)n.has(c)||n.set(c,{}),n.get(c).l=!0}else e.issues.push(s);for(const s of r.issues)if(s.code==="unrecognized_keys")for(const c of s.keys)n.has(c)||n.set(c,{}),n.get(c).r=!0;else e.issues.push(s);const i=[...n].filter(([,s])=>s.l&&s.r).map(([s])=>s);if(i.length&&o&&e.issues.push({...o,keys:i}),oe(e))return e;const a=ct(t.value,r.value);if(!a.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(a.mergeErrorPath)}`);return e.value=a.data,e}var Fs=g("$ZodEnum",(e,t)=>{x.init(e,t);const r=fr(t.entries),n=new Set(r);e._zod.values=n,e._zod.pattern=new RegExp(`^(${r.filter(o=>ea.has(typeof o)).map(o=>typeof o=="string"?xe(o):o.toString()).join("|")})$`),e._zod.parse=(o,i)=>{const a=o.value;return n.has(a)||o.issues.push({code:"invalid_value",values:r,input:a,inst:e}),o}}),Bs=g("$ZodTransform",(e,t)=>{x.init(e,t),e._zod.optin="optional",e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new dr(e.constructor.name);const o=t.transform(r.value,r);if(n.async)return(o instanceof Promise?o:Promise.resolve(o)).then(i=>(r.value=i,r.fallback=!0,r));if(o instanceof Promise)throw new ne;return r.value=o,r.fallback=!0,r}});function Lr(e,t){return t===void 0&&(e.issues.length||e.fallback)?{issues:[],value:void 0}:e}var Rr=g("$ZodOptional",(e,t)=>{x.init(e,t),e._zod.optin="optional",e._zod.optout="optional",E(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),E(e._zod,"pattern",()=>{const r=t.innerType._zod.pattern;return r?new RegExp(`^(${nt(r.source)})?$`):void 0}),e._zod.parse=(r,n)=>{if(t.innerType._zod.optin==="optional"){const o=r.value,i=t.innerType._zod.run(r,n);return i instanceof Promise?i.then(a=>Lr(a,o)):Lr(i,o)}return r.value===void 0?r:t.innerType._zod.run(r,n)}}),Gs=g("$ZodExactOptional",(e,t)=>{Rr.init(e,t),E(e._zod,"values",()=>t.innerType._zod.values),E(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(r,n)=>t.innerType._zod.run(r,n)}),qs=g("$ZodNullable",(e,t)=>{x.init(e,t),E(e._zod,"optin",()=>t.innerType._zod.optin),E(e._zod,"optout",()=>t.innerType._zod.optout),E(e._zod,"pattern",()=>{const r=t.innerType._zod.pattern;return r?new RegExp(`^(${nt(r.source)}|null)$`):void 0}),E(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(r,n)=>r.value===null?r:t.innerType._zod.run(r,n)}),Js=g("$ZodDefault",(e,t)=>{x.init(e,t),e._zod.optin="optional",E(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);if(r.value===void 0)return r.value=t.defaultValue,r;const o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>Zr(i,t)):Zr(o,t)}});function Zr(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var Vs=g("$ZodPrefault",(e,t)=>{x.init(e,t),e._zod.optin="optional",E(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>(n.direction==="backward"||r.value===void 0&&(r.value=t.defaultValue),t.innerType._zod.run(r,n))}),Ws=g("$ZodNonOptional",(e,t)=>{x.init(e,t),E(e._zod,"values",()=>{const r=t.innerType._zod.values;return r?new Set([...r].filter(n=>n!==void 0)):void 0}),e._zod.parse=(r,n)=>{const o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>Dr(i,e)):Dr(o,e)}});function Dr(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}var Hs=g("$ZodCatch",(e,t)=>{x.init(e,t),e._zod.optin="optional",E(e._zod,"optout",()=>t.innerType._zod.optout),E(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);const o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(i=>(r.value=i.value,i.issues.length&&(r.value=t.catchValue({...r,error:{issues:i.issues.map(a=>te(a,n,Q()))},input:r.value}),r.issues=[],r.fallback=!0),r)):(r.value=o.value,o.issues.length&&(r.value=t.catchValue({...r,error:{issues:o.issues.map(i=>te(i,n,Q()))},input:r.value}),r.issues=[],r.fallback=!0),r)}}),Ks=g("$ZodPipe",(e,t)=>{x.init(e,t),E(e._zod,"values",()=>t.in._zod.values),E(e._zod,"optin",()=>t.in._zod.optin),E(e._zod,"optout",()=>t.out._zod.optout),E(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(r,n)=>{if(n.direction==="backward"){const i=t.out._zod.run(r,n);return i instanceof Promise?i.then(a=>Ne(a,t.in,n)):Ne(i,t.in,n)}const o=t.in._zod.run(r,n);return o instanceof Promise?o.then(i=>Ne(i,t.out,n)):Ne(o,t.out,n)}});function Ne(e,t,r){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues,fallback:e.fallback},r)}var Ys=g("$ZodReadonly",(e,t)=>{x.init(e,t),E(e._zod,"propValues",()=>t.innerType._zod.propValues),E(e._zod,"values",()=>t.innerType._zod.values),E(e._zod,"optin",()=>t.innerType?._zod?.optin),E(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(r,n)=>{if(n.direction==="backward")return t.innerType._zod.run(r,n);const o=t.innerType._zod.run(r,n);return o instanceof Promise?o.then(Ur):Ur(o)}});function Ur(e){return e.value=Object.freeze(e.value),e}var Xs=g("$ZodCustom",(e,t)=>{O.init(e,t),x.init(e,t),e._zod.parse=(r,n)=>r,e._zod.check=r=>{const n=r.value,o=t.fn(n);if(o instanceof Promise)return o.then(i=>jr(i,r,n,e));jr(o,r,n,e)}});function jr(e,t,r,n){if(!e){const o={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(o.params=n._zod.def.params),t.issues.push(me(o))}}var Mr,Qs=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){const r=t[0];return this._map.set(e,r),r&&typeof r=="object"&&"id"in r&&this._idmap.set(r.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){const t=this._map.get(e);return t&&typeof t=="object"&&"id"in t&&this._idmap.delete(t.id),this._map.delete(e),this}get(e){const t=e._zod.parent;if(t){const r={...this.get(t)??{}};delete r.id;const n={...r,...this._map.get(e)};return Object.keys(n).length?n:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function ec(){return new Qs}(Mr=globalThis).__zod_globalRegistry??(Mr.__zod_globalRegistry=ec());var he=globalThis.__zod_globalRegistry;function tc(e,t){return new e({type:"string",..._(t)})}function rc(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,..._(t)})}function Fr(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,..._(t)})}function nc(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,..._(t)})}function oc(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",..._(t)})}function ic(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",..._(t)})}function ac(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",..._(t)})}function sc(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,..._(t)})}function cc(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,..._(t)})}function uc(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,..._(t)})}function lc(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,..._(t)})}function dc(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,..._(t)})}function fc(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,..._(t)})}function pc(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,..._(t)})}function gc(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,..._(t)})}function mc(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,..._(t)})}function hc(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,..._(t)})}function yc(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,..._(t)})}function _c(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,..._(t)})}function vc(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,..._(t)})}function bc(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,..._(t)})}function wc(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,..._(t)})}function kc(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,..._(t)})}function Sc(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,..._(t)})}function Ec(e,t){return new e({type:"string",format:"date",check:"string_format",..._(t)})}function Cc(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,..._(t)})}function Tc(e,t){return new e({type:"string",format:"duration",check:"string_format",..._(t)})}function xc(e,t){return new e({type:"number",checks:[],..._(t)})}function Ac(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",..._(t)})}function zc(e){return new e({type:"unknown"})}function Ic(e,t){return new e({type:"never",..._(t)})}function Br(e,t){return new Tr({check:"less_than",..._(t),value:e,inclusive:!1})}function ut(e,t){return new Tr({check:"less_than",..._(t),value:e,inclusive:!0})}function Gr(e,t){return new xr({check:"greater_than",..._(t),value:e,inclusive:!1})}function lt(e,t){return new xr({check:"greater_than",..._(t),value:e,inclusive:!0})}function qr(e,t){return new Ha({check:"multiple_of",..._(t),value:e})}function Jr(e,t){return new Ya({check:"max_length",..._(t),maximum:e})}function Oe(e,t){return new Xa({check:"min_length",..._(t),minimum:e})}function Vr(e,t){return new Qa({check:"length_equals",..._(t),length:e})}function Pc(e,t){return new es({check:"string_format",format:"regex",..._(t),pattern:e})}function $c(e){return new ts({check:"string_format",format:"lowercase",..._(e)})}function Nc(e){return new rs({check:"string_format",format:"uppercase",..._(e)})}function Oc(e,t){return new ns({check:"string_format",format:"includes",..._(t),includes:e})}function Lc(e,t){return new os({check:"string_format",format:"starts_with",..._(t),prefix:e})}function Rc(e,t){return new is({check:"string_format",format:"ends_with",..._(t),suffix:e})}function ie(e){return new as({check:"overwrite",tx:e})}function Zc(e){return ie(t=>t.normalize(e))}function Dc(){return ie(e=>e.trim())}function Uc(){return ie(e=>e.toLowerCase())}function jc(){return ie(e=>e.toUpperCase())}function Mc(){return ie(e=>Xi(e))}function Fc(e,t,r){return new e({type:"array",element:t,..._(r)})}function Bc(e,t,r){return new e({type:"custom",check:"custom",fn:t,..._(r)})}function Gc(e,t){const r=qc(n=>(n.addIssue=o=>{if(typeof o=="string")n.issues.push(me(o,n.value,r._zod.def));else{const i=o;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=n.value),i.inst??(i.inst=r),i.continue??(i.continue=!r._zod.def.abort),n.issues.push(me(i))}},e(n.value,n)),t);return r}function qc(e,t){const r=new O({check:"custom",..._(t)});return r._zod.check=e,r}function Wr(e){let t=e?.target??"draft-2020-12";return t==="draft-4"&&(t="draft-04"),t==="draft-7"&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??he,target:t,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function z(e,t,r={path:[],schemaPath:[]}){var n;const o=e._zod.def,i=t.seen.get(e);if(i)return i.count++,r.schemaPath.includes(e)&&(i.cycle=r.path),i.schema;const a={schema:{},count:1,cycle:void 0,path:r.path};t.seen.set(e,a);const s=e._zod.toJSONSchema?.();if(s)a.schema=s;else{const u={...r,schemaPath:[...r.schemaPath,e],path:r.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,a.schema,u);else{const d=a.schema,f=t.processors[o.type];if(!f)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${o.type}`);f(e,t,d,u)}const l=e._zod.parent;l&&(a.ref||(a.ref=l),z(l,t,u),t.seen.get(l).isParent=!0)}const c=t.metadataRegistry.get(e);return c&&Object.assign(a.schema,c),t.io==="input"&&N(e)&&(delete a.schema.examples,delete a.schema.default),t.io==="input"&&"_prefault"in a.schema&&((n=a.schema).default??(n.default=a.schema._prefault)),delete a.schema._prefault,t.seen.get(e).schema}function Hr(e,t){const r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");const n=new Map;for(const a of e.seen.entries()){const s=e.metadataRegistry.get(a[0])?.id;if(s){const c=n.get(s);if(c&&c!==a[0])throw new Error(`Duplicate schema id "${s}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);n.set(s,a[0])}}const o=a=>{const s=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){const l=e.external.registry.get(a[0])?.id,d=e.external.uri??(m=>m);if(l)return{ref:d(l)};const f=a[1].defId??a[1].schema.id??`schema${e.counter++}`;return a[1].defId=f,{defId:f,ref:`${d("__shared")}#/${s}/${f}`}}if(a[1]===r)return{ref:"#"};const c=`#/${s}/`,u=a[1].schema.id??`__schema${e.counter++}`;return{defId:u,ref:c+u}},i=a=>{if(a[1].schema.$ref)return;const s=a[1],{ref:c,defId:u}=o(a);s.def={...s.schema},u&&(s.defId=u);const l=s.schema;for(const d in l)delete l[d];l.$ref=c};if(e.cycles==="throw")for(const a of e.seen.entries()){const s=a[1];if(s.cycle)throw new Error(`Cycle detected: #/${s.cycle?.join("/")}/<root>
110
110
 
111
- Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const s of e.seen.entries()){const a=s[1];if(t===s[0]){i(s);continue}if(e.external){const c=e.external.registry.get(s[0])?.id;if(t!==s[0]&&c){i(s);continue}}if(e.metadataRegistry.get(s[0])?.id){i(s);continue}if(a.cycle){i(s);continue}if(a.count>1&&e.reused==="ref"){i(s);continue}}}function Jr(e,t){const r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");const n=a=>{const c=e.seen.get(a);if(c.ref===null)return;const u=c.def??c.schema,l={...u},d=c.ref;if(c.ref=null,d){n(d);const m=e.seen.get(d),h=m.schema;if(h.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(u.allOf=u.allOf??[],u.allOf.push(h)):Object.assign(u,h),Object.assign(u,l),a._zod.parent===d)for(const p in u)p==="$ref"||p==="allOf"||p in l||delete u[p];if(h.$ref&&m.def)for(const p in u)p==="$ref"||p==="allOf"||p in m.def&&JSON.stringify(u[p])===JSON.stringify(m.def[p])&&delete u[p]}const f=a._zod.parent;if(f&&f!==d){n(f);const m=e.seen.get(f);if(m?.schema.$ref&&(u.$ref=m.schema.$ref,m.def))for(const h in u)h==="$ref"||h==="allOf"||h in m.def&&JSON.stringify(u[h])===JSON.stringify(m.def[h])&&delete u[h]}e.override({zodSchema:a,jsonSchema:u,path:c.path??[]})};for(const a of[...e.seen.entries()].reverse())n(a[0]);const o={};if(e.target==="draft-2020-12"?o.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?o.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?o.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){const a=e.external.registry.get(t)?.id;if(!a)throw new Error("Schema is missing an `id` property");o.$id=e.external.uri(a)}Object.assign(o,r.def??r.schema);const i=e.metadataRegistry.get(t)?.id;i!==void 0&&o.id===i&&delete o.id;const s=e.external?.defs??{};for(const a of e.seen.entries()){const c=a[1];c.def&&c.defId&&(c.def.id===c.defId&&delete c.def.id,s[c.defId]=c.def)}e.external||Object.keys(s).length>0&&(e.target==="draft-2020-12"?o.$defs=s:o.definitions=s);try{const a=JSON.parse(JSON.stringify(o));return Object.defineProperty(a,"~standard",{value:{...t["~standard"],jsonSchema:{input:Oe(t,"input",e.processors),output:Oe(t,"output",e.processors)}},enumerable:!1,writable:!1}),a}catch{throw new Error("Error converting schema to JSON.")}}function N(e,t){const r=t??{seen:new Set};if(r.seen.has(e))return!1;r.seen.add(e);const n=e._zod.def;if(n.type==="transform")return!0;if(n.type==="array")return N(n.element,r);if(n.type==="set")return N(n.valueType,r);if(n.type==="lazy")return N(n.getter(),r);if(n.type==="promise"||n.type==="optional"||n.type==="nonoptional"||n.type==="nullable"||n.type==="readonly"||n.type==="default"||n.type==="prefault")return N(n.innerType,r);if(n.type==="intersection")return N(n.left,r)||N(n.right,r);if(n.type==="record"||n.type==="map")return N(n.keyType,r)||N(n.valueType,r);if(n.type==="pipe")return e._zod.traits.has("$ZodCodec")?!0:N(n.in,r)||N(n.out,r);if(n.type==="object"){for(const o in n.shape)if(N(n.shape[o],r))return!0;return!1}if(n.type==="union"){for(const o of n.options)if(N(o,r))return!0;return!1}if(n.type==="tuple"){for(const o of n.items)if(N(o,r))return!0;return!!(n.rest&&N(n.rest,r))}return!1}var Bc=(e,t={})=>r=>{const n=Gr({...r,processors:t});return A(e,n),qr(n,e),Jr(n,e)},Oe=(e,t,r={})=>n=>{const{libraryOptions:o,target:i}=n??{},s=Gr({...o??{},target:i,io:t,processors:r});return A(e,s),qr(s,e),Jr(s,e)},Gc={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},qc=(e,t,r,n)=>{const o=r;o.type="string";const{minimum:i,maximum:s,format:a,patterns:c,contentEncoding:u}=e._zod.bag;if(typeof i=="number"&&(o.minLength=i),typeof s=="number"&&(o.maxLength=s),a&&(o.format=Gc[a]??a,o.format===""&&delete o.format,a==="time"&&delete o.format),u&&(o.contentEncoding=u),c&&c.size>0){const l=[...c];l.length===1?o.pattern=l[0].source:l.length>1&&(o.allOf=[...l.map(d=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:d.source}))])}},Jc=(e,t,r,n)=>{const o=r,{minimum:i,maximum:s,format:a,multipleOf:c,exclusiveMaximum:u,exclusiveMinimum:l}=e._zod.bag;typeof a=="string"&&a.includes("int")?o.type="integer":o.type="number";const d=typeof l=="number"&&l>=(i??Number.NEGATIVE_INFINITY),f=typeof u=="number"&&u<=(s??Number.POSITIVE_INFINITY),m=t.target==="draft-04"||t.target==="openapi-3.0";d?m?(o.minimum=l,o.exclusiveMinimum=!0):o.exclusiveMinimum=l:typeof i=="number"&&(o.minimum=i),f?m?(o.maximum=u,o.exclusiveMaximum=!0):o.exclusiveMaximum=u:typeof s=="number"&&(o.maximum=s),typeof c=="number"&&(o.multipleOf=c)},Vc=(e,t,r,n)=>{r.not={}},Wc=(e,t,r,n)=>{},Hc=(e,t,r,n)=>{const o=e._zod.def,i=cr(o.entries);i.every(s=>typeof s=="number")&&(r.type="number"),i.every(s=>typeof s=="string")&&(r.type="string"),r.enum=i},Kc=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},Yc=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},Xc=(e,t,r,n)=>{const o=r,i=e._zod.def,{minimum:s,maximum:a}=e._zod.bag;typeof s=="number"&&(o.minItems=s),typeof a=="number"&&(o.maxItems=a),o.type="array",o.items=A(i.element,t,{...n,path:[...n.path,"items"]})},Qc=(e,t,r,n)=>{const o=r,i=e._zod.def;o.type="object",o.properties={};const s=i.shape;for(const u in s)o.properties[u]=A(s[u],t,{...n,path:[...n.path,"properties",u]});const a=new Set(Object.keys(s)),c=new Set([...a].filter(u=>{const l=i.shape[u]._zod;return t.io==="input"?l.optin===void 0:l.optout===void 0}));c.size>0&&(o.required=Array.from(c)),i.catchall?._zod.def.type==="never"?o.additionalProperties=!1:i.catchall?i.catchall&&(o.additionalProperties=A(i.catchall,t,{...n,path:[...n.path,"additionalProperties"]})):t.io==="output"&&(o.additionalProperties=!1)},eu=(e,t,r,n)=>{const o=e._zod.def,i=o.inclusive===!1,s=o.options.map((a,c)=>A(a,t,{...n,path:[...n.path,i?"oneOf":"anyOf",c]}));i?r.oneOf=s:r.anyOf=s},tu=(e,t,r,n)=>{const o=e._zod.def,i=A(o.left,t,{...n,path:[...n.path,"allOf",0]}),s=A(o.right,t,{...n,path:[...n.path,"allOf",1]}),a=c=>"allOf"in c&&Object.keys(c).length===1;r.allOf=[...a(i)?i.allOf:[i],...a(s)?s.allOf:[s]]},ru=(e,t,r,n)=>{const o=e._zod.def,i=A(o.innerType,t,n),s=t.seen.get(e);t.target==="openapi-3.0"?(s.ref=o.innerType,r.nullable=!0):r.anyOf=[i,{type:"null"}]},nu=(e,t,r,n)=>{const o=e._zod.def;A(o.innerType,t,n);const i=t.seen.get(e);i.ref=o.innerType},ou=(e,t,r,n)=>{const o=e._zod.def;A(o.innerType,t,n);const i=t.seen.get(e);i.ref=o.innerType,r.default=JSON.parse(JSON.stringify(o.defaultValue))},iu=(e,t,r,n)=>{const o=e._zod.def;A(o.innerType,t,n);const i=t.seen.get(e);i.ref=o.innerType,t.io==="input"&&(r._prefault=JSON.parse(JSON.stringify(o.defaultValue)))},su=(e,t,r,n)=>{const o=e._zod.def;A(o.innerType,t,n);const i=t.seen.get(e);i.ref=o.innerType;let s;try{s=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=s},au=(e,t,r,n)=>{const o=e._zod.def,i=o.in._zod.traits.has("$ZodTransform"),s=t.io==="input"?i?o.out:o.in:o.out;A(s,t,n);const a=t.seen.get(e);a.ref=s},cu=(e,t,r,n)=>{const o=e._zod.def;A(o.innerType,t,n);const i=t.seen.get(e);i.ref=o.innerType,r.readOnly=!0},Vr=(e,t,r,n)=>{const o=e._zod.def;A(o.innerType,t,n);const i=t.seen.get(e);i.ref=o.innerType},uu=g("ZodISODateTime",(e,t)=>{ya.init(e,t),T.init(e,t)});function lu(e){return bc(uu,e)}var du=g("ZodISODate",(e,t)=>{_a.init(e,t),T.init(e,t)});function fu(e){return wc(du,e)}var pu=g("ZodISOTime",(e,t)=>{va.init(e,t),T.init(e,t)});function gu(e){return kc(pu,e)}var mu=g("ZodISODuration",(e,t)=>{ba.init(e,t),T.init(e,t)});function hu(e){return Sc(mu,e)}var yu=(e,t)=>{mr.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:r=>us(e,r)},flatten:{value:r=>cs(e,r)},addIssue:{value:r=>{e.issues.push(r),e.message=JSON.stringify(e.issues,Qe,2)}},addIssues:{value:r=>{e.issues.push(...r),e.message=JSON.stringify(e.issues,Qe,2)}},isEmpty:{get(){return e.issues.length===0}}})},Z=g("ZodError",yu,{Parent:Error}),_u=ot(Z),vu=it(Z),bu=ze(Z),wu=Ae(Z),ku=fs(Z),Su=ps(Z),Eu=gs(Z),Cu=ms(Z),Tu=hs(Z),xu=ys(Z),zu=_s(Z),Au=vs(Z),Wr=new WeakMap;function he(e,t,r){const n=Object.getPrototypeOf(e);let o=Wr.get(n);if(o||(o=new Set,Wr.set(n,o)),!o.has(t)){o.add(t);for(const i in r){const s=r[i];Object.defineProperty(n,i,{configurable:!0,enumerable:!1,get(){const a=s.bind(this);return Object.defineProperty(this,i,{configurable:!0,writable:!0,enumerable:!0,value:a}),a},set(a){Object.defineProperty(this,i,{configurable:!0,writable:!0,enumerable:!0,value:a})}})}}}var z=g("ZodType",(e,t)=>(x.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:Oe(e,"input"),output:Oe(e,"output")}}),e.toJSONSchema=Bc(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.parse=(r,n)=>_u(e,r,n,{callee:e.parse}),e.safeParse=(r,n)=>bu(e,r,n),e.parseAsync=async(r,n)=>vu(e,r,n,{callee:e.parseAsync}),e.safeParseAsync=async(r,n)=>wu(e,r,n),e.spa=e.safeParseAsync,e.encode=(r,n)=>ku(e,r,n),e.decode=(r,n)=>Su(e,r,n),e.encodeAsync=async(r,n)=>Eu(e,r,n),e.decodeAsync=async(r,n)=>Cu(e,r,n),e.safeEncode=(r,n)=>Tu(e,r,n),e.safeDecode=(r,n)=>xu(e,r,n),e.safeEncodeAsync=async(r,n)=>zu(e,r,n),e.safeDecodeAsync=async(r,n)=>Au(e,r,n),he(e,"ZodType",{check(...r){const n=this.def;return this.clone(W(n,{checks:[...n.checks??[],...r.map(o=>typeof o=="function"?{_zod:{check:o,def:{check:"custom"},onattach:[]}}:o)]}),{parent:!0})},with(...r){return this.check(...r)},clone(r,n){return H(this,r,n)},brand(){return this},register(r,n){return r.add(this,n),this},refine(r,n){return this.check(bl(r,n))},superRefine(r,n){return this.check(wl(r,n))},overwrite(r){return this.check(ie(r))},optional(){return tn(this)},exactOptional(){return al(this)},nullable(){return rn(this)},nullish(){return tn(rn(this))},nonoptional(r){return pl(this,r)},array(){return Qr(this)},or(r){return tl([this,r])},and(r){return nl(this,r)},transform(r){return on(this,il(r))},default(r){return ll(this,r)},prefault(r){return fl(this,r)},catch(r){return ml(this,r)},pipe(r){return on(this,r)},readonly(){return _l(this)},describe(r){const n=this.clone();return me.add(n,{description:r}),n},meta(...r){if(r.length===0)return me.get(this);const n=this.clone();return me.add(n,r[0]),n},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(r){return r(this)}}),Object.defineProperty(e,"description",{get(){return me.get(e)?.description},configurable:!0}),e)),Hr=g("_ZodString",(e,t)=>{st.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,o,i)=>qc(e,n,o,i);const r=e._zod.bag;e.format=r.format??null,e.minLength=r.minimum??null,e.maxLength=r.maximum??null,he(e,"_ZodString",{regex(...n){return this.check(zc(...n))},includes(...n){return this.check(Pc(...n))},startsWith(...n){return this.check($c(...n))},endsWith(...n){return this.check(Nc(...n))},min(...n){return this.check(Ne(...n))},max(...n){return this.check(Fr(...n))},length(...n){return this.check(Br(...n))},nonempty(...n){return this.check(Ne(1,...n))},lowercase(n){return this.check(Ac(n))},uppercase(n){return this.check(Ic(n))},trim(){return this.check(Lc())},normalize(...n){return this.check(Oc(...n))},toLowerCase(){return this.check(Rc())},toUpperCase(){return this.check(Zc())},slugify(){return this.check(Dc())}})}),Iu=g("ZodString",(e,t)=>{st.init(e,t),Hr.init(e,t),e.email=r=>e.check(Qa(Pu,r)),e.url=r=>e.check(oc($u,r)),e.jwt=r=>e.check(vc(Vu,r)),e.emoji=r=>e.check(ic(Nu,r)),e.guid=r=>e.check(Dr(Kr,r)),e.uuid=r=>e.check(ec(Le,r)),e.uuidv4=r=>e.check(tc(Le,r)),e.uuidv6=r=>e.check(rc(Le,r)),e.uuidv7=r=>e.check(nc(Le,r)),e.nanoid=r=>e.check(sc(Ou,r)),e.guid=r=>e.check(Dr(Kr,r)),e.cuid=r=>e.check(ac(Lu,r)),e.cuid2=r=>e.check(cc(Ru,r)),e.ulid=r=>e.check(uc(Zu,r)),e.base64=r=>e.check(hc(Gu,r)),e.base64url=r=>e.check(yc(qu,r)),e.xid=r=>e.check(lc(Du,r)),e.ksuid=r=>e.check(dc(Uu,r)),e.ipv4=r=>e.check(fc(ju,r)),e.ipv6=r=>e.check(pc(Mu,r)),e.cidrv4=r=>e.check(gc(Fu,r)),e.cidrv6=r=>e.check(mc(Bu,r)),e.e164=r=>e.check(_c(Ju,r)),e.datetime=r=>e.check(lu(r)),e.date=r=>e.check(fu(r)),e.time=r=>e.check(gu(r)),e.duration=r=>e.check(hu(r))});function L(e){return Xa(Iu,e)}var T=g("ZodStringFormat",(e,t)=>{C.init(e,t),Hr.init(e,t)}),Pu=g("ZodEmail",(e,t)=>{ca.init(e,t),T.init(e,t)}),Kr=g("ZodGUID",(e,t)=>{sa.init(e,t),T.init(e,t)}),Le=g("ZodUUID",(e,t)=>{aa.init(e,t),T.init(e,t)}),$u=g("ZodURL",(e,t)=>{ua.init(e,t),T.init(e,t)}),Nu=g("ZodEmoji",(e,t)=>{la.init(e,t),T.init(e,t)}),Ou=g("ZodNanoID",(e,t)=>{da.init(e,t),T.init(e,t)}),Lu=g("ZodCUID",(e,t)=>{fa.init(e,t),T.init(e,t)}),Ru=g("ZodCUID2",(e,t)=>{pa.init(e,t),T.init(e,t)}),Zu=g("ZodULID",(e,t)=>{ga.init(e,t),T.init(e,t)}),Du=g("ZodXID",(e,t)=>{ma.init(e,t),T.init(e,t)}),Uu=g("ZodKSUID",(e,t)=>{ha.init(e,t),T.init(e,t)}),ju=g("ZodIPv4",(e,t)=>{wa.init(e,t),T.init(e,t)}),Mu=g("ZodIPv6",(e,t)=>{ka.init(e,t),T.init(e,t)}),Fu=g("ZodCIDRv4",(e,t)=>{Sa.init(e,t),T.init(e,t)}),Bu=g("ZodCIDRv6",(e,t)=>{Ea.init(e,t),T.init(e,t)}),Gu=g("ZodBase64",(e,t)=>{Ca.init(e,t),T.init(e,t)}),qu=g("ZodBase64URL",(e,t)=>{xa.init(e,t),T.init(e,t)}),Ju=g("ZodE164",(e,t)=>{za.init(e,t),T.init(e,t)}),Vu=g("ZodJWT",(e,t)=>{Ia.init(e,t),T.init(e,t)}),Yr=g("ZodNumber",(e,t)=>{Cr.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,o,i)=>Jc(e,n,o,i),he(e,"ZodNumber",{gt(n,o){return this.check(jr(n,o))},gte(n,o){return this.check(ut(n,o))},min(n,o){return this.check(ut(n,o))},lt(n,o){return this.check(Ur(n,o))},lte(n,o){return this.check(ct(n,o))},max(n,o){return this.check(ct(n,o))},int(n){return this.check(Xr(n))},safe(n){return this.check(Xr(n))},positive(n){return this.check(jr(0,n))},nonnegative(n){return this.check(ut(0,n))},negative(n){return this.check(Ur(0,n))},nonpositive(n){return this.check(ct(0,n))},multipleOf(n,o){return this.check(Mr(n,o))},step(n,o){return this.check(Mr(n,o))},finite(){return this}});const r=e._zod.bag;e.minValue=Math.max(r.minimum??Number.NEGATIVE_INFINITY,r.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(r.maximum??Number.POSITIVE_INFINITY,r.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(r.format??"").includes("int")||Number.isSafeInteger(r.multipleOf??.5),e.isFinite=!0,e.format=r.format??null});function ye(e){return Ec(Yr,e)}var Wu=g("ZodNumberFormat",(e,t)=>{Pa.init(e,t),Yr.init(e,t)});function Xr(e){return Cc(Wu,e)}var Hu=g("ZodUnknown",(e,t)=>{$a.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Wc(e,r,n,o)});function lt(){return Tc(Hu)}var Ku=g("ZodNever",(e,t)=>{Na.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Vc(e,r,n,o)});function Yu(e){return xc(Ku,e)}var Xu=g("ZodArray",(e,t)=>{Oa.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Xc(e,r,n,o),e.element=t.element,he(e,"ZodArray",{min(r,n){return this.check(Ne(r,n))},nonempty(r){return this.check(Ne(1,r))},max(r,n){return this.check(Fr(r,n))},length(r,n){return this.check(Br(r,n))},unwrap(){return this.element}})});function Qr(e,t){return Uc(Xu,e,t)}var Qu=g("ZodObject",(e,t)=>{Ra.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Qc(e,r,n,o),E(e,"shape",()=>t.shape),he(e,"ZodObject",{keyof(){return ft(Object.keys(this._zod.def.shape))},catchall(r){return this.clone({...this._zod.def,catchall:r})},passthrough(){return this.clone({...this._zod.def,catchall:lt()})},loose(){return this.clone({...this._zod.def,catchall:lt()})},strict(){return this.clone({...this._zod.def,catchall:Yu()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(r){return rs(this,r)},safeExtend(r){return ns(this,r)},merge(r){return os(this,r)},pick(r){return es(this,r)},omit(r){return ts(this,r)},partial(...r){return is(en,this,r[0])},required(...r){return ss(nn,this,r[0])}})});function K(e,t){return new Qu({type:"object",shape:e??{},..._(t)})}var el=g("ZodUnion",(e,t)=>{Za.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>eu(e,r,n,o),e.options=t.options});function tl(e,t){return new el({type:"union",options:e,..._(t)})}var rl=g("ZodIntersection",(e,t)=>{Da.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>tu(e,r,n,o)});function nl(e,t){return new rl({type:"intersection",left:e,right:t})}var dt=g("ZodEnum",(e,t)=>{Ua.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,o,i)=>Hc(e,n,o,i),e.enum=t.entries,e.options=Object.values(t.entries);const r=new Set(Object.keys(t.entries));e.extract=(n,o)=>{const i={};for(const s of n)if(r.has(s))i[s]=t.entries[s];else throw new Error(`Key ${s} not found in enum`);return new dt({...t,checks:[],..._(o),entries:i})},e.exclude=(n,o)=>{const i={...t.entries};for(const s of n)if(r.has(s))delete i[s];else throw new Error(`Key ${s} not found in enum`);return new dt({...t,checks:[],..._(o),entries:i})}});function ft(e,t){return new dt({type:"enum",entries:Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e,..._(t)})}var ol=g("ZodTransform",(e,t)=>{ja.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Yc(e,r,n,o),e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new ar(e.constructor.name);r.addIssue=i=>{if(typeof i=="string")r.issues.push(ge(i,r.value,t));else{const s=i;s.fatal&&(s.continue=!1),s.code??(s.code="custom"),s.input??(s.input=r.value),s.inst??(s.inst=e),r.issues.push(ge(s))}};const o=t.transform(r.value,r);return o instanceof Promise?o.then(i=>(r.value=i,r.fallback=!0,r)):(r.value=o,r.fallback=!0,r)}});function il(e){return new ol({type:"transform",transform:e})}var en=g("ZodOptional",(e,t)=>{$r.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Vr(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function tn(e){return new en({type:"optional",innerType:e})}var sl=g("ZodExactOptional",(e,t)=>{Ma.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Vr(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function al(e){return new sl({type:"optional",innerType:e})}var cl=g("ZodNullable",(e,t)=>{Fa.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>ru(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function rn(e){return new cl({type:"nullable",innerType:e})}var ul=g("ZodDefault",(e,t)=>{Ba.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>ou(e,r,n,o),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function ll(e,t){return new ul({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():fr(t)}})}var dl=g("ZodPrefault",(e,t)=>{Ga.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>iu(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function fl(e,t){return new dl({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():fr(t)}})}var nn=g("ZodNonOptional",(e,t)=>{qa.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>nu(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function pl(e,t){return new nn({type:"nonoptional",innerType:e,..._(t)})}var gl=g("ZodCatch",(e,t)=>{Ja.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>su(e,r,n,o),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function ml(e,t){return new gl({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}var hl=g("ZodPipe",(e,t)=>{Va.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>au(e,r,n,o),e.in=t.in,e.out=t.out});function on(e,t){return new hl({type:"pipe",in:e,out:t})}var yl=g("ZodReadonly",(e,t)=>{Wa.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>cu(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function _l(e){return new yl({type:"readonly",innerType:e})}var vl=g("ZodCustom",(e,t)=>{Ha.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Kc(e,r,n,o)});function bl(e,t={}){return jc(vl,e,t)}function wl(e,t){return Mc(e,t)}var kl=K({sku:L(),name:L(),imageUrl:L().url().optional(),price:L().optional(),originalPrice:L().optional(),discountPercent:ye().optional(),url:L().url(),brand:L().optional(),rating:ye().min(0).max(5).optional(),reviewCount:ye().int().nonnegative().optional()}),Sl=K({layout:ft(["grid","carousel"]).optional(),columns:ye().int().positive().optional()}),El=K({product:kl,index:ye().int().nonnegative(),discountType:ft(["strike-through","badge","inline"]).optional()}),Cl=K({sku:L(),label:L().optional(),cartCode:L()}),Tl=K({actions:Qr(K({label:L(),action:K({title:L(),type:L(),payload:lt().optional()})}))}),xl=K({message:L().optional()}),zl={components:{ProductGrid:{schema:Sl,description:"Outer grid or carousel container for similar products."},ProductCard:{schema:El,description:"A single product card with image, title, price, and actions."},AddToCartButton:{schema:Cl,description:"Add-to-cart CTA rendered inside or below a product card."},QuickActions:{schema:Tl,description:"A row of quick-action buttons below product info."},EmptyState:{schema:xl,description:"Empty state shown when no similar products are available."}}};q.GengageSimRel=Qt,q.createDefaultSimRelUISpecRegistry=Kt,q.createSimRelRenderer=Vi,q.createSimRelWidget=xi,q.defaultSimRelUnknownUISpecRenderer=Ye,q.renderSimRelUISpec=Yt,q.simRelCatalog=zl})(this.Gengage=this.Gengage||{});
111
+ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(const a of e.seen.entries()){const s=a[1];if(t===a[0]){i(a);continue}if(e.external){const c=e.external.registry.get(a[0])?.id;if(t!==a[0]&&c){i(a);continue}}if(e.metadataRegistry.get(a[0])?.id){i(a);continue}if(s.cycle){i(a);continue}if(s.count>1&&e.reused==="ref"){i(a);continue}}}function Kr(e,t){const r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");const n=s=>{const c=e.seen.get(s);if(c.ref===null)return;const u=c.def??c.schema,l={...u},d=c.ref;if(c.ref=null,d){n(d);const m=e.seen.get(d),h=m.schema;if(h.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(u.allOf=u.allOf??[],u.allOf.push(h)):Object.assign(u,h),Object.assign(u,l),s._zod.parent===d)for(const p in u)p==="$ref"||p==="allOf"||p in l||delete u[p];if(h.$ref&&m.def)for(const p in u)p==="$ref"||p==="allOf"||p in m.def&&JSON.stringify(u[p])===JSON.stringify(m.def[p])&&delete u[p]}const f=s._zod.parent;if(f&&f!==d){n(f);const m=e.seen.get(f);if(m?.schema.$ref&&(u.$ref=m.schema.$ref,m.def))for(const h in u)h==="$ref"||h==="allOf"||h in m.def&&JSON.stringify(u[h])===JSON.stringify(m.def[h])&&delete u[h]}e.override({zodSchema:s,jsonSchema:u,path:c.path??[]})};for(const s of[...e.seen.entries()].reverse())n(s[0]);const o={};if(e.target==="draft-2020-12"?o.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?o.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?o.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){const s=e.external.registry.get(t)?.id;if(!s)throw new Error("Schema is missing an `id` property");o.$id=e.external.uri(s)}Object.assign(o,r.def??r.schema);const i=e.metadataRegistry.get(t)?.id;i!==void 0&&o.id===i&&delete o.id;const a=e.external?.defs??{};for(const s of e.seen.entries()){const c=s[1];c.def&&c.defId&&(c.def.id===c.defId&&delete c.def.id,a[c.defId]=c.def)}e.external||Object.keys(a).length>0&&(e.target==="draft-2020-12"?o.$defs=a:o.definitions=a);try{const s=JSON.parse(JSON.stringify(o));return Object.defineProperty(s,"~standard",{value:{...t["~standard"],jsonSchema:{input:Le(t,"input",e.processors),output:Le(t,"output",e.processors)}},enumerable:!1,writable:!1}),s}catch{throw new Error("Error converting schema to JSON.")}}function N(e,t){const r=t??{seen:new Set};if(r.seen.has(e))return!1;r.seen.add(e);const n=e._zod.def;if(n.type==="transform")return!0;if(n.type==="array")return N(n.element,r);if(n.type==="set")return N(n.valueType,r);if(n.type==="lazy")return N(n.getter(),r);if(n.type==="promise"||n.type==="optional"||n.type==="nonoptional"||n.type==="nullable"||n.type==="readonly"||n.type==="default"||n.type==="prefault")return N(n.innerType,r);if(n.type==="intersection")return N(n.left,r)||N(n.right,r);if(n.type==="record"||n.type==="map")return N(n.keyType,r)||N(n.valueType,r);if(n.type==="pipe")return e._zod.traits.has("$ZodCodec")?!0:N(n.in,r)||N(n.out,r);if(n.type==="object"){for(const o in n.shape)if(N(n.shape[o],r))return!0;return!1}if(n.type==="union"){for(const o of n.options)if(N(o,r))return!0;return!1}if(n.type==="tuple"){for(const o of n.items)if(N(o,r))return!0;return!!(n.rest&&N(n.rest,r))}return!1}var Jc=(e,t={})=>r=>{const n=Wr({...r,processors:t});return z(e,n),Hr(n,e),Kr(n,e)},Le=(e,t,r={})=>n=>{const{libraryOptions:o,target:i}=n??{},a=Wr({...o??{},target:i,io:t,processors:r});return z(e,a),Hr(a,e),Kr(a,e)},Vc={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},Wc=(e,t,r,n)=>{const o=r;o.type="string";const{minimum:i,maximum:a,format:s,patterns:c,contentEncoding:u}=e._zod.bag;if(typeof i=="number"&&(o.minLength=i),typeof a=="number"&&(o.maxLength=a),s&&(o.format=Vc[s]??s,o.format===""&&delete o.format,s==="time"&&delete o.format),u&&(o.contentEncoding=u),c&&c.size>0){const l=[...c];l.length===1?o.pattern=l[0].source:l.length>1&&(o.allOf=[...l.map(d=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:d.source}))])}},Hc=(e,t,r,n)=>{const o=r,{minimum:i,maximum:a,format:s,multipleOf:c,exclusiveMaximum:u,exclusiveMinimum:l}=e._zod.bag;typeof s=="string"&&s.includes("int")?o.type="integer":o.type="number";const d=typeof l=="number"&&l>=(i??Number.NEGATIVE_INFINITY),f=typeof u=="number"&&u<=(a??Number.POSITIVE_INFINITY),m=t.target==="draft-04"||t.target==="openapi-3.0";d?m?(o.minimum=l,o.exclusiveMinimum=!0):o.exclusiveMinimum=l:typeof i=="number"&&(o.minimum=i),f?m?(o.maximum=u,o.exclusiveMaximum=!0):o.exclusiveMaximum=u:typeof a=="number"&&(o.maximum=a),typeof c=="number"&&(o.multipleOf=c)},Kc=(e,t,r,n)=>{r.not={}},Yc=(e,t,r,n)=>{},Xc=(e,t,r,n)=>{const o=e._zod.def,i=fr(o.entries);i.every(a=>typeof a=="number")&&(r.type="number"),i.every(a=>typeof a=="string")&&(r.type="string"),r.enum=i},Qc=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},eu=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},tu=(e,t,r,n)=>{const o=r,i=e._zod.def,{minimum:a,maximum:s}=e._zod.bag;typeof a=="number"&&(o.minItems=a),typeof s=="number"&&(o.maxItems=s),o.type="array",o.items=z(i.element,t,{...n,path:[...n.path,"items"]})},ru=(e,t,r,n)=>{const o=r,i=e._zod.def;o.type="object",o.properties={};const a=i.shape;for(const u in a)o.properties[u]=z(a[u],t,{...n,path:[...n.path,"properties",u]});const s=new Set(Object.keys(a)),c=new Set([...s].filter(u=>{const l=i.shape[u]._zod;return t.io==="input"?l.optin===void 0:l.optout===void 0}));c.size>0&&(o.required=Array.from(c)),i.catchall?._zod.def.type==="never"?o.additionalProperties=!1:i.catchall?i.catchall&&(o.additionalProperties=z(i.catchall,t,{...n,path:[...n.path,"additionalProperties"]})):t.io==="output"&&(o.additionalProperties=!1)},nu=(e,t,r,n)=>{const o=e._zod.def,i=o.inclusive===!1,a=o.options.map((s,c)=>z(s,t,{...n,path:[...n.path,i?"oneOf":"anyOf",c]}));i?r.oneOf=a:r.anyOf=a},ou=(e,t,r,n)=>{const o=e._zod.def,i=z(o.left,t,{...n,path:[...n.path,"allOf",0]}),a=z(o.right,t,{...n,path:[...n.path,"allOf",1]}),s=c=>"allOf"in c&&Object.keys(c).length===1;r.allOf=[...s(i)?i.allOf:[i],...s(a)?a.allOf:[a]]},iu=(e,t,r,n)=>{const o=e._zod.def,i=z(o.innerType,t,n),a=t.seen.get(e);t.target==="openapi-3.0"?(a.ref=o.innerType,r.nullable=!0):r.anyOf=[i,{type:"null"}]},au=(e,t,r,n)=>{const o=e._zod.def;z(o.innerType,t,n);const i=t.seen.get(e);i.ref=o.innerType},su=(e,t,r,n)=>{const o=e._zod.def;z(o.innerType,t,n);const i=t.seen.get(e);i.ref=o.innerType,r.default=JSON.parse(JSON.stringify(o.defaultValue))},cu=(e,t,r,n)=>{const o=e._zod.def;z(o.innerType,t,n);const i=t.seen.get(e);i.ref=o.innerType,t.io==="input"&&(r._prefault=JSON.parse(JSON.stringify(o.defaultValue)))},uu=(e,t,r,n)=>{const o=e._zod.def;z(o.innerType,t,n);const i=t.seen.get(e);i.ref=o.innerType;let a;try{a=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=a},lu=(e,t,r,n)=>{const o=e._zod.def,i=o.in._zod.traits.has("$ZodTransform"),a=t.io==="input"?i?o.out:o.in:o.out;z(a,t,n);const s=t.seen.get(e);s.ref=a},du=(e,t,r,n)=>{const o=e._zod.def;z(o.innerType,t,n);const i=t.seen.get(e);i.ref=o.innerType,r.readOnly=!0},Yr=(e,t,r,n)=>{const o=e._zod.def;z(o.innerType,t,n);const i=t.seen.get(e);i.ref=o.innerType},fu=g("ZodISODateTime",(e,t)=>{bs.init(e,t),T.init(e,t)});function pu(e){return Sc(fu,e)}var gu=g("ZodISODate",(e,t)=>{ws.init(e,t),T.init(e,t)});function mu(e){return Ec(gu,e)}var hu=g("ZodISOTime",(e,t)=>{ks.init(e,t),T.init(e,t)});function yu(e){return Cc(hu,e)}var _u=g("ZodISODuration",(e,t)=>{Ss.init(e,t),T.init(e,t)});function vu(e){return Tc(_u,e)}var bu=(e,t)=>{vr.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:r=>fa(e,r)},flatten:{value:r=>da(e,r)},addIssue:{value:r=>{e.issues.push(r),e.message=JSON.stringify(e.issues,et,2)}},addIssues:{value:r=>{e.issues.push(...r),e.message=JSON.stringify(e.issues,et,2)}},isEmpty:{get(){return e.issues.length===0}}})},Z=g("ZodError",bu,{Parent:Error}),wu=it(Z),ku=at(Z),Su=ze(Z),Eu=Ie(Z),Cu=ma(Z),Tu=ha(Z),xu=ya(Z),Au=_a(Z),zu=va(Z),Iu=ba(Z),Pu=wa(Z),$u=ka(Z),Xr=new WeakMap;function ye(e,t,r){const n=Object.getPrototypeOf(e);let o=Xr.get(n);if(o||(o=new Set,Xr.set(n,o)),!o.has(t)){o.add(t);for(const i in r){const a=r[i];Object.defineProperty(n,i,{configurable:!0,enumerable:!1,get(){const s=a.bind(this);return Object.defineProperty(this,i,{configurable:!0,writable:!0,enumerable:!0,value:s}),s},set(s){Object.defineProperty(this,i,{configurable:!0,writable:!0,enumerable:!0,value:s})}})}}}var A=g("ZodType",(e,t)=>(x.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:Le(e,"input"),output:Le(e,"output")}}),e.toJSONSchema=Jc(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.parse=(r,n)=>wu(e,r,n,{callee:e.parse}),e.safeParse=(r,n)=>Su(e,r,n),e.parseAsync=async(r,n)=>ku(e,r,n,{callee:e.parseAsync}),e.safeParseAsync=async(r,n)=>Eu(e,r,n),e.spa=e.safeParseAsync,e.encode=(r,n)=>Cu(e,r,n),e.decode=(r,n)=>Tu(e,r,n),e.encodeAsync=async(r,n)=>xu(e,r,n),e.decodeAsync=async(r,n)=>Au(e,r,n),e.safeEncode=(r,n)=>zu(e,r,n),e.safeDecode=(r,n)=>Iu(e,r,n),e.safeEncodeAsync=async(r,n)=>Pu(e,r,n),e.safeDecodeAsync=async(r,n)=>$u(e,r,n),ye(e,"ZodType",{check(...r){const n=this.def;return this.clone(W(n,{checks:[...n.checks??[],...r.map(o=>typeof o=="function"?{_zod:{check:o,def:{check:"custom"},onattach:[]}}:o)]}),{parent:!0})},with(...r){return this.check(...r)},clone(r,n){return H(this,r,n)},brand(){return this},register(r,n){return r.add(this,n),this},refine(r,n){return this.check(Sl(r,n))},superRefine(r,n){return this.check(El(r,n))},overwrite(r){return this.check(ie(r))},optional(){return an(this)},exactOptional(){return ll(this)},nullable(){return sn(this)},nullish(){return an(sn(this))},nonoptional(r){return hl(this,r)},array(){return nn(this)},or(r){return ol([this,r])},and(r){return al(this,r)},transform(r){return un(this,cl(r))},default(r){return pl(this,r)},prefault(r){return ml(this,r)},catch(r){return _l(this,r)},pipe(r){return un(this,r)},readonly(){return wl(this)},describe(r){const n=this.clone();return he.add(n,{description:r}),n},meta(...r){if(r.length===0)return he.get(this);const n=this.clone();return he.add(n,r[0]),n},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(r){return r(this)}}),Object.defineProperty(e,"description",{get(){return he.get(e)?.description},configurable:!0}),e)),Qr=g("_ZodString",(e,t)=>{st.init(e,t),A.init(e,t),e._zod.processJSONSchema=(n,o,i)=>Wc(e,n,o,i);const r=e._zod.bag;e.format=r.format??null,e.minLength=r.minimum??null,e.maxLength=r.maximum??null,ye(e,"_ZodString",{regex(...n){return this.check(Pc(...n))},includes(...n){return this.check(Oc(...n))},startsWith(...n){return this.check(Lc(...n))},endsWith(...n){return this.check(Rc(...n))},min(...n){return this.check(Oe(...n))},max(...n){return this.check(Jr(...n))},length(...n){return this.check(Vr(...n))},nonempty(...n){return this.check(Oe(1,...n))},lowercase(n){return this.check($c(n))},uppercase(n){return this.check(Nc(n))},trim(){return this.check(Dc())},normalize(...n){return this.check(Zc(...n))},toLowerCase(){return this.check(Uc())},toUpperCase(){return this.check(jc())},slugify(){return this.check(Mc())}})}),Nu=g("ZodString",(e,t)=>{st.init(e,t),Qr.init(e,t),e.email=r=>e.check(rc(Ou,r)),e.url=r=>e.check(sc(Lu,r)),e.jwt=r=>e.check(kc(Ku,r)),e.emoji=r=>e.check(cc(Ru,r)),e.guid=r=>e.check(Fr(en,r)),e.uuid=r=>e.check(nc(Re,r)),e.uuidv4=r=>e.check(oc(Re,r)),e.uuidv6=r=>e.check(ic(Re,r)),e.uuidv7=r=>e.check(ac(Re,r)),e.nanoid=r=>e.check(uc(Zu,r)),e.guid=r=>e.check(Fr(en,r)),e.cuid=r=>e.check(lc(Du,r)),e.cuid2=r=>e.check(dc(Uu,r)),e.ulid=r=>e.check(fc(ju,r)),e.base64=r=>e.check(vc(Vu,r)),e.base64url=r=>e.check(bc(Wu,r)),e.xid=r=>e.check(pc(Mu,r)),e.ksuid=r=>e.check(gc(Fu,r)),e.ipv4=r=>e.check(mc(Bu,r)),e.ipv6=r=>e.check(hc(Gu,r)),e.cidrv4=r=>e.check(yc(qu,r)),e.cidrv6=r=>e.check(_c(Ju,r)),e.e164=r=>e.check(wc(Hu,r)),e.datetime=r=>e.check(pu(r)),e.date=r=>e.check(mu(r)),e.time=r=>e.check(yu(r)),e.duration=r=>e.check(vu(r))});function L(e){return tc(Nu,e)}var T=g("ZodStringFormat",(e,t)=>{C.init(e,t),Qr.init(e,t)}),Ou=g("ZodEmail",(e,t)=>{ds.init(e,t),T.init(e,t)}),en=g("ZodGUID",(e,t)=>{us.init(e,t),T.init(e,t)}),Re=g("ZodUUID",(e,t)=>{ls.init(e,t),T.init(e,t)}),Lu=g("ZodURL",(e,t)=>{fs.init(e,t),T.init(e,t)}),Ru=g("ZodEmoji",(e,t)=>{ps.init(e,t),T.init(e,t)}),Zu=g("ZodNanoID",(e,t)=>{gs.init(e,t),T.init(e,t)}),Du=g("ZodCUID",(e,t)=>{ms.init(e,t),T.init(e,t)}),Uu=g("ZodCUID2",(e,t)=>{hs.init(e,t),T.init(e,t)}),ju=g("ZodULID",(e,t)=>{ys.init(e,t),T.init(e,t)}),Mu=g("ZodXID",(e,t)=>{_s.init(e,t),T.init(e,t)}),Fu=g("ZodKSUID",(e,t)=>{vs.init(e,t),T.init(e,t)}),Bu=g("ZodIPv4",(e,t)=>{Es.init(e,t),T.init(e,t)}),Gu=g("ZodIPv6",(e,t)=>{Cs.init(e,t),T.init(e,t)}),qu=g("ZodCIDRv4",(e,t)=>{Ts.init(e,t),T.init(e,t)}),Ju=g("ZodCIDRv6",(e,t)=>{xs.init(e,t),T.init(e,t)}),Vu=g("ZodBase64",(e,t)=>{As.init(e,t),T.init(e,t)}),Wu=g("ZodBase64URL",(e,t)=>{Is.init(e,t),T.init(e,t)}),Hu=g("ZodE164",(e,t)=>{Ps.init(e,t),T.init(e,t)}),Ku=g("ZodJWT",(e,t)=>{Ns.init(e,t),T.init(e,t)}),tn=g("ZodNumber",(e,t)=>{zr.init(e,t),A.init(e,t),e._zod.processJSONSchema=(n,o,i)=>Hc(e,n,o,i),ye(e,"ZodNumber",{gt(n,o){return this.check(Gr(n,o))},gte(n,o){return this.check(lt(n,o))},min(n,o){return this.check(lt(n,o))},lt(n,o){return this.check(Br(n,o))},lte(n,o){return this.check(ut(n,o))},max(n,o){return this.check(ut(n,o))},int(n){return this.check(rn(n))},safe(n){return this.check(rn(n))},positive(n){return this.check(Gr(0,n))},nonnegative(n){return this.check(lt(0,n))},negative(n){return this.check(Br(0,n))},nonpositive(n){return this.check(ut(0,n))},multipleOf(n,o){return this.check(qr(n,o))},step(n,o){return this.check(qr(n,o))},finite(){return this}});const r=e._zod.bag;e.minValue=Math.max(r.minimum??Number.NEGATIVE_INFINITY,r.exclusiveMinimum??Number.NEGATIVE_INFINITY)??null,e.maxValue=Math.min(r.maximum??Number.POSITIVE_INFINITY,r.exclusiveMaximum??Number.POSITIVE_INFINITY)??null,e.isInt=(r.format??"").includes("int")||Number.isSafeInteger(r.multipleOf??.5),e.isFinite=!0,e.format=r.format??null});function _e(e){return xc(tn,e)}var Yu=g("ZodNumberFormat",(e,t)=>{Os.init(e,t),tn.init(e,t)});function rn(e){return Ac(Yu,e)}var Xu=g("ZodUnknown",(e,t)=>{Ls.init(e,t),A.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Yc(e,r,n,o)});function dt(){return zc(Xu)}var Qu=g("ZodNever",(e,t)=>{Rs.init(e,t),A.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Kc(e,r,n,o)});function el(e){return Ic(Qu,e)}var tl=g("ZodArray",(e,t)=>{Zs.init(e,t),A.init(e,t),e._zod.processJSONSchema=(r,n,o)=>tu(e,r,n,o),e.element=t.element,ye(e,"ZodArray",{min(r,n){return this.check(Oe(r,n))},nonempty(r){return this.check(Oe(1,r))},max(r,n){return this.check(Jr(r,n))},length(r,n){return this.check(Vr(r,n))},unwrap(){return this.element}})});function nn(e,t){return Fc(tl,e,t)}var rl=g("ZodObject",(e,t)=>{Us.init(e,t),A.init(e,t),e._zod.processJSONSchema=(r,n,o)=>ru(e,r,n,o),E(e,"shape",()=>t.shape),ye(e,"ZodObject",{keyof(){return pt(Object.keys(this._zod.def.shape))},catchall(r){return this.clone({...this._zod.def,catchall:r})},passthrough(){return this.clone({...this._zod.def,catchall:dt()})},loose(){return this.clone({...this._zod.def,catchall:dt()})},strict(){return this.clone({...this._zod.def,catchall:el()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(r){return ia(this,r)},safeExtend(r){return aa(this,r)},merge(r){return sa(this,r)},pick(r){return na(this,r)},omit(r){return oa(this,r)},partial(...r){return ca(on,this,r[0])},required(...r){return ua(cn,this,r[0])}})});function K(e,t){return new rl({type:"object",shape:e??{},..._(t)})}var nl=g("ZodUnion",(e,t)=>{js.init(e,t),A.init(e,t),e._zod.processJSONSchema=(r,n,o)=>nu(e,r,n,o),e.options=t.options});function ol(e,t){return new nl({type:"union",options:e,..._(t)})}var il=g("ZodIntersection",(e,t)=>{Ms.init(e,t),A.init(e,t),e._zod.processJSONSchema=(r,n,o)=>ou(e,r,n,o)});function al(e,t){return new il({type:"intersection",left:e,right:t})}var ft=g("ZodEnum",(e,t)=>{Fs.init(e,t),A.init(e,t),e._zod.processJSONSchema=(n,o,i)=>Xc(e,n,o,i),e.enum=t.entries,e.options=Object.values(t.entries);const r=new Set(Object.keys(t.entries));e.extract=(n,o)=>{const i={};for(const a of n)if(r.has(a))i[a]=t.entries[a];else throw new Error(`Key ${a} not found in enum`);return new ft({...t,checks:[],..._(o),entries:i})},e.exclude=(n,o)=>{const i={...t.entries};for(const a of n)if(r.has(a))delete i[a];else throw new Error(`Key ${a} not found in enum`);return new ft({...t,checks:[],..._(o),entries:i})}});function pt(e,t){return new ft({type:"enum",entries:Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e,..._(t)})}var sl=g("ZodTransform",(e,t)=>{Bs.init(e,t),A.init(e,t),e._zod.processJSONSchema=(r,n,o)=>eu(e,r,n,o),e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new dr(e.constructor.name);r.addIssue=i=>{if(typeof i=="string")r.issues.push(me(i,r.value,t));else{const a=i;a.fatal&&(a.continue=!1),a.code??(a.code="custom"),a.input??(a.input=r.value),a.inst??(a.inst=e),r.issues.push(me(a))}};const o=t.transform(r.value,r);return o instanceof Promise?o.then(i=>(r.value=i,r.fallback=!0,r)):(r.value=o,r.fallback=!0,r)}});function cl(e){return new sl({type:"transform",transform:e})}var on=g("ZodOptional",(e,t)=>{Rr.init(e,t),A.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Yr(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function an(e){return new on({type:"optional",innerType:e})}var ul=g("ZodExactOptional",(e,t)=>{Gs.init(e,t),A.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Yr(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function ll(e){return new ul({type:"optional",innerType:e})}var dl=g("ZodNullable",(e,t)=>{qs.init(e,t),A.init(e,t),e._zod.processJSONSchema=(r,n,o)=>iu(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function sn(e){return new dl({type:"nullable",innerType:e})}var fl=g("ZodDefault",(e,t)=>{Js.init(e,t),A.init(e,t),e._zod.processJSONSchema=(r,n,o)=>su(e,r,n,o),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function pl(e,t){return new fl({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():hr(t)}})}var gl=g("ZodPrefault",(e,t)=>{Vs.init(e,t),A.init(e,t),e._zod.processJSONSchema=(r,n,o)=>cu(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function ml(e,t){return new gl({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():hr(t)}})}var cn=g("ZodNonOptional",(e,t)=>{Ws.init(e,t),A.init(e,t),e._zod.processJSONSchema=(r,n,o)=>au(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function hl(e,t){return new cn({type:"nonoptional",innerType:e,..._(t)})}var yl=g("ZodCatch",(e,t)=>{Hs.init(e,t),A.init(e,t),e._zod.processJSONSchema=(r,n,o)=>uu(e,r,n,o),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function _l(e,t){return new yl({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}var vl=g("ZodPipe",(e,t)=>{Ks.init(e,t),A.init(e,t),e._zod.processJSONSchema=(r,n,o)=>lu(e,r,n,o),e.in=t.in,e.out=t.out});function un(e,t){return new vl({type:"pipe",in:e,out:t})}var bl=g("ZodReadonly",(e,t)=>{Ys.init(e,t),A.init(e,t),e._zod.processJSONSchema=(r,n,o)=>du(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function wl(e){return new bl({type:"readonly",innerType:e})}var kl=g("ZodCustom",(e,t)=>{Xs.init(e,t),A.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Qc(e,r,n,o)});function Sl(e,t={}){return Bc(kl,e,t)}function El(e,t){return Gc(e,t)}var Cl=K({sku:L(),name:L(),imageUrl:L().url().optional(),price:L().optional(),originalPrice:L().optional(),discountPercent:_e().optional(),url:L().url(),brand:L().optional(),rating:_e().min(0).max(5).optional(),reviewCount:_e().int().nonnegative().optional()}),Tl=K({layout:pt(["grid","carousel"]).optional(),columns:_e().int().positive().optional()}),xl=K({product:Cl,index:_e().int().nonnegative(),discountType:pt(["strike-through","badge","inline"]).optional()}),Al=K({sku:L(),label:L().optional(),cartCode:L()}),zl=K({actions:nn(K({label:L(),action:K({title:L(),type:L(),payload:dt().optional()})}))}),Il=K({message:L().optional()}),Pl={components:{ProductGrid:{schema:Tl,description:"Outer grid or carousel container for similar products."},ProductCard:{schema:xl,description:"A single product card with image, title, price, and actions."},AddToCartButton:{schema:Al,description:"Add-to-cart CTA rendered inside or below a product card."},QuickActions:{schema:zl,description:"A row of quick-action buttons below product info."},EmptyState:{schema:Il,description:"Empty state shown when no similar products are available."}}};q.GengageSimRel=nr,q.createDefaultSimRelUISpecRegistry=er,q.createSimRelRenderer=Ki,q.createSimRelWidget=Ii,q.defaultSimRelUnknownUISpecRenderer=Xe,q.renderSimRelUISpec=tr,q.simRelCatalog=Pl})(this.Gengage=this.Gengage||{});