@shopify/hydrogen-react 2022.10.1 → 2022.10.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (617) hide show
  1. package/README.md +49 -0
  2. package/dist/browser-dev/AddToCartButton.mjs +70 -0
  3. package/dist/browser-dev/AddToCartButton.mjs.map +1 -0
  4. package/dist/browser-dev/BaseButton.mjs +31 -0
  5. package/dist/browser-dev/BaseButton.mjs.map +1 -0
  6. package/dist/browser-dev/BuyNowButton.mjs +45 -0
  7. package/dist/browser-dev/BuyNowButton.mjs.map +1 -0
  8. package/dist/browser-dev/CartCheckoutButton.mjs +30 -0
  9. package/dist/browser-dev/CartCheckoutButton.mjs.map +1 -0
  10. package/dist/{dev → browser-dev}/CartProvider.mjs +0 -0
  11. package/dist/{dev → browser-dev}/CartProvider.mjs.map +0 -0
  12. package/dist/{dev → browser-dev}/ExternalVideo.mjs +0 -0
  13. package/dist/{dev → browser-dev}/ExternalVideo.mjs.map +0 -0
  14. package/dist/{dev → browser-dev}/Image.mjs +0 -0
  15. package/dist/{dev → browser-dev}/Image.mjs.map +0 -0
  16. package/dist/{dev → browser-dev}/MediaFile.mjs +0 -0
  17. package/dist/browser-dev/MediaFile.mjs.map +1 -0
  18. package/dist/{dev → browser-dev}/Metafield.mjs +6 -0
  19. package/dist/browser-dev/Metafield.mjs.map +1 -0
  20. package/dist/{dev → browser-dev}/ModelViewer.mjs +0 -0
  21. package/dist/{dev → browser-dev}/ModelViewer.mjs.map +0 -0
  22. package/dist/{dev → browser-dev}/Money.mjs +0 -0
  23. package/dist/{dev → browser-dev}/Money.mjs.map +0 -0
  24. package/dist/{dev → browser-dev}/ProductPrice.mjs +0 -0
  25. package/dist/browser-dev/ProductPrice.mjs.map +1 -0
  26. package/dist/{dev → browser-dev}/ProductProvider.mjs +0 -0
  27. package/dist/{dev → browser-dev}/ProductProvider.mjs.map +0 -0
  28. package/dist/{dev → browser-dev}/ShopPayButton.mjs +0 -0
  29. package/dist/{dev → browser-dev}/ShopPayButton.mjs.map +0 -0
  30. package/dist/{dev → browser-dev}/ShopifyProvider.mjs +23 -5
  31. package/dist/browser-dev/ShopifyProvider.mjs.map +1 -0
  32. package/dist/{dev → browser-dev}/Video.mjs +0 -0
  33. package/dist/{dev → browser-dev}/Video.mjs.map +0 -0
  34. package/dist/{dev → browser-dev}/_virtual/index.mjs +0 -0
  35. package/dist/{dev → browser-dev}/_virtual/index.mjs.map +0 -0
  36. package/dist/{dev → browser-dev}/_virtual/use-sync-external-store-shim.development.mjs +0 -0
  37. package/dist/{dev → browser-dev}/_virtual/use-sync-external-store-shim.development.mjs.map +0 -0
  38. package/dist/{dev → browser-dev}/_virtual/use-sync-external-store-shim.production.min.mjs +0 -0
  39. package/dist/{dev → browser-dev}/_virtual/use-sync-external-store-shim.production.min.mjs.map +0 -0
  40. package/dist/{dev → browser-dev}/_virtual/with-selector.development.mjs +0 -0
  41. package/dist/{dev → browser-dev}/_virtual/with-selector.development.mjs.map +0 -0
  42. package/dist/{dev → browser-dev}/_virtual/with-selector.mjs +0 -0
  43. package/dist/{dev → browser-dev}/_virtual/with-selector.mjs.map +0 -0
  44. package/dist/{dev → browser-dev}/_virtual/with-selector.production.min.mjs +0 -0
  45. package/dist/{dev → browser-dev}/_virtual/with-selector.production.min.mjs.map +0 -0
  46. package/dist/{dev → browser-dev}/cart-constants.mjs +1 -3
  47. package/dist/browser-dev/cart-constants.mjs.map +1 -0
  48. package/dist/{dev → browser-dev}/cart-hooks.mjs +11 -15
  49. package/dist/browser-dev/cart-hooks.mjs.map +1 -0
  50. package/dist/{dev → browser-dev}/cart-queries.mjs +0 -0
  51. package/dist/{dev → browser-dev}/cart-queries.mjs.map +0 -0
  52. package/dist/browser-dev/codegen.helpers.mjs +12 -0
  53. package/dist/browser-dev/codegen.helpers.mjs.map +1 -0
  54. package/dist/{dev → browser-dev}/flatten-connection.mjs +0 -0
  55. package/dist/{dev → browser-dev}/flatten-connection.mjs.map +0 -0
  56. package/dist/{dev → browser-dev}/image-size.mjs +0 -0
  57. package/dist/{dev → browser-dev}/image-size.mjs.map +0 -0
  58. package/dist/{dev → browser-dev}/index.mjs +10 -0
  59. package/dist/browser-dev/index.mjs.map +1 -0
  60. package/dist/{dev → browser-dev}/load-script.mjs +0 -0
  61. package/dist/{dev → browser-dev}/load-script.mjs.map +0 -0
  62. package/dist/browser-dev/metafield-parser.mjs +103 -0
  63. package/dist/browser-dev/metafield-parser.mjs.map +1 -0
  64. package/dist/{dev → browser-dev}/node_modules/@xstate/fsm/es/index.mjs +0 -0
  65. package/dist/{dev → browser-dev}/node_modules/@xstate/fsm/es/index.mjs.map +0 -0
  66. package/dist/{dev → browser-dev}/node_modules/@xstate/react/es/fsm.mjs +0 -0
  67. package/dist/{dev → browser-dev}/node_modules/@xstate/react/es/fsm.mjs.map +0 -0
  68. package/dist/{dev → browser-dev}/node_modules/@xstate/react/es/useConstant.mjs +0 -0
  69. package/dist/{dev → browser-dev}/node_modules/@xstate/react/es/useConstant.mjs.map +0 -0
  70. package/dist/{dev → browser-dev}/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.mjs +0 -0
  71. package/dist/{dev → browser-dev}/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.mjs.map +0 -0
  72. package/dist/{dev → browser-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs +0 -0
  73. package/dist/{dev → browser-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +0 -0
  74. package/dist/{dev → browser-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs +0 -0
  75. package/dist/{dev → browser-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +0 -0
  76. package/dist/{dev → browser-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs +0 -0
  77. package/dist/{dev → browser-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +0 -0
  78. package/dist/{dev → browser-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs +0 -0
  79. package/dist/{dev → browser-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +0 -0
  80. package/dist/{dev → browser-dev}/node_modules/use-sync-external-store/shim/index.mjs +0 -0
  81. package/dist/{dev → browser-dev}/node_modules/use-sync-external-store/shim/index.mjs.map +0 -0
  82. package/dist/{dev → browser-dev}/node_modules/use-sync-external-store/shim/with-selector.mjs +0 -0
  83. package/dist/{dev → browser-dev}/node_modules/use-sync-external-store/shim/with-selector.mjs.map +0 -0
  84. package/dist/{dev → browser-dev}/storefront-api-constants.mjs +0 -0
  85. package/dist/{dev → browser-dev}/storefront-api-constants.mjs.map +0 -0
  86. package/dist/{dev → browser-dev}/storefront-client.mjs +22 -10
  87. package/dist/browser-dev/storefront-client.mjs.map +1 -0
  88. package/dist/{dev → browser-dev}/useCartAPIStateMachine.mjs +0 -0
  89. package/dist/{dev → browser-dev}/useCartAPIStateMachine.mjs.map +0 -0
  90. package/dist/{dev → browser-dev}/useCartActions.mjs +0 -0
  91. package/dist/{dev → browser-dev}/useCartActions.mjs.map +0 -0
  92. package/dist/{dev → browser-dev}/useMoney.mjs +0 -0
  93. package/dist/{dev → browser-dev}/useMoney.mjs.map +0 -0
  94. package/dist/browser-prod/AddToCartButton.mjs +70 -0
  95. package/dist/browser-prod/AddToCartButton.mjs.map +1 -0
  96. package/dist/browser-prod/BaseButton.mjs +31 -0
  97. package/dist/browser-prod/BaseButton.mjs.map +1 -0
  98. package/dist/browser-prod/BuyNowButton.mjs +45 -0
  99. package/dist/browser-prod/BuyNowButton.mjs.map +1 -0
  100. package/dist/browser-prod/CartCheckoutButton.mjs +30 -0
  101. package/dist/browser-prod/CartCheckoutButton.mjs.map +1 -0
  102. package/dist/{prod → browser-prod}/CartProvider.mjs +0 -0
  103. package/dist/{prod → browser-prod}/CartProvider.mjs.map +0 -0
  104. package/dist/{prod → browser-prod}/ExternalVideo.mjs +0 -0
  105. package/dist/{prod → browser-prod}/ExternalVideo.mjs.map +0 -0
  106. package/dist/{prod → browser-prod}/Image.mjs +0 -0
  107. package/dist/{prod → browser-prod}/Image.mjs.map +0 -0
  108. package/dist/{prod → browser-prod}/MediaFile.mjs +0 -0
  109. package/dist/browser-prod/MediaFile.mjs.map +1 -0
  110. package/dist/{prod → browser-prod}/Metafield.mjs +0 -0
  111. package/dist/browser-prod/Metafield.mjs.map +1 -0
  112. package/dist/{prod → browser-prod}/ModelViewer.mjs +0 -0
  113. package/dist/{prod → browser-prod}/ModelViewer.mjs.map +0 -0
  114. package/dist/{prod → browser-prod}/Money.mjs +0 -0
  115. package/dist/{prod → browser-prod}/Money.mjs.map +0 -0
  116. package/dist/{prod → browser-prod}/ProductPrice.mjs +0 -0
  117. package/dist/browser-prod/ProductPrice.mjs.map +1 -0
  118. package/dist/{prod → browser-prod}/ProductProvider.mjs +0 -0
  119. package/dist/{prod → browser-prod}/ProductProvider.mjs.map +0 -0
  120. package/dist/{prod → browser-prod}/ShopPayButton.mjs +0 -0
  121. package/dist/{prod → browser-prod}/ShopPayButton.mjs.map +0 -0
  122. package/dist/{prod → browser-prod}/ShopifyProvider.mjs +23 -5
  123. package/dist/browser-prod/ShopifyProvider.mjs.map +1 -0
  124. package/dist/{prod → browser-prod}/Video.mjs +0 -0
  125. package/dist/{prod → browser-prod}/Video.mjs.map +0 -0
  126. package/dist/{prod → browser-prod}/_virtual/index.mjs +0 -0
  127. package/dist/{prod → browser-prod}/_virtual/index.mjs.map +0 -0
  128. package/dist/{prod → browser-prod}/_virtual/use-sync-external-store-shim.development.mjs +0 -0
  129. package/dist/{prod → browser-prod}/_virtual/use-sync-external-store-shim.development.mjs.map +0 -0
  130. package/dist/{prod → browser-prod}/_virtual/use-sync-external-store-shim.production.min.mjs +0 -0
  131. package/dist/{prod → browser-prod}/_virtual/use-sync-external-store-shim.production.min.mjs.map +0 -0
  132. package/dist/{prod → browser-prod}/_virtual/with-selector.development.mjs +0 -0
  133. package/dist/{prod → browser-prod}/_virtual/with-selector.development.mjs.map +0 -0
  134. package/dist/{prod → browser-prod}/_virtual/with-selector.mjs +0 -0
  135. package/dist/{prod → browser-prod}/_virtual/with-selector.mjs.map +0 -0
  136. package/dist/{prod → browser-prod}/_virtual/with-selector.production.min.mjs +0 -0
  137. package/dist/{prod → browser-prod}/_virtual/with-selector.production.min.mjs.map +0 -0
  138. package/dist/{prod → browser-prod}/cart-constants.mjs +1 -3
  139. package/dist/browser-prod/cart-constants.mjs.map +1 -0
  140. package/dist/{prod → browser-prod}/cart-hooks.mjs +11 -15
  141. package/dist/browser-prod/cart-hooks.mjs.map +1 -0
  142. package/dist/{prod → browser-prod}/cart-queries.mjs +0 -0
  143. package/dist/{prod → browser-prod}/cart-queries.mjs.map +0 -0
  144. package/dist/browser-prod/codegen.helpers.mjs +12 -0
  145. package/dist/browser-prod/codegen.helpers.mjs.map +1 -0
  146. package/dist/{prod → browser-prod}/flatten-connection.mjs +0 -0
  147. package/dist/{prod → browser-prod}/flatten-connection.mjs.map +0 -0
  148. package/dist/{prod → browser-prod}/image-size.mjs +0 -0
  149. package/dist/{prod → browser-prod}/image-size.mjs.map +0 -0
  150. package/dist/{prod → browser-prod}/index.mjs +10 -0
  151. package/dist/browser-prod/index.mjs.map +1 -0
  152. package/dist/{prod → browser-prod}/load-script.mjs +0 -0
  153. package/dist/{prod → browser-prod}/load-script.mjs.map +0 -0
  154. package/dist/browser-prod/metafield-parser.mjs +114 -0
  155. package/dist/browser-prod/metafield-parser.mjs.map +1 -0
  156. package/dist/{prod → browser-prod}/node_modules/@xstate/fsm/es/index.mjs +0 -0
  157. package/dist/{prod → browser-prod}/node_modules/@xstate/fsm/es/index.mjs.map +0 -0
  158. package/dist/{prod → browser-prod}/node_modules/@xstate/react/es/fsm.mjs +0 -0
  159. package/dist/{prod → browser-prod}/node_modules/@xstate/react/es/fsm.mjs.map +0 -0
  160. package/dist/{prod → browser-prod}/node_modules/@xstate/react/es/useConstant.mjs +0 -0
  161. package/dist/{prod → browser-prod}/node_modules/@xstate/react/es/useConstant.mjs.map +0 -0
  162. package/dist/{prod → browser-prod}/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.mjs +0 -0
  163. package/dist/{prod → browser-prod}/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.mjs.map +0 -0
  164. package/dist/{prod → browser-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs +0 -0
  165. package/dist/{prod → browser-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +0 -0
  166. package/dist/{prod → browser-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs +0 -0
  167. package/dist/{prod → browser-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +0 -0
  168. package/dist/{prod → browser-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs +0 -0
  169. package/dist/{prod → browser-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +0 -0
  170. package/dist/{prod → browser-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs +0 -0
  171. package/dist/{prod → browser-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +0 -0
  172. package/dist/{prod → browser-prod}/node_modules/use-sync-external-store/shim/index.mjs +0 -0
  173. package/dist/{prod → browser-prod}/node_modules/use-sync-external-store/shim/index.mjs.map +0 -0
  174. package/dist/{prod → browser-prod}/node_modules/use-sync-external-store/shim/with-selector.mjs +0 -0
  175. package/dist/{prod → browser-prod}/node_modules/use-sync-external-store/shim/with-selector.mjs.map +0 -0
  176. package/dist/{prod → browser-prod}/storefront-api-constants.mjs +0 -0
  177. package/dist/{prod → browser-prod}/storefront-api-constants.mjs.map +0 -0
  178. package/dist/{prod → browser-prod}/storefront-client.mjs +22 -10
  179. package/dist/browser-prod/storefront-client.mjs.map +1 -0
  180. package/dist/{prod → browser-prod}/useCartAPIStateMachine.mjs +0 -0
  181. package/dist/{prod → browser-prod}/useCartAPIStateMachine.mjs.map +0 -0
  182. package/dist/{prod → browser-prod}/useCartActions.mjs +0 -0
  183. package/dist/{prod → browser-prod}/useCartActions.mjs.map +0 -0
  184. package/dist/{prod → browser-prod}/useMoney.mjs +0 -0
  185. package/dist/{prod → browser-prod}/useMoney.mjs.map +0 -0
  186. package/dist/node-dev/AddToCartButton.js +70 -0
  187. package/dist/node-dev/AddToCartButton.js.map +1 -0
  188. package/dist/node-dev/AddToCartButton.mjs +70 -0
  189. package/dist/node-dev/AddToCartButton.mjs.map +1 -0
  190. package/dist/node-dev/BaseButton.js +31 -0
  191. package/dist/node-dev/BaseButton.js.map +1 -0
  192. package/dist/node-dev/BaseButton.mjs +31 -0
  193. package/dist/node-dev/BaseButton.mjs.map +1 -0
  194. package/dist/node-dev/BuyNowButton.js +45 -0
  195. package/dist/node-dev/BuyNowButton.js.map +1 -0
  196. package/dist/node-dev/BuyNowButton.mjs +45 -0
  197. package/dist/node-dev/BuyNowButton.mjs.map +1 -0
  198. package/dist/node-dev/CartCheckoutButton.js +30 -0
  199. package/dist/node-dev/CartCheckoutButton.js.map +1 -0
  200. package/dist/node-dev/CartCheckoutButton.mjs +30 -0
  201. package/dist/node-dev/CartCheckoutButton.mjs.map +1 -0
  202. package/dist/{dev → node-dev}/CartProvider.js +0 -0
  203. package/dist/{dev → node-dev}/CartProvider.js.map +0 -0
  204. package/dist/node-dev/CartProvider.mjs +485 -0
  205. package/dist/node-dev/CartProvider.mjs.map +1 -0
  206. package/dist/{dev → node-dev}/ExternalVideo.js +0 -0
  207. package/dist/{dev → node-dev}/ExternalVideo.js.map +0 -0
  208. package/dist/node-dev/ExternalVideo.mjs +39 -0
  209. package/dist/node-dev/ExternalVideo.mjs.map +1 -0
  210. package/dist/{dev → node-dev}/Image.js +0 -0
  211. package/dist/{dev → node-dev}/Image.js.map +0 -0
  212. package/dist/node-dev/Image.mjs +104 -0
  213. package/dist/node-dev/Image.mjs.map +1 -0
  214. package/dist/{dev → node-dev}/MediaFile.js +0 -0
  215. package/dist/node-dev/MediaFile.js.map +1 -0
  216. package/dist/node-dev/MediaFile.mjs +57 -0
  217. package/dist/node-dev/MediaFile.mjs.map +1 -0
  218. package/dist/{dev → node-dev}/Metafield.js +6 -0
  219. package/dist/node-dev/Metafield.js.map +1 -0
  220. package/dist/node-dev/Metafield.mjs +301 -0
  221. package/dist/node-dev/Metafield.mjs.map +1 -0
  222. package/dist/{dev → node-dev}/ModelViewer.js +0 -0
  223. package/dist/{dev → node-dev}/ModelViewer.js.map +0 -0
  224. package/dist/node-dev/ModelViewer.mjs +145 -0
  225. package/dist/node-dev/ModelViewer.mjs.map +1 -0
  226. package/dist/{dev → node-dev}/Money.js +0 -0
  227. package/dist/{dev → node-dev}/Money.js.map +0 -0
  228. package/dist/node-dev/Money.mjs +40 -0
  229. package/dist/node-dev/Money.mjs.map +1 -0
  230. package/dist/{dev → node-dev}/ProductPrice.js +0 -0
  231. package/dist/node-dev/ProductPrice.js.map +1 -0
  232. package/dist/node-dev/ProductPrice.mjs +61 -0
  233. package/dist/node-dev/ProductPrice.mjs.map +1 -0
  234. package/dist/{dev → node-dev}/ProductProvider.js +0 -0
  235. package/dist/{dev → node-dev}/ProductProvider.js.map +0 -0
  236. package/dist/node-dev/ProductProvider.mjs +161 -0
  237. package/dist/node-dev/ProductProvider.mjs.map +1 -0
  238. package/dist/{dev → node-dev}/ShopPayButton.js +0 -0
  239. package/dist/{dev → node-dev}/ShopPayButton.js.map +0 -0
  240. package/dist/node-dev/ShopPayButton.mjs +64 -0
  241. package/dist/node-dev/ShopPayButton.mjs.map +1 -0
  242. package/dist/{prod → node-dev}/ShopifyProvider.js +23 -5
  243. package/dist/node-dev/ShopifyProvider.js.map +1 -0
  244. package/dist/node-dev/ShopifyProvider.mjs +64 -0
  245. package/dist/node-dev/ShopifyProvider.mjs.map +1 -0
  246. package/dist/{dev → node-dev}/Video.js +0 -0
  247. package/dist/{dev → node-dev}/Video.js.map +0 -0
  248. package/dist/node-dev/Video.mjs +44 -0
  249. package/dist/node-dev/Video.mjs.map +1 -0
  250. package/dist/{dev → node-dev}/_virtual/index.js +0 -0
  251. package/dist/{dev → node-dev}/_virtual/index.js.map +0 -0
  252. package/dist/node-dev/_virtual/index.mjs +5 -0
  253. package/dist/{dev → node-dev/_virtual}/index.mjs.map +1 -1
  254. package/dist/{dev → node-dev}/_virtual/use-sync-external-store-shim.development.js +0 -0
  255. package/dist/{dev → node-dev}/_virtual/use-sync-external-store-shim.development.js.map +0 -0
  256. package/dist/node-dev/_virtual/use-sync-external-store-shim.development.mjs +5 -0
  257. package/dist/node-dev/_virtual/use-sync-external-store-shim.development.mjs.map +1 -0
  258. package/dist/{dev → node-dev}/_virtual/use-sync-external-store-shim.production.min.js +0 -0
  259. package/dist/{dev → node-dev}/_virtual/use-sync-external-store-shim.production.min.js.map +0 -0
  260. package/dist/node-dev/_virtual/use-sync-external-store-shim.production.min.mjs +5 -0
  261. package/dist/node-dev/_virtual/use-sync-external-store-shim.production.min.mjs.map +1 -0
  262. package/dist/{dev → node-dev}/_virtual/with-selector.development.js +0 -0
  263. package/dist/{dev → node-dev}/_virtual/with-selector.development.js.map +0 -0
  264. package/dist/node-dev/_virtual/with-selector.development.mjs +5 -0
  265. package/dist/node-dev/_virtual/with-selector.development.mjs.map +1 -0
  266. package/dist/{dev → node-dev}/_virtual/with-selector.js +0 -0
  267. package/dist/{dev → node-dev}/_virtual/with-selector.js.map +0 -0
  268. package/dist/node-dev/_virtual/with-selector.mjs +5 -0
  269. package/dist/node-dev/_virtual/with-selector.mjs.map +1 -0
  270. package/dist/{dev → node-dev}/_virtual/with-selector.production.min.js +0 -0
  271. package/dist/{dev → node-dev}/_virtual/with-selector.production.min.js.map +0 -0
  272. package/dist/node-dev/_virtual/with-selector.production.min.mjs +5 -0
  273. package/dist/node-dev/_virtual/with-selector.production.min.mjs.map +1 -0
  274. package/dist/{prod → node-dev}/cart-constants.js +0 -2
  275. package/dist/node-dev/cart-constants.js.map +1 -0
  276. package/dist/node-dev/cart-constants.mjs +15 -0
  277. package/dist/node-dev/cart-constants.mjs.map +1 -0
  278. package/dist/{prod → node-dev}/cart-hooks.js +10 -14
  279. package/dist/node-dev/cart-hooks.js.map +1 -0
  280. package/dist/node-dev/cart-hooks.mjs +44 -0
  281. package/dist/node-dev/cart-hooks.mjs.map +1 -0
  282. package/dist/{dev → node-dev}/cart-queries.js +0 -0
  283. package/dist/{dev → node-dev}/cart-queries.js.map +0 -0
  284. package/dist/node-dev/cart-queries.mjs +114 -0
  285. package/dist/node-dev/cart-queries.mjs.map +1 -0
  286. package/dist/node-dev/codegen.helpers.js +12 -0
  287. package/dist/node-dev/codegen.helpers.js.map +1 -0
  288. package/dist/node-dev/codegen.helpers.mjs +12 -0
  289. package/dist/node-dev/codegen.helpers.mjs.map +1 -0
  290. package/dist/{dev → node-dev}/flatten-connection.js +0 -0
  291. package/dist/{dev → node-dev}/flatten-connection.js.map +0 -0
  292. package/dist/node-dev/flatten-connection.mjs +29 -0
  293. package/dist/node-dev/flatten-connection.mjs.map +1 -0
  294. package/dist/{dev → node-dev}/image-size.js +0 -0
  295. package/dist/{dev → node-dev}/image-size.js.map +0 -0
  296. package/dist/node-dev/image-size.mjs +80 -0
  297. package/dist/node-dev/image-size.mjs.map +1 -0
  298. package/dist/{dev → node-dev}/index.js +10 -0
  299. package/dist/node-dev/index.js.map +1 -0
  300. package/dist/node-dev/index.mjs +48 -0
  301. package/dist/node-dev/index.mjs.map +1 -0
  302. package/dist/{dev → node-dev}/load-script.js +0 -0
  303. package/dist/{dev → node-dev}/load-script.js.map +0 -0
  304. package/dist/node-dev/load-script.mjs +52 -0
  305. package/dist/node-dev/load-script.mjs.map +1 -0
  306. package/dist/node-dev/metafield-parser.js +103 -0
  307. package/dist/node-dev/metafield-parser.js.map +1 -0
  308. package/dist/node-dev/metafield-parser.mjs +103 -0
  309. package/dist/node-dev/metafield-parser.mjs.map +1 -0
  310. package/dist/{dev → node-dev}/node_modules/@xstate/fsm/es/index.js +0 -0
  311. package/dist/{dev → node-dev}/node_modules/@xstate/fsm/es/index.js.map +0 -0
  312. package/dist/node-dev/node_modules/@xstate/fsm/es/index.mjs +159 -0
  313. package/dist/node-dev/node_modules/@xstate/fsm/es/index.mjs.map +1 -0
  314. package/dist/{dev → node-dev}/node_modules/@xstate/react/es/fsm.js +2 -2
  315. package/dist/{dev → node-dev}/node_modules/@xstate/react/es/fsm.js.map +1 -1
  316. package/dist/node-dev/node_modules/@xstate/react/es/fsm.mjs +94 -0
  317. package/dist/node-dev/node_modules/@xstate/react/es/fsm.mjs.map +1 -0
  318. package/dist/{dev → node-dev}/node_modules/@xstate/react/es/useConstant.js +0 -0
  319. package/dist/{dev → node-dev}/node_modules/@xstate/react/es/useConstant.js.map +0 -0
  320. package/dist/node-dev/node_modules/@xstate/react/es/useConstant.mjs +12 -0
  321. package/dist/node-dev/node_modules/@xstate/react/es/useConstant.mjs.map +1 -0
  322. package/dist/node-dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.js +5 -0
  323. package/dist/node-dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.js.map +1 -0
  324. package/dist/node-dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.mjs +6 -0
  325. package/dist/node-dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.mjs.map +1 -0
  326. package/dist/{dev → node-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +0 -0
  327. package/dist/{dev → node-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +0 -0
  328. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs +105 -0
  329. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -0
  330. package/dist/{dev → node-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js +0 -0
  331. package/dist/{dev → node-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js.map +0 -0
  332. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs +72 -0
  333. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -0
  334. package/dist/{dev → node-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +0 -0
  335. package/dist/{dev → node-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +0 -0
  336. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs +136 -0
  337. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -0
  338. package/dist/{dev → node-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js +0 -0
  339. package/dist/{dev → node-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js.map +0 -0
  340. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs +58 -0
  341. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -0
  342. package/dist/{dev → node-dev}/node_modules/use-sync-external-store/shim/index.js +0 -0
  343. package/dist/{dev → node-dev}/node_modules/use-sync-external-store/shim/index.js.map +0 -0
  344. package/dist/node-dev/node_modules/use-sync-external-store/shim/index.mjs +21 -0
  345. package/dist/node-dev/node_modules/use-sync-external-store/shim/index.mjs.map +1 -0
  346. package/dist/{dev → node-dev}/node_modules/use-sync-external-store/shim/with-selector.js +0 -0
  347. package/dist/{dev → node-dev}/node_modules/use-sync-external-store/shim/with-selector.js.map +0 -0
  348. package/dist/node-dev/node_modules/use-sync-external-store/shim/with-selector.mjs +11 -0
  349. package/dist/node-dev/node_modules/use-sync-external-store/shim/with-selector.mjs.map +1 -0
  350. package/dist/{dev → node-dev}/storefront-api-constants.js +0 -0
  351. package/dist/{dev → node-dev}/storefront-api-constants.js.map +0 -0
  352. package/dist/node-dev/storefront-api-constants.mjs +5 -0
  353. package/dist/node-dev/storefront-api-constants.mjs.map +1 -0
  354. package/dist/{dev → node-dev}/storefront-client.js +21 -9
  355. package/dist/node-dev/storefront-client.js.map +1 -0
  356. package/dist/node-dev/storefront-client.mjs +84 -0
  357. package/dist/node-dev/storefront-client.mjs.map +1 -0
  358. package/dist/{dev → node-dev}/useCartAPIStateMachine.js +0 -0
  359. package/dist/{dev → node-dev}/useCartAPIStateMachine.js.map +0 -0
  360. package/dist/node-dev/useCartAPIStateMachine.mjs +326 -0
  361. package/dist/node-dev/useCartAPIStateMachine.mjs.map +1 -0
  362. package/dist/{dev → node-dev}/useCartActions.js +0 -0
  363. package/dist/{dev → node-dev}/useCartActions.js.map +0 -0
  364. package/dist/node-dev/useCartActions.mjs +123 -0
  365. package/dist/node-dev/useCartActions.mjs.map +1 -0
  366. package/dist/{dev → node-dev}/useMoney.js +0 -0
  367. package/dist/{dev → node-dev}/useMoney.js.map +0 -0
  368. package/dist/node-dev/useMoney.mjs +72 -0
  369. package/dist/node-dev/useMoney.mjs.map +1 -0
  370. package/dist/node-prod/AddToCartButton.js +70 -0
  371. package/dist/node-prod/AddToCartButton.js.map +1 -0
  372. package/dist/node-prod/AddToCartButton.mjs +70 -0
  373. package/dist/node-prod/AddToCartButton.mjs.map +1 -0
  374. package/dist/node-prod/BaseButton.js +31 -0
  375. package/dist/node-prod/BaseButton.js.map +1 -0
  376. package/dist/node-prod/BaseButton.mjs +31 -0
  377. package/dist/node-prod/BaseButton.mjs.map +1 -0
  378. package/dist/node-prod/BuyNowButton.js +45 -0
  379. package/dist/node-prod/BuyNowButton.js.map +1 -0
  380. package/dist/node-prod/BuyNowButton.mjs +45 -0
  381. package/dist/node-prod/BuyNowButton.mjs.map +1 -0
  382. package/dist/node-prod/CartCheckoutButton.js +30 -0
  383. package/dist/node-prod/CartCheckoutButton.js.map +1 -0
  384. package/dist/node-prod/CartCheckoutButton.mjs +30 -0
  385. package/dist/node-prod/CartCheckoutButton.mjs.map +1 -0
  386. package/dist/{prod → node-prod}/CartProvider.js +0 -0
  387. package/dist/{prod → node-prod}/CartProvider.js.map +0 -0
  388. package/dist/node-prod/CartProvider.mjs +485 -0
  389. package/dist/node-prod/CartProvider.mjs.map +1 -0
  390. package/dist/{prod → node-prod}/ExternalVideo.js +0 -0
  391. package/dist/{prod → node-prod}/ExternalVideo.js.map +0 -0
  392. package/dist/node-prod/ExternalVideo.mjs +39 -0
  393. package/dist/node-prod/ExternalVideo.mjs.map +1 -0
  394. package/dist/{prod → node-prod}/Image.js +0 -0
  395. package/dist/{prod → node-prod}/Image.js.map +0 -0
  396. package/dist/node-prod/Image.mjs +99 -0
  397. package/dist/node-prod/Image.mjs.map +1 -0
  398. package/dist/{prod → node-prod}/MediaFile.js +0 -0
  399. package/dist/node-prod/MediaFile.js.map +1 -0
  400. package/dist/node-prod/MediaFile.mjs +59 -0
  401. package/dist/node-prod/MediaFile.mjs.map +1 -0
  402. package/dist/{prod → node-prod}/Metafield.js +0 -0
  403. package/dist/node-prod/Metafield.js.map +1 -0
  404. package/dist/node-prod/Metafield.mjs +288 -0
  405. package/dist/node-prod/Metafield.mjs.map +1 -0
  406. package/dist/{prod → node-prod}/ModelViewer.js +0 -0
  407. package/dist/{prod → node-prod}/ModelViewer.js.map +0 -0
  408. package/dist/node-prod/ModelViewer.mjs +143 -0
  409. package/dist/node-prod/ModelViewer.mjs.map +1 -0
  410. package/dist/{prod → node-prod}/Money.js +0 -0
  411. package/dist/{prod → node-prod}/Money.js.map +0 -0
  412. package/dist/node-prod/Money.mjs +40 -0
  413. package/dist/node-prod/Money.mjs.map +1 -0
  414. package/dist/{prod → node-prod}/ProductPrice.js +0 -0
  415. package/dist/node-prod/ProductPrice.js.map +1 -0
  416. package/dist/node-prod/ProductPrice.mjs +61 -0
  417. package/dist/node-prod/ProductPrice.mjs.map +1 -0
  418. package/dist/{prod → node-prod}/ProductProvider.js +0 -0
  419. package/dist/{prod → node-prod}/ProductProvider.js.map +0 -0
  420. package/dist/node-prod/ProductProvider.mjs +161 -0
  421. package/dist/node-prod/ProductProvider.mjs.map +1 -0
  422. package/dist/{prod → node-prod}/ShopPayButton.js +0 -0
  423. package/dist/{prod → node-prod}/ShopPayButton.js.map +0 -0
  424. package/dist/node-prod/ShopPayButton.mjs +64 -0
  425. package/dist/node-prod/ShopPayButton.mjs.map +1 -0
  426. package/dist/{dev → node-prod}/ShopifyProvider.js +23 -5
  427. package/dist/node-prod/ShopifyProvider.js.map +1 -0
  428. package/dist/node-prod/ShopifyProvider.mjs +64 -0
  429. package/dist/node-prod/ShopifyProvider.mjs.map +1 -0
  430. package/dist/{prod → node-prod}/Video.js +0 -0
  431. package/dist/{prod → node-prod}/Video.js.map +0 -0
  432. package/dist/node-prod/Video.mjs +44 -0
  433. package/dist/node-prod/Video.mjs.map +1 -0
  434. package/dist/{prod → node-prod}/_virtual/index.js +0 -0
  435. package/dist/{prod → node-prod}/_virtual/index.js.map +0 -0
  436. package/dist/node-prod/_virtual/index.mjs +5 -0
  437. package/dist/{prod → node-prod/_virtual}/index.mjs.map +1 -1
  438. package/dist/{prod → node-prod}/_virtual/use-sync-external-store-shim.development.js +0 -0
  439. package/dist/{prod → node-prod}/_virtual/use-sync-external-store-shim.development.js.map +0 -0
  440. package/dist/node-prod/_virtual/use-sync-external-store-shim.development.mjs +5 -0
  441. package/dist/node-prod/_virtual/use-sync-external-store-shim.development.mjs.map +1 -0
  442. package/dist/{prod → node-prod}/_virtual/use-sync-external-store-shim.production.min.js +0 -0
  443. package/dist/{prod → node-prod}/_virtual/use-sync-external-store-shim.production.min.js.map +0 -0
  444. package/dist/node-prod/_virtual/use-sync-external-store-shim.production.min.mjs +5 -0
  445. package/dist/node-prod/_virtual/use-sync-external-store-shim.production.min.mjs.map +1 -0
  446. package/dist/{prod → node-prod}/_virtual/with-selector.development.js +0 -0
  447. package/dist/{prod → node-prod}/_virtual/with-selector.development.js.map +0 -0
  448. package/dist/node-prod/_virtual/with-selector.development.mjs +5 -0
  449. package/dist/node-prod/_virtual/with-selector.development.mjs.map +1 -0
  450. package/dist/{prod → node-prod}/_virtual/with-selector.js +0 -0
  451. package/dist/{prod → node-prod}/_virtual/with-selector.js.map +0 -0
  452. package/dist/node-prod/_virtual/with-selector.mjs +5 -0
  453. package/dist/node-prod/_virtual/with-selector.mjs.map +1 -0
  454. package/dist/{prod → node-prod}/_virtual/with-selector.production.min.js +0 -0
  455. package/dist/{prod → node-prod}/_virtual/with-selector.production.min.js.map +0 -0
  456. package/dist/node-prod/_virtual/with-selector.production.min.mjs +5 -0
  457. package/dist/node-prod/_virtual/with-selector.production.min.mjs.map +1 -0
  458. package/dist/{dev → node-prod}/cart-constants.js +0 -2
  459. package/dist/node-prod/cart-constants.js.map +1 -0
  460. package/dist/node-prod/cart-constants.mjs +15 -0
  461. package/dist/node-prod/cart-constants.mjs.map +1 -0
  462. package/dist/{dev → node-prod}/cart-hooks.js +10 -14
  463. package/dist/node-prod/cart-hooks.js.map +1 -0
  464. package/dist/node-prod/cart-hooks.mjs +44 -0
  465. package/dist/node-prod/cart-hooks.mjs.map +1 -0
  466. package/dist/{prod → node-prod}/cart-queries.js +0 -0
  467. package/dist/{prod → node-prod}/cart-queries.js.map +0 -0
  468. package/dist/node-prod/cart-queries.mjs +114 -0
  469. package/dist/node-prod/cart-queries.mjs.map +1 -0
  470. package/dist/node-prod/codegen.helpers.js +12 -0
  471. package/dist/node-prod/codegen.helpers.js.map +1 -0
  472. package/dist/node-prod/codegen.helpers.mjs +12 -0
  473. package/dist/node-prod/codegen.helpers.mjs.map +1 -0
  474. package/dist/{prod → node-prod}/flatten-connection.js +0 -0
  475. package/dist/{prod → node-prod}/flatten-connection.js.map +0 -0
  476. package/dist/node-prod/flatten-connection.mjs +25 -0
  477. package/dist/node-prod/flatten-connection.mjs.map +1 -0
  478. package/dist/{prod → node-prod}/image-size.js +0 -0
  479. package/dist/{prod → node-prod}/image-size.js.map +0 -0
  480. package/dist/node-prod/image-size.mjs +80 -0
  481. package/dist/node-prod/image-size.mjs.map +1 -0
  482. package/dist/{prod → node-prod}/index.js +10 -0
  483. package/dist/node-prod/index.js.map +1 -0
  484. package/dist/node-prod/index.mjs +48 -0
  485. package/dist/node-prod/index.mjs.map +1 -0
  486. package/dist/{prod → node-prod}/load-script.js +0 -0
  487. package/dist/{prod → node-prod}/load-script.js.map +0 -0
  488. package/dist/node-prod/load-script.mjs +52 -0
  489. package/dist/node-prod/load-script.mjs.map +1 -0
  490. package/dist/node-prod/metafield-parser.js +114 -0
  491. package/dist/node-prod/metafield-parser.js.map +1 -0
  492. package/dist/node-prod/metafield-parser.mjs +114 -0
  493. package/dist/node-prod/metafield-parser.mjs.map +1 -0
  494. package/dist/{prod → node-prod}/node_modules/@xstate/fsm/es/index.js +0 -0
  495. package/dist/{prod → node-prod}/node_modules/@xstate/fsm/es/index.js.map +0 -0
  496. package/dist/node-prod/node_modules/@xstate/fsm/es/index.mjs +159 -0
  497. package/dist/node-prod/node_modules/@xstate/fsm/es/index.mjs.map +1 -0
  498. package/dist/{prod → node-prod}/node_modules/@xstate/react/es/fsm.js +2 -2
  499. package/dist/{prod → node-prod}/node_modules/@xstate/react/es/fsm.js.map +1 -1
  500. package/dist/node-prod/node_modules/@xstate/react/es/fsm.mjs +94 -0
  501. package/dist/node-prod/node_modules/@xstate/react/es/fsm.mjs.map +1 -0
  502. package/dist/{prod → node-prod}/node_modules/@xstate/react/es/useConstant.js +0 -0
  503. package/dist/{prod → node-prod}/node_modules/@xstate/react/es/useConstant.js.map +0 -0
  504. package/dist/node-prod/node_modules/@xstate/react/es/useConstant.mjs +12 -0
  505. package/dist/node-prod/node_modules/@xstate/react/es/useConstant.mjs.map +1 -0
  506. package/dist/node-prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.js +5 -0
  507. package/dist/node-prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.js.map +1 -0
  508. package/dist/node-prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.mjs +6 -0
  509. package/dist/node-prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.mjs.map +1 -0
  510. package/dist/{prod → node-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +0 -0
  511. package/dist/{prod → node-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +0 -0
  512. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs +105 -0
  513. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -0
  514. package/dist/{prod → node-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js +0 -0
  515. package/dist/{prod → node-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js.map +0 -0
  516. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs +72 -0
  517. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -0
  518. package/dist/{prod → node-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +0 -0
  519. package/dist/{prod → node-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +0 -0
  520. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs +136 -0
  521. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -0
  522. package/dist/{prod → node-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js +0 -0
  523. package/dist/{prod → node-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js.map +0 -0
  524. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs +58 -0
  525. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -0
  526. package/dist/{prod → node-prod}/node_modules/use-sync-external-store/shim/index.js +0 -0
  527. package/dist/{prod → node-prod}/node_modules/use-sync-external-store/shim/index.js.map +0 -0
  528. package/dist/node-prod/node_modules/use-sync-external-store/shim/index.mjs +21 -0
  529. package/dist/node-prod/node_modules/use-sync-external-store/shim/index.mjs.map +1 -0
  530. package/dist/{prod → node-prod}/node_modules/use-sync-external-store/shim/with-selector.js +0 -0
  531. package/dist/{prod → node-prod}/node_modules/use-sync-external-store/shim/with-selector.js.map +0 -0
  532. package/dist/node-prod/node_modules/use-sync-external-store/shim/with-selector.mjs +11 -0
  533. package/dist/node-prod/node_modules/use-sync-external-store/shim/with-selector.mjs.map +1 -0
  534. package/dist/{prod → node-prod}/storefront-api-constants.js +0 -0
  535. package/dist/{prod → node-prod}/storefront-api-constants.js.map +0 -0
  536. package/dist/node-prod/storefront-api-constants.mjs +5 -0
  537. package/dist/node-prod/storefront-api-constants.mjs.map +1 -0
  538. package/dist/{prod → node-prod}/storefront-client.js +21 -9
  539. package/dist/node-prod/storefront-client.js.map +1 -0
  540. package/dist/node-prod/storefront-client.mjs +69 -0
  541. package/dist/node-prod/storefront-client.mjs.map +1 -0
  542. package/dist/{prod → node-prod}/useCartAPIStateMachine.js +0 -0
  543. package/dist/{prod → node-prod}/useCartAPIStateMachine.js.map +0 -0
  544. package/dist/node-prod/useCartAPIStateMachine.mjs +326 -0
  545. package/dist/node-prod/useCartAPIStateMachine.mjs.map +1 -0
  546. package/dist/{prod → node-prod}/useCartActions.js +0 -0
  547. package/dist/{prod → node-prod}/useCartActions.js.map +0 -0
  548. package/dist/node-prod/useCartActions.mjs +123 -0
  549. package/dist/node-prod/useCartActions.mjs.map +1 -0
  550. package/dist/{prod → node-prod}/useMoney.js +0 -0
  551. package/dist/{prod → node-prod}/useMoney.js.map +0 -0
  552. package/dist/node-prod/useMoney.mjs +72 -0
  553. package/dist/node-prod/useMoney.mjs.map +1 -0
  554. package/dist/types/AddToCartButton.d.ts +21 -0
  555. package/dist/types/BaseButton.d.ts +15 -0
  556. package/dist/types/BuyNowButton.d.ts +15 -0
  557. package/dist/types/CartCheckoutButton.d.ts +12 -0
  558. package/dist/types/CartCost.d.ts +13 -0
  559. package/dist/types/CartLineProvider.d.ts +16 -0
  560. package/dist/types/MediaFile.d.ts +3 -1
  561. package/dist/types/Metafield.d.ts +3 -0
  562. package/dist/types/ProductPrice.d.ts +1 -2
  563. package/dist/types/ShopifyProvider.d.ts +35 -2
  564. package/dist/types/cart-constants.d.ts +0 -1
  565. package/dist/types/codegen.helpers.d.ts +9 -0
  566. package/dist/types/index.d.cts +5 -0
  567. package/dist/types/index.d.ts +5 -0
  568. package/dist/types/metafield-parser.d.ts +222 -0
  569. package/dist/types/storefront-api-types.d.ts +1 -1
  570. package/dist/types/storefront-client.d.ts +17 -2
  571. package/dist/umd/hydrogen-react.dev.js +682 -371
  572. package/dist/umd/hydrogen-react.dev.js.map +1 -1
  573. package/dist/umd/hydrogen-react.prod.js +17 -17
  574. package/dist/umd/hydrogen-react.prod.js.map +1 -1
  575. package/package.json +42 -19
  576. package/dist/dev/MediaFile.js.map +0 -1
  577. package/dist/dev/MediaFile.mjs.map +0 -1
  578. package/dist/dev/Metafield.js.map +0 -1
  579. package/dist/dev/Metafield.mjs.map +0 -1
  580. package/dist/dev/ProductPrice.js.map +0 -1
  581. package/dist/dev/ProductPrice.mjs.map +0 -1
  582. package/dist/dev/ShopifyProvider.js.map +0 -1
  583. package/dist/dev/ShopifyProvider.mjs.map +0 -1
  584. package/dist/dev/cart-constants.js.map +0 -1
  585. package/dist/dev/cart-constants.mjs.map +0 -1
  586. package/dist/dev/cart-hooks.js.map +0 -1
  587. package/dist/dev/cart-hooks.mjs.map +0 -1
  588. package/dist/dev/index.js.map +0 -1
  589. package/dist/dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js +0 -5
  590. package/dist/dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js.map +0 -1
  591. package/dist/dev/node_modules/worktop/cookie/index.js +0 -27
  592. package/dist/dev/node_modules/worktop/cookie/index.js.map +0 -1
  593. package/dist/dev/node_modules/worktop/cookie/index.mjs +0 -27
  594. package/dist/dev/node_modules/worktop/cookie/index.mjs.map +0 -1
  595. package/dist/dev/storefront-client.js.map +0 -1
  596. package/dist/dev/storefront-client.mjs.map +0 -1
  597. package/dist/prod/MediaFile.js.map +0 -1
  598. package/dist/prod/MediaFile.mjs.map +0 -1
  599. package/dist/prod/Metafield.js.map +0 -1
  600. package/dist/prod/Metafield.mjs.map +0 -1
  601. package/dist/prod/ProductPrice.js.map +0 -1
  602. package/dist/prod/ProductPrice.mjs.map +0 -1
  603. package/dist/prod/ShopifyProvider.js.map +0 -1
  604. package/dist/prod/ShopifyProvider.mjs.map +0 -1
  605. package/dist/prod/cart-constants.js.map +0 -1
  606. package/dist/prod/cart-constants.mjs.map +0 -1
  607. package/dist/prod/cart-hooks.js.map +0 -1
  608. package/dist/prod/cart-hooks.mjs.map +0 -1
  609. package/dist/prod/index.js.map +0 -1
  610. package/dist/prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js +0 -5
  611. package/dist/prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js.map +0 -1
  612. package/dist/prod/node_modules/worktop/cookie/index.js +0 -27
  613. package/dist/prod/node_modules/worktop/cookie/index.js.map +0 -1
  614. package/dist/prod/node_modules/worktop/cookie/index.mjs +0 -27
  615. package/dist/prod/node_modules/worktop/cookie/index.mjs.map +0 -1
  616. package/dist/prod/storefront-client.js.map +0 -1
  617. package/dist/prod/storefront-client.mjs.map +0 -1
@@ -766,7 +766,85 @@ query CartQuery($id: ID!, $numCartLines: Int = 250, $country: CountryCode = ZZ)
766
766
  ${cartFragment}
767
767
  `;
768
768
  const SFAPI_VERSION = "2022-10";
769
- var _jsxFileName$b = "/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/ShopifyProvider.tsx";
769
+ function createStorefrontClient({
770
+ storeDomain,
771
+ privateStorefrontToken,
772
+ publicStorefrontToken,
773
+ storefrontApiVersion,
774
+ contentType
775
+ }) {
776
+ if (storefrontApiVersion !== SFAPI_VERSION) {
777
+ console.warn(
778
+ `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: "${storefrontApiVersion}"; expected version "${SFAPI_VERSION}"`
779
+ );
780
+ }
781
+ if (!privateStorefrontToken && !globalThis.document) {
782
+ console.warn(
783
+ `StorefrontClient: Using a private storefront token is recommended for server environments. Refer to the authentication https://shopify.dev/api/storefront#authentication documentation for more details. `
784
+ );
785
+ }
786
+ if (privateStorefrontToken && globalThis) {
787
+ console.warn(
788
+ `StorefrontClient: You are attempting to use a private token in an environment where it can be easily accessed by anyone. This is a security risk; please use the public token and the 'publicStorefrontToken' prop`
789
+ );
790
+ }
791
+ return {
792
+ getShopifyDomain(overrideProps) {
793
+ var _a;
794
+ return `https://${(_a = overrideProps == null ? void 0 : overrideProps.storeDomain) != null ? _a : storeDomain}.myshopify.com`;
795
+ },
796
+ getStorefrontApiUrl(overrideProps) {
797
+ var _a, _b;
798
+ return `https://${(_a = overrideProps == null ? void 0 : overrideProps.storeDomain) != null ? _a : storeDomain}.myshopify.com/api/${(_b = overrideProps == null ? void 0 : overrideProps.storefrontApiVersion) != null ? _b : storefrontApiVersion}/graphql.json`;
799
+ },
800
+ getPrivateTokenHeaders(overrideProps) {
801
+ var _a, _b, _c;
802
+ if (!privateStorefrontToken && !(overrideProps == null ? void 0 : overrideProps.privateStorefrontToken)) {
803
+ throw new Error(
804
+ `StorefrontClient: You did not pass in a 'privateStorefrontToken' while using 'getPrivateTokenHeaders()'`
805
+ );
806
+ }
807
+ if (!(overrideProps == null ? void 0 : overrideProps.buyerIp)) {
808
+ console.warn(
809
+ `StorefrontClient: it is recommended to pass in the 'buyerIp' property which improves analytics and data in the admin.`
810
+ );
811
+ }
812
+ const finalContentType = (_a = overrideProps == null ? void 0 : overrideProps.contentType) != null ? _a : contentType;
813
+ return {
814
+ "content-type": finalContentType === "graphql" ? "application/graphql" : "application/json",
815
+ "X-SDK-Variant": "hydrogen-ui",
816
+ "X-SDK-Variant-Source": "react",
817
+ "X-SDK-Version": storefrontApiVersion,
818
+ "Shopify-Storefront-Private-Token": (_c = (_b = overrideProps == null ? void 0 : overrideProps.privateStorefrontToken) != null ? _b : privateStorefrontToken) != null ? _c : "",
819
+ ...(overrideProps == null ? void 0 : overrideProps.buyerIp) ? { "Shopify-Storefront-Buyer-IP": overrideProps.buyerIp } : {}
820
+ };
821
+ },
822
+ getPublicTokenHeaders(overrideProps) {
823
+ var _a, _b, _c, _d;
824
+ if (!publicStorefrontToken && !(overrideProps == null ? void 0 : overrideProps.publicStorefrontToken)) {
825
+ throw new Error(
826
+ `StorefrontClient: You did not pass in a 'publicStorefrontToken' while using 'getPublicTokenHeaders()'`
827
+ );
828
+ }
829
+ const finalContentType = (_b = (_a = overrideProps == null ? void 0 : overrideProps.contentType) != null ? _a : contentType) != null ? _b : "json";
830
+ return getPublicTokenHeadersRaw(
831
+ finalContentType,
832
+ storefrontApiVersion,
833
+ (_d = (_c = overrideProps == null ? void 0 : overrideProps.publicStorefrontToken) != null ? _c : publicStorefrontToken) != null ? _d : ""
834
+ );
835
+ }
836
+ };
837
+ }
838
+ function getPublicTokenHeadersRaw(contentType, storefrontApiVersion, accessToken) {
839
+ return {
840
+ "content-type": contentType === "graphql" ? "application/graphql" : "application/json",
841
+ "X-SDK-Variant": "hydrogen-ui",
842
+ "X-SDK-Variant-Source": "react",
843
+ "X-SDK-Version": storefrontApiVersion,
844
+ "X-Shopify-Storefront-Access-Token": accessToken
845
+ };
846
+ }
847
+ var _jsxFileName$f = "/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/ShopifyProvider.tsx";
770
848
  const ShopifyContext = React.createContext({
771
849
  storeDomain: "test.myshopify.com",
772
850
  storefrontToken: "abc123",
@@ -777,7 +855,13 @@ ${cartFragment}
777
855
  language: {
778
856
  isoCode: "EN"
779
857
  },
780
- locale: "EN-US"
858
+ locale: "EN-US",
859
+ getStorefrontApiUrl() {
860
+ return "";
861
+ },
862
+ getPublicTokenHeaders() {
863
+ return {};
864
+ }
781
865
  });
782
866
  function ShopifyProvider({
783
867
  children,
@@ -789,16 +873,27 @@ ${cartFragment}
789
873
  if (shopifyConfig.storefrontApiVersion !== SFAPI_VERSION) {
790
874
  console.warn(`This version of Hydrogen-UI is built for Shopify's Storefront API version ${SFAPI_VERSION}, but it looks like you're using version ${shopifyConfig.storefrontApiVersion}. There may be issues or bugs if you use a mismatched version of Hydrogen-UI and the Storefront API.`);
791
875
  }
792
- const finalConfig = React.useMemo(() => ({
793
- ...shopifyConfig,
794
- storeDomain: shopifyConfig.storeDomain.replace(/^https?:\/\//, "")
795
- }), [shopifyConfig]);
876
+ const finalConfig = React.useMemo(() => {
877
+ const storeDomain = shopifyConfig.storeDomain.replace(/^https?:\/\//, "");
878
+ return {
879
+ ...shopifyConfig,
880
+ storeDomain,
881
+ getPublicTokenHeaders(overrideProps) {
882
+ var _a;
883
+ return getPublicTokenHeadersRaw(overrideProps.contentType, shopifyConfig.storefrontApiVersion, (_a = overrideProps.storefrontToken) != null ? _a : shopifyConfig.storefrontToken);
884
+ },
885
+ getStorefrontApiUrl(overrideProps) {
886
+ var _a, _b;
887
+ return `https://${(_a = overrideProps == null ? void 0 : overrideProps.storeDomain) != null ? _a : storeDomain}/api/${(_b = overrideProps == null ? void 0 : overrideProps.storefrontApiVersion) != null ? _b : shopifyConfig.storefrontApiVersion}/graphql.json`;
888
+ }
889
+ };
890
+ }, [shopifyConfig]);
796
891
  return /* @__PURE__ */ React__default.default.createElement(ShopifyContext.Provider, {
797
892
  value: finalConfig,
798
893
  __self: this,
799
894
  __source: {
800
- fileName: _jsxFileName$b,
801
- lineNumber: 49,
895
+ fileName: _jsxFileName$f,
896
+ lineNumber: 69,
802
897
  columnNumber: 5
803
898
  }
804
899
  }, children);
@@ -811,7 +906,6 @@ ${cartFragment}
811
906
  return shopContext;
812
907
  }
813
908
  const CART_ID_STORAGE_KEY = "shopifyCartId";
814
- const STOREFRONT_API_PUBLIC_TOKEN_HEADER = "X-Shopify-Storefront-Access-Token";
815
909
  const SHOPIFY_STOREFRONT_ID_HEADER = "Shopify-Storefront-Id";
816
910
  const SHOPIFY_STOREFRONT_Y_HEADER = "Shopify-Storefront-Y";
817
911
  const SHOPIFY_STOREFRONT_S_HEADER = "Shopify-Storefront-S";
@@ -842,21 +936,17 @@ ${cartFragment}
842
936
  }
843
937
  function useCartFetch() {
844
938
  const {
845
- storeDomain,
846
- storefrontApiVersion,
847
- storefrontToken,
848
- storefrontId
939
+ storefrontId,
940
+ getPublicTokenHeaders,
941
+ getStorefrontApiUrl
849
942
  } = useShop();
850
943
  return React.useCallback(({
851
944
  query,
852
945
  variables
853
946
  }) => {
854
- const headers = {
855
- "Content-Type": "application/json",
856
- "X-SDK-Variant": "hydrogen",
857
- "X-SDK-Version": storefrontApiVersion,
858
- [STOREFRONT_API_PUBLIC_TOKEN_HEADER]: storefrontToken
859
- };
947
+ const headers = getPublicTokenHeaders({
948
+ contentType: "json"
949
+ });
860
950
  if (storefrontId) {
861
951
  headers[SHOPIFY_STOREFRONT_ID_HEADER] = storefrontId;
862
952
  }
@@ -865,7 +955,7 @@ ${cartFragment}
865
955
  headers[SHOPIFY_STOREFRONT_Y_HEADER] = cookieData[SHOPIFY_Y];
866
956
  headers[SHOPIFY_STOREFRONT_S_HEADER] = cookieData[SHOPIFY_S];
867
957
  }
868
- return fetch(`https://${storeDomain}/api/${storefrontApiVersion}/graphql.json`, {
958
+ return fetch(getStorefrontApiUrl(), {
869
959
  method: "POST",
870
960
  headers,
871
961
  body: JSON.stringify({
@@ -878,7 +968,7 @@ ${cartFragment}
878
968
  errors: error.toString()
879
969
  };
880
970
  });
881
- }, [storeDomain, storefrontApiVersion, storefrontToken, storefrontId]);
971
+ }, [getPublicTokenHeaders, storefrontId, getStorefrontApiUrl]);
882
972
  }
883
973
  function useCartActions({
884
974
  numCartLines,
@@ -1312,7 +1402,7 @@ ${cartFragment}
1312
1402
  function isCartFetchResultEvent(event) {
1313
1403
  return event.type === "RESOLVE" || event.type === "ERROR" || event.type === "CART_COMPLETED";
1314
1404
  }
1315
- var _jsxFileName$a = "/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/CartProvider.tsx";
1405
+ var _jsxFileName$e = "/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/CartProvider.tsx";
1316
1406
  const CartContext = React.createContext(null);
1317
1407
  function useCart() {
1318
1408
  const context = React.useContext(CartContext);
@@ -1625,7 +1715,7 @@ ${cartFragment}
1625
1715
  value: cartContextValue,
1626
1716
  __self: this,
1627
1717
  __source: {
1628
- fileName: _jsxFileName$a,
1718
+ fileName: _jsxFileName$e,
1629
1719
  lineNumber: 425,
1630
1720
  columnNumber: 5
1631
1721
  }
@@ -1791,101 +1881,440 @@ fragment ImageFragment on Image {
1791
1881
  height
1792
1882
  }
1793
1883
  `;
1794
- var _jsxFileName$9 = "/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/ExternalVideo.tsx";
1795
- function ExternalVideo(props) {
1796
- var _a, _b;
1797
- const {
1798
- data,
1799
- options,
1800
- id = data.id,
1801
- frameBorder = "0",
1802
- allow = "accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture",
1803
- allowFullScreen = true,
1804
- loading = "lazy",
1805
- ...passthroughProps
1806
- } = props;
1807
- if (!data.embedUrl) {
1808
- throw new Error(`<ExternalVideo/> requires the 'embedUrl' property`);
1884
+ var _jsxFileName$d = "/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/ProductProvider.tsx";
1885
+ const ProductOptionsContext = React.createContext(null);
1886
+ function ProductProvider({
1887
+ children,
1888
+ data: product,
1889
+ initialVariantId: explicitVariantId
1890
+ }) {
1891
+ const variants = React.useMemo(() => {
1892
+ var _a;
1893
+ return flattenConnection((_a = product.variants) != null ? _a : {});
1894
+ }, [product.variants]);
1895
+ if (!isProductVariantArray(variants)) {
1896
+ throw new Error(`<ProductProvider/> requires 'product.variants.nodes' or 'product.variants.edges'`);
1809
1897
  }
1810
- let finalUrl = data.embedUrl;
1811
- if (options) {
1812
- const urlObject = new URL(data.embedUrl);
1813
- for (const key of Object.keys(options)) {
1814
- urlObject.searchParams.set(key, options[key]);
1898
+ const options = React.useMemo(() => getOptions(variants), [variants]);
1899
+ const [selectedVariant, setSelectedVariant] = React.useState(() => getVariantBasedOnIdProp(explicitVariantId, variants));
1900
+ const [selectedOptions, setSelectedOptions] = React.useState(() => getSelectedOptions(selectedVariant));
1901
+ React.useEffect(() => {
1902
+ const newSelectedVariant = getVariantBasedOnIdProp(explicitVariantId, variants);
1903
+ setSelectedVariant(newSelectedVariant);
1904
+ setSelectedOptions(getSelectedOptions(newSelectedVariant));
1905
+ }, [explicitVariantId, variants]);
1906
+ const setSelectedOption = React.useCallback((name, value2) => {
1907
+ setSelectedOptions((selectedOptions2) => {
1908
+ const opts = {
1909
+ ...selectedOptions2,
1910
+ [name]: value2
1911
+ };
1912
+ setSelectedVariant(getSelectedVariant(variants, opts));
1913
+ return opts;
1914
+ });
1915
+ }, [setSelectedOptions, variants]);
1916
+ const isOptionInStock = React.useCallback((option, value2) => {
1917
+ var _a;
1918
+ const proposedVariant = getSelectedVariant(variants, {
1919
+ ...selectedOptions,
1920
+ ...{
1921
+ [option]: value2
1922
+ }
1923
+ });
1924
+ return (_a = proposedVariant == null ? void 0 : proposedVariant.availableForSale) != null ? _a : true;
1925
+ }, [selectedOptions, variants]);
1926
+ const sellingPlanGroups = React.useMemo(() => {
1927
+ var _a;
1928
+ return flattenConnection((_a = product.sellingPlanGroups) != null ? _a : {}).map((sellingPlanGroup) => {
1929
+ var _a2;
1930
+ return {
1931
+ ...sellingPlanGroup,
1932
+ sellingPlans: flattenConnection((_a2 = sellingPlanGroup == null ? void 0 : sellingPlanGroup.sellingPlans) != null ? _a2 : {})
1933
+ };
1934
+ });
1935
+ }, [product.sellingPlanGroups]);
1936
+ const [selectedSellingPlan, setSelectedSellingPlan] = React.useState(void 0);
1937
+ const selectedSellingPlanAllocation = React.useMemo(() => {
1938
+ var _a, _b;
1939
+ if (!selectedVariant || !selectedSellingPlan) {
1940
+ return;
1815
1941
  }
1816
- finalUrl = urlObject.toString();
1817
- }
1818
- return /* @__PURE__ */ React__default.default.createElement("iframe", {
1819
- ...passthroughProps,
1820
- id: id != null ? id : data.embedUrl,
1821
- title: (_b = (_a = data.alt) != null ? _a : data.id) != null ? _b : "external video",
1822
- frameBorder,
1823
- allow,
1824
- allowFullScreen,
1825
- src: finalUrl,
1826
- loading,
1942
+ if (!((_a = selectedVariant.sellingPlanAllocations) == null ? void 0 : _a.nodes) && !((_b = selectedVariant.sellingPlanAllocations) == null ? void 0 : _b.edges)) {
1943
+ throw new Error(`<ProductProvider/>: You must include 'sellingPlanAllocations.nodes' or 'sellingPlanAllocations.edges' in your variants in order to calculate selectedSellingPlanAllocation`);
1944
+ }
1945
+ return flattenConnection(selectedVariant.sellingPlanAllocations).find((allocation) => {
1946
+ var _a2;
1947
+ return ((_a2 = allocation == null ? void 0 : allocation.sellingPlan) == null ? void 0 : _a2.id) === selectedSellingPlan.id;
1948
+ });
1949
+ }, [selectedVariant, selectedSellingPlan]);
1950
+ const value = React.useMemo(() => ({
1951
+ variants,
1952
+ variantsConnection: product.variants,
1953
+ options,
1954
+ selectedVariant,
1955
+ setSelectedVariant,
1956
+ selectedOptions,
1957
+ setSelectedOption,
1958
+ setSelectedOptions,
1959
+ isOptionInStock,
1960
+ selectedSellingPlan,
1961
+ setSelectedSellingPlan,
1962
+ selectedSellingPlanAllocation,
1963
+ sellingPlanGroups,
1964
+ sellingPlanGroupsConnection: product.sellingPlanGroups
1965
+ }), [isOptionInStock, options, product.sellingPlanGroups, product.variants, selectedOptions, selectedSellingPlan, selectedSellingPlanAllocation, selectedVariant, sellingPlanGroups, setSelectedOption, variants]);
1966
+ return /* @__PURE__ */ React__default.default.createElement(ProductOptionsContext.Provider, {
1967
+ value,
1827
1968
  __self: this,
1828
1969
  __source: {
1829
- fileName: _jsxFileName$9,
1830
- lineNumber: 56,
1970
+ fileName: _jsxFileName$d,
1971
+ lineNumber: 201,
1831
1972
  columnNumber: 5
1832
1973
  }
1833
- });
1974
+ }, children);
1834
1975
  }
1835
- const PRODUCTION_CDN_HOSTNAMES = [
1836
- "cdn.shopify.com",
1837
- "cdn.shopifycdn.net",
1838
- "shopify-assets.shopifycdn.com",
1839
- "shopify-assets.shopifycdn.net"
1840
- ];
1841
- const LOCAL_CDN_HOSTNAMES = ["spin.dev"];
1842
- const ALL_CDN_HOSTNAMES = [...PRODUCTION_CDN_HOSTNAMES, ...LOCAL_CDN_HOSTNAMES];
1843
- const IMG_SRC_SET_SIZES = [352, 832, 1200, 1920, 2560];
1844
- function addImageSizeParametersToUrl({
1845
- src,
1846
- width,
1847
- height,
1848
- crop,
1849
- scale
1850
- }) {
1851
- const newUrl = new URL(src);
1852
- const multipliedScale = scale != null ? scale : 1;
1853
- if (width) {
1854
- let finalWidth;
1855
- if (typeof width === "string") {
1856
- finalWidth = (IMG_SRC_SET_SIZES[0] * multipliedScale).toString();
1857
- } else {
1858
- finalWidth = (Number(width) * multipliedScale).toString();
1859
- }
1860
- newUrl.searchParams.append("width", finalWidth);
1861
- }
1862
- if (height && typeof height === "number") {
1863
- newUrl.searchParams.append("height", (height * multipliedScale).toString());
1976
+ function useProduct() {
1977
+ const context = React.useContext(ProductOptionsContext);
1978
+ if (!context) {
1979
+ throw new Error(`'useProduct' must be a child of <ProductProvider />`);
1864
1980
  }
1865
- crop && newUrl.searchParams.append("crop", crop);
1866
- return newUrl.toString();
1981
+ return context;
1867
1982
  }
1868
- function shopifyImageLoader(params) {
1869
- const newSrc = new URL(params.src);
1870
- const isShopifyServedImage = ALL_CDN_HOSTNAMES.some(
1871
- (allowedHostname) => newSrc.hostname.endsWith(allowedHostname)
1872
- );
1873
- if (!isShopifyServedImage || !params.width && !params.height && !params.crop && !params.scale) {
1874
- return params.src;
1983
+ function getSelectedVariant(variants, choices) {
1984
+ var _a, _b;
1985
+ if (!variants.length || ((_b = (_a = variants == null ? void 0 : variants[0]) == null ? void 0 : _a.selectedOptions) == null ? void 0 : _b.length) !== Object.keys(choices).length) {
1986
+ return;
1875
1987
  }
1876
- return addImageSizeParametersToUrl(params);
1988
+ return variants == null ? void 0 : variants.find((variant) => {
1989
+ return Object.entries(choices).every(([name, value]) => {
1990
+ var _a2;
1991
+ return (_a2 = variant == null ? void 0 : variant.selectedOptions) == null ? void 0 : _a2.some((option) => (option == null ? void 0 : option.name) === name && (option == null ? void 0 : option.value) === value);
1992
+ });
1993
+ });
1877
1994
  }
1878
- function getShopifyImageDimensions({
1879
- data: sfapiImage,
1880
- loaderOptions,
1881
- elementProps
1882
- }) {
1883
- var _a, _b, _c, _d, _e, _f;
1884
- let aspectRatio = null;
1885
- if ((sfapiImage == null ? void 0 : sfapiImage.width) && (sfapiImage == null ? void 0 : sfapiImage.height)) {
1886
- aspectRatio = (sfapiImage == null ? void 0 : sfapiImage.width) / (sfapiImage == null ? void 0 : sfapiImage.height);
1887
- }
1888
- if ((loaderOptions == null ? void 0 : loaderOptions.width) || (loaderOptions == null ? void 0 : loaderOptions.height)) {
1995
+ function getOptions(variants) {
1996
+ const map = variants.reduce((memo, variant) => {
1997
+ var _a;
1998
+ if (!variant.selectedOptions) {
1999
+ throw new Error(`'getOptions' requires 'variant.selectedOptions'`);
2000
+ }
2001
+ (_a = variant == null ? void 0 : variant.selectedOptions) == null ? void 0 : _a.forEach((opt) => {
2002
+ var _a2, _b, _c, _d;
2003
+ memo[(_a2 = opt == null ? void 0 : opt.name) != null ? _a2 : ""] = memo[(_b = opt == null ? void 0 : opt.name) != null ? _b : ""] || /* @__PURE__ */ new Set();
2004
+ memo[(_c = opt == null ? void 0 : opt.name) != null ? _c : ""].add((_d = opt == null ? void 0 : opt.value) != null ? _d : "");
2005
+ });
2006
+ return memo;
2007
+ }, {});
2008
+ return Object.keys(map).map((option) => {
2009
+ return {
2010
+ name: option,
2011
+ values: Array.from(map[option])
2012
+ };
2013
+ });
2014
+ }
2015
+ function getVariantBasedOnIdProp(explicitVariantId, variants) {
2016
+ if (explicitVariantId) {
2017
+ const foundVariant = variants.find((variant) => (variant == null ? void 0 : variant.id) === explicitVariantId);
2018
+ if (!foundVariant) {
2019
+ console.warn(`<ProductProvider/> received a 'initialVariantId' prop, but could not actually find a variant with that ID`);
2020
+ }
2021
+ return foundVariant;
2022
+ }
2023
+ if (explicitVariantId === null) {
2024
+ return null;
2025
+ }
2026
+ if (explicitVariantId === void 0) {
2027
+ return variants.find((variant) => variant == null ? void 0 : variant.availableForSale) || variants[0];
2028
+ }
2029
+ }
2030
+ function getSelectedOptions(selectedVariant) {
2031
+ return (selectedVariant == null ? void 0 : selectedVariant.selectedOptions) ? selectedVariant.selectedOptions.reduce((memo, optionSet) => {
2032
+ var _a, _b;
2033
+ memo[(_a = optionSet == null ? void 0 : optionSet.name) != null ? _a : ""] = (_b = optionSet == null ? void 0 : optionSet.value) != null ? _b : "";
2034
+ return memo;
2035
+ }, {}) : {};
2036
+ }
2037
+ function isProductVariantArray(maybeVariantArray) {
2038
+ if (!maybeVariantArray || !Array.isArray(maybeVariantArray)) {
2039
+ return false;
2040
+ }
2041
+ return true;
2042
+ }
2043
+ var _jsxFileName$c = "/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/BaseButton.tsx";
2044
+ function BaseButton(props) {
2045
+ const {
2046
+ as,
2047
+ onClick,
2048
+ defaultOnClick,
2049
+ children,
2050
+ buttonRef,
2051
+ ...passthroughProps
2052
+ } = props;
2053
+ const handleOnClick = React.useCallback((event) => {
2054
+ if (onClick) {
2055
+ const clickShouldContinue = onClick(event);
2056
+ if (typeof clickShouldContinue === "boolean" && clickShouldContinue === false || (event == null ? void 0 : event.defaultPrevented))
2057
+ return;
2058
+ }
2059
+ defaultOnClick == null ? void 0 : defaultOnClick(event);
2060
+ }, [defaultOnClick, onClick]);
2061
+ const Component = as || "button";
2062
+ return /* @__PURE__ */ React__default.default.createElement(Component, {
2063
+ ref: buttonRef,
2064
+ onClick: handleOnClick,
2065
+ ...passthroughProps,
2066
+ __self: this,
2067
+ __source: {
2068
+ fileName: _jsxFileName$c,
2069
+ lineNumber: 59,
2070
+ columnNumber: 5
2071
+ }
2072
+ }, children);
2073
+ }
2074
+ var _jsxFileName$b = "/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/AddToCartButton.tsx";
2075
+ function AddToCartButton(props) {
2076
+ var _a;
2077
+ const [addingItem, setAddingItem] = React.useState(false);
2078
+ const {
2079
+ variantId: explicitVariantId,
2080
+ quantity = 1,
2081
+ attributes,
2082
+ sellingPlanId,
2083
+ onClick,
2084
+ children,
2085
+ accessibleAddingToCartLabel,
2086
+ ...passthroughProps
2087
+ } = props;
2088
+ const {
2089
+ status,
2090
+ linesAdd
2091
+ } = useCart();
2092
+ const {
2093
+ selectedVariant
2094
+ } = useProduct();
2095
+ const variantId = (_a = explicitVariantId != null ? explicitVariantId : selectedVariant == null ? void 0 : selectedVariant.id) != null ? _a : "";
2096
+ const disabled = explicitVariantId === null || variantId === "" || selectedVariant === null || addingItem || passthroughProps.disabled;
2097
+ React.useEffect(() => {
2098
+ if (addingItem && status === "idle") {
2099
+ setAddingItem(false);
2100
+ }
2101
+ }, [status, addingItem]);
2102
+ const handleAddItem = React.useCallback(() => {
2103
+ setAddingItem(true);
2104
+ linesAdd([{
2105
+ quantity,
2106
+ merchandiseId: variantId || "",
2107
+ attributes,
2108
+ sellingPlanId
2109
+ }]);
2110
+ }, [linesAdd, quantity, variantId, attributes, sellingPlanId]);
2111
+ return /* @__PURE__ */ React__default.default.createElement(React__default.default.Fragment, null, /* @__PURE__ */ React__default.default.createElement(BaseButton, {
2112
+ ...passthroughProps,
2113
+ disabled,
2114
+ onClick,
2115
+ defaultOnClick: handleAddItem,
2116
+ __self: this,
2117
+ __source: {
2118
+ fileName: _jsxFileName$b,
2119
+ lineNumber: 71,
2120
+ columnNumber: 7
2121
+ }
2122
+ }, children), accessibleAddingToCartLabel ? /* @__PURE__ */ React__default.default.createElement("p", {
2123
+ style: {
2124
+ position: "absolute",
2125
+ width: "1px",
2126
+ height: "1px",
2127
+ padding: "0",
2128
+ margin: "-1px",
2129
+ overflow: "hidden",
2130
+ clip: "rect(0, 0, 0, 0)",
2131
+ whiteSpace: "nowrap",
2132
+ borderWidth: "0"
2133
+ },
2134
+ role: "alert",
2135
+ "aria-live": "assertive",
2136
+ __self: this,
2137
+ __source: {
2138
+ fileName: _jsxFileName$b,
2139
+ lineNumber: 80,
2140
+ columnNumber: 9
2141
+ }
2142
+ }, addingItem ? accessibleAddingToCartLabel : null) : null);
2143
+ }
2144
+ var _jsxFileName$a = "/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/BuyNowButton.tsx";
2145
+ function BuyNowButton(props) {
2146
+ const {
2147
+ cartCreate,
2148
+ checkoutUrl
2149
+ } = useCart();
2150
+ const [loading, setLoading] = React.useState(false);
2151
+ const {
2152
+ quantity,
2153
+ variantId,
2154
+ onClick,
2155
+ attributes,
2156
+ children,
2157
+ ...passthroughProps
2158
+ } = props;
2159
+ React.useEffect(() => {
2160
+ if (checkoutUrl) {
2161
+ window.location.href = checkoutUrl;
2162
+ }
2163
+ }, [checkoutUrl]);
2164
+ const handleBuyNow = React.useCallback(() => {
2165
+ setLoading(true);
2166
+ cartCreate({
2167
+ lines: [{
2168
+ quantity: quantity != null ? quantity : 1,
2169
+ merchandiseId: variantId,
2170
+ attributes
2171
+ }]
2172
+ });
2173
+ }, [cartCreate, quantity, variantId, attributes]);
2174
+ return /* @__PURE__ */ React__default.default.createElement(BaseButton, {
2175
+ disabled: loading != null ? loading : passthroughProps.disabled,
2176
+ ...passthroughProps,
2177
+ onClick,
2178
+ defaultOnClick: handleBuyNow,
2179
+ __self: this,
2180
+ __source: {
2181
+ fileName: _jsxFileName$a,
2182
+ lineNumber: 53,
2183
+ columnNumber: 5
2184
+ }
2185
+ }, children);
2186
+ }
2187
+ var _jsxFileName$9 = "/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/CartCheckoutButton.tsx";
2188
+ function CartCheckoutButton(props) {
2189
+ const [requestedCheckout, setRequestedCheckout] = React.useState(false);
2190
+ const {
2191
+ status,
2192
+ checkoutUrl
2193
+ } = useCart();
2194
+ const {
2195
+ children,
2196
+ ...passthroughProps
2197
+ } = props;
2198
+ React.useEffect(() => {
2199
+ if (requestedCheckout && checkoutUrl && status === "idle") {
2200
+ window.location.href = checkoutUrl;
2201
+ }
2202
+ }, [requestedCheckout, status, checkoutUrl]);
2203
+ return /* @__PURE__ */ React__default.default.createElement(BaseButton, {
2204
+ ...passthroughProps,
2205
+ disabled: requestedCheckout || passthroughProps.disabled,
2206
+ onClick: () => setRequestedCheckout(true),
2207
+ __self: this,
2208
+ __source: {
2209
+ fileName: _jsxFileName$9,
2210
+ lineNumber: 28,
2211
+ columnNumber: 5
2212
+ }
2213
+ }, children);
2214
+ }
2215
+ const storefrontApiCustomScalars = {
2216
+ DateTime: "string",
2217
+ Decimal: "string",
2218
+ HTML: "string",
2219
+ URL: "string",
2220
+ Color: "string",
2221
+ UnsignedInt64: "string"
2222
+ };
2223
+ var _jsxFileName$8 = "/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/ExternalVideo.tsx";
2224
+ function ExternalVideo(props) {
2225
+ var _a, _b;
2226
+ const {
2227
+ data,
2228
+ options,
2229
+ id = data.id,
2230
+ frameBorder = "0",
2231
+ allow = "accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture",
2232
+ allowFullScreen = true,
2233
+ loading = "lazy",
2234
+ ...passthroughProps
2235
+ } = props;
2236
+ if (!data.embedUrl) {
2237
+ throw new Error(`<ExternalVideo/> requires the 'embedUrl' property`);
2238
+ }
2239
+ let finalUrl = data.embedUrl;
2240
+ if (options) {
2241
+ const urlObject = new URL(data.embedUrl);
2242
+ for (const key of Object.keys(options)) {
2243
+ urlObject.searchParams.set(key, options[key]);
2244
+ }
2245
+ finalUrl = urlObject.toString();
2246
+ }
2247
+ return /* @__PURE__ */ React__default.default.createElement("iframe", {
2248
+ ...passthroughProps,
2249
+ id: id != null ? id : data.embedUrl,
2250
+ title: (_b = (_a = data.alt) != null ? _a : data.id) != null ? _b : "external video",
2251
+ frameBorder,
2252
+ allow,
2253
+ allowFullScreen,
2254
+ src: finalUrl,
2255
+ loading,
2256
+ __self: this,
2257
+ __source: {
2258
+ fileName: _jsxFileName$8,
2259
+ lineNumber: 56,
2260
+ columnNumber: 5
2261
+ }
2262
+ });
2263
+ }
2264
+ const PRODUCTION_CDN_HOSTNAMES = [
2265
+ "cdn.shopify.com",
2266
+ "cdn.shopifycdn.net",
2267
+ "shopify-assets.shopifycdn.com",
2268
+ "shopify-assets.shopifycdn.net"
2269
+ ];
2270
+ const LOCAL_CDN_HOSTNAMES = ["spin.dev"];
2271
+ const ALL_CDN_HOSTNAMES = [...PRODUCTION_CDN_HOSTNAMES, ...LOCAL_CDN_HOSTNAMES];
2272
+ const IMG_SRC_SET_SIZES = [352, 832, 1200, 1920, 2560];
2273
+ function addImageSizeParametersToUrl({
2274
+ src,
2275
+ width,
2276
+ height,
2277
+ crop,
2278
+ scale
2279
+ }) {
2280
+ const newUrl = new URL(src);
2281
+ const multipliedScale = scale != null ? scale : 1;
2282
+ if (width) {
2283
+ let finalWidth;
2284
+ if (typeof width === "string") {
2285
+ finalWidth = (IMG_SRC_SET_SIZES[0] * multipliedScale).toString();
2286
+ } else {
2287
+ finalWidth = (Number(width) * multipliedScale).toString();
2288
+ }
2289
+ newUrl.searchParams.append("width", finalWidth);
2290
+ }
2291
+ if (height && typeof height === "number") {
2292
+ newUrl.searchParams.append("height", (height * multipliedScale).toString());
2293
+ }
2294
+ crop && newUrl.searchParams.append("crop", crop);
2295
+ return newUrl.toString();
2296
+ }
2297
+ function shopifyImageLoader(params) {
2298
+ const newSrc = new URL(params.src);
2299
+ const isShopifyServedImage = ALL_CDN_HOSTNAMES.some(
2300
+ (allowedHostname) => newSrc.hostname.endsWith(allowedHostname)
2301
+ );
2302
+ if (!isShopifyServedImage || !params.width && !params.height && !params.crop && !params.scale) {
2303
+ return params.src;
2304
+ }
2305
+ return addImageSizeParametersToUrl(params);
2306
+ }
2307
+ function getShopifyImageDimensions({
2308
+ data: sfapiImage,
2309
+ loaderOptions,
2310
+ elementProps
2311
+ }) {
2312
+ var _a, _b, _c, _d, _e, _f;
2313
+ let aspectRatio = null;
2314
+ if ((sfapiImage == null ? void 0 : sfapiImage.width) && (sfapiImage == null ? void 0 : sfapiImage.height)) {
2315
+ aspectRatio = (sfapiImage == null ? void 0 : sfapiImage.width) / (sfapiImage == null ? void 0 : sfapiImage.height);
2316
+ }
2317
+ if ((loaderOptions == null ? void 0 : loaderOptions.width) || (loaderOptions == null ? void 0 : loaderOptions.height)) {
1889
2318
  return {
1890
2319
  width: (_a = loaderOptions == null ? void 0 : loaderOptions.width) != null ? _a : aspectRatio && typeof loaderOptions.height === "number" ? Math.round(aspectRatio * loaderOptions.height) : null,
1891
2320
  height: (_b = loaderOptions == null ? void 0 : loaderOptions.height) != null ? _b : aspectRatio && typeof loaderOptions.width === "number" ? Math.round(aspectRatio * loaderOptions.width) : null
@@ -1905,7 +2334,7 @@ fragment ImageFragment on Image {
1905
2334
  }
1906
2335
  return { width: null, height: null };
1907
2336
  }
1908
- var _jsxFileName$8 = "/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/Image.tsx";
2337
+ var _jsxFileName$7 = "/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/Image.tsx";
1909
2338
  function Image({
1910
2339
  data,
1911
2340
  width,
@@ -1974,7 +2403,7 @@ fragment ImageFragment on Image {
1974
2403
  decoding,
1975
2404
  __self: this,
1976
2405
  __source: {
1977
- fileName: _jsxFileName$8,
2406
+ fileName: _jsxFileName$7,
1978
2407
  lineNumber: 150,
1979
2408
  columnNumber: 5
1980
2409
  }
@@ -2010,7 +2439,7 @@ fragment ImageFragment on Image {
2010
2439
  scale
2011
2440
  })} ${size}w`).join(", ");
2012
2441
  }
2013
- var _jsxFileName$7 = "/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/Video.tsx";
2442
+ var _jsxFileName$6 = "/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/Video.tsx";
2014
2443
  function Video(props) {
2015
2444
  var _a, _b;
2016
2445
  const {
@@ -2037,7 +2466,7 @@ fragment ImageFragment on Image {
2037
2466
  poster: posterUrl,
2038
2467
  __self: this,
2039
2468
  __source: {
2040
- fileName: _jsxFileName$7,
2469
+ fileName: _jsxFileName$6,
2041
2470
  lineNumber: 42,
2042
2471
  columnNumber: 5
2043
2472
  }
@@ -2052,7 +2481,7 @@ fragment ImageFragment on Image {
2052
2481
  type: source.mimeType,
2053
2482
  __self: this,
2054
2483
  __source: {
2055
- fileName: _jsxFileName$7,
2484
+ fileName: _jsxFileName$6,
2056
2485
  lineNumber: 54,
2057
2486
  columnNumber: 11
2058
2487
  }
@@ -2105,7 +2534,7 @@ fragment ImageFragment on Image {
2105
2534
  }, [url, stringifiedOptions, options]);
2106
2535
  return status;
2107
2536
  }
2108
- var _jsxFileName$6 = "/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/ModelViewer.tsx";
2537
+ var _jsxFileName$5 = "/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/ModelViewer.tsx";
2109
2538
  function ModelViewer(props) {
2110
2539
  var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k;
2111
2540
  const [modelViewer, setModelViewer] = React.useState(void 0);
@@ -2243,13 +2672,13 @@ fragment ImageFragment on Image {
2243
2672
  scale: passthroughProps.scale,
2244
2673
  __self: this,
2245
2674
  __source: {
2246
- fileName: _jsxFileName$6,
2675
+ fileName: _jsxFileName$5,
2247
2676
  lineNumber: 222,
2248
2677
  columnNumber: 5
2249
2678
  }
2250
2679
  }, children);
2251
2680
  }
2252
- var _jsxFileName$5 = "/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/MediaFile.tsx";
2681
+ var _jsxFileName$4 = "/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/MediaFile.tsx";
2253
2682
  function MediaFile({
2254
2683
  data,
2255
2684
  mediaOptions,
@@ -2269,8 +2698,8 @@ fragment ImageFragment on Image {
2269
2698
  data: data.image,
2270
2699
  __self: this,
2271
2700
  __source: {
2272
- fileName: _jsxFileName$5,
2273
- lineNumber: 50,
2701
+ fileName: _jsxFileName$4,
2702
+ lineNumber: 54,
2274
2703
  columnNumber: 9
2275
2704
  }
2276
2705
  });
@@ -2282,8 +2711,8 @@ fragment ImageFragment on Image {
2282
2711
  data,
2283
2712
  __self: this,
2284
2713
  __source: {
2285
- fileName: _jsxFileName$5,
2286
- lineNumber: 59,
2714
+ fileName: _jsxFileName$4,
2715
+ lineNumber: 63,
2287
2716
  columnNumber: 9
2288
2717
  }
2289
2718
  });
@@ -2295,8 +2724,8 @@ fragment ImageFragment on Image {
2295
2724
  data,
2296
2725
  __self: this,
2297
2726
  __source: {
2298
- fileName: _jsxFileName$5,
2299
- lineNumber: 64,
2727
+ fileName: _jsxFileName$4,
2728
+ lineNumber: 68,
2300
2729
  columnNumber: 9
2301
2730
  }
2302
2731
  });
@@ -2308,8 +2737,8 @@ fragment ImageFragment on Image {
2308
2737
  data,
2309
2738
  __self: this,
2310
2739
  __source: {
2311
- fileName: _jsxFileName$5,
2312
- lineNumber: 73,
2740
+ fileName: _jsxFileName$4,
2741
+ lineNumber: 78,
2313
2742
  columnNumber: 9
2314
2743
  }
2315
2744
  });
@@ -2322,7 +2751,7 @@ fragment ImageFragment on Image {
2322
2751
  }
2323
2752
  }
2324
2753
  }
2325
- var _jsxFileName$4 = "/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/Metafield.tsx";
2754
+ var _jsxFileName$3 = "/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/Metafield.tsx";
2326
2755
  function Metafield(props) {
2327
2756
  var _a, _b, _c, _d, _e, _f, _g, _h, _i;
2328
2757
  const {
@@ -2353,7 +2782,7 @@ fragment ImageFragment on Image {
2353
2782
  ...passthroughProps,
2354
2783
  __self: this,
2355
2784
  __source: {
2356
- fileName: _jsxFileName$4,
2785
+ fileName: _jsxFileName$3,
2357
2786
  lineNumber: 68,
2358
2787
  columnNumber: 9
2359
2788
  }
@@ -2365,7 +2794,7 @@ fragment ImageFragment on Image {
2365
2794
  ...passthroughProps,
2366
2795
  __self: this,
2367
2796
  __source: {
2368
- fileName: _jsxFileName$4,
2797
+ fileName: _jsxFileName$3,
2369
2798
  lineNumber: 76,
2370
2799
  columnNumber: 9
2371
2800
  }
@@ -2379,7 +2808,7 @@ fragment ImageFragment on Image {
2379
2808
  ...passthroughProps,
2380
2809
  __self: this,
2381
2810
  __source: {
2382
- fileName: _jsxFileName$4,
2811
+ fileName: _jsxFileName$3,
2383
2812
  lineNumber: 86,
2384
2813
  columnNumber: 9
2385
2814
  }
@@ -2391,7 +2820,7 @@ fragment ImageFragment on Image {
2391
2820
  ...passthroughProps,
2392
2821
  __self: this,
2393
2822
  __source: {
2394
- fileName: _jsxFileName$4,
2823
+ fileName: _jsxFileName$3,
2395
2824
  lineNumber: 94,
2396
2825
  columnNumber: 9
2397
2826
  }
@@ -2406,7 +2835,7 @@ fragment ImageFragment on Image {
2406
2835
  },
2407
2836
  __self: this,
2408
2837
  __source: {
2409
- fileName: _jsxFileName$4,
2838
+ fileName: _jsxFileName$3,
2410
2839
  lineNumber: 102,
2411
2840
  columnNumber: 9
2412
2841
  }
@@ -2421,7 +2850,7 @@ fragment ImageFragment on Image {
2421
2850
  },
2422
2851
  __self: this,
2423
2852
  __source: {
2424
- fileName: _jsxFileName$4,
2853
+ fileName: _jsxFileName$3,
2425
2854
  lineNumber: 111,
2426
2855
  columnNumber: 9
2427
2856
  }
@@ -2434,7 +2863,7 @@ fragment ImageFragment on Image {
2434
2863
  ...passthroughProps,
2435
2864
  __self: this,
2436
2865
  __source: {
2437
- fileName: _jsxFileName$4,
2866
+ fileName: _jsxFileName$3,
2438
2867
  lineNumber: 122,
2439
2868
  columnNumber: 9
2440
2869
  }
@@ -2446,7 +2875,7 @@ fragment ImageFragment on Image {
2446
2875
  ...passthroughProps,
2447
2876
  __self: this,
2448
2877
  __source: {
2449
- fileName: _jsxFileName$4,
2878
+ fileName: _jsxFileName$3,
2450
2879
  lineNumber: 133,
2451
2880
  columnNumber: 9
2452
2881
  }
@@ -2461,7 +2890,7 @@ fragment ImageFragment on Image {
2461
2890
  ...passthroughProps,
2462
2891
  __self: this,
2463
2892
  __source: {
2464
- fileName: _jsxFileName$4,
2893
+ fileName: _jsxFileName$3,
2465
2894
  lineNumber: 144,
2466
2895
  columnNumber: 9
2467
2896
  }
@@ -2474,7 +2903,7 @@ fragment ImageFragment on Image {
2474
2903
  ...passthroughProps,
2475
2904
  __self: this,
2476
2905
  __source: {
2477
- fileName: _jsxFileName$4,
2906
+ fileName: _jsxFileName$3,
2478
2907
  lineNumber: 154,
2479
2908
  columnNumber: 9
2480
2909
  }
@@ -2482,7 +2911,7 @@ fragment ImageFragment on Image {
2482
2911
  key: `${ref != null ? ref : ""}-${index2}`,
2483
2912
  __self: this,
2484
2913
  __source: {
2485
- fileName: _jsxFileName$4,
2914
+ fileName: _jsxFileName$3,
2486
2915
  lineNumber: 158,
2487
2916
  columnNumber: 13
2488
2917
  }
@@ -2496,7 +2925,7 @@ fragment ImageFragment on Image {
2496
2925
  ...passthroughProps,
2497
2926
  __self: this,
2498
2927
  __source: {
2499
- fileName: _jsxFileName$4,
2928
+ fileName: _jsxFileName$3,
2500
2929
  lineNumber: 167,
2501
2930
  columnNumber: 11
2502
2931
  }
@@ -2508,7 +2937,7 @@ fragment ImageFragment on Image {
2508
2937
  ...passthroughProps,
2509
2938
  __self: this,
2510
2939
  __source: {
2511
- fileName: _jsxFileName$4,
2940
+ fileName: _jsxFileName$3,
2512
2941
  lineNumber: 172,
2513
2942
  columnNumber: 11
2514
2943
  }
@@ -2516,7 +2945,7 @@ fragment ImageFragment on Image {
2516
2945
  data: ref.previewImage,
2517
2946
  __self: this,
2518
2947
  __source: {
2519
- fileName: _jsxFileName$4,
2948
+ fileName: _jsxFileName$3,
2520
2949
  lineNumber: 173,
2521
2950
  columnNumber: 13
2522
2951
  }
@@ -2528,7 +2957,7 @@ fragment ImageFragment on Image {
2528
2957
  data: ref,
2529
2958
  __self: this,
2530
2959
  __source: {
2531
- fileName: _jsxFileName$4,
2960
+ fileName: _jsxFileName$3,
2532
2961
  lineNumber: 178,
2533
2962
  columnNumber: 16
2534
2963
  }
@@ -2541,13 +2970,16 @@ fragment ImageFragment on Image {
2541
2970
  ...passthroughProps,
2542
2971
  __self: this,
2543
2972
  __source: {
2544
- fileName: _jsxFileName$4,
2973
+ fileName: _jsxFileName$3,
2545
2974
  lineNumber: 185,
2546
2975
  columnNumber: 5
2547
2976
  }
2548
2977
  }, (_i = parsedMetafield.value) == null ? void 0 : _i.toString());
2549
2978
  }
2550
2979
  function parseMetafield(metafield) {
2980
+ {
2981
+ console.info(`'parseMetafield()' will have a breaking change in a future version; its behavior will match that of 'metafieldParser()'`);
2982
+ }
2551
2983
  if (!metafield) {
2552
2984
  {
2553
2985
  console.warn(`'parseMetafield' was not passed any value for the 'metafield' argument`);
@@ -2563,6 +2995,9 @@ fragment ImageFragment on Image {
2563
2995
  };
2564
2996
  }
2565
2997
  function parseMetafieldValue(metafield) {
2998
+ {
2999
+ console.info(`'parseMetafieldValue()' will be removed in a future version`);
3000
+ }
2566
3001
  if (!metafield) {
2567
3002
  return null;
2568
3003
  }
@@ -2690,6 +3125,103 @@ fragment ImageFragment on Image {
2690
3125
  throw new Error(`Unit not supported: ${unit}`);
2691
3126
  }
2692
3127
  }
3128
+ function metafieldParser(metafield) {
3129
+ var _a, _b, _c, _d;
3130
+ if (!metafield.type) {
3131
+ const noTypeError = `metafieldParser(): The 'type' field is required in order to parse the Metafield.`;
3132
+ {
3133
+ throw new Error(noTypeError);
3134
+ }
3135
+ }
3136
+ switch (metafield.type) {
3137
+ case "boolean":
3138
+ return {
3139
+ ...metafield,
3140
+ parsedValue: metafield.value === "true"
3141
+ };
3142
+ case "collection_reference":
3143
+ case "file_reference":
3144
+ case "page_reference":
3145
+ case "product_reference":
3146
+ case "variant_reference":
3147
+ return {
3148
+ ...metafield,
3149
+ parsedValue: metafield.reference
3150
+ };
3151
+ case "color":
3152
+ case "multi_line_text_field":
3153
+ case "single_line_text_field":
3154
+ case "url":
3155
+ return {
3156
+ ...metafield,
3157
+ parsedValue: metafield.value
3158
+ };
3159
+ case "dimension":
3160
+ case "money":
3161
+ case "json":
3162
+ case "rating":
3163
+ case "volume":
3164
+ case "weight":
3165
+ case "list.color":
3166
+ case "list.dimension":
3167
+ case "list.number_integer":
3168
+ case "list.number_decimal":
3169
+ case "list.rating":
3170
+ case "list.single_line_text_field":
3171
+ case "list.url":
3172
+ case "list.volume":
3173
+ case "list.weight": {
3174
+ let parsedValue = null;
3175
+ try {
3176
+ parsedValue = parseJSON((_a = metafield.value) != null ? _a : "");
3177
+ } catch (err) {
3178
+ const parseError = `metafieldParser(): attempted to JSON.parse the 'metafield.value' property, but failed.`;
3179
+ {
3180
+ throw new Error(parseError);
3181
+ }
3182
+ }
3183
+ return {
3184
+ ...metafield,
3185
+ parsedValue
3186
+ };
3187
+ }
3188
+ case "date":
3189
+ case "date_time":
3190
+ return {
3191
+ ...metafield,
3192
+ parsedValue: new Date((_b = metafield.value) != null ? _b : "")
3193
+ };
3194
+ case "list.date":
3195
+ case "list.date_time": {
3196
+ const jsonParseValue = parseJSON((_c = metafield == null ? void 0 : metafield.value) != null ? _c : "");
3197
+ return {
3198
+ ...metafield,
3199
+ parsedValue: jsonParseValue.map((dateString) => new Date(dateString))
3200
+ };
3201
+ }
3202
+ case "number_decimal":
3203
+ case "number_integer":
3204
+ return {
3205
+ ...metafield,
3206
+ parsedValue: Number(metafield.value)
3207
+ };
3208
+ case "list.collection_reference":
3209
+ case "list.file_reference":
3210
+ case "list.page_reference":
3211
+ case "list.product_reference":
3212
+ case "list.variant_reference":
3213
+ return {
3214
+ ...metafield,
3215
+ parsedValue: flattenConnection((_d = metafield.references) != null ? _d : void 0)
3216
+ };
3217
+ default: {
3218
+ const typeNotFoundError = `metafieldParser(): the 'metafield.type' you passed in is not supported. Your type: "${metafield.type}". If you believe this is an error, please open an issue on GitHub.`;
3219
+ {
3220
+ throw new Error(typeNotFoundError);
3221
+ }
3222
+ }
3223
+ }
3224
+ }
2693
3225
  function useMoney(money) {
2694
3226
  const {
2695
3227
  locale
@@ -2756,7 +3288,7 @@ fragment ImageFragment on Image {
2756
3288
  return () => memoized != null ? memoized : memoized = new Intl.NumberFormat(locale, options);
2757
3289
  }, [locale, options]);
2758
3290
  }
2759
- var _jsxFileName$3 = "/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/Money.tsx";
3291
+ var _jsxFileName$2 = "/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/Money.tsx";
2760
3292
  function Money({
2761
3293
  data,
2762
3294
  as,
@@ -2785,7 +3317,7 @@ fragment ImageFragment on Image {
2785
3317
  ...passthroughProps,
2786
3318
  __self: this,
2787
3319
  __source: {
2788
- fileName: _jsxFileName$3,
3320
+ fileName: _jsxFileName$2,
2789
3321
  lineNumber: 65,
2790
3322
  columnNumber: 5
2791
3323
  }
@@ -2794,7 +3326,7 @@ fragment ImageFragment on Image {
2794
3326
  function isMoney(maybeMoney) {
2795
3327
  return typeof maybeMoney.amount === "string" && !!maybeMoney.amount && typeof maybeMoney.currencyCode === "string" && !!maybeMoney.currencyCode;
2796
3328
  }
2797
- var _jsxFileName$2 = "/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/ProductPrice.tsx";
3329
+ var _jsxFileName$1 = "/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/ProductPrice.tsx";
2798
3330
  function ProductPrice(props) {
2799
3331
  var _a, _b, _c, _d, _e, _f, _g, _h;
2800
3332
  const {
@@ -2844,7 +3376,7 @@ fragment ImageFragment on Image {
2844
3376
  measurement,
2845
3377
  __self: this,
2846
3378
  __source: {
2847
- fileName: _jsxFileName$2,
3379
+ fileName: _jsxFileName$1,
2848
3380
  lineNumber: 81,
2849
3381
  columnNumber: 7
2850
3382
  }
@@ -2855,171 +3387,12 @@ fragment ImageFragment on Image {
2855
3387
  data: price,
2856
3388
  __self: this,
2857
3389
  __source: {
2858
- fileName: _jsxFileName$2,
3390
+ fileName: _jsxFileName$1,
2859
3391
  lineNumber: 85,
2860
3392
  columnNumber: 10
2861
3393
  }
2862
3394
  });
2863
3395
  }
2864
- var _jsxFileName$1 = "/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/ProductProvider.tsx";
2865
- const ProductOptionsContext = React.createContext(null);
2866
- function ProductProvider({
2867
- children,
2868
- data: product,
2869
- initialVariantId: explicitVariantId
2870
- }) {
2871
- const variants = React.useMemo(() => {
2872
- var _a;
2873
- return flattenConnection((_a = product.variants) != null ? _a : {});
2874
- }, [product.variants]);
2875
- if (!isProductVariantArray(variants)) {
2876
- throw new Error(`<ProductProvider/> requires 'product.variants.nodes' or 'product.variants.edges'`);
2877
- }
2878
- const options = React.useMemo(() => getOptions(variants), [variants]);
2879
- const [selectedVariant, setSelectedVariant] = React.useState(() => getVariantBasedOnIdProp(explicitVariantId, variants));
2880
- const [selectedOptions, setSelectedOptions] = React.useState(() => getSelectedOptions(selectedVariant));
2881
- React.useEffect(() => {
2882
- const newSelectedVariant = getVariantBasedOnIdProp(explicitVariantId, variants);
2883
- setSelectedVariant(newSelectedVariant);
2884
- setSelectedOptions(getSelectedOptions(newSelectedVariant));
2885
- }, [explicitVariantId, variants]);
2886
- const setSelectedOption = React.useCallback((name, value2) => {
2887
- setSelectedOptions((selectedOptions2) => {
2888
- const opts = {
2889
- ...selectedOptions2,
2890
- [name]: value2
2891
- };
2892
- setSelectedVariant(getSelectedVariant(variants, opts));
2893
- return opts;
2894
- });
2895
- }, [setSelectedOptions, variants]);
2896
- const isOptionInStock = React.useCallback((option, value2) => {
2897
- var _a;
2898
- const proposedVariant = getSelectedVariant(variants, {
2899
- ...selectedOptions,
2900
- ...{
2901
- [option]: value2
2902
- }
2903
- });
2904
- return (_a = proposedVariant == null ? void 0 : proposedVariant.availableForSale) != null ? _a : true;
2905
- }, [selectedOptions, variants]);
2906
- const sellingPlanGroups = React.useMemo(() => {
2907
- var _a;
2908
- return flattenConnection((_a = product.sellingPlanGroups) != null ? _a : {}).map((sellingPlanGroup) => {
2909
- var _a2;
2910
- return {
2911
- ...sellingPlanGroup,
2912
- sellingPlans: flattenConnection((_a2 = sellingPlanGroup == null ? void 0 : sellingPlanGroup.sellingPlans) != null ? _a2 : {})
2913
- };
2914
- });
2915
- }, [product.sellingPlanGroups]);
2916
- const [selectedSellingPlan, setSelectedSellingPlan] = React.useState(void 0);
2917
- const selectedSellingPlanAllocation = React.useMemo(() => {
2918
- var _a, _b;
2919
- if (!selectedVariant || !selectedSellingPlan) {
2920
- return;
2921
- }
2922
- if (!((_a = selectedVariant.sellingPlanAllocations) == null ? void 0 : _a.nodes) && !((_b = selectedVariant.sellingPlanAllocations) == null ? void 0 : _b.edges)) {
2923
- throw new Error(`<ProductProvider/>: You must include 'sellingPlanAllocations.nodes' or 'sellingPlanAllocations.edges' in your variants in order to calculate selectedSellingPlanAllocation`);
2924
- }
2925
- return flattenConnection(selectedVariant.sellingPlanAllocations).find((allocation) => {
2926
- var _a2;
2927
- return ((_a2 = allocation == null ? void 0 : allocation.sellingPlan) == null ? void 0 : _a2.id) === selectedSellingPlan.id;
2928
- });
2929
- }, [selectedVariant, selectedSellingPlan]);
2930
- const value = React.useMemo(() => ({
2931
- variants,
2932
- variantsConnection: product.variants,
2933
- options,
2934
- selectedVariant,
2935
- setSelectedVariant,
2936
- selectedOptions,
2937
- setSelectedOption,
2938
- setSelectedOptions,
2939
- isOptionInStock,
2940
- selectedSellingPlan,
2941
- setSelectedSellingPlan,
2942
- selectedSellingPlanAllocation,
2943
- sellingPlanGroups,
2944
- sellingPlanGroupsConnection: product.sellingPlanGroups
2945
- }), [isOptionInStock, options, product.sellingPlanGroups, product.variants, selectedOptions, selectedSellingPlan, selectedSellingPlanAllocation, selectedVariant, sellingPlanGroups, setSelectedOption, variants]);
2946
- return /* @__PURE__ */ React__default.default.createElement(ProductOptionsContext.Provider, {
2947
- value,
2948
- __self: this,
2949
- __source: {
2950
- fileName: _jsxFileName$1,
2951
- lineNumber: 201,
2952
- columnNumber: 5
2953
- }
2954
- }, children);
2955
- }
2956
- function useProduct() {
2957
- const context = React.useContext(ProductOptionsContext);
2958
- if (!context) {
2959
- throw new Error(`'useProduct' must be a child of <ProductProvider />`);
2960
- }
2961
- return context;
2962
- }
2963
- function getSelectedVariant(variants, choices) {
2964
- var _a, _b;
2965
- if (!variants.length || ((_b = (_a = variants == null ? void 0 : variants[0]) == null ? void 0 : _a.selectedOptions) == null ? void 0 : _b.length) !== Object.keys(choices).length) {
2966
- return;
2967
- }
2968
- return variants == null ? void 0 : variants.find((variant) => {
2969
- return Object.entries(choices).every(([name, value]) => {
2970
- var _a2;
2971
- return (_a2 = variant == null ? void 0 : variant.selectedOptions) == null ? void 0 : _a2.some((option) => (option == null ? void 0 : option.name) === name && (option == null ? void 0 : option.value) === value);
2972
- });
2973
- });
2974
- }
2975
- function getOptions(variants) {
2976
- const map = variants.reduce((memo, variant) => {
2977
- var _a;
2978
- if (!variant.selectedOptions) {
2979
- throw new Error(`'getOptions' requires 'variant.selectedOptions'`);
2980
- }
2981
- (_a = variant == null ? void 0 : variant.selectedOptions) == null ? void 0 : _a.forEach((opt) => {
2982
- var _a2, _b, _c, _d;
2983
- memo[(_a2 = opt == null ? void 0 : opt.name) != null ? _a2 : ""] = memo[(_b = opt == null ? void 0 : opt.name) != null ? _b : ""] || /* @__PURE__ */ new Set();
2984
- memo[(_c = opt == null ? void 0 : opt.name) != null ? _c : ""].add((_d = opt == null ? void 0 : opt.value) != null ? _d : "");
2985
- });
2986
- return memo;
2987
- }, {});
2988
- return Object.keys(map).map((option) => {
2989
- return {
2990
- name: option,
2991
- values: Array.from(map[option])
2992
- };
2993
- });
2994
- }
2995
- function getVariantBasedOnIdProp(explicitVariantId, variants) {
2996
- if (explicitVariantId) {
2997
- const foundVariant = variants.find((variant) => (variant == null ? void 0 : variant.id) === explicitVariantId);
2998
- if (!foundVariant) {
2999
- console.warn(`<ProductProvider/> received a 'initialVariantId' prop, but could not actually find a variant with that ID`);
3000
- }
3001
- return foundVariant;
3002
- }
3003
- if (explicitVariantId === null) {
3004
- return null;
3005
- }
3006
- if (explicitVariantId === void 0) {
3007
- return variants.find((variant) => variant == null ? void 0 : variant.availableForSale) || variants[0];
3008
- }
3009
- }
3010
- function getSelectedOptions(selectedVariant) {
3011
- return (selectedVariant == null ? void 0 : selectedVariant.selectedOptions) ? selectedVariant.selectedOptions.reduce((memo, optionSet) => {
3012
- var _a, _b;
3013
- memo[(_a = optionSet == null ? void 0 : optionSet.name) != null ? _a : ""] = (_b = optionSet == null ? void 0 : optionSet.value) != null ? _b : "";
3014
- return memo;
3015
- }, {}) : {};
3016
- }
3017
- function isProductVariantArray(maybeVariantArray) {
3018
- if (!maybeVariantArray || !Array.isArray(maybeVariantArray)) {
3019
- return false;
3020
- }
3021
- return true;
3022
- }
3023
3396
  var _jsxFileName = "/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/ShopPayButton.tsx";
3024
3397
  const SHOPJS_URL = "https://cdn.shopify.com/shopifycloud/shop-js/v1.0/client.js";
3025
3398
  function ShopPayButton({
@@ -3086,73 +3459,9 @@ fragment ImageFragment on Image {
3086
3459
  }
3087
3460
  const MissingPropsErrorMessage = `You must pass in either "variantIds" or "variantIdsAndQuantities" to ShopPayButton`;
3088
3461
  const DoublePropsErrorMessage = `You must provide either a variantIds or variantIdsAndQuantities prop, but not both in the ShopPayButton component`;
3089
- function createStorefrontClient({
3090
- storeDomain,
3091
- privateStorefrontToken,
3092
- publicStorefrontToken,
3093
- storefrontApiVersion,
3094
- contentType
3095
- }) {
3096
- if (storefrontApiVersion !== SFAPI_VERSION) {
3097
- console.warn(
3098
- `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: "${storefrontApiVersion}"; expected version "${SFAPI_VERSION}"`
3099
- );
3100
- }
3101
- if (!privateStorefrontToken && !globalThis.document) {
3102
- console.warn(
3103
- `StorefrontClient: Using a private storefront token is recommended for server environments. Refer to the authentication https://shopify.dev/api/storefront#authentication documentation for more details. `
3104
- );
3105
- }
3106
- if (privateStorefrontToken && globalThis) {
3107
- console.warn(
3108
- `StorefrontClient: You are attempting to use a private token in an environment where it can be easily accessed by anyone. This is a security risk; please use the public token and the 'publicStorefrontToken' prop`
3109
- );
3110
- }
3111
- return {
3112
- getStorefrontApiUrl(overrideProps) {
3113
- var _a, _b;
3114
- return `https://${(_a = overrideProps == null ? void 0 : overrideProps.storeDomain) != null ? _a : storeDomain}.myshopify.com/api/${(_b = overrideProps == null ? void 0 : overrideProps.storefrontApiVersion) != null ? _b : storefrontApiVersion}/graphql.json`;
3115
- },
3116
- getPrivateTokenHeaders(overrideProps) {
3117
- var _a, _b, _c;
3118
- if (!privateStorefrontToken && !(overrideProps == null ? void 0 : overrideProps.privateStorefrontToken)) {
3119
- throw new Error(
3120
- `StorefrontClient: You did not pass in a 'privateStorefrontToken' while using 'getPrivateTokenHeaders()'`
3121
- );
3122
- }
3123
- if (!(overrideProps == null ? void 0 : overrideProps.buyerIp)) {
3124
- console.warn(
3125
- `StorefrontClient: it is recommended to pass in the 'buyerIp' property which improves analytics and data in the admin.`
3126
- );
3127
- }
3128
- const finalContentType = (_a = overrideProps == null ? void 0 : overrideProps.contentType) != null ? _a : contentType;
3129
- return {
3130
- "content-type": finalContentType === "graphql" ? "application/graphql" : "application/json",
3131
- "X-SDK-Variant": "hydrogen-ui",
3132
- "X-SDK-Variant-Source": "react",
3133
- "X-SDK-Version": storefrontApiVersion,
3134
- "Shopify-Storefront-Private-Token": (_c = (_b = overrideProps == null ? void 0 : overrideProps.privateStorefrontToken) != null ? _b : privateStorefrontToken) != null ? _c : "",
3135
- ...(overrideProps == null ? void 0 : overrideProps.buyerIp) ? { "Shopify-Storefront-Buyer-IP": overrideProps.buyerIp } : {}
3136
- };
3137
- },
3138
- getPublicTokenHeaders(overrideProps) {
3139
- var _a, _b, _c;
3140
- if (!publicStorefrontToken && !(overrideProps == null ? void 0 : overrideProps.publicStorefrontToken)) {
3141
- throw new Error(
3142
- `StorefrontClient: You did not pass in a 'publicStorefrontToken' while using 'getPublicTokenHeaders()'`
3143
- );
3144
- }
3145
- const finalContentType = (_a = overrideProps == null ? void 0 : overrideProps.contentType) != null ? _a : contentType;
3146
- return {
3147
- "content-type": finalContentType === "graphql" ? "application/graphql" : "application/json",
3148
- "X-SDK-Variant": "hydrogen-ui",
3149
- "X-SDK-Variant-Source": "react",
3150
- "X-SDK-Version": storefrontApiVersion,
3151
- "X-Shopify-Storefront-Access-Token": (_c = (_b = overrideProps == null ? void 0 : overrideProps.publicStorefrontToken) != null ? _b : publicStorefrontToken) != null ? _c : ""
3152
- };
3153
- }
3154
- };
3155
- }
3462
+ exports2.AddToCartButton = AddToCartButton;
3463
+ exports2.BuyNowButton = BuyNowButton;
3464
+ exports2.CartCheckoutButton = CartCheckoutButton;
3156
3465
  exports2.CartProvider = CartProvider;
3157
3466
  exports2.ExternalVideo = ExternalVideo;
3158
3467
  exports2.Image = Image;
@@ -3167,8 +3476,10 @@ fragment ImageFragment on Image {
3167
3476
  exports2.Video = Video;
3168
3477
  exports2.createStorefrontClient = createStorefrontClient;
3169
3478
  exports2.flattenConnection = flattenConnection;
3479
+ exports2.metafieldParser = metafieldParser;
3170
3480
  exports2.parseMetafield = parseMetafield;
3171
3481
  exports2.parseMetafieldValue = parseMetafieldValue;
3482
+ exports2.storefrontApiCustomScalars = storefrontApiCustomScalars;
3172
3483
  exports2.useCart = useCart;
3173
3484
  exports2.useMoney = useMoney;
3174
3485
  exports2.useProduct = useProduct;