@shopify/hydrogen-react 0.0.0-next-182fb2f → 0.0.0-next-59d697b
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dev/AddToCartButton.js +2 -27
- package/dist/dev/AddToCartButton.js.map +1 -1
- package/dist/dev/AddToCartButton.mjs +2 -27
- package/dist/dev/AddToCartButton.mjs.map +1 -1
- package/dist/dev/BaseButton.js +31 -0
- package/dist/dev/BaseButton.js.map +1 -0
- package/dist/dev/BaseButton.mjs +31 -0
- package/dist/dev/BaseButton.mjs.map +1 -0
- package/dist/dev/CartCheckoutButton.js +29 -0
- package/dist/dev/CartCheckoutButton.js.map +1 -0
- package/dist/dev/CartCheckoutButton.mjs +29 -0
- package/dist/dev/CartCheckoutButton.mjs.map +1 -0
- package/dist/dev/index.js +2 -0
- package/dist/dev/index.js.map +1 -1
- package/dist/dev/index.mjs +2 -0
- package/dist/dev/index.mjs.map +1 -1
- package/dist/prod/AddToCartButton.js +2 -27
- package/dist/prod/AddToCartButton.js.map +1 -1
- package/dist/prod/AddToCartButton.mjs +2 -27
- package/dist/prod/AddToCartButton.mjs.map +1 -1
- package/dist/prod/BaseButton.js +31 -0
- package/dist/prod/BaseButton.js.map +1 -0
- package/dist/prod/BaseButton.mjs +31 -0
- package/dist/prod/BaseButton.mjs.map +1 -0
- package/dist/prod/CartCheckoutButton.js +29 -0
- package/dist/prod/CartCheckoutButton.js.map +1 -0
- package/dist/prod/CartCheckoutButton.mjs +29 -0
- package/dist/prod/CartCheckoutButton.mjs.map +1 -0
- package/dist/prod/index.js +2 -0
- package/dist/prod/index.js.map +1 -1
- package/dist/prod/index.mjs +2 -0
- package/dist/prod/index.mjs.map +1 -1
- package/dist/types/AddToCartButton.d.ts +1 -15
- package/dist/types/BaseButton.d.ts +15 -0
- package/dist/types/CartCheckoutButton.d.ts +11 -0
- package/dist/types/index.d.cts +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/umd/hydrogen-react.dev.js +58 -28
- package/dist/umd/hydrogen-react.dev.js.map +1 -1
- package/dist/umd/hydrogen-react.prod.js +14 -14
- package/dist/umd/hydrogen-react.prod.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(L,g){typeof exports=="object"&&typeof module<"u"?g(exports,require("react")):typeof define=="function"&&define.amd?define(["exports","react"],g):(L=typeof globalThis<"u"?globalThis:L||self,g(L.hydrogenreact={},L.React))})(this,function(L,g){"use strict";const hr=e=>e&&typeof e=="object"&&"default"in e?e:{default:e};function gr(e){if(e&&e.__esModule)return e;const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:()=>e[t]})}}return r.default=e,Object.freeze(r)}const
|
|
1
|
+
(function(L,g){typeof exports=="object"&&typeof module<"u"?g(exports,require("react")):typeof define=="function"&&define.amd?define(["exports","react"],g):(L=typeof globalThis<"u"?globalThis:L||self,g(L.hydrogenreact={},L.React))})(this,function(L,g){"use strict";const hr=e=>e&&typeof e=="object"&&"default"in e?e:{default:e};function gr(e){if(e&&e.__esModule)return e;const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:()=>e[t]})}}return r.default=e,Object.freeze(r)}const A=hr(g),be=gr(g);/*! *****************************************************************************
|
|
2
2
|
Copyright (c) Microsoft Corporation.
|
|
3
3
|
|
|
4
4
|
Permission to use, copy, modify, and/or distribute this software for any
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
12
12
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
13
13
|
PERFORMANCE OF THIS SOFTWARE.
|
|
14
|
-
***************************************************************************** */function
|
|
14
|
+
***************************************************************************** */function Ce(e,r){var t=typeof Symbol=="function"&&e[Symbol.iterator];if(!t)return e;var n,o,i=t.call(e),u=[];try{for(;(r===void 0||r-- >0)&&!(n=i.next()).done;)u.push(n.value)}catch(a){o={error:a}}finally{try{n&&!n.done&&(t=i.return)&&t.call(i)}finally{if(o)throw o.error}}return u}var Y;(function(e){e[e.NotStarted=0]="NotStarted",e[e.Running=1]="Running",e[e.Stopped=2]="Stopped"})(Y||(Y={}));var Te={type:"xstate.init"};function ce(e){return e===void 0?[]:[].concat(e)}function Q(e){return{type:"xstate.assign",assignment:e}}function Ae(e,r){return typeof(e=typeof e=="string"&&r&&r[e]?r[e]:e)=="string"?{type:e}:typeof e=="function"?{type:e.name,exec:e}:e}function ae(e){return function(r){return e===r}}function Ne(e){return typeof e=="string"?{type:e}:e}function we(e,r){return{value:e,context:r,actions:[],changed:!1,matches:ae(e)}}function Ie(e,r,t){var n=r,o=!1;return[e.filter(function(i){if(i.type==="xstate.assign"){o=!0;var u=Object.assign({},n);return typeof i.assignment=="function"?u=i.assignment(n,t):Object.keys(i.assignment).forEach(function(a){u[a]=typeof i.assignment[a]=="function"?i.assignment[a](n,t):i.assignment[a]}),n=u,!1}return!0}),n,o]}function Oe(e,r){r===void 0&&(r={});var t=Ce(Ie(ce(e.states[e.initial].entry).map(function(u){return Ae(u,r.actions)}),e.context,Te),2),n=t[0],o=t[1],i={config:e,_options:r,initialState:{value:e.initial,actions:n,context:o,matches:ae(e.initial)},transition:function(u,a){var d,s,_=typeof u=="string"?{value:u,context:e.context}:u,c=_.value,h=_.context,y=Ne(a),E=e.states[c];if(E.on){var C=ce(E.on[y.type]);try{for(var f=function(D){var G=typeof Symbol=="function"&&Symbol.iterator,U=G&&D[G],ue=0;if(U)return U.call(D);if(D&&typeof D.length=="number")return{next:function(){return D&&ue>=D.length&&(D=void 0),{value:D&&D[ue++],done:!D}}};throw new TypeError(G?"Object is not iterable.":"Symbol.iterator is not defined.")}(C),S=f.next();!S.done;S=f.next()){var v=S.value;if(v===void 0)return we(c,h);var b=typeof v=="string"?{target:v}:v,l=b.target,m=b.actions,p=m===void 0?[]:m,w=b.cond,I=w===void 0?function(){return!0}:w,N=l===void 0,O=l!=null?l:c,k=e.states[O];if(I(h,y)){var V=Ce(Ie((N?ce(p):[].concat(E.exit,p,k.entry).filter(function(D){return D})).map(function(D){return Ae(D,i._options.actions)}),h,y),3),F=V[0],W=V[1],K=V[2],B=l!=null?l:c;return{value:B,context:W,actions:F,changed:l!==c||F.length>0||K,matches:ae(B)}}}}catch(D){d={error:D}}finally{try{S&&!S.done&&(s=f.return)&&s.call(f)}finally{if(d)throw d.error}}}return we(c,h)}};return i}var De=function(e,r){return e.actions.forEach(function(t){var n=t.exec;return n&&n(e.context,r)})};function pr(e){var r=e.initialState,t=Y.NotStarted,n=new Set,o={_machine:e,send:function(i){t===Y.Running&&(r=e.transition(r,i),De(r,Ne(i)),n.forEach(function(u){return u(r)}))},subscribe:function(i){return n.add(i),i(r),{unsubscribe:function(){return n.delete(i)}}},start:function(i){if(i){var u=typeof i=="object"?i:{context:e.config.context,value:i};r={value:u.value,actions:[],context:u.context,matches:ae(u.value)}}else r=e.initialState;return t=Y.Running,De(r,Te),o},stop:function(){return t=Y.Stopped,n.clear(),o},get state(){return r},get status(){return t}};return o}var Er=g.useLayoutEffect,Le={exports:{}},le={},de={exports:{}},fe={};/**
|
|
15
15
|
* @license React
|
|
16
16
|
* use-sync-external-store-shim.production.min.js
|
|
17
17
|
*
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
*
|
|
20
20
|
* This source code is licensed under the MIT license found in the
|
|
21
21
|
* LICENSE file in the root directory of this source tree.
|
|
22
|
-
*/var Pe;function Sr(){if(Pe)return fe;Pe=1;var e=
|
|
22
|
+
*/var Pe;function Sr(){if(Pe)return fe;Pe=1;var e=A.default;function r(c,h){return c===h&&(c!==0||1/c===1/h)||c!==c&&h!==h}var t=typeof Object.is=="function"?Object.is:r,n=e.useState,o=e.useEffect,i=e.useLayoutEffect,u=e.useDebugValue;function a(c,h){var y=h(),E=n({inst:{value:y,getSnapshot:h}}),C=E[0].inst,f=E[1];return i(function(){C.value=y,C.getSnapshot=h,d(C)&&f({inst:C})},[c,y,h]),o(function(){return d(C)&&f({inst:C}),c(function(){d(C)&&f({inst:C})})},[c]),u(y),y}function d(c){var h=c.getSnapshot;c=c.value;try{var y=h();return!t(c,y)}catch{return!0}}function s(c,h){return h()}var _=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?s:a;return fe.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:_,fe}var ye={};/**
|
|
23
23
|
* @license React
|
|
24
24
|
* use-sync-external-store-shim.development.js
|
|
25
25
|
*
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
*
|
|
28
28
|
* This source code is licensed under the MIT license found in the
|
|
29
29
|
* LICENSE file in the root directory of this source tree.
|
|
30
|
-
*/var Ue;function vr(){return Ue||(Ue=1,process.env.NODE_ENV!=="production"&&function(){typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error);var e=
|
|
30
|
+
*/var Ue;function vr(){return Ue||(Ue=1,process.env.NODE_ENV!=="production"&&function(){typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error);var e=A.default,r=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function t(b){{for(var l=arguments.length,m=new Array(l>1?l-1:0),p=1;p<l;p++)m[p-1]=arguments[p];n("error",b,m)}}function n(b,l,m){{var p=r.ReactDebugCurrentFrame,w=p.getStackAddendum();w!==""&&(l+="%s",m=m.concat([w]));var I=m.map(function(N){return String(N)});I.unshift("Warning: "+l),Function.prototype.apply.call(console[b],console,I)}}function o(b,l){return b===l&&(b!==0||1/b===1/l)||b!==b&&l!==l}var i=typeof Object.is=="function"?Object.is:o,u=e.useState,a=e.useEffect,d=e.useLayoutEffect,s=e.useDebugValue,_=!1,c=!1;function h(b,l,m){_||e.startTransition!==void 0&&(_=!0,t("You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."));var p=l();if(!c){var w=l();i(p,w)||(t("The result of getSnapshot should be cached to avoid an infinite loop"),c=!0)}var I=u({inst:{value:p,getSnapshot:l}}),N=I[0].inst,O=I[1];return d(function(){N.value=p,N.getSnapshot=l,y(N)&&O({inst:N})},[b,p,l]),a(function(){y(N)&&O({inst:N});var k=function(){y(N)&&O({inst:N})};return b(k)},[b]),s(p),p}function y(b){var l=b.getSnapshot,m=b.value;try{var p=l();return!i(m,p)}catch{return!0}}function E(b,l,m){return l()}var C=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",f=!C,S=f?E:h,v=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:S;ye.useSyncExternalStore=v,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error)}()),ye}var ke;function Re(){return ke||(ke=1,function(e){process.env.NODE_ENV==="production"?e.exports=Sr():e.exports=vr()}(de)),de.exports}/**
|
|
31
31
|
* @license React
|
|
32
32
|
* use-sync-external-store-shim/with-selector.production.min.js
|
|
33
33
|
*
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
*
|
|
36
36
|
* This source code is licensed under the MIT license found in the
|
|
37
37
|
* LICENSE file in the root directory of this source tree.
|
|
38
|
-
*/var
|
|
38
|
+
*/var Me;function br(){if(Me)return le;Me=1;var e=A.default,r=Re();function t(s,_){return s===_&&(s!==0||1/s===1/_)||s!==s&&_!==_}var n=typeof Object.is=="function"?Object.is:t,o=r.useSyncExternalStore,i=e.useRef,u=e.useEffect,a=e.useMemo,d=e.useDebugValue;return le.useSyncExternalStoreWithSelector=function(s,_,c,h,y){var E=i(null);if(E.current===null){var C={hasValue:!1,value:null};E.current=C}else C=E.current;E=a(function(){function S(p){if(!v){if(v=!0,b=p,p=h(p),y!==void 0&&C.hasValue){var w=C.value;if(y(w,p))return l=w}return l=p}if(w=l,n(b,p))return w;var I=h(p);return y!==void 0&&y(w,I)?w:(b=p,l=I)}var v=!1,b,l,m=c===void 0?null:c;return[function(){return S(_())},m===null?void 0:function(){return S(m())}]},[_,c,h,y]);var f=o(s,E[0],E[1]);return u(function(){C.hasValue=!0,C.value=f},[f]),d(f),f},le}var me={};/**
|
|
39
39
|
* @license React
|
|
40
40
|
* use-sync-external-store-shim/with-selector.development.js
|
|
41
41
|
*
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
*
|
|
44
44
|
* This source code is licensed under the MIT license found in the
|
|
45
45
|
* LICENSE file in the root directory of this source tree.
|
|
46
|
-
*/var
|
|
46
|
+
*/var Ve;function Cr(){return Ve||(Ve=1,process.env.NODE_ENV!=="production"&&function(){typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error);var e=A.default,r=Re();function t(_,c){return _===c&&(_!==0||1/_===1/c)||_!==_&&c!==c}var n=typeof Object.is=="function"?Object.is:t,o=r.useSyncExternalStore,i=e.useRef,u=e.useEffect,a=e.useMemo,d=e.useDebugValue;function s(_,c,h,y,E){var C=i(null),f;C.current===null?(f={hasValue:!1,value:null},C.current=f):f=C.current;var S=a(function(){var m=!1,p,w,I=function(V){if(!m){m=!0,p=V;var F=y(V);if(E!==void 0&&f.hasValue){var W=f.value;if(E(W,F))return w=W,W}return w=F,F}var K=p,B=w;if(n(K,V))return B;var D=y(V);return E!==void 0&&E(B,D)?B:(p=V,w=D,D)},N=h===void 0?null:h,O=function(){return I(c())},k=N===null?void 0:function(){return I(N())};return[O,k]},[c,h,y,E]),v=S[0],b=S[1],l=o(_,v,b);return u(function(){f.hasValue=!0,f.value=l},[l]),d(l),l}me.useSyncExternalStoreWithSelector=s,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error)}()),me}(function(e){process.env.NODE_ENV==="production"?e.exports=br():e.exports=Cr()})(Le);function Tr(e){var r=be.useRef();return r.current||(r.current={v:e()}),r.current.v}var $e=globalThis&&globalThis.__read||function(e,r){var t=typeof Symbol=="function"&&e[Symbol.iterator];if(!t)return e;var n=t.call(e),o,i=[],u;try{for(;(r===void 0||r-- >0)&&!(o=n.next()).done;)i.push(o.value)}catch(a){u={error:a}}finally{try{o&&!o.done&&(t=n.return)&&t.call(n)}finally{if(u)throw u.error}}return i};function Ar(e){return e}var Nr=function(e){var r;return e.subscribe(function(t){r=t}).unsubscribe(),r};function wr(e,r){var t=g.useRef();if(process.env.NODE_ENV!=="production"){var n=$e(g.useState(e),1),o=n[0];e!==o&&console.warn("Machine given to `useMachine` has changed between renders. This is not supported and might lead to unexpected results.\nPlease make sure that you pass the same Machine as argument each time.")}var i=$e(Tr(function(){var s=[],_=pr(Oe(e.config,r||e._options)),c=_.send;return _.send=function(h){if(_.status===Y.NotStarted){s.push(h);return}c(h),t.current=_.state},[_,s]}),2),u=i[0],a=i[1];Er(function(){r&&(u._machine._options=r)});var d=Or(u);return g.useEffect(function(){return u.start(t.current),a.forEach(u.send),t.current=u.state,function(){u.stop()}},[]),d}var Ir=function(e,r){return r.changed===!1};function Or(e){var r=g.useCallback(function(){return Nr(e)},[e]),t=g.useCallback(function(o){var i=e.subscribe(o).unsubscribe;return i},[e]),n=Le.exports.useSyncExternalStoreWithSelector(t,r,r,Ar,Ir);return[n,e.send,e]}function x(e){if(!e){const r=`flattenConnection(): needs a 'connection' to flatten, but received '${e}' instead`;return console.error(r),[]}return e.nodes?e.nodes:e.edges?e.edges.map(r=>{if(!(r!=null&&r.node))throw new Error("Connection edges must contain nodes");return r.node}):[]}const Dr=e=>`
|
|
47
47
|
mutation CartLineAdd($cartId: ID!, $lines: [CartLineInput!]!, $numCartLines: Int = 250, $country: CountryCode = ZZ) @inContext(country: $country) {
|
|
48
48
|
cartLinesAdd(cartId: $cartId, lines: $lines) {
|
|
49
49
|
cart {
|
|
@@ -83,7 +83,7 @@ mutation CartLineUpdate($cartId: ID!, $lines: [CartLineUpdateInput!]!, $numCartL
|
|
|
83
83
|
}
|
|
84
84
|
|
|
85
85
|
${e}
|
|
86
|
-
`,
|
|
86
|
+
`,kr=e=>`
|
|
87
87
|
mutation CartNoteUpdate($cartId: ID!, $note: String, $numCartLines: Int = 250, $country: CountryCode = ZZ) @inContext(country: $country) {
|
|
88
88
|
cartNoteUpdate(cartId: $cartId, note: $note) {
|
|
89
89
|
cart {
|
|
@@ -93,7 +93,7 @@ mutation CartNoteUpdate($cartId: ID!, $note: String, $numCartLines: Int = 250, $
|
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
${e}
|
|
96
|
-
`,
|
|
96
|
+
`,Rr=e=>`
|
|
97
97
|
mutation CartBuyerIdentityUpdate(
|
|
98
98
|
$cartId: ID!
|
|
99
99
|
$buyerIdentity: CartBuyerIdentityInput!
|
|
@@ -108,7 +108,7 @@ mutation CartBuyerIdentityUpdate(
|
|
|
108
108
|
}
|
|
109
109
|
|
|
110
110
|
${e}
|
|
111
|
-
`,
|
|
111
|
+
`,Mr=e=>`
|
|
112
112
|
mutation CartAttributesUpdate($attributes: [AttributeInput!]!, $cartId: ID!, $numCartLines: Int = 250, $country: CountryCode = ZZ) @inContext(country: $country) {
|
|
113
113
|
cartAttributesUpdate(attributes: $attributes, cartId: $cartId) {
|
|
114
114
|
cart {
|
|
@@ -118,7 +118,7 @@ mutation CartAttributesUpdate($attributes: [AttributeInput!]!, $cartId: ID!, $nu
|
|
|
118
118
|
}
|
|
119
119
|
|
|
120
120
|
${e}
|
|
121
|
-
|
|
121
|
+
`,Vr=e=>`
|
|
122
122
|
mutation CartDiscountCodesUpdate($cartId: ID!, $discountCodes: [String!], $numCartLines: Int = 250, $country: CountryCode = ZZ) @inContext(country: $country) {
|
|
123
123
|
cartDiscountCodesUpdate(cartId: $cartId, discountCodes: $discountCodes) {
|
|
124
124
|
cart {
|
|
@@ -128,7 +128,7 @@ mutation CartDiscountCodesUpdate($cartId: ID!, $discountCodes: [String!], $numCa
|
|
|
128
128
|
}
|
|
129
129
|
|
|
130
130
|
${e}
|
|
131
|
-
|
|
131
|
+
`,$r=e=>`
|
|
132
132
|
query CartQuery($id: ID!, $numCartLines: Int = 250, $country: CountryCode = ZZ) @inContext(country: $country) {
|
|
133
133
|
cart(id: $id) {
|
|
134
134
|
...CartFragment
|
|
@@ -136,7 +136,7 @@ query CartQuery($id: ID!, $numCartLines: Int = 250, $country: CountryCode = ZZ)
|
|
|
136
136
|
}
|
|
137
137
|
|
|
138
138
|
${e}
|
|
139
|
-
`,X="2022-10";var Fr="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/ShopifyProvider.tsx";const Fe=g.createContext({storeDomain:"test.myshopify.com",storefrontToken:"abc123",storefrontApiVersion:X,country:{isoCode:"US"},language:{isoCode:"EN"},locale:"EN-US"});function xr({children:e,shopifyConfig:r}){if(!r)throw new Error("The 'shopifyConfig' prop must be passed to '<ShopifyProvider/>'");r.storefrontApiVersion!==X&&console.warn(`This version of Hydrogen-UI is built for Shopify's Storefront API version ${X}, but it looks like you're using version ${r.storefrontApiVersion}. There may be issues or bugs if you use a mismatched version of Hydrogen-UI and the Storefront API.`);const t=g.useMemo(()=>({...r,storeDomain:r.storeDomain.replace(/^https?:\/\//,"")}),[r]);return N.default.createElement(Fe.Provider,{value:t,__self:this,__source:{fileName:Fr,lineNumber:49,columnNumber:5}},e)}function J(){const e=g.useContext(Fe);if(!e)throw new Error("'useShop()' must be a descendent of <ShopifyProvider/>");return e}const _e="shopifyCartId",jr="X-Shopify-Storefront-Access-Token",qr="Shopify-Storefront-Id",Br="Shopify-Storefront-Y",Hr="Shopify-Storefront-S",xe="_shopify_y",je="_shopify_s";var Wr=new Set(["domain","path","max-age","expires","samesite","secure","httponly"]);function Yr(e){let r={},t,n,o=0,i=e.split(/;\s*/g),u,a;for(;o<i.length;o++)if(n=i[o],t=n.indexOf("="),~t){if(u=n.substring(0,t++).trim(),a=n.substring(t).trim(),a[0]==='"'&&(a=a.substring(1,a.length-1)),~a.indexOf("%"))try{a=decodeURIComponent(a)}catch{}Wr.has(n=u.toLowerCase())?n==="expires"?r.expires=new Date(a):n==="max-age"?r.maxage=+a:r[n]=a:r[u]=a}else(u=n.trim().toLowerCase())&&(u==="httponly"||u==="secure")&&(r[u]=!0);return r}function Gr(){const{storeDomain:e,storefrontApiVersion:r,storefrontToken:t,storefrontId:n}=J();return g.useCallback(({query:o,variables:i})=>{const u={"Content-Type":"application/json","X-SDK-Variant":"hydrogen","X-SDK-Version":r,[jr]:t};n&&(u[qr]=n);const a=Yr(document.cookie);return a[xe]&&a[je]&&(u[Br]=a[xe],u[Hr]=a[je]),fetch(`https://${e}/api/${r}/graphql.json`,{method:"POST",headers:u,body:JSON.stringify({query:o.toString(),variables:i})}).then(d=>d.json()).catch(d=>({data:void 0,errors:d.toString()}))},[e,r,t,n])}function Zr({numCartLines:e,cartFragment:r,countryCode:t="US"}){const n=Gr(),o=g.useCallback(y=>n({query:kr(r),variables:{id:y,numCartLines:e,country:t}}),[n,r,e,t]),i=g.useCallback(y=>n({query:Lr(r),variables:{input:y,numCartLines:e,country:t}}),[r,t,n,e]),u=g.useCallback((y,E)=>n({query:Dr(r),variables:{cartId:y,lines:E,numCartLines:e,country:t}}),[r,t,n,e]),a=g.useCallback((y,E)=>n({query:Ur(r),variables:{cartId:y,lines:E,numCartLines:e,country:t}}),[r,t,n,e]),d=g.useCallback((y,E)=>n({query:Pr(r),variables:{cartId:y,lines:E,numCartLines:e,country:t}}),[r,t,n,e]),s=g.useCallback((y,E)=>n({query:Rr(r),variables:{cartId:y,note:E,numCartLines:e,country:t}}),[n,r,e,t]),_=g.useCallback((y,E)=>n({query:Mr(r),variables:{cartId:y,buyerIdentity:E,numCartLines:e,country:t}}),[r,t,n,e]),c=g.useCallback((y,E)=>n({query:Vr(r),variables:{cartId:y,attributes:E,numCartLines:e,country:t}}),[r,t,n,e]),h=g.useCallback((y,E)=>n({query:$r(r),variables:{cartId:y,discountCodes:E,numCartLines:e,country:t}}),[r,t,n,e]);return g.useMemo(()=>({cartFetch:o,cartCreate:i,cartLineAdd:u,cartLineUpdate:a,cartLineRemove:d,noteUpdate:s,buyerIdentityUpdate:_,cartAttributesUpdate:c,discountCodesUpdate:h,cartFragment:r}),[o,i,u,a,d,s,_,c,h,r])}function j(e,r){return{entry:[...(r==null?void 0:r.entryActions)||[],"onCartActionEntry","onCartActionOptimisticUI",e],on:{RESOLVE:{target:(r==null?void 0:r.resolveTarget)||"idle",actions:[Q({prevCart:t=>t==null?void 0:t.cart,cart:(t,n)=>{var o;return(o=n==null?void 0:n.payload)==null?void 0:o.cart},rawCartResult:(t,n)=>{var o;return(o=n==null?void 0:n.payload)==null?void 0:o.rawCartResult},errors:t=>{}})]},ERROR:{target:(r==null?void 0:r.errorTarget)||"error",actions:[Q({prevCart:t=>t==null?void 0:t.cart,cart:t=>t==null?void 0:t.lastValidCart,errors:(t,n)=>{var o;return(o=n==null?void 0:n.payload)==null?void 0:o.errors}})]},CART_COMPLETED:{target:"cartCompleted",actions:Q({prevCart:t=>{},cart:t=>{},lastValidCart:t=>{},errors:t=>{}})}},exit:["onCartActionComplete",...(r==null?void 0:r.exitActions)||[]]}}const ee={CART_FETCH:{target:"cartFetching"},CART_CREATE:{target:"cartCreating"},CART_SET:{target:"idle",actions:[Q({rawCartResult:(e,r)=>r.payload.cart,cart:(e,r)=>he(r.payload.cart)})]}},qe={CARTLINE_ADD:{target:"cartLineAdding"},CARTLINE_UPDATE:{target:"cartLineUpdating"},CARTLINE_REMOVE:{target:"cartLineRemoving"},NOTE_UPDATE:{target:"noteUpdating"},BUYER_IDENTITY_UPDATE:{target:"buyerIdentityUpdating"},CART_ATTRIBUTES_UPDATE:{target:"cartAttributesUpdating"},DISCOUNT_CODES_UPDATE:{target:"discountCodesUpdating"}};function Kr(e){return Oe({id:"Cart",initial:e?"idle":"uninitialized",context:{cart:e&&he(e)},states:{uninitialized:{on:ee},cartCompleted:{on:ee},initializationError:{on:ee},idle:{on:{...ee,...qe}},error:{on:{...ee,...qe}},cartFetching:j("cartFetchAction",{errorTarget:"initializationError"}),cartCreating:j("cartCreateAction",{errorTarget:"initializationError"}),cartLineRemoving:j("cartLineRemoveAction"),cartLineUpdating:j("cartLineUpdateAction"),cartLineAdding:j("cartLineAddAction"),noteUpdating:j("noteUpdateAction"),buyerIdentityUpdating:j("buyerIdentityUpdateAction"),cartAttributesUpdating:j("cartAttributesUpdateAction"),discountCodesUpdating:j("discountCodesUpdateAction")}})}function zr({numCartLines:e,onCartActionEntry:r,onCartActionOptimisticUI:t,onCartActionComplete:n,data:o,cartFragment:i,countryCode:u}){const{cartFetch:a,cartCreate:d,cartLineAdd:s,cartLineUpdate:_,cartLineRemove:c,noteUpdate:h,buyerIdentityUpdate:y,cartAttributesUpdate:E,discountCodesUpdate:T}=Zr({numCartLines:e,cartFragment:i,countryCode:u}),f=g.useMemo(()=>Kr(o),[o]),[S,v,b]=wr(f,{actions:{cartFetchAction:async(l,m)=>{var A;if(m.type!=="CART_FETCH")return;const{data:p,errors:w}=await a((A=m==null?void 0:m.payload)==null?void 0:A.cartId),I=q(m,p==null?void 0:p.cart,w);v(I)},cartCreateAction:async(l,m)=>{var A;if(m.type!=="CART_CREATE")return;const{data:p,errors:w}=await d(m==null?void 0:m.payload),I=q(m,(A=p==null?void 0:p.cartCreate)==null?void 0:A.cart,w);v(I)},cartLineAddAction:async(l,m)=>{var A,O;if(m.type!=="CARTLINE_ADD"||!((A=l==null?void 0:l.cart)!=null&&A.id))return;const{data:p,errors:w}=await s(l.cart.id,m.payload.lines),I=q(m,(O=p==null?void 0:p.cartLinesAdd)==null?void 0:O.cart,w);v(I)},cartLineUpdateAction:async(l,m)=>{var A,O;if(m.type!=="CARTLINE_UPDATE"||!((A=l==null?void 0:l.cart)!=null&&A.id))return;const{data:p,errors:w}=await _(l.cart.id,m.payload.lines),I=q(m,(O=p==null?void 0:p.cartLinesUpdate)==null?void 0:O.cart,w);v(I)},cartLineRemoveAction:async(l,m)=>{var A,O;if(m.type!=="CARTLINE_REMOVE"||!((A=l==null?void 0:l.cart)!=null&&A.id))return;const{data:p,errors:w}=await c(l.cart.id,m.payload.lines),I=q(m,(O=p==null?void 0:p.cartLinesRemove)==null?void 0:O.cart,w);v(I)},noteUpdateAction:async(l,m)=>{var A,O;if(m.type!=="NOTE_UPDATE"||!((A=l==null?void 0:l.cart)!=null&&A.id))return;const{data:p,errors:w}=await h(l.cart.id,m.payload.note),I=q(m,(O=p==null?void 0:p.cartNoteUpdate)==null?void 0:O.cart,w);v(I)},buyerIdentityUpdateAction:async(l,m)=>{var A,O;if(m.type!=="BUYER_IDENTITY_UPDATE"||!((A=l==null?void 0:l.cart)!=null&&A.id))return;const{data:p,errors:w}=await y(l.cart.id,m.payload.buyerIdentity),I=q(m,(O=p==null?void 0:p.cartBuyerIdentityUpdate)==null?void 0:O.cart,w);v(I)},cartAttributesUpdateAction:async(l,m)=>{var A,O;if(m.type!=="CART_ATTRIBUTES_UPDATE"||!((A=l==null?void 0:l.cart)!=null&&A.id))return;const{data:p,errors:w}=await E(l.cart.id,m.payload.attributes),I=q(m,(O=p==null?void 0:p.cartAttributesUpdate)==null?void 0:O.cart,w);v(I)},discountCodesUpdateAction:async(l,m)=>{var A,O;if(m.type!=="DISCOUNT_CODES_UPDATE"||!((A=l==null?void 0:l.cart)!=null&&A.id))return;const{data:p,errors:w}=await T(l.cart.id,m.payload.discountCodes),I=q(m,(O=p==null?void 0:p.cartDiscountCodesUpdate)==null?void 0:O.cart,w);v(I)},...r&&{onCartActionEntry:(l,m)=>{Qr(m)&&r(l,m)}},...t&&{onCartActionOptimisticUI:Q((l,m)=>t(l,m))},...n&&{onCartActionComplete:(l,m)=>{Xr(m)&&n(l,m)}}}});return g.useMemo(()=>[S,v,b],[S,v,b])}function he(e){var r;return{...e,lines:x(e==null?void 0:e.lines),note:(r=e.note)!=null?r:void 0}}function q(e,r,t){return t?{type:"ERROR",payload:{errors:t,cartActionEvent:e}}:r?{type:"RESOLVE",payload:{cart:he(r),rawCartResult:r,cartActionEvent:e}}:{type:"CART_COMPLETED",payload:{cartActionEvent:e}}}function Qr(e){return e.type==="CART_CREATE"||e.type==="CARTLINE_ADD"||e.type==="CARTLINE_UPDATE"||e.type==="CARTLINE_REMOVE"||e.type==="NOTE_UPDATE"||e.type==="BUYER_IDENTITY_UPDATE"||e.type==="CART_ATTRIBUTES_UPDATE"||e.type==="DISCOUNT_CODES_UPDATE"}function Xr(e){return e.type==="RESOLVE"||e.type==="ERROR"||e.type==="CART_COMPLETED"}var Jr="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/CartProvider.tsx";const Be=g.createContext(null);function He(){const e=g.useContext(Be);if(!e)throw new Error("Expected a Cart Context, but no Cart Context was found");return e}function et({children:e,numCartLines:r,onCreate:t,onLineAdd:n,onLineRemove:o,onLineUpdate:i,onNoteUpdate:u,onBuyerIdentityUpdate:a,onAttributesUpdate:d,onDiscountCodesUpdate:s,onCreateComplete:_,onLineAddComplete:c,onLineRemoveComplete:h,onLineUpdateComplete:y,onNoteUpdateComplete:E,onBuyerIdentityUpdateComplete:T,onAttributesUpdateComplete:f,onDiscountCodesUpdateComplete:S,data:v,cartFragment:b=at,customerAccessToken:l,countryCode:m="US"}){var cr,lr,dr,fr,yr,mr,_r;m&&(m=m.toUpperCase());const[p,w]=g.useState(m),[I,A]=g.useState(l),O=g.useRef(!1);(p!==m||I!==l)&&(w(m),A(l),O.current=!1);const[R,$]=zr({numCartLines:r,data:v,cartFragment:b,countryCode:m,onCartActionEntry(C,M){try{switch(M.type){case"CART_CREATE":return t==null?void 0:t();case"CARTLINE_ADD":return n==null?void 0:n();case"CARTLINE_REMOVE":return o==null?void 0:o();case"CARTLINE_UPDATE":return i==null?void 0:i();case"NOTE_UPDATE":return u==null?void 0:u();case"BUYER_IDENTITY_UPDATE":return a==null?void 0:a();case"CART_ATTRIBUTES_UPDATE":return d==null?void 0:d();case"DISCOUNT_CODES_UPDATE":return s==null?void 0:s()}}catch(k){console.error("Cart entry action failed",k)}},onCartActionOptimisticUI(C,M){var k,H,te,ne;if(!(C!=null&&C.cart))return{cart:void 0};switch(M.type){case"CARTLINE_REMOVE":return{...C,lastValidCart:C.cart,cart:{...C.cart,lines:(H=(k=C==null?void 0:C.cart)==null?void 0:k.lines)==null?void 0:H.filter(P=>(P==null?void 0:P.id)&&!M.payload.lines.includes(P==null?void 0:P.id))}};case"CARTLINE_UPDATE":return{...C,lastValidCart:C.cart,cart:{...C.cart,lines:(ne=(te=C==null?void 0:C.cart)==null?void 0:te.lines)==null?void 0:ne.map(P=>{const z=M.payload.lines.find(({id:se})=>se===(P==null?void 0:P.id));return z&&z.quantity?{...P,quantity:z.quantity}:P})}}}return{cart:C.cart?{...C.cart}:void 0}},onCartActionComplete(C,M){const k=M.payload.cartActionEvent;try{switch(M.type){case"RESOLVE":switch(k.type){case"CART_CREATE":return _==null?void 0:_();case"CARTLINE_ADD":return c==null?void 0:c();case"CARTLINE_REMOVE":return h==null?void 0:h();case"CARTLINE_UPDATE":return y==null?void 0:y();case"NOTE_UPDATE":return E==null?void 0:E();case"BUYER_IDENTITY_UPDATE":return nt(C,k)&&(O.current=!0),T==null?void 0:T();case"CART_ATTRIBUTES_UPDATE":return f==null?void 0:f();case"DISCOUNT_CODES_UPDATE":return S==null?void 0:S()}}}catch(H){console.error("onCartActionComplete failed",H)}}}),F=g.useRef(!1),W=R.matches("cartCompleted"),K=(R.value==="idle"||R.value==="error"||R.value==="cartCompleted")&&m!==((dr=(lr=(cr=R==null?void 0:R.context)==null?void 0:cr.cart)==null?void 0:lr.buyerIdentity)==null?void 0:dr.countryCode)&&!R.context.errors,B=g.useRef(!1);g.useEffect(()=>{if(!F.current&&!B.current){if(!v&&ge("localStorage")){B.current=!0;try{const C=window.localStorage.getItem(_e);C&&$({type:"CART_FETCH",payload:{cartId:C}})}catch(C){console.warn("error fetching cartId"),console.warn(C)}}F.current=!0}},[v,F,$]),g.useEffect(()=>{!K||O.current||$({type:"BUYER_IDENTITY_UPDATE",payload:{buyerIdentity:{countryCode:m,customerAccessToken:l}}})},[m,l,K,O,$]);const D=g.useCallback(C=>{if(!F.current)return console.warn("Cart isn't ready yet");$(C)},[$]);g.useEffect(()=>{var C,M,k;if(((M=(C=R==null?void 0:R.context)==null?void 0:C.cart)==null?void 0:M.id)&&ge("localStorage"))try{window.localStorage.setItem(_e,(k=R.context.cart)==null?void 0:k.id)}catch(H){console.warn("Failed to save cartId to localStorage",H)}},[(yr=(fr=R==null?void 0:R.context)==null?void 0:fr.cart)==null?void 0:yr.id]),g.useEffect(()=>{if(W&&ge("localStorage"))try{window.localStorage.removeItem(_e)}catch(C){console.warn("Failed to delete cartId from localStorage",C)}},[W]);const G=g.useCallback(C=>{var M,k;m&&!((M=C.buyerIdentity)!=null&&M.countryCode)&&(C.buyerIdentity==null&&(C.buyerIdentity={}),C.buyerIdentity.countryCode=m),l&&!((k=C.buyerIdentity)!=null&&k.customerAccessToken)&&(C.buyerIdentity==null&&(C.buyerIdentity={}),C.buyerIdentity.customerAccessToken=l),D({type:"CART_CREATE",payload:C})},[m,l,D]),U=tt(R),ue=g.useMemo(()=>{var C,M,k,H,te,ne;return{...(M=(C=U==null?void 0:U.context)==null?void 0:C.cart)!=null?M:{lines:[],attributes:[]},status:rt(U.value),error:(k=U==null?void 0:U.context)==null?void 0:k.errors,totalQuantity:(ne=(te=(H=U==null?void 0:U.context)==null?void 0:H.cart)==null?void 0:te.totalQuantity)!=null?ne:0,cartCreate:G,linesAdd(P){var z,se;(se=(z=U==null?void 0:U.context)==null?void 0:z.cart)!=null&&se.id?D({type:"CARTLINE_ADD",payload:{lines:P}}):G({lines:P})},linesRemove(P){D({type:"CARTLINE_REMOVE",payload:{lines:P}})},linesUpdate(P){D({type:"CARTLINE_UPDATE",payload:{lines:P}})},noteUpdate(P){D({type:"NOTE_UPDATE",payload:{note:P}})},buyerIdentityUpdate(P){D({type:"BUYER_IDENTITY_UPDATE",payload:{buyerIdentity:P}})},cartAttributesUpdate(P){D({type:"CART_ATTRIBUTES_UPDATE",payload:{attributes:P}})},discountCodesUpdate(P){D({type:"DISCOUNT_CODES_UPDATE",payload:{discountCodes:P}})},cartFragment:b}},[G,(mr=U==null?void 0:U.context)==null?void 0:mr.cart,(_r=U==null?void 0:U.context)==null?void 0:_r.errors,U.value,b,D]);return N.default.createElement(Be.Provider,{value:ue,__self:this,__source:{fileName:Jr,lineNumber:425,columnNumber:5}},e)}function rt(e){switch(e){case"uninitialized":case"initializationError":return"uninitialized";case"idle":case"cartCompleted":case"error":return"idle";case"cartFetching":return"fetching";case"cartCreating":return"creating";case"cartLineAdding":case"cartLineRemoving":case"cartLineUpdating":case"noteUpdating":case"buyerIdentityUpdating":case"cartAttributesUpdating":case"discountCodesUpdating":return"updating"}}function tt(e){const[r,t]=g.useTransition(),[n,o]=g.useState(e),i=g.useRef(!1);r&&(i.current=!0);const u=g.useRef(!1);return!r&&i.current&&(u.current=!0),g.useEffect(()=>{t(()=>{u.current||o(e)})},[e]),u.current?e:n}function ge(e){let r;try{r=window[e];const t="__storage_test__";return r.setItem(t,t),r.removeItem(t),!0}catch(t){return t instanceof DOMException&&(t.code===22||t.code===1014||t.name==="QuotaExceededError"||t.name==="NS_ERROR_DOM_QUOTA_REACHED")&&r&&r.length!==0}}function nt(e,r){var t,n;return r.payload.buyerIdentity.countryCode&&((n=(t=e.cart)==null?void 0:t.buyerIdentity)==null?void 0:n.countryCode)!==r.payload.buyerIdentity.countryCode}const at=`
|
|
139
|
+
`,X="2022-10";var Fr="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/ShopifyProvider.tsx";const Fe=g.createContext({storeDomain:"test.myshopify.com",storefrontToken:"abc123",storefrontApiVersion:X,country:{isoCode:"US"},language:{isoCode:"EN"},locale:"EN-US"});function xr({children:e,shopifyConfig:r}){if(!r)throw new Error("The 'shopifyConfig' prop must be passed to '<ShopifyProvider/>'");r.storefrontApiVersion!==X&&console.warn(`This version of Hydrogen-UI is built for Shopify's Storefront API version ${X}, but it looks like you're using version ${r.storefrontApiVersion}. There may be issues or bugs if you use a mismatched version of Hydrogen-UI and the Storefront API.`);const t=g.useMemo(()=>({...r,storeDomain:r.storeDomain.replace(/^https?:\/\//,"")}),[r]);return A.default.createElement(Fe.Provider,{value:t,__self:this,__source:{fileName:Fr,lineNumber:49,columnNumber:5}},e)}function J(){const e=g.useContext(Fe);if(!e)throw new Error("'useShop()' must be a descendent of <ShopifyProvider/>");return e}const _e="shopifyCartId",jr="X-Shopify-Storefront-Access-Token",qr="Shopify-Storefront-Id",Br="Shopify-Storefront-Y",Hr="Shopify-Storefront-S",xe="_shopify_y",je="_shopify_s";var Wr=new Set(["domain","path","max-age","expires","samesite","secure","httponly"]);function Yr(e){let r={},t,n,o=0,i=e.split(/;\s*/g),u,a;for(;o<i.length;o++)if(n=i[o],t=n.indexOf("="),~t){if(u=n.substring(0,t++).trim(),a=n.substring(t).trim(),a[0]==='"'&&(a=a.substring(1,a.length-1)),~a.indexOf("%"))try{a=decodeURIComponent(a)}catch{}Wr.has(n=u.toLowerCase())?n==="expires"?r.expires=new Date(a):n==="max-age"?r.maxage=+a:r[n]=a:r[u]=a}else(u=n.trim().toLowerCase())&&(u==="httponly"||u==="secure")&&(r[u]=!0);return r}function Gr(){const{storeDomain:e,storefrontApiVersion:r,storefrontToken:t,storefrontId:n}=J();return g.useCallback(({query:o,variables:i})=>{const u={"Content-Type":"application/json","X-SDK-Variant":"hydrogen","X-SDK-Version":r,[jr]:t};n&&(u[qr]=n);const a=Yr(document.cookie);return a[xe]&&a[je]&&(u[Br]=a[xe],u[Hr]=a[je]),fetch(`https://${e}/api/${r}/graphql.json`,{method:"POST",headers:u,body:JSON.stringify({query:o.toString(),variables:i})}).then(d=>d.json()).catch(d=>({data:void 0,errors:d.toString()}))},[e,r,t,n])}function Zr({numCartLines:e,cartFragment:r,countryCode:t="US"}){const n=Gr(),o=g.useCallback(y=>n({query:$r(r),variables:{id:y,numCartLines:e,country:t}}),[n,r,e,t]),i=g.useCallback(y=>n({query:Lr(r),variables:{input:y,numCartLines:e,country:t}}),[r,t,n,e]),u=g.useCallback((y,E)=>n({query:Dr(r),variables:{cartId:y,lines:E,numCartLines:e,country:t}}),[r,t,n,e]),a=g.useCallback((y,E)=>n({query:Ur(r),variables:{cartId:y,lines:E,numCartLines:e,country:t}}),[r,t,n,e]),d=g.useCallback((y,E)=>n({query:Pr(r),variables:{cartId:y,lines:E,numCartLines:e,country:t}}),[r,t,n,e]),s=g.useCallback((y,E)=>n({query:kr(r),variables:{cartId:y,note:E,numCartLines:e,country:t}}),[n,r,e,t]),_=g.useCallback((y,E)=>n({query:Rr(r),variables:{cartId:y,buyerIdentity:E,numCartLines:e,country:t}}),[r,t,n,e]),c=g.useCallback((y,E)=>n({query:Mr(r),variables:{cartId:y,attributes:E,numCartLines:e,country:t}}),[r,t,n,e]),h=g.useCallback((y,E)=>n({query:Vr(r),variables:{cartId:y,discountCodes:E,numCartLines:e,country:t}}),[r,t,n,e]);return g.useMemo(()=>({cartFetch:o,cartCreate:i,cartLineAdd:u,cartLineUpdate:a,cartLineRemove:d,noteUpdate:s,buyerIdentityUpdate:_,cartAttributesUpdate:c,discountCodesUpdate:h,cartFragment:r}),[o,i,u,a,d,s,_,c,h,r])}function j(e,r){return{entry:[...(r==null?void 0:r.entryActions)||[],"onCartActionEntry","onCartActionOptimisticUI",e],on:{RESOLVE:{target:(r==null?void 0:r.resolveTarget)||"idle",actions:[Q({prevCart:t=>t==null?void 0:t.cart,cart:(t,n)=>{var o;return(o=n==null?void 0:n.payload)==null?void 0:o.cart},rawCartResult:(t,n)=>{var o;return(o=n==null?void 0:n.payload)==null?void 0:o.rawCartResult},errors:t=>{}})]},ERROR:{target:(r==null?void 0:r.errorTarget)||"error",actions:[Q({prevCart:t=>t==null?void 0:t.cart,cart:t=>t==null?void 0:t.lastValidCart,errors:(t,n)=>{var o;return(o=n==null?void 0:n.payload)==null?void 0:o.errors}})]},CART_COMPLETED:{target:"cartCompleted",actions:Q({prevCart:t=>{},cart:t=>{},lastValidCart:t=>{},errors:t=>{}})}},exit:["onCartActionComplete",...(r==null?void 0:r.exitActions)||[]]}}const ee={CART_FETCH:{target:"cartFetching"},CART_CREATE:{target:"cartCreating"},CART_SET:{target:"idle",actions:[Q({rawCartResult:(e,r)=>r.payload.cart,cart:(e,r)=>he(r.payload.cart)})]}},qe={CARTLINE_ADD:{target:"cartLineAdding"},CARTLINE_UPDATE:{target:"cartLineUpdating"},CARTLINE_REMOVE:{target:"cartLineRemoving"},NOTE_UPDATE:{target:"noteUpdating"},BUYER_IDENTITY_UPDATE:{target:"buyerIdentityUpdating"},CART_ATTRIBUTES_UPDATE:{target:"cartAttributesUpdating"},DISCOUNT_CODES_UPDATE:{target:"discountCodesUpdating"}};function Kr(e){return Oe({id:"Cart",initial:e?"idle":"uninitialized",context:{cart:e&&he(e)},states:{uninitialized:{on:ee},cartCompleted:{on:ee},initializationError:{on:ee},idle:{on:{...ee,...qe}},error:{on:{...ee,...qe}},cartFetching:j("cartFetchAction",{errorTarget:"initializationError"}),cartCreating:j("cartCreateAction",{errorTarget:"initializationError"}),cartLineRemoving:j("cartLineRemoveAction"),cartLineUpdating:j("cartLineUpdateAction"),cartLineAdding:j("cartLineAddAction"),noteUpdating:j("noteUpdateAction"),buyerIdentityUpdating:j("buyerIdentityUpdateAction"),cartAttributesUpdating:j("cartAttributesUpdateAction"),discountCodesUpdating:j("discountCodesUpdateAction")}})}function zr({numCartLines:e,onCartActionEntry:r,onCartActionOptimisticUI:t,onCartActionComplete:n,data:o,cartFragment:i,countryCode:u}){const{cartFetch:a,cartCreate:d,cartLineAdd:s,cartLineUpdate:_,cartLineRemove:c,noteUpdate:h,buyerIdentityUpdate:y,cartAttributesUpdate:E,discountCodesUpdate:C}=Zr({numCartLines:e,cartFragment:i,countryCode:u}),f=g.useMemo(()=>Kr(o),[o]),[S,v,b]=wr(f,{actions:{cartFetchAction:async(l,m)=>{var N;if(m.type!=="CART_FETCH")return;const{data:p,errors:w}=await a((N=m==null?void 0:m.payload)==null?void 0:N.cartId),I=q(m,p==null?void 0:p.cart,w);v(I)},cartCreateAction:async(l,m)=>{var N;if(m.type!=="CART_CREATE")return;const{data:p,errors:w}=await d(m==null?void 0:m.payload),I=q(m,(N=p==null?void 0:p.cartCreate)==null?void 0:N.cart,w);v(I)},cartLineAddAction:async(l,m)=>{var N,O;if(m.type!=="CARTLINE_ADD"||!((N=l==null?void 0:l.cart)!=null&&N.id))return;const{data:p,errors:w}=await s(l.cart.id,m.payload.lines),I=q(m,(O=p==null?void 0:p.cartLinesAdd)==null?void 0:O.cart,w);v(I)},cartLineUpdateAction:async(l,m)=>{var N,O;if(m.type!=="CARTLINE_UPDATE"||!((N=l==null?void 0:l.cart)!=null&&N.id))return;const{data:p,errors:w}=await _(l.cart.id,m.payload.lines),I=q(m,(O=p==null?void 0:p.cartLinesUpdate)==null?void 0:O.cart,w);v(I)},cartLineRemoveAction:async(l,m)=>{var N,O;if(m.type!=="CARTLINE_REMOVE"||!((N=l==null?void 0:l.cart)!=null&&N.id))return;const{data:p,errors:w}=await c(l.cart.id,m.payload.lines),I=q(m,(O=p==null?void 0:p.cartLinesRemove)==null?void 0:O.cart,w);v(I)},noteUpdateAction:async(l,m)=>{var N,O;if(m.type!=="NOTE_UPDATE"||!((N=l==null?void 0:l.cart)!=null&&N.id))return;const{data:p,errors:w}=await h(l.cart.id,m.payload.note),I=q(m,(O=p==null?void 0:p.cartNoteUpdate)==null?void 0:O.cart,w);v(I)},buyerIdentityUpdateAction:async(l,m)=>{var N,O;if(m.type!=="BUYER_IDENTITY_UPDATE"||!((N=l==null?void 0:l.cart)!=null&&N.id))return;const{data:p,errors:w}=await y(l.cart.id,m.payload.buyerIdentity),I=q(m,(O=p==null?void 0:p.cartBuyerIdentityUpdate)==null?void 0:O.cart,w);v(I)},cartAttributesUpdateAction:async(l,m)=>{var N,O;if(m.type!=="CART_ATTRIBUTES_UPDATE"||!((N=l==null?void 0:l.cart)!=null&&N.id))return;const{data:p,errors:w}=await E(l.cart.id,m.payload.attributes),I=q(m,(O=p==null?void 0:p.cartAttributesUpdate)==null?void 0:O.cart,w);v(I)},discountCodesUpdateAction:async(l,m)=>{var N,O;if(m.type!=="DISCOUNT_CODES_UPDATE"||!((N=l==null?void 0:l.cart)!=null&&N.id))return;const{data:p,errors:w}=await C(l.cart.id,m.payload.discountCodes),I=q(m,(O=p==null?void 0:p.cartDiscountCodesUpdate)==null?void 0:O.cart,w);v(I)},...r&&{onCartActionEntry:(l,m)=>{Qr(m)&&r(l,m)}},...t&&{onCartActionOptimisticUI:Q((l,m)=>t(l,m))},...n&&{onCartActionComplete:(l,m)=>{Xr(m)&&n(l,m)}}}});return g.useMemo(()=>[S,v,b],[S,v,b])}function he(e){var r;return{...e,lines:x(e==null?void 0:e.lines),note:(r=e.note)!=null?r:void 0}}function q(e,r,t){return t?{type:"ERROR",payload:{errors:t,cartActionEvent:e}}:r?{type:"RESOLVE",payload:{cart:he(r),rawCartResult:r,cartActionEvent:e}}:{type:"CART_COMPLETED",payload:{cartActionEvent:e}}}function Qr(e){return e.type==="CART_CREATE"||e.type==="CARTLINE_ADD"||e.type==="CARTLINE_UPDATE"||e.type==="CARTLINE_REMOVE"||e.type==="NOTE_UPDATE"||e.type==="BUYER_IDENTITY_UPDATE"||e.type==="CART_ATTRIBUTES_UPDATE"||e.type==="DISCOUNT_CODES_UPDATE"}function Xr(e){return e.type==="RESOLVE"||e.type==="ERROR"||e.type==="CART_COMPLETED"}var Jr="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/CartProvider.tsx";const Be=g.createContext(null);function ge(){const e=g.useContext(Be);if(!e)throw new Error("Expected a Cart Context, but no Cart Context was found");return e}function et({children:e,numCartLines:r,onCreate:t,onLineAdd:n,onLineRemove:o,onLineUpdate:i,onNoteUpdate:u,onBuyerIdentityUpdate:a,onAttributesUpdate:d,onDiscountCodesUpdate:s,onCreateComplete:_,onLineAddComplete:c,onLineRemoveComplete:h,onLineUpdateComplete:y,onNoteUpdateComplete:E,onBuyerIdentityUpdateComplete:C,onAttributesUpdateComplete:f,onDiscountCodesUpdateComplete:S,data:v,cartFragment:b=at,customerAccessToken:l,countryCode:m="US"}){var cr,lr,dr,fr,yr,mr,_r;m&&(m=m.toUpperCase());const[p,w]=g.useState(m),[I,N]=g.useState(l),O=g.useRef(!1);(p!==m||I!==l)&&(w(m),N(l),O.current=!1);const[k,V]=zr({numCartLines:r,data:v,cartFragment:b,countryCode:m,onCartActionEntry(T,R){try{switch(R.type){case"CART_CREATE":return t==null?void 0:t();case"CARTLINE_ADD":return n==null?void 0:n();case"CARTLINE_REMOVE":return o==null?void 0:o();case"CARTLINE_UPDATE":return i==null?void 0:i();case"NOTE_UPDATE":return u==null?void 0:u();case"BUYER_IDENTITY_UPDATE":return a==null?void 0:a();case"CART_ATTRIBUTES_UPDATE":return d==null?void 0:d();case"DISCOUNT_CODES_UPDATE":return s==null?void 0:s()}}catch($){console.error("Cart entry action failed",$)}},onCartActionOptimisticUI(T,R){var $,H,te,ne;if(!(T!=null&&T.cart))return{cart:void 0};switch(R.type){case"CARTLINE_REMOVE":return{...T,lastValidCart:T.cart,cart:{...T.cart,lines:(H=($=T==null?void 0:T.cart)==null?void 0:$.lines)==null?void 0:H.filter(P=>(P==null?void 0:P.id)&&!R.payload.lines.includes(P==null?void 0:P.id))}};case"CARTLINE_UPDATE":return{...T,lastValidCart:T.cart,cart:{...T.cart,lines:(ne=(te=T==null?void 0:T.cart)==null?void 0:te.lines)==null?void 0:ne.map(P=>{const z=R.payload.lines.find(({id:se})=>se===(P==null?void 0:P.id));return z&&z.quantity?{...P,quantity:z.quantity}:P})}}}return{cart:T.cart?{...T.cart}:void 0}},onCartActionComplete(T,R){const $=R.payload.cartActionEvent;try{switch(R.type){case"RESOLVE":switch($.type){case"CART_CREATE":return _==null?void 0:_();case"CARTLINE_ADD":return c==null?void 0:c();case"CARTLINE_REMOVE":return h==null?void 0:h();case"CARTLINE_UPDATE":return y==null?void 0:y();case"NOTE_UPDATE":return E==null?void 0:E();case"BUYER_IDENTITY_UPDATE":return nt(T,$)&&(O.current=!0),C==null?void 0:C();case"CART_ATTRIBUTES_UPDATE":return f==null?void 0:f();case"DISCOUNT_CODES_UPDATE":return S==null?void 0:S()}}}catch(H){console.error("onCartActionComplete failed",H)}}}),F=g.useRef(!1),W=k.matches("cartCompleted"),K=(k.value==="idle"||k.value==="error"||k.value==="cartCompleted")&&m!==((dr=(lr=(cr=k==null?void 0:k.context)==null?void 0:cr.cart)==null?void 0:lr.buyerIdentity)==null?void 0:dr.countryCode)&&!k.context.errors,B=g.useRef(!1);g.useEffect(()=>{if(!F.current&&!B.current){if(!v&&pe("localStorage")){B.current=!0;try{const T=window.localStorage.getItem(_e);T&&V({type:"CART_FETCH",payload:{cartId:T}})}catch(T){console.warn("error fetching cartId"),console.warn(T)}}F.current=!0}},[v,F,V]),g.useEffect(()=>{!K||O.current||V({type:"BUYER_IDENTITY_UPDATE",payload:{buyerIdentity:{countryCode:m,customerAccessToken:l}}})},[m,l,K,O,V]);const D=g.useCallback(T=>{if(!F.current)return console.warn("Cart isn't ready yet");V(T)},[V]);g.useEffect(()=>{var T,R,$;if(((R=(T=k==null?void 0:k.context)==null?void 0:T.cart)==null?void 0:R.id)&&pe("localStorage"))try{window.localStorage.setItem(_e,($=k.context.cart)==null?void 0:$.id)}catch(H){console.warn("Failed to save cartId to localStorage",H)}},[(yr=(fr=k==null?void 0:k.context)==null?void 0:fr.cart)==null?void 0:yr.id]),g.useEffect(()=>{if(W&&pe("localStorage"))try{window.localStorage.removeItem(_e)}catch(T){console.warn("Failed to delete cartId from localStorage",T)}},[W]);const G=g.useCallback(T=>{var R,$;m&&!((R=T.buyerIdentity)!=null&&R.countryCode)&&(T.buyerIdentity==null&&(T.buyerIdentity={}),T.buyerIdentity.countryCode=m),l&&!(($=T.buyerIdentity)!=null&&$.customerAccessToken)&&(T.buyerIdentity==null&&(T.buyerIdentity={}),T.buyerIdentity.customerAccessToken=l),D({type:"CART_CREATE",payload:T})},[m,l,D]),U=tt(k),ue=g.useMemo(()=>{var T,R,$,H,te,ne;return{...(R=(T=U==null?void 0:U.context)==null?void 0:T.cart)!=null?R:{lines:[],attributes:[]},status:rt(U.value),error:($=U==null?void 0:U.context)==null?void 0:$.errors,totalQuantity:(ne=(te=(H=U==null?void 0:U.context)==null?void 0:H.cart)==null?void 0:te.totalQuantity)!=null?ne:0,cartCreate:G,linesAdd(P){var z,se;(se=(z=U==null?void 0:U.context)==null?void 0:z.cart)!=null&&se.id?D({type:"CARTLINE_ADD",payload:{lines:P}}):G({lines:P})},linesRemove(P){D({type:"CARTLINE_REMOVE",payload:{lines:P}})},linesUpdate(P){D({type:"CARTLINE_UPDATE",payload:{lines:P}})},noteUpdate(P){D({type:"NOTE_UPDATE",payload:{note:P}})},buyerIdentityUpdate(P){D({type:"BUYER_IDENTITY_UPDATE",payload:{buyerIdentity:P}})},cartAttributesUpdate(P){D({type:"CART_ATTRIBUTES_UPDATE",payload:{attributes:P}})},discountCodesUpdate(P){D({type:"DISCOUNT_CODES_UPDATE",payload:{discountCodes:P}})},cartFragment:b}},[G,(mr=U==null?void 0:U.context)==null?void 0:mr.cart,(_r=U==null?void 0:U.context)==null?void 0:_r.errors,U.value,b,D]);return A.default.createElement(Be.Provider,{value:ue,__self:this,__source:{fileName:Jr,lineNumber:425,columnNumber:5}},e)}function rt(e){switch(e){case"uninitialized":case"initializationError":return"uninitialized";case"idle":case"cartCompleted":case"error":return"idle";case"cartFetching":return"fetching";case"cartCreating":return"creating";case"cartLineAdding":case"cartLineRemoving":case"cartLineUpdating":case"noteUpdating":case"buyerIdentityUpdating":case"cartAttributesUpdating":case"discountCodesUpdating":return"updating"}}function tt(e){const[r,t]=g.useTransition(),[n,o]=g.useState(e),i=g.useRef(!1);r&&(i.current=!0);const u=g.useRef(!1);return!r&&i.current&&(u.current=!0),g.useEffect(()=>{t(()=>{u.current||o(e)})},[e]),u.current?e:n}function pe(e){let r;try{r=window[e];const t="__storage_test__";return r.setItem(t,t),r.removeItem(t),!0}catch(t){return t instanceof DOMException&&(t.code===22||t.code===1014||t.name==="QuotaExceededError"||t.name==="NS_ERROR_DOM_QUOTA_REACHED")&&r&&r.length!==0}}function nt(e,r){var t,n;return r.payload.buyerIdentity.countryCode&&((n=(t=e.cart)==null?void 0:t.buyerIdentity)==null?void 0:n.countryCode)!==r.payload.buyerIdentity.countryCode}const at=`
|
|
140
140
|
fragment CartFragment on Cart {
|
|
141
141
|
id
|
|
142
142
|
checkoutUrl
|
|
@@ -235,6 +235,6 @@ fragment ImageFragment on Image {
|
|
|
235
235
|
width
|
|
236
236
|
height
|
|
237
237
|
}
|
|
238
|
-
`;var it="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/ProductProvider.tsx";const We=g.createContext(null);function ot({children:e,data:r,initialVariantId:t}){const n=g.useMemo(()=>{var f;return x((f=r.variants)!=null?f:{})},[r.variants]);if(!st(n))throw new Error("<ProductProvider/> requires 'product.variants.nodes' or 'product.variants.edges'");const o=g.useMemo(()=>ut(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(Ge(n,b)),b})},[d,n]),_=g.useCallback((f,S)=>{var b;const v=Ge(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]),[h,y]=g.useState(void 0),E=g.useMemo(()=>{var f,S;if(!(!i||!h)){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)===h.id})}},[i,h]),T=g.useMemo(()=>({variants:n,variantsConnection:r.variants,options:o,selectedVariant:i,setSelectedVariant:u,selectedOptions:a,setSelectedOption:s,setSelectedOptions:d,isOptionInStock:_,selectedSellingPlan:h,setSelectedSellingPlan:y,selectedSellingPlanAllocation:E,sellingPlanGroups:c,sellingPlanGroupsConnection:r.sellingPlanGroups}),[_,o,r.sellingPlanGroups,r.variants,a,h,E,i,c,s,n]);return N.default.createElement(We.Provider,{value:T,__self:this,__source:{fileName:it,lineNumber:201,columnNumber:5}},e)}function Ye(){const e=g.useContext(We);if(!e)throw new Error("'useProduct' must be a child of <ProductProvider />");return e}function Ge(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 ut(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 st(e){return!(!e||!Array.isArray(e))}var pe="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/AddToCartButton.tsx";function ct(e){var S;const[r,t]=g.useState(!1),{variantId:n,quantity:o=1,attributes:i,sellingPlanId:u,onClick:a,children:d,accessibleAddingToCartLabel:s,..._}=e,{status:c,linesAdd:h}=He(),{selectedVariant:y}=Ye(),E=(S=n!=null?n:y==null?void 0:y.id)!=null?S:"",T=n===null||E===""||y===null||r||_.disabled;g.useEffect(()=>{r&&c==="idle"&&t(!1)},[c,r]);const f=g.useCallback(()=>{t(!0),h([{quantity:o,merchandiseId:E||"",attributes:i,sellingPlanId:u}])},[h,o,E,i,u]);return N.default.createElement(N.default.Fragment,null,N.default.createElement(lt,{..._,disabled:T,onClick:a,defaultOnClick:f,__self:this,__source:{fileName:pe,lineNumber:70,columnNumber:7}},d),s?N.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:pe,lineNumber:79,columnNumber:9}},r?s:null):null)}function lt(e){const{as:r,onClick:t,defaultOnClick:n,children:o,buttonRef:i,...u}=e,a=g.useCallback(s=>{if(t){const _=t(s);if(typeof _=="boolean"&&_===!1||(s==null?void 0:s.defaultPrevented))return}n==null||n(s)},[n,t]),d=r||"button";return N.default.createElement(d,{ref:i,onClick:a,...u,__self:this,__source:{fileName:pe,lineNumber:157,columnNumber:5}},o)}var dt="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/ExternalVideo.tsx";function ze(e){var _,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 h=new URL(r.embedUrl);for(const y of Object.keys(t))h.searchParams.set(y,t[y]);s=h.toString()}return N.default.createElement("iframe",{...d,id:n!=null?n:r.embedUrl,title:(c=(_=r.alt)!=null?_:r.id)!=null?c:"external video",frameBorder:o,allow:i,allowFullScreen:u,src:s,loading:a,__self:this,__source:{fileName:dt,lineNumber:56,columnNumber:5}})}const ft=["cdn.shopify.com","cdn.shopifycdn.net","shopify-assets.shopifycdn.com","shopify-assets.shopifycdn.net"],yt=["spin.dev"],mt=[...ft,...yt],re=[352,832,1200,1920,2560];function Qe({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 Xe(e){const r=new URL(e.src);return!mt.some(n=>r.hostname.endsWith(n))||!e.width&&!e.height&&!e.crop&&!e.scale?e.src:Qe(e)}function _t({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 ht="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/Image.tsx";function ie({data:e,width:r,height:t,loading:n,loader:o=Xe,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:_}=_t({data:e,loaderOptions:i,elementProps:{width:r,height:t}});let c=e.url;if(o&&(c=o({...i,src:e.url,width:s,height:_}),typeof c!="string"||!c))throw new Error(`<Image/>: 'loader' did not return a valid string. Image: ${(T=e.id)!=null?T:e.url}`);const h=r&&s&&r<s?r:s,y=(f=d.srcSet)!=null?f:gt({...i,widths:u,src:e.url,width:h,height:_,loader:o});return be.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:_!=null?_:void 0,srcSet:y,decoding:a,__self:this,__source:{fileName:ht,lineNumber:150,columnNumber:5}})}function gt({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 _=i||Qe;return s.map(c=>`${_({src:e,width:c,height:t?Number(c)*d:void 0,crop:t,scale:n})} ${c}w`).join(", ")}var Je="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/Video.tsx";function Ee(e){var s,_;const{data:r,previewImageOptions:t,id:n=r.id,playsInline:o=!0,controls:i=!0,sourceProps:u={},...a}=e,d=Xe({src:(_=(s=r.previewImage)==null?void 0:s.url)!=null?_:"",...t});if(!r.sources)throw new Error("<Video/> requires a 'data.sources' array");return N.default.createElement("video",{...a,id:n,playsInline:o,controls:i,poster:d,__self:this,__source:{fileName:Je,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 N.default.createElement("source",{...u,key:c.url,src:c.url,type:c.mimeType,__self:this,__source:{fileName:Je,lineNumber:54,columnNumber:11}})}))}const er={};function pt(e,r){const t=er[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 er[e]=n,n}function rr(e,r){const[t,n]=g.useState("loading"),o=JSON.stringify(r);return g.useEffect(()=>{async function i(){try{n("loading"),await pt(e,r),n("done")}catch{n("error")}}i()},[e,o,r]),t}var Et="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/ModelViewer.tsx";function tr(e){var s,_,c,h,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=rr("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:(_=(s=o.sources)==null?void 0:s[0])!=null&&_.url?N.default.createElement("model-viewer",{ref:n,...a,className:u,id:(c=a.id)!=null?c:o.id,src:o.sources[0].url,alt:(h=o.alt)!=null?h: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:Et,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 oe="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/MediaFile.tsx";function St({data:e,mediaOptions:r,...t}){switch(e.__typename){case"MediaImage":return e.image?N.default.createElement(ie,{...t,...r==null?void 0:r.image,data:e.image,__self:this,__source:{fileName:oe,lineNumber:54,columnNumber:9}}):(console.warn("<MediaFile/>: 'data.image' does not exist for __typename of 'MediaImage'; rendering 'null' by default."),null);case"Video":return N.default.createElement(Ee,{...t,...r==null?void 0:r.video,data:e,__self:this,__source:{fileName:oe,lineNumber:63,columnNumber:9}});case"ExternalVideo":return N.default.createElement(ze,{...t,...r==null?void 0:r.externalVideo,data:e,__self:this,__source:{fileName:oe,lineNumber:68,columnNumber:9}});case"Model3d":return N.default.createElement(tr,{...t,...r==null?void 0:r.modelViewer,data:e,__self:this,__source:{fileName:oe,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 V="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/Metafield.tsx";function vt(e){var a,d,s,_,c,h,y,E,T;const{data:r,as:t,...n}=e,{locale:o}=J(),i=g.useMemo(()=>nr(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 N.default.createElement(f,{...n,__self:this,__source:{fileName:V,lineNumber:68,columnNumber:9}},i.value.toLocaleDateString(o))}case"date_time":{const f=t!=null?t:"time";return N.default.createElement(f,{...n,__self:this,__source:{fileName:V,lineNumber:76,columnNumber:9}},i.value.toLocaleString(o))}case"weight":case"dimension":case"volume":{const f=t!=null?t:"span";return N.default.createElement(f,{...n,__self:this,__source:{fileName:V,lineNumber:86,columnNumber:9}},Tt(i.value,o))}case"rating":{const f=t!=null?t:"span";return N.default.createElement(f,{...n,__self:this,__source:{fileName:V,lineNumber:94,columnNumber:9}},i.value.value)}case"single_line_text_field":{const f=t!=null?t:"span";return N.default.createElement(f,{...n,dangerouslySetInnerHTML:{__html:i.value},__self:this,__source:{fileName:V,lineNumber:102,columnNumber:9}})}case"multi_line_text_field":{const f=t!=null?t:"div";return N.default.createElement(f,{...n,dangerouslySetInnerHTML:{__html:i.value.split(`
|
|
239
|
-
`).join("<br/>")},__self:this,__source:{fileName:V,lineNumber:111,columnNumber:9}})}case"url":{const f=new URL(i.value);return N.default.createElement("a",{href:f.href.replace(f.protocol,""),...n,__self:this,__source:{fileName:V,lineNumber:122,columnNumber:9}},i.value)}case"json":{const f=t!=null?t:"span";return N.default.createElement(f,{...n,__self:this,__source:{fileName:V,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 N.default.createElement(f,{...n,__self:this,__source:{fileName:V,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 N.default.createElement(f,{...n,__self:this,__source:{fileName:V,lineNumber:154,columnNumber:9}},S.map((v,b)=>N.default.createElement("li",{key:`${v!=null?v:""}-${b}`,__self:this,__source:{fileName:V,lineNumber:158,columnNumber:13}},v)))}case"file_reference":if(((_=i.reference)==null?void 0:_.__typename)==="MediaImage"){const f=i.reference;return f.image?N.default.createElement(ie,{data:f.image,...n,__self:this,__source:{fileName:V,lineNumber:167,columnNumber:11}}):null}else if(((c=i.reference)==null?void 0:c.__typename)==="GenericFile"){const f=i.reference;return f.previewImage?N.default.createElement("a",{href:(y=(h=i.reference)==null?void 0:h.url)!=null?y:"",...n,__self:this,__source:{fileName:V,lineNumber:172,columnNumber:11}},N.default.createElement(ie,{data:f.previewImage,__self:this,__source:{fileName:V,lineNumber:173,columnNumber:13}})):null}else if(((E=i.reference)==null?void 0:E.__typename)==="Video"){const f=i.reference;return N.default.createElement(Ee,{...n,data:f,__self:this,__source:{fileName:V,lineNumber:178,columnNumber:16}})}}const u=t!=null?t:"span";return N.default.createElement(u,{...n,__self:this,__source:{fileName:V,lineNumber:185,columnNumber:5}},(T=i.value)==null?void 0:T.toString())}function nr(e){return e?{...e,value:ar(e)}:null}function ar(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 Se(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 Se(e){return String(e).includes("__proto__")?JSON.parse(e,(r,t)=>{if(r!=="__proto__")return t}):JSON.parse(e)}const bt={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 Tt(e,r="en-us",t={}){let n={value:e.value,unit:bt[e.unit]};return n.unit==null&&(n=Ct(e.value,e.unit)),new Intl.NumberFormat(r,{...t,unit:n.unit,style:"unit"}).format(n.value)}function Ct(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 At(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=Se((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=Se((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 ir(e){const{locale:r}=J();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}),_=h=>h.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 h,y;return(y=(h=i().formatToParts(t).find(_))==null?void 0:h.value)!=null?y:e.currencyCode},currencySymbol:()=>{var h,y;return(y=(h=o().formatToParts(t).find(_))==null?void 0:h.value)!=null?y:e.currencyCode},currencyNarrowSymbol:()=>{var h,y;return(y=(h=u().formatToParts(t).find(_))==null?void 0:h.value)!=null?y:""},amount:()=>o().formatToParts(t).filter(h=>["decimal","fraction","group","integer","literal"].includes(h.type)).map(h=>h.value).join("")}),[e,t,i,o,u,d,a,s]);return g.useMemo(()=>new Proxy(c,{get:(h,y)=>{var E;return(E=Reflect.get(h,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 Nt="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/Money.tsx";function ve({data:e,as:r,withoutCurrency:t,withoutTrailingZeros:n,measurement:o,measurementSeparator:i="/",...u}){if(!wt(e))throw new Error("<Money/> needs a valid 'data' prop that has 'amount' and 'currencyCode'");const a=ir(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),N.default.createElement(d,{...u,__self:this,__source:{fileName:Nt,lineNumber:65,columnNumber:5}},s,o&&o.referenceUnit&&N.default.createElement(N.default.Fragment,null,i,o.referenceUnit))}function wt(e){return typeof e.amount=="string"&&!!e.amount&&typeof e.currencyCode=="string"&&!!e.currencyCode}var or="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/ProductPrice.tsx";function It(e){var s,_,c,h,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&&(_=x((s=o==null?void 0:o.variants)!=null?s:{}).find(S=>(S==null?void 0:S.id)===t))!=null?_:null;if(r==="compareAt")if(t&&d){if(((c=d.compareAtPriceV2)==null?void 0:c.amount)===((h=d.priceV2)==null?void 0:h.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?N.default.createElement(ve,{...i,data:u,measurement:a,__self:this,__source:{fileName:or,lineNumber:81,columnNumber:7}}):N.default.createElement(ve,{...i,data:u,__self:this,__source:{fileName:or,lineNumber:85,columnNumber:10}}):null}var ur="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/ShopPayButton.tsx";const Ot="https://cdn.shopify.com/shopifycloud/shop-js/v1.0/client.js";function Dt({variantIds:e,className:r,variantIdsAndQuantities:t,width:n}){const{storeDomain:o}=J(),i=rr(Ot);let u;if(e&&t)throw new Error(Pt);if(e)u=e.reduce((d,s)=>{const _=sr(s);return _&&d.push(_),d},[]);else if(t)u=t.reduce((d,s)=>{var c;const _=sr(s==null?void 0:s.id);return _&&d.push(`${_}:${(c=s==null?void 0:s.quantity)!=null?c:1}`),d},[]);else throw new Error(Lt);const a=n?{"--shop-pay-button-width":n}:void 0;return N.default.createElement("div",{className:r,style:a,__self:this,__source:{fileName:ur,lineNumber:90,columnNumber:5}},i==="done"&&N.default.createElement("shop-pay-button",{"store-url":`https://${o}`,variants:u.join(","),__self:this,__source:{fileName:ur,lineNumber:92,columnNumber:9}}))}function sr(e){if(!!e)return e.split("/").pop()}const Lt='You must pass in either "variantIds" or "variantIdsAndQuantities" to ShopPayButton',Pt="You must provide either a variantIds or variantIdsAndQuantities prop, but not both in the ShopPayButton component";function Ut({storeDomain:e,privateStorefrontToken:r,publicStorefrontToken:t,storefrontApiVersion:n,contentType:o}){return n!==X&&console.warn(`StorefrontClient: The Storefront API version that you're using is different than the version this build of Hydrogen-UI is targeting. You may run into unexpected errors if these versions don't match. Received verion: "${n}"; expected version "${X}"`),{getStorefrontApiUrl(i){var u,a;return`https://${(u=i==null?void 0:i.storeDomain)!=null?u:e}.myshopify.com/api/${(a=i==null?void 0:i.storefrontApiVersion)!=null?a:n}/graphql.json`},getPrivateTokenHeaders(i){var a,d,s;if(!r&&!(i!=null&&i.privateStorefrontToken))throw new Error("StorefrontClient: You did not pass in a 'privateStorefrontToken' while using 'getPrivateTokenHeaders()'");return{"content-type":((a=i==null?void 0:i.contentType)!=null?a:o)==="graphql"?"application/graphql":"application/json","X-SDK-Variant":"hydrogen-ui","X-SDK-Variant-Source":"react","X-SDK-Version":n,"Shopify-Storefront-Private-Token":(s=(d=i==null?void 0:i.privateStorefrontToken)!=null?d:r)!=null?s:"",...i!=null&&i.buyerIp?{"Shopify-Storefront-Buyer-IP":i.buyerIp}:{}}},getPublicTokenHeaders(i){var a,d,s;if(!t&&!(i!=null&&i.publicStorefrontToken))throw new Error("StorefrontClient: You did not pass in a 'publicStorefrontToken' while using 'getPublicTokenHeaders()'");return{"content-type":((a=i==null?void 0:i.contentType)!=null?a:o)==="graphql"?"application/graphql":"application/json","X-SDK-Variant":"hydrogen-ui","X-SDK-Variant-Source":"react","X-SDK-Version":n,"X-Shopify-Storefront-Access-Token":(s=(d=i==null?void 0:i.publicStorefrontToken)!=null?d:t)!=null?s:""}}}}L.AddToCartButton=ct,L.CartProvider=et,L.ExternalVideo=ze,L.Image=ie,L.MediaFile=St,L.Metafield=vt,L.ModelViewer=tr,L.Money=ve,L.ProductPrice=It,L.ProductProvider=ot,L.ShopPayButton=Dt,L.ShopifyProvider=xr,L.Video=Ee,L.createStorefrontClient=Ut,L.flattenConnection=x,L.metafieldParser=At,L.parseMetafield=nr,L.parseMetafieldValue=ar,L.useCart=He,L.useMoney=ir,L.useProduct=Ye,L.useShop=J,Object.defineProperties(L,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
|
238
|
+
`;var it="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/ProductProvider.tsx";const He=g.createContext(null);function ot({children:e,data:r,initialVariantId:t}){const n=g.useMemo(()=>{var f;return x((f=r.variants)!=null?f:{})},[r.variants]);if(!st(n))throw new Error("<ProductProvider/> requires 'product.variants.nodes' or 'product.variants.edges'");const o=g.useMemo(()=>ut(n),[n]),[i,u]=g.useState(()=>Ge(t,n)),[a,d]=g.useState(()=>Ze(i));g.useEffect(()=>{const f=Ge(t,n);u(f),d(Ze(f))},[t,n]);const s=g.useCallback((f,S)=>{d(v=>{const b={...v,[f]:S};return u(Ye(n,b)),b})},[d,n]),_=g.useCallback((f,S)=>{var b;const v=Ye(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]),[h,y]=g.useState(void 0),E=g.useMemo(()=>{var f,S;if(!(!i||!h)){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)===h.id})}},[i,h]),C=g.useMemo(()=>({variants:n,variantsConnection:r.variants,options:o,selectedVariant:i,setSelectedVariant:u,selectedOptions:a,setSelectedOption:s,setSelectedOptions:d,isOptionInStock:_,selectedSellingPlan:h,setSelectedSellingPlan:y,selectedSellingPlanAllocation:E,sellingPlanGroups:c,sellingPlanGroupsConnection:r.sellingPlanGroups}),[_,o,r.sellingPlanGroups,r.variants,a,h,E,i,c,s,n]);return A.default.createElement(He.Provider,{value:C,__self:this,__source:{fileName:it,lineNumber:201,columnNumber:5}},e)}function We(){const e=g.useContext(He);if(!e)throw new Error("'useProduct' must be a child of <ProductProvider />");return e}function Ye(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 ut(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 Ge(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 Ze(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 st(e){return!(!e||!Array.isArray(e))}var ct="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/BaseButton.tsx";function lt(e){const{as:r,onClick:t,defaultOnClick:n,children:o,buttonRef:i,...u}=e,a=g.useCallback(s=>{if(t){const _=t(s);if(typeof _=="boolean"&&_===!1||(s==null?void 0:s.defaultPrevented))return}n==null||n(s)},[n,t]),d=r||"button";return A.default.createElement(d,{ref:i,onClick:a,...u,__self:this,__source:{fileName:ct,lineNumber:59,columnNumber:5}},o)}var Ke="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/AddToCartButton.tsx";function dt(e){var S;const[r,t]=g.useState(!1),{variantId:n,quantity:o=1,attributes:i,sellingPlanId:u,onClick:a,children:d,accessibleAddingToCartLabel:s,..._}=e,{status:c,linesAdd:h}=ge(),{selectedVariant:y}=We(),E=(S=n!=null?n:y==null?void 0:y.id)!=null?S:"",C=n===null||E===""||y===null||r||_.disabled;g.useEffect(()=>{r&&c==="idle"&&t(!1)},[c,r]);const f=g.useCallback(()=>{t(!0),h([{quantity:o,merchandiseId:E||"",attributes:i,sellingPlanId:u}])},[h,o,E,i,u]);return A.default.createElement(A.default.Fragment,null,A.default.createElement(lt,{..._,disabled:C,onClick:a,defaultOnClick:f,__self:this,__source:{fileName:Ke,lineNumber:71,columnNumber:7}},d),s?A.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:Ke,lineNumber:80,columnNumber:9}},r?s:null):null)}var ft="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/CartCheckoutButton.tsx";function yt(e){const[r,t]=g.useState(!1),{status:n,checkoutUrl:o}=ge(),{children:i,...u}=e;return g.useEffect(()=>{r&&o&&n==="idle"&&(window.location.href=o)},[r,n,o]),A.default.createElement("button",{...u,disabled:r||u.disabled,onClick:()=>t(!0),__self:this,__source:{fileName:ft,lineNumber:27,columnNumber:5}},i)}var mt="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/ExternalVideo.tsx";function ze(e){var _,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 h=new URL(r.embedUrl);for(const y of Object.keys(t))h.searchParams.set(y,t[y]);s=h.toString()}return A.default.createElement("iframe",{...d,id:n!=null?n:r.embedUrl,title:(c=(_=r.alt)!=null?_:r.id)!=null?c:"external video",frameBorder:o,allow:i,allowFullScreen:u,src:s,loading:a,__self:this,__source:{fileName:mt,lineNumber:56,columnNumber:5}})}const _t=["cdn.shopify.com","cdn.shopifycdn.net","shopify-assets.shopifycdn.com","shopify-assets.shopifycdn.net"],ht=["spin.dev"],gt=[..._t,...ht],re=[352,832,1200,1920,2560];function Qe({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 Xe(e){const r=new URL(e.src);return!gt.some(n=>r.hostname.endsWith(n))||!e.width&&!e.height&&!e.crop&&!e.scale?e.src:Qe(e)}function pt({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 Et="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/Image.tsx";function ie({data:e,width:r,height:t,loading:n,loader:o=Xe,loaderOptions:i,widths:u,decoding:a="async",...d}){var E,C,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:_}=pt({data:e,loaderOptions:i,elementProps:{width:r,height:t}});let c=e.url;if(o&&(c=o({...i,src:e.url,width:s,height:_}),typeof c!="string"||!c))throw new Error(`<Image/>: 'loader' did not return a valid string. Image: ${(C=e.id)!=null?C:e.url}`);const h=r&&s&&r<s?r:s,y=(f=d.srcSet)!=null?f:St({...i,widths:u,src:e.url,width:h,height:_,loader:o});return be.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:_!=null?_:void 0,srcSet:y,decoding:a,__self:this,__source:{fileName:Et,lineNumber:150,columnNumber:5}})}function St({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 _=i||Qe;return s.map(c=>`${_({src:e,width:c,height:t?Number(c)*d:void 0,crop:t,scale:n})} ${c}w`).join(", ")}var Je="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/Video.tsx";function Ee(e){var s,_;const{data:r,previewImageOptions:t,id:n=r.id,playsInline:o=!0,controls:i=!0,sourceProps:u={},...a}=e,d=Xe({src:(_=(s=r.previewImage)==null?void 0:s.url)!=null?_:"",...t});if(!r.sources)throw new Error("<Video/> requires a 'data.sources' array");return A.default.createElement("video",{...a,id:n,playsInline:o,controls:i,poster:d,__self:this,__source:{fileName:Je,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 A.default.createElement("source",{...u,key:c.url,src:c.url,type:c.mimeType,__self:this,__source:{fileName:Je,lineNumber:54,columnNumber:11}})}))}const er={};function vt(e,r){const t=er[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 er[e]=n,n}function rr(e,r){const[t,n]=g.useState("loading"),o=JSON.stringify(r);return g.useEffect(()=>{async function i(){try{n("loading"),await vt(e,r),n("done")}catch{n("error")}}i()},[e,o,r]),t}var bt="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/ModelViewer.tsx";function tr(e){var s,_,c,h,y,E,C,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=rr("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:(_=(s=o.sources)==null?void 0:s[0])!=null&&_.url?A.default.createElement("model-viewer",{ref:n,...a,className:u,id:(c=a.id)!=null?c:o.id,src:o.sources[0].url,alt:(h=o.alt)!=null?h:null,"camera-controls":(y=a.cameraControls)!=null?y:!0,poster:(C=a.poster||((E=o.previewImage)==null?void 0:E.url))!=null?C: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:bt,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 oe="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/MediaFile.tsx";function Ct({data:e,mediaOptions:r,...t}){switch(e.__typename){case"MediaImage":return e.image?A.default.createElement(ie,{...t,...r==null?void 0:r.image,data:e.image,__self:this,__source:{fileName:oe,lineNumber:54,columnNumber:9}}):(console.warn("<MediaFile/>: 'data.image' does not exist for __typename of 'MediaImage'; rendering 'null' by default."),null);case"Video":return A.default.createElement(Ee,{...t,...r==null?void 0:r.video,data:e,__self:this,__source:{fileName:oe,lineNumber:63,columnNumber:9}});case"ExternalVideo":return A.default.createElement(ze,{...t,...r==null?void 0:r.externalVideo,data:e,__self:this,__source:{fileName:oe,lineNumber:68,columnNumber:9}});case"Model3d":return A.default.createElement(tr,{...t,...r==null?void 0:r.modelViewer,data:e,__self:this,__source:{fileName:oe,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 M="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/Metafield.tsx";function Tt(e){var a,d,s,_,c,h,y,E,C;const{data:r,as:t,...n}=e,{locale:o}=J(),i=g.useMemo(()=>nr(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 A.default.createElement(f,{...n,__self:this,__source:{fileName:M,lineNumber:68,columnNumber:9}},i.value.toLocaleDateString(o))}case"date_time":{const f=t!=null?t:"time";return A.default.createElement(f,{...n,__self:this,__source:{fileName:M,lineNumber:76,columnNumber:9}},i.value.toLocaleString(o))}case"weight":case"dimension":case"volume":{const f=t!=null?t:"span";return A.default.createElement(f,{...n,__self:this,__source:{fileName:M,lineNumber:86,columnNumber:9}},Nt(i.value,o))}case"rating":{const f=t!=null?t:"span";return A.default.createElement(f,{...n,__self:this,__source:{fileName:M,lineNumber:94,columnNumber:9}},i.value.value)}case"single_line_text_field":{const f=t!=null?t:"span";return A.default.createElement(f,{...n,dangerouslySetInnerHTML:{__html:i.value},__self:this,__source:{fileName:M,lineNumber:102,columnNumber:9}})}case"multi_line_text_field":{const f=t!=null?t:"div";return A.default.createElement(f,{...n,dangerouslySetInnerHTML:{__html:i.value.split(`
|
|
239
|
+
`).join("<br/>")},__self:this,__source:{fileName:M,lineNumber:111,columnNumber:9}})}case"url":{const f=new URL(i.value);return A.default.createElement("a",{href:f.href.replace(f.protocol,""),...n,__self:this,__source:{fileName:M,lineNumber:122,columnNumber:9}},i.value)}case"json":{const f=t!=null?t:"span";return A.default.createElement(f,{...n,__self:this,__source:{fileName:M,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 A.default.createElement(f,{...n,__self:this,__source:{fileName:M,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 A.default.createElement(f,{...n,__self:this,__source:{fileName:M,lineNumber:154,columnNumber:9}},S.map((v,b)=>A.default.createElement("li",{key:`${v!=null?v:""}-${b}`,__self:this,__source:{fileName:M,lineNumber:158,columnNumber:13}},v)))}case"file_reference":if(((_=i.reference)==null?void 0:_.__typename)==="MediaImage"){const f=i.reference;return f.image?A.default.createElement(ie,{data:f.image,...n,__self:this,__source:{fileName:M,lineNumber:167,columnNumber:11}}):null}else if(((c=i.reference)==null?void 0:c.__typename)==="GenericFile"){const f=i.reference;return f.previewImage?A.default.createElement("a",{href:(y=(h=i.reference)==null?void 0:h.url)!=null?y:"",...n,__self:this,__source:{fileName:M,lineNumber:172,columnNumber:11}},A.default.createElement(ie,{data:f.previewImage,__self:this,__source:{fileName:M,lineNumber:173,columnNumber:13}})):null}else if(((E=i.reference)==null?void 0:E.__typename)==="Video"){const f=i.reference;return A.default.createElement(Ee,{...n,data:f,__self:this,__source:{fileName:M,lineNumber:178,columnNumber:16}})}}const u=t!=null?t:"span";return A.default.createElement(u,{...n,__self:this,__source:{fileName:M,lineNumber:185,columnNumber:5}},(C=i.value)==null?void 0:C.toString())}function nr(e){return e?{...e,value:ar(e)}:null}function ar(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 Se(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 Se(e){return String(e).includes("__proto__")?JSON.parse(e,(r,t)=>{if(r!=="__proto__")return t}):JSON.parse(e)}const At={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 Nt(e,r="en-us",t={}){let n={value:e.value,unit:At[e.unit]};return n.unit==null&&(n=wt(e.value,e.unit)),new Intl.NumberFormat(r,{...t,unit:n.unit,style:"unit"}).format(n.value)}function wt(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 It(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=Se((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=Se((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 ir(e){const{locale:r}=J();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}),_=h=>h.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 h,y;return(y=(h=i().formatToParts(t).find(_))==null?void 0:h.value)!=null?y:e.currencyCode},currencySymbol:()=>{var h,y;return(y=(h=o().formatToParts(t).find(_))==null?void 0:h.value)!=null?y:e.currencyCode},currencyNarrowSymbol:()=>{var h,y;return(y=(h=u().formatToParts(t).find(_))==null?void 0:h.value)!=null?y:""},amount:()=>o().formatToParts(t).filter(h=>["decimal","fraction","group","integer","literal"].includes(h.type)).map(h=>h.value).join("")}),[e,t,i,o,u,d,a,s]);return g.useMemo(()=>new Proxy(c,{get:(h,y)=>{var E;return(E=Reflect.get(h,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 Ot="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/Money.tsx";function ve({data:e,as:r,withoutCurrency:t,withoutTrailingZeros:n,measurement:o,measurementSeparator:i="/",...u}){if(!Dt(e))throw new Error("<Money/> needs a valid 'data' prop that has 'amount' and 'currencyCode'");const a=ir(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),A.default.createElement(d,{...u,__self:this,__source:{fileName:Ot,lineNumber:65,columnNumber:5}},s,o&&o.referenceUnit&&A.default.createElement(A.default.Fragment,null,i,o.referenceUnit))}function Dt(e){return typeof e.amount=="string"&&!!e.amount&&typeof e.currencyCode=="string"&&!!e.currencyCode}var or="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/ProductPrice.tsx";function Lt(e){var s,_,c,h,y,E,C,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&&(_=x((s=o==null?void 0:o.variants)!=null?s:{}).find(S=>(S==null?void 0:S.id)===t))!=null?_:null;if(r==="compareAt")if(t&&d){if(((c=d.compareAtPriceV2)==null?void 0:c.amount)===((h=d.priceV2)==null?void 0:h.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=(C=o.priceRange)==null?void 0:C.maxVariantPrice:u=(f=o.priceRange)==null?void 0:f.minVariantPrice;return u?a?A.default.createElement(ve,{...i,data:u,measurement:a,__self:this,__source:{fileName:or,lineNumber:81,columnNumber:7}}):A.default.createElement(ve,{...i,data:u,__self:this,__source:{fileName:or,lineNumber:85,columnNumber:10}}):null}var ur="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/ShopPayButton.tsx";const Pt="https://cdn.shopify.com/shopifycloud/shop-js/v1.0/client.js";function Ut({variantIds:e,className:r,variantIdsAndQuantities:t,width:n}){const{storeDomain:o}=J(),i=rr(Pt);let u;if(e&&t)throw new Error(Rt);if(e)u=e.reduce((d,s)=>{const _=sr(s);return _&&d.push(_),d},[]);else if(t)u=t.reduce((d,s)=>{var c;const _=sr(s==null?void 0:s.id);return _&&d.push(`${_}:${(c=s==null?void 0:s.quantity)!=null?c:1}`),d},[]);else throw new Error(kt);const a=n?{"--shop-pay-button-width":n}:void 0;return A.default.createElement("div",{className:r,style:a,__self:this,__source:{fileName:ur,lineNumber:90,columnNumber:5}},i==="done"&&A.default.createElement("shop-pay-button",{"store-url":`https://${o}`,variants:u.join(","),__self:this,__source:{fileName:ur,lineNumber:92,columnNumber:9}}))}function sr(e){if(!!e)return e.split("/").pop()}const kt='You must pass in either "variantIds" or "variantIdsAndQuantities" to ShopPayButton',Rt="You must provide either a variantIds or variantIdsAndQuantities prop, but not both in the ShopPayButton component";function Mt({storeDomain:e,privateStorefrontToken:r,publicStorefrontToken:t,storefrontApiVersion:n,contentType:o}){return n!==X&&console.warn(`StorefrontClient: The Storefront API version that you're using is different than the version this build of Hydrogen-UI is targeting. You may run into unexpected errors if these versions don't match. Received verion: "${n}"; expected version "${X}"`),{getStorefrontApiUrl(i){var u,a;return`https://${(u=i==null?void 0:i.storeDomain)!=null?u:e}.myshopify.com/api/${(a=i==null?void 0:i.storefrontApiVersion)!=null?a:n}/graphql.json`},getPrivateTokenHeaders(i){var a,d,s;if(!r&&!(i!=null&&i.privateStorefrontToken))throw new Error("StorefrontClient: You did not pass in a 'privateStorefrontToken' while using 'getPrivateTokenHeaders()'");return{"content-type":((a=i==null?void 0:i.contentType)!=null?a:o)==="graphql"?"application/graphql":"application/json","X-SDK-Variant":"hydrogen-ui","X-SDK-Variant-Source":"react","X-SDK-Version":n,"Shopify-Storefront-Private-Token":(s=(d=i==null?void 0:i.privateStorefrontToken)!=null?d:r)!=null?s:"",...i!=null&&i.buyerIp?{"Shopify-Storefront-Buyer-IP":i.buyerIp}:{}}},getPublicTokenHeaders(i){var a,d,s;if(!t&&!(i!=null&&i.publicStorefrontToken))throw new Error("StorefrontClient: You did not pass in a 'publicStorefrontToken' while using 'getPublicTokenHeaders()'");return{"content-type":((a=i==null?void 0:i.contentType)!=null?a:o)==="graphql"?"application/graphql":"application/json","X-SDK-Variant":"hydrogen-ui","X-SDK-Variant-Source":"react","X-SDK-Version":n,"X-Shopify-Storefront-Access-Token":(s=(d=i==null?void 0:i.publicStorefrontToken)!=null?d:t)!=null?s:""}}}}L.AddToCartButton=dt,L.CartCheckoutButton=yt,L.CartProvider=et,L.ExternalVideo=ze,L.Image=ie,L.MediaFile=Ct,L.Metafield=Tt,L.ModelViewer=tr,L.Money=ve,L.ProductPrice=Lt,L.ProductProvider=ot,L.ShopPayButton=Ut,L.ShopifyProvider=xr,L.Video=Ee,L.createStorefrontClient=Mt,L.flattenConnection=x,L.metafieldParser=It,L.parseMetafield=nr,L.parseMetafieldValue=ar,L.useCart=ge,L.useMoney=ir,L.useProduct=We,L.useShop=J,Object.defineProperties(L,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
|
240
240
|
//# sourceMappingURL=hydrogen-react.prod.js.map
|