@gengage/assistant-fe 0.6.25 → 0.6.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,18 +1,18 @@
1
- (function(G){Object.defineProperty(G,Symbol.toStringTag,{value:"Module"});var an=({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 sn(e){const t=document.createElement("div");if(t.className=e.containerClassName,!e.spec.elements[e.spec.root])return t;const r=e.unknownRenderer??an,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 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"]),dt={"*":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(),a=n.slice(o+1).trim();fn.has(i)&&(pn.test(a)||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=dt["*"]??new Set,i=dt[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(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 s=Array.from(r.childNodes);for(const c of s)Re(c,r)}var ft=["http:","https:"];function _e(e){const t=e.trim();if(!t)return!1;if(t.startsWith("/")&&!t.startsWith("//"))return!0;try{return ft.includes(new URL(t).protocol)}catch{return!1}}function pt(e){if(e.startsWith("/")&&!e.startsWith("//"))return!0;try{const t=new URL(e);return ft.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 gt(e){Ze("gengage-show",{gengage_widget:e})}function _n(e,t){Ze("gengage-cart-add",{gengage_sku:e,gengage_quantity:t})}function ae(e,t){window.dispatchEvent(new CustomEvent(e,{detail:t,bubbles:!1}))}function mt(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 ht={"--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{...ht};const t={...ht,...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))"},q="gengage-global-toast-root",yt="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"],_t=!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 vt(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)?vt(e)?"Bağlantı sorunu oluştu. Lütfen tekrar deneyin.":"Connection issue. Please try again.":vt(e)?"Bir hata oluştu. Lütfen tekrar deneyin.":"Something went wrong. Please try again."}function An(){_t||typeof window>"u"||typeof document>"u"||(_t=!0,mt("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=In();$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=Pn(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(()=>{bt()},Nn(e.durationMs)))}function bt(){if(typeof document>"u")return;const e=document.getElementById(q);e&&(e.classList.remove(De),e.innerHTML="",Y&&(clearTimeout(Y),Y=null))}function Pn(e){switch(e){case"chat":return"Chat warning";case"qna":return"QnA warning";case"simrel":return"Widget warning";default:return"Connection warning"}}function In(){const e=document.getElementById(q);if(e instanceof HTMLElement)return e;const t=document.createElement("div");return t.id=q,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(yt))return;const e=document.createElement("style");e.id=yt;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
- #${q} {
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=`
2
+ #${J} {
3
3
  position: fixed;
4
4
  top: 16px;
5
5
  right: 16px;
6
6
  z-index: 2147483646;
7
7
  pointer-events: none;
8
8
  }
9
- #${q}.${De} {
9
+ #${J}.${De} {
10
10
  pointer-events: auto;
11
11
  }
12
- #${q} .gengage-global-toast {
12
+ #${J} .gengage-global-toast {
13
13
  min-width: 260px;
14
14
  max-width: min(92vw, 420px);
15
- border-radius: var(--radius-card, ${a});
15
+ border-radius: var(--radius-card, ${s});
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})));
@@ -24,13 +24,13 @@
24
24
  line-height: 1.4;
25
25
  animation: gengage-global-toast-in 180ms ease-out forwards;
26
26
  }
27
- #${q} .gengage-global-toast-title {
27
+ #${J} .gengage-global-toast-title {
28
28
  margin: 0 0 4px;
29
29
  font-size: 12px;
30
30
  font-weight: 700;
31
- color: var(--text-muted, ${s});
31
+ color: var(--text-muted, ${a});
32
32
  }
33
- #${q} .gengage-global-toast-message {
33
+ #${J} .gengage-global-toast-message {
34
34
  margin: 0;
35
35
  font-weight: 500;
36
36
  }
@@ -44,68 +44,68 @@
44
44
  transform: translateY(0);
45
45
  }
46
46
  }
47
- `,document.head.appendChild(e)}var se=null;function Ln(){if(se!==null)return se;try{se=localStorage.getItem("gengage:debug")==="1"}catch{se=!1}return se}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.25".trim(),"0.6.25".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=mt("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,wt=!1,re=null,ce=null,X=!1;function qn(e){return typeof e=="string"&&e.toLowerCase().startsWith("tr")}function kt(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 St(){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 Et(){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(),bt()}function be(){re||X||F.size===0||(re=setTimeout(async()=>{re=null,!(X||F.size===0)&&!await Et()&&F.size>0&&(X=!0,Ue({source:"sdk",message:kt(St()),sticky:!0}),ce||(ce=setInterval(async()=>{if(F.size===0){ve();return}await Et()&&(ve(),be())},Bn)))},Fn))}function Vn(){wt||typeof window>"u"||(wt=!0,window.addEventListener("online",()=>{ve(),be()}),window.addEventListener("offline",()=>{F.size===0||X||(X=!0,Me(),Ue({source:"sdk",message:kt(St()),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 Ct(e,t){return`${Kn(t?.middlewareUrl)}/chat${Hn[e]}`}function Tt(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 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 xt(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 Tt(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 a=JSON.parse(i);if(!Tt(a))continue;if(t.onEvent(a),a.type==="done")return t.onDone?.(),!0}catch{}return!1}return!1}}async function zt(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(y=>(clearTimeout(u),y)),new Promise(y=>{u=setTimeout(()=>y(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 y of m)if(xt(y,t))return}if(o.trim()&&xt(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 Xn=7200*1e3,At=200,Qn=5*1024*1024,eo="gengage_request_response_cache",to=1,U="responses",ro=new Set(["addToCart","like"]),j=new Map,Pt=null;async function It(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 a=await fetch(e,t);return a.ok&&ao(n,a.clone(),o,{ttlMs:r.ttlMs??Xn,maxEntries:r.maxEntries??At,maxBodyBytes:r.maxBodyBytes??Qn}),a}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),$t(At),n):null}async function ao(e,t,r,n){try{const o=await t.text();if(yo(o)>n.maxBodyBytes||so(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),$t(n.maxEntries),await Fe(i),await go(n.maxEntries,r)}catch{}}function so(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 $t(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:(Pt??=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)}),Pt)}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),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 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 Nt=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,Nt);const n=[...Ge(e.chosen_attribute,{stripLeadingStopWords:!0}),...Ge(e.short_name)];return n.filter((o,i)=>n.indexOf(o)===i).slice(0,Nt)}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 Ot(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 Lt(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 Rt(t);case"quick_qna":return Zt(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 li(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=I(e.spec);return n?typeof n.root=="string"&&I(n.elements)!==null:!1}case"action":{const r=I(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=w(e.payload.text,e.payload.plain_text)??"",r=w(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 Eo(e){return Ut((e.payload.actions??[]).map(t=>{const r=w(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.style_variations)?e.payload.style_variations:[]).map(a=>{const s=w(a.style_label);if(!s)return null;const c=w(a.style_mood),u=w(a.image_url??void 0),l=(Array.isArray(a.product_list)?a.product_list:[]).map(f=>{const m=I(f);return m?We(I(m.product_detail)??I(m.product)??m):null}).filter(le),d=Array.isArray(a.recommendation_groups)?a.recommendation_groups.map(f=>({label:w(f.label)??"",reason:w(f.reason)??"",skus:Array.isArray(f.skus)?f.skus.filter(m=>typeof m=="string"&&m.trim().length>0):[]})):[];return{style_label:s,style_mood:c??"",...u?{image_url:u}:{},...typeof a.status=="string"?{status:a.status}:{},product_list:l,recommendation_groups:d}}).filter(le),r=e.payload.product_list??[],n=wo(e.payload.source)&&t.length>0?t[0].product_list:null,o=n?ri(n,"chat"):jt(r,"chat");o.panelHint="panel";const i=o.spec.elements[o.spec.root];if(i){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),t.length>0&&(a.styleVariations=t),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 s=e.payload.sequence_id??e.payload.search_id;typeof s=="string"&&s.length>0&&(a.sequenceId=s),Object.keys(a).length>0&&(i.props={...i.props,...a})}return o}function To(e){const t=e.payload.productDetails;if(!t)return oi("chat");const r=J(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=jt(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,a=[];for(const h of t){const k=J(h);a.push(k)}const s=Ao(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(h=>h.sku===c)??a[0]:a[0],l=[];if(Array.isArray(n?.key_differences))for(const h of n.key_differences)typeof h=="string"&&l.push(h);const d=Mt(n?.special_considerations),f=n?.recommended_choice,m=n?.winner_hits,y={};for(const h of a){const k=h.sku;k&&(y[k]={title:h.name??k,type:"launchSingleProduct",payload:{sku:k}})}const p={products:a,attributes:s,highlights:l,productActions:y};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 y of f){const p=e[y];if(!p||!Array.isArray(p))continue;const h=d[y]??y;m.push({label:h,values:p.map(k=>typeof k=="string"?k:String(k??""))})}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:Po(a)).filter(d=>d!=="name"&&d!=="name_short"&&!d.endsWith("_short")),l=[];for(const d of u){const f=s.map(y=>{const p=a[y];if(!p||typeof p!="object")return"";const h=p[`${d}_short`],k=p[d];return Io(h??k)});if(f.every(y=>y.length===0))continue;const m=c[d]??d;l.push({label:m,values:f})}return l}function Po(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 Io(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=w(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:w(e.payload.to)}}}function Do(e){return{type:"error",code:"BACKEND_ERROR",message:w(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,a=typeof t.theme=="string"?t.theme:void 0;return i!==void 0&&(o.type=i),a!==void 0&&(o.theme=a),Zt({type:"quick_qna",payload:o})}const r=I(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),Rt({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=I(t.payload)??void 0;return i!==void 0&&(o.type=i),s!==void 0&&(o.payload=s),a!==void 0&&(o.theme=a),Ve({type:"text",payload:o})}return{type:"metadata",sessionId:"",model:"",meta:{launcherAction:t}}}function Ve(e){const t={text:w(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 ni(e.payload,"qna")}function Rt(e){const t=w(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 Zt(e){return Ut((e.payload.action_list??[]).map(t=>{const r=w(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=ii(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 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 a=w(i.name)??"",s=w(i.description),c=w(i.highlight),u=Array.isArray(i.labels)?Mt(i.labels):[],l=w(i.sku,i.repr_sku),d=w(i.image,i.repr_image),f=Vo(i,a,l),m=(Array.isArray(i.group_products)?i.group_products:[]).map(h=>{const k=I(h);return k?We(k):null}).filter(le),y=d??w(...m.map(h=>h.imageUrl));if(a&&m.length>0){const h={groupName:a,products:m};y&&(h.image=y),s&&(h.description=s),c&&(h.highlight=c),u.length>0&&(h.labels=u),r.push(h)}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 Vo(e,t,r){const n=I(e.requestDetails);if(n){if(n.type!=="findSimilar")return R(n,t);const a={...I(n.payload)??{}};r&&!qe(a.sku)&&(a.sku=r);const s=Je(e.group_skus);return s.length>0&&(a.group_skus=s),R({...n,payload:Ot(a)},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:Ot(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=w(o.short_name,o.chosen_attribute,o.detailed_user_message)??`Search ${n+1}`,a={},s=w(o.detailed_user_message);s&&(a.text=s);const c=I(I(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(k=>typeof k=="string"));const l=w(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 y={shortName:i,action:m},p=w(o.detailed_user_message);p&&p!==i&&(y.detailedMessage=p);const h=bo(o);h&&h!==i&&h!==(p??"")&&(y.whyDifferent=h),typeof o.image=="string"&&(y.image=o.image),r.push(y)}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,w(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??"",a=(o.product_list??[]).map(J);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 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 Dt(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 Ut(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 jt(e,t){const r={},n=[];for(let o=0;o<e.length;o++){const i=e[o];if(!i)continue;const a=J(i),s=`product-${o}`;n.push(s),r[s]=Dt(a,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){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]=Dt(i,o)}return r.root={type:"ProductGrid",props:{layout:"grid"},children:n},{type:"ui_spec",widget:t,spec:{root:"root",elements:r}}}function ni(e,t){return{type:"ui_spec",widget:t,spec:{root:"root",elements:{root:{type:"ProductCard",props:{product:J(e),index:0}}}}}}function oi(e){return{type:"ui_spec",widget:e,spec:{root:"root",elements:{root:{type:"ActionButtons",props:{buttons:[]},children:[]}}}}}function ii(e){const t=w(e.sku),r=w(e.short_name),n={...I(e.product_item)??e},o=w(e.discount_reason,e.discountReason);return o&&!w(n.discount_reason,n.discountReason)&&(n.discount_reason=o),We(n,t,r)}function We(e,t,r){const n=w(e.sku,t),o=w(e.name,r);if(!n||!o)return null;const i={sku:n,name:o},a=w(e.brand);a&&(i.brand=a);const s=w(e.url);s&&(i.url=s);const c=ai(e.images);if(c.length>0)i.images=c;else{const p=w(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=w(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 y=w(e.discount_reason,e.discountReason);return y&&(i.discount_reason=y),J(i)}function R(e,t){const r=I(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 I(e){return!e||typeof e!="object"||Array.isArray(e)?null:e}function w(...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 si=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 J(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=w(e.brand),a=w(e.name)??e.sku,s=i&&!a.toLowerCase().startsWith(i.toLowerCase())?`${i} ${a}`:a,c={sku:e.sku,name:s,url:w(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))si.has(m)||(d[m]=l[m],f=!0);return f&&(c.extras=d),c}function ci(e){return e.results.map(J)}function ui(e){return e.product_groupings.map(t=>{const r={name:t.name,products:(t.group_products??[]).map(J)};return t.highlight!==void 0&&(r.highlight=t.highlight),r})}function li(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 di(e,t){const r=[],n={onEvent:o=>{const i=Lt(o);!i||i.type!=="ui_spec"||r.push(...Ft(i.spec.elements))}};return t!==void 0&&(n.signal=t),await zt(e,n),r}async function fi(e,t,r){const n=Ct("similar_products",t),o={method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)};r!==void 0&&(o.signal=r);const i=await It(n,o);if(!i.ok)throw new Error(`HTTP ${i.status}: ${i.statusText}`);if(Bt(i))return di(i,r);const a=await i.text();if(!a)throw new Error("Empty response body from similar_products endpoint");try{return ci(JSON.parse(a))}catch{throw new Error("Invalid JSON from similar_products endpoint")}}async function pi(e,t){const r=[];let n=null;const o={onEvent:i=>{const a=Lt(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(...Ft(a.spec.elements))}}};return t!==void 0&&(o.signal=t),await zt(e,o),r}async function gi(e,t,r){const n=Ct("product_groupings",t),o={method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)};r!==void 0&&(o.signal=r);const i=await It(n,o);if(!i.ok)throw new Error(`HTTP ${i.status}: ${i.statusText}`);if(Bt(i))return pi(i,r);const a=await i.text();if(!a)return[];try{return ui(JSON.parse(a))}catch{throw new Error("Invalid JSON from product_groupings endpoint")}}var mi={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={...mi,...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 hi(e){return Number.isFinite(e)?Math.max(0,Math.min(5,e)):0}function yi(e){return Number.isFinite(e)?Math.max(0,Math.min(100,Math.round(e))):0}function _i(e){const t=hi(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 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: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=mn(a(t,r)),p.addEventListener("click",h=>{h.target.closest(".gengage-simrel-atc")||h.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=`%${yi(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(_i(t.rating)),t.reviewCount!=null){const h=document.createElement("span");h.className="gengage-simrel-card-review-count gengage-chat-product-card-review-count",h.textContent=` (${t.reviewCount})`,p.appendChild(h)}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 y=document.createElement("button");if(y.className="gengage-simrel-card-cta gengage-chat-product-card-cta gds-btn gds-btn-secondary",y.type="button",y.dataset.gengagePart="simrel-product-card-cta",y.textContent=s?.ctaLabel??"View",y.addEventListener("click",p=>{p.preventDefault(),p.stopPropagation(),o(t)}),u.appendChild(y),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",h=>{h.preventDefault(),h.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 vi=0;function Vt(e){const t=vi++,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=h=>{const k={products:h.products,onClick:e.onClick,onAddToCart:e.onAddToCart};return e.i18n!==void 0&&(k.i18n=e.i18n),e.discountType!==void 0&&(k.discountType=e.discountType),e.renderCard!==void 0&&(k.renderCard=e.renderCard),e.renderCardElement!==void 0&&(k.renderCardElement=e.renderCardElement),e.columns!==void 0&&(k.columns=e.columns),k},c=(h,k=!1)=>{if(k&&h!==a&&e.onGroupingActivate){const b=e.groups[h];e.onGroupingActivate({grouping_label:b.name,grouping_index:h})}a=h;for(let b=0;b<o.length;b++){const P=b===h;o[b].classList.toggle("gengage-simrel-tab--active",P),o[b].setAttribute("aria-selected",String(P)),o[b].tabIndex=P?0:-1}const N=e.groups[h],S=i[h];S.innerHTML="";const v=Jt(s(N));S.appendChild(v);for(let b=0;b<i.length;b++){const P=b===h;i[b].style.display=P?"":"none",i[b].tabIndex=P?0:-1}};for(let h=0;h<e.groups.length;h++){const k=e.groups[h],N=`gengage-simrel-tab-${t}-${h}`,S=`gengage-simrel-panel-${t}-${h}`,v=document.createElement("button");v.className="gengage-simrel-tab gds-tab",v.type="button",v.dataset.gengagePart="simrel-tab",v.id=N,v.textContent=k.name,v.setAttribute("role","tab"),v.setAttribute("aria-controls",S),v.setAttribute("aria-selected",String(h===0)),v.tabIndex=h===0?0:-1,h===0&&v.classList.add("gengage-simrel-tab--active"),v.addEventListener("click",()=>c(h,!0)),v.addEventListener("keydown",P=>{let M=-1;P.key==="ArrowRight"||P.key==="ArrowDown"?M=(h+1)%e.groups.length:P.key==="ArrowLeft"||P.key==="ArrowUp"?M=(h-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(v),n.appendChild(v);const b=document.createElement("div");b.className="gengage-simrel-tab-panel",b.dataset.gengagePart="simrel-tab-panel",b.id=S,b.setAttribute("role","tabpanel"),b.setAttribute("aria-labelledby",N),b.tabIndex=h===0?0:-1,h!==0&&(b.style.display="none"),i.push(b)}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 h=n.scrollLeft<=4,k=n.scrollLeft+n.clientWidth>=n.scrollWidth-4;u.style.display=h?"none":"",l.style.display=k?"none":"",n.classList.toggle("gengage-simrel-tabs--peek-right",!k),n.classList.toggle("gengage-simrel-tabs--peek-left",!h)};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 y=i[0],p=Jt(s(e.groups[0]));y.appendChild(p);for(const h of i)r.appendChild(h);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 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 bi(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 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=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,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),qt(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=Wt(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),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",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=bi(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}},He=({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=He){return sn({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"},wi={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 ki(e){return e?e.toLowerCase().split("-")[0]??"tr":"tr"}function Si(e){return ki(e)==="en"?wi:Xt}var Ei=12e4;function Ci(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;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}_n(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?Ei: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=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 fi(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(y=>y.sku),f=new Map(l.map(y=>[y.sku,y])),m=(await gi({account_id:this.config.accountId,session_id:this.config.session?.sessionId??"",correlation_id:this.config.session?.sessionId??"",skus:d},s,r)).map(y=>({...y,products:y.products.map(p=>({...f.get(p.sku),...p})).filter(p=>typeof p.sku=="string"&&typeof p.name=="string"&&typeof p.url=="string")})).filter(y=>y.products.length>0);if(m.length>0&&this._contentEl){const y=this._buildGroupsSpec(m),p=this._renderUISpec(y);this._contentEl.appendChild(p),gt("simrel"),this._emitSimilarProductsImpression(m.reduce((h,k)=>h+k.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&&gt("simrel"),this._emitSimilarProductsImpression(l.length,!1)}catch(u){const l=Ci(u);if(l&&this._isSuperseded(r))return;if(ae("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{...Si(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=>{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??He,o=(a,s)=>Yt(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 Ti(){return new Qt}var xi={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 B(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=>B(r)).filter(r=>!!r);const t=B(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 zi(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=B(t);if(r)return r}}function nr(e){const t=ke(e);if(!t)return null;const r=B(t.sku),n=B(t.name),o=B(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 Ai(e){const t=ke(e);if(!t)return null;const r=B(t.name);if(!r)return null;const n=[];if(Array.isArray(t.products))for(const a of t.products){const s=nr(a);s&&n.push(s)}const o={name:r,products:n},i=B(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 a=Number.parseInt(o,10);if(!Number.isInteger(a))return;n=n[a];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 Ke(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=B(n);if(o)return o;const i=er(n);if(i.length>0)return i[0]}}function Ii(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:{...xi,...e.fields},media:e.media??{},warrantyPromotionPattern:e.warrantyPromotionPattern??/warranty/i,specialPricePattern:e.specialPricePattern??/special/i,pricing:e.pricing??t.pricing}}function $i(e,t,r){return r.media.imageUrlTransform?.(e,t)??e}function Ni(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 Oi(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=Ii(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 a=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 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 Li(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 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 Ri(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 Zi(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 Di(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&&pt(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 Ui(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 ji(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&&pt(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 Mi(e,t,r,n,o){const i=tr(e.originalPrice),a=tr(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,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(a),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??a;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 Fi(e,t){return e==="strike-through"||e==="badge"||e==="inline"?e:t.discountType}function ir(e){const{product:t,config:r}=e,n=Ke(t,r.fields.images).map(S=>$i(S,t,r)).filter(_e),o=Ke(t,r.fields.promotions),i=o.filter(S=>r.warrantyPromotionPattern.test(S)),a=o.filter(S=>!r.warrantyPromotionPattern.test(S)),s=fe(t,r.fields.subtitle)??"",c=fe(t,r.fields.discountReason)??"",u=zi(Pi(t,r.fields.specialPrice))===!0||r.specialPricePattern.test(c),l=t.brand??"",d=Ni(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=Li(f,d,n);f.appendChild(m);const y=m.querySelector("img"),p=document.createElement("div");p.className="gengage-simrel-default-card-meta-row";const h=Ri(Oi(t,r),r.labels.customBadgeAlt);h&&p.appendChild(h);const k=Zi(n,y,r);k&&p.appendChild(k),f.appendChild(p);const N=document.createElement("div");return N.className="gengage-simrel-default-card-info",N.dataset.gengagePart="simrel-product-card-body",N.appendChild(V("h3","gengage-simrel-default-card-title",d)),s&&N.appendChild(V("p","gengage-simrel-default-card-subtitle",s)),N.appendChild(Di(t,fe(t,r.fields.productInfoUrl),r,e.context.onClick)),N.appendChild(Ui([...Ke(t,r.fields.warranties),...i])),N.appendChild(ji(a,r)),f.appendChild(N),f.appendChild(Mi(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 v=S.target instanceof HTMLElement?S.target:null;v&&v!==f||(S.preventDefault(),e.context.onClick(t))}),f}function Bi(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=Fi(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 Gi(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 qi(e,t){const r=e.element.props?.groups;if(!Array.isArray(r))return null;const n=r.map(Ai).filter(c=>!!c),o=e.element.props?.columns,i=or(t,e.context),a=(c,u)=>ir({product:c,index:u,context:e.context,config:i}),s=Vt({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 Ji(e={}){return{registry:{ProductGrid:t=>Gi(t),ProductCard:t=>Bi(t,e),GroupTabs:t=>qi(t,e)}}}var ar;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.")}},sr=class extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`),this.name="ZodEncodeError"}};(ar=globalThis).__zod_globalConfig??(ar.__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 Ye(e,t){return typeof t=="bigint"?t.toString():t}function Xe(e){return{get value(){{const t=e();return Object.defineProperty(this,"value",{value:t}),t}throw new Error("cached value already set")}}}function Qe(e){return e==null}function et(e){const t=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(t,r)}function Vi(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 Wi(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 Hi=Xe(()=>{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 Ki=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 Yi(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}var Xi={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 Qi(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 ea(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 ta(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 ra(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 na(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 oa(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 ia(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 aa(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:a,...s}=e;return s.path??(s.path=[]),s.message=n,t?.reportInput&&(s.input=a),s}function tt(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,Ye,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},mr=g("$ZodError",gr),hr=g("$ZodError",gr,{Parent:Error});function sa(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 ca(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 rt=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 dr(s,o?.callee),s}return a.value},nt=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 dr(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??mr)(i.issues.map(a=>te(a,o,Q())))}:{success:!0,data:i.value}},ua=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(a=>te(a,o,Q())))}:{success:!0,data:i.value}},la=Ae(hr),da=e=>(t,r,n)=>{const o=n?{...n,direction:"backward"}:{direction:"backward"};return rt(e)(t,r,o)},fa=e=>(t,r,n)=>rt(e)(t,r,n),pa=e=>async(t,r,n)=>{const o=n?{...n,direction:"backward"}:{direction:"backward"};return nt(e)(t,r,o)},ga=e=>async(t,r,n)=>nt(e)(t,r,n),ma=e=>(t,r,n)=>{const o=n?{...n,direction:"backward"}:{direction:"backward"};return ze(e)(t,r,o)},ha=e=>(t,r,n)=>ze(e)(t,r,n),ya=e=>async(t,r,n)=>{const o=n?{...n,direction:"backward"}:{direction:"backward"};return Ae(e)(t,r,o)},_a=e=>async(t,r,n)=>Ae(e)(t,r,n),va=/^[cC][0-9a-z]{6,}$/,ba=/^[0-9a-z]+$/,wa=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,ka=/^[0-9a-vA-V]{20}$/,Sa=/^[A-Za-z0-9]{27}$/,Ea=/^[a-zA-Z0-9_-]{21}$/,Ca=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/,Ta=/^([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)$/,xa=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/,za="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function Aa(){return new RegExp(za,"u")}var Pa=/^(?:(?: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])$/,Ia=/^(([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}|:))$/,$a=/^((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])$/,Na=/^(([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])$/,Oa=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,_r=/^[A-Za-z0-9_-]*$/,La=/^https?$/,Ra=/^\+[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])))",Za=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 Da(e){return new RegExp(`^${br(e)}$`)}function Ua(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 ja=e=>{const t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)},Ma=/^-?\d+$/,Fa=/^-?\d+(?:\.\d+)?$/,Ba=/^[^A-Z]*$/,Ga=/^[^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})}}),qa=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):Vi(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})}}),Ja=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]=Xi[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=Ma)}),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})}}),Va=g("$ZodCheckMaxLength",(e,t)=>{var r;O.init(e,t),(r=e._zod.def).when??(r.when=n=>{const o=n.value;return!Qe(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=tt(o);n.issues.push({origin:i,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Wa=g("$ZodCheckMinLength",(e,t)=>{var r;O.init(e,t),(r=e._zod.def).when??(r.when=n=>{const o=n.value;return!Qe(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=tt(o);n.issues.push({origin:i,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),Ha=g("$ZodCheckLengthEquals",(e,t)=>{var r;O.init(e,t),(r=e._zod.def).when??(r.when=n=>{const o=n.value;return!Qe(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=tt(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=()=>{})}),Ka=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})}}),Ya=g("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Ba),Pe.init(e,t)}),Xa=g("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=Ga),Pe.init(e,t)}),Qa=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})}}),es=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})}}),ts=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})}}),rs=g("$ZodCheckOverwrite",(e,t)=>{O.init(e,t),e._zod.check=r=>{r.value=t.tx(r.value)}}),ns=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 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.26".trim(),"0.6.26".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(`
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
- `))}},os={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=os;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(aa(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=ua(e,o);return i.success?{value:i.data}:{issues:i.error?.issues}}catch{return la(e,o).then(a=>a.success?{value:a.data}:{issues:a.error?.issues})}},vendor:"zod",version:1}))}),ot=g("$ZodString",(e,t)=>{x.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??ja(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),ot.init(e,t)}),is=g("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=Ta),C.init(e,t)}),as=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)}),ss=g("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=xa),C.init(e,t)}),cs=g("$ZodURL",(e,t)=>{C.init(e,t),e._zod.check=r=>{try{const n=r.value.trim();if(!t.normalize&&t.protocol?.source===La.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})}}}),us=g("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=Aa()),C.init(e,t)}),ls=g("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=Ea),C.init(e,t)}),ds=g("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=va),C.init(e,t)}),fs=g("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=ba),C.init(e,t)}),ps=g("$ZodULID",(e,t)=>{t.pattern??(t.pattern=wa),C.init(e,t)}),gs=g("$ZodXID",(e,t)=>{t.pattern??(t.pattern=ka),C.init(e,t)}),ms=g("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=Sa),C.init(e,t)}),hs=g("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=Ua(t)),C.init(e,t)}),ys=g("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=Za),C.init(e,t)}),_s=g("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=Da(t)),C.init(e,t)}),vs=g("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=Ca),C.init(e,t)}),bs=g("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=Pa),C.init(e,t),e._zod.bag.format="ipv4"}),ws=g("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=Ia),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})}}}),ks=g("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=$a),C.init(e,t)}),Ss=g("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=Na),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 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 Es=g("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=Oa),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 Cs(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 Ts=g("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=_r),C.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=r=>{Cs(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:e,continue:!t.abort})}}),xs=g("$ZodE164",(e,t)=>{t.pattern??(t.pattern=Ra),C.init(e,t)});function zs(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 As=g("$ZodJWT",(e,t)=>{C.init(e,t),e._zod.check=r=>{zs(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??Fa,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}}),Ps=g("$ZodNumberFormat",(e,t)=>{Ja.init(e,t),Cr.init(e,t)}),Is=g("$ZodUnknown",(e,t)=>{x.init(e,t),e._zod.parse=r=>r}),$s=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 Ns=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=>Tr(u,r,a))):Tr(c,r,a)}return i.length?Promise.all(i).then(()=>r):r}});function Ie(e,t,r,n,o,i){const a=r in n;if(e.issues.length){if(o&&i&&!a)return;t.issues.push(...pr(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 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=Yi(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 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(y=>Ie(y,r,f,t,l,d))):Ie(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 Os=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=Xe(()=>xr(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=Ce,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",y=f._zod.optout==="optional",p=f._zod.run({value:c[d],issues:[]},s);p instanceof Promise?u.push(p.then(h=>Ie(h,a,d,c,m,y))):Ie(p,a,d,c,m,y)}return o?zr(u,c,a,s,r.value,e):u.length?Promise.all(u).then(()=>a):a}}),Ls=g("$ZodObjectJIT",(e,t)=>{Os.init(e,t);const r=e._zod.parse,n=Xe(()=>xr(t)),o=f=>{const m=new ns(["shape","payload","ctx"]),y=n.value,p=S=>{const v=lr(S);return`shape[${v}]._zod.run({ value: input[${v}], issues: [] }, ctx)`};m.write("const input = payload.value;");const h=Object.create(null);let k=0;for(const S of y.keys)h[S]=`key_${k++}`;m.write("const newResult = {};");for(const S of y.keys){const v=h[S],b=lr(S),P=f[S],M=P?._zod?.optin==="optional",zl=P?._zod?.optout==="optional";m.write(`const ${v} = ${p(S)};`),M&&zl?m.write(`
51
- if (${v}.issues.length) {
52
- if (${b} in input) {
53
- payload.issues = payload.issues.concat(${v}.issues.map(iss => ({
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(`
51
+ if (${b}.issues.length) {
52
+ if (${w} in input) {
53
+ payload.issues = payload.issues.concat(${b}.issues.map(iss => ({
54
54
  ...iss,
55
- path: iss.path ? [${b}, ...iss.path] : [${b}]
55
+ path: iss.path ? [${w}, ...iss.path] : [${w}]
56
56
  })));
57
57
  }
58
58
  }
59
59
 
60
- if (${v}.value === undefined) {
61
- if (${b} in input) {
62
- newResult[${b}] = undefined;
60
+ if (${b}.value === undefined) {
61
+ if (${w} in input) {
62
+ newResult[${w}] = undefined;
63
63
  }
64
64
  } else {
65
- newResult[${b}] = ${v}.value;
65
+ newResult[${w}] = ${b}.value;
66
66
  }
67
67
 
68
68
  `):M?m.write(`
69
- if (${v}.issues.length) {
70
- payload.issues = payload.issues.concat(${v}.issues.map(iss => ({
69
+ if (${b}.issues.length) {
70
+ payload.issues = payload.issues.concat(${b}.issues.map(iss => ({
71
71
  ...iss,
72
- path: iss.path ? [${b}, ...iss.path] : [${b}]
72
+ path: iss.path ? [${w}, ...iss.path] : [${w}]
73
73
  })));
74
74
  }
75
75
 
76
- if (${v}.value === undefined) {
77
- if (${b} in input) {
78
- newResult[${b}] = undefined;
76
+ if (${b}.value === undefined) {
77
+ if (${w} in input) {
78
+ newResult[${w}] = undefined;
79
79
  }
80
80
  } else {
81
- newResult[${b}] = ${v}.value;
81
+ newResult[${w}] = ${b}.value;
82
82
  }
83
83
 
84
84
  `):m.write(`
85
- const ${v}_present = ${b} in input;
86
- if (${v}.issues.length) {
87
- payload.issues = payload.issues.concat(${v}.issues.map(iss => ({
85
+ const ${b}_present = ${w} in input;
86
+ if (${b}.issues.length) {
87
+ payload.issues = payload.issues.concat(${b}.issues.map(iss => ({
88
88
  ...iss,
89
- path: iss.path ? [${b}, ...iss.path] : [${b}]
89
+ path: iss.path ? [${w}, ...iss.path] : [${w}]
90
90
  })));
91
91
  }
92
- if (!${v}_present && !${v}.issues.length) {
92
+ if (!${b}_present && !${b}.issues.length) {
93
93
  payload.issues.push({
94
94
  code: "invalid_type",
95
95
  expected: "nonoptional",
96
96
  input: undefined,
97
- path: [${b}]
97
+ path: [${w}]
98
98
  });
99
99
  }
100
100
 
101
- if (${v}_present) {
102
- if (${v}.value === undefined) {
103
- newResult[${b}] = undefined;
101
+ if (${b}_present) {
102
+ if (${b}.value === undefined) {
103
+ newResult[${w}] = undefined;
104
104
  } else {
105
- newResult[${b}] = ${v}.value;
105
+ newResult[${w}] = ${b}.value;
106
106
  }
107
107
  }
108
108
 
109
- `)}m.write("payload.value = newResult;"),m.write("return payload;");const N=m.compile();return(S,v)=>N(f,S,v)};let i;const a=Ce,s=!Ee.jitless,u=s&&Hi.value,l=t.catchall;let d;e._zod.parse=(f,m)=>{d??(d=n.value);const y=f.value;return a(y)?s&&u&&m?.async===!1&&m.jitless!==!0?(i||(i=o(t.shape)),f=i(f,m),l?zr([],y,f,m,d,e):f):r(f,m):(f.issues.push({expected:"object",code:"invalid_type",input:y,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(a=>te(a,n,Q())))}),t)}var Rs=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=>et(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=>Ar(s,n,e,o)):Ar(a,n,e,o)}}),Zs=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])=>Pr(r,s,c)):Pr(r,i,a)}});function it(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 a=it(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=it(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 Pr(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=it(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 Ds=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=>Ki.has(typeof o)).map(o=>typeof o=="string"?Te(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}}),Us=g("$ZodTransform",(e,t)=>{x.init(e,t),e._zod.optin="optional",e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new sr(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 Ir(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(`^(${et(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=>Ir(a,o)):Ir(i,o)}return r.value===void 0?r:t.innerType._zod.run(r,n)}}),js=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)}),Ms=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(`^(${et(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)}),Fs=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 Bs=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))}),Gs=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 qs=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)}}),Js=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=>$e(a,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 Vs=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 Ws=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,Hs=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 Ks(){return new Hs}(Zr=globalThis).__zod_globalRegistry??(Zr.__zod_globalRegistry=Ks());var me=globalThis.__zod_globalRegistry;function Ys(e,t){return new e({type:"string",..._(t)})}function Xs(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 Qs(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,..._(t)})}function ec(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",..._(t)})}function tc(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",..._(t)})}function rc(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",..._(t)})}function nc(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,..._(t)})}function oc(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,..._(t)})}function ic(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 sc(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,..._(t)})}function cc(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,..._(t)})}function uc(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,..._(t)})}function lc(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,..._(t)})}function dc(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,..._(t)})}function fc(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,..._(t)})}function pc(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,..._(t)})}function gc(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,..._(t)})}function mc(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,..._(t)})}function hc(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,..._(t)})}function yc(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,..._(t)})}function _c(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,..._(t)})}function vc(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,..._(t)})}function bc(e,t){return new e({type:"string",format:"date",check:"string_format",..._(t)})}function wc(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,..._(t)})}function kc(e,t){return new e({type:"string",format:"duration",check:"string_format",..._(t)})}function Sc(e,t){return new e({type:"number",checks:[],..._(t)})}function Ec(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",..._(t)})}function Cc(e){return new e({type:"unknown"})}function Tc(e,t){return new e({type:"never",..._(t)})}function Ur(e,t){return new kr({check:"less_than",..._(t),value:e,inclusive:!1})}function at(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 st(e,t){return new Sr({check:"greater_than",..._(t),value:e,inclusive:!0})}function Mr(e,t){return new qa({check:"multiple_of",..._(t),value:e})}function Fr(e,t){return new Va({check:"max_length",..._(t),maximum:e})}function Ne(e,t){return new Wa({check:"min_length",..._(t),minimum:e})}function Br(e,t){return new Ha({check:"length_equals",..._(t),length:e})}function xc(e,t){return new Ka({check:"string_format",format:"regex",..._(t),pattern:e})}function zc(e){return new Ya({check:"string_format",format:"lowercase",..._(e)})}function Ac(e){return new Xa({check:"string_format",format:"uppercase",..._(e)})}function Pc(e,t){return new Qa({check:"string_format",format:"includes",..._(t),includes:e})}function Ic(e,t){return new es({check:"string_format",format:"starts_with",..._(t),prefix:e})}function $c(e,t){return new ts({check:"string_format",format:"ends_with",..._(t),suffix:e})}function ie(e){return new rs({check:"overwrite",tx:e})}function Nc(e){return ie(t=>t.normalize(e))}function Oc(){return ie(e=>e.trim())}function Lc(){return ie(e=>e.toLowerCase())}function Rc(){return ie(e=>e.toUpperCase())}function Zc(){return ie(e=>Wi(e))}function Dc(e,t,r){return new e({type:"array",element:t,..._(r)})}function Uc(e,t,r){return new e({type:"custom",check:"custom",fn:t,..._(r)})}function jc(e,t){const r=Mc(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 Mc(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 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),A(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"&&$(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 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 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>
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>
110
110
 
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 Jr(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),y=m.schema;if(y.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(u.allOf=u.allOf??[],u.allOf.push(y)):Object.assign(u,y),Object.assign(u,l),s._zod.parent===d)for(const p in u)p==="$ref"||p==="allOf"||p in l||delete u[p];if(y.$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 y in u)y==="$ref"||y==="allOf"||y in m.def&&JSON.stringify(u[y])===JSON.stringify(m.def[y])&&delete u[y]}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:Oe(t,"input",e.processors),output:Oe(t,"output",e.processors)}},enumerable:!1,writable:!1}),s}catch{throw new Error("Error converting schema to JSON.")}}function $(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.element,r);if(n.type==="set")return $(n.valueType,r);if(n.type==="lazy")return $(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.innerType,r);if(n.type==="intersection")return $(n.left,r)||$(n.right,r);if(n.type==="record"||n.type==="map")return $(n.keyType,r)||$(n.valueType,r);if(n.type==="pipe")return e._zod.traits.has("$ZodCodec")?!0:$(n.in,r)||$(n.out,r);if(n.type==="object"){for(const o in n.shape)if($(n.shape[o],r))return!0;return!1}if(n.type==="union"){for(const o of n.options)if($(o,r))return!0;return!1}if(n.type==="tuple"){for(const o of n.items)if($(o,r))return!0;return!!(n.rest&&$(n.rest,r))}return!1}var Fc=(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??{},a=Gr({...o??{},target:i,io:t,processors:r});return A(e,a),qr(a,e),Jr(a,e)},Bc={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},Gc=(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=Bc[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}))])}},qc=(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)},Jc=(e,t,r,n)=>{r.not={}},Vc=(e,t,r,n)=>{},Wc=(e,t,r,n)=>{const o=e._zod.def,i=cr(o.entries);i.every(a=>typeof a=="number")&&(r.type="number"),i.every(a=>typeof a=="string")&&(r.type="string"),r.enum=i},Hc=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")},Kc=(e,t,r,n)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")},Yc=(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=A(i.element,t,{...n,path:[...n.path,"items"]})},Xc=(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]=A(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=A(i.catchall,t,{...n,path:[...n.path,"additionalProperties"]})):t.io==="output"&&(o.additionalProperties=!1)},Qc=(e,t,r,n)=>{const o=e._zod.def,i=o.inclusive===!1,a=o.options.map((s,c)=>A(s,t,{...n,path:[...n.path,i?"oneOf":"anyOf",c]}));i?r.oneOf=a:r.anyOf=a},eu=(e,t,r,n)=>{const o=e._zod.def,i=A(o.left,t,{...n,path:[...n.path,"allOf",0]}),a=A(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]]},tu=(e,t,r,n)=>{const o=e._zod.def,i=A(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"}]},ru=(e,t,r,n)=>{const o=e._zod.def;A(o.innerType,t,n);const i=t.seen.get(e);i.ref=o.innerType},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,r.default=JSON.parse(JSON.stringify(o.defaultValue))},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,t.io==="input"&&(r._prefault=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;let a;try{a=o.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=a},au=(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;A(a,t,n);const s=t.seen.get(e);s.ref=a},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,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},cu=g("ZodISODateTime",(e,t)=>{hs.init(e,t),T.init(e,t)});function uu(e){return vc(cu,e)}var lu=g("ZodISODate",(e,t)=>{ys.init(e,t),T.init(e,t)});function du(e){return bc(lu,e)}var fu=g("ZodISOTime",(e,t)=>{_s.init(e,t),T.init(e,t)});function pu(e){return wc(fu,e)}var gu=g("ZodISODuration",(e,t)=>{vs.init(e,t),T.init(e,t)});function mu(e){return kc(gu,e)}var hu=(e,t)=>{mr.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:r=>ca(e,r)},flatten:{value:r=>sa(e,r)},addIssue:{value:r=>{e.issues.push(r),e.message=JSON.stringify(e.issues,Ye,2)}},addIssues:{value:r=>{e.issues.push(...r),e.message=JSON.stringify(e.issues,Ye,2)}},isEmpty:{get(){return e.issues.length===0}}})},Z=g("ZodError",hu,{Parent:Error}),yu=rt(Z),_u=nt(Z),vu=ze(Z),bu=Ae(Z),wu=da(Z),ku=fa(Z),Su=pa(Z),Eu=ga(Z),Cu=ma(Z),Tu=ha(Z),xu=ya(Z),zu=_a(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 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 z=g("ZodType",(e,t)=>(x.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:Oe(e,"input"),output:Oe(e,"output")}}),e.toJSONSchema=Fc(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.parse=(r,n)=>yu(e,r,n,{callee:e.parse}),e.safeParse=(r,n)=>vu(e,r,n),e.parseAsync=async(r,n)=>_u(e,r,n,{callee:e.parseAsync}),e.safeParseAsync=async(r,n)=>bu(e,r,n),e.spa=e.safeParseAsync,e.encode=(r,n)=>wu(e,r,n),e.decode=(r,n)=>ku(e,r,n),e.encodeAsync=async(r,n)=>Su(e,r,n),e.decodeAsync=async(r,n)=>Eu(e,r,n),e.safeEncode=(r,n)=>Cu(e,r,n),e.safeDecode=(r,n)=>Tu(e,r,n),e.safeEncodeAsync=async(r,n)=>xu(e,r,n),e.safeDecodeAsync=async(r,n)=>zu(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(vl(r,n))},superRefine(r,n){return this.check(bl(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 fl(this,r)},array(){return Qr(this)},or(r){return el([this,r])},and(r){return rl(this,r)},transform(r){return on(this,ol(r))},default(r){return ul(this,r)},prefault(r){return dl(this,r)},catch(r){return gl(this,r)},pipe(r){return on(this,r)},readonly(){return yl(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)=>{ot.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,o,i)=>Gc(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(xc(...n))},includes(...n){return this.check(Pc(...n))},startsWith(...n){return this.check(Ic(...n))},endsWith(...n){return this.check($c(...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(zc(n))},uppercase(n){return this.check(Ac(n))},trim(){return this.check(Oc())},normalize(...n){return this.check(Nc(...n))},toLowerCase(){return this.check(Lc())},toUpperCase(){return this.check(Rc())},slugify(){return this.check(Zc())}})}),Au=g("ZodString",(e,t)=>{ot.init(e,t),Hr.init(e,t),e.email=r=>e.check(Xs(Pu,r)),e.url=r=>e.check(nc(Iu,r)),e.jwt=r=>e.check(_c(Ju,r)),e.emoji=r=>e.check(oc($u,r)),e.guid=r=>e.check(Dr(Kr,r)),e.uuid=r=>e.check(Qs(Le,r)),e.uuidv4=r=>e.check(ec(Le,r)),e.uuidv6=r=>e.check(tc(Le,r)),e.uuidv7=r=>e.check(rc(Le,r)),e.nanoid=r=>e.check(ic(Nu,r)),e.guid=r=>e.check(Dr(Kr,r)),e.cuid=r=>e.check(ac(Ou,r)),e.cuid2=r=>e.check(sc(Lu,r)),e.ulid=r=>e.check(cc(Ru,r)),e.base64=r=>e.check(mc(Bu,r)),e.base64url=r=>e.check(hc(Gu,r)),e.xid=r=>e.check(uc(Zu,r)),e.ksuid=r=>e.check(lc(Du,r)),e.ipv4=r=>e.check(dc(Uu,r)),e.ipv6=r=>e.check(fc(ju,r)),e.cidrv4=r=>e.check(pc(Mu,r)),e.cidrv6=r=>e.check(gc(Fu,r)),e.e164=r=>e.check(yc(qu,r)),e.datetime=r=>e.check(uu(r)),e.date=r=>e.check(du(r)),e.time=r=>e.check(pu(r)),e.duration=r=>e.check(mu(r))});function L(e){return Ys(Au,e)}var T=g("ZodStringFormat",(e,t)=>{C.init(e,t),Hr.init(e,t)}),Pu=g("ZodEmail",(e,t)=>{ss.init(e,t),T.init(e,t)}),Kr=g("ZodGUID",(e,t)=>{is.init(e,t),T.init(e,t)}),Le=g("ZodUUID",(e,t)=>{as.init(e,t),T.init(e,t)}),Iu=g("ZodURL",(e,t)=>{cs.init(e,t),T.init(e,t)}),$u=g("ZodEmoji",(e,t)=>{us.init(e,t),T.init(e,t)}),Nu=g("ZodNanoID",(e,t)=>{ls.init(e,t),T.init(e,t)}),Ou=g("ZodCUID",(e,t)=>{ds.init(e,t),T.init(e,t)}),Lu=g("ZodCUID2",(e,t)=>{fs.init(e,t),T.init(e,t)}),Ru=g("ZodULID",(e,t)=>{ps.init(e,t),T.init(e,t)}),Zu=g("ZodXID",(e,t)=>{gs.init(e,t),T.init(e,t)}),Du=g("ZodKSUID",(e,t)=>{ms.init(e,t),T.init(e,t)}),Uu=g("ZodIPv4",(e,t)=>{bs.init(e,t),T.init(e,t)}),ju=g("ZodIPv6",(e,t)=>{ws.init(e,t),T.init(e,t)}),Mu=g("ZodCIDRv4",(e,t)=>{ks.init(e,t),T.init(e,t)}),Fu=g("ZodCIDRv6",(e,t)=>{Ss.init(e,t),T.init(e,t)}),Bu=g("ZodBase64",(e,t)=>{Es.init(e,t),T.init(e,t)}),Gu=g("ZodBase64URL",(e,t)=>{Ts.init(e,t),T.init(e,t)}),qu=g("ZodE164",(e,t)=>{xs.init(e,t),T.init(e,t)}),Ju=g("ZodJWT",(e,t)=>{As.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)=>qc(e,n,o,i),he(e,"ZodNumber",{gt(n,o){return this.check(jr(n,o))},gte(n,o){return this.check(st(n,o))},min(n,o){return this.check(st(n,o))},lt(n,o){return this.check(Ur(n,o))},lte(n,o){return this.check(at(n,o))},max(n,o){return this.check(at(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(st(0,n))},negative(n){return this.check(Ur(0,n))},nonpositive(n){return this.check(at(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 Sc(Yr,e)}var Vu=g("ZodNumberFormat",(e,t)=>{Ps.init(e,t),Yr.init(e,t)});function Xr(e){return Ec(Vu,e)}var Wu=g("ZodUnknown",(e,t)=>{Is.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Vc(e,r,n,o)});function ct(){return Cc(Wu)}var Hu=g("ZodNever",(e,t)=>{$s.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Jc(e,r,n,o)});function Ku(e){return Tc(Hu,e)}var Yu=g("ZodArray",(e,t)=>{Ns.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Yc(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 Dc(Yu,e,t)}var Xu=g("ZodObject",(e,t)=>{Ls.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Xc(e,r,n,o),E(e,"shape",()=>t.shape),he(e,"ZodObject",{keyof(){return lt(Object.keys(this._zod.def.shape))},catchall(r){return this.clone({...this._zod.def,catchall:r})},passthrough(){return this.clone({...this._zod.def,catchall:ct()})},loose(){return this.clone({...this._zod.def,catchall:ct()})},strict(){return this.clone({...this._zod.def,catchall:Ku()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(r){return ta(this,r)},safeExtend(r){return ra(this,r)},merge(r){return na(this,r)},pick(r){return Qi(this,r)},omit(r){return ea(this,r)},partial(...r){return oa(en,this,r[0])},required(...r){return ia(nn,this,r[0])}})});function K(e,t){return new Xu({type:"object",shape:e??{},..._(t)})}var Qu=g("ZodUnion",(e,t)=>{Rs.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Qc(e,r,n,o),e.options=t.options});function el(e,t){return new Qu({type:"union",options:e,..._(t)})}var tl=g("ZodIntersection",(e,t)=>{Zs.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>eu(e,r,n,o)});function rl(e,t){return new tl({type:"intersection",left:e,right:t})}var ut=g("ZodEnum",(e,t)=>{Ds.init(e,t),z.init(e,t),e._zod.processJSONSchema=(n,o,i)=>Wc(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 ut({...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 ut({...t,checks:[],..._(o),entries:i})}});function lt(e,t){return new ut({type:"enum",entries:Array.isArray(e)?Object.fromEntries(e.map(r=>[r,r])):e,..._(t)})}var nl=g("ZodTransform",(e,t)=>{Us.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Kc(e,r,n,o),e._zod.parse=(r,n)=>{if(n.direction==="backward")throw new sr(e.constructor.name);r.addIssue=i=>{if(typeof i=="string")r.issues.push(ge(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(ge(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 ol(e){return new nl({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 il=g("ZodExactOptional",(e,t)=>{js.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 il({type:"optional",innerType:e})}var sl=g("ZodNullable",(e,t)=>{Ms.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>tu(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function rn(e){return new sl({type:"nullable",innerType:e})}var cl=g("ZodDefault",(e,t)=>{Fs.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>nu(e,r,n,o),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function ul(e,t){return new cl({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():fr(t)}})}var ll=g("ZodPrefault",(e,t)=>{Bs.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>ou(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function dl(e,t){return new ll({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():fr(t)}})}var nn=g("ZodNonOptional",(e,t)=>{Gs.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 fl(e,t){return new nn({type:"nonoptional",innerType:e,..._(t)})}var pl=g("ZodCatch",(e,t)=>{qs.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>iu(e,r,n,o),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function gl(e,t){return new pl({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}var ml=g("ZodPipe",(e,t)=>{Js.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 ml({type:"pipe",in:e,out:t})}var hl=g("ZodReadonly",(e,t)=>{Vs.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>su(e,r,n,o),e.unwrap=()=>e._zod.def.innerType});function yl(e){return new hl({type:"readonly",innerType:e})}var _l=g("ZodCustom",(e,t)=>{Ws.init(e,t),z.init(e,t),e._zod.processJSONSchema=(r,n,o)=>Hc(e,r,n,o)});function vl(e,t={}){return Uc(_l,e,t)}function bl(e,t){return jc(e,t)}var wl=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()}),kl=K({layout:lt(["grid","carousel"]).optional(),columns:ye().int().positive().optional()}),Sl=K({product:wl,index:ye().int().nonnegative(),discountType:lt(["strike-through","badge","inline"]).optional()}),El=K({sku:L(),label:L().optional(),cartCode:L()}),Cl=K({actions:Qr(K({label:L(),action:K({title:L(),type:L(),payload:ct().optional()})}))}),Tl=K({message:L().optional()}),xl={components:{ProductGrid:{schema:kl,description:"Outer grid or carousel container for similar products."},ProductCard:{schema:Sl,description:"A single product card with image, title, price, and actions."},AddToCartButton:{schema:El,description:"Add-to-cart CTA rendered inside or below a product card."},QuickActions:{schema:Cl,description:"A row of quick-action buttons below product info."},EmptyState:{schema:Tl,description:"Empty state shown when no similar products are available."}}};G.GengageSimRel=Qt,G.createDefaultSimRelUISpecRegistry=Kt,G.createSimRelRenderer=Ji,G.createSimRelWidget=Ti,G.defaultSimRelUnknownUISpecRenderer=He,G.renderSimRelUISpec=Yt,G.simRelCatalog=xl})(this.Gengage=this.Gengage||{});
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||{});