@shopify/hydrogen-react 0.0.0-next-90b5ccf → 0.0.0-next-6094330

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.
@@ -235,6 +235,6 @@ fragment ImageFragment on Image {
235
235
  width
236
236
  height
237
237
  }
238
- `;var ut="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/ProductProvider.tsx";const Ye=g.createContext(null);function st({children:e,data:r,initialVariantId:t}){const n=g.useMemo(()=>{var f;return x((f=r.variants)!=null?f:{})},[r.variants]);if(!lt(n))throw new Error("<ProductProvider/> requires 'product.variants.nodes' or 'product.variants.edges'");const o=g.useMemo(()=>ct(n),[n]),[i,u]=g.useState(()=>ze(t,n)),[a,d]=g.useState(()=>Ke(i));g.useEffect(()=>{const f=ze(t,n);u(f),d(Ke(f))},[t,n]);const s=g.useCallback((f,S)=>{d(v=>{const b={...v,[f]:S};return u(Ze(n,b)),b})},[d,n]),m=g.useCallback((f,S)=>{var b;const v=Ze(n,{...a,[f]:S});return(b=v==null?void 0:v.availableForSale)!=null?b:!0},[a,n]),c=g.useMemo(()=>{var f;return x((f=r.sellingPlanGroups)!=null?f:{}).map(S=>{var v;return{...S,sellingPlans:x((v=S==null?void 0:S.sellingPlans)!=null?v:{})}})},[r.sellingPlanGroups]),[_,y]=g.useState(void 0),E=g.useMemo(()=>{var f,S;if(!(!i||!_)){if(!((f=i.sellingPlanAllocations)!=null&&f.nodes)&&!((S=i.sellingPlanAllocations)!=null&&S.edges))throw new Error("<ProductProvider/>: You must include 'sellingPlanAllocations.nodes' or 'sellingPlanAllocations.edges' in your variants in order to calculate selectedSellingPlanAllocation");return x(i.sellingPlanAllocations).find(v=>{var b;return((b=v==null?void 0:v.sellingPlan)==null?void 0:b.id)===_.id})}},[i,_]),T=g.useMemo(()=>({variants:n,variantsConnection:r.variants,options:o,selectedVariant:i,setSelectedVariant:u,selectedOptions:a,setSelectedOption:s,setSelectedOptions:d,isOptionInStock:m,selectedSellingPlan:_,setSelectedSellingPlan:y,selectedSellingPlanAllocation:E,sellingPlanGroups:c,sellingPlanGroupsConnection:r.sellingPlanGroups}),[m,o,r.sellingPlanGroups,r.variants,a,_,E,i,c,s,n]);return C.default.createElement(Ye.Provider,{value:T,__self:this,__source:{fileName:ut,lineNumber:201,columnNumber:5}},e)}function Ge(){const e=g.useContext(Ye);if(!e)throw new Error("'useProduct' must be a child of <ProductProvider />");return e}function Ze(e,r){var t,n;if(!(!e.length||((n=(t=e==null?void 0:e[0])==null?void 0:t.selectedOptions)==null?void 0:n.length)!==Object.keys(r).length))return e==null?void 0:e.find(o=>Object.entries(r).every(([i,u])=>{var a;return(a=o==null?void 0:o.selectedOptions)==null?void 0:a.some(d=>(d==null?void 0:d.name)===i&&(d==null?void 0:d.value)===u)}))}function ct(e){const r=e.reduce((t,n)=>{var o;if(!n.selectedOptions)throw new Error("'getOptions' requires 'variant.selectedOptions'");return(o=n==null?void 0:n.selectedOptions)==null||o.forEach(i=>{var u,a,d,s;t[(u=i==null?void 0:i.name)!=null?u:""]=t[(a=i==null?void 0:i.name)!=null?a:""]||new Set,t[(d=i==null?void 0:i.name)!=null?d:""].add((s=i==null?void 0:i.value)!=null?s:"")}),t},{});return Object.keys(r).map(t=>({name:t,values:Array.from(r[t])}))}function ze(e,r){if(e){const t=r.find(n=>(n==null?void 0:n.id)===e);return t||console.warn("<ProductProvider/> received a 'initialVariantId' prop, but could not actually find a variant with that ID"),t}if(e===null)return null;if(e===void 0)return r.find(t=>t==null?void 0:t.availableForSale)||r[0]}function Ke(e){return e!=null&&e.selectedOptions?e.selectedOptions.reduce((r,t)=>{var n,o;return r[(n=t==null?void 0:t.name)!=null?n:""]=(o=t==null?void 0:t.value)!=null?o:"",r},{}):{}}function lt(e){return!(!e||!Array.isArray(e))}var dt="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/BaseButton.tsx";function Ee(e){const{as:r,onClick:t,defaultOnClick:n,children:o,buttonRef:i,...u}=e,a=g.useCallback(s=>{if(t){const m=t(s);if(typeof m=="boolean"&&m===!1||(s==null?void 0:s.defaultPrevented))return}n==null||n(s)},[n,t]),d=r||"button";return C.default.createElement(d,{ref:i,onClick:a,...u,__self:this,__source:{fileName:dt,lineNumber:59,columnNumber:5}},o)}var Qe="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/AddToCartButton.tsx";function ft(e){var S;const[r,t]=g.useState(!1),{variantId:n,quantity:o=1,attributes:i,sellingPlanId:u,onClick:a,children:d,accessibleAddingToCartLabel:s,...m}=e,{status:c,linesAdd:_}=ie(),{selectedVariant:y}=Ge(),E=(S=n!=null?n:y==null?void 0:y.id)!=null?S:"",T=n===null||E===""||y===null||r||m.disabled;g.useEffect(()=>{r&&c==="idle"&&t(!1)},[c,r]);const f=g.useCallback(()=>{t(!0),_([{quantity:o,merchandiseId:E||"",attributes:i,sellingPlanId:u}])},[_,o,E,i,u]);return C.default.createElement(C.default.Fragment,null,C.default.createElement(Ee,{...m,disabled:T,onClick:a,defaultOnClick:f,__self:this,__source:{fileName:Qe,lineNumber:71,columnNumber:7}},d),s?C.default.createElement("p",{style:{position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"},role:"alert","aria-live":"assertive",__self:this,__source:{fileName:Qe,lineNumber:80,columnNumber:9}},r?s:null):null)}var mt="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/BuyNowButton.tsx";function yt(e){const{cartCreate:r,checkoutUrl:t}=ie(),[n,o]=g.useState(!1),{quantity:i,variantId:u,onClick:a,attributes:d,children:s,...m}=e;g.useEffect(()=>{t&&(window.location.href=t)},[t]);const c=g.useCallback(()=>{o(!0),r({lines:[{quantity:i!=null?i:1,merchandiseId:u,attributes:d}]})},[r,i,u,d]);return C.default.createElement(Ee,{disabled:n!=null?n:m.disabled,...m,onClick:a,defaultOnClick:c,__self:this,__source:{fileName:mt,lineNumber:53,columnNumber:5}},s)}var ht="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/CartCheckoutButton.tsx";function _t(e){const[r,t]=g.useState(!1),{status:n,checkoutUrl:o}=ie(),{children:i,...u}=e;return g.useEffect(()=>{r&&o&&n==="idle"&&(window.location.href=o)},[r,n,o]),C.default.createElement(Ee,{...u,disabled:r||u.disabled,onClick:()=>t(!0),__self:this,__source:{fileName:ht,lineNumber:28,columnNumber:5}},i)}const gt={DateTime:"string",Decimal:"string",HTML:"string",URL:"string",Color:"string",UnsignedInt64:"string"};var pt="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/ExternalVideo.tsx";function Je(e){var m,c;const{data:r,options:t,id:n=r.id,frameBorder:o="0",allow:i="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:u=!0,loading:a="lazy",...d}=e;if(!r.embedUrl)throw new Error("<ExternalVideo/> requires the 'embedUrl' property");let s=r.embedUrl;if(t){const _=new URL(r.embedUrl);for(const y of Object.keys(t))_.searchParams.set(y,t[y]);s=_.toString()}return C.default.createElement("iframe",{...d,id:n!=null?n:r.embedUrl,title:(c=(m=r.alt)!=null?m:r.id)!=null?c:"external video",frameBorder:o,allow:i,allowFullScreen:u,src:s,loading:a,__self:this,__source:{fileName:pt,lineNumber:56,columnNumber:5}})}const Et=["cdn.shopify.com","cdn.shopifycdn.net","shopify-assets.shopifycdn.com","shopify-assets.shopifycdn.net"],St=["spin.dev"],vt=[...Et,...St],re=[352,832,1200,1920,2560];function Xe({src:e,width:r,height:t,crop:n,scale:o}){const i=new URL(e),u=o!=null?o:1;if(r){let a;typeof r=="string"?a=(re[0]*u).toString():a=(Number(r)*u).toString(),i.searchParams.append("width",a)}return t&&typeof t=="number"&&i.searchParams.append("height",(t*u).toString()),n&&i.searchParams.append("crop",n),i.toString()}function er(e){const r=new URL(e.src);return!vt.some(n=>r.hostname.endsWith(n))||!e.width&&!e.height&&!e.crop&&!e.scale?e.src:Xe(e)}function bt({data:e,loaderOptions:r,elementProps:t}){var o,i,u,a,d,s;let n=null;return(e==null?void 0:e.width)&&(e==null?void 0:e.height)&&(n=(e==null?void 0:e.width)/(e==null?void 0:e.height)),(r==null?void 0:r.width)||(r==null?void 0:r.height)?{width:(o=r==null?void 0:r.width)!=null?o:n&&typeof r.height=="number"?Math.round(n*r.height):null,height:(i=r==null?void 0:r.height)!=null?i:n&&typeof r.width=="number"?Math.round(n*r.width):null}:(t==null?void 0:t.width)||(t==null?void 0:t.height)?{width:(u=t==null?void 0:t.width)!=null?u:n&&typeof t.height=="number"?Math.round(n*t.height):null,height:(a=t==null?void 0:t.height)!=null?a:n&&typeof t.width=="number"?Math.round(n*t.width):null}:(e==null?void 0:e.width)||(e==null?void 0:e.height)?{width:(d=e==null?void 0:e.width)!=null?d:null,height:(s=e==null?void 0:e.height)!=null?s:null}:{width:null,height:null}}var Ct="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/Image.tsx";function oe({data:e,width:r,height:t,loading:n,loader:o=er,loaderOptions:i,widths:u,decoding:a="async",...d}){var E,T,f,S,v,b;if(!e.url){const l=`<Image/>: the 'data' prop requires the 'url' property. Image: ${(E=e.id)!=null?E:"no ID provided"}`;return console.error(l),null}const{width:s,height:m}=bt({data:e,loaderOptions:i,elementProps:{width:r,height:t}});let c=e.url;if(o&&(c=o({...i,src:e.url,width:s,height:m}),typeof c!="string"||!c))throw new Error(`<Image/>: 'loader' did not return a valid string. Image: ${(T=e.id)!=null?T:e.url}`);const _=r&&s&&r<s?r:s,y=(f=d.srcSet)!=null?f:Tt({...i,widths:u,src:e.url,width:_,height:m,loader:o});return Ce.createElement("img",{id:(S=e.id)!=null?S:"",alt:(b=(v=e.altText)!=null?v:d.alt)!=null?b:"",loading:n!=null?n:"lazy",...d,src:c,width:s!=null?s:void 0,height:m!=null?m:void 0,srcSet:y,decoding:a,__self:this,__source:{fileName:Ct,lineNumber:150,columnNumber:5}})}function Tt({src:e,width:r,crop:t,scale:n,widths:o,loader:i,height:u}){const a=o&&Array.isArray(o);if(a&&o.some(c=>isNaN(c)))throw new Error(`<Image/>: the 'widths' must be an array of numbers. Image: ${e}`);let d=1;r&&u&&(d=Number(u)/Number(r));let s=a?o:re;!a&&r&&r<re[re.length-1]&&(s=re.filter(c=>c<=r));const m=i||Xe;return s.map(c=>`${m({src:e,width:c,height:t?Number(c)*d:void 0,crop:t,scale:n})} ${c}w`).join(", ")}var rr="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/Video.tsx";function Se(e){var s,m;const{data:r,previewImageOptions:t,id:n=r.id,playsInline:o=!0,controls:i=!0,sourceProps:u={},...a}=e,d=er({src:(m=(s=r.previewImage)==null?void 0:s.url)!=null?m:"",...t});if(!r.sources)throw new Error("<Video/> requires a 'data.sources' array");return C.default.createElement("video",{...a,id:n,playsInline:o,controls:i,poster:d,__self:this,__source:{fileName:rr,lineNumber:42,columnNumber:5}},r.sources.map(c=>{if(!((c==null?void 0:c.url)&&(c==null?void 0:c.mimeType)))throw new Error("<Video/> needs 'source.url' and 'source.mimeType'");return C.default.createElement("source",{...u,key:c.url,src:c.url,type:c.mimeType,__self:this,__source:{fileName:rr,lineNumber:54,columnNumber:11}})}))}const tr={};function Nt(e,r){const t=tr[e];if(t)return t;const n=new Promise((o,i)=>{const u=document.createElement("script");r!=null&&r.module?u.type="module":u.type="text/javascript",u.src=e,u.onload=()=>{o(!0)},u.onerror=()=>{i(!1)},(r==null?void 0:r.in)==="head"?document.head.appendChild(u):document.body.appendChild(u)});return tr[e]=n,n}function nr(e,r){const[t,n]=g.useState("loading"),o=JSON.stringify(r);return g.useEffect(()=>{async function i(){try{n("loading"),await Nt(e,r),n("done")}catch{n("error")}}i()},[e,o,r]),t}var At="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/ModelViewer.tsx";function ar(e){var s,m,c,_,y,E,T,f,S,v,b;const[r,t]=g.useState(void 0),n=g.useCallback(l=>{t(l)},[]),{data:o,children:i,className:u,...a}=e,d=nr("https://unpkg.com/@google/model-viewer@v1.12.1/dist/model-viewer.min.js",{module:!0});return g.useEffect(()=>{if(!!r)return a.onError&&r.addEventListener("error",a.onError),a.onLoad&&r.addEventListener("load",a.onLoad),a.onPreload&&r.addEventListener("preload",a.onPreload),a.onModelVisibility&&r.addEventListener("model-visibility",a.onModelVisibility),a.onProgress&&r.addEventListener("progress",a.onProgress),a.onArStatus&&r.addEventListener("ar-status",a.onArStatus),a.onArTracking&&r.addEventListener("ar-tracking",a.onArTracking),a.onQuickLookButtonTapped&&r.addEventListener("quick-look-button-tapped",a.onQuickLookButtonTapped),a.onCameraChange&&r.addEventListener("camera-change",a.onCameraChange),a.onEnvironmentChange&&r.addEventListener("environment-change",a.onEnvironmentChange),a.onPlay&&r.addEventListener("play",a.onPlay),a.onPause&&r.addEventListener("ar-status",a.onPause),a.onSceneGraphReady&&r.addEventListener("scene-graph-ready",a.onSceneGraphReady),()=>{r!=null&&(a.onError&&r.removeEventListener("error",a.onError),a.onLoad&&r.removeEventListener("load",a.onLoad),a.onPreload&&r.removeEventListener("preload",a.onPreload),a.onModelVisibility&&r.removeEventListener("model-visibility",a.onModelVisibility),a.onProgress&&r.removeEventListener("progress",a.onProgress),a.onArStatus&&r.removeEventListener("ar-status",a.onArStatus),a.onArTracking&&r.removeEventListener("ar-tracking",a.onArTracking),a.onQuickLookButtonTapped&&r.removeEventListener("quick-look-button-tapped",a.onQuickLookButtonTapped),a.onCameraChange&&r.removeEventListener("camera-change",a.onCameraChange),a.onEnvironmentChange&&r.removeEventListener("environment-change",a.onEnvironmentChange),a.onPlay&&r.removeEventListener("play",a.onPlay),a.onPause&&r.removeEventListener("ar-status",a.onPause),a.onSceneGraphReady&&r.removeEventListener("scene-graph-ready",a.onSceneGraphReady))}},[r,a.onArStatus,a.onArTracking,a.onCameraChange,a.onEnvironmentChange,a.onError,a.onLoad,a.onModelVisibility,a.onPause,a.onPlay,a.onPreload,a.onProgress,a.onQuickLookButtonTapped,a.onSceneGraphReady]),d!=="done"?null:(m=(s=o.sources)==null?void 0:s[0])!=null&&m.url?C.default.createElement("model-viewer",{ref:n,...a,className:u,id:(c=a.id)!=null?c:o.id,src:o.sources[0].url,alt:(_=o.alt)!=null?_:null,"camera-controls":(y=a.cameraControls)!=null?y:!0,poster:(T=a.poster||((E=o.previewImage)==null?void 0:E.url))!=null?T:null,autoplay:(f=a.autoplay)!=null?f:!0,loading:a.loading,reveal:a.reveal,ar:a.ar,"ar-modes":a.arModes,"ar-scale":a.arScale,"ar-placement":a.arPlacement,"ios-src":a.iosSrc,"touch-action":a.touchAction,"disable-zoom":a.disableZoom,"orbit-sensitivity":a.orbitSensitivity,"auto-rotate":a.autoRotate,"auto-rotate-delay":a.autoRotateDelay,"rotation-per-second":a.rotationPerSecond,"interaction-policy":a.interactionPolicy,"interaction-prompt":a.interactionPrompt,"interaction-prompt-style":a.interactionPromptStyle,"interaction-prompt-threshold":a.interactionPromptThreshold,"camera-orbit":a.cameraOrbit,"camera-target":a.cameraTarget,"field-of-view":a.fieldOfView,"max-camera-orbit":a.maxCameraOrbit,"min-camera-orbit":a.minCameraOrbit,"max-field-of-view":a.maxFieldOfView,"min-field-of-view":a.minFieldOfView,bounds:a.bounds,"interpolation-decay":(S=a.interpolationDecay)!=null?S:100,"skybox-image":a.skyboxImage,"environment-image":a.environmentImage,exposure:a.exposure,"shadow-intensity":(v=a.shadowIntensity)!=null?v:0,"shadow-softness":(b=a.shadowSoftness)!=null?b:0,"animation-name":a.animationName,"animation-crossfade-duration":a.animationCrossfadeDuration,"variant-name":a.variantName,orientation:a.orientation,scale:a.scale,__self:this,__source:{fileName:At,lineNumber:222,columnNumber:5}},i):(console.error("<ModelViewer/> requires 'data.sources' prop to be an array, with an object that has a property 'url' on it. Rendering 'null'"),null)}var ue="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/MediaFile.tsx";function wt({data:e,mediaOptions:r,...t}){switch(e.__typename){case"MediaImage":return e.image?C.default.createElement(oe,{...t,...r==null?void 0:r.image,data:e.image,__self:this,__source:{fileName:ue,lineNumber:54,columnNumber:9}}):(console.warn("<MediaFile/>: 'data.image' does not exist for __typename of 'MediaImage'; rendering 'null' by default."),null);case"Video":return C.default.createElement(Se,{...t,...r==null?void 0:r.video,data:e,__self:this,__source:{fileName:ue,lineNumber:63,columnNumber:9}});case"ExternalVideo":return C.default.createElement(Je,{...t,...r==null?void 0:r.externalVideo,data:e,__self:this,__source:{fileName:ue,lineNumber:68,columnNumber:9}});case"Model3d":return C.default.createElement(ar,{...t,...r==null?void 0:r.modelViewer,data:e,__self:this,__source:{fileName:ue,lineNumber:78,columnNumber:9}});default:return console.error("<MediaFile /> requires the '__typename' property to exist on the 'data' prop in order to correctly render the correct component for this media. Rendering 'null' by default"),null}}var R="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/Metafield.tsx";function It(e){var a,d,s,m,c,_,y,E,T;const{data:r,as:t,...n}=e,{locale:o}=X(),i=g.useMemo(()=>ir(r),[r]);if(!i)return console.warn("<Metafield/>: nothing was passed to the data prop 'data'. Rendering 'null'"),null;if(i.value===null||i.value===void 0){const f=`<Metafield/>: No metafield value for metafield ${(a=i.id)!=null?a:i.key}. Rendering 'null'`;return console.warn(f),null}switch(i.type){case"date":{const f=t!=null?t:"time";return C.default.createElement(f,{...n,__self:this,__source:{fileName:R,lineNumber:68,columnNumber:9}},i.value.toLocaleDateString(o))}case"date_time":{const f=t!=null?t:"time";return C.default.createElement(f,{...n,__self:this,__source:{fileName:R,lineNumber:76,columnNumber:9}},i.value.toLocaleString(o))}case"weight":case"dimension":case"volume":{const f=t!=null?t:"span";return C.default.createElement(f,{...n,__self:this,__source:{fileName:R,lineNumber:86,columnNumber:9}},Dt(i.value,o))}case"rating":{const f=t!=null?t:"span";return C.default.createElement(f,{...n,__self:this,__source:{fileName:R,lineNumber:94,columnNumber:9}},i.value.value)}case"single_line_text_field":{const f=t!=null?t:"span";return C.default.createElement(f,{...n,dangerouslySetInnerHTML:{__html:i.value},__self:this,__source:{fileName:R,lineNumber:102,columnNumber:9}})}case"multi_line_text_field":{const f=t!=null?t:"div";return C.default.createElement(f,{...n,dangerouslySetInnerHTML:{__html:i.value.split(`
238
+ `;var ut="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/ProductProvider.tsx";const Ye=g.createContext(null);function st({children:e,data:r,initialVariantId:t}){const n=g.useMemo(()=>{var f;return x((f=r.variants)!=null?f:{})},[r.variants]);if(!lt(n))throw new Error("<ProductProvider/> requires 'product.variants.nodes' or 'product.variants.edges'");const o=g.useMemo(()=>ct(n),[n]),[i,u]=g.useState(()=>ze(t,n)),[a,d]=g.useState(()=>Ke(i));g.useEffect(()=>{const f=ze(t,n);u(f),d(Ke(f))},[t,n]);const s=g.useCallback((f,S)=>{d(v=>{const b={...v,[f]:S};return u(Ze(n,b)),b})},[d,n]),m=g.useCallback((f,S)=>{var b;const v=Ze(n,{...a,[f]:S});return(b=v==null?void 0:v.availableForSale)!=null?b:!0},[a,n]),c=g.useMemo(()=>{var f;return x((f=r.sellingPlanGroups)!=null?f:{}).map(S=>{var v;return{...S,sellingPlans:x((v=S==null?void 0:S.sellingPlans)!=null?v:{})}})},[r.sellingPlanGroups]),[_,y]=g.useState(void 0),E=g.useMemo(()=>{var f,S;if(!(!i||!_)){if(!((f=i.sellingPlanAllocations)!=null&&f.nodes)&&!((S=i.sellingPlanAllocations)!=null&&S.edges))throw new Error("<ProductProvider/>: You must include 'sellingPlanAllocations.nodes' or 'sellingPlanAllocations.edges' in your variants in order to calculate selectedSellingPlanAllocation");return x(i.sellingPlanAllocations).find(v=>{var b;return((b=v==null?void 0:v.sellingPlan)==null?void 0:b.id)===_.id})}},[i,_]),T=g.useMemo(()=>({variants:n,variantsConnection:r.variants,options:o,selectedVariant:i,setSelectedVariant:u,selectedOptions:a,setSelectedOption:s,setSelectedOptions:d,isOptionInStock:m,selectedSellingPlan:_,setSelectedSellingPlan:y,selectedSellingPlanAllocation:E,sellingPlanGroups:c,sellingPlanGroupsConnection:r.sellingPlanGroups}),[m,o,r.sellingPlanGroups,r.variants,a,_,E,i,c,s,n]);return C.default.createElement(Ye.Provider,{value:T,__self:this,__source:{fileName:ut,lineNumber:201,columnNumber:5}},e)}function Ge(){const e=g.useContext(Ye);if(!e)throw new Error("'useProduct' must be a child of <ProductProvider />");return e}function Ze(e,r){var t,n;if(!(!e.length||((n=(t=e==null?void 0:e[0])==null?void 0:t.selectedOptions)==null?void 0:n.length)!==Object.keys(r).length))return e==null?void 0:e.find(o=>Object.entries(r).every(([i,u])=>{var a;return(a=o==null?void 0:o.selectedOptions)==null?void 0:a.some(d=>(d==null?void 0:d.name)===i&&(d==null?void 0:d.value)===u)}))}function ct(e){const r=e.reduce((t,n)=>{var o;if(!n.selectedOptions)throw new Error("'getOptions' requires 'variant.selectedOptions'");return(o=n==null?void 0:n.selectedOptions)==null||o.forEach(i=>{var u,a,d,s;t[(u=i==null?void 0:i.name)!=null?u:""]=t[(a=i==null?void 0:i.name)!=null?a:""]||new Set,t[(d=i==null?void 0:i.name)!=null?d:""].add((s=i==null?void 0:i.value)!=null?s:"")}),t},{});return Object.keys(r).map(t=>({name:t,values:Array.from(r[t])}))}function ze(e,r){if(e){const t=r.find(n=>(n==null?void 0:n.id)===e);return t||console.warn("<ProductProvider/> received a 'initialVariantId' prop, but could not actually find a variant with that ID"),t}if(e===null)return null;if(e===void 0)return r.find(t=>t==null?void 0:t.availableForSale)||r[0]}function Ke(e){return e!=null&&e.selectedOptions?e.selectedOptions.reduce((r,t)=>{var n,o;return r[(n=t==null?void 0:t.name)!=null?n:""]=(o=t==null?void 0:t.value)!=null?o:"",r},{}):{}}function lt(e){return!(!e||!Array.isArray(e))}var dt="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/BaseButton.tsx";function Ee(e){const{as:r,onClick:t,defaultOnClick:n,children:o,buttonRef:i,...u}=e,a=g.useCallback(s=>{if(t){const m=t(s);if(typeof m=="boolean"&&m===!1||(s==null?void 0:s.defaultPrevented))return}n==null||n(s)},[n,t]),d=r||"button";return C.default.createElement(d,{ref:i,onClick:a,...u,__self:this,__source:{fileName:dt,lineNumber:59,columnNumber:5}},o)}var Qe="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/AddToCartButton.tsx";function ft(e){var S;const[r,t]=g.useState(!1),{variantId:n,quantity:o=1,attributes:i,sellingPlanId:u,onClick:a,children:d,accessibleAddingToCartLabel:s,...m}=e,{status:c,linesAdd:_}=ie(),{selectedVariant:y}=Ge(),E=(S=n!=null?n:y==null?void 0:y.id)!=null?S:"",T=n===null||E===""||y===null||r||m.disabled;g.useEffect(()=>{r&&c==="idle"&&t(!1)},[c,r]);const f=g.useCallback(()=>{t(!0),_([{quantity:o,merchandiseId:E||"",attributes:i,sellingPlanId:u}])},[_,o,E,i,u]);return C.default.createElement(C.default.Fragment,null,C.default.createElement(Ee,{...m,disabled:T,onClick:a,defaultOnClick:f,__self:this,__source:{fileName:Qe,lineNumber:71,columnNumber:7}},d),s?C.default.createElement("p",{style:{position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"},role:"alert","aria-live":"assertive",__self:this,__source:{fileName:Qe,lineNumber:80,columnNumber:9}},r?s:null):null)}var mt="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/BuyNowButton.tsx";function yt(e){const{cartCreate:r,checkoutUrl:t}=ie(),[n,o]=g.useState(!1),{quantity:i,variantId:u,onClick:a,attributes:d,children:s,...m}=e;g.useEffect(()=>{t&&(window.location.href=t)},[t]);const c=g.useCallback(()=>{o(!0),r({lines:[{quantity:i!=null?i:1,merchandiseId:u,attributes:d}]})},[r,i,u,d]);return C.default.createElement(Ee,{disabled:n!=null?n:m.disabled,...m,onClick:a,defaultOnClick:c,__self:this,__source:{fileName:mt,lineNumber:53,columnNumber:5}},s)}var ht="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/CartCheckoutButton.tsx";function _t(e){const[r,t]=g.useState(!1),{status:n,checkoutUrl:o}=ie(),{children:i,...u}=e;return g.useEffect(()=>{r&&o&&n==="idle"&&(window.location.href=o)},[r,n,o]),C.default.createElement(Ee,{...u,disabled:r||u.disabled,onClick:()=>t(!0),__self:this,__source:{fileName:ht,lineNumber:28,columnNumber:5}},i)}const gt={DateTime:"string",Decimal:"string",HTML:"string",URL:"string",Color:"string",UnsignedInt64:"string"};var pt="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/ExternalVideo.tsx";function Je(e){var m,c;const{data:r,options:t,id:n=r.id,frameBorder:o="0",allow:i="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:u=!0,loading:a="lazy",...d}=e;if(!r.embedUrl)throw new Error("<ExternalVideo/> requires the 'embedUrl' property");let s=r.embedUrl;if(t){const _=new URL(r.embedUrl);for(const y of Object.keys(t))_.searchParams.set(y,t[y]);s=_.toString()}return C.default.createElement("iframe",{...d,id:n!=null?n:r.embedUrl,title:(c=(m=r.alt)!=null?m:r.id)!=null?c:"external video",frameBorder:o,allow:i,allowFullScreen:u,src:s,loading:a,__self:this,__source:{fileName:pt,lineNumber:56,columnNumber:5}})}const Et=["cdn.shopify.com","cdn.shopifycdn.net","shopify-assets.shopifycdn.com","shopify-assets.shopifycdn.net"],St=["spin.dev"],vt=[...Et,...St],re=[352,832,1200,1920,2560];function Xe({src:e,width:r,height:t,crop:n,scale:o}){const i=new URL(e),u=o!=null?o:1;if(r){let a;typeof r=="string"?a=(re[0]*u).toString():a=(Number(r)*u).toString(),i.searchParams.append("width",a)}return t&&typeof t=="number"&&i.searchParams.append("height",(t*u).toString()),n&&i.searchParams.append("crop",n),i.toString()}function er(e){const r=new URL(e.src);return!vt.some(n=>r.hostname.endsWith(n))||!e.width&&!e.height&&!e.crop&&!e.scale?e.src:Xe(e)}function bt({data:e,loaderOptions:r,elementProps:t}){var o,i,u,a,d,s;let n=null;return(e==null?void 0:e.width)&&(e==null?void 0:e.height)&&(n=(e==null?void 0:e.width)/(e==null?void 0:e.height)),(r==null?void 0:r.width)||(r==null?void 0:r.height)?{width:(o=r==null?void 0:r.width)!=null?o:n&&typeof r.height=="number"?Math.round(n*r.height):null,height:(i=r==null?void 0:r.height)!=null?i:n&&typeof r.width=="number"?Math.round(n*r.width):null}:(t==null?void 0:t.width)||(t==null?void 0:t.height)?{width:(u=t==null?void 0:t.width)!=null?u:n&&typeof t.height=="number"?Math.round(n*t.height):null,height:(a=t==null?void 0:t.height)!=null?a:n&&typeof t.width=="number"?Math.round(n*t.width):null}:(e==null?void 0:e.width)||(e==null?void 0:e.height)?{width:(d=e==null?void 0:e.width)!=null?d:null,height:(s=e==null?void 0:e.height)!=null?s:null}:{width:null,height:null}}var Ct="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/Image.tsx";function oe({data:e,width:r,height:t,loading:n,loader:o=er,loaderOptions:i,widths:u,decoding:a="async",...d}){var E,T,f,S,v,b;if(!e.url){const l=`<Image/>: the 'data' prop requires the 'url' property. Image: ${(E=e.id)!=null?E:"no ID provided"}`;return console.error(l),null}const{width:s,height:m}=bt({data:e,loaderOptions:i,elementProps:{width:r,height:t}});let c=e.url;if(o&&(c=o({...i,src:e.url,width:s,height:m}),typeof c!="string"||!c))throw new Error(`<Image/>: 'loader' did not return a valid string. Image: ${(T=e.id)!=null?T:e.url}`);const _=r&&s&&r<s?r:s,y=(f=d.srcSet)!=null?f:Tt({...i,widths:u,src:e.url,width:_,height:m,loader:o});return Ce.createElement("img",{id:(S=e.id)!=null?S:"",alt:(b=(v=e.altText)!=null?v:d.alt)!=null?b:"",loading:n!=null?n:"lazy",...d,src:c,width:s!=null?s:void 0,height:m!=null?m:void 0,srcSet:y,decoding:a,__self:this,__source:{fileName:Ct,lineNumber:150,columnNumber:5}})}function Tt({src:e,width:r,crop:t,scale:n,widths:o,loader:i,height:u}){const a=o&&Array.isArray(o);if(a&&o.some(c=>isNaN(c)))throw new Error(`<Image/>: the 'widths' must be an array of numbers. Image: ${e}`);let d=1;r&&u&&(d=Number(u)/Number(r));let s=a?o:re;!a&&r&&r<re[re.length-1]&&(s=re.filter(c=>c<=r));const m=i||Xe;return s.map(c=>`${m({src:e,width:c,height:t?Number(c)*d:void 0,crop:t,scale:n})} ${c}w`).join(", ")}var rr="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/Video.tsx";function Se(e){var s,m;const{data:r,previewImageOptions:t,id:n=r.id,playsInline:o=!0,controls:i=!0,sourceProps:u={},...a}=e,d=er({src:(m=(s=r.previewImage)==null?void 0:s.url)!=null?m:"",...t});if(!r.sources)throw new Error("<Video/> requires a 'data.sources' array");return C.default.createElement("video",{...a,id:n,playsInline:o,controls:i,poster:d,__self:this,__source:{fileName:rr,lineNumber:42,columnNumber:5}},r.sources.map(c=>{if(!((c==null?void 0:c.url)&&(c==null?void 0:c.mimeType)))throw new Error("<Video/> needs 'source.url' and 'source.mimeType'");return C.default.createElement("source",{...u,key:c.url,src:c.url,type:c.mimeType,__self:this,__source:{fileName:rr,lineNumber:54,columnNumber:11}})}))}const tr={};function Nt(e,r){const t=tr[e];if(t)return t;const n=new Promise((o,i)=>{const u=document.createElement("script");r!=null&&r.module?u.type="module":u.type="text/javascript",u.src=e,u.onload=()=>{o(!0)},u.onerror=()=>{i(!1)},(r==null?void 0:r.in)==="head"?document.head.appendChild(u):document.body.appendChild(u)});return tr[e]=n,n}function nr(e,r){const[t,n]=g.useState("loading"),o=JSON.stringify(r);return g.useEffect(()=>{async function i(){try{n("loading"),await Nt(e,r),n("done")}catch{n("error")}}i()},[e,o,r]),t}var At="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/ModelViewer.tsx";function ar(e){var s,m,c,_,y,E,T,f,S,v,b;const[r,t]=g.useState(void 0),n=g.useCallback(l=>{t(l)},[]),{data:o,children:i,className:u,...a}=e,d=nr("https://unpkg.com/@google/model-viewer@v1.12.1/dist/model-viewer.min.js",{module:!0});return g.useEffect(()=>{if(!!r)return a.onError&&r.addEventListener("error",a.onError),a.onLoad&&r.addEventListener("load",a.onLoad),a.onPreload&&r.addEventListener("preload",a.onPreload),a.onModelVisibility&&r.addEventListener("model-visibility",a.onModelVisibility),a.onProgress&&r.addEventListener("progress",a.onProgress),a.onArStatus&&r.addEventListener("ar-status",a.onArStatus),a.onArTracking&&r.addEventListener("ar-tracking",a.onArTracking),a.onQuickLookButtonTapped&&r.addEventListener("quick-look-button-tapped",a.onQuickLookButtonTapped),a.onCameraChange&&r.addEventListener("camera-change",a.onCameraChange),a.onEnvironmentChange&&r.addEventListener("environment-change",a.onEnvironmentChange),a.onPlay&&r.addEventListener("play",a.onPlay),a.onPause&&r.addEventListener("ar-status",a.onPause),a.onSceneGraphReady&&r.addEventListener("scene-graph-ready",a.onSceneGraphReady),()=>{r!=null&&(a.onError&&r.removeEventListener("error",a.onError),a.onLoad&&r.removeEventListener("load",a.onLoad),a.onPreload&&r.removeEventListener("preload",a.onPreload),a.onModelVisibility&&r.removeEventListener("model-visibility",a.onModelVisibility),a.onProgress&&r.removeEventListener("progress",a.onProgress),a.onArStatus&&r.removeEventListener("ar-status",a.onArStatus),a.onArTracking&&r.removeEventListener("ar-tracking",a.onArTracking),a.onQuickLookButtonTapped&&r.removeEventListener("quick-look-button-tapped",a.onQuickLookButtonTapped),a.onCameraChange&&r.removeEventListener("camera-change",a.onCameraChange),a.onEnvironmentChange&&r.removeEventListener("environment-change",a.onEnvironmentChange),a.onPlay&&r.removeEventListener("play",a.onPlay),a.onPause&&r.removeEventListener("ar-status",a.onPause),a.onSceneGraphReady&&r.removeEventListener("scene-graph-ready",a.onSceneGraphReady))}},[r,a.onArStatus,a.onArTracking,a.onCameraChange,a.onEnvironmentChange,a.onError,a.onLoad,a.onModelVisibility,a.onPause,a.onPlay,a.onPreload,a.onProgress,a.onQuickLookButtonTapped,a.onSceneGraphReady]),d!=="done"?null:(m=(s=o.sources)==null?void 0:s[0])!=null&&m.url?C.default.createElement("model-viewer",{ref:n,...a,className:u,id:(c=a.id)!=null?c:o.id,src:o.sources[0].url,alt:(_=o.alt)!=null?_:null,"camera-controls":(y=a.cameraControls)!=null?y:!0,poster:(T=a.poster||((E=o.previewImage)==null?void 0:E.url))!=null?T:null,autoplay:(f=a.autoplay)!=null?f:!0,loading:a.loading,reveal:a.reveal,ar:a.ar,"ar-modes":a.arModes,"ar-scale":a.arScale,"ar-placement":a.arPlacement,"ios-src":a.iosSrc,"touch-action":a.touchAction,"disable-zoom":a.disableZoom,"orbit-sensitivity":a.orbitSensitivity,"auto-rotate":a.autoRotate,"auto-rotate-delay":a.autoRotateDelay,"rotation-per-second":a.rotationPerSecond,"interaction-policy":a.interactionPolicy,"interaction-prompt":a.interactionPrompt,"interaction-prompt-style":a.interactionPromptStyle,"interaction-prompt-threshold":a.interactionPromptThreshold,"camera-orbit":a.cameraOrbit,"camera-target":a.cameraTarget,"field-of-view":a.fieldOfView,"max-camera-orbit":a.maxCameraOrbit,"min-camera-orbit":a.minCameraOrbit,"max-field-of-view":a.maxFieldOfView,"min-field-of-view":a.minFieldOfView,bounds:a.bounds,"interpolation-decay":(S=a.interpolationDecay)!=null?S:100,"skybox-image":a.skyboxImage,"environment-image":a.environmentImage,exposure:a.exposure,"shadow-intensity":(v=a.shadowIntensity)!=null?v:0,"shadow-softness":(b=a.shadowSoftness)!=null?b:0,"animation-name":a.animationName,"animation-crossfade-duration":a.animationCrossfadeDuration,"variant-name":a.variantName,orientation:a.orientation,scale:a.scale,__self:this,__source:{fileName:At,lineNumber:222,columnNumber:5}},i):(console.error("<ModelViewer/> requires 'data.sources' prop to be an array, with an object that has a property 'url' on it. Rendering 'null'"),null)}var ue="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/MediaFile.tsx";function wt({data:e,mediaOptions:r,...t}){switch(e.__typename){case"MediaImage":return e.image?C.default.createElement(oe,{...t,...r==null?void 0:r.image,data:e.image,__self:this,__source:{fileName:ue,lineNumber:54,columnNumber:9}}):(console.warn("<MediaFile/>: 'data.image' does not exist for __typename of 'MediaImage'; rendering 'null' by default."),null);case"Video":return C.default.createElement(Se,{...t,...r==null?void 0:r.video,data:e,__self:this,__source:{fileName:ue,lineNumber:63,columnNumber:9}});case"ExternalVideo":return C.default.createElement(Je,{...t,...r==null?void 0:r.externalVideo,data:e,__self:this,__source:{fileName:ue,lineNumber:68,columnNumber:9}});case"Model3d":return C.default.createElement(ar,{...t,...r==null?void 0:r.modelViewer,data:e,__self:this,__source:{fileName:ue,lineNumber:78,columnNumber:9}});default:return console.error("<MediaFile /> requires the '__typename' property to exist on the 'data' prop in order to render the matching sub-component for this type of media. Rendering 'null' by default"),null}}var R="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/Metafield.tsx";function It(e){var a,d,s,m,c,_,y,E,T;const{data:r,as:t,...n}=e,{locale:o}=X(),i=g.useMemo(()=>ir(r),[r]);if(!i)return console.warn("<Metafield/>: nothing was passed to the data prop 'data'. Rendering 'null'"),null;if(i.value===null||i.value===void 0){const f=`<Metafield/>: No metafield value for metafield ${(a=i.id)!=null?a:i.key}. Rendering 'null'`;return console.warn(f),null}switch(i.type){case"date":{const f=t!=null?t:"time";return C.default.createElement(f,{...n,__self:this,__source:{fileName:R,lineNumber:68,columnNumber:9}},i.value.toLocaleDateString(o))}case"date_time":{const f=t!=null?t:"time";return C.default.createElement(f,{...n,__self:this,__source:{fileName:R,lineNumber:76,columnNumber:9}},i.value.toLocaleString(o))}case"weight":case"dimension":case"volume":{const f=t!=null?t:"span";return C.default.createElement(f,{...n,__self:this,__source:{fileName:R,lineNumber:86,columnNumber:9}},Dt(i.value,o))}case"rating":{const f=t!=null?t:"span";return C.default.createElement(f,{...n,__self:this,__source:{fileName:R,lineNumber:94,columnNumber:9}},i.value.value)}case"single_line_text_field":{const f=t!=null?t:"span";return C.default.createElement(f,{...n,dangerouslySetInnerHTML:{__html:i.value},__self:this,__source:{fileName:R,lineNumber:102,columnNumber:9}})}case"multi_line_text_field":{const f=t!=null?t:"div";return C.default.createElement(f,{...n,dangerouslySetInnerHTML:{__html:i.value.split(`
239
239
  `).join("<br/>")},__self:this,__source:{fileName:R,lineNumber:111,columnNumber:9}})}case"url":{const f=new URL(i.value);return C.default.createElement("a",{href:f.href.replace(f.protocol,""),...n,__self:this,__source:{fileName:R,lineNumber:122,columnNumber:9}},i.value)}case"json":{const f=t!=null?t:"span";return C.default.createElement(f,{...n,__self:this,__source:{fileName:R,lineNumber:133,columnNumber:9}},JSON.stringify(i.value))}case"product_reference":case"variant_reference":case"page_reference":{const f=t!=null?t:"span",S=i.reference;return C.default.createElement(f,{...n,__self:this,__source:{fileName:R,lineNumber:144,columnNumber:9}},(s=(d=S==null?void 0:S.title)!=null?d:S==null?void 0:S.id)!=null?s:"")}case"list.single_line_text_field":{const f=t!=null?t:"ul",S=i.references?x(i.references):[];return C.default.createElement(f,{...n,__self:this,__source:{fileName:R,lineNumber:154,columnNumber:9}},S.map((v,b)=>C.default.createElement("li",{key:`${v!=null?v:""}-${b}`,__self:this,__source:{fileName:R,lineNumber:158,columnNumber:13}},v)))}case"file_reference":if(((m=i.reference)==null?void 0:m.__typename)==="MediaImage"){const f=i.reference;return f.image?C.default.createElement(oe,{data:f.image,...n,__self:this,__source:{fileName:R,lineNumber:167,columnNumber:11}}):null}else if(((c=i.reference)==null?void 0:c.__typename)==="GenericFile"){const f=i.reference;return f.previewImage?C.default.createElement("a",{href:(y=(_=i.reference)==null?void 0:_.url)!=null?y:"",...n,__self:this,__source:{fileName:R,lineNumber:172,columnNumber:11}},C.default.createElement(oe,{data:f.previewImage,__self:this,__source:{fileName:R,lineNumber:173,columnNumber:13}})):null}else if(((E=i.reference)==null?void 0:E.__typename)==="Video"){const f=i.reference;return C.default.createElement(Se,{...n,data:f,__self:this,__source:{fileName:R,lineNumber:178,columnNumber:16}})}}const u=t!=null?t:"span";return C.default.createElement(u,{...n,__self:this,__source:{fileName:R,lineNumber:185,columnNumber:5}},(T=i.value)==null?void 0:T.toString())}function ir(e){return e?{...e,value:or(e)}:null}function or(e){if(!e)return null;if(e.value===null||e.value===void 0)return e.value;switch(e.type){case"boolean":return e.value==="true";case"number_integer":return parseInt(e.value);case"number_decimal":return parseFloat(e.value);case"date":case"date_time":return new Date(e.value);case"json":case"weight":case"dimension":case"volume":case"rating":return ve(e.value);case"color":case"single_line_text_field":case"multi_line_text_field":case"product_reference":case"page_reference":case"variant_reference":case"file_reference":case"url":default:return e.value}}function ve(e){return String(e).includes("__proto__")?JSON.parse(e,(r,t)=>{if(r!=="__proto__")return t}):JSON.parse(e)}const Ot={mm:"millimeter",cm:"centimeter",m:"meter",in:"inch",ft:"foot",yd:"yard",ml:"milliliter",l:"liter",us_fl_oz:"fluid-ounce",us_gal:"gallon",kg:"kilogram",g:"gram",lb:"pound",oz:"ounce"};function Dt(e,r="en-us",t={}){let n={value:e.value,unit:Ot[e.unit]};return n.unit==null&&(n=Lt(e.value,e.unit)),new Intl.NumberFormat(r,{...t,unit:n.unit,style:"unit"}).format(n.value)}function Lt(e,r){switch(r){case"cl":return{value:e/1e3,unit:"liter"};case"m3":return{value:e*1e3,unit:"liter"};case"us_pt":return{value:e*.125,unit:"gallon"};case"us_qt":return{value:e*.5,unit:"gallon"};case"us_oz":return{value:e/128,unit:"gallon"};case"imp_pt":return{value:e/6.661,unit:"gallon"};case"imp_qt":return{value:e/3.331,unit:"gallon"};case"imp_gal":return{value:e/1.201,unit:"gallon"};case"imp_fl_oz":return{value:e*.96076,unit:"fluid-ounce"};default:throw new Error(`Unit not supported: ${r}`)}}function Ut(e){var r,t,n,o;if(!e.type)return console.error("metafieldParser(): The 'type' field is required in order to parse the Metafield. Returning 'parsedValue' of 'null'"),{...e,parsedValue:null};switch(e.type){case"boolean":return{...e,parsedValue:e.value==="true"};case"collection_reference":case"file_reference":case"page_reference":case"product_reference":case"variant_reference":return{...e,parsedValue:e.reference};case"color":case"multi_line_text_field":case"single_line_text_field":case"url":return{...e,parsedValue:e.value};case"dimension":case"money":case"json":case"rating":case"volume":case"weight":case"list.color":case"list.dimension":case"list.number_integer":case"list.number_decimal":case"list.rating":case"list.single_line_text_field":case"list.url":case"list.volume":case"list.weight":{let i=null;try{i=ve((r=e.value)!=null?r:"")}catch{console.error("metafieldParser(): attempted to JSON.parse the 'metafield.value' property, but failed. Returning 'null' for 'parsedValue'"),i=null}return{...e,parsedValue:i}}case"date":case"date_time":return{...e,parsedValue:new Date((t=e.value)!=null?t:"")};case"list.date":case"list.date_time":{const i=ve((n=e==null?void 0:e.value)!=null?n:"");return{...e,parsedValue:i.map(u=>new Date(u))}}case"number_decimal":case"number_integer":return{...e,parsedValue:Number(e.value)};case"list.collection_reference":case"list.file_reference":case"list.page_reference":case"list.product_reference":case"list.variant_reference":return{...e,parsedValue:x((o=e.references)!=null?o:void 0)};default:{const i=`metafieldParser(): the 'metafield.type' you passed in is not supported. Your type: "${e.type}". If you believe this is an error, please open an issue on GitHub.`;return console.error(`${i} Returning 'parsedValue' of 'null'`),{...e,parsedValue:null}}}}function ur(e){const{locale:r}=X();if(!r)throw new Error("useMoney(): Unable to get 'locale' from 'useShop()', which means that 'locale' was not passed to '<ShopifyProvider/>'. 'locale' is required for 'useMoney()' to work");const t=parseFloat(e.amount),n=g.useMemo(()=>({style:"currency",currency:e.currencyCode}),[e.currencyCode]),o=Z(r,n),i=Z(r,{...n,currencyDisplay:"name"}),u=Z(r,{...n,currencyDisplay:"narrowSymbol"}),a=Z(r,{...n,minimumFractionDigits:0,maximumFractionDigits:0}),d=Z(r),s=Z(r,{minimumFractionDigits:0,maximumFractionDigits:0}),m=_=>_.type==="currency",c=g.useMemo(()=>({original:()=>e,currencyCode:()=>e.currencyCode,localizedString:()=>o().format(t),parts:()=>o().formatToParts(t),withoutTrailingZeros:()=>t%1===0?a().format(t):o().format(t),withoutTrailingZerosAndCurrency:()=>t%1===0?s().format(t):d().format(t),currencyName:()=>{var _,y;return(y=(_=i().formatToParts(t).find(m))==null?void 0:_.value)!=null?y:e.currencyCode},currencySymbol:()=>{var _,y;return(y=(_=o().formatToParts(t).find(m))==null?void 0:_.value)!=null?y:e.currencyCode},currencyNarrowSymbol:()=>{var _,y;return(y=(_=u().formatToParts(t).find(m))==null?void 0:_.value)!=null?y:""},amount:()=>o().formatToParts(t).filter(_=>["decimal","fraction","group","integer","literal"].includes(_.type)).map(_=>_.value).join("")}),[e,t,i,o,u,d,a,s]);return g.useMemo(()=>new Proxy(c,{get:(_,y)=>{var E;return(E=Reflect.get(_,y))==null?void 0:E.call(null)}}),[c])}function Z(e,r){return g.useMemo(()=>{let t;return()=>t!=null?t:t=new Intl.NumberFormat(e,r)},[e,r])}var kt="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/Money.tsx";function be({data:e,as:r,withoutCurrency:t,withoutTrailingZeros:n,measurement:o,measurementSeparator:i="/",...u}){if(!Pt(e))throw new Error("<Money/> needs a valid 'data' prop that has 'amount' and 'currencyCode'");const a=ur(e),d=r!=null?r:"div";let s=a.localizedString;return(t||n)&&(t&&!n?s=a.amount:!t&&n?s=a.withoutTrailingZeros:s=a.withoutTrailingZerosAndCurrency),C.default.createElement(d,{...u,__self:this,__source:{fileName:kt,lineNumber:65,columnNumber:5}},s,o&&o.referenceUnit&&C.default.createElement(C.default.Fragment,null,i,o.referenceUnit))}function Pt(e){return typeof e.amount=="string"&&!!e.amount&&typeof e.currencyCode=="string"&&!!e.currencyCode}var sr="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/ProductPrice.tsx";function Mt(e){var s,m,c,_,y,E,T,f;const{priceType:r="regular",variantId:t,valueType:n="min",data:o,...i}=e;if(o==null)throw new Error("<ProductPrice/> requires a product as the 'data' prop");let u,a;const d=t&&(m=x((s=o==null?void 0:o.variants)!=null?s:{}).find(S=>(S==null?void 0:S.id)===t))!=null?m:null;if(r==="compareAt")if(t&&d){if(((c=d.compareAtPriceV2)==null?void 0:c.amount)===((_=d.priceV2)==null?void 0:_.amount))return null;u=d.compareAtPriceV2}else n==="max"?u=(y=o==null?void 0:o.compareAtPriceRange)==null?void 0:y.maxVariantPrice:u=(E=o==null?void 0:o.compareAtPriceRange)==null?void 0:E.minVariantPrice;else t&&d?(u=d.priceV2,n==="unit"&&(u=d.unitPrice,a=d.unitPriceMeasurement)):n==="max"?u=(T=o.priceRange)==null?void 0:T.maxVariantPrice:u=(f=o.priceRange)==null?void 0:f.minVariantPrice;return u?a?C.default.createElement(be,{...i,data:u,measurement:a,__self:this,__source:{fileName:sr,lineNumber:81,columnNumber:7}}):C.default.createElement(be,{...i,data:u,__self:this,__source:{fileName:sr,lineNumber:85,columnNumber:10}}):null}var cr="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/ShopPayButton.tsx";const Rt="https://cdn.shopify.com/shopifycloud/shop-js/v1.0/client.js";function $t({variantIds:e,className:r,variantIdsAndQuantities:t,width:n}){const{storeDomain:o}=X(),i=nr(Rt);let u;if(e&&t)throw new Error(Ft);if(e)u=e.reduce((d,s)=>{const m=lr(s);return m&&d.push(m),d},[]);else if(t)u=t.reduce((d,s)=>{var c;const m=lr(s==null?void 0:s.id);return m&&d.push(`${m}:${(c=s==null?void 0:s.quantity)!=null?c:1}`),d},[]);else throw new Error(Vt);const a=n?{"--shop-pay-button-width":n}:void 0;return C.default.createElement("div",{className:r,style:a,__self:this,__source:{fileName:cr,lineNumber:90,columnNumber:5}},i==="done"&&C.default.createElement("shop-pay-button",{"store-url":`https://${o}`,variants:u.join(","),__self:this,__source:{fileName:cr,lineNumber:92,columnNumber:9}}))}function lr(e){if(!!e)return e.split("/").pop()}const Vt='You must pass in either "variantIds" or "variantIdsAndQuantities" to ShopPayButton',Ft="You must provide either a variantIds or variantIdsAndQuantities prop, but not both in the ShopPayButton component";D.AddToCartButton=ft,D.BuyNowButton=yt,D.CartCheckoutButton=_t,D.CartProvider=tt,D.ExternalVideo=Je,D.Image=oe,D.MediaFile=wt,D.Metafield=It,D.ModelViewer=ar,D.Money=be,D.ProductPrice=Mt,D.ProductProvider=st,D.ShopPayButton=$t,D.ShopifyProvider=qr,D.Video=Se,D.createStorefrontClient=jr,D.flattenConnection=x,D.metafieldParser=Ut,D.parseMetafield=ir,D.parseMetafieldValue=or,D.storefrontApiCustomScalars=gt,D.useCart=ie,D.useMoney=ur,D.useProduct=Ge,D.useShop=X,Object.defineProperties(D,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
240
240
  //# sourceMappingURL=hydrogen-react.prod.js.map