@occluze/tether 0.9.2 → 0.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/esm/astro.js +2 -2
- package/dist/esm/chunks/account-3MYRPPTR.js +1 -0
- package/dist/esm/chunks/{account-pages-FIXSWJH7.js → account-pages-OZHK5HHY.js} +1 -1
- package/dist/esm/chunks/{analytics-MO2ZWBOD.js → analytics-QHX2YHZS.js} +1 -1
- package/dist/esm/chunks/chunk-24KD36UC.js +1 -0
- package/dist/esm/chunks/{chunk-FI4NIWAD.js → chunk-2G6U6ZYV.js} +1 -1
- package/dist/esm/chunks/{chunk-IJAMRI33.js → chunk-74SGIWQE.js} +1 -1
- package/dist/esm/chunks/{chunk-SZRDO62E.js → chunk-A3GZFAB3.js} +1 -1
- package/dist/esm/chunks/chunk-A6BZFYZY.js +1 -0
- package/dist/esm/chunks/{chunk-Y3NKKN2O.js → chunk-EYG7QGPA.js} +1 -1
- package/dist/esm/chunks/{chunk-7ZXEVDOS.js → chunk-FX7EJ6RB.js} +1 -1
- package/dist/esm/chunks/{chunk-7CRTJV25.js → chunk-GCGRUVYO.js} +1 -1
- package/dist/esm/chunks/{chunk-CRKJ2VEX.js → chunk-LSB7RVRZ.js} +1 -1
- package/dist/esm/chunks/{chunk-BVO7KK2M.js → chunk-NF5H2Q7V.js} +1 -1
- package/dist/esm/chunks/chunk-PZERNTCD.js +1 -0
- package/dist/esm/chunks/chunk-RVWHBZAF.js +1 -0
- package/dist/esm/chunks/chunk-SJNNEEDX.js +1 -0
- package/dist/esm/chunks/{chunk-DM5LEAWM.js → chunk-SOLTIZAI.js} +1 -1
- package/dist/esm/chunks/{chunk-FWMPL6PR.js → chunk-WHNUPECA.js} +1 -1
- package/dist/esm/chunks/{chunk-OENVX4NY.js → chunk-ZB4FBE6W.js} +1 -1
- package/dist/esm/chunks/{diagnose-XSZPWEG7.js → diagnose-O3QCZTHT.js} +1 -1
- package/dist/esm/chunks/{extras-DZIOTZ3H.js → extras-O6ZRL5FK.js} +1 -1
- package/dist/esm/chunks/lists-XF33XENI.js +1 -0
- package/dist/esm/chunks/{markets-ui-DEEYV4KT.js → markets-ui-V2ROBFZP.js} +1 -1
- package/dist/esm/chunks/search-ZLKIFARH.js +1 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/server.js +2 -2
- package/dist/tether.account-pages.js +2 -2
- package/dist/tether.account-pages.min.js +1 -1
- package/dist/tether.account.js +4 -7
- package/dist/tether.account.min.js +1 -1
- package/dist/tether.analytics.js +1 -1
- package/dist/tether.analytics.min.js +1 -1
- package/dist/tether.diagnose.js +1 -1
- package/dist/tether.diagnose.min.js +1 -1
- package/dist/tether.extras.js +1 -1
- package/dist/tether.extras.min.js +1 -1
- package/dist/tether.js +105 -63
- package/dist/tether.lists.js +11 -7
- package/dist/tether.lists.min.js +1 -1
- package/dist/tether.markets.js +1 -1
- package/dist/tether.markets.min.js +1 -1
- package/dist/tether.min.js +1 -1
- package/dist/tether.min.js.map +4 -4
- package/dist/tether.search.js +4 -6
- package/dist/tether.search.min.js +1 -1
- package/dist/types/server/src/shared/metafield-ref.d.ts +15 -0
- package/dist/types/src/dom.d.ts +12 -0
- package/dist/types/src/shopify-values.d.ts +2 -0
- package/dist/types/src/version.d.ts +1 -1
- package/package.json +1 -1
- package/dist/esm/chunks/account-XBGNTM7V.js +0 -1
- package/dist/esm/chunks/chunk-2J3MTS3E.js +0 -1
- package/dist/esm/chunks/chunk-4FR3CUO2.js +0 -1
- package/dist/esm/chunks/chunk-H6IORH7O.js +0 -1
- package/dist/esm/chunks/chunk-OATTAXPO.js +0 -1
- package/dist/esm/chunks/chunk-OJAV2I3C.js +0 -1
- package/dist/esm/chunks/lists-OJGSVQMM.js +0 -1
- package/dist/esm/chunks/search-A6HF5PMJ.js +0 -1
package/dist/tether.min.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(()=>{var Hn=Object.defineProperty;var ki=(t,e,n)=>e in t?Hn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var Ai=(t,e)=>{for(var n in e)Hn(t,n,{get:e[n],enumerable:!0})};var M=(t,e,n)=>ki(t,typeof e!="symbol"?e+"":e,n);var Vn="2026-07";var vi=/^(\d{4})-(01|04|07|10)$/;function xi(t){let e=vi.exec(typeof t=="string"?t:"");return e?{year:Number(e[1]),month:Number(e[2])}:null}var qn=t=>xi(t)!==null;function T(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function X(t,e){return T(t)?t[e]:void 0}var Li=/^[A-Za-z0-9_.-]+$/,Oi=/^(\$app(:[A-Za-z0-9_-]+)?|[A-Za-z0-9_.-]+)$/,Ii=/^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,Mi=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/,Ri=/^[A-Za-z_$][\w$]*$/,jn="https://site.invalid",Ni=new Set(["localhost","127.0.0.1","[::1]"]),Kt=["saved","server","webflow"],$i=["no-banner","default-banner","custom-banner"],Qt=t=>typeof t=="string"&&t!=="",_i=t=>typeof t=="function";function Kn(t,e){if(typeof t!="string"||!t)return"";let n=t.replace(/^https?:\/\//,"").replace(/\/.*$/,"");return Di(n)?n:(e("domain",t),"")}function Qn(t){if(!Qt(t))return!1;try{let e=new URL(t,`${jn}/`);return e.origin===jn?!0:e.protocol==="https:"||e.protocol==="http:"&&Ni.has(e.hostname)}catch{return!1}}function Wn(t,e){return t==null||t===""?null:typeof t=="string"&&(Qn(t)||Ui(t))?t:(e("partsUrl",t),null)}function Ui(t){if(typeof location>"u")return!1;try{return new URL(t).origin===location.origin}catch{return!1}}function Fi(t){if(typeof t!="string")return null;try{let e=new URL(t);return e.protocol==="https:"&&e.href===new URL(e.origin).href?e.origin:null}catch{return null}}function Bn(t,e){if(!Array.isArray(t))return e("embedOrigins",t),[];let n=[],r=t;for(let o of r){let i=Fi(o);i?n.push(i):e("embedOrigin",o)}return n}function Ge(t){let e,n;if(typeof t=="string"){let r=t.indexOf(".");e=r>0?t.slice(0,r):"",n=t.slice(r+1)}else typeof t=="object"&&t!==null&&(e=Reflect.get(t,"namespace"),n=Reflect.get(t,"key"));return typeof e!="string"||typeof n!="string"?null:Oi.test(e)&&Li.test(n)?{namespace:e,key:n}:null}function zn(t,e){if(!Array.isArray(t))return e("metafields",t),[];let n=[],r=t;for(let o of r){let i=Ge(o);i?n.push(typeof o=="string"?o:i):e("metafield",o)}return n}var Lt=t=>e=>t(e)?e:void 0,Di=t=>Qt(t)&&Ii.test(t),Hi=t=>Qt(t)&&Mi.test(t),Vi=t=>typeof t=="boolean"||Qt(t)&&Ri.test(t),Gt=Lt(Qn),le=Lt(Qt),Gn=Lt(t=>typeof t=="boolean"),Yn=Lt(_i);function Wt(t,e,n,r){if(e==null)return null;if(!T(e))return r(t,e),null;let o={};for(let i in n){let a=e[i];if(a===void 0)continue;let s=n[i](a);s===void 0?r(`${t}.${i}`,a):o[i]=s}return o}var qi={server:Gt,orderUrl:Gt,subscriptionsUrl:Gt,paymentUrl:Gt,logoutUrl:Gt,locale:le,navigate:Yn},ji="customer accounts need the Worker since 0.7.0: set account.server",Gi={country:le,language:le,locale:le},Ki={detect:t=>{if(typeof t=="boolean")return t;let e=Array.isArray(t)?t:[t];return typeof t=="string"||Array.isArray(t)?Kt.filter(n=>e.includes(n)):void 0},locales:t=>{if(!T(t))return;let e={};for(let[n,r]of Object.entries(t)){let o=Wt(`markets.locales.${n}`,r,Gi,()=>{});o&&(e[n]=o)}return e},cookie:Lt(Hi),remember:Gn,strict:Gn},Qi={consent:t=>$i.find(e=>e===t),proxy:t=>t!==void 0&&!!t},Wi={dataLayer:Lt(Vi),shopify:t=>typeof t=="boolean"?t:Wt("analytics.shopify",t,Qi,()=>{})??void 0,onEvent:Yn};function Jn(t,e,n){let r=Wt("account",t,qi,e);if(r===null)return null;let{server:o}=r;return o===void 0?(n(ji),null):{...r,server:o}}var Ke=(t,e)=>Wt("markets",t,Ki,e),Xn=(t,e)=>Wt("analytics",t,Wi,e);var Bi=/^[A-Z]{2}$/,zi=new Set(["XX","T1"]),Yi=new Set(["PT_BR","PT_PT","ZH_CN","ZH_TW"]),Ji=/^[A-Z]{2,3}$/;function _(t){let e=(typeof t=="string"?t:"").trim().toUpperCase();return!Bi.test(e)||zi.has(e)?null:e}function U(t){let e=(typeof t=="string"?t:"").trim().replace("-","_").toUpperCase();if(Yi.has(e))return e;let n=e.split("_")[0]??"";return Ji.test(n)?n:null}var it={domain:"",token:"",apiVersion:Vn,country:void 0,language:void 0,locale:void 0,markets:null,prefix:"tether",productPath:"/product",collectionPath:"/collection",metafields:[],embedOrigins:[],imagesFirst:25,variantsFirst:100,sellingPlanGroupsFirst:10,sellingPlansFirst:25,collectionFirst:24,retries:2,requestTimeout:15e3,revalidate:!0,storageKey:"",cartDrawerOpenClass:"is-open",openCartOnAdd:!0,cartFocus:!0,checkoutTarget:"_self",defaultPurchase:"one-time",variantUrl:!1,maxAge:60,lowStock:5,searchDelay:150,autoMount:!0,observe:!1,astro:!0,partsUrl:null,analytics:null,account:null,warningText:null,formatMoney:null,onLayoutChange:null,onCartOpen:null,onCartClose:null,onLineEnter:null,onLineLeave:null,onValueChange:null,onError:null,debug:!1},u={...it};function nr(t){let e=n=>(k(`Tether.config is read-only (${String(n)}): pass options to Tether.init() instead`),!1);return new Proxy(t,{get(n,r){let o=Reflect.get(n,r);return typeof o=="object"&&o!==null?nr(o):o},set:(n,r)=>e(r),deleteProperty:(n,r)=>e(r),defineProperty:(n,r)=>e(r)})}var rr=nr(u),Xi=/^[a-z][a-z0-9-]*$/,Zi=["revalidate","openCartOnAdd","cartFocus","variantUrl","autoMount","observe","astro","debug"],ta=["token","productPath","collectionPath","cartDrawerOpenClass"],ea=["imagesFirst","variantsFirst","sellingPlanGroupsFirst","sellingPlansFirst","collectionFirst","retries","requestTimeout","maxAge","lowStock","searchDelay"],na=["warningText","formatMoney","onLayoutChange","onCartOpen","onCartClose","onLineEnter","onLineLeave","onValueChange","onError"];function Ot(t,e,n){return e!==void 0&&k(`invalid ${t} ${JSON.stringify(e)}: using ${JSON.stringify(n)}`),n}function j(t,e){k(`invalid ${t} ${JSON.stringify(e)}: ignored`)}function ra(t){for(let e of Object.keys(t))e in it||k(`unknown option ${JSON.stringify(e)}: ignored`)}function oa(t,e,n){typeof n=="function"?t[e]=n:n!=null&&j(e,n)}var Zn=2147483647,ia=10,aa={requestTimeout:Zn,searchDelay:Zn,retries:ia};function sa(t,e){if(typeof e!="number"||!Number.isInteger(e)||e<0)return Ot(t,e,it[t]);let n=aa[t];return n===void 0||e<=n?e:(k(`${t} ${String(e)} is more than its maximum: using ${String(n)}`),n)}function ua(t,e){return typeof e=="boolean"?e:Ot(t,e,it[t])}function ca(t,e){return typeof e=="string"?e:Ot(t,e,it[t])}function la(t){if(!(t==null||t==="")){try{if(typeof t=="string"&&Intl.getCanonicalLocales(t).length)return t}catch{}j("locale",t)}}function tr(t,e,n){return n.find(r=>r===e)??Ot(t,e,n[0])}function da(t){return t==="unstable"?(k('apiVersion "unstable" changes without notice. Pin a dated version (e.g. 2026-07).'),t):qn(t)?t:Ot("apiVersion",t,it.apiVersion)}function er(t,e,n){if(e==null||e==="")return;let r=n(e);if(r!==null)return r;j(t,e)}function pa(t){ra(t);let e=Kn(t.domain,j),n=typeof t.prefix=="string"&&Xi.test(t.prefix)?t.prefix:Ot("prefix",t.prefix,it.prefix),r={...it,domain:e,apiVersion:da(t.apiVersion),country:er("country",t.country,_),locale:la(t.locale),partsUrl:Wn(t.partsUrl,j),language:er("language",t.language,U),markets:Ke(t.markets,j),analytics:Xn(t.analytics,j),account:Jn(t.account,j,k),prefix:n,storageKey:typeof t.storageKey=="string"&&t.storageKey?t.storageKey:`${n}:cart:${e}`,metafields:zn(t.metafields??[],j),embedOrigins:Bn(t.embedOrigins??[],j),checkoutTarget:tr("checkoutTarget",t.checkoutTarget,["_self","_blank"]),defaultPurchase:tr("defaultPurchase",t.defaultPurchase,["one-time","subscription"])};for(let o of ea)r[o]=sa(o,t[o]);for(let o of Zi)r[o]=ua(o,t[o]);for(let o of ta)r[o]=ca(o,t[o]);for(let o of na)oa(r,o,t[o]);return r}var Qe=t=>Ke(t,j);function or(t={}){let e=pa(t);for(let n of Object.keys(u))n in e||Reflect.deleteProperty(u,n);return Object.assign(u,e)}var It=()=>!!(u.domain&&u.token);function L(...t){u.debug&&console.log(`[${u.prefix}]`,...t)}function k(...t){console.warn(`[${u.prefix}]`,...t)}function f(t,e){if(k(e,t instanceof Error&&t.message?t.message:t),!!u.onError)try{u.onError(t,e)}catch(n){k("onError threw",n)}}function ir(t){return t instanceof Error?t.message:String(t)}var P=class extends Error{constructor(n,{status:r,errors:o,userErrors:i,code:a}={}){super(n);M(this,"name","TetherError");M(this,"code");M(this,"status");M(this,"errors");M(this,"userErrors");this.code=a??(r?`HTTP_${r}`:"ERROR"),this.status=r,this.errors=o,this.userErrors=i}};function G(t,e){return typeof e=="function"?e(t):typeof e=="string"?e==="object"?T(t):typeof t===e:fa(e)?Array.isArray(t)&&t.every(n=>G(n,e[0])):T(t)&&Object.entries(e).every(([n,r])=>r===void 0||G(t[n],r))}var fa=t=>Array.isArray(t),F=t=>e=>e===null||G(e,t),B=t=>e=>G(e,t);function ze(t=u){return`https://${t.domain}/api/${t.apiVersion}/graphql.json`}var lr=/"(?:\\.|[^"\\\n])*"|#[^\n]*/g,ma=/^\s*(?:query|mutation)(?:\s+\w+)?\s*(?:\([^)]*\))?/;function ga(t){return/\bmutation\b/.test(t.replace(lr,""))?"mutation":"query"}function dr(t,{country:e,language:n}){let r=[];if(e&&r.push(`country: ${e}`),n&&r.push(`language: ${n}`),!r.length)return t;let o=`@inContext(${r.join(", ")})`,i=t.replace(lr,d=>" ".repeat(d.length)),a=i.indexOf("{");if(i.slice(0,a).includes("@inContext"))return t;if(i.trimStart().startsWith("{"))return`query ${o} ${t.slice(a)}`;let s=ma.exec(i);if(!s)return t;let l=s[0].length;return`${t.slice(0,l).trimEnd()} ${o} ${t.slice(l).trimStart()}`}function pr(t,e=u){let n=_(e.country)??void 0,r=U(e.language)??void 0;return dr(t,{country:n,language:r})}var Ye=300,ha=500,ya=3e4,ar=430,ba=1e3,Be="quantityAvailable",sr=new Set,Pa=t=>`${t.domain} ${t.apiVersion} ${t.token}`;function Ea(t,e,n,{context:r,operation:o}){let i=typeof e=="string"?e:e(n),a=r?dr(i,t):i;return t.maxAge<=0||o==="mutation"?a:`${a} #${Math.floor(Date.now()/(t.maxAge*ba))}`}var Sa=t=>new Promise(e=>setTimeout(e,t));function Je(t,e){if(t===401||t===403){let n=e.token.startsWith("shpat_")?", not an Admin API token (shpat_\u2026)":"";return`Shopify rejected the Storefront token for ${e.domain} (${t}): use the public Storefront API token (Headless channel)${n}`}return t===404?`Store or API version not found (404): check domain ${e.domain} and apiVersion ${e.apiVersion}`:`HTTP ${t} from ${e.domain}`}function wa(t){let e=X(t,"message"),n=X(X(t,"extensions"),"code"),r=typeof e=="string"?e:"";return typeof n=="string"?{message:r,extensions:{code:n}}:{message:r}}function Ca(t){if(!T(t))return null;let{data:e,errors:n}=t;return n==null?{data:e}:Array.isArray(n)?{data:e,errors:n.map(wa)}:null}function We(t,e){return t.ok?new P(`Invalid response (${t.status})`,{code:"INVALID_RESPONSE",status:t.status}):new P(Je(t.status,e),{status:t.status})}function ur(t,e,n,r){let o=e.map(a=>a.message).filter(Boolean).join(" | "),i=o||"Storefront API error";return t.ok||(i=t.status===401||t.status===403||!o?Je(t.status,n):o),new P(i,{status:t.status,errors:e,code:r})}function cr(t,e){if(e==="any")return{kind:"retry",backoffMs:Ye};throw new P(`Network error: ${ir(t)}`,{code:"NETWORK"})}function Ta(t,e,n,r,o,i,a){if(n.includes(Be)&&r.some(g=>g.message.includes(Be)))return{kind:"inventory-refused",error:ur(t,r,e)};let s=r.map(g=>g.extensions?.code);if(i!=="none"&&s.includes("THROTTLED"))return{kind:"retry",backoffMs:ha};let l=s.includes("INTERNAL_SERVER_ERROR");if(i==="any"&&l)return{kind:"retry",backoffMs:Ye};let d=t.ok&&(l||a==="mutation"&&o==null);throw ur(t,r,e,d?"SERVER_ERROR":void 0)}async function ka(t,e){if(!t)return e(null);let n=new AbortController,r=setTimeout(()=>{n.abort(new DOMException("signal timed out","TimeoutError"))},t);try{return await e(n.signal)}finally{clearTimeout(r)}}async function Aa(t,e,n,r,o,i,a){let s;try{s=await(t.fetch??fetch)(ze(t),{method:"POST",headers:{"Content-Type":"application/json","X-Shopify-Storefront-Access-Token":t.token},body:JSON.stringify({query:e,variables:n}),signal:a})}catch(A){return cr(A,o)}if(s.status===ar)throw new P("Shopify security rejection (430)",{status:ar});if(o!=="none"&&s.status===429||o==="any"&&s.status>=500)return{kind:"retry",backoffMs:Ye};let l;try{l=await s.json()}catch(A){if(A instanceof SyntaxError)throw We(s,t);return cr(A,o)}let d=Ca(l);if(!d)throw We(s,t);let{data:g,errors:x=[]}=d;if(x.length)return Ta(s,t,e,x,g,o,i);if(!s.ok)throw new P(Je(s.status,t),{status:s.status});if(!r(g))throw We(s,t);return{kind:"data",data:g}}async function fr(t,e,n,r,{context:o=!0,operation:i="query"}={}){if(!t.domain||!t.token)throw new P("Tether is not configured: domain and token are required",{code:"NOT_CONFIGURED"});let a=Pa(t),s=i==="mutation"?"not-run":"any",l=0;for(;;){let d={inventory:!sr.has(a)},g=Ea(t,e,d,{context:o,operation:i}),x=l<t.retries?s:"none",A=await ka(t.requestTimeout,$=>Aa(t,g,n,r,x,i,$));switch(A.kind){case"data":return A.data;case"inventory-refused":if(typeof e=="string"||!d.inventory)throw A.error;L(`the token can't read inventory: ${Be} is left out from now on`),sr.add(a);break;case"retry":await Sa(Math.min(A.backoffMs*2**l,ya)),l+=1,L("retry",l);break}}}function at(t,e,n,r){return fr(u,t,e,n,r)}var va=t=>typeof t=="object"&&t!==null;function xa(t,e,n={},r){return fr(t,e,n,va,{...r,operation:ga(e)})}function mr(t,e,n){return xa(u,t,e,n)}function gr(t,e){if(!t)throw new P(`${e}: empty response`);let n=t.userErrors??[];if(n.length)throw new P(n.map(r=>r.message).join(" | "),{userErrors:n});return t}var m=t=>`${u.prefix}-${t}`,c=(t,e)=>e===void 0?`[${m(t)}]`:`[${m(t)}="${e}"]`,p=(t,e)=>t.getAttribute(m(e)),st=(t,e)=>t.hasAttribute(m(e));function h(t,e){return t?[...t.querySelectorAll(e)]:[]}var ut=(t,e,n)=>h(t,e).filter(r=>r.closest(n)===t),Bt=["product-ready","list-ready","cart-updated","cart-toggled","checkout","search"],hr=new WeakMap;function yr(t,e){let n=new CustomEvent(`${u.prefix}:${t}`,{detail:e,bubbles:!0});return hr.set(n,t),n}function ct(t,e){return hr.get(t)===e}function y(t,e,n=document){n.dispatchEvent(yr(t,e))}var La="http://www.w3.org/1999/xhtml",Oa=new Set(["h1","h2","h3","h4","h5","h6","p","span","div","br","hr","blockquote","code","pre","strong","em","b","i","u","s","small","sub","sup","ul","ol","li","dl","dt","dd","table","caption","colgroup","col","thead","tbody","tfoot","tr","th","td","a","img","picture","source","video","figure","figcaption","iframe"]),Ia=new Set(["script","style","template","noscript","textarea","select","title"]),Ma=new Set(["style","title","lang","dir","role","align","width","height"]),Ra=new Map([["a",new Set(["href","target","rel","hreflang"])],["img",new Set(["src","srcset","sizes","alt","loading","decoding"])],["source",new Set(["src","srcset","sizes","type","media"])],["video",new Set(["src","poster","controls","autoplay","muted","loop","playsinline","preload"])],["iframe",new Set(["src","allow","allowfullscreen","frameborder","loading"])],["blockquote",new Set(["cite"])],["ol",new Set(["start","type","reversed"])],["li",new Set(["value"])],["table",new Set(["border","cellpadding","cellspacing","summary"])],["col",new Set(["span"])],["colgroup",new Set(["span"])],["th",new Set(["colspan","rowspan","headers","scope","valign"])],["td",new Set(["colspan","rowspan","headers","valign"])]]),Na=new Set(["href","src","poster","cite"]),$a=/^(javascript|vbscript|data):/i,_a=/^data:image\/(png|gif|jpeg|webp|avif);/i,Ua=new Set(["position","top","right","bottom","left","z-index","-webkit-box-reflect"]),Fa=["inset","transform","translate","rotate","scale","offset"],Da=/\d(?:[sld]?v|cq)(?:w|h|i|b|min|max)\b/i,Ha=/^(?:outline|box-shadow|text-shadow|filter|text-decoration|text-underline-offset|text-stroke)|^(?:border-image|mask-border|mask-box-image)(?:-outset)?$/,br=40,Va=new Map([["letter-spacing",{px:4,em:.25}],["word-spacing",{px:4,em:.25}],["text-indent",{px:br}]]),Pr=/(?<![\w#.-])[+-]?(?:\d+\.?\d*|\.\d+)(?:e[+-]?\d+)?(%|[a-z]+)?/gi,qa=/(?<![\w-])(?!drop-shadow\(|blur\()[\w-]+\([^()]*\)/g,Er=/(?:var|calc|min|max|clamp|env|attr)\(/i,ja=/url\(|expression\(|@import/i,Ga=/[\u0000- ]/g,Ka="allow-scripts allow-same-origin allow-popups allow-presentation",Qa=new Set(["autoplay","encrypted-media","picture-in-picture","fullscreen","clipboard-write","accelerometer","gyroscope","web-share"]),Wa="strict-origin-when-cross-origin",Ba=["https://www.youtube.com","https://www.youtube-nocookie.com","https://player.vimeo.com","https://www.loom.com","https://fast.wistia.net"];function za(t,e){return Ma.has(e)||e.startsWith("aria-")||(Ra.get(t)?.has(e)??!1)}function Ya(t,e,n){let r=n.replace(Ga,"");return $a.test(r)?t==="img"&&e==="src"&&_a.test(r):!0}function Sr(t,e){try{return new URL(t,e)}catch{return null}}function Ja(t,e,n){let r=t.baseURI,o=Sr(r)?.origin??"null";return{origin:o==="null"?null:o,baseUrl:r,styleParser:e,embedOrigins:new Set([...Ba,...n])}}function Xa(t,e){let n=Sr(t.trim(),e.baseUrl);return n!==null&&n.origin!==e.origin&&e.embedOrigins.has(n.origin)}function Za(t){let e=t.split(";").map(n=>n.trim().split(/\s+/)[0]?.toLowerCase()??"");return[...new Set(e.filter(n=>Qa.has(n)))].join("; ")}function ts(t,e){if(Ua.has(t)||Fa.some(r=>t.startsWith(r))||Da.test(e))return!0;let n=Va.get(t);return n?Er.test(e)||es(e,n):t.startsWith("margin")&&e.includes("-")}function es(t,e){return[...t.matchAll(Pr)].some(([n="",r=""])=>{let o=parseFloat(n);if(o>=0)return!1;let i=e[r.toLowerCase()];return i===void 0||-o>i})}function ns(t,e){return Ha.test(t.replace(/^-webkit-/,""))?Er.test(e)?!0:[...e.replace(qa,"").matchAll(Pr)].some(([n="",r=""])=>{let o=Math.abs(parseFloat(n));return o!==0&&(r.toLowerCase()!=="px"||o>br)}):!1}function rs(t,e){let n=e.style;n.cssText=t;let r=Array.from({length:n.length},(i,a)=>n.item(a));for(let i of r){let a=n.getPropertyValue(i);(ts(i,a)||ns(i,a)||ja.test(a))&&n.removeProperty(i)}let o=n.cssText;return e.removeAttribute("style"),o}function os(t,e){let n=t.localName;for(let i of[...t.attributes]){let a=i.name.toLowerCase(),s=Na.has(a);za(n,a)&&(!s||Ya(n,a,i.value))||t.removeAttribute(i.name)}let r=t.getAttribute("style");if(r===null)return;let o=rs(r,e.styleParser);o===""?t.removeAttribute("style"):t.setAttribute("style",o)}var is=new Set(["","_self","_parent","_top"]);function as(t){if(t.localName==="iframe"){let r=Za(t.getAttribute("allow")??"");r===""?t.removeAttribute("allow"):t.setAttribute("allow",r),t.setAttribute("sandbox",Ka),t.setAttribute("referrerpolicy",Wa);return}if(t.localName!=="a")return;let e=t.getAttribute("target");if(e===null||is.has(e.toLowerCase()))return;let n=new Set((t.getAttribute("rel")??"").split(/\s+/).filter(Boolean));n.add("noopener"),n.add("noreferrer"),t.setAttribute("rel",[...n].join(" "))}function ss(t,e){let n=t.localName,r=t.namespaceURI===La;if(r&&Ia.has(n)){t.remove();return}if(!r||!Oa.has(n)){t.replaceWith(...t.childNodes);return}if(n==="iframe"&&!Xa(t.getAttribute("src")??"",e)){t.remove();return}os(t,e),as(t)}function wr(t,e=globalThis.document,n=[]){let r=e.createElement("template");r.innerHTML=t??"";let o=Ja(e,r,n);for(let i of[...r.content.querySelectorAll("*")])ss(i,o);return r.content}function de(t){if(typeof t!="string")return!1;try{return new URL(t).protocol==="https:"}catch{return!1}}function Cr(t,e){if(!t)return"";let n=parseFloat(t.amount);if(Number.isNaN(n))return"";try{return new Intl.NumberFormat(e||void 0,{style:"currency",currency:t.currencyCode}).format(n)}catch{return`${t.currencyCode} ${n.toFixed(2)}`}}function Tr(t,e,n){if(!/\{(handle|id)\}/.test(t))return e?`${t.replace(/\/$/,"")}/${encodeURIComponent(e)}`:null;let r=n?n.split("/").at(-1)??"":"";return t.includes("{handle}")&&!e||t.includes("{id}")&&!r?null:t.replace(/\{handle\}/g,encodeURIComponent(e??"")).replace(/\{id\}/g,encodeURIComponent(r))}function kr(t){let e=String(t??"").trim();return e?e.startsWith("gid://")?e:/^\d+$/.test(e)?`gid://shopify/Product/${e}`:/\/products\/([^/?#]+)/.exec(e)?.[1]??e:null}function pe(t,{width:e,height:n,crop:r}={}){if(!t)return t;let o;try{o=new URL(t)}catch(i){if(i instanceof TypeError)return t;throw i}return e&&o.searchParams.set("width",String(e)),n&&o.searchParams.set("height",String(n)),r&&o.searchParams.set("crop",r),o.toString()}function Xe(t,e){return t.getAttribute(e)??t.getAttribute(m(e))??t.getAttribute(`data-${e}`)}function vr(t,e){if(!t||!e)return t;let n=Xe(e,"max-width"),r=Xe(e,"max-height");return pe(t,{width:n,height:r,crop:n||r?Xe(e,"crop"):null})}var Ar=t=>t.replace(/\?.*$/,"");function fe(t,e){return!t||!e?!1:Ar(t)===Ar(e)}function us(t){return/^\s*[a-z][a-z0-9+.-]*:/i.test(t)&&!/^\s*(https?:|data:image\/)/i.test(t)?"none":`url("${t.replace(/["\\\n\r\f]/g,r=>`\\${r.charCodeAt(0).toString(16)} `)}")`}function D(t,e,n){if(!e)return;let r=vr(e,t);if(t.tagName!=="IMG"){t.style.backgroundImage=us(r);return}if(fe(t.getAttribute("src"),r)){n!=null&&!t.getAttribute("alt")&&t.setAttribute("alt",n);return}t.removeAttribute("srcset"),t.removeAttribute("sizes"),t.setAttribute("src",r),n!=null&&t.setAttribute("alt",n),t.getAttribute("loading")||t.setAttribute("loading","lazy")}var Ze=new WeakMap,zt=t=>!!Ze.get(t),tn=t=>t.cloneNode(!0);function xr(t){let e=Ze.get(t);if(e!==void 0)return e;let n=t.firstElementChild,r=n?tn(n):null;return Ze.set(t,r),t.replaceChildren(),r}function z(t,e,n){let r=xr(t);if(!r){e.length&&k("repeater without a template child",t);return}t.replaceChildren(),e.forEach((o,i)=>{let a=tn(r);n(a,o,i),t.appendChild(a)})}function cs(t,e){let n=()=>{t.remove()};if(!e){n();return}try{e(t,n)}catch(r){f(r,"repeater onLeave"),n()}}function ls(t,e,n,r){e.forEach((o,i)=>{if(!n.has(o))return;let a=e[i-1];if(a?.parentNode===t?a.after(o):t.prepend(o),!!r)try{r(o)}catch(s){f(s,"repeater onEnter")}})}function en(t,e,n,r,{onEnter:o,onLeave:i}={}){let a=xr(t);if(!a){k("repeater without a template child",t);return}let s=`data-${u.prefix}-key`,l=`data-${u.prefix}-leaving`,d=()=>[...t.children].filter(w=>w.hasAttribute(s)&&!w.hasAttribute(l)),g=new Map(d().map(w=>[w.getAttribute(s),w])),x=[],A=new Set;e.forEach((w,ce)=>{let je=String(n(w,ce)),bt=g.get(je);bt?g.delete(je):(bt=tn(a),bt.setAttribute(s,je),A.add(bt)),r(bt,w,ce,A.has(bt)),x.push(bt)});let $=x.filter(w=>!A.has(w)),Dn=d().filter(w=>$.includes(w));if(!(Dn.length===$.length&&Dn.every((w,ce)=>w===$[ce]))){g.forEach(w=>{w.remove()}),x.forEach(w=>t.appendChild(w));return}ls(t,x,A,o),g.forEach(w=>{w.setAttribute(l,""),w.removeAttribute(s),w.style.pointerEvents="none",w.inert=!0,cs(w,i)})}var Lr="data-tether-seen",rn="data-tether-shown",me="data-tether-prev-display",ds=120;function Mt(t,e){return Tr(u.productPath||"/product",t,e)}function Rr(t,e){try{return t()}catch(n){if(n instanceof RangeError)return e;throw n}}function Nr(t,e=u.locale){return t?Rr(()=>new Intl.NumberFormat(e||void 0,{style:"percent",maximumFractionDigits:0}).format(t/100),`${t}%`):""}function O(t){return t?u.formatMoney?u.formatMoney(t,u.locale):Cr(t,u.locale):""}function ge(t){return t?Rr(()=>new Date(t).toLocaleDateString(u.locale||void 0),""):""}function he(t,e){t.replaceChildren(wr(e,t.ownerDocument,u.embedOrigins))}var $r=t=>t.tagName==="INPUT"||t.tagName==="TEXTAREA",Or=t=>t.tagName==="INPUT";function S(t,e){let n=e==null?"":String(e);$r(t)?t.value=n:t.textContent=n}var Ir=t=>$r(t)?t.value:t.textContent;function lt(t,e){let n=Ir(t);if(S(t,e),n!==Ir(t)&&t.hasAttribute(Lr)&&u.onValueChange)try{u.onValueChange(t,n)}catch(r){f(r,"onValueChange")}t.setAttribute(Lr,"1")}function ps(t){if(t.hasAttribute(rn))return;t.setAttribute(rn,""),t.removeAttribute("hidden");let e=t.getAttribute(me);e!==null?(t.style.display=e,t.removeAttribute(me)):t.style.display==="none"&&(t.style.display=""),typeof getComputedStyle=="function"&&getComputedStyle(t).display==="none"&&(t.style.display=t.getAttribute(m("display"))||"block")}function H(t,e){if(e){ps(t);return}t.removeAttribute(rn),!t.hasAttribute(me)&&t.style.display!=="none"&&t.setAttribute(me,t.style.display),t.style.display="none"}function ye(t,e){t.classList.toggle("is-selected",e),t.setAttribute("aria-pressed",e?"true":"false"),Or(t)&&(t.type==="radio"||t.type==="checkbox")&&(t.checked=e);let n=t.querySelector('input[type="radio"],input[type="checkbox"]');n&&Or(n)&&(n.checked=e)}var Mr,Yt=t=>Reflect.get(window,t);function fs(){let t=Yt("ScrollTrigger");if(typeof t!="function")return;let e=Reflect.get(t,"refresh");typeof e=="function"&&Reflect.apply(e,t,[])}function dt(t){clearTimeout(Mr),Mr=setTimeout(()=>{try{u.onLayoutChange?u.onLayoutChange(t):fs()}catch(e){f(e,"layout-changed")}y("layout-changed",{reason:t})},ds)}function _r(t,e){let n=[...t.querySelectorAll("img")].filter(i=>!i.complete),r=n.length,o=()=>{r-=1,r===0&&dt(`${e}:images`)};n.forEach(i=>{i.addEventListener("load",o,{once:!0}),i.addEventListener("error",o,{once:!0})})}function K(t,e){return t.getAttribute("aria-busy")==="true"?Promise.resolve(void 0):(t.setAttribute("aria-busy","true"),Promise.resolve().then(e).finally(()=>{t.removeAttribute("aria-busy")}))}function be(t,e){let n=t?p(t,e):null;if(!n)return null;try{return JSON.parse(n)}catch{return k(`invalid JSON in ${m(e)}`,t),null}}function nn(t){return t==null?"":typeof t=="string"?t:typeof t=="number"||typeof t=="boolean"?String(t):JSON.stringify(t)}function Pe(t){return Array.isArray(t)?t.filter(T).map(n=>({key:nn(n.key),value:nn(n.value)})):T(t)?Object.entries(t).map(([e,n])=>({key:e,value:nn(n)})):[]}function Jt(t){return t?Array.isArray(t)?t.map(e=>({key:String(e.key),value:String(e.value??"")})):Object.entries(t).map(([e,n])=>({key:e,value:String(n??"")})):[]}var E="amount currencyCode",Ur={inventory:!0},Fr=t=>t.inventory?"quantityAvailable":"",pt="url altText width height";function ms(t){let e=[];for(let r of t){let o=Ge(r);o&&e.push(o)}return e.length?`metafields(identifiers:[${e.map(({namespace:r,key:o})=>`{namespace: ${JSON.stringify(r)}, key: ${JSON.stringify(o)}}`).join(", ")}]){namespace key type value reference{... on MediaImage{image{${pt}}}}}`:""}var gs=` id name description recurringDeliveries options{name value}priceAdjustments{orderCount adjustmentValue{__typename ... on SellingPlanPercentagePriceAdjustment{adjustmentPercentage}... on SellingPlanFixedAmountPriceAdjustment{adjustmentAmount{${E}}}... on SellingPlanFixedPriceAdjustment{price{${E}}}}}`,hs=` sellingPlan{id}checkoutChargeAmount{${E}}remainingBalanceChargeAmount{${E}}priceAdjustments{price{${E}}compareAtPrice{${E}}perDeliveryPrice{${E}}unitPrice{${E}}}`;function Dr(t=u,e=Ur){return` fragment TetherProduct on Product{id handle title description descriptionHtml productType vendor tags availableForSale publishedAt onlineStoreUrl requiresSellingPlan seo{title description}featuredImage{${pt}}images(first:${t.imagesFirst}){nodes{${pt}}}options{name optionValues{name swatch{color image{previewImage{${pt}}}}}}priceRange{minVariantPrice{${E}}maxVariantPrice{${E}}}compareAtPriceRange{minVariantPrice{${E}}maxVariantPrice{${E}}}${ms(t.metafields)} sellingPlanGroups(first:${t.sellingPlanGroupsFirst}){nodes{name appName options{name values}sellingPlans(first:${t.sellingPlansFirst}){nodes{${gs}}}}}variants(first:${t.variantsFirst}){nodes{id title availableForSale currentlyNotInStock ${Fr(e)} sku barcode selectedOptions{name value}image{${pt}}price{${E}}compareAtPrice{${E}}unitPrice{${E}}sellingPlanAllocations(first:${t.sellingPlansFirst}){nodes{${hs}}}}}}`}function on(t=Ur){return` fragment TetherCart on Cart{id checkoutUrl totalQuantity note createdAt updatedAt attributes{key value}buyerIdentity{countryCode email}discountCodes{code applicable}cost{subtotalAmount{${E}}totalAmount{${E}}checkoutChargeAmount{${E}}}lines(first:100){nodes{id quantity attributes{key value}cost{totalAmount{${E}}subtotalAmount{${E}}amountPerQuantity{${E}}compareAtAmountPerQuantity{${E}}}discountAllocations{discountedAmount{${E}}}sellingPlanAllocation{sellingPlan{id name description recurringDeliveries options{name value}}checkoutChargeAmount{${E}}priceAdjustments{price{${E}}compareAtPrice{${E}}perDeliveryPrice{${E}}}}merchandise{... on ProductVariant{id title sku availableForSale requiresShipping ${Fr(t)} image{${pt}}price{${E}}compareAtPrice{${E}}selectedOptions{name value}product{id title handle vendor featuredImage{${pt}}}}}... on ComponentizableCartLine{lineComponents{id quantity merchandise{... on ProductVariant{id title product{title handle}}}}}}}}`}function Hr(){return` id handle title description descriptionHtml image{${pt}}seo{title description}`}var un={};Ai(un,{GID:()=>Q,allPlans:()=>R,allocationFor:()=>N,findPlan:()=>Nt,hasPlans:()=>Ps,planAdjustment:()=>sn,planCheckoutCharge:()=>an,planPrice:()=>Rt,planSavings:()=>Zt,plansForVariant:()=>Es,toGid:()=>Ee});var ys=/^(-?)(\d+)(?:\.(\d+))?$/;function Vr(t,e){let n=ys.exec(t.trim());if(!n)return null;let[,r="",o="0",i=""]=n,a=BigInt(`${o}${i.padEnd(e,"0")}`);return r==="-"?-a:a}var qr=t=>t.split(".")[1]?.length??0;function Kr(t,e){if(t==null||e==null)return!1;let n=Math.max(qr(t.trim()),qr(e.trim())),r=Vr(t,n),o=Vr(e,n);return r===null||o===null?!1:r>o}var jr=2,Gr=new Map;function Qr(t){let e=Gr.get(t);if(e!==void 0)return e;let n=jr;try{n=new Intl.NumberFormat("en",{style:"currency",currency:t}).resolvedOptions().maximumFractionDigits??jr}catch{}return Gr.set(t,n),n}function Pt(t){return Math.round(parseFloat(t.amount)*10**Qr(t.currencyCode))}function Xt(t,e){let n=Qr(e);return{amount:(t/10**n).toFixed(n),currencyCode:e}}var bs=100;function Ee(t,e){let n=typeof t=="string"||typeof t=="number"?String(t).trim():"";return n?n.startsWith("gid://")?n:/^\d+$/.test(n)?`gid://shopify/${e}/${n}`:n:null}var Q={product:t=>Ee(t,"Product"),variant:t=>Ee(t,"ProductVariant"),sellingPlan:t=>Ee(t,"SellingPlan")};function R(t){return(t?.sellingPlanGroups?.nodes??[]).flatMap(n=>n.sellingPlans.nodes.map(r=>({...r,group:n})))}function Ps(t){return R(t).length>0}function N(t,e){return!t||!e?null:(t.sellingPlanAllocations?.nodes??[]).find(r=>r.sellingPlan.id===e)??null}function Es(t,e){return R(t).filter(n=>N(e,n.id))}function Rt(t,e){let n=N(t,e)?.priceAdjustments[0];return n?.perDeliveryPrice??n?.price??t?.price??null}function an(t,e){let n=N(t,e);return n?.checkoutChargeAmount??n?.priceAdjustments[0]?.price??t?.price??null}function Zt(t,e){let n=Rt(t,e);if(!t||!n)return{amount:null,percentage:0};let r=parseFloat(t.price.amount),o=parseFloat(n.amount);if(!Number.isFinite(r)||!Number.isFinite(o)||r<=0||o>=r)return{amount:null,percentage:0};let i=Pt(t.price)-Pt(n);return{amount:Xt(i,t.price.currencyCode),percentage:Math.round((1-o/r)*bs)}}function sn(t){let e=t?.priceAdjustments[0]?.adjustmentValue;if(!e)return null;switch(e.__typename){case"SellingPlanPercentagePriceAdjustment":return{type:"percentage",value:e.adjustmentPercentage};case"SellingPlanFixedAmountPriceAdjustment":return{type:"amount",value:e.adjustmentAmount};case"SellingPlanFixedPriceAdjustment":return{type:"price",value:e.price};default:return null}}function Nt(t,e){if(!e)return null;let n=R(t),r=Q.sellingPlan(e),o=e.trim().toLowerCase();return n.find(i=>i.id===r)??n.find(i=>i.name.toLowerCase()===o)??n.find(i=>i.options.some(a=>a.value.toLowerCase()===o))??null}var Z={amount:"string",currencyCode:"string"},$t={id:"string",handle:"string",title:"string",options:["object"],images:{nodes:["object"]},priceRange:{minVariantPrice:Z,maxVariantPrice:Z},variants:{nodes:[{id:"string",price:Z,selectedOptions:["object"]}]}},Wr={nodes:[$t],pageInfo:{hasNextPage:"boolean"}},Br=t=>X(t,"id")!==""&&X(t,"handle")!==""&&G(t,$t),zr=t=>T(t)&&(t.id===void 0||G(t,$t)),Il=B({collection:F({handle:"string",products:Wr})}),Ml=B({products:Wr}),Rl=B({productRecommendations:F([$t])});var Ss={id:"string",quantity:"number",attributes:["object"],cost:{totalAmount:Z,subtotalAmount:Z,amountPerQuantity:Z},merchandise:{id:"string",selectedOptions:["object"],product:"object"}},cn={id:"string",checkoutUrl:"string",totalQuantity:"number",attributes:["object"],discountCodes:["object"],cost:{totalAmount:Z,subtotalAmount:Z},lines:{nodes:[Ss]}};var ws='a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex="-1"])',Cs=60,ln=!1,Se=null,Ts=t=>t!==null&&"focus"in t,Yr=t=>h(t,ws).filter(e=>e.offsetParent!==null||e===document.activeElement),Et=()=>h(document,c("cart-drawer")),dn=t=>t.classList.contains(u.cartDrawerOpenClass);function Y(){let t=Et();return t.length?t.some(dn):ln}function we(t){h(document,c("cart-open")).forEach(e=>{e.setAttribute("aria-expanded",String(t))}),Et().forEach(e=>{e.hasAttribute("role")||e.setAttribute("role","dialog"),!e.hasAttribute("aria-label")&&!e.hasAttribute("aria-labelledby")&&e.setAttribute("aria-label",p(e,"cart-label")||"Cart"),e.setAttribute("aria-modal",String(t)),!dn(e)&&(e.setAttribute("aria-hidden","true"),u.cartFocus&&(e.inert=!0))})}function ks(t){let e=Yr(t)[0]??t;e===t&&!t.hasAttribute("tabindex")&&(t.tabIndex=-1),e.focus({preventScroll:!0})}function Ce(){if(Y())return;ln=!0;let t=Et().filter(n=>p(n,"cart-drawer")!=="manual");t.forEach(n=>{n.inert=!1,n.classList.add(u.cartDrawerOpenClass),n.setAttribute("aria-hidden","false")}),we(!0);let[e]=t;u.cartFocus&&e&&(Se=Ts(document.activeElement)?document.activeElement:null,setTimeout(()=>{ks(e)},Cs)),u.onCartOpen?.(t),y("cart-toggled",{open:!0})}function pn(){if(!Y())return;ln=!1;let t=Et(),e=t.some(n=>n.contains(document.activeElement));t.forEach(n=>{n.classList.remove(u.cartDrawerOpenClass),n.setAttribute("aria-hidden","true"),u.cartFocus&&(n.inert=!0)}),we(!1),e&&Se?.isConnected&&Se.focus({preventScroll:!0}),Se=null,u.onCartClose?.(t),y("cart-toggled",{open:!1})}function Jr(){Y()?pn():Ce()}function fn(t){if(t.key!=="Tab"||!u.cartFocus||!Y())return;let e=Et().find(dn);if(!e)return;let n=Yr(e),r=n[0],o=n.at(-1);if(!r||!o)return;let i=document.activeElement,a=t.shiftKey?i===r:i===o;e.contains(i)&&!a||(t.preventDefault(),(t.shiftKey?o:r).focus())}var As=1e4,vs=6e4,V=new Map,mn=new Map,St=new Set,Te=new Map,to=[],gn=!1,te=0,Xr=t=>t.startsWith("gid://"),wt=kr;function _t(t){if(!t)return;let e=Promise.resolve(t);V.set(t.handle,e),V.set(t.id,e)}function tt(t){let e=wt(t);if(!e)return Promise.reject(new P("empty product key",{code:"NOT_FOUND"}));let n=V.get(e);if(n)return n;let r=new Promise((o,i)=>{mn.set(e,{resolve:o,reject:i}),to.push(e),gn||(gn=!0,setTimeout(()=>void Is(),0))});return V.set(e,r),r}var hn=t=>e=>`${t}${Dr(u,e)}`;function xs(t){let e=t.filter(Xr),n=t.filter(s=>!Xr(s)),r=[],o=[],i={};return e.length&&(r.push("$ids: [ID!]!"),i.ids=e,o.push("byId:nodes(ids:$ids){... on Product{...TetherProduct}}")),n.forEach((s,l)=>{r.push(`$h${l}: String!`),i[`h${l}`]=s,o.push(`h${l}:product(handle:$h${l}){...TetherProduct}`)}),{query:hn(`query TetherProducts(${r.join(",")}){${o.join(" ")}}`),variables:i,handles:n}}function Zr(t,e){let n=mn.get(t);mn.delete(t),n&&e(n)}function Ls(t,e){if(e!==te)return;let n=V.get(t);setTimeout(()=>{V.get(t)===n&&V.delete(t)},As)}function Os(t){if(!T(t))return!1;let{byId:e=[],...n}=t;return G(e,[F(zr)])&&Object.values(n).every(F($t))}async function Is(){gn=!1;let t=te,e=to.splice(0);if(!e.length)return;let{query:n,variables:r,handles:o}=xs(e);L("fetch products",e);let i;try{i=await at(n,r,Os)}catch(l){e.forEach(d=>{Zr(d,g=>{t===te&&V.delete(d),g.reject(l)})});return}let a=new Map;for(let l of i.byId??[])l?.id&&a.set(l.id,l);o.forEach((l,d)=>{let g=i[`h${d}`];g&&a.set(l,g)});let s=Date.now();e.forEach(l=>{Zr(l,d=>{let g=a.get(l);if(!g){Ls(l,t),d.reject(new P(`Product not found: ${l}`,{code:"NOT_FOUND"}));return}t===te&&(_t(g),Te.set(g.handle,s),Te.set(g.id,s)),d.resolve(g)})})}function ke(){V.clear(),te+=1,St.clear(),Te.clear()}function eo(t){for(let e of t??[])!e.id||!e.handle||Date.now()-(Te.get(e.handle)??0)<vs&&V.has(e.handle)||(_t(e),St.add(e.handle),St.add(e.id))}function no(t){let e=wt(t);return!e||!St.has(e)?!1:(St.delete(e),V.get(e)?.then(n=>{St.delete(n.handle),St.delete(n.id)},Ms),!0)}function Ms(){}function ro(t){let e=wt(t);return e&&V.delete(e),tt(t)}var Rs=/^image:(\d+)$/,oo="metafield:",Ns=/^(rich_text|multi_line_text)_field$/,$s=["","true","all","*"],ee=t=>t.tagName==="SELECT",Ct=(t,e)=>t.$(`select${e}`).filter(ee);function _s(t,e){let n=e.images.nodes,r=[...t.children].map(i=>i.tagName==="IMG"?i:i.querySelector("img"));!zt(t)&&r.length===n.length&&r.every((i,a)=>fe(i?.getAttribute("src"),n[a]?.url))||z(t,n,(i,a)=>{let s=i.matches(`img,${c("bind","image")}`)?i:h(i,"img")[0]??i;D(s,a.url,a.altText||e.title)})}function Us(t,e,n){let r=n.indexOf("."),o=n.slice(0,r),i=n.slice(r+1),a=(e.metafields??[]).find(l=>l?.namespace===o&&l.key===i);if(!a){S(t,"");return}let s=a.reference?.image;if(s){D(t,s.url,s.altText);return}Ns.test(a.type)&&(t.style.whiteSpace="pre-line"),S(t,a.value)}var Fs=new Map(Object.entries({title:t=>t.title,"description-text":t=>t.description,vendor:t=>t.vendor,type:t=>t.productType,handle:t=>t.handle,"published-at":t=>ge(t.publishedAt),"min-price":t=>O(t.priceRange.minVariantPrice),"max-price":t=>O(t.priceRange.maxVariantPrice)}));function Ds(t,e){let n=(t.getAttribute("exclude")??"").split(",").map(o=>o.trim()).filter(Boolean),r=e.tags.filter(o=>!n.includes(o));z(t,r,(o,i)=>{S(o,i)})}function Hs(t,e,n){let r=Fs.get(e);if(r){S(t,r(n));return}switch(e){case"description":he(t,n.descriptionHtml);break;case"featured-image":D(t,n.featuredImage?.url,n.featuredImage?.altText||n.title);break;case"url":case"link":{let o=Mt(n.handle,n.id);o&&t.setAttribute("href",o),e==="url"&&!t.firstElementChild&&!t.textContent.trim()&&S(t,n.title);break}case"images":_s(t,n);break;case"tags":Ds(t,n);break;default:Vs(t,e,n)}}function Vs(t,e,n){let r=Rs.exec(e);if(r){let o=n.images.nodes[Number(r[1])-1]??n.featuredImage;D(t,o?.url,o?.altText||n.title)}else e.startsWith(oo)&&Us(t,n,e.slice(oo.length))}function qs(t){let{product:e}=t;t.$(c("option-list")).forEach(n=>{let r=t.optName(p(n,"option-list")),o=e.options.find(i=>i.name===r);if(!o||o.optionValues.length<=1&&st(n,"hide-single")){H(n,!1);return}z(n,o.optionValues,(i,a)=>{i.setAttribute(m("option-value"),a.name);let s=h(i,c("bind","option-value"))[0];s?S(s,a.name):i.firstElementChild||S(i,a.name);let l=h(i,c("bind","swatch"))[0],{swatch:d}=a;!l||!d||(d.color&&(l.style.backgroundColor=d.color),d.image?.previewImage&&D(l,d.image.previewImage.url,a.name))})})}function js(t){let{product:e}=t;Ct(t,c("option")).forEach(n=>{let r=e.options.find(o=>o.name===t.optName(p(n,"option")));if(!r){H(n,!1);return}n.replaceChildren(...r.optionValues.map(o=>new Option(o.name,o.name)))}),Ct(t,c("variant-select")).forEach(n=>{n.replaceChildren(...e.variants.nodes.map(r=>new Option(r.title,r.id)))}),Ct(t,c("plan")).forEach(n=>{let r=t.plans.map(a=>new Option(a.name,a.id)),o=!e.requiresSellingPlan&&p(n,"plan")!=="subscription-only",i=n.getAttribute(m("one-time-label"))||"One-time purchase";n.replaceChildren(...o?[new Option(i,"")]:[],...r)})}function Gs(t){t.$(c("plan-list")).forEach(e=>{let n=(p(e,"plan-list")??"").trim(),r=$s.includes(n.toLowerCase())?null:n,o=t.plans.filter(i=>!r||i.group.name===r);z(e,o,(i,a)=>{i.setAttribute(m("plan-value"),a.id),!i.firstElementChild&&!i.querySelector(c("plan-bind"))&&S(i,a.name)})})}function io(t){t.$(c("bind")).forEach(e=>{Hs(e,p(e,"bind")??"",t.product)}),qs(t),js(t),Gs(t)}var ao="Default Title",yn=(t,e)=>e.get(t.id)?.quantity??t.quantity,so=t=>t.split("/").pop()??t;function Ks(t){let e=t.merchandise,n=Mt(e.product.handle,e.product.id);if(!n)return null;let r=new URLSearchParams;r.set("variant",so(e.id));let o=t.sellingPlanAllocation?.sellingPlan.id;return o&&r.set("selling_plan",so(o)),`${n}${n.includes("?")?"&":"?"}${r.toString()}`}var uo=t=>t.merchandise.product.title,co={title:uo,"product-title":uo,"variant-title":t=>t.merchandise.title===ao?"":t.merchandise.title,options:t=>t.merchandise.selectedOptions.filter(e=>e.value!==ao).map(e=>`${e.name}: ${e.value}`).join(", "),vendor:t=>t.merchandise.product.vendor,sku:t=>t.merchandise.sku??"",price:t=>O(t.cost.amountPerQuantity),"compare-at-price":t=>O(t.cost.compareAtAmountPerQuantity??t.merchandise.compareAtPrice),"line-total":t=>O(t.cost.totalAmount),"line-subtotal":t=>O(t.cost.subtotalAmount),quantity:(t,e)=>yn(t,e.pending),plan:t=>t.sellingPlanAllocation?.sellingPlan.name??"","plan-description":t=>t.sellingPlanAllocation?.sellingPlan.description??"",components:t=>(t.lineComponents??[]).map(e=>`${e.quantity} \xD7 ${e.merchandise.product.title}`).join(", ")},lo="attribute:";function Qs(t,e,n){if(Object.hasOwn(co,e))return co[e]?.(t,n);if(!e.startsWith(lo))return;let r=e.slice(lo.length);return t.attributes.find(o=>o.key===r)?.value??""}function Ws(t,e,n){let r=R(n),o=!n.requiresSellingPlan&&p(t,"line-plan")!=="subscription-only",i={value:"",label:t.getAttribute(m("one-time-label"))||"One-time purchase"},a=[...o?[i]:[],...r.map(l=>({value:l.id,label:l.name}))],s=a.map(l=>l.value).join("|");t.dataset.tetherSig!==s&&(t.replaceChildren(...a.map(l=>{let d=document.createElement("option");return d.value=l.value,d.textContent=l.label,d})),t.dataset.tetherSig=s),t.value=e.sellingPlanAllocation?.sellingPlan.id??"",H(t,r.length>0)}function Bs(t,e,n){let r=!!e.sellingPlanAllocation;t.classList.toggle("is-subscription",r);let o=n.warnings.find(s=>s.target===e.id);t.classList.toggle("is-warning",!!o);let i=n.pending.has(e.id);t.classList.toggle("is-busy",i),i?t.setAttribute("aria-busy","true"):t.removeAttribute("aria-busy"),h(t,c("line","warning")).forEach(s=>{lt(s,o?.message??"")});let a=new Map([["subscription",r],["one-time",!r],["on-sale",Kr(e.cost.compareAtAmountPerQuantity?.amount,e.cost.amountPerQuantity.amount)],["has-components",(e.lineComponents??[]).length>0],["warning",!!o]]);h(t,c("line-show")).forEach(s=>{let l=p(s,"line-show"),d=l===null?void 0:a.get(l);d!==void 0&&H(s,d)})}function zs(t,e,n){let r=e.merchandise;t.setAttribute(m("line-id"),e.id),h(t,c("line")).forEach(i=>{let a=p(i,"line")??"";if(a==="image"){D(i,r.image?.url??r.product.featuredImage?.url,r.product.title);return}if(a==="url"){let l=Ks(e);l&&i.setAttribute("href",l);return}let s=Qs(e,a,n);s!==void 0&<(i,s)}),Bs(t,e,n),h(t,c("line-plan")).filter(ee).forEach(i=>{tt(r.product.handle).then(a=>{Ws(i,e,a)}).catch(a=>{f(a,"line plan options")})})}function Ys(t,e){let n=t?.totalQuantity??0,r=(t?.lines.nodes??[]).some(i=>i.sellingPlanAllocation),o=new Map([["cart-empty",n===0],["cart-filled",n>0],["cart-has-subscription",r],["cart-no-subscription",!r],["cart-has-discount",(t?.discountCodes??[]).some(i=>i.applicable)],["cart-error",e.failed],["cart-warning",e.warnings.length>0]]);h(document,c("show")).forEach(i=>{let a=p(i,"show"),s=a===null?void 0:o.get(a);s===void 0||i.closest(c("product"))||H(i,s)}),h(document,c("checkout")).forEach(i=>{i.classList.toggle("is-disabled",!n),i.setAttribute("aria-disabled",String(!n))})}function Js(t){h(document,`textarea${c("cart-note")},input${c("cart-note")}`).forEach(e=>{document.activeElement!==e&&S(e,t?.note??"")}),h(document,c("cart-discounts")).forEach(e=>{z(e,t?.discountCodes??[],(n,r)=>{n.setAttribute(m("discount-code"),r.code);let o=n.querySelector(c("discount","code"))??(n.firstElementChild?null:n);o&&S(o,r.code),n.classList.toggle("is-inapplicable",!r.applicable)})})}function po(t){let{cart:e}=t,n=r=>e?O(e.cost[r]):"";we(Y()),h(document,c("cart-count")).forEach(r=>{lt(r,e?.totalQuantity??0)}),h(document,c("cart-subtotal")).forEach(r=>{lt(r,n("subtotalAmount"))}),h(document,c("cart-total")).forEach(r=>{lt(r,n("totalAmount"))}),h(document,c("cart-checkout-charge")).forEach(r=>{lt(r,n("checkoutChargeAmount"))}),Ys(e,t),h(document,c("cart-warning")).forEach(r=>{lt(r,[...new Set(t.warnings.map(o=>o.message))].join(" "))}),Js(e),h(document,c("cart-lines")).forEach(r=>{en(r,e?.lines.nodes??[],o=>o.id,(o,i)=>{zs(o,i,t)},{onEnter:u.onLineEnter,onLeave:u.onLineLeave})}),e&&dt("cart")}function fo(t){h(document,c("cart-count")).forEach(e=>{/^\s*0?\s*$/.test(e.textContent)&&(e.textContent=String(t))})}function Tt(t,e="localStorage"){try{return window[e].getItem(t)}catch{return null}}function Ae(t,e,n="localStorage"){try{window[n].setItem(t,e)}catch{}}function ne(t,e="localStorage"){try{window[e].removeItem(t)}catch{}}var mo=/^gid:\/\/shopify\/Cart\/[\w-]+(\?key=[\w-]+)?$/;var q={kind:"unknown"},Ut=[],kt=new Map,ve=()=>q;function v(){switch(q.kind){case"ready":case"error":return q.cart;case"unknown":case"empty":return null}}var ho=()=>Ut,bn=t=>t?{kind:"ready",cart:t}:{kind:"empty"},yo=()=>`${u.storageKey}:seen`;function ft(){let t=Tt(u.storageKey);return t?mo.test(t)?t:(mt(),null):null}function mt(){ne(u.storageKey)}function Pn(t){q=bn(t),t&&Ae(u.storageKey,t.id)}function re(){po({cart:v(),warnings:Ut,pending:kt,failed:q.kind==="error"})}function oe(t){re(),y("cart-updated",{cart:v(),reason:t})}function W(t,e){return Pn(t),Ae(yo(),`${Date.now()}|${t?.totalQuantity??0}`),oe(e),t}function ie(t){q=t.kind==="loaded"?bn(t.cart):{kind:"error",error:t.error,cart:null},oe("load")}function Xs(){let t=Tt(yo())?.split("|")[1]??"",e=Number(t);return/^\d+$/.test(t)&&Number.isSafeInteger(e)?e:null}function bo(){if(q.kind!=="unknown")return;let t=Xs();t!==null&&fo(t)}function Po(t){Ut=t.filter((e,n)=>t.findIndex(r=>r.message===e.message)===n).map(e=>({...e,message:u.warningText?.(e)||e.message})),Ut.length&&y("cart-warning",{warnings:Ut})}var go=()=>{};function Zs(){let t=Promise.resolve();return e=>{let n=t.then(e);return t=n.then(go,go),n}}var tu=Zs();function Eo(t){return tu(t).then(e=>(q.kind==="error"&&(q=bn(q.cart),re()),e),e=>{throw q={kind:"error",error:e,cart:v()},re(),y("cart-error",{error:e}),e})}var En=t=>yn(t,kt),eu=()=>({open:Y(),count:v()?.totalQuantity??0,loaded:q.kind!=="unknown",warnings:[...Ut]});function So(t){let e=["cart-updated","cart-toggled"].map(r=>`${u.prefix}:${r}`),n=()=>{t(v(),eu())};return e.forEach(r=>{document.addEventListener(r,n)}),n(),()=>{e.forEach(r=>{document.removeEventListener(r,n)})}}var nu=/does not exist|not found|invalid id/i,ru=t=>B({[t]:F({cart:F(cn)})});function xe(t){return t instanceof P?t.userErrors?.some(e=>e.field?.[0]==="cartId")?!0:(t.errors??[]).some(e=>nu.test(e.message)):!1}function Co(t){if(!(t instanceof P))return!1;let{code:e,status:n=0}=t;return e==="NETWORK"||e==="INVALID_RESPONSE"||e==="SERVER_ERROR"||n>=500}function To(t,e=1,n={}){let r=typeof t=="object"&&t!==null?t:{...n,quantity:e,...t==null?{}:{variantId:t}},o=Q.variant(r.merchandiseId||r.variantId||r.id);if(!o)throw new P("add(): variantId is required");let i=parseInt(String(r.quantity??1),10),a={merchandiseId:o,quantity:Math.max(1,i||1)},s=Q.sellingPlan(r.sellingPlanId||r.sellingPlan);s&&(a.sellingPlanId=s);let l=Jt(r.attributes);return l.length&&(a.attributes=l),a}function ou(t,e,n){return r=>`mutation Tether_${t}(${e}){${t}(${n}){cart{...TetherCart}userErrors{field message}warnings{code message target}}}${on(r)}`}async function ko(t,e,n,r){let o=await at(ou(t,e,n),r,ru(t),{operation:"mutation"}),i=gr(o[t],t);return Po(i.warnings??[]),i.cart}function wo(t){let e=u.country?{buyerIdentity:{countryCode:u.country},...t}:t;return ko("cartCreate","$input: CartInput!","input: $input",{input:e})}async function gt({name:t,args:e,inner:n,variables:r,createInput:o}){let i=ft();if(!i)return o?wo(o):null;try{return await ko(t,`$cartId: ID!, ${e}`,`cartId: $cartId, ${n}`,{...r,cartId:i})}catch(a){if(!xe(a)||(mt(),!o))throw a;return L("cart expired, creating a new one"),wo(o)}}async function Sn(t){return(await at(n=>`query TetherCart($id:ID!){cart(id:$id){...TetherCart}}${on(n)}`,{id:t},B({cart:F(cn)}))).cart}async function Ao(t){return(await at("query TetherCheckout($id:ID!){cart(id:$id){checkoutUrl}}",{id:t},B({cart:F({checkoutUrl:"string"})}))).cart?.checkoutUrl??null}function vo(t,e){let n=typeof e=="number"?{quantity:e}:e,r={id:t};n.quantity!==void 0&&(r.quantity=n.quantity),"sellingPlanId"in n&&(r.sellingPlanId=n.sellingPlanId?Q.sellingPlan(n.sellingPlanId):null),n.attributes&&(r.attributes=Jt(n.attributes));let o=n.merchandiseId||n.variantId;return o&&(r.merchandiseId=Q.variant(o)),r}var wn=t=>gt({name:"cartLinesUpdate",args:"$lines: [CartLineUpdateInput!]!",inner:"lines: $lines",variables:{lines:t},createInput:null}),Le=t=>gt({name:"cartLinesRemove",args:"$lineIds: [ID!]!",inner:"lineIds: $lineIds",variables:{lineIds:t},createInput:null}),xo=(t,e)=>e>0?wn([{id:t,quantity:e}]):Le([t]);var Cn=null;function Lo(t){Cn=t}var iu=t=>Ao(t).then(e=>({kind:"url",url:e}),e=>({kind:"failed",error:e}));async function au(){if(!Cn)return null;try{let t=await Cn();return t&&`${t}${t.includes("?")?"&":"?"}logged_in=true`}catch(t){return f(t,"account checkout"),null}}async function su(t){let e=iu(t),n=await au();if(n)return n;let r=await e;if(r.kind==="failed")throw r.error;if(!r.url)throw new P("No checkoutUrl (cart empty or expired)");return r.url}function uu(t){try{t.opener=null}catch{}}async function Oo(t=u.checkoutTarget){let e=ft(),n=v();if(!e||n&&!n.totalQuantity)return null;let r=t==="_blank"?window.open("","_blank"):null;r&&uu(r);try{let o=await su(e);if(!de(o))throw new P("The checkout URL is not https: not opened");return y("checkout",{url:o,cart:v()}),r&&!r.closed?r.location.href=o:window.location.href=o,o}catch(o){return r?.close(),f(o,"checkout failed"),null}}var Oe=()=>v()?.lines.nodes??[];async function cu(){let t=ft();if(t)try{let e=await Sn(t);e||mt(),W(e,"load")}catch(e){f(e,"cart reload after a failed change")}}function et(t){return Eo(()=>t().catch(async e=>{throw Co(e)&&await cu(),e}))}function lu(t,e){let n=Oe().find(s=>s.id===t);if(!n)return Promise.resolve(v());let r=Math.max(0,En(n)+e),o={quantity:r};kt.set(t,o),oe("pending");let i=()=>kt.get(t)===o;return et(async()=>{if(!i())return v();if(Oe().find(d=>d.id===t)?.quantity===r)return v();let l=await xo(t,r);return i()?W(l,r>0?"update":"remove"):(Pn(l),l)}).finally(()=>{i()&&(kt.delete(t),oe("settled"))})}function du(t){let e=(v()?.discountCodes??[]).map(r=>r.code),n=typeof t=="function"?t(e):t;return(Array.isArray(n)?n:[n]).map(r=>r.trim()).filter(Boolean)}function pu(t){let e=new Map((v()?.attributes??[]).map(n=>[n.key,n.value]));return Jt(t).forEach(n=>e.set(n.key,n.value)),[...e].filter(([,n])=>n!=="").map(([n,r])=>({key:n,value:r}))}async function fu(){let t=ft();if(!t)return ie({kind:"loaded",cart:null}),null;bo();try{let e=await Sn(t);e||mt(),ie({kind:"loaded",cart:e})}catch(e){f(e,"cart load failed"),xe(e)&&mt(),ie({kind:"failed",error:e})}return v()}var b={init:fu,id:ft,get status(){return ve()},get state(){return v()},get lines(){return[...Oe()]},get count(){return v()?.totalQuantity??0},get loaded(){return ve().kind!=="unknown"},get lastError(){let t=ve();return t.kind!=="error"?null:t.error instanceof Error?t.error:new Error(String(t.error))},get warnings(){return[...ho()]},get pendingQty(){return kt},setCheckoutResolver:Lo,forgetSaved(){mt(),ie({kind:"loaded",cart:null})},render:re,subscribe:So,add(t,e=1,n={}){let r=(Array.isArray(t)?t:[t]).map(o=>To(o,e,n));return et(async()=>{let o=await gt({name:"cartLinesAdd",args:"$lines: [CartLineInput!]!",inner:"lines: $lines",variables:{lines:r},createInput:{lines:r}});if(!o)throw new P("Shopify answered the add without a cart");return W(o,"add"),y("added",{cart:o,lines:r}),u.openCartOnAdd&&Ce(),o})},updateLine(t,e){let n=typeof e=="number"?e:e.quantity;if(n!==void 0&&n<=0)return b.removeLine(t);let r=vo(t,e);return et(async()=>W(await wn([r]),"update"))},changeQuantity:lu,quantityOf:En,removeLine(t){let e=Array.isArray(t)?t:[t];return et(async()=>W(await Le(e),"remove"))},clear(){return et(async()=>{let t=Oe().map(e=>e.id);return t.length?W(await Le(t),"remove"):v()})},setNote(t){let e={note:t??""};return et(async()=>W(await gt({name:"cartNoteUpdate",args:"$note: String!",inner:"note: $note",variables:e,createInput:e}),"note"))},setAttributes(t){return et(async()=>{let e={attributes:pu(t)},n=await gt({name:"cartAttributesUpdate",args:"$attributes: [AttributeInput!]!",inner:"attributes: $attributes",variables:e,createInput:e});return W(n,"attributes")})},setDiscountCodes(t){return et(async()=>{let e={discountCodes:du(t)},n=await gt({name:"cartDiscountCodesUpdate",args:"$discountCodes: [String!]!",inner:"discountCodes: $discountCodes",variables:e,createInput:e});return W(n,"discount")})},async applyDiscount(t){let e=await b.setDiscountCodes(o=>[...new Set([...o,t])]),n=t.toLowerCase();if((e?.discountCodes??[]).find(o=>o.code.toLowerCase()===n)?.applicable)return e;try{await b.removeDiscount(t)}catch(o){f(o,"removing a discount code Shopify refused")}throw new P(`Discount code not valid: ${t}`,{code:"INVALID_DISCOUNT"})},removeDiscount(t){let e=t.toLowerCase();return b.setDiscountCodes(n=>n.filter(r=>r.toLowerCase()!==e))},setBuyerIdentity(t,{create:e=!0}={}){return et(async()=>{let n=await gt({name:"cartBuyerIdentityUpdate",args:"$buyerIdentity: CartBuyerIdentityInput!",inner:"buyerIdentity: $buyerIdentity",variables:{buyerIdentity:t},createInput:e?{buyerIdentity:t}:null}).catch(r=>{if(e||!xe(r))throw r;return null});return W(n,"buyer-identity")})},checkout:Oo,drawers:Et,isOpen:Y,open:Ce,close:pn,toggle:Jr};var mu=100,gu=(t,e)=>Xt(Pt(t)*e,t.currencyCode),Dt=t=>Object.fromEntries(t.selectedOptions.map(e=>[e.name,e.value]));function hu(t,e){return t.variants.nodes.find(n=>n.selectedOptions.every(r=>e[r.name]===r.value))??null}function Io(t,e,n,r){return t.variants.nodes.some(o=>o.availableForSale&&o.selectedOptions.every(i=>i.name===n?i.value===r:e[i.name]===i.value))}var Ft=t=>t.kind==="subscription"?t.planId:t.offeredPlanId;function Ie(t,e){return t.kind==="subscription"&&N(e,t.planId)?t:{kind:"one-time"}}function Me(t,e,n,r){let o=R(t),i=o.find(s=>s.id===r)??o[0];if(!i)return{kind:"one-time",offeredPlanId:null};let a=N(e,i.id)?i:o.find(s=>N(e,s.id))??i;return t.requiresSellingPlan||n==="subscription"?{kind:"subscription",planId:a.id}:{kind:"one-time",offeredPlanId:a.id}}function Mo(t,{variant:e,sellingPlan:n,defaultPlan:r,defaultPurchase:o}){let i=t.variants.nodes,a=Q.variant(e),s=i.find(x=>x.id===a)??i.find(x=>x.availableForSale)??i[0]??null,l=Nt(t,n),d=l??Nt(t,r),g=l||o==="subscription"?"subscription":"one-time";return{selected:s?Dt(s):{},purchase:Me(t,s,g,d?.id??null)}}function yu(t,e,n,r,o){let i=t.quantityAvailable,a=i!=null&&i>0&&i<=e,s=r.compareAtPrice!==null,l=r.line.kind==="subscription";return{"in-stock":t.availableForSale,"out-of-stock":!t.availableForSale,backorder:t.availableForSale&&t.currentlyNotInStock,"on-sale":s,"not-on-sale":!s,"has-variants":n>1,"single-variant":n===1,"low-stock":a,"plenty-in-stock":t.availableForSale&&!a,"subscription-available":r.subscriptionAvailable,"subscription-unavailable":!r.subscriptionAvailable,"subscription-only":o,"one-time-available":!o,"subscription-selected":l,"one-time-selected":!l,"has-savings":l?r.savings.percentage>0:s}}function Ro(t,e,n){let r=hu(t,e.selected),o=r??t.variants.nodes[0];if(!o)return null;let i=Me(t,o,e.purchase.kind,Ft(e.purchase)),a=Ft(i),s=R(t),l=Ie(i,o),d=l.kind==="subscription"?N(o,l.planId):null,g=d?Rt(o,a)??o.price:o.price,x=d?.priceAdjustments[0]?.compareAtPrice??o.compareAtPrice,A={line:l,subscriptionAvailable:s.some($=>N(o,$.id)),compareAtPrice:x&&parseFloat(x.amount)>parseFloat(g.amount)?x:null,savings:Zt(o,a)};return{...A,variant:o,selected:r?e.selected:Dt(o),purchase:i,plan:s.find($=>$.id===a)??null,quantity:e.quantity,price:g,show:yu(o,n,t.variants.nodes.length,A,t.requiresSellingPlan)}}function No(t,e){let{variant:n,plan:r,price:o,compareAtPrice:i,quantity:a}=t,s=Ft(t.purchase),l=$=>gu($,Math.max(1,a)),A={price:()=>e.money(o),"total-price":()=>e.money(l(o)),"one-time-price":()=>e.money(n.price),"subscription-price":()=>e.money(s?Rt(n,s):null),"subscription-savings":()=>e.percent(t.savings.percentage),"subscription-savings-amount":()=>e.money(t.savings.amount),"checkout-charge":()=>{let $=t.line.kind==="subscription"?an(n,s)??o:o;return e.money(l($))},"plan-name":()=>r?.name,"plan-description":()=>r?.description,"plan-group":()=>r?.group.name,"compare-at-price":()=>e.money(i),"unit-price":()=>e.money(n.unitPrice),"discount-percentage":()=>i?`${Math.round((1-parseFloat(o.amount)/parseFloat(i.amount))*mu)}%`:"0%","discount-amount":()=>i?e.money(Xt(Pt(i)-Pt(o),o.currencyCode)):"","variant-title":()=>n.title,"variant-id":()=>n.id,sku:()=>n.sku,barcode:()=>n.barcode,stock:()=>n.quantityAvailable,quantity:()=>a};return new Map(Object.entries(A))}function $o(t,e,n,r){let i={name:()=>n?.name,option:()=>(n?.options??[]).map(a=>a.value).join(", "),description:()=>n?.description,price:()=>r.money(Rt(t,e)),savings:()=>r.percent(Zt(t,e).percentage),"savings-amount":()=>r.money(Zt(t,e).amount),adjustment:()=>{let a=sn(n);return a?a.type==="percentage"?`${a.value}%`:r.money(a.value):""}};return new Map(Object.entries(i))}function Tn(t){try{return decodeURIComponent(t)}catch(e){if(e instanceof URIError)return t;throw e}}var _o="url:";function At(t,e=window.location,n="product"){let r=(p(t,n)??"").trim();if(!r.toLowerCase().startsWith(_o))return{key:r||null,fromUrl:!1,raw:r};let o=r.slice(_o.length).trim(),i;if(o.toLowerCase()==="path"){let a=e.pathname.split("/").filter(Boolean),s=a[a.length-1];i=s===void 0?null:Tn(s)}else i=new URLSearchParams(e.search).get(o||"handle");return{key:i?.trim()||null,fromUrl:!0,raw:r}}var Re=["loading","ready","error","not-found"],bu=t=>Re.some(e=>e===t),Uo=t=>typeof t=="object"&&t!==null&&"code"in t?t.code:void 0,Ne=t=>Uo(t)==="NOT_FOUND",ae=()=>["product","collection","products","recommendations"].map(t=>c(t)).join(","),Fo=(t,e)=>t===e||t.parentElement?.closest(ae())===e;function Pu(t){let e=Uo(t);return typeof e=="string"&&e?e:"error"}function nt(t,e,n){let r=e==="not-found",o=e==="error"||r;t.setAttribute(m("state"),r?"error":e),o?t.setAttribute(m("error"),r?"not-found":Pu(n)):t.removeAttribute(m("error")),ut(t,c("show"),ae()).forEach(i=>{let a=p(i,"show");bu(a)&&H(i,a===e)}),o&&ut(t,c("add-to-cart"),ae()).forEach(i=>{i.classList.add("is-disabled"),i.setAttribute("aria-disabled","true"),"disabled"in i&&(i.disabled=!0)})}var Do={money:O,percent:Nr},Eu=t=>t.tagName==="INPUT";function kn(t){let e=h(t,c("add-label"))[0]??t,n=e.dataset.tetherLabel??(Eu(e)?e.value:e.textContent);return e.dataset.tetherLabel=n,{label:e,original:n}}function Su(t,e){let{product:n}=t,r=o=>e.selected[t.optName(o)]??"";t.$(c("option-selected")).forEach(o=>{S(o,r(p(o,"option-selected")))}),t.$(c("option-list")).forEach(o=>{let i=t.optName(p(o,"option-list"));h(o,c("option-value")).forEach(a=>{let s=p(a,"option-value")??"";ye(a,e.selected[i]===s);let l=!Io(n,e.selected,i,s);a.classList.toggle("is-unavailable",l),a.setAttribute("data-unavailable",l?"true":"false")})}),Ct(t,c("option")).forEach(o=>{o.value=r(p(o,"option"))}),Ct(t,c("variant-select")).forEach(o=>{o.value=e.variant.id})}function wu(t,e){let{variant:n,purchase:r,line:o}=e;t.$(c("purchase")).forEach(i=>{if(ee(i)){i.value=r.kind;return}let a=p(i,"purchase");ye(i,a===r.kind);let s=a==="subscription"?!e.subscriptionAvailable:t.product.requiresSellingPlan;i.classList.toggle("is-unavailable",s)}),t.$(c("plan-value")).forEach(i=>{let a=p(i,"plan-value")??"";ye(i,o.kind==="subscription"&&a===o.planId),i.classList.toggle("is-unavailable",!N(n,a));let s=t.plans.find(d=>d.id===a),l=$o(n,a,s,Do);h(i,c("plan-bind")).forEach(d=>{let g=l.get(p(d,"plan-bind")??"");g&&S(d,g())})}),Ct(t,c("plan")).forEach(i=>{i.value=o.kind==="subscription"?o.planId:""})}function Cu(t,e){let n=new Map(Object.entries(e.show));Re.forEach(r=>n.set(r,r==="ready")),t.$(c("show")).forEach(r=>{let o=p(r,"show")??"",i=n.get(o);i!==void 0&&(Re.some(a=>a===o)&&!Fo(r,t.root)||H(r,i))})}function Tu(t,e){let n=!e.variant.availableForSale;t.$(c("add-to-cart")).forEach(r=>{r.classList.toggle("is-disabled",n),r.setAttribute("aria-disabled",String(n)),"disabled"in r&&(r.disabled=n);let o=p(r,"soldout-text"),i=p(r,"subscribe-text");if(!o&&!i)return;let{label:a,original:s}=kn(r),l=s;e.line.kind==="subscription"&&i&&(l=i),n&&o&&(l=o),r.getAttribute("aria-busy")!=="true"&&S(a,l)})}function Ho(t,e){let{variant:n}=e,{product:r}=t,o=No(e,Do);t.$(c("bind")).forEach(i=>{let a=p(i,"bind")??"";if(a==="variant-image"){D(i,n.image?.url||r.featuredImage?.url,n.image?.altText||r.title);return}let s=o.get(a);s&&S(i,s())}),Su(t,e),wu(t,e),Cu(t,e),t.root.classList.toggle("is-subscription",e.line.kind==="subscription"),t.root.setAttribute(m("purchase-mode"),e.line.kind),Tu(t,e)}var qo=()=>c("product"),ku=t=>t.tagName==="INPUT"||t.tagName==="SELECT"||t.tagName==="TEXTAREA",Vo=t=>t instanceof window.Element;function Ht(t,e,n){let r=e.closest(n);return r?.closest(qo())===t.root?r:null}function Au(t,e){let{label:n,original:r}=kn(e),o=p(e,"adding-text");K(e,async()=>{o&&S(n,o);try{await t.addToCart()}catch(i){f(i,"add to cart failed"),y("error",{error:i,context:"add-to-cart"},t.root)}finally{o&&S(n,r)}}).then(()=>{t.renderVariant()}).catch(i=>{f(i,"add to cart render")})}function vu(t,e,n){let r=Ht(t,n,c("option-value")),o=r?.closest(c("option-list"));if(r&&o){e.preventDefault(),t.select(t.optName(p(o,"option-list")),p(r,"option-value")??"");return}let i=Ht(t,n,c("plan-value"));if(i){e.preventDefault(),t.selectPlan(p(i,"plan-value"));return}let a=Ht(t,n,`${c("purchase")}:not(select)`);if(a){a.tagName!=="INPUT"&&e.preventDefault(),t.setPurchase(jo(p(a,"purchase")));return}let s=Ht(t,n,c("qty-plus")),l=s?null:Ht(t,n,c("qty-minus"));if(s||l){e.preventDefault(),t.setQuantity(t.quantity+(s?1:-1));return}let d=Ht(t,n,c("add-to-cart"));d&&(e.preventDefault(),Au(t,d))}var jo=t=>t==="subscription"?"subscription":"one-time";function xu(t,e){let n=ku(e)?e.value:"";e.matches(`select${c("option")}`)?t.select(t.optName(p(e,"option")),n):e.matches(`select${c("variant-select")}`)?t.selectVariant(n):e.matches(`select${c("plan")}`)?n?t.selectPlan(n):t.setPurchase("one-time"):e.matches(`select${c("purchase")}`)?t.setPurchase(jo(n)):e.matches(c("qty"))&&t.setQuantity(n)}function Go(t){t.root.addEventListener("click",e=>{Vo(e.target)&&vu(t,e,e.target)}),t.root.addEventListener("change",e=>{let{target:n}=e;Vo(n)&&n.closest(qo())===t.root&&xu(t,n)})}var rt=new WeakMap,Lu=()=>c("product"),$e=new Map;function An(t){t.forEach(e=>{$e.has(e.handle)||$e.set(e.handle,e.options.map(n=>n.name))})}var Ko=t=>t.tagName==="INPUT",Ou=t=>t.tagName==="INPUT"||t.tagName==="SELECT"||t.tagName==="TEXTAREA";function Iu(t){return Ko(t)&&t.type==="checkbox"?t.checked?t.value&&t.value!=="on"?t.value:"Yes":null:Ko(t)&&t.type==="radio"?t.checked?t.value:null:Ou(t)&&t.value||null}var _e=class{constructor(e,n){M(this,"root");M(this,"product");M(this,"plans");M(this,"selected");M(this,"purchase");M(this,"variant");M(this,"quantity");this.root=e,this.product=n,this.plans=R(n);let r=new URLSearchParams(window.location.search),o=Mo(n,{variant:r.get("variant")||p(e,"variant"),sellingPlan:r.get("selling_plan"),defaultPlan:p(e,"default-plan"),defaultPurchase:p(e,"default-purchase")||u.defaultPurchase});this.selected=o.selected,this.purchase=o.purchase,this.variant=null,this.quantity=st(e,"quantity")?Math.max(0,parseInt(p(e,"quantity")??"",10)||0):1,rt.set(e,this),e.setAttribute(m("state"),"ready"),e.removeAttribute(m("error")),this.renderProduct(),Go(this),this.renderVariant(),_r(e,"product"),dt("product"),y("product-ready",{product:n,scope:this},e)}update(e){let n=this.variant?.id;this.product=e,this.plans=R(e);let r=e.variants.nodes.find(o=>o.id===n);r&&(this.selected=Dt(r)),this.root.setAttribute(m("state"),"ready"),this.root.removeAttribute(m("error")),this.renderProduct(),this.renderVariant(),dt("product"),y("product-updated",{product:e,scope:this},this.root)}$(e){let n=ut(this.root,e,Lu());return this.root.matches(e)?[this.root,...n]:n}optName(e){if(!e)return"";let{options:n}=this.product;if(n.some(o=>o.name===e))return e;let r=($e.get(this.product.handle)??[]).indexOf(e);return n[r]?.name??e}get plan(){let e=Ft(this.purchase);return this.plans.find(n=>n.id===e)??null}get subscriptionAvailable(){return this.plans.some(e=>N(this.variant,e.id))}get isSubscription(){return Ie(this.purchase,this.variant).kind==="subscription"}getLine(){if(!this.variant)return null;let e={merchandiseId:this.variant.id,quantity:this.quantity},n=Ie(this.purchase,this.variant);n.kind==="subscription"&&(e.sellingPlanId=n.planId);let r=this.collectAttributes();return r.length&&(e.attributes=r),e}collectAttributes(){let e=Pe(be(this.root,"line-attributes")),n=this.$(c("line-attribute")).flatMap(r=>{let o=Iu(r);return o===null?[]:[{key:p(r,"line-attribute")??"",value:o}]});return[...e,...n]}select(e,n){if(this.selected[e]===n)return;let r=this.product.variants.nodes.filter(a=>a.selectedOptions.some(s=>s.name===e&&s.value===n)),[o]=r;if(!o)return;let i={...this.selected,[e]:n};if(!r.some(a=>a.selectedOptions.every(s=>i[s.name]===s.value))){let a=l=>l.selectedOptions.filter(g=>g.name!==e&&this.selected[g.name]===g.value).length*2+(l.availableForSale?1:0),s=r.reduce((l,d)=>a(d)>a(l)?d:l,o);Object.assign(i,Dt(s))}this.selected=i,this.renderVariant()}selectVariant(e){let n=this.product.variants.nodes.find(r=>r.id===Q.variant(e));n&&(this.selected=Dt(n),this.renderVariant())}setPurchase(e){let n=Me(this.product,this.variant,e,Ft(this.purchase));n.kind!==this.purchase.kind&&(this.purchase=n,this.renderVariant())}selectPlan(e){let n=Nt(this.product,e);n&&(this.purchase={kind:"subscription",planId:n.id},this.renderVariant())}setQuantity(e){let n=st(this.root,"quantity")?0:1;this.quantity=Math.max(n,parseInt(String(e),10)||0),this.$(c("qty")).forEach(r=>{S(r,this.quantity)}),this.renderVariant()}async addToCart(){if(!this.variant?.availableForSale)return null;let e=this.getLine();if(!e||e.quantity<1)return null;let n=await b.add(e);return y("product-added",{product:this.product,variant:this.variant,line:e},this.root),n}renderProduct(){let{product:e}=this;$e.has(e.handle)||this.$(`${c("option-list")},select${c("option")}`).map(r=>p(r,"option-list")||p(r,"option")).some(r=>e.options.some(o=>o.name===r))&&An([e]),io(this)}renderVariant(){let e=Ro(this.product,{selected:this.selected,purchase:this.purchase,quantity:this.quantity},u.lowStock);if(!e){this.variant=null;return}this.variant=e.variant,this.selected=e.selected,this.purchase=e.purchase,Ho(this,e),y("variant-changed",{product:this.product,variant:e.variant,selected:{...e.selected},purchase:e.purchase.kind,sellingPlanId:e.line.kind==="subscription"?e.line.planId:null},this.root)}};var Mu='script[type="application/json"][data-tether-hydrate]',Vt=new WeakSet,vn=new WeakSet,vt=new Set,ht=new Set,Qo=new WeakMap;function qt(){vt.forEach(t=>{t.isConnected||vt.delete(t)}),ht.forEach(t=>{t.root.isConnected||ht.delete(t)})}function J(t,e){return[...t.matches?.(e)?[t]:[],...h(t,e)]}function Ru(t,e){let n=p(t,"page-title");!n||typeof document>"u"||(document.title=n.replace(/\{title\}/g,e.title).replace(/\{vendor\}/g,e.vendor||"").replace(/\{type\}/g,e.productType||""))}function Nu(t,{fromUrl:e,raw:n}){e?(Vt.add(t),nt(t,"not-found"),y("product-not-found",{key:null,source:n},t)):t.closest(jt())||k(`[${m("product")}] without a value. Bind it to the Shopify handle field, or use "url:handle".`,t)}function $u(t,e,{fromUrl:n,raw:r},o){let i=Ne(o);if(nt(t,i?"not-found":"error",o),!i){f(o,`product ${e}`),y("error",{error:o,context:"product",key:e},t);return}y("product-not-found",{key:e,source:r},t),n?L(`product not found: ${e}`):f(o,`product ${e}`)}function se(t){if(Vt.has(t))return!1;let{key:e,...n}=At(t);if(!e)return Nu(t,n),!1;Vt.add(t),vt.add(t);let r={};Qo.set(t,r);let o=()=>Qo.get(t)===r;return rt.get(t)?t.setAttribute(m("state"),"updating"):nt(t,"loading"),xn(tt(e)).then(a=>{if(!o())return;let s=rt.get(t);s?s.update(a):new _e(t,a),Ru(t,a),u.revalidate&&no(e)&&_u(e)}).catch(a=>{o()&&$u(t,e,n,a)}),!0}function Bo(){qt(),vt.forEach(t=>{t.getAttribute(m("state"))!=="error"||t.getAttribute(m("error"))==="not-found"||(Vt.delete(t),se(t))})}var Ue=new Set;function _u(t){Ue.size||setTimeout(Fu,0),Ue.add(t)}function Uu(t,e){vt.forEach(n=>{let r=rt.get(n);if(!r||!n.isConnected)return;let o=At(n).key;o!==t&&o!==e.handle&&o!==e.id||JSON.stringify(r.product)!==JSON.stringify(e)&&r.update(e)})}function Fu(){let t=[...Ue];Ue=new Set,t.forEach(e=>{ro(e).then(n=>{Uu(e,n)}).catch(n=>{f(n,`refresh ${e}`)})})}var ot=null,xn=t=>(ot?.add(t),t);function Fe(){if(!ot)return;let t=[...ot];Promise.allSettled(t).then(()=>{if(!(!ot||t.some(e=>!ot?.has(e)))){if(t.length!==ot.size){Fe();return}ot=null,document.documentElement.classList.remove(`${u.prefix}-market-pending`)}})}function Du(t){if(!T(t))return{country:void 0,language:void 0,products:[]};let{products:e}=t,n=Array.isArray(e)?e:[];return{country:_(t.country)??void 0,language:U(t.language)??void 0,products:n.filter(Br)}}var Wo=new WeakSet;function Ln(t=document){J(t,Mu).forEach(e=>{if(Wo.has(e))return;Wo.add(e);let n;try{n=JSON.parse(e.textContent)}catch(a){k("bad data-tether-hydrate",a);return}let{country:r,language:o,products:i}=Du(n);if(An(i),r===u.country&&o===u.language){eo(i);return}L("hydration skipped: other market"),ot||(ot=new Set,document.documentElement.classList.add(`${u.prefix}-market-pending`))})}var Hu=()=>`${u.prefix}:market:${u.domain}`,Vu={getItem:t=>Tt(t)};function qu(t){try{return JSON.parse(t)}catch(e){if(e instanceof SyntaxError)return null;throw e}}function ju(t){if(typeof t!="object"||t===null)return null;let e=_(Reflect.get(t,"country"));if(!e)return null;let n=Reflect.get(t,"locale");return{country:e,language:U(Reflect.get(t,"language"))??void 0,locale:typeof n=="string"&&n?n:void 0}}var Gu=t=>ju(qu(t));function On(t=Vu){let e=t.getItem(Hu());return e?Gu(e):null}var Yo={country:void 0,language:void 0,locale:void 0},In=!1;function Jo(){let t=n=>document.querySelector(`meta[name="${u.prefix}-page-${n}"]`)?.getAttribute("content")||void 0,e=_(t("country"));return e?{country:e,language:U(t("language"))??void 0,locale:t("locale")}:null}async function Ku(){let t=u.markets??{};if(t.detect===!1)return null;if(!t.detect)return t.remember===!1?null:On();try{return(await C("markets")).detectMarket(t)}catch(e){return f(e,"markets"),null}}async function Xo(t){Yo={country:u.country,language:u.language,locale:u.locale};let e=Jo();if(In=e!==null,e){u.country=e.country,u.language=e.language,e.locale&&(u.locale=e.locale);return}let n=await Ku();n&&(n.country&&(u.country=n.country),n.language&&(u.language=n.language),n.locale&&!t.locale&&(u.locale=n.locale),L("market",n))}var zo=(t,e)=>(t??"").toUpperCase()===(e??"").toUpperCase();function Zo(){let t=Jo(),e=t===null&&In;In=t!==null;let n=t??(e?On()??Yo:null);return!n?.country||zo(n.country,u.country)&&zo(n.language,u.language)?null:{country:n.country,language:n.language,locale:n.locale}}function xt(t,e){return C("markets").then(n=>n.setCountry(t,e))}var ti={"tether.diagnose.min.js":"sha384-SmQnYWKzChmDvgTQ9WfdbVSZcY4fgackYVKEs070XnR9RYm5GAEMh/B2Thx9oC4f","tether.markets.min.js":"sha384-vTrvitQietX9BVIbXirxWy7Rfx7AwP0GxK+/EG8jN15yo0HO8reDWHGMJQn9yDep","tether.search.min.js":"sha384-Er3Elns3ZwrjcL404/doasLPtP1pfi5UAWmKgXWnqujQzy2AURY6nFNdmZUULe6F","tether.lists.min.js":"sha384-zrjHJrJFDiOLbhPuyfhueRFikCweKGQZ2OND1mSNThy4cJz0078cBiIcedeKonjA","tether.extras.min.js":"sha384-a8m0Jh1Q8zH0kqaNb2qhBt60OweAPOF3bKZpt2GXIA+L/dFHki/2vR6ZYQAPb28F","tether.account.min.js":"sha384-cN+gls3UC7/KPn/BazM+FzMpMqh4eWnC3m816wxPPMl03xnu/aP+4HADWPkL7rDk","tether.account-pages.min.js":"sha384-cx2Hxf/pCdzQ3V2kDrtwGReBtwpWPTxCl2VaMs63uPORnXx1XtEMT0pclKWecb97","tether.analytics.min.js":"sha384-K0BHBS1RgivsOFXziRB2Pt5D5/Y3lp4puHhFqRSHFpjO1A2ZYJ7OuBs0LtE5sQdl"};function Mn(t){return T(t)&&T(t.__core)&&T(t.__parts)}var ue="0.9.2";var ni={get"config.ts"(){return[u,It,L,Kt,Qe,f,k]},get"client.ts"(){return[ze,at,G,F,B,P]},get"dom.ts"(){return[Bt,m,Pe,K,y,ge,O,p,st,zt,ct,dt,be,Mt,h,z,ut,c,D,he,S,H]},get"loader.ts"(){return[ke,tt,wt,_t,hn]},get"fragments.ts"(){return[Hr]},get"selling-plans.ts"(){return[R]},get"status.ts"(){return[ae,Ne,At,nt]},get"cart.ts"(){return[b]},get"product.ts"(){return[rt]},get"collection.ts"(){return[jt]},get"mounting.ts"(){return[ht,vt,Vt,se,qt,J]},get"market-codes.ts"(){return[_,U]},get"page-market.ts"(){return[xt]},get"shopify-values.ts"(){return[de]},get"lazy.ts"(){return[C]}},Qu=/\.min\.js(\?|$)/,ei=typeof document>"u"?"":document.currentScript?.getAttribute("src")??"",De=ei?new URL(ei,document.baseURI).href:"",Wu=/^(https:\/\/cdn\.jsdelivr\.net\/(gh|npm)\/@?[^/@]+\/[^/@]+)(@(latest|\d+(\.\d+)?))?\//;function Bu(t){return t.replace(Wu,(e,n,r)=>`${n}@${r==="gh"?"v":""}${ue}/`)}var He=new Map;function zu(){return u.partsUrl?new URL(u.partsUrl,document.baseURI).href:De?Bu(De.replace(/[^/]*$/,"")):null}function Yu(t,e){t.integrity=e,new URL(t.src).origin!==window.location.origin&&(t.crossOrigin="anonymous")}function Ju(t,e,n,r){return new Promise((o,i)=>{let a=`${e.replace(/\/?$/,"/")}${n}`,s=document.createElement("script");s.src=a,s.async=!0,Yu(s,r),s.onload=()=>{let l=Reflect.get(window,"Tether"),d=Mn(l)?l.__parts[t]:void 0;if(d){o(d);return}He.delete(t);let g=Mn(l)?"did not register":"can't register: window.Tether is no longer this Tether script's, another script replaced it";i(new Error(`${a} ${g}`))},s.onerror=()=>{He.delete(t),i(new Error(`Could not load ${a}, or it is not the file built with this Tether script. Host the same release's files next to the Tether script or at partsUrl.`))},document.head.appendChild(s)})}function C(t){let e=He.get(t);if(!e){let n=zu();if(n===null)return Promise.reject(new Error(`The Tether script's own location is unknown, so its ${t} part can't be found: set partsUrl.`));let r=Qu.test(De)||!De?".min":"",o=`tether.${t}${r}.js`,i=ti[o];if(i===void 0)return Promise.reject(new Error(`This Tether script was built without ${o}, so it can't load that part.`));e=Ju(t,n,o,i),He.set(t,e)}return e}var jt=()=>`${c("collection")},${c("products")},${c("recommendations")}`;function ri(t){return nt(t,"loading"),{root:t,load:()=>C("lists").then(e=>e.loadList(t)).catch(e=>{nt(t,"error",e),f(e,"lists")})}}var ii=()=>`${u.prefix}:account-hint:${u.domain}`;function oi(t){ne(t,"sessionStorage"),ne(t,"localStorage")}function ai(){oi(`${u.prefix}:account:${u.domain}`),oi(`${u.prefix}:account-login:${u.domain}`)}var si=t=>t==="in"||t==="expired"||t==="error";var Xu=["account-login","account-bind","account-link","orders","order","addresses","subscriptions","profile-form","address-form"],Zu=()=>[...Xu.map(t=>`[${m(t)}]`),`[${m("show")}^="logged-"]`].join(",");function tc(){return!!Tt(ii())}function ui(t){!u.account||!(J(t,Zu()).length>0||si(new URLSearchParams(window.location.search).get("account"))||tc())||C("account").then(n=>n.mountAccount(t)).catch(n=>{f(n,"account")})}function I(t){return(...e)=>C("account").then(n=>{let r=n[t];return r(...e)})}var ci={login:I("login"),logout:I("logout"),isLoggedIn:I("isLoggedIn"),customer:I("customer"),orders:I("orders"),order:I("order"),updateProfile:I("updateProfile"),addresses:I("addresses"),saveAddress:I("saveAddress"),deleteAddress:I("deleteAddress"),subscriptions:I("subscriptions"),subscriptionAction:I("subscriptionAction"),requestReturn:I("requestReturn"),render:I("render"),mountAccount:I("mountAccount")};var li=()=>`data-${u.prefix}-key`,pi=t=>t instanceof window.Element;function fi(t){let e=t.closest(`[${li()}]`),n=e?.getAttribute(li());return e&&n?{line:e,id:n}:null}function Ve(t,e){t.catch(n=>{f(n,e)})}function ec(t,e){let n=fi(e);if(!n?.line.closest(c("cart-lines")))return;let{line:r,id:o}=n;if(e.closest(c("line-remove"))){t.preventDefault(),r.classList.add("is-busy"),Ve(b.removeLine(o),"cart line");return}let i=nc(e);!i||!b.lines.some(a=>a.id===o)||(t.preventDefault(),Ve(b.changeQuantity(o,i),"cart line"))}function nc(t){return t.closest(c("line-plus"))?1:t.closest(c("line-minus"))?-1:0}function rc(t){let{target:e}=t;if(!pi(e))return;if(e.closest(c("cart-open"))){t.preventDefault(),b.toggle();return}if(e.closest(c("cart-close"))){t.preventDefault(),b.close();return}let n=e.closest(c("cart-clear"));if(n){t.preventDefault(),K(n,()=>b.clear().catch(o=>{f(o,"cart clear")}));return}let r=e.closest(c("checkout"));if(r){t.preventDefault(),K(r,()=>b.checkout());return}ec(t,e)}function di(t,e,n){t.classList.add("is-busy"),t.setAttribute("aria-busy","true"),Ve(e,n)}function oc(t){let{target:e}=t;if(!pi(e))return;let n=fi(e);n&&e instanceof window.HTMLInputElement&&e.matches(c("line","quantity"))?di(n.line,b.updateLine(n.id,parseInt(e.value,10)||0),"cart line"):n&&e instanceof window.HTMLSelectElement&&e.matches(c("line-plan"))?di(n.line,b.updateLine(n.id,{sellingPlanId:e.value||null}),"cart line plan"):ic(e)&&e.matches(c("cart-note"))&&Ve(b.setNote(e.value),"cart note")}var ic=t=>t instanceof window.HTMLInputElement||t instanceof window.HTMLTextAreaElement||t instanceof window.HTMLSelectElement;function ac(t){if(b.isOpen()){if(t.key==="Escape"){b.close();return}fn(t)}}function mi(){document.addEventListener("click",rc),document.addEventListener("change",oc),document.addEventListener("keydown",ac)}var Rn=t=>t instanceof window.Element;function sc(t){let e=t.querySelector(c("discount-input"))??t.querySelector("input");return e instanceof window.HTMLInputElement?e:null}function gi(t,e,n){t.classList.toggle("is-invalid",n),n?e?.setAttribute("aria-invalid","true"):e?.removeAttribute("aria-invalid")}async function uc(t,e,n){try{await b.applyDiscount(n),gi(t,e,!1),y("discount-applied",{code:n},t),e&&(e.value="")}catch(r){gi(t,e,!0),r instanceof P&&r.code==="INVALID_DISCOUNT"?y("discount-invalid",{code:n},t):f(r,"discount")}}function cc(t){let{target:e}=t,n=Rn(e)?e.closest(c("discount-form")):null;if(!n)return;t.preventDefault();let r=sc(n),o=r?.value.trim();o&&K(n,()=>uc(n,r,o))}function lc(t){let{target:e}=t;if(!Rn(e))return;let n=e.closest(c("discount-form"));n&&(n.classList.remove("is-invalid"),e.removeAttribute("aria-invalid"))}function dc(t){let{target:e}=t,n=Rn(e)?e.closest(c("discount-remove")):null;if(!n)return;t.preventDefault();let r=n.closest(c("discount-code"))?.getAttribute(m("discount-code"));r&&b.removeDiscount(r).catch(o=>{f(o,"discount")})}function hi(){document.addEventListener("submit",cc,!0),document.addEventListener("input",lc),document.addEventListener("click",dc)}var Nn=t=>C("extras").then(e=>e.addGroup(t)),$n=t=>{f(t,"extras")};function pc(t){let{target:e}=t,n=e instanceof window.Element?e.closest(c("group-add")):null;n&&(t.preventDefault(),K(n,()=>Nn(n)).catch($n))}function fc(t){!u.domain||!t.key?.startsWith(`${u.prefix}:`)||C("extras").then(e=>{e.onStorage(t)}).catch($n)}function mc(t){if(!ct(t,"variant-changed"))return;let{target:e}=t;e instanceof window.Element&&(!u.variantUrl&&!e.hasAttribute(m("variant-url"))||C("extras").then(n=>{n.writeVariantUrl(e,t.detail)}).catch($n))}function yi(){document.addEventListener("click",pc),window.addEventListener("storage",fc),document.addEventListener(`${u.prefix}:variant-changed`,mc)}var _n=null;function bi(){_n=document.body}async function gc(t){await t.ready();let e=Zo();if(!e){_n!==document.body&&t.mount(document);return}try{await xt(e.country,{language:e.language??null,locale:e.locale,remember:!1})}catch(n){f(n,"country")}t.mount(document)}function hc(t){document.addEventListener("astro:page-load",()=>{gc(t).catch(e=>{f(e,"page mount")})}),document.addEventListener("astro:before-swap",()=>{_n=null,t.unmount()})}function yc(t){let{target:e}=t;!(e instanceof window.HTMLSelectElement)||!e.matches(c("country-select"))||e.value&&xt(e.value).catch(n=>{f(n,"country")})}function bc(){Bo(),ht.forEach(t=>{t.root.getAttribute(m("state"))==="error"&&t.load()})}function Pi(t){u.astro&&hc(t),document.addEventListener("change",yc),window.addEventListener("online",bc)}var Pc=50;function Ec(){let t=Yt("TETHER_CONFIG");return typeof t=="object"&&t!==null?Object.fromEntries(Object.entries(t)):{}}var yt=null,Un=null,Si=null,Ei=!1;function Sc(t){let e=0;return J(t,jt()).forEach(n=>{if(vn.has(n))return;vn.add(n),e++;let r=ri(n);ht.add(r),n.addEventListener(`${u.prefix}:list-rendered`,o=>{ct(o,"list-rendered")&&qe(o.detail.container)}),xn(r.load())}),e}function wc(t){J(t,`${c("country-select")},${c("country-bind")}`).length&&C("markets").then(e=>e.renderCountrySelects(t)).catch(e=>{f(e,"markets")}),ui(t),J(t,c("search")).length&&C("search").then(e=>{e.mountSearch(t)}).catch(e=>{f(e,"search")})}function wi(t){let e=Sc(t);return J(t,c("product")).forEach(n=>{se(n)&&e++}),wc(t),e}function qe(t=document){if(!It())return 0;t===document&&bi(),qt(),Ln(t.ownerDocument??document);let e=wi(t);return Fe(),b.render(),L(`mounted ${e} scope(s)`,t),e}function Cc(t){let e=t.filter(r=>r.isConnected&&!t.some(o=>o!==r&&o.contains(r)));if(!e.length||!It())return;qt(),e.forEach(r=>{Ln(r)});let n=e.reduce((r,o)=>r+wi(o),0);Fe(),b.render(),L(`mounted ${n} scope(s) in ${e.length} added element(s)`)}function Ci(){b.close()}function Tc(t){let e=t?.closest(c("product"));return e?rt.get(e)??null:null}function kc(){Ei||(Ei=!0,mi(),hi(),yi(),Pi({ready:()=>yt??Promise.resolve(null),mount:qe,unmount:Ci}))}function Ac(){let t=[];Si=t,Bt.forEach(e=>{document.addEventListener(`${u.prefix}:${e}`,n=>t.push(n))}),document.addEventListener("astro:page-load",e=>t.push(e)),C("analytics").then(e=>e.startAnalytics(t)).catch(e=>{f(e,"analytics")})}async function vc(t){let e=u.country,n=t?.buyerIdentity.countryCode;if(!t||!e||!n||n===e)return t;try{return await b.setBuyerIdentity({countryCode:e},{create:!1})}catch(r){return f(r,"cart country"),t}}function Ti(t={}){return yt&&!Object.keys(t).length?yt:(or({...Ec(),...t}),It()?(ai(),kc(),u.observe&&xc(),u.analytics&&!Si&&Ac(),yt=Xo(t).then(()=>b.init()).then(vc).then(e=>(y("ready",{cart:e}),Fn)),yt):(k("TETHER_CONFIG is missing domain or token. Tether is idle."),yt=Promise.resolve(null),yt))}function xc(){if(Un||typeof MutationObserver>"u")return;let t,e=new Set;Un=new MutationObserver(n=>{n.forEach(r=>{r.addedNodes.forEach(o=>{o instanceof window.Element&&e.add(o)})}),clearTimeout(t),t=setTimeout(()=>{let r=[...e];e.clear(),Cc(r)},Pc)}),Un.observe(document.body,{childList:!0,subtree:!0})}var Lc=t=>C("markets").then(e=>e.detectMarket(t??u.markets)),Oc=t=>C("lists").then(e=>e.getProducts(t)),Ic=(t,e)=>C("lists").then(n=>n.getRecommendations(t,e)),Mc=()=>C("markets").then(t=>t.getLocalization()),Rc=t=>C("diagnose").then(e=>e.diagnose({...t,version:ue}));function Nc(t,e){let n=`${u.prefix}:${t}`,r=o=>{ct(o,t)&&e(o.detail,o)};return document.addEventListener(n,r),()=>{document.removeEventListener(n,r)}}var $c={VERSION:ue,init:Ti,mount:qe,unmount:Ci,get config(){return rr},get ready(){return yt??Promise.resolve(null)},query:mr,withContext:pr,cart:b,getProduct:tt,getProducts:Oc,getRecommendations:Ic,getScope:Tc,addGroup:Nn,account:ci,primeProduct:_t,normalizeProductKey:wt,clearProductCache:ke,formatMoney:O,imageUrl:pe,plans:un,TetherError:P,resolveProductKey:At,setCountry:xt,detectMarket:Lc,getLocalization:Mc,diagnose:Rc,on:Nc},_c={__core:ni,__parts:{}},Fn=Object.assign($c,_c),zf=Fn;function Uc(){Reflect.set(window,"Tether",Fn);let t=Yt("TETHER_CONFIG");if(!t||X(t,"autoMount")===!1||Yt("TETHER_INTEGRATION"))return;let e=()=>{Ti().then(()=>qe(document)).catch(n=>{f(n,"init")})};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",e,{once:!0}):e()}typeof window<"u"&&typeof document<"u"&&Uc();})();
|
|
1
|
+
(()=>{var qn=Object.defineProperty;var Mi=(t,e,n)=>e in t?qn(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var Ri=(t,e)=>{for(var n in e)qn(t,n,{get:e[n],enumerable:!0})};var M=(t,e,n)=>Mi(t,typeof e!="symbol"?e+"":e,n);var Gn="2026-07";var Ni=/^(\d{4})-(01|04|07|10)$/;function $i(t){let e=Ni.exec(typeof t=="string"?t:"");return e?{year:Number(e[1]),month:Number(e[2])}:null}var Kn=t=>$i(t)!==null;function k(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}function X(t,e){return k(t)?t[e]:void 0}var _i=/^[A-Za-z0-9_.-]+$/,Ui=/^(\$app(:[A-Za-z0-9_-]+)?|[A-Za-z0-9_.-]+)$/,Ke=(t,e)=>Ui.test(t)&&_i.test(e);function Qn(t){let e=t.indexOf(".");if(e<=0)return null;let n=t.slice(0,e),r=t.slice(e+1);return Ke(n,r)?{namespace:n,key:r}:null}var Fi=/^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i,Di=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/,Vi=/^[A-Za-z_$][\w$]*$/,Wn="https://site.invalid",Hi=new Set(["localhost","127.0.0.1","[::1]"]),Kt=["saved","server","webflow"],ji=["no-banner","default-banner","custom-banner"],Qt=t=>typeof t=="string"&&t!=="",qi=t=>typeof t=="function";function Yn(t,e){if(typeof t!="string"||!t)return"";let n=t.replace(/^https?:\/\//,"").replace(/\/.*$/,"");return Qi(n)?n:(e("domain",t),"")}function zn(t){if(!Qt(t))return!1;try{let e=new URL(t,`${Wn}/`);return e.origin===Wn?!0:e.protocol==="https:"||e.protocol==="http:"&&Hi.has(e.hostname)}catch{return!1}}function Jn(t,e){return t==null||t===""?null:typeof t=="string"&&(zn(t)||Gi(t))?t:(e("partsUrl",t),null)}function Gi(t){if(typeof location>"u")return!1;try{return new URL(t).origin===location.origin}catch{return!1}}function Ki(t){if(typeof t!="string")return null;try{let e=new URL(t);return e.protocol==="https:"&&e.href===new URL(e.origin).href?e.origin:null}catch{return null}}function Xn(t,e){if(!Array.isArray(t))return e("embedOrigins",t),[];let n=[],r=t;for(let o of r){let i=Ki(o);i?n.push(i):e("embedOrigin",o)}return n}function Qe(t){if(typeof t=="string")return Qn(t);if(typeof t!="object"||t===null)return null;let e=Reflect.get(t,"namespace"),n=Reflect.get(t,"key");return typeof e!="string"||typeof n!="string"?null:Ke(e,n)?{namespace:e,key:n}:null}function Zn(t,e){if(!Array.isArray(t))return e("metafields",t),[];let n=[],r=t;for(let o of r){let i=Qe(o);i?n.push(typeof o=="string"?o:i):e("metafield",o)}return n}var It=t=>e=>t(e)?e:void 0,Qi=t=>Qt(t)&&Fi.test(t),Wi=t=>Qt(t)&&Di.test(t),Bi=t=>typeof t=="boolean"||Qt(t)&&Vi.test(t),Gt=It(zn),de=It(Qt),Bn=It(t=>typeof t=="boolean"),tr=It(qi);function Wt(t,e,n,r){if(e==null)return null;if(!k(e))return r(t,e),null;let o={};for(let i in n){let a=e[i];if(a===void 0)continue;let s=n[i](a);s===void 0?r(`${t}.${i}`,a):o[i]=s}return o}var Yi={server:Gt,orderUrl:Gt,subscriptionsUrl:Gt,paymentUrl:Gt,logoutUrl:Gt,locale:de,navigate:tr},zi="customer accounts need the Worker since 0.7.0: set account.server",Ji={country:de,language:de,locale:de},Xi={detect:t=>{if(typeof t=="boolean")return t;let e=Array.isArray(t)?t:[t];return typeof t=="string"||Array.isArray(t)?Kt.filter(n=>e.includes(n)):void 0},locales:t=>{if(!k(t))return;let e={};for(let[n,r]of Object.entries(t)){let o=Wt(`markets.locales.${n}`,r,Ji,()=>{});o&&(e[n]=o)}return e},cookie:It(Wi),remember:Bn,strict:Bn},Zi={consent:t=>ji.find(e=>e===t),proxy:t=>t!==void 0&&!!t},ta={dataLayer:It(Bi),shopify:t=>typeof t=="boolean"?t:Wt("analytics.shopify",t,Zi,()=>{})??void 0,onEvent:tr};function er(t,e,n){let r=Wt("account",t,Yi,e);if(r===null)return null;let{server:o}=r;return o===void 0?(n(zi),null):{...r,server:o}}var We=(t,e)=>Wt("markets",t,Xi,e),nr=(t,e)=>Wt("analytics",t,ta,e);var ea=/^[A-Z]{2}$/,na=new Set(["XX","T1"]),ra=new Set(["PT_BR","PT_PT","ZH_CN","ZH_TW"]),oa=/^[A-Z]{2,3}$/;function _(t){let e=(typeof t=="string"?t:"").trim().toUpperCase();return!ea.test(e)||na.has(e)?null:e}function U(t){let e=(typeof t=="string"?t:"").trim().replace("-","_").toUpperCase();if(ra.has(e))return e;let n=e.split("_")[0]??"";return oa.test(n)?n:null}function pe(t){if(typeof t!="string")return!1;try{return new URL(t).protocol==="https:"}catch{return!1}}function rr(t,e){if(!t)return"";let n=parseFloat(t.amount);if(Number.isNaN(n))return"";try{return new Intl.NumberFormat(e||void 0,{style:"currency",currency:t.currencyCode}).format(n)}catch{return`${t.currencyCode} ${n.toFixed(2)}`}}function or(t,e,n){if(!/\{(handle|id)\}/.test(t))return e?`${t.replace(/\/$/,"")}/${encodeURIComponent(e)}`:null;let r=n?n.split("/").at(-1)??"":"";return t.includes("{handle}")&&!e||t.includes("{id}")&&!r?null:t.replace(/\{handle\}/g,encodeURIComponent(e??"")).replace(/\{id\}/g,encodeURIComponent(r))}function ir(t){let e=String(t??"").trim();return e?e.startsWith("gid://")?e:/^\d+$/.test(e)?`gid://shopify/Product/${e}`:/\/products\/([^/?#]+)/.exec(e)?.[1]??e:null}var Z={domain:"",token:"",apiVersion:Gn,country:void 0,language:void 0,locale:void 0,markets:null,prefix:"tether",productPath:"/product",collectionPath:"/collection",metafields:[],embedOrigins:[],imagesFirst:25,variantsFirst:100,sellingPlanGroupsFirst:10,sellingPlansFirst:25,collectionFirst:24,retries:2,requestTimeout:15e3,revalidate:!0,storageKey:"",cartDrawerOpenClass:"is-open",openCartOnAdd:!0,cartFocus:!0,checkoutTarget:"_self",defaultPurchase:"one-time",variantUrl:!1,maxAge:60,lowStock:5,searchDelay:150,autoMount:!0,observe:!1,astro:!0,partsUrl:null,analytics:null,account:null,warningText:null,formatMoney:null,onLayoutChange:null,onCartOpen:null,onCartClose:null,onLineEnter:null,onLineLeave:null,onValueChange:null,onError:null,debug:!1},u={...Z};function cr(t){let e=n=>(C(`Tether.config is read-only (${String(n)}): pass options to Tether.init() instead`),!1);return new Proxy(t,{get(n,r){let o=Reflect.get(n,r);return typeof o=="object"&&o!==null?cr(o):o},set:(n,r)=>e(r),deleteProperty:(n,r)=>e(r),defineProperty:(n,r)=>e(r)})}var lr=cr(u),ia=/^[a-z][a-z0-9-]*$/,aa=["revalidate","openCartOnAdd","cartFocus","variantUrl","autoMount","observe","astro","debug"],sa=["token","productPath","collectionPath"],ua=["imagesFirst","variantsFirst","sellingPlanGroupsFirst","sellingPlansFirst","collectionFirst","retries","requestTimeout","maxAge","lowStock","searchDelay"],ca=["warningText","formatMoney","onLayoutChange","onCartOpen","onCartClose","onLineEnter","onLineLeave","onValueChange","onError"];function Pt(t,e,n){return e!==void 0&&C(`invalid ${t} ${JSON.stringify(e)}: using ${JSON.stringify(n)}`),n}function q(t,e){C(`invalid ${t} ${JSON.stringify(e)}: ignored`)}function la(t){for(let e of Object.keys(t))Object.hasOwn(Z,e)||C(`unknown option ${JSON.stringify(e)}: ignored`)}function da(t,e,n){typeof n=="function"?t[e]=n:n!=null&&q(e,n)}var ar=2147483647,pa=10,Bt={min:1,max:250},fa={imagesFirst:Bt,variantsFirst:Bt,sellingPlanGroupsFirst:Bt,sellingPlansFirst:Bt,collectionFirst:Bt,requestTimeout:{max:ar},searchDelay:{max:ar},retries:{max:pa}};function ma(t,e){let{min:n=0,max:r}=fa[t]??{};return typeof e!="number"||!Number.isInteger(e)||e<n?Pt(t,e,Z[t]):r===void 0||e<=r?e:(C(`${t} ${String(e)} is more than its maximum: using ${String(r)}`),r)}function ga(t,e){return typeof e=="boolean"?e:Pt(t,e,Z[t])}function ha(t,e){return typeof e=="string"?e:Pt(t,e,Z[t])}var ya=/^\S+$/;function ba(t,e){return typeof e=="string"&&ya.test(e)?e:Pt(t,e,Z[t])}function Pa(t){if(!(t==null||t==="")){try{if(typeof t=="string"&&Intl.getCanonicalLocales(t).length)return t}catch{}q("locale",t)}}function sr(t,e,n){return n.find(r=>r===e)??Pt(t,e,n[0])}function Ea(t){return t==="unstable"?(C('apiVersion "unstable" changes without notice. Pin a dated version (e.g. 2026-07).'),t):Kn(t)?t:Pt("apiVersion",t,Z.apiVersion)}function ur(t,e,n){if(e==null||e==="")return;let r=n(e);if(r!==null)return r;q(t,e)}function Sa(t){la(t);let e=Yn(t.domain,q),n=typeof t.prefix=="string"&&ia.test(t.prefix)?t.prefix:Pt("prefix",t.prefix,Z.prefix),r={...Z,domain:e,apiVersion:Ea(t.apiVersion),country:ur("country",t.country,_),locale:Pa(t.locale),partsUrl:Jn(t.partsUrl,q),language:ur("language",t.language,U),markets:We(t.markets,q),analytics:nr(t.analytics,q),account:er(t.account,q,C),prefix:n,storageKey:typeof t.storageKey=="string"&&t.storageKey?t.storageKey:`${n}:cart:${e}`,metafields:Zn(t.metafields??[],q),embedOrigins:Xn(t.embedOrigins??[],q),checkoutTarget:sr("checkoutTarget",t.checkoutTarget,["_self","_blank"]),defaultPurchase:sr("defaultPurchase",t.defaultPurchase,["one-time","subscription"]),cartDrawerOpenClass:ba("cartDrawerOpenClass",t.cartDrawerOpenClass)};for(let o of ua)r[o]=ma(o,t[o]);for(let o of aa)r[o]=ga(o,t[o]);for(let o of sa)r[o]=ha(o,t[o]);for(let o of ca)da(r,o,t[o]);return r}var Ye=t=>We(t,q);function dr(t={}){let e=Sa(t);for(let n of Object.keys(u))n in e||Reflect.deleteProperty(u,n);return Object.assign(u,e)}var Ot=()=>!!(u.domain&&u.token);function L(...t){u.debug&&console.log(`[${u.prefix}]`,...t)}function C(...t){console.warn(`[${u.prefix}]`,...t)}function f(t,e){if(C(e,t instanceof Error&&t.message?t.message:t),!!u.onError)try{u.onError(t,e)}catch(n){C("onError threw",n)}}function pr(t){return t instanceof Error?t.message:String(t)}var P=class extends Error{constructor(n,{status:r,errors:o,userErrors:i,code:a}={}){super(n);M(this,"name","TetherError");M(this,"code");M(this,"status");M(this,"errors");M(this,"userErrors");this.code=a??(r?`HTTP_${r}`:"ERROR"),this.status=r,this.errors=o,this.userErrors=i}};function G(t,e){return typeof e=="function"?e(t):typeof e=="string"?e==="object"?k(t):typeof t===e:wa(e)?Array.isArray(t)&&t.every(n=>G(n,e[0])):k(t)&&Object.entries(e).every(([n,r])=>r===void 0||G(t[n],r))}var wa=t=>Array.isArray(t),F=t=>e=>e===null||G(e,t),B=t=>e=>G(e,t);function Xe(t=u){return`https://${t.domain}/api/${t.apiVersion}/graphql.json`}var yr=/"(?:\\.|[^"\\\n])*"|#[^\n]*/g,Ca=/^\s*(?:query|mutation)(?:\s+\w+)?\s*(?:\([^)]*\))?/;function Ta(t){return/\bmutation\b/.test(t.replace(yr,""))?"mutation":"query"}function br(t,{country:e,language:n}){let r=[];if(e&&r.push(`country: ${e}`),n&&r.push(`language: ${n}`),!r.length)return t;let o=`@inContext(${r.join(", ")})`,i=t.replace(yr,d=>" ".repeat(d.length)),a=i.indexOf("{");if(i.slice(0,a).includes("@inContext"))return t;if(i.trimStart().startsWith("{"))return`query ${o} ${t.slice(a)}`;let s=Ca.exec(i);if(!s)return t;let l=s[0].length;return`${t.slice(0,l).trimEnd()} ${o} ${t.slice(l).trimStart()}`}function Pr(t,e=u){let n=_(e.country)??void 0,r=U(e.language)??void 0;return br(t,{country:n,language:r})}var Ze=300,ka=500,Aa=3e4,fr=430,va=1e3,Je="quantityAvailable",mr=new Set,xa=t=>`${t.domain} ${t.apiVersion} ${t.token}`;function La(t,e,n,{context:r,operation:o}){let i=typeof e=="string"?e:e(n),a=r?br(i,t):i;return t.maxAge<=0||o==="mutation"?a:`${a} #${Math.floor(Date.now()/(t.maxAge*va))}`}var Ia=t=>new Promise(e=>setTimeout(e,t));function tn(t,e){if(t===401||t===403){let n=e.token.startsWith("shpat_")?", not an Admin API token (shpat_\u2026)":"";return`Shopify rejected the Storefront token for ${e.domain} (${t}): use the public Storefront API token (Headless channel)${n}`}return t===404?`Store or API version not found (404): check domain ${e.domain} and apiVersion ${e.apiVersion}`:`HTTP ${t} from ${e.domain}`}function Oa(t){let e=X(t,"message"),n=X(X(t,"extensions"),"code"),r=typeof e=="string"?e:"";return typeof n=="string"?{message:r,extensions:{code:n}}:{message:r}}function Ma(t){if(!k(t))return null;let{data:e,errors:n}=t;return n==null?{data:e}:Array.isArray(n)?{data:e,errors:n.map(Oa)}:null}function ze(t,e){return t.ok?new P(`Invalid response (${t.status})`,{code:"INVALID_RESPONSE",status:t.status}):new P(tn(t.status,e),{status:t.status})}function gr(t,e,n,r){let o=e.map(a=>a.message).filter(Boolean).join(" | "),i=o||"Storefront API error";return t.ok||(i=t.status===401||t.status===403||!o?tn(t.status,n):o),new P(i,{status:t.status,errors:e,code:r})}function hr(t,e){if(e==="any")return{kind:"retry",backoffMs:Ze};throw new P(`Network error: ${pr(t)}`,{code:"NETWORK"})}function Ra(t,e,n,r,o,i,a){if(n.includes(Je)&&r.some(g=>g.message.includes(Je)))return{kind:"inventory-refused",error:gr(t,r,e)};let s=r.map(g=>g.extensions?.code);if(i!=="none"&&s.includes("THROTTLED"))return{kind:"retry",backoffMs:ka};let l=s.includes("INTERNAL_SERVER_ERROR");if(i==="any"&&l)return{kind:"retry",backoffMs:Ze};let d=t.ok&&(l||a==="mutation"&&o==null);throw gr(t,r,e,d?"SERVER_ERROR":void 0)}async function Na(t,e){if(!t)return e(null);let n=new AbortController,r=setTimeout(()=>{n.abort(new DOMException("signal timed out","TimeoutError"))},t);try{return await e(n.signal)}finally{clearTimeout(r)}}async function $a(t,e,n,r,o,i,a){let s;try{s=await(t.fetch??fetch)(Xe(t),{method:"POST",headers:{"Content-Type":"application/json","X-Shopify-Storefront-Access-Token":t.token},body:JSON.stringify({query:e,variables:n}),signal:a})}catch(A){return hr(A,o)}if(s.status===fr)throw new P("Shopify security rejection (430)",{status:fr});if(o!=="none"&&s.status===429||o==="any"&&s.status>=500)return{kind:"retry",backoffMs:Ze};let l;try{l=await s.json()}catch(A){if(A instanceof SyntaxError)throw ze(s,t);return hr(A,o)}let d=Ma(l);if(!d)throw ze(s,t);let{data:g,errors:x=[]}=d;if(x.length)return Ra(s,t,e,x,g,o,i);if(!s.ok)throw new P(tn(s.status,t),{status:s.status});if(!r(g))throw ze(s,t);return{kind:"data",data:g}}async function Er(t,e,n,r,{context:o=!0,operation:i="query"}={}){if(!t.domain||!t.token)throw new P("Tether is not configured: domain and token are required",{code:"NOT_CONFIGURED"});let a=xa(t),s=i==="mutation"?"not-run":"any",l=0;for(;;){let d={inventory:!mr.has(a)},g=La(t,e,d,{context:o,operation:i}),x=l<t.retries?s:"none",A=await Na(t.requestTimeout,$=>$a(t,g,n,r,x,i,$));switch(A.kind){case"data":return A.data;case"inventory-refused":if(typeof e=="string"||!d.inventory)throw A.error;L(`the token can't read inventory: ${Je} is left out from now on`),mr.add(a);break;case"retry":await Ia(Math.min(A.backoffMs*2**l,Aa)),l+=1,L("retry",l);break}}}function at(t,e,n,r){return Er(u,t,e,n,r)}var _a=t=>typeof t=="object"&&t!==null;function Ua(t,e,n={},r){return Er(t,e,n,_a,{...r,operation:Ta(e)})}function Sr(t,e,n){return Ua(u,t,e,n)}function wr(t,e){if(!t)throw new P(`${e}: empty response`);let n=t.userErrors??[];if(n.length)throw new P(n.map(r=>r.message).join(" | "),{userErrors:n});return t}var m=t=>`${u.prefix}-${t}`,c=(t,e)=>e===void 0?`[${m(t)}]`:`[${m(t)}="${e}"]`,p=(t,e)=>t.getAttribute(m(e)),st=(t,e)=>t.hasAttribute(m(e));function h(t,e){return t?[...t.querySelectorAll(e)]:[]}var ut=(t,e,n)=>h(t,e).filter(r=>r.closest(n)===t),Yt=["product-ready","list-ready","cart-updated","cart-toggled","checkout","search"],Cr=new WeakMap;function Tr(t,e){let n=new CustomEvent(`${u.prefix}:${t}`,{detail:e,bubbles:!0});return Cr.set(n,t),n}function ct(t,e){return Cr.get(t)===e}function y(t,e,n=document){n.dispatchEvent(Tr(t,e))}var Fa="http://www.w3.org/1999/xhtml",Da=new Set(["h1","h2","h3","h4","h5","h6","p","span","div","br","hr","blockquote","code","pre","strong","em","b","i","u","s","small","sub","sup","ul","ol","li","dl","dt","dd","table","caption","colgroup","col","thead","tbody","tfoot","tr","th","td","a","img","picture","source","video","figure","figcaption","iframe"]),Va=new Set(["script","style","template","noscript","textarea","select","title"]),Ha=new Set(["style","title","lang","dir","role","align","width","height"]),ja=new Map([["a",new Set(["href","target","rel","hreflang"])],["img",new Set(["src","srcset","sizes","alt","loading","decoding"])],["source",new Set(["src","srcset","sizes","type","media"])],["video",new Set(["src","poster","controls","autoplay","muted","loop","playsinline","preload"])],["iframe",new Set(["src","allow","allowfullscreen","frameborder","loading"])],["blockquote",new Set(["cite"])],["ol",new Set(["start","type","reversed"])],["li",new Set(["value"])],["table",new Set(["border","cellpadding","cellspacing","summary"])],["col",new Set(["span"])],["colgroup",new Set(["span"])],["th",new Set(["colspan","rowspan","headers","scope","valign"])],["td",new Set(["colspan","rowspan","headers","valign"])]]),qa=new Set(["href","src","poster","cite"]),Ga=/^(javascript|vbscript|data):/i,Ka=/^data:image\/(png|gif|jpeg|webp|avif);/i,Qa=new Set(["position","top","right","bottom","left","z-index","-webkit-box-reflect"]),Wa=["inset","transform","translate","rotate","scale","offset"],Ba=/\d(?:[sld]?v|cq)(?:w|h|i|b|min|max)\b/i,Ya=/^(?:outline|box-shadow|text-shadow|filter|text-decoration|text-underline-offset|text-stroke)|^(?:border-image|mask-border|mask-box-image)(?:-outset)?$/,kr=40,za=new Map([["letter-spacing",{px:4,em:.25}],["word-spacing",{px:4,em:.25}],["text-indent",{px:kr}]]),Ar=/(?<![\w#.-])[+-]?(?:\d+\.?\d*|\.\d+)(?:e[+-]?\d+)?(%|[a-z]+)?/gi,Ja=/(?<![\w-])(?!drop-shadow\(|blur\()[\w-]+\([^()]*\)/g,vr=/(?:var|calc|min|max|clamp|env|attr)\(/i,Xa=/url\(|expression\(|@import/i,Za=/[\u0000- ]/g,ts="allow-scripts allow-same-origin allow-popups allow-presentation",es=new Set(["autoplay","encrypted-media","picture-in-picture","fullscreen","clipboard-write","accelerometer","gyroscope","web-share"]),ns="strict-origin-when-cross-origin",rs=["https://www.youtube.com","https://www.youtube-nocookie.com","https://player.vimeo.com","https://www.loom.com","https://fast.wistia.net"];function os(t,e){return Ha.has(e)||e.startsWith("aria-")||(ja.get(t)?.has(e)??!1)}function is(t,e,n){let r=n.replace(Za,"");return Ga.test(r)?t==="img"&&e==="src"&&Ka.test(r):!0}function xr(t,e){try{return new URL(t,e)}catch{return null}}function as(t,e,n){let r=t.baseURI,o=xr(r)?.origin??"null";return{origin:o==="null"?null:o,baseUrl:r,styleParser:e,embedOrigins:new Set([...rs,...n])}}function ss(t,e){let n=xr(t.trim(),e.baseUrl);return n!==null&&n.origin!==e.origin&&e.embedOrigins.has(n.origin)}function us(t){let e=t.split(";").map(n=>n.trim().split(/\s+/)[0]?.toLowerCase()??"");return[...new Set(e.filter(n=>es.has(n)))].join("; ")}function cs(t,e){if(Qa.has(t)||Wa.some(r=>t.startsWith(r))||Ba.test(e))return!0;let n=za.get(t);return n?vr.test(e)||ls(e,n):t.startsWith("margin")&&e.includes("-")}function ls(t,e){return[...t.matchAll(Ar)].some(([n="",r=""])=>{let o=parseFloat(n);if(o>=0)return!1;let i=e[r.toLowerCase()];return i===void 0||-o>i})}function ds(t,e){return Ya.test(t.replace(/^-webkit-/,""))?vr.test(e)?!0:[...e.replace(Ja,"").matchAll(Ar)].some(([n="",r=""])=>{let o=Math.abs(parseFloat(n));return o!==0&&(r.toLowerCase()!=="px"||o>kr)}):!1}function ps(t,e){let n=e.style;n.cssText=t;let r=Array.from({length:n.length},(i,a)=>n.item(a));for(let i of r){let a=n.getPropertyValue(i);(cs(i,a)||ds(i,a)||Xa.test(a))&&n.removeProperty(i)}let o=n.cssText;return e.removeAttribute("style"),o}function fs(t,e){let n=t.localName;for(let i of[...t.attributes]){let a=i.name.toLowerCase(),s=qa.has(a);os(n,a)&&(!s||is(n,a,i.value))||t.removeAttribute(i.name)}let r=t.getAttribute("style");if(r===null)return;let o=ps(r,e.styleParser);o===""?t.removeAttribute("style"):t.setAttribute("style",o)}var ms=new Set(["","_self","_parent","_top"]);function gs(t){if(t.localName==="iframe"){let r=us(t.getAttribute("allow")??"");r===""?t.removeAttribute("allow"):t.setAttribute("allow",r),t.setAttribute("sandbox",ts),t.setAttribute("referrerpolicy",ns);return}if(t.localName!=="a")return;let e=t.getAttribute("target");if(e===null||ms.has(e.toLowerCase()))return;let n=new Set((t.getAttribute("rel")??"").split(/\s+/).filter(Boolean));n.add("noopener"),n.add("noreferrer"),t.setAttribute("rel",[...n].join(" "))}function hs(t,e){let n=t.localName,r=t.namespaceURI===Fa;if(r&&Va.has(n)){t.remove();return}if(!r||!Da.has(n)){t.replaceWith(...t.childNodes);return}if(n==="iframe"&&!ss(t.getAttribute("src")??"",e)){t.remove();return}fs(t,e),gs(t)}function Lr(t,e=globalThis.document,n=[]){let r=e.createElement("template");r.innerHTML=t??"";let o=as(e,r,n);for(let i of[...r.content.querySelectorAll("*")])hs(i,o);return r.content}function fe(t,{width:e,height:n,crop:r}={}){if(!t)return t;let o;try{o=new URL(t)}catch(i){if(i instanceof TypeError)return t;throw i}return e&&o.searchParams.set("width",String(e)),n&&o.searchParams.set("height",String(n)),r&&o.searchParams.set("crop",r),o.toString()}function en(t,e){return t.getAttribute(e)??t.getAttribute(m(e))??t.getAttribute(`data-${e}`)}function Or(t,e){if(!t||!e)return t;let n=en(e,"max-width"),r=en(e,"max-height");return fe(t,{width:n,height:r,crop:n||r?en(e,"crop"):null})}var Ir=t=>t.replace(/\?.*$/,"");function me(t,e){return!t||!e?!1:Ir(t)===Ir(e)}function ys(t){return/^\s*[a-z][a-z0-9+.-]*:/i.test(t)&&!/^\s*(https?:|data:image\/)/i.test(t)?"none":`url("${t.replace(/["\\\n\r\f]/g,r=>`\\${r.charCodeAt(0).toString(16)} `)}")`}function D(t,e,n){if(!e)return;let r=Or(e,t);if(t.tagName!=="IMG"){t.style.backgroundImage=ys(r);return}if(me(t.getAttribute("src"),r)){n!=null&&!t.getAttribute("alt")&&t.setAttribute("alt",n);return}t.removeAttribute("srcset"),t.removeAttribute("sizes"),t.setAttribute("src",r),n!=null&&t.setAttribute("alt",n),t.getAttribute("loading")||t.setAttribute("loading","lazy")}var nn=new WeakMap,zt=t=>!!nn.get(t),rn=t=>t.cloneNode(!0);function Mr(t){let e=nn.get(t);if(e!==void 0)return e;let n=t.firstElementChild,r=n?rn(n):null;return nn.set(t,r),t.replaceChildren(),r}function Y(t,e,n){let r=Mr(t);if(!r){e.length&&C("repeater without a template child",t);return}t.replaceChildren(),e.forEach((o,i)=>{let a=rn(r);n(a,o,i),t.appendChild(a)})}function bs(t,e){let n=()=>{t.remove()};if(!e){n();return}try{e(t,n)}catch(r){f(r,"repeater onLeave"),n()}}function Ps(t,e,n,r){e.forEach((o,i)=>{if(!n.has(o))return;let a=e[i-1];if(a?.parentNode===t?a.after(o):t.prepend(o),!!r)try{r(o)}catch(s){f(s,"repeater onEnter")}})}function on(t,e,n,r,{onEnter:o,onLeave:i}={}){let a=Mr(t);if(!a){C("repeater without a template child",t);return}let s=`data-${u.prefix}-key`,l=`data-${u.prefix}-leaving`,d=()=>[...t.children].filter(w=>w.hasAttribute(s)&&!w.hasAttribute(l)),g=new Map(d().map(w=>[w.getAttribute(s),w])),x=[],A=new Set;e.forEach((w,le)=>{let Ge=String(n(w,le)),bt=g.get(Ge);bt?g.delete(Ge):(bt=rn(a),bt.setAttribute(s,Ge),A.add(bt)),r(bt,w,le,A.has(bt)),x.push(bt)});let $=x.filter(w=>!A.has(w)),jn=d().filter(w=>$.includes(w));if(!(jn.length===$.length&&jn.every((w,le)=>w===$[le]))){g.forEach(w=>{w.remove()}),x.forEach(w=>t.appendChild(w));return}Ps(t,x,A,o),g.forEach(w=>{w.setAttribute(l,""),w.removeAttribute(s),w.style.pointerEvents="none",w.inert=!0,bs(w,i)})}var Rr="data-tether-seen",sn="data-tether-shown",ge="data-tether-prev-display",Es=120;function Mt(t,e){return or(u.productPath||"/product",t,e)}function Dr(t,e){try{return t()}catch(n){if(n instanceof RangeError)return e;throw n}}function Vr(t,e=u.locale){return t?Dr(()=>new Intl.NumberFormat(e||void 0,{style:"percent",maximumFractionDigits:0}).format(t/100),`${t}%`):""}function I(t){return t?u.formatMoney?u.formatMoney(t,u.locale):rr(t,u.locale):""}function he(t){return t?Dr(()=>new Date(t).toLocaleDateString(u.locale||void 0),""):""}function ye(t,e){t.replaceChildren(Lr(e,t.ownerDocument,u.embedOrigins))}var Hr=t=>t.tagName==="INPUT"||t.tagName==="TEXTAREA",Nr=t=>t.tagName==="INPUT";function S(t,e){let n=e==null?"":String(e);Hr(t)?t.value=n:t.textContent=n}var $r=t=>Hr(t)?t.value:t.textContent;function lt(t,e){let n=$r(t);if(S(t,e),n!==$r(t)&&t.hasAttribute(Rr)&&u.onValueChange)try{u.onValueChange(t,n)}catch(r){f(r,"onValueChange")}t.setAttribute(Rr,"1")}function Ss(t){if(t.hasAttribute(sn))return;t.setAttribute(sn,""),t.removeAttribute("hidden");let e=t.getAttribute(ge);e!==null?(t.style.display=e,t.removeAttribute(ge)):t.style.display==="none"&&(t.style.display=""),typeof getComputedStyle=="function"&&getComputedStyle(t).display==="none"&&(t.style.display=t.getAttribute(m("display"))||"block")}function V(t,e){if(e){Ss(t);return}t.removeAttribute(sn),!t.hasAttribute(ge)&&t.style.display!=="none"&&t.setAttribute(ge,t.style.display),t.style.display="none"}function be(t,e){t.classList.toggle("is-selected",e),t.setAttribute("aria-pressed",e?"true":"false"),Nr(t)&&(t.type==="radio"||t.type==="checkbox")&&(t.checked=e);let n=t.querySelector('input[type="radio"],input[type="checkbox"]');n&&Nr(n)&&(n.checked=e)}var _r,Jt=t=>Reflect.get(window,t);function ws(){let t=Jt("ScrollTrigger");if(typeof t!="function")return;let e=Reflect.get(t,"refresh");typeof e=="function"&&Reflect.apply(e,t,[])}function dt(t){clearTimeout(_r),_r=setTimeout(()=>{try{u.onLayoutChange?u.onLayoutChange(t):ws()}catch(e){f(e,"layout-changed")}y("layout-changed",{reason:t})},Es)}function jr(t,e){let n=[...t.querySelectorAll("img")].filter(i=>!i.complete),r=n.length,o=()=>{r-=1,r===0&&dt(`${e}:images`)};n.forEach(i=>{i.addEventListener("load",o,{once:!0}),i.addEventListener("error",o,{once:!0})})}function K(t,e){return t.getAttribute("aria-busy")==="true"?Promise.resolve(void 0):(t.setAttribute("aria-busy","true"),Promise.resolve().then(e).finally(()=>{t.removeAttribute("aria-busy")}))}function Pe(t,e){let n=t?p(t,e):null;if(!n)return null;try{return JSON.parse(n)}catch{return C(`invalid JSON in ${m(e)}`,t),null}}var Cs=/^-?\d+$/,Ur=new WeakMap;function Fr(t,e,n){let r=Ur.get(t)??new Set;Ur.set(t,r),!r.has(e)&&(r.add(e),C(`${m(e)} ${n}`,t))}function qr(t,e,{min:n,max:r,fallback:o}){let i=p(t,e)?.trim();if(!i)return o;let a=Cs.test(i)?Number(i):Number.NaN;return Number.isNaN(a)||a<n?(Fr(t,e,`${JSON.stringify(i)} is not a whole number from ${String(n)}: using ${String(o)}`),o):r===void 0||a<=r?a:(Fr(t,e,`${i} is more than its maximum: using ${String(r)}`),r)}function an(t){return t==null?"":typeof t=="string"?t:typeof t=="number"||typeof t=="boolean"?String(t):JSON.stringify(t)}function Ee(t){return Array.isArray(t)?t.filter(k).map(n=>({key:an(n.key),value:an(n.value)})):k(t)?Object.entries(t).map(([e,n])=>({key:e,value:an(n)})):[]}function Xt(t){return t?Array.isArray(t)?t.map(e=>({key:String(e.key),value:String(e.value??"")})):Object.entries(t).map(([e,n])=>({key:e,value:String(n??"")})):[]}var E="amount currencyCode",Gr={inventory:!0},Kr=t=>t.inventory?"quantityAvailable":"",pt="url altText width height";function Ts(t){let e=[];for(let r of t){let o=Qe(r);o&&e.push(o)}return e.length?`metafields(identifiers:[${e.map(({namespace:r,key:o})=>`{namespace: ${JSON.stringify(r)}, key: ${JSON.stringify(o)}}`).join(", ")}]){namespace key type value reference{... on MediaImage{image{${pt}}}}}`:""}var ks=` id name description recurringDeliveries options{name value}priceAdjustments{orderCount adjustmentValue{__typename ... on SellingPlanPercentagePriceAdjustment{adjustmentPercentage}... on SellingPlanFixedAmountPriceAdjustment{adjustmentAmount{${E}}}... on SellingPlanFixedPriceAdjustment{price{${E}}}}}`,As=` sellingPlan{id}checkoutChargeAmount{${E}}remainingBalanceChargeAmount{${E}}priceAdjustments{price{${E}}compareAtPrice{${E}}perDeliveryPrice{${E}}unitPrice{${E}}}`;function Qr(t=u,e=Gr){return` fragment TetherProduct on Product{id handle title description descriptionHtml productType vendor tags availableForSale publishedAt onlineStoreUrl requiresSellingPlan seo{title description}featuredImage{${pt}}images(first:${t.imagesFirst}){nodes{${pt}}}options{name optionValues{name swatch{color image{previewImage{${pt}}}}}}priceRange{minVariantPrice{${E}}maxVariantPrice{${E}}}compareAtPriceRange{minVariantPrice{${E}}maxVariantPrice{${E}}}${Ts(t.metafields)} sellingPlanGroups(first:${t.sellingPlanGroupsFirst}){nodes{name appName options{name values}sellingPlans(first:${t.sellingPlansFirst}){nodes{${ks}}}}}variants(first:${t.variantsFirst}){nodes{id title availableForSale currentlyNotInStock ${Kr(e)} sku barcode selectedOptions{name value}image{${pt}}price{${E}}compareAtPrice{${E}}unitPrice{${E}}sellingPlanAllocations(first:${t.sellingPlansFirst}){nodes{${As}}}}}}`}function un(t=Gr){return` fragment TetherCart on Cart{id checkoutUrl totalQuantity note createdAt updatedAt attributes{key value}buyerIdentity{countryCode email}discountCodes{code applicable}cost{subtotalAmount{${E}}totalAmount{${E}}checkoutChargeAmount{${E}}}lines(first:100){nodes{id quantity attributes{key value}cost{totalAmount{${E}}subtotalAmount{${E}}amountPerQuantity{${E}}compareAtAmountPerQuantity{${E}}}discountAllocations{discountedAmount{${E}}}sellingPlanAllocation{sellingPlan{id name description recurringDeliveries options{name value}}checkoutChargeAmount{${E}}priceAdjustments{price{${E}}compareAtPrice{${E}}perDeliveryPrice{${E}}}}merchandise{... on ProductVariant{id title sku availableForSale requiresShipping ${Kr(t)} image{${pt}}price{${E}}compareAtPrice{${E}}selectedOptions{name value}product{id title handle vendor featuredImage{${pt}}}}}... on ComponentizableCartLine{lineComponents{id quantity merchandise{... on ProductVariant{id title product{title handle}}}}}}}}`}function Wr(){return` id handle title description descriptionHtml image{${pt}}seo{title description}`}var dn={};Ri(dn,{GID:()=>Q,allPlans:()=>R,allocationFor:()=>N,findPlan:()=>Nt,hasPlans:()=>Ls,planAdjustment:()=>ln,planCheckoutCharge:()=>cn,planPrice:()=>Rt,planSavings:()=>te,plansForVariant:()=>Is,toGid:()=>Se});var vs=/^(-?)(\d+)(?:\.(\d+))?$/;function Br(t,e){let n=vs.exec(t.trim());if(!n)return null;let[,r="",o="0",i=""]=n,a=BigInt(`${o}${i.padEnd(e,"0")}`);return r==="-"?-a:a}var Yr=t=>t.split(".")[1]?.length??0;function Xr(t,e){if(t==null||e==null)return!1;let n=Math.max(Yr(t.trim()),Yr(e.trim())),r=Br(t,n),o=Br(e,n);return r===null||o===null?!1:r>o}var zr=2,Jr=new Map;function Zr(t){let e=Jr.get(t);if(e!==void 0)return e;let n=zr;try{n=new Intl.NumberFormat("en",{style:"currency",currency:t}).resolvedOptions().maximumFractionDigits??zr}catch{}return Jr.set(t,n),n}function Et(t){return Math.round(parseFloat(t.amount)*10**Zr(t.currencyCode))}function Zt(t,e){let n=Zr(e);return{amount:(t/10**n).toFixed(n),currencyCode:e}}var xs=100;function Se(t,e){let n=typeof t=="string"||typeof t=="number"?String(t).trim():"";return n?n.startsWith("gid://")?n:/^\d+$/.test(n)?`gid://shopify/${e}/${n}`:n:null}var Q={product:t=>Se(t,"Product"),variant:t=>Se(t,"ProductVariant"),sellingPlan:t=>Se(t,"SellingPlan")};function R(t){return(t?.sellingPlanGroups?.nodes??[]).flatMap(n=>n.sellingPlans.nodes.map(r=>({...r,group:n})))}function Ls(t){return R(t).length>0}function N(t,e){return!t||!e?null:(t.sellingPlanAllocations?.nodes??[]).find(r=>r.sellingPlan.id===e)??null}function Is(t,e){return R(t).filter(n=>N(e,n.id))}function Rt(t,e){let n=N(t,e)?.priceAdjustments[0];return n?.perDeliveryPrice??n?.price??t?.price??null}function cn(t,e){let n=N(t,e);return n?.checkoutChargeAmount??n?.priceAdjustments[0]?.price??t?.price??null}function te(t,e){let n=Rt(t,e);if(!t||!n)return{amount:null,percentage:0};let r=parseFloat(t.price.amount),o=parseFloat(n.amount);if(!Number.isFinite(r)||!Number.isFinite(o)||r<=0||o>=r)return{amount:null,percentage:0};let i=Et(t.price)-Et(n);return{amount:Zt(i,t.price.currencyCode),percentage:Math.round((1-o/r)*xs)}}function ln(t){let e=t?.priceAdjustments[0]?.adjustmentValue;if(!e)return null;switch(e.__typename){case"SellingPlanPercentagePriceAdjustment":return{type:"percentage",value:e.adjustmentPercentage};case"SellingPlanFixedAmountPriceAdjustment":return{type:"amount",value:e.adjustmentAmount};case"SellingPlanFixedPriceAdjustment":return{type:"price",value:e.price};default:return null}}function Nt(t,e){if(!e)return null;let n=R(t),r=Q.sellingPlan(e),o=e.trim().toLowerCase();return n.find(i=>i.id===r)??n.find(i=>i.name.toLowerCase()===o)??n.find(i=>i.options.some(a=>a.value.toLowerCase()===o))??null}var tt={amount:"string",currencyCode:"string"},$t={id:"string",handle:"string",title:"string",options:["object"],images:{nodes:["object"]},priceRange:{minVariantPrice:tt,maxVariantPrice:tt},variants:{nodes:[{id:"string",price:tt,selectedOptions:["object"]}]}},to={nodes:[$t],pageInfo:{hasNextPage:"boolean"}},eo=t=>X(t,"id")!==""&&X(t,"handle")!==""&&G(t,$t),no=t=>k(t)&&(t.id===void 0||G(t,$t)),Gl=B({collection:F({handle:"string",products:to})}),Kl=B({products:to}),Ql=B({productRecommendations:F([$t])});var Os={id:"string",quantity:"number",attributes:["object"],cost:{totalAmount:tt,subtotalAmount:tt,amountPerQuantity:tt},merchandise:{id:"string",selectedOptions:["object"],product:"object"}},pn={id:"string",checkoutUrl:"string",totalQuantity:"number",attributes:["object"],discountCodes:["object"],cost:{totalAmount:tt,subtotalAmount:tt},lines:{nodes:[Os]}};var Ms='a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex="-1"])',Rs=60,fn=!1,we=null,Ns=t=>t!==null&&"focus"in t,ro=t=>h(t,Ms).filter(e=>e.offsetParent!==null||e===document.activeElement),St=()=>h(document,c("cart-drawer")),mn=t=>t.classList.contains(u.cartDrawerOpenClass);function z(){let t=St();return t.length?t.some(mn):fn}function Ce(t){h(document,c("cart-open")).forEach(e=>{e.setAttribute("aria-expanded",String(t))}),St().forEach(e=>{e.hasAttribute("role")||e.setAttribute("role","dialog"),!e.hasAttribute("aria-label")&&!e.hasAttribute("aria-labelledby")&&e.setAttribute("aria-label",p(e,"cart-label")||"Cart"),e.setAttribute("aria-modal",String(t)),!mn(e)&&(e.setAttribute("aria-hidden","true"),u.cartFocus&&(e.inert=!0))})}function $s(t){let e=ro(t)[0]??t;e===t&&!t.hasAttribute("tabindex")&&(t.tabIndex=-1),e.focus({preventScroll:!0})}function Te(){if(z())return;fn=!0;let t=St().filter(n=>p(n,"cart-drawer")!=="manual");t.forEach(n=>{n.inert=!1,n.classList.add(u.cartDrawerOpenClass),n.setAttribute("aria-hidden","false")}),Ce(!0);let[e]=t;u.cartFocus&&e&&(we=Ns(document.activeElement)?document.activeElement:null,setTimeout(()=>{$s(e)},Rs)),u.onCartOpen?.(t),y("cart-toggled",{open:!0})}function gn(){if(!z())return;fn=!1;let t=St(),e=t.some(n=>n.contains(document.activeElement));t.forEach(n=>{n.classList.remove(u.cartDrawerOpenClass),n.setAttribute("aria-hidden","true"),u.cartFocus&&(n.inert=!0)}),Ce(!1),e&&we?.isConnected&&we.focus({preventScroll:!0}),we=null,u.onCartClose?.(t),y("cart-toggled",{open:!1})}function oo(){z()?gn():Te()}function hn(t){if(t.key!=="Tab"||!u.cartFocus||!z())return;let e=St().find(mn);if(!e)return;let n=ro(e),r=n[0],o=n.at(-1);if(!r||!o)return;let i=document.activeElement,a=t.shiftKey?i===r:i===o;e.contains(i)&&!a||(t.preventDefault(),(t.shiftKey?o:r).focus())}var _s=1e4,Us=6e4,H=new Map,yn=new Map,wt=new Set,ke=new Map,so=[],bn=!1,ee=0,io=t=>t.startsWith("gid://"),Ct=ir;function _t(t){if(!t)return;let e=Promise.resolve(t);H.set(t.handle,e),H.set(t.id,e)}function et(t){let e=Ct(t);if(!e)return Promise.reject(new P("empty product key",{code:"NOT_FOUND"}));let n=H.get(e);if(n)return n;let r=new Promise((o,i)=>{yn.set(e,{resolve:o,reject:i}),so.push(e),bn||(bn=!0,setTimeout(()=>void Hs(),0))});return H.set(e,r),r}var Pn=t=>e=>`${t}${Qr(u,e)}`;function Fs(t){let e=t.filter(io),n=t.filter(s=>!io(s)),r=[],o=[],i={};return e.length&&(r.push("$ids: [ID!]!"),i.ids=e,o.push("byId:nodes(ids:$ids){... on Product{...TetherProduct}}")),n.forEach((s,l)=>{r.push(`$h${l}: String!`),i[`h${l}`]=s,o.push(`h${l}:product(handle:$h${l}){...TetherProduct}`)}),{query:Pn(`query TetherProducts(${r.join(",")}){${o.join(" ")}}`),variables:i,handles:n}}function ao(t,e){let n=yn.get(t);yn.delete(t),n&&e(n)}function Ds(t,e){if(e!==ee)return;let n=H.get(t);setTimeout(()=>{H.get(t)===n&&H.delete(t)},_s)}function Vs(t){if(!k(t))return!1;let{byId:e=[],...n}=t;return G(e,[F(no)])&&Object.values(n).every(F($t))}async function Hs(){bn=!1;let t=ee,e=so.splice(0);if(!e.length)return;let{query:n,variables:r,handles:o}=Fs(e);L("fetch products",e);let i;try{i=await at(n,r,Vs)}catch(l){e.forEach(d=>{ao(d,g=>{t===ee&&H.delete(d),g.reject(l)})});return}let a=new Map;for(let l of i.byId??[])l?.id&&a.set(l.id,l);o.forEach((l,d)=>{let g=i[`h${d}`];g&&a.set(l,g)});let s=Date.now();e.forEach(l=>{ao(l,d=>{let g=a.get(l);if(!g){Ds(l,t),d.reject(new P(`Product not found: ${l}`,{code:"NOT_FOUND"}));return}t===ee&&(_t(g),ke.set(g.handle,s),ke.set(g.id,s)),d.resolve(g)})})}function Ae(){H.clear(),ee+=1,wt.clear(),ke.clear()}function uo(t){for(let e of t??[])!e.id||!e.handle||Date.now()-(ke.get(e.handle)??0)<Us&&H.has(e.handle)||(_t(e),wt.add(e.handle),wt.add(e.id))}function co(t){let e=Ct(t);return!e||!wt.has(e)?!1:(wt.delete(e),H.get(e)?.then(n=>{wt.delete(n.handle),wt.delete(n.id)},js),!0)}function js(){}function lo(t){let e=Ct(t);return e&&H.delete(e),et(t)}var qs=/^image:(\d+)$/,po="metafield:",Gs=/^(rich_text|multi_line_text)_field$/,Ks=["","true","all","*"],ne=t=>t.tagName==="SELECT",Tt=(t,e)=>t.$(`select${e}`).filter(ne);function Qs(t,e){let n=e.images.nodes,r=[...t.children].map(i=>i.tagName==="IMG"?i:i.querySelector("img"));!zt(t)&&r.length===n.length&&r.every((i,a)=>me(i?.getAttribute("src"),n[a]?.url))||Y(t,n,(i,a)=>{let s=i.matches(`img,${c("bind","image")}`)?i:h(i,"img")[0]??i;D(s,a.url,a.altText||e.title)})}function Ws(t,e,n){let r=n.indexOf("."),o=n.slice(0,r),i=n.slice(r+1),a=(e.metafields??[]).find(l=>l?.namespace===o&&l.key===i);if(!a){S(t,"");return}let s=a.reference?.image;if(s){D(t,s.url,s.altText);return}Gs.test(a.type)&&(t.style.whiteSpace="pre-line"),S(t,a.value)}var Bs=new Map(Object.entries({title:t=>t.title,"description-text":t=>t.description,vendor:t=>t.vendor,type:t=>t.productType,handle:t=>t.handle,"published-at":t=>he(t.publishedAt),"min-price":t=>I(t.priceRange.minVariantPrice),"max-price":t=>I(t.priceRange.maxVariantPrice)}));function Ys(t,e){let n=(t.getAttribute("exclude")??"").split(",").map(o=>o.trim()).filter(Boolean),r=e.tags.filter(o=>!n.includes(o));Y(t,r,(o,i)=>{S(o,i)})}function zs(t,e,n){let r=Bs.get(e);if(r){S(t,r(n));return}switch(e){case"description":ye(t,n.descriptionHtml);break;case"featured-image":D(t,n.featuredImage?.url,n.featuredImage?.altText||n.title);break;case"url":case"link":{let o=Mt(n.handle,n.id);o&&t.setAttribute("href",o),e==="url"&&!t.firstElementChild&&!t.textContent.trim()&&S(t,n.title);break}case"images":Qs(t,n);break;case"tags":Ys(t,n);break;default:Js(t,e,n)}}function Js(t,e,n){let r=qs.exec(e);if(r){let o=n.images.nodes[Number(r[1])-1]??n.featuredImage;D(t,o?.url,o?.altText||n.title)}else e.startsWith(po)&&Ws(t,n,e.slice(po.length))}function Xs(t){let{product:e}=t;t.$(c("option-list")).forEach(n=>{let r=t.optName(p(n,"option-list")),o=e.options.find(i=>i.name===r);if(!o||o.optionValues.length<=1&&st(n,"hide-single")){V(n,!1);return}Y(n,o.optionValues,(i,a)=>{i.setAttribute(m("option-value"),a.name);let s=h(i,c("bind","option-value"))[0];s?S(s,a.name):i.firstElementChild||S(i,a.name);let l=h(i,c("bind","swatch"))[0],{swatch:d}=a;!l||!d||(d.color&&(l.style.backgroundColor=d.color),d.image?.previewImage&&D(l,d.image.previewImage.url,a.name))})})}function Zs(t){let{product:e}=t;Tt(t,c("option")).forEach(n=>{let r=e.options.find(o=>o.name===t.optName(p(n,"option")));if(!r){V(n,!1);return}n.replaceChildren(...r.optionValues.map(o=>new Option(o.name,o.name)))}),Tt(t,c("variant-select")).forEach(n=>{n.replaceChildren(...e.variants.nodes.map(r=>new Option(r.title,r.id)))}),Tt(t,c("plan")).forEach(n=>{let r=t.plans.map(a=>new Option(a.name,a.id)),o=!e.requiresSellingPlan&&p(n,"plan")!=="subscription-only",i=n.getAttribute(m("one-time-label"))||"One-time purchase";n.replaceChildren(...o?[new Option(i,"")]:[],...r)})}function tu(t){t.$(c("plan-list")).forEach(e=>{let n=(p(e,"plan-list")??"").trim(),r=Ks.includes(n.toLowerCase())?null:n,o=t.plans.filter(i=>!r||i.group.name===r);Y(e,o,(i,a)=>{i.setAttribute(m("plan-value"),a.id),!i.firstElementChild&&!i.querySelector(c("plan-bind"))&&S(i,a.name)})})}function fo(t){t.$(c("bind")).forEach(e=>{zs(e,p(e,"bind")??"",t.product)}),Xs(t),Zs(t),tu(t)}var mo="Default Title",En=(t,e)=>e.get(t.id)?.quantity??t.quantity,go=t=>t.split("/").pop()??t;function eu(t){let e=t.merchandise,n=Mt(e.product.handle,e.product.id);if(!n)return null;let r=new URLSearchParams;r.set("variant",go(e.id));let o=t.sellingPlanAllocation?.sellingPlan.id;return o&&r.set("selling_plan",go(o)),`${n}${n.includes("?")?"&":"?"}${r.toString()}`}var ho=t=>t.merchandise.product.title,yo={title:ho,"product-title":ho,"variant-title":t=>t.merchandise.title===mo?"":t.merchandise.title,options:t=>t.merchandise.selectedOptions.filter(e=>e.value!==mo).map(e=>`${e.name}: ${e.value}`).join(", "),vendor:t=>t.merchandise.product.vendor,sku:t=>t.merchandise.sku??"",price:t=>I(t.cost.amountPerQuantity),"compare-at-price":t=>I(t.cost.compareAtAmountPerQuantity??t.merchandise.compareAtPrice),"line-total":t=>I(t.cost.totalAmount),"line-subtotal":t=>I(t.cost.subtotalAmount),quantity:(t,e)=>En(t,e.pending),plan:t=>t.sellingPlanAllocation?.sellingPlan.name??"","plan-description":t=>t.sellingPlanAllocation?.sellingPlan.description??"",components:t=>(t.lineComponents??[]).map(e=>`${e.quantity} \xD7 ${e.merchandise.product.title}`).join(", ")},bo="attribute:";function nu(t,e,n){if(Object.hasOwn(yo,e))return yo[e]?.(t,n);if(!e.startsWith(bo))return;let r=e.slice(bo.length);return t.attributes.find(o=>o.key===r)?.value??""}function ru(t,e,n){let r=R(n),o=!n.requiresSellingPlan&&p(t,"line-plan")!=="subscription-only",i={value:"",label:t.getAttribute(m("one-time-label"))||"One-time purchase"},a=[...o?[i]:[],...r.map(l=>({value:l.id,label:l.name}))],s=a.map(l=>l.value).join("|");t.dataset.tetherSig!==s&&(t.replaceChildren(...a.map(l=>{let d=document.createElement("option");return d.value=l.value,d.textContent=l.label,d})),t.dataset.tetherSig=s),t.value=e.sellingPlanAllocation?.sellingPlan.id??"",V(t,r.length>0)}function ou(t,e,n){let r=!!e.sellingPlanAllocation;t.classList.toggle("is-subscription",r);let o=n.warnings.find(s=>s.target===e.id);t.classList.toggle("is-warning",!!o);let i=n.pending.has(e.id);t.classList.toggle("is-busy",i),i?t.setAttribute("aria-busy","true"):t.removeAttribute("aria-busy"),h(t,c("line","warning")).forEach(s=>{lt(s,o?.message??"")});let a=new Map([["subscription",r],["one-time",!r],["on-sale",Xr(e.cost.compareAtAmountPerQuantity?.amount,e.cost.amountPerQuantity.amount)],["has-components",(e.lineComponents??[]).length>0],["warning",!!o]]);h(t,c("line-show")).forEach(s=>{let l=p(s,"line-show"),d=l===null?void 0:a.get(l);d!==void 0&&V(s,d)})}function iu(t,e,n){let r=e.merchandise;t.setAttribute(m("line-id"),e.id),h(t,c("line")).forEach(i=>{let a=p(i,"line")??"";if(a==="image"){D(i,r.image?.url??r.product.featuredImage?.url,r.product.title);return}if(a==="url"){let l=eu(e);l&&i.setAttribute("href",l);return}let s=nu(e,a,n);s!==void 0&<(i,s)}),ou(t,e,n),h(t,c("line-plan")).filter(ne).forEach(i=>{et(r.product.handle).then(a=>{ru(i,e,a)}).catch(a=>{f(a,"line plan options")})})}function au(t,e){let n=t?.totalQuantity??0,r=(t?.lines.nodes??[]).some(i=>i.sellingPlanAllocation),o=new Map([["cart-empty",n===0],["cart-filled",n>0],["cart-has-subscription",r],["cart-no-subscription",!r],["cart-has-discount",(t?.discountCodes??[]).some(i=>i.applicable)],["cart-error",e.failed],["cart-warning",e.warnings.length>0]]);h(document,c("show")).forEach(i=>{let a=p(i,"show"),s=a===null?void 0:o.get(a);s===void 0||i.closest(c("product"))||V(i,s)}),h(document,c("checkout")).forEach(i=>{i.classList.toggle("is-disabled",!n),i.setAttribute("aria-disabled",String(!n))})}function su(t){h(document,`textarea${c("cart-note")},input${c("cart-note")}`).forEach(e=>{document.activeElement!==e&&S(e,t?.note??"")}),h(document,c("cart-discounts")).forEach(e=>{Y(e,t?.discountCodes??[],(n,r)=>{n.setAttribute(m("discount-code"),r.code);let o=n.querySelector(c("discount","code"))??(n.firstElementChild?null:n);o&&S(o,r.code),n.classList.toggle("is-inapplicable",!r.applicable)})})}function Po(t){let{cart:e}=t,n=r=>e?I(e.cost[r]):"";Ce(z()),h(document,c("cart-count")).forEach(r=>{lt(r,e?.totalQuantity??0)}),h(document,c("cart-subtotal")).forEach(r=>{lt(r,n("subtotalAmount"))}),h(document,c("cart-total")).forEach(r=>{lt(r,n("totalAmount"))}),h(document,c("cart-checkout-charge")).forEach(r=>{lt(r,n("checkoutChargeAmount"))}),au(e,t),h(document,c("cart-warning")).forEach(r=>{lt(r,[...new Set(t.warnings.map(o=>o.message))].join(" "))}),su(e),h(document,c("cart-lines")).forEach(r=>{on(r,e?.lines.nodes??[],o=>o.id,(o,i)=>{iu(o,i,t)},{onEnter:u.onLineEnter,onLeave:u.onLineLeave})}),e&&dt("cart")}function Eo(t){h(document,c("cart-count")).forEach(e=>{/^\s*0?\s*$/.test(e.textContent)&&(e.textContent=String(t))})}function kt(t,e="localStorage"){try{return window[e].getItem(t)}catch{return null}}function ve(t,e,n="localStorage"){try{window[n].setItem(t,e)}catch{}}function re(t,e="localStorage"){try{window[e].removeItem(t)}catch{}}var So=/^gid:\/\/shopify\/Cart\/[\w-]+(\?key=[\w-]+)?$/;var j={kind:"unknown"},Ut=[],At=new Map,xe=()=>j;function v(){switch(j.kind){case"ready":case"error":return j.cart;case"unknown":case"empty":return null}}var Co=()=>Ut,Sn=t=>t?{kind:"ready",cart:t}:{kind:"empty"},To=()=>`${u.storageKey}:seen`;function ft(){let t=kt(u.storageKey);return t?So.test(t)?t:(mt(),null):null}function mt(){re(u.storageKey)}function wn(t){j=Sn(t),t&&ve(u.storageKey,t.id)}function oe(){Po({cart:v(),warnings:Ut,pending:At,failed:j.kind==="error"})}function ie(t){oe(),y("cart-updated",{cart:v(),reason:t})}function W(t,e){return wn(t),ve(To(),`${Date.now()}|${t?.totalQuantity??0}`),ie(e),t}function ae(t){j=t.kind==="loaded"?Sn(t.cart):{kind:"error",error:t.error,cart:null},ie("load")}function uu(){let t=kt(To())?.split("|")[1]??"",e=Number(t);return/^\d+$/.test(t)&&Number.isSafeInteger(e)?e:null}function ko(){if(j.kind!=="unknown")return;let t=uu();t!==null&&Eo(t)}function Ao(t){Ut=t.filter((e,n)=>t.findIndex(r=>r.message===e.message)===n).map(e=>({...e,message:u.warningText?.(e)||e.message})),Ut.length&&y("cart-warning",{warnings:Ut})}var wo=()=>{};function cu(){let t=Promise.resolve();return e=>{let n=t.then(e);return t=n.then(wo,wo),n}}var lu=cu();function vo(t){return lu(t).then(e=>(j.kind==="error"&&(j=Sn(j.cart),oe()),e),e=>{throw j={kind:"error",error:e,cart:v()},oe(),y("cart-error",{error:e}),e})}var Cn=t=>En(t,At),du=()=>({open:z(),count:v()?.totalQuantity??0,loaded:j.kind!=="unknown",warnings:[...Ut]});function xo(t){let e=["cart-updated","cart-toggled"].map(r=>`${u.prefix}:${r}`),n=()=>{t(v(),du())};return e.forEach(r=>{document.addEventListener(r,n)}),n(),()=>{e.forEach(r=>{document.removeEventListener(r,n)})}}var pu=/does not exist|not found|invalid id/i,fu=t=>B({[t]:F({cart:F(pn)})});function Le(t){return t instanceof P?t.userErrors?.some(e=>e.field?.[0]==="cartId")?!0:(t.errors??[]).some(e=>pu.test(e.message)):!1}function Io(t){if(!(t instanceof P))return!1;let{code:e,status:n=0}=t;return e==="NETWORK"||e==="INVALID_RESPONSE"||e==="SERVER_ERROR"||n>=500}function Oo(t,e=1,n={}){let r=typeof t=="object"&&t!==null?t:{...n,quantity:e,...t==null?{}:{variantId:t}},o=Q.variant(r.merchandiseId||r.variantId||r.id);if(!o)throw new P("add(): variantId is required");let i=parseInt(String(r.quantity??1),10),a={merchandiseId:o,quantity:Math.max(1,i||1)},s=Q.sellingPlan(r.sellingPlanId||r.sellingPlan);s&&(a.sellingPlanId=s);let l=Xt(r.attributes);return l.length&&(a.attributes=l),a}function mu(t,e,n){return r=>`mutation Tether_${t}(${e}){${t}(${n}){cart{...TetherCart}userErrors{field message}warnings{code message target}}}${un(r)}`}async function Mo(t,e,n,r){let o=await at(mu(t,e,n),r,fu(t),{operation:"mutation"}),i=wr(o[t],t);return Ao(i.warnings??[]),i.cart}function Lo(t){let e=u.country?{buyerIdentity:{countryCode:u.country},...t}:t;return Mo("cartCreate","$input: CartInput!","input: $input",{input:e})}async function gt({name:t,args:e,inner:n,variables:r,createInput:o}){let i=ft();if(!i)return o?Lo(o):null;try{return await Mo(t,`$cartId: ID!, ${e}`,`cartId: $cartId, ${n}`,{...r,cartId:i})}catch(a){if(!Le(a)||(mt(),!o))throw a;return L("cart expired, creating a new one"),Lo(o)}}async function Tn(t){return(await at(n=>`query TetherCart($id:ID!){cart(id:$id){...TetherCart}}${un(n)}`,{id:t},B({cart:F(pn)}))).cart}async function Ro(t){return(await at("query TetherCheckout($id:ID!){cart(id:$id){checkoutUrl}}",{id:t},B({cart:F({checkoutUrl:"string"})}))).cart?.checkoutUrl??null}function No(t,e){let n=typeof e=="number"?{quantity:e}:e,r={id:t};n.quantity!==void 0&&(r.quantity=n.quantity),"sellingPlanId"in n&&(r.sellingPlanId=n.sellingPlanId?Q.sellingPlan(n.sellingPlanId):null),n.attributes&&(r.attributes=Xt(n.attributes));let o=n.merchandiseId||n.variantId;return o&&(r.merchandiseId=Q.variant(o)),r}var kn=t=>gt({name:"cartLinesUpdate",args:"$lines: [CartLineUpdateInput!]!",inner:"lines: $lines",variables:{lines:t},createInput:null}),Ie=t=>gt({name:"cartLinesRemove",args:"$lineIds: [ID!]!",inner:"lineIds: $lineIds",variables:{lineIds:t},createInput:null}),$o=(t,e)=>e>0?kn([{id:t,quantity:e}]):Ie([t]);var An=null;function _o(t){An=t}var gu=t=>Ro(t).then(e=>({kind:"url",url:e}),e=>({kind:"failed",error:e}));async function hu(){if(!An)return null;try{let t=await An();return t&&`${t}${t.includes("?")?"&":"?"}logged_in=true`}catch(t){return f(t,"account checkout"),null}}async function yu(t){let e=gu(t),n=await hu();if(n)return n;let r=await e;if(r.kind==="failed")throw r.error;if(!r.url)throw new P("No checkoutUrl (cart empty or expired)");return r.url}function bu(t){try{t.opener=null}catch{}}async function Uo(t=u.checkoutTarget){let e=ft(),n=v();if(!e||n&&!n.totalQuantity)return null;let r=t==="_blank"?window.open("","_blank"):null;r&&bu(r);try{let o=await yu(e);if(!pe(o))throw new P("The checkout URL is not https: not opened");return y("checkout",{url:o,cart:v()}),r&&!r.closed?r.location.href=o:window.location.href=o,o}catch(o){return r?.close(),f(o,"checkout failed"),null}}var Oe=()=>v()?.lines.nodes??[];async function Pu(){let t=ft();if(t)try{let e=await Tn(t);e||mt(),W(e,"load")}catch(e){f(e,"cart reload after a failed change")}}function nt(t){return vo(()=>t().catch(async e=>{throw Io(e)&&await Pu(),e}))}function Eu(t,e){let n=Oe().find(s=>s.id===t);if(!n)return Promise.resolve(v());let r=Math.max(0,Cn(n)+e),o={quantity:r};At.set(t,o),ie("pending");let i=()=>At.get(t)===o;return nt(async()=>{if(!i())return v();if(Oe().find(d=>d.id===t)?.quantity===r)return v();let l=await $o(t,r);return i()?W(l,r>0?"update":"remove"):(wn(l),l)}).finally(()=>{i()&&(At.delete(t),ie("settled"))})}function Su(t){let e=(v()?.discountCodes??[]).map(r=>r.code),n=typeof t=="function"?t(e):t;return(Array.isArray(n)?n:[n]).map(r=>r.trim()).filter(Boolean)}function wu(t){let e=new Map((v()?.attributes??[]).map(n=>[n.key,n.value]));return Xt(t).forEach(n=>e.set(n.key,n.value)),[...e].filter(([,n])=>n!=="").map(([n,r])=>({key:n,value:r}))}async function Cu(){let t=ft();if(!t)return ae({kind:"loaded",cart:null}),null;ko();try{let e=await Tn(t);e||mt(),ae({kind:"loaded",cart:e})}catch(e){f(e,"cart load failed"),Le(e)&&mt(),ae({kind:"failed",error:e})}return v()}var b={init:Cu,id:ft,get status(){return xe()},get state(){return v()},get lines(){return[...Oe()]},get count(){return v()?.totalQuantity??0},get loaded(){return xe().kind!=="unknown"},get lastError(){let t=xe();return t.kind!=="error"?null:t.error instanceof Error?t.error:new Error(String(t.error))},get warnings(){return[...Co()]},get pendingQty(){return At},setCheckoutResolver:_o,forgetSaved(){mt(),ae({kind:"loaded",cart:null})},render:oe,subscribe:xo,add(t,e=1,n={}){let r=(Array.isArray(t)?t:[t]).map(o=>Oo(o,e,n));return nt(async()=>{let o=await gt({name:"cartLinesAdd",args:"$lines: [CartLineInput!]!",inner:"lines: $lines",variables:{lines:r},createInput:{lines:r}});if(!o)throw new P("Shopify answered the add without a cart");return W(o,"add"),y("added",{cart:o,lines:r}),u.openCartOnAdd&&Te(),o})},updateLine(t,e){let n=typeof e=="number"?e:e.quantity;if(n!==void 0&&n<=0)return b.removeLine(t);let r=No(t,e);return nt(async()=>W(await kn([r]),"update"))},changeQuantity:Eu,quantityOf:Cn,removeLine(t){let e=Array.isArray(t)?t:[t];return nt(async()=>W(await Ie(e),"remove"))},clear(){return nt(async()=>{let t=Oe().map(e=>e.id);return t.length?W(await Ie(t),"remove"):v()})},setNote(t){let e={note:t??""};return nt(async()=>W(await gt({name:"cartNoteUpdate",args:"$note: String!",inner:"note: $note",variables:e,createInput:e}),"note"))},setAttributes(t){return nt(async()=>{let e={attributes:wu(t)},n=await gt({name:"cartAttributesUpdate",args:"$attributes: [AttributeInput!]!",inner:"attributes: $attributes",variables:e,createInput:e});return W(n,"attributes")})},setDiscountCodes(t){return nt(async()=>{let e={discountCodes:Su(t)},n=await gt({name:"cartDiscountCodesUpdate",args:"$discountCodes: [String!]!",inner:"discountCodes: $discountCodes",variables:e,createInput:e});return W(n,"discount")})},async applyDiscount(t){let e=await b.setDiscountCodes(o=>[...new Set([...o,t])]),n=t.toLowerCase();if((e?.discountCodes??[]).find(o=>o.code.toLowerCase()===n)?.applicable)return e;try{await b.removeDiscount(t)}catch(o){f(o,"removing a discount code Shopify refused")}throw new P(`Discount code not valid: ${t}`,{code:"INVALID_DISCOUNT"})},removeDiscount(t){let e=t.toLowerCase();return b.setDiscountCodes(n=>n.filter(r=>r.toLowerCase()!==e))},setBuyerIdentity(t,{create:e=!0}={}){return nt(async()=>{let n=await gt({name:"cartBuyerIdentityUpdate",args:"$buyerIdentity: CartBuyerIdentityInput!",inner:"buyerIdentity: $buyerIdentity",variables:{buyerIdentity:t},createInput:e?{buyerIdentity:t}:null}).catch(r=>{if(e||!Le(r))throw r;return null});return W(n,"buyer-identity")})},checkout:Uo,drawers:St,isOpen:z,open:Te,close:gn,toggle:oo};var Tu=100,ku=(t,e)=>Zt(Et(t)*e,t.currencyCode),Dt=t=>Object.fromEntries(t.selectedOptions.map(e=>[e.name,e.value]));function Au(t,e){return t.variants.nodes.find(n=>n.selectedOptions.every(r=>e[r.name]===r.value))??null}function Fo(t,e,n,r){return t.variants.nodes.some(o=>o.availableForSale&&o.selectedOptions.every(i=>i.name===n?i.value===r:e[i.name]===i.value))}var Ft=t=>t.kind==="subscription"?t.planId:t.offeredPlanId;function Me(t,e){return t.kind==="subscription"&&N(e,t.planId)?t:{kind:"one-time"}}function Re(t,e,n,r){let o=R(t),i=o.find(s=>s.id===r)??o[0];if(!i)return{kind:"one-time",offeredPlanId:null};let a=N(e,i.id)?i:o.find(s=>N(e,s.id))??i;return t.requiresSellingPlan||n==="subscription"?{kind:"subscription",planId:a.id}:{kind:"one-time",offeredPlanId:a.id}}function Do(t,{variant:e,sellingPlan:n,defaultPlan:r,defaultPurchase:o}){let i=t.variants.nodes,a=Q.variant(e),s=i.find(x=>x.id===a)??i.find(x=>x.availableForSale)??i[0]??null,l=Nt(t,n),d=l??Nt(t,r),g=l||o==="subscription"?"subscription":"one-time";return{selected:s?Dt(s):{},purchase:Re(t,s,g,d?.id??null)}}function vu(t,e,n,r,o){let i=t.quantityAvailable,a=i!=null&&i>0&&i<=e,s=r.compareAtPrice!==null,l=r.line.kind==="subscription";return{"in-stock":t.availableForSale,"out-of-stock":!t.availableForSale,backorder:t.availableForSale&&t.currentlyNotInStock,"on-sale":s,"not-on-sale":!s,"has-variants":n>1,"single-variant":n===1,"low-stock":a,"plenty-in-stock":t.availableForSale&&!a,"subscription-available":r.subscriptionAvailable,"subscription-unavailable":!r.subscriptionAvailable,"subscription-only":o,"one-time-available":!o,"subscription-selected":l,"one-time-selected":!l,"has-savings":l?r.savings.percentage>0:s}}function Vo(t,e,n){let r=Au(t,e.selected),o=r??t.variants.nodes[0];if(!o)return null;let i=Re(t,o,e.purchase.kind,Ft(e.purchase)),a=Ft(i),s=R(t),l=Me(i,o),d=l.kind==="subscription"?N(o,l.planId):null,g=d?Rt(o,a)??o.price:o.price,x=d?.priceAdjustments[0]?.compareAtPrice??o.compareAtPrice,A={line:l,subscriptionAvailable:s.some($=>N(o,$.id)),compareAtPrice:x&&parseFloat(x.amount)>parseFloat(g.amount)?x:null,savings:te(o,a)};return{...A,variant:o,selected:r?e.selected:Dt(o),purchase:i,plan:s.find($=>$.id===a)??null,quantity:e.quantity,price:g,show:vu(o,n,t.variants.nodes.length,A,t.requiresSellingPlan)}}function Ho(t,e){let{variant:n,plan:r,price:o,compareAtPrice:i,quantity:a}=t,s=Ft(t.purchase),l=$=>ku($,Math.max(1,a)),A={price:()=>e.money(o),"total-price":()=>e.money(l(o)),"one-time-price":()=>e.money(n.price),"subscription-price":()=>e.money(s?Rt(n,s):null),"subscription-savings":()=>e.percent(t.savings.percentage),"subscription-savings-amount":()=>e.money(t.savings.amount),"checkout-charge":()=>{let $=t.line.kind==="subscription"?cn(n,s)??o:o;return e.money(l($))},"plan-name":()=>r?.name,"plan-description":()=>r?.description,"plan-group":()=>r?.group.name,"compare-at-price":()=>e.money(i),"unit-price":()=>e.money(n.unitPrice),"discount-percentage":()=>i?`${Math.round((1-parseFloat(o.amount)/parseFloat(i.amount))*Tu)}%`:"0%","discount-amount":()=>i?e.money(Zt(Et(i)-Et(o),o.currencyCode)):"","variant-title":()=>n.title,"variant-id":()=>n.id,sku:()=>n.sku,barcode:()=>n.barcode,stock:()=>n.quantityAvailable,quantity:()=>a};return new Map(Object.entries(A))}function jo(t,e,n,r){let i={name:()=>n?.name,option:()=>(n?.options??[]).map(a=>a.value).join(", "),description:()=>n?.description,price:()=>r.money(Rt(t,e)),savings:()=>r.percent(te(t,e).percentage),"savings-amount":()=>r.money(te(t,e).amount),adjustment:()=>{let a=ln(n);return a?a.type==="percentage"?`${a.value}%`:r.money(a.value):""}};return new Map(Object.entries(i))}function vn(t){try{return decodeURIComponent(t)}catch(e){if(e instanceof URIError)return t;throw e}}var qo="url:";function vt(t,e=window.location,n="product"){let r=(p(t,n)??"").trim();if(!r.toLowerCase().startsWith(qo))return{key:r||null,fromUrl:!1,raw:r};let o=r.slice(qo.length).trim(),i;if(o.toLowerCase()==="path"){let a=e.pathname.split("/").filter(Boolean),s=a[a.length-1];i=s===void 0?null:vn(s)}else i=new URLSearchParams(e.search).get(o||"handle");return{key:i?.trim()||null,fromUrl:!0,raw:r}}var Ne=["loading","ready","error","not-found"],xu=t=>Ne.some(e=>e===t),Go=t=>typeof t=="object"&&t!==null&&"code"in t?t.code:void 0,$e=t=>Go(t)==="NOT_FOUND",se=()=>["product","collection","products","recommendations"].map(t=>c(t)).join(","),Ko=(t,e)=>t===e||t.parentElement?.closest(se())===e;function Lu(t){let e=Go(t);return typeof e=="string"&&e?e:"error"}function rt(t,e,n){let r=e==="not-found",o=e==="error"||r;t.setAttribute(m("state"),r?"error":e),o?t.setAttribute(m("error"),r?"not-found":Lu(n)):t.removeAttribute(m("error")),ut(t,c("show"),se()).forEach(i=>{let a=p(i,"show");xu(a)&&V(i,a===e)}),o&&ut(t,c("add-to-cart"),se()).forEach(i=>{i.classList.add("is-disabled"),i.setAttribute("aria-disabled","true"),"disabled"in i&&(i.disabled=!0)})}var Qo={money:I,percent:Vr},Iu=t=>t.tagName==="INPUT";function xn(t){let e=h(t,c("add-label"))[0]??t,n=e.dataset.tetherLabel??(Iu(e)?e.value:e.textContent);return e.dataset.tetherLabel=n,{label:e,original:n}}function Ou(t,e){let{product:n}=t,r=o=>e.selected[t.optName(o)]??"";t.$(c("option-selected")).forEach(o=>{S(o,r(p(o,"option-selected")))}),t.$(c("option-list")).forEach(o=>{let i=t.optName(p(o,"option-list"));h(o,c("option-value")).forEach(a=>{let s=p(a,"option-value")??"";be(a,e.selected[i]===s);let l=!Fo(n,e.selected,i,s);a.classList.toggle("is-unavailable",l),a.setAttribute("data-unavailable",l?"true":"false")})}),Tt(t,c("option")).forEach(o=>{o.value=r(p(o,"option"))}),Tt(t,c("variant-select")).forEach(o=>{o.value=e.variant.id})}function Mu(t,e){let{variant:n,purchase:r,line:o}=e;t.$(c("purchase")).forEach(i=>{if(ne(i)){i.value=r.kind;return}let a=p(i,"purchase");be(i,a===r.kind);let s=a==="subscription"?!e.subscriptionAvailable:t.product.requiresSellingPlan;i.classList.toggle("is-unavailable",s)}),t.$(c("plan-value")).forEach(i=>{let a=p(i,"plan-value")??"";be(i,o.kind==="subscription"&&a===o.planId),i.classList.toggle("is-unavailable",!N(n,a));let s=t.plans.find(d=>d.id===a),l=jo(n,a,s,Qo);h(i,c("plan-bind")).forEach(d=>{let g=l.get(p(d,"plan-bind")??"");g&&S(d,g())})}),Tt(t,c("plan")).forEach(i=>{i.value=o.kind==="subscription"?o.planId:""})}function Ru(t,e){let n=new Map(Object.entries(e.show));Ne.forEach(r=>n.set(r,r==="ready")),t.$(c("show")).forEach(r=>{let o=p(r,"show")??"",i=n.get(o);i!==void 0&&(Ne.some(a=>a===o)&&!Ko(r,t.root)||V(r,i))})}function Nu(t,e){let n=!e.variant.availableForSale;t.$(c("add-to-cart")).forEach(r=>{r.classList.toggle("is-disabled",n),r.setAttribute("aria-disabled",String(n)),"disabled"in r&&(r.disabled=n);let o=p(r,"soldout-text"),i=p(r,"subscribe-text");if(!o&&!i)return;let{label:a,original:s}=xn(r),l=s;e.line.kind==="subscription"&&i&&(l=i),n&&o&&(l=o),r.getAttribute("aria-busy")!=="true"&&S(a,l)})}function Wo(t,e){let{variant:n}=e,{product:r}=t,o=Ho(e,Qo);t.$(c("bind")).forEach(i=>{let a=p(i,"bind")??"";if(a==="variant-image"){D(i,n.image?.url||r.featuredImage?.url,n.image?.altText||r.title);return}let s=o.get(a);s&&S(i,s())}),Ou(t,e),Mu(t,e),Ru(t,e),t.root.classList.toggle("is-subscription",e.line.kind==="subscription"),t.root.setAttribute(m("purchase-mode"),e.line.kind),Nu(t,e)}var Yo=()=>c("product"),$u=t=>t.tagName==="INPUT"||t.tagName==="SELECT"||t.tagName==="TEXTAREA",Bo=t=>t instanceof window.Element;function Vt(t,e,n){let r=e.closest(n);return r?.closest(Yo())===t.root?r:null}function _u(t,e){let{label:n,original:r}=xn(e),o=p(e,"adding-text");K(e,async()=>{o&&S(n,o);try{await t.addToCart()}catch(i){f(i,"add to cart failed"),y("error",{error:i,context:"add-to-cart"},t.root)}finally{o&&S(n,r)}}).then(()=>{t.renderVariant()}).catch(i=>{f(i,"add to cart render")})}function Uu(t,e,n){let r=Vt(t,n,c("option-value")),o=r?.closest(c("option-list"));if(r&&o){e.preventDefault(),t.select(t.optName(p(o,"option-list")),p(r,"option-value")??"");return}let i=Vt(t,n,c("plan-value"));if(i){e.preventDefault(),t.selectPlan(p(i,"plan-value"));return}let a=Vt(t,n,`${c("purchase")}:not(select)`);if(a){a.tagName!=="INPUT"&&e.preventDefault(),t.setPurchase(zo(p(a,"purchase")));return}let s=Vt(t,n,c("qty-plus")),l=s?null:Vt(t,n,c("qty-minus"));if(s||l){e.preventDefault(),t.setQuantity(t.quantity+(s?1:-1));return}let d=Vt(t,n,c("add-to-cart"));d&&(e.preventDefault(),_u(t,d))}var zo=t=>t==="subscription"?"subscription":"one-time";function Fu(t,e){let n=$u(e)?e.value:"";e.matches(`select${c("option")}`)?t.select(t.optName(p(e,"option")),n):e.matches(`select${c("variant-select")}`)?t.selectVariant(n):e.matches(`select${c("plan")}`)?n?t.selectPlan(n):t.setPurchase("one-time"):e.matches(`select${c("purchase")}`)?t.setPurchase(zo(n)):e.matches(c("qty"))&&t.setQuantity(n)}function Jo(t){t.root.addEventListener("click",e=>{Bo(e.target)&&Uu(t,e,e.target)}),t.root.addEventListener("change",e=>{let{target:n}=e;Bo(n)&&n.closest(Yo())===t.root&&Fu(t,n)})}var ot=new WeakMap,Du=()=>c("product"),_e=new Map;function Ln(t){t.forEach(e=>{_e.has(e.handle)||_e.set(e.handle,e.options.map(n=>n.name))})}var Xo=t=>t.tagName==="INPUT",Vu=t=>t.tagName==="INPUT"||t.tagName==="SELECT"||t.tagName==="TEXTAREA";function Hu(t){return Xo(t)&&t.type==="checkbox"?t.checked?t.value&&t.value!=="on"?t.value:"Yes":null:Xo(t)&&t.type==="radio"?t.checked?t.value:null:Vu(t)&&t.value||null}var Ue=class{constructor(e,n){M(this,"root");M(this,"product");M(this,"plans");M(this,"selected");M(this,"purchase");M(this,"variant");M(this,"quantity");this.root=e,this.product=n,this.plans=R(n);let r=new URLSearchParams(window.location.search),o=Do(n,{variant:r.get("variant")||p(e,"variant"),sellingPlan:r.get("selling_plan"),defaultPlan:p(e,"default-plan"),defaultPurchase:p(e,"default-purchase")||u.defaultPurchase});this.selected=o.selected,this.purchase=o.purchase,this.variant=null,this.quantity=st(e,"quantity")?Math.max(0,parseInt(p(e,"quantity")??"",10)||0):1,ot.set(e,this),e.setAttribute(m("state"),"ready"),e.removeAttribute(m("error")),this.renderProduct(),Jo(this),this.renderVariant(),jr(e,"product"),dt("product"),y("product-ready",{product:n,scope:this},e)}update(e){let n=this.variant?.id;this.product=e,this.plans=R(e);let r=e.variants.nodes.find(o=>o.id===n);r&&(this.selected=Dt(r)),this.root.setAttribute(m("state"),"ready"),this.root.removeAttribute(m("error")),this.renderProduct(),this.renderVariant(),dt("product"),y("product-updated",{product:e,scope:this},this.root)}$(e){let n=ut(this.root,e,Du());return this.root.matches(e)?[this.root,...n]:n}optName(e){if(!e)return"";let{options:n}=this.product;if(n.some(o=>o.name===e))return e;let r=(_e.get(this.product.handle)??[]).indexOf(e);return n[r]?.name??e}get plan(){let e=Ft(this.purchase);return this.plans.find(n=>n.id===e)??null}get subscriptionAvailable(){return this.plans.some(e=>N(this.variant,e.id))}get isSubscription(){return Me(this.purchase,this.variant).kind==="subscription"}getLine(){if(!this.variant)return null;let e={merchandiseId:this.variant.id,quantity:this.quantity},n=Me(this.purchase,this.variant);n.kind==="subscription"&&(e.sellingPlanId=n.planId);let r=this.collectAttributes();return r.length&&(e.attributes=r),e}collectAttributes(){let e=Ee(Pe(this.root,"line-attributes")),n=this.$(c("line-attribute")).flatMap(r=>{let o=Hu(r);return o===null?[]:[{key:p(r,"line-attribute")??"",value:o}]});return[...e,...n]}select(e,n){if(this.selected[e]===n)return;let r=this.product.variants.nodes.filter(a=>a.selectedOptions.some(s=>s.name===e&&s.value===n)),[o]=r;if(!o)return;let i={...this.selected,[e]:n};if(!r.some(a=>a.selectedOptions.every(s=>i[s.name]===s.value))){let a=l=>l.selectedOptions.filter(g=>g.name!==e&&this.selected[g.name]===g.value).length*2+(l.availableForSale?1:0),s=r.reduce((l,d)=>a(d)>a(l)?d:l,o);Object.assign(i,Dt(s))}this.selected=i,this.renderVariant()}selectVariant(e){let n=this.product.variants.nodes.find(r=>r.id===Q.variant(e));n&&(this.selected=Dt(n),this.renderVariant())}setPurchase(e){let n=Re(this.product,this.variant,e,Ft(this.purchase));n.kind!==this.purchase.kind&&(this.purchase=n,this.renderVariant())}selectPlan(e){let n=Nt(this.product,e);n&&(this.purchase={kind:"subscription",planId:n.id},this.renderVariant())}setQuantity(e){let n=st(this.root,"quantity")?0:1;this.quantity=Math.max(n,parseInt(String(e),10)||0),this.$(c("qty")).forEach(r=>{S(r,this.quantity)}),this.renderVariant()}async addToCart(){if(!this.variant?.availableForSale)return null;let e=this.getLine();if(!e||e.quantity<1)return null;let n=await b.add(e);return y("product-added",{product:this.product,variant:this.variant,line:e},this.root),n}renderProduct(){let{product:e}=this;_e.has(e.handle)||this.$(`${c("option-list")},select${c("option")}`).map(r=>p(r,"option-list")||p(r,"option")).some(r=>e.options.some(o=>o.name===r))&&Ln([e]),fo(this)}renderVariant(){let e=Vo(this.product,{selected:this.selected,purchase:this.purchase,quantity:this.quantity},u.lowStock);if(!e){this.variant=null;return}this.variant=e.variant,this.selected=e.selected,this.purchase=e.purchase,Wo(this,e),y("variant-changed",{product:this.product,variant:e.variant,selected:{...e.selected},purchase:e.purchase.kind,sellingPlanId:e.line.kind==="subscription"?e.line.planId:null},this.root)}};var ju='script[type="application/json"][data-tether-hydrate]',Ht=new WeakSet,In=new WeakSet,xt=new Set,ht=new Set,Zo=new WeakMap;function jt(){xt.forEach(t=>{t.isConnected||xt.delete(t)}),ht.forEach(t=>{t.root.isConnected||ht.delete(t)})}function J(t,e){return[...t.matches?.(e)?[t]:[],...h(t,e)]}function qu(t,e){let n=p(t,"page-title");!n||typeof document>"u"||(document.title=n.replace(/\{title\}/g,e.title).replace(/\{vendor\}/g,e.vendor||"").replace(/\{type\}/g,e.productType||""))}function Gu(t,{fromUrl:e,raw:n}){e?(Ht.add(t),rt(t,"not-found"),y("product-not-found",{key:null,source:n},t)):t.closest(qt())||C(`[${m("product")}] without a value. Bind it to the Shopify handle field, or use "url:handle".`,t)}function Ku(t,e,{fromUrl:n,raw:r},o){let i=$e(o);if(rt(t,i?"not-found":"error",o),!i){f(o,`product ${e}`),y("error",{error:o,context:"product",key:e},t);return}y("product-not-found",{key:e,source:r},t),n?L(`product not found: ${e}`):f(o,`product ${e}`)}function ue(t){if(Ht.has(t))return!1;let{key:e,...n}=vt(t);if(!e)return Gu(t,n),!1;Ht.add(t),xt.add(t);let r={};Zo.set(t,r);let o=()=>Zo.get(t)===r;return ot.get(t)?t.setAttribute(m("state"),"updating"):rt(t,"loading"),On(et(e)).then(a=>{if(!o())return;let s=ot.get(t);s?s.update(a):new Ue(t,a),qu(t,a),u.revalidate&&co(e)&&Qu(e)}).catch(a=>{o()&&Ku(t,e,n,a)}),!0}function ei(){jt(),xt.forEach(t=>{t.getAttribute(m("state"))!=="error"||t.getAttribute(m("error"))==="not-found"||(Ht.delete(t),ue(t))})}var Fe=new Set;function Qu(t){Fe.size||setTimeout(Bu,0),Fe.add(t)}function Wu(t,e){xt.forEach(n=>{let r=ot.get(n);if(!r||!n.isConnected)return;let o=vt(n).key;o!==t&&o!==e.handle&&o!==e.id||JSON.stringify(r.product)!==JSON.stringify(e)&&r.update(e)})}function Bu(){let t=[...Fe];Fe=new Set,t.forEach(e=>{lo(e).then(n=>{Wu(e,n)}).catch(n=>{f(n,`refresh ${e}`)})})}var it=null,On=t=>(it?.add(t),t);function De(){if(!it)return;let t=[...it];Promise.allSettled(t).then(()=>{if(!(!it||t.some(e=>!it?.has(e)))){if(t.length!==it.size){De();return}it=null,document.documentElement.classList.remove(`${u.prefix}-market-pending`)}})}function Yu(t){if(!k(t))return{country:void 0,language:void 0,products:[]};let{products:e}=t,n=Array.isArray(e)?e:[];return{country:_(t.country)??void 0,language:U(t.language)??void 0,products:n.filter(eo)}}var ti=new WeakSet;function Mn(t=document){J(t,ju).forEach(e=>{if(ti.has(e))return;ti.add(e);let n;try{n=JSON.parse(e.textContent)}catch(a){C("bad data-tether-hydrate",a);return}let{country:r,language:o,products:i}=Yu(n);if(Ln(i),r===u.country&&o===u.language){uo(i);return}L("hydration skipped: other market"),it||(it=new Set,document.documentElement.classList.add(`${u.prefix}-market-pending`))})}var zu=()=>`${u.prefix}:market:${u.domain}`,Ju={getItem:t=>kt(t)};function Xu(t){try{return JSON.parse(t)}catch(e){if(e instanceof SyntaxError)return null;throw e}}function Zu(t){if(typeof t!="object"||t===null)return null;let e=_(Reflect.get(t,"country"));if(!e)return null;let n=Reflect.get(t,"locale");return{country:e,language:U(Reflect.get(t,"language"))??void 0,locale:typeof n=="string"&&n?n:void 0}}var tc=t=>Zu(Xu(t));function Rn(t=Ju){let e=t.getItem(zu());return e?tc(e):null}var ri={country:void 0,language:void 0,locale:void 0},Nn=!1;function oi(){let t=n=>document.querySelector(`meta[name="${u.prefix}-page-${n}"]`)?.getAttribute("content")||void 0,e=_(t("country"));return e?{country:e,language:U(t("language"))??void 0,locale:t("locale")}:null}async function ec(){let t=u.markets??{};if(t.detect===!1)return null;if(!t.detect)return t.remember===!1?null:Rn();try{return(await T("markets")).detectMarket(t)}catch(e){return f(e,"markets"),null}}async function ii(t){ri={country:u.country,language:u.language,locale:u.locale};let e=oi();if(Nn=e!==null,e){u.country=e.country,u.language=e.language,e.locale&&(u.locale=e.locale);return}let n=await ec();n&&(n.country&&(u.country=n.country),n.language&&(u.language=n.language),n.locale&&!t.locale&&(u.locale=n.locale),L("market",n))}var ni=(t,e)=>(t??"").toUpperCase()===(e??"").toUpperCase();function ai(){let t=oi(),e=t===null&&Nn;Nn=t!==null;let n=t??(e?Rn()??ri:null);return!n?.country||ni(n.country,u.country)&&ni(n.language,u.language)?null:{country:n.country,language:n.language,locale:n.locale}}function Lt(t,e){return T("markets").then(n=>n.setCountry(t,e))}var si={"tether.diagnose.min.js":"sha384-uwdJdZW1iEalmG7EsIuujbWzhE5/Y2Gz7s+wTHgif+fZVR9iX0Fr2+e7CCep+f/M","tether.markets.min.js":"sha384-72Cl5wZBROuccjnWN5t0ESiMMsYog479Unet7dFdV0BcA+SkH5J0jfIE1YlR/J8s","tether.search.min.js":"sha384-1BwXo2kK25zv5I7UUnsmP44eItrSTKV5o/7jVrFPQEx/crTUU7hDjKZYZeRXrOGY","tether.lists.min.js":"sha384-d9qPjXI9WhVDXqDxwk7wbsHFJJKH6AwgRZh47T1Mj/QgY/HAP01scq7Ip1gPwbN0","tether.extras.min.js":"sha384-0AxIwjyeIKV866bW2kgzkU3w9jHAP5QB+BYObgctVn0zInXBilotmAhWswXzrrax","tether.account.min.js":"sha384-38FhRMy9GB3VsQRcJ2OeuBz5ga0piCArKnGhWGKEeEqISu5/GYNZaO254mgl0y0A","tether.account-pages.min.js":"sha384-fQAQFo+37WatWIvRTg3BzZiZhYTy+Q0pQBlV98TgyBwvD8wvl+aP6lvAEVMFOyeh","tether.analytics.min.js":"sha384-Jm4t6uQ2r6lvebinSU4iG6dKRaRJFjQ30Z00gxE8jeJpeR1p1ngSkr56YrmbtAdi"};function $n(t){return k(t)&&k(t.__core)&&k(t.__parts)}var ce="0.9.3";var ci={get"config.ts"(){return[u,Ot,L,Kt,Ye,f,C]},get"client.ts"(){return[Xe,at,G,F,B,P]},get"dom.ts"(){return[Yt,m,Ee,K,y,he,I,p,st,zt,qr,ct,dt,Pe,Mt,h,Y,ut,c,D,ye,S,V]},get"loader.ts"(){return[Ae,et,Ct,_t,Pn]},get"fragments.ts"(){return[Wr]},get"selling-plans.ts"(){return[R]},get"status.ts"(){return[se,$e,vt,rt]},get"cart.ts"(){return[b]},get"product.ts"(){return[ot]},get"collection.ts"(){return[qt]},get"mounting.ts"(){return[ht,xt,Ht,ue,jt,J]},get"market-codes.ts"(){return[_,U]},get"page-market.ts"(){return[Lt]},get"shopify-values.ts"(){return[pe,250]},get"lazy.ts"(){return[T]}},nc=/\.min\.js(\?|$)/,ui=typeof document>"u"?"":document.currentScript?.getAttribute("src")??"",Ve=ui?new URL(ui,document.baseURI).href:"",rc=/^(https:\/\/cdn\.jsdelivr\.net\/(gh|npm)\/@?[^/@]+\/[^/@]+)(@(latest|\d+(\.\d+)?))?\//;function oc(t){return t.replace(rc,(e,n,r)=>`${n}@${r==="gh"?"v":""}${ce}/`)}var He=new Map;function ic(){return u.partsUrl?new URL(u.partsUrl,document.baseURI).href:Ve?oc(Ve.replace(/[^/]*$/,"")):null}function ac(t,e){t.integrity=e,new URL(t.src).origin!==window.location.origin&&(t.crossOrigin="anonymous")}function sc(t,e,n,r){return new Promise((o,i)=>{let a=`${e.replace(/\/?$/,"/")}${n}`,s=document.createElement("script");s.src=a,s.async=!0,ac(s,r),s.onload=()=>{let l=Reflect.get(window,"Tether"),d=$n(l)?l.__parts[t]:void 0;if(d){o(d);return}He.delete(t);let g=$n(l)?"did not register":"can't register: window.Tether is no longer this Tether script's, another script replaced it";i(new Error(`${a} ${g}`))},s.onerror=()=>{He.delete(t),i(new Error(`Could not load ${a}, or it is not the file built with this Tether script. Host the same release's files next to the Tether script or at partsUrl.`))},document.head.appendChild(s)})}function T(t){let e=He.get(t);if(!e){let n=ic();if(n===null)return Promise.reject(new Error(`The Tether script's own location is unknown, so its ${t} part can't be found: set partsUrl.`));let r=nc.test(Ve)||!Ve?".min":"",o=`tether.${t}${r}.js`,i=si[o];if(i===void 0)return Promise.reject(new Error(`This Tether script was built without ${o}, so it can't load that part.`));e=sc(t,n,o,i),He.set(t,e)}return e}var qt=()=>`${c("collection")},${c("products")},${c("recommendations")}`;function li(t){return rt(t,"loading"),{root:t,load:()=>T("lists").then(e=>e.loadList(t)).catch(e=>{rt(t,"error",e),f(e,"lists")})}}var pi=()=>`${u.prefix}:account-hint:${u.domain}`;function di(t){re(t,"sessionStorage"),re(t,"localStorage")}function fi(){di(`${u.prefix}:account:${u.domain}`),di(`${u.prefix}:account-login:${u.domain}`)}var mi=t=>t==="in"||t==="expired"||t==="error";var uc=["account-login","account-bind","account-link","orders","order","addresses","subscriptions","profile-form","address-form"],cc=()=>[...uc.map(t=>`[${m(t)}]`),`[${m("show")}^="logged-"]`].join(",");function lc(){return!!kt(pi())}function gi(t){!u.account||!(J(t,cc()).length>0||mi(new URLSearchParams(window.location.search).get("account"))||lc())||T("account").then(n=>n.mountAccount(t)).catch(n=>{f(n,"account")})}function O(t){return(...e)=>T("account").then(n=>{let r=n[t];return r(...e)})}var hi={login:O("login"),logout:O("logout"),isLoggedIn:O("isLoggedIn"),customer:O("customer"),orders:O("orders"),order:O("order"),updateProfile:O("updateProfile"),addresses:O("addresses"),saveAddress:O("saveAddress"),deleteAddress:O("deleteAddress"),subscriptions:O("subscriptions"),subscriptionAction:O("subscriptionAction"),requestReturn:O("requestReturn"),render:O("render"),mountAccount:O("mountAccount")};var yi=()=>`data-${u.prefix}-key`,Pi=t=>t instanceof window.Element;function Ei(t){let e=t.closest(`[${yi()}]`),n=e?.getAttribute(yi());return e&&n?{line:e,id:n}:null}function je(t,e){t.catch(n=>{f(n,e)})}function dc(t,e){let n=Ei(e);if(!n?.line.closest(c("cart-lines")))return;let{line:r,id:o}=n;if(e.closest(c("line-remove"))){t.preventDefault(),r.classList.add("is-busy"),je(b.removeLine(o),"cart line");return}let i=pc(e);!i||!b.lines.some(a=>a.id===o)||(t.preventDefault(),je(b.changeQuantity(o,i),"cart line"))}function pc(t){return t.closest(c("line-plus"))?1:t.closest(c("line-minus"))?-1:0}function fc(t){let{target:e}=t;if(!Pi(e))return;if(e.closest(c("cart-open"))){t.preventDefault(),b.toggle();return}if(e.closest(c("cart-close"))){t.preventDefault(),b.close();return}let n=e.closest(c("cart-clear"));if(n){t.preventDefault(),K(n,()=>b.clear().catch(o=>{f(o,"cart clear")}));return}let r=e.closest(c("checkout"));if(r){t.preventDefault(),K(r,()=>b.checkout());return}dc(t,e)}function bi(t,e,n){t.classList.add("is-busy"),t.setAttribute("aria-busy","true"),je(e,n)}function mc(t){let{target:e}=t;if(!Pi(e))return;let n=Ei(e);n&&e instanceof window.HTMLInputElement&&e.matches(c("line","quantity"))?bi(n.line,b.updateLine(n.id,parseInt(e.value,10)||0),"cart line"):n&&e instanceof window.HTMLSelectElement&&e.matches(c("line-plan"))?bi(n.line,b.updateLine(n.id,{sellingPlanId:e.value||null}),"cart line plan"):gc(e)&&e.matches(c("cart-note"))&&je(b.setNote(e.value),"cart note")}var gc=t=>t instanceof window.HTMLInputElement||t instanceof window.HTMLTextAreaElement||t instanceof window.HTMLSelectElement;function hc(t){if(b.isOpen()){if(t.key==="Escape"){b.close();return}hn(t)}}function Si(){document.addEventListener("click",fc),document.addEventListener("change",mc),document.addEventListener("keydown",hc)}var _n=t=>t instanceof window.Element;function yc(t){let e=t.querySelector(c("discount-input"))??t.querySelector("input");return e instanceof window.HTMLInputElement?e:null}function wi(t,e,n){t.classList.toggle("is-invalid",n),n?e?.setAttribute("aria-invalid","true"):e?.removeAttribute("aria-invalid")}async function bc(t,e,n){try{await b.applyDiscount(n),wi(t,e,!1),y("discount-applied",{code:n},t),e&&(e.value="")}catch(r){wi(t,e,!0),r instanceof P&&r.code==="INVALID_DISCOUNT"?y("discount-invalid",{code:n},t):f(r,"discount")}}function Pc(t){let{target:e}=t,n=_n(e)?e.closest(c("discount-form")):null;if(!n)return;t.preventDefault();let r=yc(n),o=r?.value.trim();o&&K(n,()=>bc(n,r,o))}function Ec(t){let{target:e}=t;if(!_n(e))return;let n=e.closest(c("discount-form"));n&&(n.classList.remove("is-invalid"),e.removeAttribute("aria-invalid"))}function Sc(t){let{target:e}=t,n=_n(e)?e.closest(c("discount-remove")):null;if(!n)return;t.preventDefault();let r=n.closest(c("discount-code"))?.getAttribute(m("discount-code"));r&&b.removeDiscount(r).catch(o=>{f(o,"discount")})}function Ci(){document.addEventListener("submit",Pc,!0),document.addEventListener("input",Ec),document.addEventListener("click",Sc)}var Un=t=>T("extras").then(e=>e.addGroup(t)),Fn=t=>{f(t,"extras")};function wc(t){let{target:e}=t,n=e instanceof window.Element?e.closest(c("group-add")):null;n&&(t.preventDefault(),K(n,()=>Un(n)).catch(Fn))}function Cc(t){!u.domain||!t.key?.startsWith(`${u.prefix}:`)||T("extras").then(e=>{e.onStorage(t)}).catch(Fn)}function Tc(t){if(!ct(t,"variant-changed"))return;let{target:e}=t;e instanceof window.Element&&(!u.variantUrl&&!e.hasAttribute(m("variant-url"))||T("extras").then(n=>{n.writeVariantUrl(e,t.detail)}).catch(Fn))}function Ti(){document.addEventListener("click",wc),window.addEventListener("storage",Cc),document.addEventListener(`${u.prefix}:variant-changed`,Tc)}var Dn=null;function ki(){Dn=document.body}async function kc(t){await t.ready();let e=ai();if(!e){Dn!==document.body&&t.mount(document);return}try{await Lt(e.country,{language:e.language??null,locale:e.locale,remember:!1})}catch(n){f(n,"country")}t.mount(document)}function Ac(t){document.addEventListener("astro:page-load",()=>{kc(t).catch(e=>{f(e,"page mount")})}),document.addEventListener("astro:before-swap",()=>{Dn=null,t.unmount()})}function vc(t){let{target:e}=t;!(e instanceof window.HTMLSelectElement)||!e.matches(c("country-select"))||e.value&&Lt(e.value).catch(n=>{f(n,"country")})}function xc(){ei(),ht.forEach(t=>{t.root.getAttribute(m("state"))==="error"&&t.load()})}function Ai(t){u.astro&&Ac(t),document.addEventListener("change",vc),window.addEventListener("online",xc)}var Lc=50;function Ic(){let t=Jt("TETHER_CONFIG");return typeof t=="object"&&t!==null?Object.fromEntries(Object.entries(t)):{}}var yt=null,Vn=null,xi=null,vi=!1;function Oc(t){let e=0;return J(t,qt()).forEach(n=>{if(In.has(n))return;In.add(n),e++;let r=li(n);ht.add(r),n.addEventListener(`${u.prefix}:list-rendered`,o=>{ct(o,"list-rendered")&&qe(o.detail.container)}),On(r.load())}),e}function Mc(t){J(t,`${c("country-select")},${c("country-bind")}`).length&&T("markets").then(e=>e.renderCountrySelects(t)).catch(e=>{f(e,"markets")}),gi(t),J(t,c("search")).length&&T("search").then(e=>{e.mountSearch(t)}).catch(e=>{f(e,"search")})}function Li(t){let e=Oc(t);return J(t,c("product")).forEach(n=>{ue(n)&&e++}),Mc(t),e}function qe(t=document){if(!Ot())return 0;t===document&&ki(),jt(),Mn(t.ownerDocument??document);let e=Li(t);return De(),b.render(),L(`mounted ${e} scope(s)`,t),e}function Rc(t){let e=t.filter(r=>r.isConnected&&!t.some(o=>o!==r&&o.contains(r)));if(!e.length||!Ot())return;jt(),e.forEach(r=>{Mn(r)});let n=e.reduce((r,o)=>r+Li(o),0);De(),b.render(),L(`mounted ${n} scope(s) in ${e.length} added element(s)`)}function Ii(){b.close()}function Nc(t){let e=t?.closest(c("product"));return e?ot.get(e)??null:null}function $c(){vi||(vi=!0,Si(),Ci(),Ti(),Ai({ready:()=>yt??Promise.resolve(null),mount:qe,unmount:Ii}))}function _c(){let t=[];xi=t,Yt.forEach(e=>{document.addEventListener(`${u.prefix}:${e}`,n=>t.push(n))}),document.addEventListener("astro:page-load",e=>t.push(e)),T("analytics").then(e=>e.startAnalytics(t)).catch(e=>{f(e,"analytics")})}async function Uc(t){let e=u.country,n=t?.buyerIdentity.countryCode;if(!t||!e||!n||n===e)return t;try{return await b.setBuyerIdentity({countryCode:e},{create:!1})}catch(r){return f(r,"cart country"),t}}function Oi(t={}){return yt&&!Object.keys(t).length?yt:(dr({...Ic(),...t}),Ot()?(fi(),$c(),u.observe&&Fc(),u.analytics&&!xi&&_c(),yt=ii(t).then(()=>b.init()).then(Uc).then(e=>(y("ready",{cart:e}),Hn)),yt):(C("TETHER_CONFIG is missing domain or token. Tether is idle."),yt=Promise.resolve(null),yt))}function Fc(){if(Vn||typeof MutationObserver>"u")return;let t,e=new Set;Vn=new MutationObserver(n=>{n.forEach(r=>{r.addedNodes.forEach(o=>{o instanceof window.Element&&e.add(o)})}),clearTimeout(t),t=setTimeout(()=>{let r=[...e];e.clear(),Rc(r)},Lc)}),Vn.observe(document.body,{childList:!0,subtree:!0})}var Dc=t=>T("markets").then(e=>e.detectMarket(t??u.markets)),Vc=t=>T("lists").then(e=>e.getProducts(t)),Hc=(t,e)=>T("lists").then(n=>n.getRecommendations(t,e)),jc=()=>T("markets").then(t=>t.getLocalization()),qc=t=>T("diagnose").then(e=>e.diagnose({...t,version:ce}));function Gc(t,e){let n=`${u.prefix}:${t}`,r=o=>{ct(o,t)&&e(o.detail,o)};return document.addEventListener(n,r),()=>{document.removeEventListener(n,r)}}var Kc={VERSION:ce,init:Oi,mount:qe,unmount:Ii,get config(){return lr},get ready(){return yt??Promise.resolve(null)},query:Sr,withContext:Pr,cart:b,getProduct:et,getProducts:Vc,getRecommendations:Hc,getScope:Nc,addGroup:Un,account:hi,primeProduct:_t,normalizeProductKey:Ct,clearProductCache:Ae,formatMoney:I,imageUrl:fe,plans:dn,TetherError:P,resolveProductKey:vt,setCountry:Lt,detectMarket:Dc,getLocalization:jc,diagnose:qc,on:Gc},Qc={__core:ci,__parts:{}},Hn=Object.assign(Kc,Qc),um=Hn;function Wc(){Reflect.set(window,"Tether",Hn);let t=Jt("TETHER_CONFIG");if(!t||X(t,"autoMount")===!1||Jt("TETHER_INTEGRATION"))return;let e=()=>{Oi().then(()=>qe(document)).catch(n=>{f(n,"init")})};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",e,{once:!0}):e()}typeof window<"u"&&typeof document<"u"&&Wc();})();
|
|
2
2
|
//# sourceMappingURL=tether.min.js.map
|