@shopify/hydrogen 2023.7.13 → 2023.7.15

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.
@@ -4,10 +4,10 @@ import { redirect } from '@remix-run/server-runtime';
4
4
  import { lazy, createContext, forwardRef, useMemo, createElement, Suspense, Fragment, useState, useRef, useEffect, useContext } from 'react';
5
5
  import { useMatches, useLocation, useNavigation, Link, useNavigate, useFetcher, useFetchers } from '@remix-run/react';
6
6
  import { jsx, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
7
- import Or from 'content-security-policy-builder';
7
+ import br from 'content-security-policy-builder';
8
8
 
9
- function De(e){let t=Array.isArray(e)?e:[e],r="";for(let a of t)a!=null&&(typeof a=="object"?a.body&&typeof a.body=="string"?r+=a.body:r+=JSON.stringify(a):r+=a);return encodeURIComponent(r)}var V="public",st="private",B="no-store",be={maxAge:"max-age",staleWhileRevalidate:"stale-while-revalidate",sMaxAge:"s-maxage",staleIfError:"stale-if-error"};function P(e){let t=[];return Object.keys(e).forEach(r=>{r==="mode"?t.push(e[r]):be[r]&&t.push(`${be[r]}=${e[r]}`);}),t.join(", ")}function W(){return {mode:B}}function Ee(e){if(e?.mode&&e?.mode!==V&&e?.mode!==st)throw Error("'mode' must be either 'public' or 'private'")}function x(e){return Ee(e),{mode:V,maxAge:1,staleWhileRevalidate:9,...e}}function j(e){return Ee(e),{mode:V,maxAge:3600,staleWhileRevalidate:82800,...e}}function K(e){return e}function v(e){return String(e).includes("__proto__")?JSON.parse(e,ut):JSON.parse(e)}function ut(e,t){if(e!=="__proto__")return t}function L(e,t){return e&&t?{...e,...t}:e||x()}function J(e){return P(L(e))}async function pt(e,t){if(!e)return;let r=await e.match(t);if(!r){return}return r}async function ct(e,t,r,a){if(!e)return;let n=L(a),o=J(L(n,{maxAge:(n.maxAge||0)+(n.staleWhileRevalidate||0)})),i=J(L(n));r.headers.set("cache-control",o),r.headers.set("real-cache-control",i),r.headers.set("cache-put-date",new Date().toUTCString()),await e.put(t,r);}async function dt(e,t){e&&await e.delete(t);}function lt(e,t){let r=e.headers.get("real-cache-control"),a=0;if(r){let o=r.match(/max-age=(\d*)/);o&&o.length>1&&(a=parseFloat(o[1]));}return [(new Date().valueOf()-new Date(t).valueOf())/1e3,a]}function ft(e,t){let r=t.headers.get("cache-put-date");if(!r)return !1;let[a,n]=lt(t,r),o=a>n;return o}var N={get:pt,set:ct,delete:dt,generateDefaultCacheControlHeader:J,isStale:ft};function z(e){return `https://shopify.dev/?${e}`}function yt(e){return e||x()}async function Ue(e,t){if(!e)return;let r=z(t),a=new Request(r),n=await N.get(e,a);if(!n)return;let o=await n.text();try{return [v(o),n]}catch{return [o,n]}}async function Y(e,t,r,a){if(!e)return;let n=z(t),o=new Request(n),i=new Response(JSON.stringify(r));await N.set(e,o,i,yt(a));}function we(e,t){return N.isStale(new Request(z(e)),t)}function gt(e,t){return [e,{status:t.status,statusText:t.statusText,headers:Array.from(t.headers.entries())}]}function Me([e,t]){return [e,new Response(e,t)]}var ve=e=>!e?.errors,X=new Set;async function Z(e,t,{strategy:r=x(),cacheInstance:a,shouldCacheResult:n=()=>!0,waitUntil:o,debugInfo:i}){let u=De([...typeof e=="string"?[e]:e]),d=void 0;if(!a||!r||r.mode===B){let y=await t();return y}let p=await Ue(a,u);if(p){let[y,C]=p,h=we(u,C)?"STALE":"HIT";if(!X.has(u)&&h==="STALE"){X.add(u);let l=Promise.resolve().then(async()=>{let I=Date.now();try{let f=await t();n(f)&&(await Y(a,u,f,r),d?.("PUT",I));}catch(f){f.message&&(f.message="SWR in sub-request failed: "+f.message),console.error(f);}finally{X.delete(u);}});o?.(l);}return y}let c=await t();if(n(c)){let y=Promise.resolve().then(async()=>{await Y(a,u,c,r);});o?.(y);}return c}async function Le(e,t,{cacheInstance:r,cache:a,cacheKey:n=[e,t],shouldCacheResponse:o=()=>!0,waitUntil:i,returnType:s="json",debugInfo:u}={}){return !a&&(!t.method||t.method==="GET")&&(a=x()),Z(n,async()=>{let d=await fetch(e,t),p;try{p=await d[s]();}catch{try{p=await d.text();}catch{throw new Error(`Storefront API response code: ${d.status} (Request Id: ${d.headers.get("x-request-id")})`)}}return gt(p,d)},{cacheInstance:r,waitUntil:i,strategy:a??null,debugInfo:u,shouldCacheResult:d=>o(...Me(d))}).then(Me)}var ee="Custom-Storefront-Request-Group-ID",te="X-Shopify-Storefront-Access-Token",re="X-SDK-Variant",ae="X-SDK-Variant-Source",ne="X-SDK-Version";function Ne(){return typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():`weak-${Math.random().toString(16).substring(2)}`}var oe="2023.7.13";var ke=class extends Error{},Rt=e=>e instanceof ke,Tt=/(^|}\s)query[\s({]/im,xt=/(^|}\s)mutation[\s({]/im;function qe(e){return e.replace(/\s*#.*$/gm,"").replace(/\s+/gm," ").trim()}var At={language:"EN",country:"US"};function pa(e){let {storefrontHeaders:t,cache:r,waitUntil:a,buyerIp:n,i18n:o,requestGroupId:i,storefrontId:s,...u}=e,{getPublicTokenHeaders:p,getPrivateTokenHeaders:c,getStorefrontApiUrl:y,getShopifyDomain:C}=createStorefrontClient(u),l=(u.privateStorefrontToken?c:p)({contentType:"json",buyerIp:t?.buyerIp||n});if(l[ee]=t?.requestGroupId||i||Ne(),s&&(l[SHOPIFY_STOREFRONT_ID_HEADER]=s),(l["user-agent"]=`Hydrogen ${oe}`),t&&t.cookie){let f=getShopifyCookies(t.cookie??"");f[SHOPIFY_Y]&&(l[SHOPIFY_STOREFRONT_Y_HEADER]=f[SHOPIFY_Y]),f[SHOPIFY_S]&&(l[SHOPIFY_STOREFRONT_S_HEADER]=f[SHOPIFY_S]);}async function I({query:f,mutation:T,variables:R,cache:U,headers:O=[],storefrontApiVersion:at}){let nt=O instanceof Headers?Object.fromEntries(O.entries()):Array.isArray(O)?Object.fromEntries(O):O;f=f??T;let w={...R};o&&(!R?.country&&/\$country/.test(f)&&(w.country=o.country),!R?.language&&/\$language/.test(f)&&(w.language=o.language));let Te=y({storefrontApiVersion:at}),xe=JSON.stringify({query:f,variables:w}),M={method:"POST",headers:{...l,...nt},body:xe},ot=[Te,{method:M.method,headers:{"content-type":l["content-type"],"user-agent":l["user-agent"],[re]:l[re],[ae]:l[ae],[ne]:l[ne],[te]:l[te]},body:M.body}],[Q,Ae]=await Le(Te,M,{cacheInstance:T?void 0:r,cache:U||x(),cacheKey:ot,shouldCacheResponse:ve,waitUntil:a,debugInfo:{graphql:xe,requestId:M.headers[ee],purpose:t?.purpose}}),Oe={response:Ae,type:T?"mutation":"query",query:f,queryVariables:w,errors:void 0};if(!Ae.ok){let G;try{G=v(Q);}catch{G=[{message:Q}];}$e({...Oe,errors:G});}let{data:it,errors:Pe}=Q;return Pe?.length&&$e({...Oe,errors:Pe,ErrorConstructor:ke}),it}return {storefront:{query:(f,T)=>{if(f=qe(f),xt.test(f))throw new Error("[h2:error:storefront.query] Cannot execute mutations");let R=I({...T,query:f});return R.catch(()=>{}),R},mutate:(f,T)=>{if(f=qe(f),Tt.test(f))throw new Error("[h2:error:storefront.mutate] Cannot execute queries");let R=I({...T,mutation:f});return R.catch(()=>{}),R},cache:r,CacheNone:W,CacheLong:j,CacheShort:x,CacheCustom:K,generateCacheControlHeader:P,getPublicTokenHeaders:p,getPrivateTokenHeaders:c,getShopifyDomain:C,getApiUrl:y,isApiError:Rt,i18n:o??At}}}function $e({response:e,errors:t,type:r,query:a,queryVariables:n,ErrorConstructor:o=Error}){let i=e.headers.get("x-request-id"),s=(typeof t=="string"?t:t?.map?.(u=>u.message).join(`
10
- `))||`API response error: ${e.status}`;throw new o(`[h2:error:storefront.${r}] `+s+(i?` - Request ID: ${i}`:""),{cause:JSON.stringify({errors:t,requestId:i})})}function He(e,t){let r=e.headers?.get?.(t)??e.headers?.[t];return typeof r=="string"?r:null}function Qe(e){return e?{requestId:He(e,"request-id"),purpose:He(e,"purpose")}:{}}function ga({cache:e,waitUntil:t,request:r}){return function(n,o,i){return Z(n,i,{strategy:o,cacheInstance:e,waitUntil:t,debugInfo:Qe(r)})}}var ie=class{#e;constructor(){this.#e=new Map;}add(t){throw new Error("Method not implemented. Use `put` instead.")}addAll(t){throw new Error("Method not implemented. Use `put` instead.")}matchAll(t,r){throw new Error("Method not implemented. Use `match` instead.")}async put(t,r){if(t.method!=="GET")throw new TypeError("Cannot cache response to non-GET request.");if(r.status===206)throw new TypeError("Cannot cache response to a range request (206 Partial Content).");if(r.headers.get("vary")?.includes("*"))throw new TypeError("Cannot cache response with 'Vary: *' header.");this.#e.set(t.url,{body:new Uint8Array(await r.arrayBuffer()),status:r.status,headers:[...r.headers],timestamp:Date.now()});}async match(t){if(t.method!=="GET")return;let r=this.#e.get(t.url);if(!r)return;let{body:a,timestamp:n,...o}=r,i=new Headers(o.headers),s=i.get("cache-control")||i.get("real-cache-control")||"",u=parseInt(s.match(/max-age=(\d+)/)?.[1]||"0",10),d=parseInt(s.match(/stale-while-revalidate=(\d+)/)?.[1]||"0",10),p=(Date.now()-n)/1e3;if(p>u+d){this.#e.delete(t.url);return}let y=p>u;return i.set("cache",y?"STALE":"HIT"),i.set("date",new Date(n).toUTCString()),new Response(a,{status:o.status??200,headers:i})}async delete(t){return this.#e.has(t.url)?(this.#e.delete(t.url),!0):!1}keys(t){let r=[];for(let a of this.#e.keys())(!t||t.url===a)&&r.push(new Request(a));return Promise.resolve(r)}};async function Ot(e){let{storefront:t,request:r,noAdminRedirect:a,response:n=new Response("Not Found",{status:404})}=e,{pathname:o,search:i}=new URL(r.url),s=o+i;if(o==="/admin"&&!a)return redirect(`${t.getShopifyDomain()}/admin`);try{let{urlRedirects:u}=await t.query(Dt,{variables:{query:"path:"+s}}),d=u?.edges?.[0]?.node?.target;if(d)return new Response(null,{status:301,headers:{location:d}});let p=new URLSearchParams(i),c=p.get("return_to")||p.get("redirect");if(c){if(Pt(c))return redirect(c);console.warn(`Cross-domain redirects are not supported. Tried to redirect from ${s} to ${c}`);}}catch(u){console.error(`Failed to fetch redirects from Storefront API for route ${s}`,u);}return n}function Pt(e){return !/^(([a-z+-]+:)?\/\/|[a-z+-]+:)/i.test(e.trim())}var Dt=`#graphql
9
+ function De(e){let t=Array.isArray(e)?e:[e],r="";for(let a of t)a!=null&&(typeof a=="object"?a.body&&typeof a.body=="string"?r+=a.body:r+=JSON.stringify(a):r+=a);return encodeURIComponent(r)}var V="public",ut="private",B="no-store",be={maxAge:"max-age",staleWhileRevalidate:"stale-while-revalidate",sMaxAge:"s-maxage",staleIfError:"stale-if-error"};function P(e){let t=[];return Object.keys(e).forEach(r=>{r==="mode"?t.push(e[r]):be[r]&&t.push(`${be[r]}=${e[r]}`);}),t.join(", ")}function W(){return {mode:B}}function Ee(e){if(e?.mode&&e?.mode!==V&&e?.mode!==ut)throw Error("'mode' must be either 'public' or 'private'")}function x(e){return Ee(e),{mode:V,maxAge:1,staleWhileRevalidate:9,...e}}function j(e){return Ee(e),{mode:V,maxAge:3600,staleWhileRevalidate:82800,...e}}function K(e){return e}function v(e){return String(e).includes("__proto__")?JSON.parse(e,pt):JSON.parse(e)}function pt(e,t){if(e!=="__proto__")return t}function L(e,t){return e&&t?{...e,...t}:e||x()}function J(e){return P(L(e))}async function ct(e,t){if(!e)return;let r=await e.match(t);if(!r){return}return r}async function dt(e,t,r,a){if(!e)return;let n=L(a),o=J(L(n,{maxAge:(n.maxAge||0)+(n.staleWhileRevalidate||0)})),s=J(L(n));r.headers.set("cache-control",o),r.headers.set("real-cache-control",s),r.headers.set("cache-put-date",new Date().toUTCString()),await e.put(t,r);}async function lt(e,t){e&&await e.delete(t);}function ft(e,t){let r=e.headers.get("real-cache-control"),a=0;if(r){let o=r.match(/max-age=(\d*)/);o&&o.length>1&&(a=parseFloat(o[1]));}return [(new Date().valueOf()-new Date(t).valueOf())/1e3,a]}function yt(e,t){let r=t.headers.get("cache-put-date");if(!r)return !1;let[a,n]=ft(t,r),o=a>n;return o}var N={get:ct,set:dt,delete:lt,generateDefaultCacheControlHeader:J,isStale:yt};function z(e){return `https://shopify.dev/?${e}`}function gt(e){return e||x()}async function Ue(e,t){if(!e)return;let r=z(t),a=new Request(r),n=await N.get(e,a);if(!n)return;let o=await n.text();try{return [v(o),n]}catch{return [o,n]}}async function X(e,t,r,a){if(!e)return;let n=z(t),o=new Request(n),s=new Response(JSON.stringify(r));await N.set(e,o,s,gt(a));}function we(e,t){return N.isStale(new Request(z(e)),t)}function mt(e,t){return [e,{status:t.status,statusText:t.statusText,headers:Array.from(t.headers.entries())}]}function Me([e,t]){return [e,new Response(e,t)]}var ve=(e,t)=>!e?.errors&&t.status<400,Y=new Set;async function Z(e,t,{strategy:r=x(),cacheInstance:a,shouldCacheResult:n=()=>!0,waitUntil:o,debugInfo:s}){let u=De([...typeof e=="string"?[e]:e]),d=void 0;if(!a||!r||r.mode===B){let y=await t();return y}let p=await Ue(a,u);if(p){let[y,C]=p,h=we(u,C)?"STALE":"HIT";if(!Y.has(u)&&h==="STALE"){Y.add(u);let l=Promise.resolve().then(async()=>{let I=Date.now();try{let f=await t();n(f)&&(await X(a,u,f,r),d?.("PUT",I));}catch(f){f.message&&(f.message="SWR in sub-request failed: "+f.message),console.error(f);}finally{Y.delete(u);}});o?.(l);}return y}let c=await t();if(n(c)){let y=Promise.resolve().then(async()=>{await X(a,u,c,r);});o?.(y);}return c}async function Le(e,t,{cacheInstance:r,cache:a,cacheKey:n=[e,t],shouldCacheResponse:o=()=>!0,waitUntil:s,returnType:i="json",debugInfo:u}={}){return !a&&(!t.method||t.method==="GET")&&(a=x()),Z(n,async()=>{let d=await fetch(e,t),p;try{p=await d[i]();}catch{try{p=await d.text();}catch{throw new Error(`Storefront API response code: ${d.status} (Request Id: ${d.headers.get("x-request-id")})`)}}return mt(p,d)},{cacheInstance:r,waitUntil:s,strategy:a??null,debugInfo:u,shouldCacheResult:d=>o(...Me(d))}).then(Me)}var ee="Custom-Storefront-Request-Group-ID",te="X-Shopify-Storefront-Access-Token",re="X-SDK-Variant",ae="X-SDK-Variant-Source",ne="X-SDK-Version";function Ne(){return typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():`weak-${Math.random().toString(16).substring(2)}`}var oe="2023.7.15";var ke=class extends Error{},Tt=e=>e instanceof ke,xt=/(^|}\s)query[\s({]/im,At=/(^|}\s)mutation[\s({]/im;function qe(e){return e.replace(/\s*#.*$/gm,"").replace(/\s+/gm," ").trim()}var Ot={language:"EN",country:"US"};function la(e){let {storefrontHeaders:t,cache:r,waitUntil:a,buyerIp:n,i18n:o,requestGroupId:s,storefrontId:i,...u}=e,{getPublicTokenHeaders:p,getPrivateTokenHeaders:c,getStorefrontApiUrl:y,getShopifyDomain:C}=createStorefrontClient(u),l=(u.privateStorefrontToken?c:p)({contentType:"json",buyerIp:t?.buyerIp||n});if(l[ee]=t?.requestGroupId||s||Ne(),i&&(l[SHOPIFY_STOREFRONT_ID_HEADER]=i),(l["user-agent"]=`Hydrogen ${oe}`),t&&t.cookie){let f=getShopifyCookies(t.cookie??"");f[SHOPIFY_Y]&&(l[SHOPIFY_STOREFRONT_Y_HEADER]=f[SHOPIFY_Y]),f[SHOPIFY_S]&&(l[SHOPIFY_STOREFRONT_S_HEADER]=f[SHOPIFY_S]);}async function I({query:f,mutation:T,variables:R,cache:U,headers:O=[],storefrontApiVersion:nt}){let ot=O instanceof Headers?Object.fromEntries(O.entries()):Array.isArray(O)?Object.fromEntries(O):O;f=f??T;let w={...R};o&&(!R?.country&&/\$country/.test(f)&&(w.country=o.country),!R?.language&&/\$language/.test(f)&&(w.language=o.language));let Te=y({storefrontApiVersion:nt}),xe=JSON.stringify({query:f,variables:w}),M={method:"POST",headers:{...l,...ot},body:xe},st=[Te,{method:M.method,headers:{"content-type":l["content-type"],"user-agent":l["user-agent"],[re]:l[re],[ae]:l[ae],[ne]:l[ne],[te]:l[te]},body:M.body}],[Q,Ae]=await Le(Te,M,{cacheInstance:T?void 0:r,cache:U||x(),cacheKey:st,shouldCacheResponse:ve,waitUntil:a,debugInfo:{graphql:xe,requestId:M.headers[ee],purpose:t?.purpose}}),Oe={response:Ae,type:T?"mutation":"query",query:f,queryVariables:w,errors:void 0};if(!Ae.ok){let G;try{G=v(Q);}catch{G=[{message:Q}];}$e({...Oe,errors:G});}let{data:it,errors:Pe}=Q;return Pe?.length&&$e({...Oe,errors:Pe,ErrorConstructor:ke}),it}return {storefront:{query:(f,T)=>{if(f=qe(f),At.test(f))throw new Error("[h2:error:storefront.query] Cannot execute mutations");let R=I({...T,query:f});return R.catch(()=>{}),R},mutate:(f,T)=>{if(f=qe(f),xt.test(f))throw new Error("[h2:error:storefront.mutate] Cannot execute queries");let R=I({...T,mutation:f});return R.catch(()=>{}),R},cache:r,CacheNone:W,CacheLong:j,CacheShort:x,CacheCustom:K,generateCacheControlHeader:P,getPublicTokenHeaders:p,getPrivateTokenHeaders:c,getShopifyDomain:C,getApiUrl:y,isApiError:Tt,i18n:o??Ot}}}function $e({response:e,errors:t,type:r,query:a,queryVariables:n,ErrorConstructor:o=Error}){let s=e.headers.get("x-request-id"),i=(typeof t=="string"?t:t?.map?.(u=>u.message).join(`
10
+ `))||`API response error: ${e.status}`;throw new o(`[h2:error:storefront.${r}] `+i+(s?` - Request ID: ${s}`:""),{cause:JSON.stringify({errors:t,requestId:s})})}function He(e,t){let r=e.headers?.get?.(t)??e.headers?.[t];return typeof r=="string"?r:null}function Qe(e){return e?{requestId:He(e,"request-id"),purpose:He(e,"purpose")}:{}}function ha({cache:e,waitUntil:t,request:r}){return function(n,o,s){return Z(n,s,{strategy:o,cacheInstance:e,waitUntil:t,debugInfo:Qe(r)})}}var se=class{#e;constructor(){this.#e=new Map;}add(t){throw new Error("Method not implemented. Use `put` instead.")}addAll(t){throw new Error("Method not implemented. Use `put` instead.")}matchAll(t,r){throw new Error("Method not implemented. Use `match` instead.")}async put(t,r){if(t.method!=="GET")throw new TypeError("Cannot cache response to non-GET request.");if(r.status===206)throw new TypeError("Cannot cache response to a range request (206 Partial Content).");if(r.headers.get("vary")?.includes("*"))throw new TypeError("Cannot cache response with 'Vary: *' header.");this.#e.set(t.url,{body:new Uint8Array(await r.arrayBuffer()),status:r.status,headers:[...r.headers],timestamp:Date.now()});}async match(t){if(t.method!=="GET")return;let r=this.#e.get(t.url);if(!r)return;let{body:a,timestamp:n,...o}=r,s=new Headers(o.headers),i=s.get("cache-control")||s.get("real-cache-control")||"",u=parseInt(i.match(/max-age=(\d+)/)?.[1]||"0",10),d=parseInt(i.match(/stale-while-revalidate=(\d+)/)?.[1]||"0",10),p=(Date.now()-n)/1e3;if(p>u+d){this.#e.delete(t.url);return}let y=p>u;return s.set("cache",y?"STALE":"HIT"),s.set("date",new Date(n).toUTCString()),new Response(a,{status:o.status??200,headers:s})}async delete(t){return this.#e.has(t.url)?(this.#e.delete(t.url),!0):!1}keys(t){let r=[];for(let a of this.#e.keys())(!t||t.url===a)&&r.push(new Request(a));return Promise.resolve(r)}};async function Pt(e){let{storefront:t,request:r,noAdminRedirect:a,response:n=new Response("Not Found",{status:404})}=e,{pathname:o,search:s}=new URL(r.url),i=o+s;if(o==="/admin"&&!a)return redirect(`${t.getShopifyDomain()}/admin`);try{let{urlRedirects:u}=await t.query(bt,{variables:{query:"path:"+i}}),d=u?.edges?.[0]?.node?.target;if(d)return new Response(null,{status:301,headers:{location:d}});let p=new URLSearchParams(s),c=p.get("return_to")||p.get("redirect");if(c){if(Dt(c))return redirect(c);console.warn(`Cross-domain redirects are not supported. Tried to redirect from ${i} to ${c}`);}}catch(u){console.error(`Failed to fetch redirects from Storefront API for route ${i}`,u);}return n}function Dt(e){return !/^(([a-z+-]+:)?\/\/|[a-z+-]+:)/i.test(e.trim())}var bt=`#graphql
11
11
  query redirects($query: String) {
12
12
  urlRedirects(first: 1, query: $query) {
13
13
  edges {
@@ -17,7 +17,7 @@ function De(e){let t=Array.isArray(e)?e:[e],r="";for(let a of t)a!=null&&(typeof
17
17
  }
18
18
  }
19
19
  }
20
- `;var bt=async function({context:t}){let r=t?.storefront;if(!r)throw new Error("GraphiQL: Hydrogen's storefront client must be injected in the loader context.");let a=r.getApiUrl(),n=r.getPublicTokenHeaders()["X-Shopify-Storefront-Access-Token"],o="https://avatars.githubusercontent.com/u/12972006?s=48&v=4";return new Response(`
20
+ `;var Et=async function({context:t}){let r=t?.storefront;if(!r)throw new Error("GraphiQL: Hydrogen's storefront client must be injected in the loader context.");let a=r.getApiUrl(),n=r.getPublicTokenHeaders()["X-Shopify-Storefront-Access-Token"],o="https://avatars.githubusercontent.com/u/12972006?s=48&v=4";return new Response(`
21
21
  <!DOCTYPE html>
22
22
  <html lang="en">
23
23
  <head>
@@ -85,7 +85,7 @@ function De(e){let t=Array.isArray(e)?e:[e],r="";for(let a of t)a!=null&&(typeof
85
85
  </script>
86
86
  </body>
87
87
  </html>
88
- `,{status:200,headers:{"content-type":"text/html"}})};var A="Error in SEO input: ",F={title:{validate:e=>{if(typeof e!="string")throw new Error(A.concat("`title` should be a string"));if(typeof e=="string"&&e.length>120)throw new Error(A.concat("`title` should not be longer than 120 characters"));return e}},description:{validate:e=>{if(typeof e!="string")throw new Error(A.concat("`description` should be a string"));if(typeof e=="string"&&e.length>155)throw new Error(A.concat("`description` should not be longer than 155 characters"));return e}},url:{validate:e=>{if(typeof e!="string")throw new Error(A.concat("`url` should be a string"));if(typeof e=="string"&&!e.startsWith("http"))throw new Error(A.concat("`url` should be a valid URL"));return e}},handle:{validate:e=>{if(typeof e!="string")throw new Error(A.concat("`handle` should be a string"));if(typeof e=="string"&&!e.startsWith("@"))throw new Error(A.concat("`handle` should start with `@`"));return e}}};function Ve(e){let t=[];for(let r of Object.keys(e))switch(r){case"title":{let a=_(F.title,e.title),n=Et(e?.titleTemplate,a);if(!n)break;t.push(S("title",{title:n}),S("meta",{property:"og:title",content:n}),S("meta",{name:"twitter:title",content:n}));break}case"description":{let a=_(F.description,e.description);if(!a)break;t.push(S("meta",{name:"description",content:a}),S("meta",{property:"og:description",content:a}),S("meta",{name:"twitter:description",content:a}));break}case"url":{let a=_(F.url,e.url);if(!a)break;t.push(S("link",{rel:"canonical",href:a}),S("meta",{property:"og:url",content:a}));break}case"handle":{let a=_(F.handle,e.handle);if(!a)break;t.push(S("meta",{name:"twitter:site",content:a}),S("meta",{name:"twitter:creator",content:a}));break}case"media":{let a,n=ue(e.media);for(let o of n)if(typeof o=="string"&&t.push(S("meta",{name:"og:image",content:o})),o&&typeof o=="object"){let i=o.type||"image",s=o?{url:o?.url,secure_url:o?.url,type:Ut(o.url),width:o?.width,height:o?.height,alt:o?.altText}:{};for(let u of Object.keys(s))s[u]&&(a=s[u],t.push(S("meta",{property:`og:${i}:${u}`,content:a},s.url)));}break}case"jsonLd":{let a=ue(e.jsonLd),n=0;for(let o of a){if(typeof o!="object")continue;let i=S("script",{type:"application/ld+json",children:JSON.stringify(o)},`json-ld-${o?.["@type"]||o?.name||n++}`);t.push(i);}break}case"alternates":{let a=ue(e.alternates);for(let n of a){if(!n)continue;let{language:o,url:i,default:s}=n,u=o?`${o}${s?"-default":""}`:void 0;t.push(S("link",{rel:"alternate",hrefLang:u,href:i}));}break}case"robots":{if(!e.robots)break;let{maxImagePreview:a,maxSnippet:n,maxVideoPreview:o,noArchive:i,noFollow:s,noImageIndex:u,noIndex:d,noSnippet:p,noTranslate:c,unavailableAfter:y}=e.robots,C=[i&&"noarchive",u&&"noimageindex",p&&"nosnippet",c&&"notranslate",a&&`max-image-preview:${a}`,n&&`max-snippet:${n}`,o&&`max-video-preview:${o}`,y&&`unavailable_after:${y}`],h=(d?"noindex":"index")+","+(s?"nofollow":"follow");for(let l of C)l&&(h+=`,${l}`);t.push(S("meta",{name:"robots",content:h}));break}}return t.flat().sort((r,a)=>r.key.localeCompare(a.key))}function S(e,t,r){let a={tag:e,props:{},key:""};return e==="title"?(a.children=t.title,a.key=se(a),a):e==="script"?(a.children=typeof t.children=="string"?t.children:"",a.key=se(a,r),delete t.children,a.props=t,a):(a.props=t,Object.keys(a.props).forEach(n=>!a.props[n]&&delete a.props[n]),a.key=se(a,r),a)}function se(e,t){let{tag:r,props:a}=e;if(r==="title")return "0-title";if(r==="meta"){let n=a.content===t&&typeof a.property=="string"&&!a.property.endsWith("secure_url")&&"0";return [r,...[t,n],a.property||a.name].filter(i=>i).join("-")}return r==="link"?[r,a.rel,a.hrefLang||a.media].filter(o=>o).join("-").replace(/\s+/g,"-"):r==="script"?`${r}-${t}`:`${r}-${a.type}`}function Et(e,t){if(t)return e?typeof e=="function"?e(t):e.replace("%s",t??""):t}function Ut(e){switch(e&&e.split(".").pop()){case"svg":return "image/svg+xml";case"png":return "image/png";case"gif":return "image/gif";case"swf":return "application/x-shockwave-flash";case"mp3":return "audio/mpeg";case"jpg":case"jpeg":default:return "image/jpeg"}}function ue(e){return Array.isArray(e)?e:[e]}function _(e,t){try{return e.validate(t)}catch(r){return console.warn(r.message),t}}var Ft=lazy(()=>import('./log-seo-tags-TY72EQWZ.js'));function _t({debug:e}){let t=useMatches(),r=useLocation(),a=useMemo(()=>t.flatMap(i=>{let{handle:s,...u}=i,d={...u,...r},p=s?.seo,c=u?.data?.seo;return !p&&!c?[]:p?q(s.seo,d):[c]}).reduce((i,s)=>{Object.keys(s).forEach(d=>!s[d]&&delete s[d]);let{jsonLd:u}=s;return u?i?.jsonLd?Array.isArray(u)?{...i,...s,jsonLd:[...i.jsonLd,...u]}:{...i,...s,jsonLd:[...i.jsonLd,u]}:{...i,...s,jsonLd:[u]}:{...i,...s}},{}),[t,r]),{html:n,loggerMarkup:o}=useMemo(()=>{let i=Ve(a),s=i.map(d=>d.tag==="script"?createElement(d.tag,{...d.props,key:d.key,dangerouslySetInnerHTML:{__html:d.children}}):createElement(d.tag,{...d.props,key:d.key},d.children)),u=createElement(Suspense,{fallback:null},createElement(Ft,{headTags:i}));return {html:s,loggerMarkup:u}},[a]);return createElement(Fragment,null,n,e&&o)}function q(e,...t){if(e instanceof Function)return q(e(...t),...t);let r={};return Array.isArray(e)?(r=e.reduce((a,n)=>[...a,q(n)],[]),r):e instanceof Object?(Object.entries(e).forEach(([n,o])=>{r[n]=q(o,...t);}),r):e}function Gt({connection:e,children:t=()=>(console.warn("<Pagination> requires children to work properly"),null)}){let a=useNavigation().state==="loading",{endCursor:n,hasNextPage:o,hasPreviousPage:i,nextPageUrl:s,nodes:u,previousPageUrl:d,startCursor:p}=Vt(e),c=useMemo(()=>({pageInfo:{endCursor:n,hasPreviousPage:i,startCursor:p},nodes:u}),[n,i,p,u]),y=useMemo(()=>forwardRef(function(l,I){return o?createElement(Link,{preventScrollReset:!0,...l,to:s,state:c,replace:!0,ref:I}):null}),[o,s,c]),C=useMemo(()=>forwardRef(function(l,I){return i?createElement(Link,{preventScrollReset:!0,...l,to:d,state:c,replace:!0,ref:I}):null}),[i,d,c]);return t({state:c,hasNextPage:o,hasPreviousPage:i,isLoading:a,nextPageUrl:s,nodes:u,previousPageUrl:d,NextLink:y,PreviousLink:C})}function k(e){let t=new URLSearchParams(e);return t.delete("cursor"),t.delete("direction"),t.toString()}function b(e){throw new Error(`The Pagination component requires ${"`"+e+"`"} to be a part of your query. See the guide on how to setup your query to include ${"`"+e+"`"}: https://shopify.dev/docs/custom-storefronts/hydrogen/data-fetching/pagination#setup-the-paginated-query`)}function Vt(e){e.pageInfo||b("pageInfo"),typeof e.pageInfo.startCursor>"u"&&b("pageInfo.startCursor"),typeof e.pageInfo.endCursor>"u"&&b("pageInfo.endCursor"),typeof e.pageInfo.hasNextPage>"u"&&b("pageInfo.hasNextPage"),typeof e.pageInfo.hasPreviousPage>"u"&&b("pageInfo.hasPreviousPage");let t=useNavigate(),{state:r,search:a,pathname:n}=useLocation(),s=new URLSearchParams(a).get("direction")==="previous",[u,d]=useState(flattenConnection(e)),[p,c]=useState({startCursor:e.pageInfo.startCursor,endCursor:e.pageInfo.endCursor,hasPreviousPage:e.pageInfo.hasPreviousPage,hasNextPage:e.pageInfo.hasNextPage}),y=useRef({params:k(a),pathname:n});useEffect(()=>{if(k(a)!==y.current.params||n!==y.current.pathname)y.current={pathname:n,params:k(a)},t(`${n}?${k(a)}`,{replace:!0,preventScrollReset:!0,state:{nodes:void 0,pageInfo:void 0}});else if(r?.nodes){if(d(s?[...flattenConnection(e),...r.nodes]:[...r.nodes,...flattenConnection(e)]),r?.pageInfo){let l=r?.pageInfo?.startCursor===void 0?e.pageInfo.startCursor:r.pageInfo.startCursor,I=r?.pageInfo?.endCursor===void 0?e.pageInfo.endCursor:r.pageInfo.endCursor,f=r?.pageInfo?.hasPreviousPage===void 0?e.pageInfo.hasPreviousPage:r.pageInfo.hasPreviousPage,T=r?.pageInfo?.hasNextPage===void 0?e.pageInfo.hasNextPage:r.pageInfo.hasNextPage;s?(l=e.pageInfo.startCursor,f=e.pageInfo.hasPreviousPage):(I=e.pageInfo.endCursor,T=e.pageInfo.hasNextPage),c({startCursor:l,endCursor:I,hasPreviousPage:f,hasNextPage:T});}}else d(flattenConnection(e)),c({startCursor:e.pageInfo.startCursor,endCursor:e.pageInfo.endCursor,hasPreviousPage:e.pageInfo.hasPreviousPage,hasNextPage:e.pageInfo.hasNextPage});},[r,e,s,a,t,n]);let C=useMemo(()=>{let l=new URLSearchParams(a);return l.set("direction","previous"),p.startCursor&&l.set("cursor",p.startCursor),`?${l.toString()}`},[a,p.startCursor]),h=useMemo(()=>{let l=new URLSearchParams(a);return l.set("direction","next"),p.endCursor&&l.set("cursor",p.endCursor),`?${l.toString()}`},[a,p.endCursor]);return {...p,previousPageUrl:C,nextPageUrl:h,nodes:u}}function Bt(e,t={pageBy:20}){if(typeof e?.url>"u")throw new Error("getPaginationVariables must be called with the Request object passed to your loader function");let{pageBy:r}=t,a=new URLSearchParams(new URL(e.url).search),n=a.get("cursor")??void 0;return (a.get("direction")==="previous"?"previous":"next")==="previous"?{last:r,startCursor:n??null}:{first:r,endCursor:n??null}}var ze="cartFormInput";function H({children:e,action:t,inputs:r,route:a}){let n=useFetcher();return jsxs(n.Form,{action:a||"",method:"post",children:[(t||r)&&jsx("input",{type:"hidden",name:ze,value:JSON.stringify({action:t,inputs:r})}),typeof e=="function"?e(n):e]})}H.INPUT_NAME=ze;H.ACTIONS={AttributesUpdateInput:"AttributesUpdateInput",BuyerIdentityUpdate:"BuyerIdentityUpdate",Create:"Create",DiscountCodesUpdate:"DiscountCodesUpdate",LinesAdd:"LinesAdd",LinesRemove:"LinesRemove",LinesUpdate:"LinesUpdate",NoteUpdate:"NoteUpdate",SelectedDeliveryOptionsUpdate:"SelectedDeliveryOptionsUpdate",MetafieldsSet:"MetafieldsSet",MetafieldDelete:"MetafieldDelete"};function jt(e){let t={};for(let i of e.entries()){let s=i[0],u=e.getAll(s);t[s]=u.length>1?u:i[1];}let{cartFormInput:r,...a}=t,{action:n,inputs:o}=r?JSON.parse(String(r)):{};return {action:n,inputs:{...o,...a}}}H.getFormInput=jt;var g=`#graphql
88
+ `,{status:200,headers:{"content-type":"text/html"}})};var Ut={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},wt=/[&><\u2028\u2029]/g;function Ve(e){return e.replace(wt,t=>Ut[t])}var A="Error in SEO input: ",F={title:{validate:e=>{if(typeof e!="string")throw new Error(A.concat("`title` should be a string"));if(typeof e=="string"&&e.length>120)throw new Error(A.concat("`title` should not be longer than 120 characters"));return e}},description:{validate:e=>{if(typeof e!="string")throw new Error(A.concat("`description` should be a string"));if(typeof e=="string"&&e.length>155)throw new Error(A.concat("`description` should not be longer than 155 characters"));return e}},url:{validate:e=>{if(typeof e!="string")throw new Error(A.concat("`url` should be a string"));if(typeof e=="string"&&!e.startsWith("http"))throw new Error(A.concat("`url` should be a valid URL"));return e}},handle:{validate:e=>{if(typeof e!="string")throw new Error(A.concat("`handle` should be a string"));if(typeof e=="string"&&!e.startsWith("@"))throw new Error(A.concat("`handle` should start with `@`"));return e}}};function Be(e){let t=[];for(let r of Object.keys(e))switch(r){case"title":{let a=_(F.title,e.title),n=Mt(e?.titleTemplate,a);if(!n)break;t.push(S("title",{title:n}),S("meta",{property:"og:title",content:n}),S("meta",{name:"twitter:title",content:n}));break}case"description":{let a=_(F.description,e.description);if(!a)break;t.push(S("meta",{name:"description",content:a}),S("meta",{property:"og:description",content:a}),S("meta",{name:"twitter:description",content:a}));break}case"url":{let a=_(F.url,e.url);if(!a)break;t.push(S("link",{rel:"canonical",href:a}),S("meta",{property:"og:url",content:a}));break}case"handle":{let a=_(F.handle,e.handle);if(!a)break;t.push(S("meta",{name:"twitter:site",content:a}),S("meta",{name:"twitter:creator",content:a}));break}case"media":{let a,n=ue(e.media);for(let o of n)if(typeof o=="string"&&t.push(S("meta",{name:"og:image",content:o})),o&&typeof o=="object"){let s=o.type||"image",i=o?{url:o?.url,secure_url:o?.url,type:vt(o.url),width:o?.width,height:o?.height,alt:o?.altText}:{};for(let u of Object.keys(i))i[u]&&(a=i[u],t.push(S("meta",{property:`og:${s}:${u}`,content:a},i.url)));}break}case"jsonLd":{let a=ue(e.jsonLd),n=0;for(let o of a){if(typeof o!="object")continue;let s=S("script",{type:"application/ld+json",children:JSON.stringify(o,(i,u)=>typeof u=="string"?Ve(u):u)},`json-ld-${o?.["@type"]||o?.name||n++}`);t.push(s);}break}case"alternates":{let a=ue(e.alternates);for(let n of a){if(!n)continue;let{language:o,url:s,default:i}=n,u=o?`${o}${i?"-default":""}`:void 0;t.push(S("link",{rel:"alternate",hrefLang:u,href:s}));}break}case"robots":{if(!e.robots)break;let{maxImagePreview:a,maxSnippet:n,maxVideoPreview:o,noArchive:s,noFollow:i,noImageIndex:u,noIndex:d,noSnippet:p,noTranslate:c,unavailableAfter:y}=e.robots,C=[s&&"noarchive",u&&"noimageindex",p&&"nosnippet",c&&"notranslate",a&&`max-image-preview:${a}`,n&&`max-snippet:${n}`,o&&`max-video-preview:${o}`,y&&`unavailable_after:${y}`],h=(d?"noindex":"index")+","+(i?"nofollow":"follow");for(let l of C)l&&(h+=`,${l}`);t.push(S("meta",{name:"robots",content:h}));break}}return t.flat().sort((r,a)=>r.key.localeCompare(a.key))}function S(e,t,r){let a={tag:e,props:{},key:""};return e==="title"?(a.children=t.title,a.key=ie(a),a):e==="script"?(a.children=typeof t.children=="string"?t.children:"",a.key=ie(a,r),delete t.children,a.props=t,a):(a.props=t,Object.keys(a.props).forEach(n=>!a.props[n]&&delete a.props[n]),a.key=ie(a,r),a)}function ie(e,t){let{tag:r,props:a}=e;if(r==="title")return "0-title";if(r==="meta"){let n=a.content===t&&typeof a.property=="string"&&!a.property.endsWith("secure_url")&&"0";return [r,...[t,n],a.property||a.name].filter(s=>s).join("-")}return r==="link"?[r,a.rel,a.hrefLang||a.media].filter(o=>o).join("-").replace(/\s+/g,"-"):r==="script"?`${r}-${t}`:`${r}-${a.type}`}function Mt(e,t){if(t)return e?typeof e=="function"?e(t):e.replace("%s",t??""):t}function vt(e){switch(e&&e.split(".").pop()){case"svg":return "image/svg+xml";case"png":return "image/png";case"gif":return "image/gif";case"swf":return "application/x-shockwave-flash";case"mp3":return "audio/mpeg";case"jpg":case"jpeg":default:return "image/jpeg"}}function ue(e){return Array.isArray(e)?e:[e]}function _(e,t){try{return e.validate(t)}catch(r){return console.warn(r.message),t}}var $t=lazy(()=>import('./log-seo-tags-TY72EQWZ.js'));function kt({debug:e}){let t=useMatches(),r=useLocation(),a=useMemo(()=>t.flatMap(s=>{let{handle:i,...u}=s,d={...u,...r},p=i?.seo,c=u?.data?.seo;return !p&&!c?[]:p?q(i.seo,d):[c]}).reduce((s,i)=>{Object.keys(i).forEach(d=>!i[d]&&delete i[d]);let{jsonLd:u}=i;return u?s?.jsonLd?Array.isArray(u)?{...s,...i,jsonLd:[...s.jsonLd,...u]}:{...s,...i,jsonLd:[...s.jsonLd,u]}:{...s,...i,jsonLd:[u]}:{...s,...i}},{}),[t,r]),{html:n,loggerMarkup:o}=useMemo(()=>{let s=Be(a),i=s.map(d=>d.tag==="script"?createElement(d.tag,{...d.props,key:d.key,dangerouslySetInnerHTML:{__html:d.children}}):createElement(d.tag,{...d.props,key:d.key},d.children)),u=createElement(Suspense,{fallback:null},createElement($t,{headTags:s}));return {html:i,loggerMarkup:u}},[a]);return createElement(Fragment,null,n,e&&o)}function q(e,...t){if(e instanceof Function)return q(e(...t),...t);let r={};return Array.isArray(e)?(r=e.reduce((a,n)=>[...a,q(n)],[]),r):e instanceof Object?(Object.entries(e).forEach(([n,o])=>{r[n]=q(o,...t);}),r):e}function Wt({connection:e,children:t=()=>(console.warn("<Pagination> requires children to work properly"),null)}){let a=useNavigation().state==="loading",{endCursor:n,hasNextPage:o,hasPreviousPage:s,nextPageUrl:i,nodes:u,previousPageUrl:d,startCursor:p}=jt(e),c=useMemo(()=>({pageInfo:{endCursor:n,hasPreviousPage:s,startCursor:p},nodes:u}),[n,s,p,u]),y=useMemo(()=>forwardRef(function(l,I){return o?createElement(Link,{preventScrollReset:!0,...l,to:i,state:c,replace:!0,ref:I}):null}),[o,i,c]),C=useMemo(()=>forwardRef(function(l,I){return s?createElement(Link,{preventScrollReset:!0,...l,to:d,state:c,replace:!0,ref:I}):null}),[s,d,c]);return t({state:c,hasNextPage:o,hasPreviousPage:s,isLoading:a,nextPageUrl:i,nodes:u,previousPageUrl:d,NextLink:y,PreviousLink:C})}function k(e){let t=new URLSearchParams(e);return t.delete("cursor"),t.delete("direction"),t.toString()}function b(e){throw new Error(`The Pagination component requires ${"`"+e+"`"} to be a part of your query. See the guide on how to setup your query to include ${"`"+e+"`"}: https://shopify.dev/docs/custom-storefronts/hydrogen/data-fetching/pagination#setup-the-paginated-query`)}function jt(e){e.pageInfo||b("pageInfo"),typeof e.pageInfo.startCursor>"u"&&b("pageInfo.startCursor"),typeof e.pageInfo.endCursor>"u"&&b("pageInfo.endCursor"),typeof e.pageInfo.hasNextPage>"u"&&b("pageInfo.hasNextPage"),typeof e.pageInfo.hasPreviousPage>"u"&&b("pageInfo.hasPreviousPage");let t=useNavigate(),{state:r,search:a,pathname:n}=useLocation(),i=new URLSearchParams(a).get("direction")==="previous",[u,d]=useState(flattenConnection(e)),[p,c]=useState({startCursor:e.pageInfo.startCursor,endCursor:e.pageInfo.endCursor,hasPreviousPage:e.pageInfo.hasPreviousPage,hasNextPage:e.pageInfo.hasNextPage}),y=useRef({params:k(a),pathname:n});useEffect(()=>{if(k(a)!==y.current.params||n!==y.current.pathname)y.current={pathname:n,params:k(a)},t(`${n}?${k(a)}`,{replace:!0,preventScrollReset:!0,state:{nodes:void 0,pageInfo:void 0}});else if(r?.nodes){if(d(i?[...flattenConnection(e),...r.nodes]:[...r.nodes,...flattenConnection(e)]),r?.pageInfo){let l=r?.pageInfo?.startCursor===void 0?e.pageInfo.startCursor:r.pageInfo.startCursor,I=r?.pageInfo?.endCursor===void 0?e.pageInfo.endCursor:r.pageInfo.endCursor,f=r?.pageInfo?.hasPreviousPage===void 0?e.pageInfo.hasPreviousPage:r.pageInfo.hasPreviousPage,T=r?.pageInfo?.hasNextPage===void 0?e.pageInfo.hasNextPage:r.pageInfo.hasNextPage;i?(l=e.pageInfo.startCursor,f=e.pageInfo.hasPreviousPage):(I=e.pageInfo.endCursor,T=e.pageInfo.hasNextPage),c({startCursor:l,endCursor:I,hasPreviousPage:f,hasNextPage:T});}}else d(flattenConnection(e)),c({startCursor:e.pageInfo.startCursor,endCursor:e.pageInfo.endCursor,hasPreviousPage:e.pageInfo.hasPreviousPage,hasNextPage:e.pageInfo.hasNextPage});},[r,e,i,a,t,n]);let C=useMemo(()=>{let l=new URLSearchParams(a);return l.set("direction","previous"),p.startCursor&&l.set("cursor",p.startCursor),`?${l.toString()}`},[a,p.startCursor]),h=useMemo(()=>{let l=new URLSearchParams(a);return l.set("direction","next"),p.endCursor&&l.set("cursor",p.endCursor),`?${l.toString()}`},[a,p.endCursor]);return {...p,previousPageUrl:C,nextPageUrl:h,nodes:u}}function Kt(e,t={pageBy:20}){if(typeof e?.url>"u")throw new Error("getPaginationVariables must be called with the Request object passed to your loader function");let{pageBy:r}=t,a=new URLSearchParams(new URL(e.url).search),n=a.get("cursor")??void 0;return (a.get("direction")==="previous"?"previous":"next")==="previous"?{last:r,startCursor:n??null}:{first:r,endCursor:n??null}}var Xe="cartFormInput";function H({children:e,action:t,inputs:r,route:a}){let n=useFetcher();return jsxs(n.Form,{action:a||"",method:"post",children:[(t||r)&&jsx("input",{type:"hidden",name:Xe,value:JSON.stringify({action:t,inputs:r})}),typeof e=="function"?e(n):e]})}H.INPUT_NAME=Xe;H.ACTIONS={AttributesUpdateInput:"AttributesUpdateInput",BuyerIdentityUpdate:"BuyerIdentityUpdate",Create:"Create",DiscountCodesUpdate:"DiscountCodesUpdate",LinesAdd:"LinesAdd",LinesRemove:"LinesRemove",LinesUpdate:"LinesUpdate",NoteUpdate:"NoteUpdate",SelectedDeliveryOptionsUpdate:"SelectedDeliveryOptionsUpdate",MetafieldsSet:"MetafieldsSet",MetafieldDelete:"MetafieldDelete"};function zt(e){let t={};for(let s of e.entries()){let i=s[0],u=e.getAll(i);t[i]=u.length>1?u:s[1];}let{cartFormInput:r,...a}=t,{action:n,inputs:o}=r?JSON.parse(String(r)):{};return {action:n,inputs:{...o,...a}}}H.getFormInput=zt;var g=`#graphql
89
89
  fragment CartApiError on CartUserError {
90
90
  message
91
91
  field
@@ -96,7 +96,7 @@ function De(e){let t=Array.isArray(e)?e:[e],r="";for(let a of t)a!=null&&(typeof
96
96
  id
97
97
  totalQuantity
98
98
  }
99
- `;function pe(e){return async(t,r)=>{let{cartId:a,...n}=r||{},{cartCreate:o}=await e.storefront.mutate(zt(e.cartFragment),{variables:{input:t,...n}});return o}}var zt=(e=m)=>`#graphql
99
+ `;function pe(e){return async(t,r)=>{let{cartId:a,...n}=r||{},{cartCreate:o}=await e.storefront.mutate(Zt(e.cartFragment),{variables:{input:t,...n}});return o}}var Zt=(e=m)=>`#graphql
100
100
  mutation cartCreate(
101
101
  $input: CartInput!
102
102
  $country: CountryCode = ZZ
@@ -114,7 +114,7 @@ function De(e){let t=Array.isArray(e)?e:[e],r="";for(let a of t)a!=null&&(typeof
114
114
  }
115
115
  ${e}
116
116
  ${g}
117
- `;function ce(e){return async t=>{let r=e.getCartId();if(!r)return null;let{cart:a}=await e.storefront.query(Yt(e.cartFragment),{variables:{cartId:r,...t},cache:e.storefront.CacheNone()});return a}}var Yt=(e=Xt)=>`#graphql
117
+ `;function ce(e){return async t=>{let r=e.getCartId();if(!r)return null;let{cart:a}=await e.storefront.query(er(e.cartFragment),{variables:{cartId:r,...t},cache:e.storefront.CacheNone()});return a}}var er=(e=tr)=>`#graphql
118
118
  query CartQuery(
119
119
  $cartId: ID!
120
120
  $numCartLines: Int = 100
@@ -127,7 +127,7 @@ function De(e){let t=Array.isArray(e)?e:[e],r="";for(let a of t)a!=null&&(typeof
127
127
  }
128
128
 
129
129
  ${e}
130
- `,Xt=`#graphql
130
+ `,tr=`#graphql
131
131
  fragment CartApiQuery on Cart {
132
132
  id
133
133
  checkoutUrl
@@ -233,7 +233,7 @@ function De(e){let t=Array.isArray(e)?e:[e],r="";for(let a of t)a!=null&&(typeof
233
233
  width
234
234
  height
235
235
  }
236
- `;function de(e){return async(t,r)=>{let{cartLinesAdd:a}=await e.storefront.mutate(Zt(e.cartFragment),{variables:{cartId:e.getCartId(),lines:t,...r}});return a}}var Zt=(e=m)=>`#graphql
236
+ `;function de(e){return async(t,r)=>{let{cartLinesAdd:a}=await e.storefront.mutate(rr(e.cartFragment),{variables:{cartId:e.getCartId(),lines:t,...r}});return a}}var rr=(e=m)=>`#graphql
237
237
  mutation cartLinesAdd(
238
238
  $cartId: ID!
239
239
  $lines: [CartLineInput!]!
@@ -252,7 +252,7 @@ function De(e){let t=Array.isArray(e)?e:[e],r="";for(let a of t)a!=null&&(typeof
252
252
 
253
253
  ${e}
254
254
  ${g}
255
- `;function le(e){return async(t,r)=>{let{cartLinesUpdate:a}=await e.storefront.mutate(er(e.cartFragment),{variables:{cartId:e.getCartId(),lines:t,...r}});return a}}var er=(e=m)=>`#graphql
255
+ `;function le(e){return async(t,r)=>{let{cartLinesUpdate:a}=await e.storefront.mutate(ar(e.cartFragment),{variables:{cartId:e.getCartId(),lines:t,...r}});return a}}var ar=(e=m)=>`#graphql
256
256
  mutation cartLinesUpdate(
257
257
  $cartId: ID!
258
258
  $lines: [CartLineUpdateInput!]!
@@ -271,7 +271,7 @@ function De(e){let t=Array.isArray(e)?e:[e],r="";for(let a of t)a!=null&&(typeof
271
271
 
272
272
  ${e}
273
273
  ${g}
274
- `;function fe(e){return async(t,r)=>{let{cartLinesRemove:a}=await e.storefront.mutate(tr(e.cartFragment),{variables:{cartId:e.getCartId(),lineIds:t,...r}});return a}}var tr=(e=m)=>`#graphql
274
+ `;function fe(e){return async(t,r)=>{let{cartLinesRemove:a}=await e.storefront.mutate(nr(e.cartFragment),{variables:{cartId:e.getCartId(),lineIds:t,...r}});return a}}var nr=(e=m)=>`#graphql
275
275
  mutation cartLinesRemove(
276
276
  $cartId: ID!
277
277
  $lineIds: [ID!]!
@@ -290,7 +290,7 @@ function De(e){let t=Array.isArray(e)?e:[e],r="";for(let a of t)a!=null&&(typeof
290
290
 
291
291
  ${e}
292
292
  ${g}
293
- `;function ye(e){return async(t,r)=>{let a=t.filter((o,i,s)=>s.indexOf(o)===i),{cartDiscountCodesUpdate:n}=await e.storefront.mutate(rr(e.cartFragment),{variables:{cartId:e.getCartId(),discountCodes:a,...r}});return n}}var rr=(e=m)=>`#graphql
293
+ `;function ye(e){return async(t,r)=>{let a=t.filter((o,s,i)=>i.indexOf(o)===s),{cartDiscountCodesUpdate:n}=await e.storefront.mutate(or(e.cartFragment),{variables:{cartId:e.getCartId(),discountCodes:a,...r}});return n}}var or=(e=m)=>`#graphql
294
294
  mutation cartDiscountCodesUpdate(
295
295
  $cartId: ID!
296
296
  $discountCodes: [String!]
@@ -308,7 +308,7 @@ function De(e){let t=Array.isArray(e)?e:[e],r="";for(let a of t)a!=null&&(typeof
308
308
  }
309
309
  ${e}
310
310
  ${g}
311
- `;function ge(e){return async(t,r)=>{let{cartBuyerIdentityUpdate:a}=await e.storefront.mutate(ar(e.cartFragment),{variables:{cartId:e.getCartId(),buyerIdentity:t,...r}});return a}}var ar=(e=m)=>`#graphql
311
+ `;function ge(e){return async(t,r)=>{let{cartBuyerIdentityUpdate:a}=await e.storefront.mutate(sr(e.cartFragment),{variables:{cartId:e.getCartId(),buyerIdentity:t,...r}});return a}}var sr=(e=m)=>`#graphql
312
312
  mutation cartBuyerIdentityUpdate(
313
313
  $cartId: ID!
314
314
  $buyerIdentity: CartBuyerIdentityInput!
@@ -326,7 +326,7 @@ function De(e){let t=Array.isArray(e)?e:[e],r="";for(let a of t)a!=null&&(typeof
326
326
  }
327
327
  ${e}
328
328
  ${g}
329
- `;function me(e){return async(t,r)=>{let{cartNoteUpdate:a}=await e.storefront.mutate(nr(e.cartFragment),{variables:{cartId:e.getCartId(),note:t,...r}});return a}}var nr=(e=m)=>`#graphql
329
+ `;function me(e){return async(t,r)=>{let{cartNoteUpdate:a}=await e.storefront.mutate(ir(e.cartFragment),{variables:{cartId:e.getCartId(),note:t,...r}});return a}}var ir=(e=m)=>`#graphql
330
330
  mutation cartNoteUpdate(
331
331
  $cartId: ID!
332
332
  $note: String
@@ -344,7 +344,7 @@ function De(e){let t=Array.isArray(e)?e:[e],r="";for(let a of t)a!=null&&(typeof
344
344
  }
345
345
  ${e}
346
346
  ${g}
347
- `;function Ce(e){return async(t,r)=>{let{cartSelectedDeliveryOptionsUpdate:a}=await e.storefront.mutate(or(e.cartFragment),{variables:{cartId:e.getCartId(),selectedDeliveryOptions:t,...r}});return a}}var or=(e=m)=>`#graphql
347
+ `;function Ce(e){return async(t,r)=>{let{cartSelectedDeliveryOptionsUpdate:a}=await e.storefront.mutate(ur(e.cartFragment),{variables:{cartId:e.getCartId(),selectedDeliveryOptions:t,...r}});return a}}var ur=(e=m)=>`#graphql
348
348
  mutation cartSelectedDeliveryOptionsUpdate(
349
349
  $cartId: ID!
350
350
  $selectedDeliveryOptions: [CartSelectedDeliveryOptionInput!]!
@@ -362,7 +362,7 @@ function De(e){let t=Array.isArray(e)?e:[e],r="";for(let a of t)a!=null&&(typeof
362
362
  }
363
363
  ${e}
364
364
  ${g}
365
- `;function he(e){return async(t,r)=>{let{cartAttributesUpdate:a}=await e.storefront.mutate(ir(e.cartFragment),{variables:{cartId:r?.cartId||e.getCartId(),attributes:t}});return a}}var ir=(e=m)=>`#graphql
365
+ `;function he(e){return async(t,r)=>{let{cartAttributesUpdate:a}=await e.storefront.mutate(pr(e.cartFragment),{variables:{cartId:r?.cartId||e.getCartId(),attributes:t}});return a}}var pr=(e=m)=>`#graphql
366
366
  mutation cartAttributesUpdate(
367
367
  $cartId: ID!
368
368
  $attributes: [AttributeInput!]!
@@ -378,7 +378,7 @@ function De(e){let t=Array.isArray(e)?e:[e],r="";for(let a of t)a!=null&&(typeof
378
378
  }
379
379
  ${e}
380
380
  ${g}
381
- `;function Se(e){return async(t,r)=>{let a=r?.cartId||e.getCartId(),n=t.map(i=>({...i,ownerId:a})),{cartMetafieldsSet:o}=await e.storefront.mutate(sr(),{variables:{metafields:n}});return {cart:{id:a},errors:o.errors}}}var sr=()=>`#graphql
381
+ `;function Se(e){return async(t,r)=>{let a=r?.cartId||e.getCartId(),n=t.map(s=>({...s,ownerId:a})),{cartMetafieldsSet:o}=await e.storefront.mutate(cr(),{variables:{metafields:n}});return {cart:{id:a},errors:o.errors}}}var cr=()=>`#graphql
382
382
  mutation cartMetafieldsSet(
383
383
  $metafields: [CartMetafieldsSetInput!]!
384
384
  $language: LanguageCode
@@ -393,7 +393,7 @@ function De(e){let t=Array.isArray(e)?e:[e],r="";for(let a of t)a!=null&&(typeof
393
393
  }
394
394
  }
395
395
  }
396
- `;function Ie(e){return async(t,r)=>{let a=r?.cartId||e.getCartId(),{cartMetafieldDelete:n}=await e.storefront.mutate(ur(),{variables:{input:{ownerId:a,key:t}}});return {cart:{id:a},errors:n.errors}}}var ur=()=>`#graphql
396
+ `;function Ie(e){return async(t,r)=>{let a=r?.cartId||e.getCartId(),{cartMetafieldDelete:n}=await e.storefront.mutate(dr(),{variables:{input:{ownerId:a,key:t}}});return {cart:{id:a},errors:n.errors}}}var dr=()=>`#graphql
397
397
  mutation cartMetafieldDelete(
398
398
  $input: CartMetafieldDeleteInput!
399
399
  ) {
@@ -405,7 +405,7 @@ function De(e){let t=Array.isArray(e)?e:[e],r="";for(let a of t)a!=null&&(typeof
405
405
  }
406
406
  }
407
407
  }
408
- `;var pr=new Set(["domain","path","max-age","expires","samesite","secure","httponly"]);function Ye(e){let t={},r,a,n=0,o=e.split(/;\s*/g),i,s;for(;n<o.length;n++)if(a=o[n],r=a.indexOf("="),~r){if(i=a.substring(0,r++).trim(),s=a.substring(r).trim(),s[0]==='"'&&(s=s.substring(1,s.length-1)),~s.indexOf("%"))try{s=decodeURIComponent(s);}catch{}pr.has(a=i.toLowerCase())?a==="expires"?t.expires=new Date(s):a==="max-age"?t.maxage=+s:t[a]=s:t[i]=s;}else (i=a.trim().toLowerCase())&&(i==="httponly"||i==="secure")&&(t[i]=!0);return t}function Xe(e,t,r={}){let a=e+"="+encodeURIComponent(t);return r.expires&&(a+="; Expires="+new Date(r.expires).toUTCString()),r.maxage!=null&&r.maxage>=0&&(a+="; Max-Age="+(r.maxage|0)),r.domain&&(a+="; Domain="+r.domain),r.path&&(a+="; Path="+r.path),r.samesite&&(a+="; SameSite="+r.samesite),(r.secure||r.samesite==="None")&&(a+="; Secure"),r.httponly&&(a+="; HttpOnly"),a}var cr=e=>{let t=Ye(e.get("Cookie")||"");return ()=>t.cart?`gid://shopify/Cart/${t.cart}`:void 0};var dr=e=>t=>{let r=new Headers;return r.append("Set-Cookie",Xe("cart",t.split("/").pop()||"",{path:"/",...e})),r};function lr(e){let{getCartId:t,setCartId:r,storefront:a,cartQueryFragment:n,cartMutateFragment:o}=e,i={storefront:a,getCartId:t,cartFragment:o},s=t(),u=pe(i),d={get:ce({storefront:a,getCartId:t,cartFragment:n}),getCartId:t,setCartId:r,create:u,addLines:async(p,c)=>s||c?.cartId?await de(i)(p,c):await u({lines:p},c),updateLines:le(i),removeLines:fe(i),updateDiscountCodes:async(p,c)=>s||c?.cartId?await ye(i)(p,c):await u({discountCodes:p},c),updateBuyerIdentity:async(p,c)=>s||c?.cartId?await ge(i)(p,c):await u({buyerIdentity:p},c),updateNote:async(p,c)=>s||c?.cartId?await me(i)(p,c):await u({note:p},c),updateSelectedDeliveryOption:Ce(i),updateAttributes:async(p,c)=>s||c?.cartId?await he(i)(p,c):await u({attributes:p},c),setMetafields:async(p,c)=>s||c?.cartId?await Se(i)(p,c):await u({metafields:p},c),deleteMetafield:Ie(i)};return "customMethods__unstable"in e?{...d,...e.customMethods__unstable??{}}:d}function Cr({handle:e,options:t=[],variants:r=[],productPath:a="products",children:n}){let o=r instanceof Array?r:flattenConnection(r),{searchParams:i,path:s,alreadyOnProductPage:u}=Sr(e,a),d=t.filter(p=>p?.values?.length===1);return createElement(Fragment,null,...useMemo(()=>t.filter(p=>p?.values?.length>1).map(p=>{let c,y=[];for(let C of p.values){let h=new URLSearchParams(u?i:void 0);h.set(p.name,C),d.forEach(R=>{h.set(R.name,R.values[0]);});let l=o.find(R=>R?.selectedOptions?.every(U=>h.get(U?.name)===U?.value)),I=i.get(p.name),f=I?I===C:!1;f&&(c=C);let T="?"+h.toString();y.push({value:C,isAvailable:l?l.availableForSale:!0,to:s+T,search:T,isActive:f});}return n({option:{name:p.name,value:c,values:y}})}),[t,o,n]))}var hr=e=>{if(typeof e?.url>"u")throw new TypeError(`Expected a Request instance, got ${typeof e}`);let t=new URL(e.url).searchParams,r=[];return t.forEach((a,n)=>{r.push({name:n,value:a});}),r};function Sr(e,t){let{pathname:r,search:a}=useLocation();return useMemo(()=>{let n=/(\/[a-zA-Z]{2}-[a-zA-Z]{2}\/)/g.exec(r),o=n&&n.length>0;t=t.startsWith("/")?t.substring(1):t;let i=o?`${n[0]}${t}/${e}`:`/${t}/${e}`;return {searchParams:new URLSearchParams(a),alreadyOnProductPage:i===r,path:i}},[r,a,e,t])}function et(){return Rr(Ir())}function Ir(){try{return crypto.getRandomValues(new Uint8Array(16))}catch{return new Uint8Array(16).map(()=>Math.random()*255|0)}}function Rr(e){return Array.from(e,function(t){return ("0"+(t&255).toString(16)).slice(-2)}).join("")}var tt=createContext(void 0),Pr=tt.Provider,Re=()=>useContext(tt);function Dr(e={}){let t=et(),r=br(t,e);return {nonce:t,header:r,NonceProvider:({children:n})=>createElement(Pr,{value:t},n)}}function br(e,t={}){let r=`'nonce-${e}'`,n=Object.assign({},{baseUri:["'self'"],defaultSrc:["'self'",r,"https://cdn.shopify.com","https://shopify.com"],frameAncestors:["none"],styleSrc:["'self'","'unsafe-inline'","https://cdn.shopify.com"],connectSrc:["'self'","https://monorail-edge.shopifysvc.com"]},t);return n.scriptSrc instanceof Array&&!n.scriptSrc.includes(r)?n.scriptSrc.push(r):n.defaultSrc instanceof Array&&!n.defaultSrc.includes(r)&&n.defaultSrc.push(r),Or({directives:n})}var Ur=forwardRef((e,t)=>{let r=Re();return jsx("script",{suppressHydrationWarning:!0,...e,nonce:r,ref:t})});function vr(e){let t=useFetchers(),r={};for(let a of t){let n=a.submission?.formData;if(n&&n.get("optimistic-identifier")===e)try{if(n.has("optimistic-data")){let o=JSON.parse(String(n.get("optimistic-data")));Object.assign(r,o);}}catch{}}return r}function Lr({id:e,data:t}){return jsxs(Fragment$1,{children:[jsx("input",{type:"hidden",name:"optimistic-identifier",value:e}),jsx("input",{type:"hidden",name:"optimistic-data",value:JSON.stringify(t)})]})}//! @see: https://shopify.dev/docs/api/storefront/latest/mutations/cartCreate
408
+ `;var lr=new Set(["domain","path","max-age","expires","samesite","secure","httponly"]);function Ye(e){let t={},r,a,n=0,o=e.split(/;\s*/g),s,i;for(;n<o.length;n++)if(a=o[n],r=a.indexOf("="),~r){if(s=a.substring(0,r++).trim(),i=a.substring(r).trim(),i[0]==='"'&&(i=i.substring(1,i.length-1)),~i.indexOf("%"))try{i=decodeURIComponent(i);}catch{}lr.has(a=s.toLowerCase())?a==="expires"?t.expires=new Date(i):a==="max-age"?t.maxage=+i:t[a]=i:t[s]=i;}else (s=a.trim().toLowerCase())&&(s==="httponly"||s==="secure")&&(t[s]=!0);return t}function Ze(e,t,r={}){let a=e+"="+encodeURIComponent(t);return r.expires&&(a+="; Expires="+new Date(r.expires).toUTCString()),r.maxage!=null&&r.maxage>=0&&(a+="; Max-Age="+(r.maxage|0)),r.domain&&(a+="; Domain="+r.domain),r.path&&(a+="; Path="+r.path),r.samesite&&(a+="; SameSite="+r.samesite),(r.secure||r.samesite==="None")&&(a+="; Secure"),r.httponly&&(a+="; HttpOnly"),a}var fr=e=>{let t=Ye(e.get("Cookie")||"");return ()=>t.cart?`gid://shopify/Cart/${t.cart}`:void 0};var yr=e=>t=>{let r=new Headers;return r.append("Set-Cookie",Ze("cart",t.split("/").pop()||"",{path:"/",...e})),r};function gr(e){let{getCartId:t,setCartId:r,storefront:a,cartQueryFragment:n,cartMutateFragment:o}=e,s={storefront:a,getCartId:t,cartFragment:o},i=t(),u=pe(s),d={get:ce({storefront:a,getCartId:t,cartFragment:n}),getCartId:t,setCartId:r,create:u,addLines:async(p,c)=>i||c?.cartId?await de(s)(p,c):await u({lines:p},c),updateLines:le(s),removeLines:fe(s),updateDiscountCodes:async(p,c)=>i||c?.cartId?await ye(s)(p,c):await u({discountCodes:p},c),updateBuyerIdentity:async(p,c)=>i||c?.cartId?await ge(s)(p,c):await u({buyerIdentity:p},c),updateNote:async(p,c)=>i||c?.cartId?await me(s)(p,c):await u({note:p},c),updateSelectedDeliveryOption:Ce(s),updateAttributes:async(p,c)=>i||c?.cartId?await he(s)(p,c):await u({attributes:p},c),setMetafields:async(p,c)=>i||c?.cartId?await Se(s)(p,c):await u({metafields:p},c),deleteMetafield:Ie(s)};return "customMethods__unstable"in e?{...d,...e.customMethods__unstable??{}}:d}function Ir({handle:e,options:t=[],variants:r=[],productPath:a="products",children:n}){let o=r instanceof Array?r:flattenConnection(r),{searchParams:s,path:i,alreadyOnProductPage:u}=Tr(e,a),d=t.filter(p=>p?.values?.length===1);return createElement(Fragment,null,...useMemo(()=>t.filter(p=>p?.values?.length>1).map(p=>{let c,y=[];for(let C of p.values){let h=new URLSearchParams(u?s:void 0);h.set(p.name,C),d.forEach(R=>{h.set(R.name,R.values[0]);});let l=o.find(R=>R?.selectedOptions?.every(U=>h.get(U?.name)===U?.value)),I=s.get(p.name),f=I?I===C:!1;f&&(c=C);let T="?"+h.toString();y.push({value:C,isAvailable:l?l.availableForSale:!0,to:i+T,search:T,isActive:f});}return n({option:{name:p.name,value:c,values:y}})}),[t,o,n]))}var Rr=e=>{if(typeof e?.url>"u")throw new TypeError(`Expected a Request instance, got ${typeof e}`);let t=new URL(e.url).searchParams,r=[];return t.forEach((a,n)=>{r.push({name:n,value:a});}),r};function Tr(e,t){let{pathname:r,search:a}=useLocation();return useMemo(()=>{let n=/(\/[a-zA-Z]{2}-[a-zA-Z]{2}\/)/g.exec(r),o=n&&n.length>0;t=t.startsWith("/")?t.substring(1):t;let s=o?`${n[0]}${t}/${e}`:`/${t}/${e}`;return {searchParams:new URLSearchParams(a),alreadyOnProductPage:s===r,path:s}},[r,a,e,t])}function tt(){return Ar(xr())}function xr(){try{return crypto.getRandomValues(new Uint8Array(16))}catch{return new Uint8Array(16).map(()=>Math.random()*255|0)}}function Ar(e){return Array.from(e,function(t){return ("0"+(t&255).toString(16)).slice(-2)}).join("")}var rt=createContext(void 0),Er=rt.Provider,Re=()=>useContext(rt);function Ur(e={}){let t=tt(),r=wr(t,e);return {nonce:t,header:r,NonceProvider:({children:n})=>createElement(Er,{value:t},n)}}function wr(e,t={}){let r=`'nonce-${e}'`,n=Object.assign({},{baseUri:["'self'"],defaultSrc:["'self'",r,"https://cdn.shopify.com","https://shopify.com"],frameAncestors:["none"],styleSrc:["'self'","'unsafe-inline'","https://cdn.shopify.com"],connectSrc:["'self'","https://monorail-edge.shopifysvc.com"]},t);return n.scriptSrc instanceof Array&&!n.scriptSrc.includes(r)?n.scriptSrc.push(r):n.defaultSrc instanceof Array&&!n.defaultSrc.includes(r)&&n.defaultSrc.push(r),br({directives:n})}var vr=forwardRef((e,t)=>{let r=Re();return jsx("script",{suppressHydrationWarning:!0,...e,nonce:r,ref:t})});function Fr(e){let t=useFetchers(),r={};for(let a of t){let n=a.submission?.formData;if(n&&n.get("optimistic-identifier")===e)try{if(n.has("optimistic-data")){let o=JSON.parse(String(n.get("optimistic-data")));Object.assign(r,o);}}catch{}}return r}function _r({id:e,data:t}){return jsxs(Fragment$1,{children:[jsx("input",{type:"hidden",name:"optimistic-identifier",value:e}),jsx("input",{type:"hidden",name:"optimistic-data",value:JSON.stringify(t)})]})}//! @see: https://shopify.dev/docs/api/storefront/latest/mutations/cartCreate
409
409
  //! @see https://shopify.dev/docs/api/storefront/latest/queries/cart
410
410
  //! @see: https://shopify.dev/docs/api/storefront/latest/mutations/cartLinesAdd
411
411
  //! @see: https://shopify.dev/docs/api/storefront/latest/mutations/cartLinesUpdate
@@ -417,6 +417,6 @@ function De(e){let t=Array.isArray(e)?e:[e],r="";for(let a of t)a!=null&&(typeof
417
417
  //! @see https://shopify.dev/docs/api/storefront/latest/mutations/cartMetafieldsSet
418
418
  //! @see https://shopify.dev/docs/api/storefront/2023-07/mutations/cartMetafieldDelete
419
419
 
420
- export { K as CacheCustom, j as CacheLong, W as CacheNone, x as CacheShort, H as CartForm, ie as InMemoryCache, Lr as OptimisticInput, Gt as Pagination, Ur as Script, _t as Seo, ke as StorefrontApiError, Cr as VariantSelector, he as cartAttributesUpdateDefault, ge as cartBuyerIdentityUpdateDefault, pe as cartCreateDefault, ye as cartDiscountCodesUpdateDefault, ce as cartGetDefault, cr as cartGetIdDefault, de as cartLinesAddDefault, fe as cartLinesRemoveDefault, le as cartLinesUpdateDefault, Ie as cartMetafieldDeleteDefault, Se as cartMetafieldsSetDefault, me as cartNoteUpdateDefault, Ce as cartSelectedDeliveryOptionsUpdateDefault, dr as cartSetIdDefault, lr as createCartHandler, Dr as createContentSecurityPolicy, pa as createStorefrontClient, ga as createWithCache, P as generateCacheControlHeader, Bt as getPaginationVariables, hr as getSelectedProductOptions, bt as graphiqlLoader, Rt as isStorefrontApiError, Ot as storefrontRedirect, Re as useNonce, vr as useOptimisticData };
420
+ export { K as CacheCustom, j as CacheLong, W as CacheNone, x as CacheShort, H as CartForm, se as InMemoryCache, _r as OptimisticInput, Wt as Pagination, vr as Script, kt as Seo, ke as StorefrontApiError, Ir as VariantSelector, he as cartAttributesUpdateDefault, ge as cartBuyerIdentityUpdateDefault, pe as cartCreateDefault, ye as cartDiscountCodesUpdateDefault, ce as cartGetDefault, fr as cartGetIdDefault, de as cartLinesAddDefault, fe as cartLinesRemoveDefault, le as cartLinesUpdateDefault, Ie as cartMetafieldDeleteDefault, Se as cartMetafieldsSetDefault, me as cartNoteUpdateDefault, Ce as cartSelectedDeliveryOptionsUpdateDefault, yr as cartSetIdDefault, gr as createCartHandler, Ur as createContentSecurityPolicy, la as createStorefrontClient, ha as createWithCache, P as generateCacheControlHeader, Kt as getPaginationVariables, Rr as getSelectedProductOptions, Et as graphiqlLoader, Tt as isStorefrontApiError, Pt as storefrontRedirect, Re as useNonce, Fr as useOptimisticData };
421
421
  //# sourceMappingURL=out.js.map
422
422
  //# sourceMappingURL=index.js.map