@shopify/hydrogen-react 2025.5.0 → 2025.7.0

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 (370) hide show
  1. package/customer-account.schema.json +1 -1
  2. package/dist/browser-dev/AddToCartButton.mjs.map +1 -1
  3. package/dist/browser-dev/BaseButton.mjs.map +1 -1
  4. package/dist/browser-dev/BuyNowButton.mjs.map +1 -1
  5. package/dist/browser-dev/CartCheckoutButton.mjs.map +1 -1
  6. package/dist/browser-dev/CartCost.mjs.map +1 -1
  7. package/dist/browser-dev/CartLineProvider.mjs.map +1 -1
  8. package/dist/browser-dev/CartLineQuantity.mjs.map +1 -1
  9. package/dist/browser-dev/CartLineQuantityAdjustButton.mjs.map +1 -1
  10. package/dist/browser-dev/CartProvider.mjs.map +1 -1
  11. package/dist/browser-dev/ExternalVideo.mjs.map +1 -1
  12. package/dist/browser-dev/Image.mjs.map +1 -1
  13. package/dist/browser-dev/MediaFile.mjs.map +1 -1
  14. package/dist/browser-dev/ModelViewer.mjs.map +1 -1
  15. package/dist/browser-dev/Money.mjs.map +1 -1
  16. package/dist/browser-dev/ProductPrice.mjs.map +1 -1
  17. package/dist/browser-dev/ProductProvider.mjs.map +1 -1
  18. package/dist/browser-dev/RichText.components.mjs.map +1 -1
  19. package/dist/browser-dev/RichText.mjs.map +1 -1
  20. package/dist/browser-dev/ShopPayButton.mjs.map +1 -1
  21. package/dist/browser-dev/ShopifyProvider.mjs.map +1 -1
  22. package/dist/browser-dev/Video.mjs.map +1 -1
  23. package/dist/browser-dev/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -1
  24. package/dist/browser-dev/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -1
  25. package/dist/browser-dev/analytics-utils.mjs.map +1 -1
  26. package/dist/browser-dev/analytics.mjs.map +1 -1
  27. package/dist/browser-dev/cart-hooks.mjs.map +1 -1
  28. package/dist/browser-dev/cart-queries.mjs.map +1 -1
  29. package/dist/browser-dev/codegen.helpers.mjs.map +1 -1
  30. package/dist/browser-dev/cookies-utils.mjs.map +1 -1
  31. package/dist/browser-dev/flatten-connection.mjs.map +1 -1
  32. package/dist/browser-dev/getProductOptions.mjs.map +1 -1
  33. package/dist/browser-dev/load-script.mjs.map +1 -1
  34. package/dist/browser-dev/node_modules/@xstate/fsm/es/index.mjs +17 -17
  35. package/dist/browser-dev/node_modules/@xstate/fsm/es/index.mjs.map +1 -1
  36. package/dist/browser-dev/node_modules/@xstate/react/es/fsm.mjs +2 -2
  37. package/dist/browser-dev/node_modules/@xstate/react/es/fsm.mjs.map +1 -1
  38. package/dist/browser-dev/node_modules/@xstate/react/es/useConstant.mjs.map +1 -1
  39. package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -1
  40. package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -1
  41. package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -1
  42. package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -1
  43. package/dist/browser-dev/node_modules/use-sync-external-store/shim/index.mjs.map +1 -1
  44. package/dist/browser-dev/node_modules/use-sync-external-store/shim/with-selector.mjs.map +1 -1
  45. package/dist/browser-dev/optionValueDecoder.mjs.map +1 -1
  46. package/dist/browser-dev/packages/hydrogen-react/package.json.mjs +1 -1
  47. package/dist/browser-dev/parse-metafield.mjs +26 -1
  48. package/dist/browser-dev/parse-metafield.mjs.map +1 -1
  49. package/dist/browser-dev/storefront-api-constants.mjs +1 -1
  50. package/dist/browser-dev/storefront-api-constants.mjs.map +1 -1
  51. package/dist/browser-dev/storefront-client.mjs.map +1 -1
  52. package/dist/browser-dev/useCartAPIStateMachine.mjs.map +1 -1
  53. package/dist/browser-dev/useCartActions.mjs.map +1 -1
  54. package/dist/browser-dev/useMoney.mjs +53 -7
  55. package/dist/browser-dev/useMoney.mjs.map +1 -1
  56. package/dist/browser-dev/useSelectedOptionInUrlParam.mjs.map +1 -1
  57. package/dist/browser-dev/useShopifyCookies.mjs.map +1 -1
  58. package/dist/browser-prod/AddToCartButton.mjs.map +1 -1
  59. package/dist/browser-prod/BaseButton.mjs.map +1 -1
  60. package/dist/browser-prod/BuyNowButton.mjs.map +1 -1
  61. package/dist/browser-prod/CartCheckoutButton.mjs.map +1 -1
  62. package/dist/browser-prod/CartCost.mjs.map +1 -1
  63. package/dist/browser-prod/CartLineProvider.mjs.map +1 -1
  64. package/dist/browser-prod/CartLineQuantity.mjs.map +1 -1
  65. package/dist/browser-prod/CartLineQuantityAdjustButton.mjs.map +1 -1
  66. package/dist/browser-prod/CartProvider.mjs.map +1 -1
  67. package/dist/browser-prod/ExternalVideo.mjs.map +1 -1
  68. package/dist/browser-prod/Image.mjs.map +1 -1
  69. package/dist/browser-prod/MediaFile.mjs.map +1 -1
  70. package/dist/browser-prod/ModelViewer.mjs.map +1 -1
  71. package/dist/browser-prod/Money.mjs.map +1 -1
  72. package/dist/browser-prod/ProductPrice.mjs.map +1 -1
  73. package/dist/browser-prod/ProductProvider.mjs.map +1 -1
  74. package/dist/browser-prod/RichText.components.mjs.map +1 -1
  75. package/dist/browser-prod/RichText.mjs.map +1 -1
  76. package/dist/browser-prod/ShopPayButton.mjs.map +1 -1
  77. package/dist/browser-prod/ShopifyProvider.mjs.map +1 -1
  78. package/dist/browser-prod/Video.mjs.map +1 -1
  79. package/dist/browser-prod/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -1
  80. package/dist/browser-prod/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -1
  81. package/dist/browser-prod/analytics-utils.mjs.map +1 -1
  82. package/dist/browser-prod/analytics.mjs.map +1 -1
  83. package/dist/browser-prod/cart-hooks.mjs.map +1 -1
  84. package/dist/browser-prod/cart-queries.mjs.map +1 -1
  85. package/dist/browser-prod/codegen.helpers.mjs.map +1 -1
  86. package/dist/browser-prod/cookies-utils.mjs.map +1 -1
  87. package/dist/browser-prod/flatten-connection.mjs.map +1 -1
  88. package/dist/browser-prod/getProductOptions.mjs.map +1 -1
  89. package/dist/browser-prod/load-script.mjs.map +1 -1
  90. package/dist/browser-prod/node_modules/@xstate/fsm/es/index.mjs +17 -17
  91. package/dist/browser-prod/node_modules/@xstate/fsm/es/index.mjs.map +1 -1
  92. package/dist/browser-prod/node_modules/@xstate/react/es/fsm.mjs +2 -2
  93. package/dist/browser-prod/node_modules/@xstate/react/es/fsm.mjs.map +1 -1
  94. package/dist/browser-prod/node_modules/@xstate/react/es/useConstant.mjs.map +1 -1
  95. package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -1
  96. package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -1
  97. package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -1
  98. package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -1
  99. package/dist/browser-prod/node_modules/use-sync-external-store/shim/index.mjs.map +1 -1
  100. package/dist/browser-prod/node_modules/use-sync-external-store/shim/with-selector.mjs.map +1 -1
  101. package/dist/browser-prod/optionValueDecoder.mjs.map +1 -1
  102. package/dist/browser-prod/packages/hydrogen-react/package.json.mjs +1 -1
  103. package/dist/browser-prod/parse-metafield.mjs +27 -1
  104. package/dist/browser-prod/parse-metafield.mjs.map +1 -1
  105. package/dist/browser-prod/storefront-api-constants.mjs +1 -1
  106. package/dist/browser-prod/storefront-api-constants.mjs.map +1 -1
  107. package/dist/browser-prod/storefront-client.mjs.map +1 -1
  108. package/dist/browser-prod/useCartAPIStateMachine.mjs.map +1 -1
  109. package/dist/browser-prod/useCartActions.mjs.map +1 -1
  110. package/dist/browser-prod/useMoney.mjs +53 -7
  111. package/dist/browser-prod/useMoney.mjs.map +1 -1
  112. package/dist/browser-prod/useSelectedOptionInUrlParam.mjs.map +1 -1
  113. package/dist/browser-prod/useShopifyCookies.mjs.map +1 -1
  114. package/dist/node-dev/AddToCartButton.js.map +1 -1
  115. package/dist/node-dev/AddToCartButton.mjs.map +1 -1
  116. package/dist/node-dev/BaseButton.js.map +1 -1
  117. package/dist/node-dev/BaseButton.mjs.map +1 -1
  118. package/dist/node-dev/BuyNowButton.js.map +1 -1
  119. package/dist/node-dev/BuyNowButton.mjs.map +1 -1
  120. package/dist/node-dev/CartCheckoutButton.js.map +1 -1
  121. package/dist/node-dev/CartCheckoutButton.mjs.map +1 -1
  122. package/dist/node-dev/CartCost.js.map +1 -1
  123. package/dist/node-dev/CartCost.mjs.map +1 -1
  124. package/dist/node-dev/CartLineProvider.js.map +1 -1
  125. package/dist/node-dev/CartLineProvider.mjs.map +1 -1
  126. package/dist/node-dev/CartLineQuantity.js.map +1 -1
  127. package/dist/node-dev/CartLineQuantity.mjs.map +1 -1
  128. package/dist/node-dev/CartLineQuantityAdjustButton.js.map +1 -1
  129. package/dist/node-dev/CartLineQuantityAdjustButton.mjs.map +1 -1
  130. package/dist/node-dev/CartProvider.js.map +1 -1
  131. package/dist/node-dev/CartProvider.mjs.map +1 -1
  132. package/dist/node-dev/ExternalVideo.js.map +1 -1
  133. package/dist/node-dev/ExternalVideo.mjs.map +1 -1
  134. package/dist/node-dev/Image.js.map +1 -1
  135. package/dist/node-dev/Image.mjs.map +1 -1
  136. package/dist/node-dev/MediaFile.js.map +1 -1
  137. package/dist/node-dev/MediaFile.mjs.map +1 -1
  138. package/dist/node-dev/ModelViewer.js.map +1 -1
  139. package/dist/node-dev/ModelViewer.mjs.map +1 -1
  140. package/dist/node-dev/Money.js.map +1 -1
  141. package/dist/node-dev/Money.mjs.map +1 -1
  142. package/dist/node-dev/ProductPrice.js.map +1 -1
  143. package/dist/node-dev/ProductPrice.mjs.map +1 -1
  144. package/dist/node-dev/ProductProvider.js.map +1 -1
  145. package/dist/node-dev/ProductProvider.mjs.map +1 -1
  146. package/dist/node-dev/RichText.components.js.map +1 -1
  147. package/dist/node-dev/RichText.components.mjs.map +1 -1
  148. package/dist/node-dev/RichText.js.map +1 -1
  149. package/dist/node-dev/RichText.mjs.map +1 -1
  150. package/dist/node-dev/ShopPayButton.js.map +1 -1
  151. package/dist/node-dev/ShopPayButton.mjs.map +1 -1
  152. package/dist/node-dev/ShopifyProvider.js.map +1 -1
  153. package/dist/node-dev/ShopifyProvider.mjs.map +1 -1
  154. package/dist/node-dev/Video.js.map +1 -1
  155. package/dist/node-dev/Video.mjs.map +1 -1
  156. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.js.map +1 -1
  157. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -1
  158. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.js.map +1 -1
  159. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -1
  160. package/dist/node-dev/analytics-utils.js.map +1 -1
  161. package/dist/node-dev/analytics-utils.mjs.map +1 -1
  162. package/dist/node-dev/analytics.js.map +1 -1
  163. package/dist/node-dev/analytics.mjs.map +1 -1
  164. package/dist/node-dev/cart-hooks.js.map +1 -1
  165. package/dist/node-dev/cart-hooks.mjs.map +1 -1
  166. package/dist/node-dev/cart-queries.js.map +1 -1
  167. package/dist/node-dev/cart-queries.mjs.map +1 -1
  168. package/dist/node-dev/codegen.helpers.js.map +1 -1
  169. package/dist/node-dev/codegen.helpers.mjs.map +1 -1
  170. package/dist/node-dev/cookies-utils.js.map +1 -1
  171. package/dist/node-dev/cookies-utils.mjs.map +1 -1
  172. package/dist/node-dev/flatten-connection.js.map +1 -1
  173. package/dist/node-dev/flatten-connection.mjs.map +1 -1
  174. package/dist/node-dev/getProductOptions.js.map +1 -1
  175. package/dist/node-dev/getProductOptions.mjs.map +1 -1
  176. package/dist/node-dev/load-script.js.map +1 -1
  177. package/dist/node-dev/load-script.mjs.map +1 -1
  178. package/dist/node-dev/node_modules/@xstate/fsm/es/index.js +17 -17
  179. package/dist/node-dev/node_modules/@xstate/fsm/es/index.js.map +1 -1
  180. package/dist/node-dev/node_modules/@xstate/fsm/es/index.mjs +17 -17
  181. package/dist/node-dev/node_modules/@xstate/fsm/es/index.mjs.map +1 -1
  182. package/dist/node-dev/node_modules/@xstate/react/es/fsm.js +2 -2
  183. package/dist/node-dev/node_modules/@xstate/react/es/fsm.js.map +1 -1
  184. package/dist/node-dev/node_modules/@xstate/react/es/fsm.mjs +2 -2
  185. package/dist/node-dev/node_modules/@xstate/react/es/fsm.mjs.map +1 -1
  186. package/dist/node-dev/node_modules/@xstate/react/es/useConstant.js.map +1 -1
  187. package/dist/node-dev/node_modules/@xstate/react/es/useConstant.mjs.map +1 -1
  188. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +1 -1
  189. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -1
  190. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js.map +1 -1
  191. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -1
  192. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +1 -1
  193. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -1
  194. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js.map +1 -1
  195. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -1
  196. package/dist/node-dev/node_modules/use-sync-external-store/shim/index.js.map +1 -1
  197. package/dist/node-dev/node_modules/use-sync-external-store/shim/index.mjs.map +1 -1
  198. package/dist/node-dev/node_modules/use-sync-external-store/shim/with-selector.js.map +1 -1
  199. package/dist/node-dev/node_modules/use-sync-external-store/shim/with-selector.mjs.map +1 -1
  200. package/dist/node-dev/optionValueDecoder.js.map +1 -1
  201. package/dist/node-dev/optionValueDecoder.mjs.map +1 -1
  202. package/dist/node-dev/packages/hydrogen-react/package.json.js +1 -1
  203. package/dist/node-dev/packages/hydrogen-react/package.json.mjs +1 -1
  204. package/dist/node-dev/parse-metafield.js +26 -1
  205. package/dist/node-dev/parse-metafield.js.map +1 -1
  206. package/dist/node-dev/parse-metafield.mjs +26 -1
  207. package/dist/node-dev/parse-metafield.mjs.map +1 -1
  208. package/dist/node-dev/storefront-api-constants.js +1 -1
  209. package/dist/node-dev/storefront-api-constants.js.map +1 -1
  210. package/dist/node-dev/storefront-api-constants.mjs +1 -1
  211. package/dist/node-dev/storefront-api-constants.mjs.map +1 -1
  212. package/dist/node-dev/storefront-client.js.map +1 -1
  213. package/dist/node-dev/storefront-client.mjs.map +1 -1
  214. package/dist/node-dev/useCartAPIStateMachine.js.map +1 -1
  215. package/dist/node-dev/useCartAPIStateMachine.mjs.map +1 -1
  216. package/dist/node-dev/useCartActions.js.map +1 -1
  217. package/dist/node-dev/useCartActions.mjs.map +1 -1
  218. package/dist/node-dev/useMoney.js +53 -7
  219. package/dist/node-dev/useMoney.js.map +1 -1
  220. package/dist/node-dev/useMoney.mjs +53 -7
  221. package/dist/node-dev/useMoney.mjs.map +1 -1
  222. package/dist/node-dev/useSelectedOptionInUrlParam.js.map +1 -1
  223. package/dist/node-dev/useSelectedOptionInUrlParam.mjs.map +1 -1
  224. package/dist/node-dev/useShopifyCookies.js.map +1 -1
  225. package/dist/node-dev/useShopifyCookies.mjs.map +1 -1
  226. package/dist/node-prod/AddToCartButton.js.map +1 -1
  227. package/dist/node-prod/AddToCartButton.mjs.map +1 -1
  228. package/dist/node-prod/BaseButton.js.map +1 -1
  229. package/dist/node-prod/BaseButton.mjs.map +1 -1
  230. package/dist/node-prod/BuyNowButton.js.map +1 -1
  231. package/dist/node-prod/BuyNowButton.mjs.map +1 -1
  232. package/dist/node-prod/CartCheckoutButton.js.map +1 -1
  233. package/dist/node-prod/CartCheckoutButton.mjs.map +1 -1
  234. package/dist/node-prod/CartCost.js.map +1 -1
  235. package/dist/node-prod/CartCost.mjs.map +1 -1
  236. package/dist/node-prod/CartLineProvider.js.map +1 -1
  237. package/dist/node-prod/CartLineProvider.mjs.map +1 -1
  238. package/dist/node-prod/CartLineQuantity.js.map +1 -1
  239. package/dist/node-prod/CartLineQuantity.mjs.map +1 -1
  240. package/dist/node-prod/CartLineQuantityAdjustButton.js.map +1 -1
  241. package/dist/node-prod/CartLineQuantityAdjustButton.mjs.map +1 -1
  242. package/dist/node-prod/CartProvider.js.map +1 -1
  243. package/dist/node-prod/CartProvider.mjs.map +1 -1
  244. package/dist/node-prod/ExternalVideo.js.map +1 -1
  245. package/dist/node-prod/ExternalVideo.mjs.map +1 -1
  246. package/dist/node-prod/Image.js.map +1 -1
  247. package/dist/node-prod/Image.mjs.map +1 -1
  248. package/dist/node-prod/MediaFile.js.map +1 -1
  249. package/dist/node-prod/MediaFile.mjs.map +1 -1
  250. package/dist/node-prod/ModelViewer.js.map +1 -1
  251. package/dist/node-prod/ModelViewer.mjs.map +1 -1
  252. package/dist/node-prod/Money.js.map +1 -1
  253. package/dist/node-prod/Money.mjs.map +1 -1
  254. package/dist/node-prod/ProductPrice.js.map +1 -1
  255. package/dist/node-prod/ProductPrice.mjs.map +1 -1
  256. package/dist/node-prod/ProductProvider.js.map +1 -1
  257. package/dist/node-prod/ProductProvider.mjs.map +1 -1
  258. package/dist/node-prod/RichText.components.js.map +1 -1
  259. package/dist/node-prod/RichText.components.mjs.map +1 -1
  260. package/dist/node-prod/RichText.js.map +1 -1
  261. package/dist/node-prod/RichText.mjs.map +1 -1
  262. package/dist/node-prod/ShopPayButton.js.map +1 -1
  263. package/dist/node-prod/ShopPayButton.mjs.map +1 -1
  264. package/dist/node-prod/ShopifyProvider.js.map +1 -1
  265. package/dist/node-prod/ShopifyProvider.mjs.map +1 -1
  266. package/dist/node-prod/Video.js.map +1 -1
  267. package/dist/node-prod/Video.mjs.map +1 -1
  268. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.js.map +1 -1
  269. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -1
  270. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.js.map +1 -1
  271. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -1
  272. package/dist/node-prod/analytics-utils.js.map +1 -1
  273. package/dist/node-prod/analytics-utils.mjs.map +1 -1
  274. package/dist/node-prod/analytics.js.map +1 -1
  275. package/dist/node-prod/analytics.mjs.map +1 -1
  276. package/dist/node-prod/cart-hooks.js.map +1 -1
  277. package/dist/node-prod/cart-hooks.mjs.map +1 -1
  278. package/dist/node-prod/cart-queries.js.map +1 -1
  279. package/dist/node-prod/cart-queries.mjs.map +1 -1
  280. package/dist/node-prod/codegen.helpers.js.map +1 -1
  281. package/dist/node-prod/codegen.helpers.mjs.map +1 -1
  282. package/dist/node-prod/cookies-utils.js.map +1 -1
  283. package/dist/node-prod/cookies-utils.mjs.map +1 -1
  284. package/dist/node-prod/flatten-connection.js.map +1 -1
  285. package/dist/node-prod/flatten-connection.mjs.map +1 -1
  286. package/dist/node-prod/getProductOptions.js.map +1 -1
  287. package/dist/node-prod/getProductOptions.mjs.map +1 -1
  288. package/dist/node-prod/load-script.js.map +1 -1
  289. package/dist/node-prod/load-script.mjs.map +1 -1
  290. package/dist/node-prod/node_modules/@xstate/fsm/es/index.js +17 -17
  291. package/dist/node-prod/node_modules/@xstate/fsm/es/index.js.map +1 -1
  292. package/dist/node-prod/node_modules/@xstate/fsm/es/index.mjs +17 -17
  293. package/dist/node-prod/node_modules/@xstate/fsm/es/index.mjs.map +1 -1
  294. package/dist/node-prod/node_modules/@xstate/react/es/fsm.js +2 -2
  295. package/dist/node-prod/node_modules/@xstate/react/es/fsm.js.map +1 -1
  296. package/dist/node-prod/node_modules/@xstate/react/es/fsm.mjs +2 -2
  297. package/dist/node-prod/node_modules/@xstate/react/es/fsm.mjs.map +1 -1
  298. package/dist/node-prod/node_modules/@xstate/react/es/useConstant.js.map +1 -1
  299. package/dist/node-prod/node_modules/@xstate/react/es/useConstant.mjs.map +1 -1
  300. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +1 -1
  301. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -1
  302. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js.map +1 -1
  303. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -1
  304. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +1 -1
  305. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -1
  306. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js.map +1 -1
  307. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -1
  308. package/dist/node-prod/node_modules/use-sync-external-store/shim/index.js.map +1 -1
  309. package/dist/node-prod/node_modules/use-sync-external-store/shim/index.mjs.map +1 -1
  310. package/dist/node-prod/node_modules/use-sync-external-store/shim/with-selector.js.map +1 -1
  311. package/dist/node-prod/node_modules/use-sync-external-store/shim/with-selector.mjs.map +1 -1
  312. package/dist/node-prod/optionValueDecoder.js.map +1 -1
  313. package/dist/node-prod/optionValueDecoder.mjs.map +1 -1
  314. package/dist/node-prod/packages/hydrogen-react/package.json.js +1 -1
  315. package/dist/node-prod/packages/hydrogen-react/package.json.mjs +1 -1
  316. package/dist/node-prod/parse-metafield.js +27 -1
  317. package/dist/node-prod/parse-metafield.js.map +1 -1
  318. package/dist/node-prod/parse-metafield.mjs +27 -1
  319. package/dist/node-prod/parse-metafield.mjs.map +1 -1
  320. package/dist/node-prod/storefront-api-constants.js +1 -1
  321. package/dist/node-prod/storefront-api-constants.js.map +1 -1
  322. package/dist/node-prod/storefront-api-constants.mjs +1 -1
  323. package/dist/node-prod/storefront-api-constants.mjs.map +1 -1
  324. package/dist/node-prod/storefront-client.js.map +1 -1
  325. package/dist/node-prod/storefront-client.mjs.map +1 -1
  326. package/dist/node-prod/useCartAPIStateMachine.js.map +1 -1
  327. package/dist/node-prod/useCartAPIStateMachine.mjs.map +1 -1
  328. package/dist/node-prod/useCartActions.js.map +1 -1
  329. package/dist/node-prod/useCartActions.mjs.map +1 -1
  330. package/dist/node-prod/useMoney.js +53 -7
  331. package/dist/node-prod/useMoney.js.map +1 -1
  332. package/dist/node-prod/useMoney.mjs +53 -7
  333. package/dist/node-prod/useMoney.mjs.map +1 -1
  334. package/dist/node-prod/useSelectedOptionInUrlParam.js.map +1 -1
  335. package/dist/node-prod/useSelectedOptionInUrlParam.mjs.map +1 -1
  336. package/dist/node-prod/useShopifyCookies.js.map +1 -1
  337. package/dist/node-prod/useShopifyCookies.mjs.map +1 -1
  338. package/dist/types/CartLineProvider.d.ts +1 -1
  339. package/dist/types/CartProvider.d.ts +2 -2
  340. package/dist/types/Image.d.ts +1 -1
  341. package/dist/types/ModelViewer.d.ts +1 -1
  342. package/dist/types/Money.d.ts +13 -5
  343. package/dist/types/Video.d.ts +1 -1
  344. package/dist/types/cart-hooks.d.ts +3 -4
  345. package/dist/types/codegen.helpers.d.ts +2 -2
  346. package/dist/types/customer-account-api-types.d.ts +9386 -0
  347. package/dist/types/optionValueDecoder.d.ts +2 -2
  348. package/dist/types/storefront-api-constants.d.ts +1 -1
  349. package/dist/types/storefront-api-types.d.ts +143 -8
  350. package/dist/types/useCartAPIStateMachine.d.ts +2 -2
  351. package/dist/types/useCartActions.d.ts +2 -2
  352. package/dist/types/useMoney.d.ts +16 -2
  353. package/dist/umd/hydrogen-react.dev.js +100 -29
  354. package/dist/umd/hydrogen-react.dev.js.map +1 -1
  355. package/dist/umd/hydrogen-react.prod.js +13 -13
  356. package/dist/umd/hydrogen-react.prod.js.map +1 -1
  357. package/package.json +26 -25
  358. package/storefront.schema.json +1 -1
  359. package/dist/browser-dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.mjs +0 -6
  360. package/dist/browser-dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.mjs.map +0 -1
  361. package/dist/browser-prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.mjs +0 -6
  362. package/dist/browser-prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.mjs.map +0 -1
  363. package/dist/node-dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.js +0 -5
  364. package/dist/node-dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.js.map +0 -1
  365. package/dist/node-dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.mjs +0 -6
  366. package/dist/node-dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.mjs.map +0 -1
  367. package/dist/node-prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.js +0 -5
  368. package/dist/node-prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.js.map +0 -1
  369. package/dist/node-prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.mjs +0 -6
  370. package/dist/node-prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.mjs.map +0 -1
@@ -14,7 +14,7 @@ export type IsOptionValueCombinationInEncodedVariant = (targetOptionValueCombina
14
14
  * Determine whether an option value combination is present in an encoded option value string. Function is memoized by encodedVariantField.
15
15
  *
16
16
  * @param targetOptionValueCombination - Indices of option values to look up in the encoded option value string. A partial set of indices may be passed to determine whether a node or any children is present. For example, if a product has 3 options, passing [0] will return true if any option value combination for the first option's option value is present in the encoded string.
17
- * @param encodedVariantField - Encoded option value string from the Storefront API, e.g. [product.encodedVariantExistence](/docs/api/storefront/2025-04/objects/Product#field-encodedvariantexistence) or [product.encodedVariantAvailability](/docs/api/storefront/2025-04/objects/Product#field-encodedvariantavailability)
17
+ * @param encodedVariantField - Encoded option value string from the Storefront API, e.g. [product.encodedVariantExistence](/docs/api/storefront/2025-07/objects/Product#field-encodedvariantexistence) or [product.encodedVariantAvailability](/docs/api/storefront/2025-07/objects/Product#field-encodedvariantavailability)
18
18
  * @returns - True if a full or partial targetOptionValueIndices is present in the encoded option value string, false otherwise.
19
19
  */
20
20
  export declare const isOptionValueCombinationInEncodedVariant: IsOptionValueCombinationInEncodedVariant;
@@ -22,7 +22,7 @@ type EncodedVariantField = Product['encodedVariantAvailability'] | Product['enco
22
22
  type DecodedOptionValues = number[][];
23
23
  /**
24
24
  * For an encoded option value string, decode into option value combinations. Entries represent a valid combination formatted as an array of option value positions.
25
- * @param encodedVariantField - Encoded option value string from the Storefront API, e.g. [product.encodedVariantExistence](/docs/api/storefront/2025-04/objects/Product#field-encodedvariantexistence) or [product.encodedVariantAvailability](/docs/api/storefront/2025-04/objects/Product#field-encodedvariantavailability)
25
+ * @param encodedVariantField - Encoded option value string from the Storefront API, e.g. [product.encodedVariantExistence](/docs/api/storefront/2025-07/objects/Product#field-encodedvariantexistence) or [product.encodedVariantAvailability](/docs/api/storefront/2025-07/objects/Product#field-encodedvariantavailability)
26
26
  * @returns Decoded option value combinations
27
27
  */
28
28
  export declare function decodeEncodedVariant(encodedVariantField: EncodedVariantField): DecodedOptionValues;
@@ -1 +1 @@
1
- export declare const SFAPI_VERSION = "2025-04";
1
+ export declare const SFAPI_VERSION = "2025-07";
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * THIS FILE IS AUTO-GENERATED, DO NOT EDIT
3
- * Based on Storefront API 2025-04
3
+ * Based on Storefront API 2025-07
4
4
  * If changes need to happen to the types defined in this file, then generally the Storefront API needs to update. After it's updated, you can run `npm run graphql-types`.
5
5
  * Except custom Scalars, which are defined in the `codegen.ts` file
6
6
  */
@@ -708,7 +708,7 @@ export type CartBuyerIdentity = {
708
708
  * The rank of the preferences is determined by the order of the addresses in the array. Preferences
709
709
  * can be used to populate relevant fields in the checkout flow.
710
710
  *
711
- * As of the `2025-04` release, `buyerIdentity.deliveryAddressPreferences` is deprecated.
711
+ * As of the `2025-01` release, `buyerIdentity.deliveryAddressPreferences` is deprecated.
712
712
  * Delivery addresses are now part of the `CartDelivery` object and managed with three new mutations:
713
713
  * - `cartDeliveryAddressAdd`
714
714
  * - `cartDeliveryAddressUpdate`
@@ -1307,6 +1307,10 @@ export type CartErrorCode =
1307
1307
  | 'ADDRESS_FIELD_IS_REQUIRED'
1308
1308
  /** The specified address field is too long. */
1309
1309
  | 'ADDRESS_FIELD_IS_TOO_LONG'
1310
+ /** Buyer cannot purchase for company location. */
1311
+ | 'BUYER_CANNOT_PURCHASE_FOR_COMPANY_LOCATION'
1312
+ /** The cart is too large to save. */
1313
+ | 'CART_TOO_LARGE'
1310
1314
  /** The input value is invalid. */
1311
1315
  | 'INVALID'
1312
1316
  /** Company location not found or not allowed. */
@@ -1325,6 +1329,8 @@ export type CartErrorCode =
1325
1329
  | 'INVALID_METAFIELDS'
1326
1330
  /** The payment wasn't valid. */
1327
1331
  | 'INVALID_PAYMENT'
1332
+ /** The payment is invalid. Deferred payment is required. */
1333
+ | 'INVALID_PAYMENT_DEFERRED_PAYMENT_REQUIRED'
1328
1334
  /** Cannot update payment on an empty cart */
1329
1335
  | 'INVALID_PAYMENT_EMPTY_CART'
1330
1336
  /** The given zip code is invalid for the provided country. */
@@ -1347,16 +1353,46 @@ export type CartErrorCode =
1347
1353
  | 'NOTE_TOO_LONG'
1348
1354
  /** Only one delivery address can be selected. */
1349
1355
  | 'ONLY_ONE_DELIVERY_ADDRESS_CAN_BE_SELECTED'
1356
+ /** Credit card has expired. */
1357
+ | 'PAYMENTS_CREDIT_CARD_BASE_EXPIRED'
1358
+ /** Credit card gateway is not supported. */
1359
+ | 'PAYMENTS_CREDIT_CARD_BASE_GATEWAY_NOT_SUPPORTED'
1360
+ /** Credit card error. */
1361
+ | 'PAYMENTS_CREDIT_CARD_GENERIC'
1362
+ /** Credit card month is invalid. */
1363
+ | 'PAYMENTS_CREDIT_CARD_MONTH_INCLUSION'
1364
+ /** Credit card number is invalid. */
1365
+ | 'PAYMENTS_CREDIT_CARD_NUMBER_INVALID'
1366
+ /** Credit card number format is invalid. */
1367
+ | 'PAYMENTS_CREDIT_CARD_NUMBER_INVALID_FORMAT'
1368
+ /** Credit card verification value is blank. */
1369
+ | 'PAYMENTS_CREDIT_CARD_VERIFICATION_VALUE_BLANK'
1370
+ /** Credit card verification value is invalid for card type. */
1371
+ | 'PAYMENTS_CREDIT_CARD_VERIFICATION_VALUE_INVALID_FOR_CARD_TYPE'
1372
+ /** Credit card has expired. */
1373
+ | 'PAYMENTS_CREDIT_CARD_YEAR_EXPIRED'
1374
+ /** Credit card expiry year is invalid. */
1375
+ | 'PAYMENTS_CREDIT_CARD_YEAR_INVALID_EXPIRY_YEAR'
1376
+ /** The payment method is not applicable. */
1377
+ | 'PAYMENT_METHOD_NOT_APPLICABLE'
1350
1378
  /** The payment method is not supported. */
1351
1379
  | 'PAYMENT_METHOD_NOT_SUPPORTED'
1380
+ /** The delivery group is in a pending state. */
1381
+ | 'PENDING_DELIVERY_GROUPS'
1352
1382
  /** The given province cannot be found. */
1353
1383
  | 'PROVINCE_NOT_FOUND'
1384
+ /** Selling plan is not applicable. */
1385
+ | 'SELLING_PLAN_NOT_APPLICABLE'
1386
+ /** An error occurred while saving the cart. */
1387
+ | 'SERVICE_UNAVAILABLE'
1354
1388
  /** Too many delivery addresses on Cart. */
1355
1389
  | 'TOO_MANY_DELIVERY_ADDRESSES'
1356
1390
  /** A general error occurred during address validation. */
1357
1391
  | 'UNSPECIFIED_ADDRESS_ERROR'
1358
1392
  /** Validation failed. */
1359
1393
  | 'VALIDATION_CUSTOM'
1394
+ /** Variant can only be purchased with a selling plan. */
1395
+ | 'VARIANT_REQUIRES_SELLING_PLAN'
1360
1396
  /** The given zip code is unsupported. */
1361
1397
  | 'ZIP_CODE_NOT_SUPPORTED';
1362
1398
 
@@ -1759,6 +1795,17 @@ export type CartPrepareForCompletionResult =
1759
1795
  | CartStatusReady
1760
1796
  | CartThrottled;
1761
1797
 
1798
+ /** Return type for `cartRemovePersonalData` mutation. */
1799
+ export type CartRemovePersonalDataPayload = {
1800
+ __typename?: 'CartRemovePersonalDataPayload';
1801
+ /** The updated cart. */
1802
+ cart?: Maybe<Cart>;
1803
+ /** The list of errors that occurred from executing the mutation. */
1804
+ userErrors: Array<CartUserError>;
1805
+ /** A list of warnings that occurred during the mutation. */
1806
+ warnings: Array<CartWarning>;
1807
+ };
1808
+
1762
1809
  /**
1763
1810
  * A selectable delivery address for a cart.
1764
1811
  *
@@ -1862,6 +1909,8 @@ export type CartSubmitForCompletionResult =
1862
1909
  */
1863
1910
  export type CartThrottled = {
1864
1911
  __typename?: 'CartThrottled';
1912
+ /** The result of cart preparation for completion. */
1913
+ cart?: Maybe<Cart>;
1865
1914
  /** The polling delay. */
1866
1915
  pollAfter: Scalars['DateTime']['output'];
1867
1916
  };
@@ -1901,6 +1950,30 @@ export type CartWarning = {
1901
1950
 
1902
1951
  /** The code for the cart warning. */
1903
1952
  export type CartWarningCode =
1953
+ /** The discount code cannot be honored. */
1954
+ | 'DISCOUNT_CODE_NOT_HONOURED'
1955
+ /** The discount is currently inactive. */
1956
+ | 'DISCOUNT_CURRENTLY_INACTIVE'
1957
+ /** The customer is not eligible for this discount. */
1958
+ | 'DISCOUNT_CUSTOMER_NOT_ELIGIBLE'
1959
+ /** The customer's discount usage limit has been reached. */
1960
+ | 'DISCOUNT_CUSTOMER_USAGE_LIMIT_REACHED'
1961
+ /** An eligible customer is missing for this discount. */
1962
+ | 'DISCOUNT_ELIGIBLE_CUSTOMER_MISSING'
1963
+ /** The purchase type is incompatible with this discount. */
1964
+ | 'DISCOUNT_INCOMPATIBLE_PURCHASE_TYPE'
1965
+ /** The discount was not found. */
1966
+ | 'DISCOUNT_NOT_FOUND'
1967
+ /** There are no entitled line items for this discount. */
1968
+ | 'DISCOUNT_NO_ENTITLED_LINE_ITEMS'
1969
+ /** There are no entitled shipping lines for this discount. */
1970
+ | 'DISCOUNT_NO_ENTITLED_SHIPPING_LINES'
1971
+ /** The purchase is not in range for this discount. */
1972
+ | 'DISCOUNT_PURCHASE_NOT_IN_RANGE'
1973
+ /** The quantity is not in range for this discount. */
1974
+ | 'DISCOUNT_QUANTITY_NOT_IN_RANGE'
1975
+ /** The discount usage limit has been reached. */
1976
+ | 'DISCOUNT_USAGE_LIMIT_REACHED'
1904
1977
  /** A delivery address with the same details already exists on this cart. */
1905
1978
  | 'DUPLICATE_DELIVERY_ADDRESS'
1906
1979
  /** The merchandise does not have enough stock. */
@@ -2272,9 +2345,14 @@ export type Country = {
2272
2345
  availableLanguages: Array<Language>;
2273
2346
  /** The currency of the country. */
2274
2347
  currency: Currency;
2348
+ /** The default language for the country. */
2349
+ defaultLanguage: Language;
2275
2350
  /** The ISO code of the country. */
2276
2351
  isoCode: CountryCode;
2277
- /** The market that includes this country. */
2352
+ /**
2353
+ * The market that includes this country.
2354
+ * @deprecated This `market` field will be removed in a future version of the API.
2355
+ */
2278
2356
  market?: Maybe<Market>;
2279
2357
  /** The name of the country. */
2280
2358
  name: Scalars['String']['output'];
@@ -3980,6 +4058,15 @@ export type Image = {
3980
4058
  * @deprecated Use `url` instead.
3981
4059
  */
3982
4060
  src: Scalars['URL']['output'];
4061
+ /**
4062
+ * The ThumbHash of the image.
4063
+ *
4064
+ * Useful to display placeholder images while the original image is loading.
4065
+ *
4066
+ * See https://evanw.github.io/thumbhash/ for details on how to use it.
4067
+ *
4068
+ */
4069
+ thumbhash?: Maybe<Scalars['String']['output']>;
3983
4070
  /**
3984
4071
  * The location of the transformed image as a URL.
3985
4072
  *
@@ -4422,7 +4509,10 @@ export type Localization = {
4422
4509
  country: Country;
4423
4510
  /** The language of the active localized experience. Use the `@inContext` directive to change this value. */
4424
4511
  language: Language;
4425
- /** The market including the country of the active localized experience. Use the `@inContext` directive to change this value. */
4512
+ /**
4513
+ * The market including the country of the active localized experience. Use the `@inContext` directive to change this value.
4514
+ * @deprecated This `market` field will be removed in a future version of the API.
4515
+ */
4426
4516
  market: Market;
4427
4517
  };
4428
4518
 
@@ -4944,6 +5034,8 @@ export type MetafieldReferencesArgs = {
4944
5034
 
4945
5035
  /** Possible error codes that can be returned by `MetafieldDeleteUserError`. */
4946
5036
  export type MetafieldDeleteErrorCode =
5037
+ /** The current app is not authorized to perform this action. */
5038
+ | 'APP_NOT_AUTHORIZED'
4947
5039
  /** The owner ID is invalid. */
4948
5040
  | 'INVALID_OWNER'
4949
5041
  /** Metafield not found. */
@@ -5053,6 +5145,8 @@ export type MetafieldsSetUserError = DisplayableError & {
5053
5145
 
5054
5146
  /** Possible error codes that can be returned by `MetafieldsSetUserError`. */
5055
5147
  export type MetafieldsSetUserErrorCode =
5148
+ /** The current app is not authorized to perform this action. */
5149
+ | 'APP_NOT_AUTHORIZED'
5056
5150
  /** The input value is blank. */
5057
5151
  | 'BLANK'
5058
5152
  /** The input value isn't included in the list. */
@@ -5278,6 +5372,8 @@ export type Mutation = {
5278
5372
  cartPaymentUpdate?: Maybe<CartPaymentUpdatePayload>;
5279
5373
  /** Prepare the cart for cart checkout completion. */
5280
5374
  cartPrepareForCompletion?: Maybe<CartPrepareForCompletionPayload>;
5375
+ /** Removes personally identifiable information from the cart. */
5376
+ cartRemovePersonalData?: Maybe<CartRemovePersonalDataPayload>;
5281
5377
  /** Update the selected delivery options for a delivery group. */
5282
5378
  cartSelectedDeliveryOptionsUpdate?: Maybe<CartSelectedDeliveryOptionsUpdatePayload>;
5283
5379
  /** Submit the cart for checkout completion. */
@@ -5458,6 +5554,11 @@ export type MutationCartPrepareForCompletionArgs = {
5458
5554
  cartId: Scalars['ID']['input'];
5459
5555
  };
5460
5556
 
5557
+ /** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */
5558
+ export type MutationCartRemovePersonalDataArgs = {
5559
+ cartId: Scalars['ID']['input'];
5560
+ };
5561
+
5461
5562
  /** The schema’s entry-point for mutations. This acts as the public, top-level API from which all mutation queries must start. */
5462
5563
  export type MutationCartSelectedDeliveryOptionsUpdateArgs = {
5463
5564
  cartId: Scalars['ID']['input'];
@@ -5572,8 +5673,8 @@ export type MutationShopPayPaymentRequestSessionSubmitArgs = {
5572
5673
  /**
5573
5674
  * An object with an ID field to support global identification, in accordance with the
5574
5675
  * [Relay specification](https://relay.dev/graphql/objectidentification.htm#sec-Node-Interface).
5575
- * This interface is used by the [node](https://shopify.dev/api/admin-graphql/unstable/queries/node)
5576
- * and [nodes](https://shopify.dev/api/admin-graphql/unstable/queries/nodes) queries.
5676
+ * This interface is used by the [node](/docs/api/storefront/latest/queries/node)
5677
+ * and [nodes](/docs/api/storefront/latest/queries/nodes) queries.
5577
5678
  *
5578
5679
  */
5579
5680
  export type Node = {
@@ -7924,6 +8025,8 @@ export type Shop = HasMetafields &
7924
8025
  __typename?: 'Shop';
7925
8026
  /** The shop's branding configuration. */
7926
8027
  brand?: Maybe<Brand>;
8028
+ /** The URL for the customer account (only present if shop has a customer account vanity domain). */
8029
+ customerAccountUrl?: Maybe<Scalars['String']['output']>;
7927
8030
  /** A description of the shop. */
7928
8031
  description?: Maybe<Scalars['String']['output']>;
7929
8032
  /** A globally-unique ID. */
@@ -8681,9 +8784,13 @@ export type SubmissionErrorCode =
8681
8784
  | 'PAYMENTS_SHOPIFY_PAYMENTS_REQUIRED'
8682
8785
  | 'PAYMENTS_UNACCEPTABLE_PAYMENT_AMOUNT'
8683
8786
  | 'PAYMENTS_WALLET_CONTENT_MISSING'
8787
+ /** Redirect to checkout required to complete this action. */
8788
+ | 'REDIRECT_TO_CHECKOUT_REQUIRED'
8684
8789
  | 'TAXES_DELIVERY_GROUP_ID_NOT_FOUND'
8685
8790
  | 'TAXES_LINE_ID_NOT_FOUND'
8686
- | 'TAXES_MUST_BE_DEFINED';
8791
+ | 'TAXES_MUST_BE_DEFINED'
8792
+ /** Validation failed. */
8793
+ | 'VALIDATION_CUSTOM';
8687
8794
 
8688
8795
  /** Cart submit for checkout completion is successful. */
8689
8796
  export type SubmitAlreadyAccepted = {
@@ -8786,8 +8893,12 @@ export type UnitPriceMeasurement = {
8786
8893
  export type UnitPriceMeasurementMeasuredType =
8787
8894
  /** Unit of measurements representing areas. */
8788
8895
  | 'AREA'
8896
+ /** Unit of measurements representing counts. */
8897
+ | 'COUNT'
8789
8898
  /** Unit of measurements representing lengths. */
8790
8899
  | 'LENGTH'
8900
+ /** The type of measurement is unknown. Upgrade to the latest version of the API to resolve this type. */
8901
+ | 'UNKNOWN'
8791
8902
  /** Unit of measurements representing volumes. */
8792
8903
  | 'VOLUME'
8793
8904
  /** Unit of measurements representing weights. */
@@ -8799,12 +8910,26 @@ export type UnitPriceMeasurementMeasuredUnit =
8799
8910
  | 'CL'
8800
8911
  /** 100 centimeters equals 1 meter. */
8801
8912
  | 'CM'
8913
+ /** Imperial system unit of volume (U.S. customary unit). */
8914
+ | 'FLOZ'
8915
+ /** 1 foot equals 12 inches. */
8916
+ | 'FT'
8917
+ /** Imperial system unit of area. */
8918
+ | 'FT2'
8802
8919
  /** Metric system unit of weight. */
8803
8920
  | 'G'
8921
+ /** 1 gallon equals 128 fluid ounces (U.S. customary unit). */
8922
+ | 'GAL'
8923
+ /** Imperial system unit of length. */
8924
+ | 'IN'
8925
+ /** 1 item, a unit of count. */
8926
+ | 'ITEM'
8804
8927
  /** 1 kilogram equals 1000 grams. */
8805
8928
  | 'KG'
8806
8929
  /** Metric system unit of volume. */
8807
8930
  | 'L'
8931
+ /** Imperial system unit of weight. */
8932
+ | 'LB'
8808
8933
  /** Metric system unit of length. */
8809
8934
  | 'M'
8810
8935
  /** Metric system unit of area. */
@@ -8816,7 +8941,17 @@ export type UnitPriceMeasurementMeasuredUnit =
8816
8941
  /** 1000 milliliters equals 1 liter. */
8817
8942
  | 'ML'
8818
8943
  /** 1000 millimeters equals 1 meter. */
8819
- | 'MM';
8944
+ | 'MM'
8945
+ /** 16 ounces equals 1 pound. */
8946
+ | 'OZ'
8947
+ /** 1 pint equals 16 fluid ounces (U.S. customary unit). */
8948
+ | 'PT'
8949
+ /** 1 quart equals 32 fluid ounces (U.S. customary unit). */
8950
+ | 'QT'
8951
+ /** The unit of measurement is unknown. Upgrade to the latest version of the API to resolve this unit. */
8952
+ | 'UNKNOWN'
8953
+ /** 1 yard equals 36 inches. */
8954
+ | 'YD';
8820
8955
 
8821
8956
  /** Systems of weights and measures. */
8822
8957
  export type UnitSystem =
@@ -11,11 +11,11 @@ export declare function useCartAPIStateMachine({ numCartLines, onCartActionEntry
11
11
  onCartActionOptimisticUI?: (context: CartMachineContext, event: CartMachineEvent) => Partial<CartMachineContext>;
12
12
  /** A callback that is invoked after a Cart API completes. */
13
13
  onCartActionComplete?: (context: CartMachineContext, event: CartMachineFetchResultEvent) => void;
14
- /** An object with fields that correspond to the Storefront API's [Cart object](https://shopify.dev/api/storefront/2025-04/objects/cart). */
14
+ /** An object with fields that correspond to the Storefront API's [Cart object](https://shopify.dev/api/storefront/2025-07/objects/cart). */
15
15
  data?: PartialDeep<CartType, {
16
16
  recurseIntoArrays: true;
17
17
  }>;
18
- /** A fragment used to query the Storefront API's [Cart object](https://shopify.dev/api/storefront/2025-04/objects/cart) for all queries and mutations. A default value is used if no argument is provided. */
18
+ /** A fragment used to query the Storefront API's [Cart object](https://shopify.dev/api/storefront/2025-07/objects/cart) for all queries and mutations. A default value is used if no argument is provided. */
19
19
  cartFragment: string;
20
20
  /** The ISO country code for i18n. */
21
21
  countryCode?: CountryCode;
@@ -6,12 +6,12 @@ type CartResponse = PartialDeep<CartType, {
6
6
  /**
7
7
  * The `useCartActions` hook returns helper graphql functions for Storefront Cart API
8
8
  *
9
- * See [cart API graphql mutations](https://shopify.dev/api/storefront/2025-04/objects/Cart)
9
+ * See [cart API graphql mutations](https://shopify.dev/api/storefront/2025-07/objects/Cart)
10
10
  */
11
11
  export declare function useCartActions({ numCartLines, cartFragment, countryCode, languageCode, }: {
12
12
  /** Maximum number of cart lines to fetch. Defaults to 250 cart lines. */
13
13
  numCartLines?: number;
14
- /** A fragment used to query the Storefront API's [Cart object](https://shopify.dev/api/storefront/2025-04/objects/cart) for all queries and mutations. A default value is used if no argument is provided. */
14
+ /** A fragment used to query the Storefront API's [Cart object](https://shopify.dev/api/storefront/2025-07/objects/cart) for all queries and mutations. A default value is used if no argument is provided. */
15
15
  cartFragment: string;
16
16
  /** The ISO country code for i18n. Default to `US` */
17
17
  countryCode?: CountryCode;
@@ -1,4 +1,16 @@
1
- import { CurrencyCode, MoneyV2 } from './storefront-api-types.js';
1
+ import { CurrencyCode as StorefrontApiCurrencyCode, MoneyV2 as StorefrontApiMoneyV2 } from './storefront-api-types.js';
2
+ import type { MoneyV2 as CustomerAccountApiMoneyV2, CurrencyCode as CustomerAccountApiCurrencyCode } from './customer-account-api-types.js';
3
+ /**
4
+ * Supports MoneyV2 from both Storefront API and Customer Account API.
5
+ * The APIs may have different CurrencyCode enums (e.g., Customer Account API added USDC in 2025-07, but Storefront API doesn't support USDC in 2025-07).
6
+ * This union type ensures useMoney works with data from either API.
7
+ */
8
+ type MoneyV2 = StorefrontApiMoneyV2 | CustomerAccountApiMoneyV2;
9
+ /**
10
+ * Supports CurrencyCode from both Storefront API and Customer Account API. The APIs may have different CurrencyCode enums (e.g., Customer Account API added USDC in 2025-07, but Storefront API doesn't support USDC in 2025-07).
11
+ * This union type ensures useMoney works with data from either API.
12
+ */
13
+ type CurrencyCode = StorefrontApiCurrencyCode | CustomerAccountApiCurrencyCode;
2
14
  export type UseMoneyValue = {
3
15
  /**
4
16
  * The currency code from the `MoneyV2` object.
@@ -47,7 +59,8 @@ export type UseMoneyValue = {
47
59
  withoutTrailingZerosAndCurrency: string;
48
60
  };
49
61
  /**
50
- * The `useMoney` hook takes a [MoneyV2 object](https://shopify.dev/api/storefront/reference/common-objects/moneyv2) and returns a
62
+ * The `useMoney` hook takes a [MoneyV2 object from the Storefront API](https://shopify.dev/docs/api/storefront/2025-07/objects/MoneyV2)
63
+ * or a [MoneyV2 object from the Customer Account API](https://shopify.dev/docs/api/customer/2025-07/objects/moneyv2) and returns a
51
64
  * default-formatted string of the amount with the correct currency indicator, along with some of the parts provided by
52
65
  * [Intl.NumberFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat).
53
66
  * Uses `locale` from `ShopifyProvider`
@@ -98,3 +111,4 @@ export type UseMoneyValue = {
98
111
  * ```
99
112
  */
100
113
  export declare function useMoney(money: MoneyV2): UseMoneyValue;
114
+ export {};
@@ -1,6 +1,6 @@
1
1
  (function(global, factory) {
2
2
  typeof exports === "object" && typeof module !== "undefined" ? factory(exports, require("react")) : typeof define === "function" && define.amd ? define(["exports", "react"], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self, factory(global.hydrogenreact = {}, global.React));
3
- })(this, function(exports2, React$1) {
3
+ })(this, (function(exports2, React$1) {
4
4
  "use strict";
5
5
  function _interopNamespaceDefault(e2) {
6
6
  const n2 = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
@@ -51,9 +51,9 @@
51
51
  return a2;
52
52
  }
53
53
  var n;
54
- !function(t2) {
54
+ !(function(t2) {
55
55
  t2[t2.NotStarted = 0] = "NotStarted", t2[t2.Running = 1] = "Running", t2[t2.Stopped = 2] = "Stopped";
56
- }(n || (n = {}));
56
+ })(n || (n = {}));
57
57
  var e = { type: "xstate.init" };
58
58
  function r(t2) {
59
59
  return void 0 === t2 ? [] : [].concat(t2);
@@ -77,45 +77,45 @@
77
77
  }
78
78
  function f(t2, n2, e2) {
79
79
  var r2 = n2, i2 = false;
80
- return [t2.filter(function(t3) {
80
+ return [t2.filter((function(t3) {
81
81
  if ("xstate.assign" === t3.type) {
82
82
  i2 = true;
83
83
  var n3 = Object.assign({}, r2);
84
- return "function" == typeof t3.assignment ? n3 = t3.assignment(r2, e2) : Object.keys(t3.assignment).forEach(function(i3) {
84
+ return "function" == typeof t3.assignment ? n3 = t3.assignment(r2, e2) : Object.keys(t3.assignment).forEach((function(i3) {
85
85
  n3[i3] = "function" == typeof t3.assignment[i3] ? t3.assignment[i3](r2, e2) : t3.assignment[i3];
86
- }), r2 = n3, false;
86
+ })), r2 = n3, false;
87
87
  }
88
88
  return true;
89
- }), r2, i2];
89
+ })), r2, i2];
90
90
  }
91
91
  function s(n2, i2) {
92
92
  void 0 === i2 && (i2 = {});
93
- var s2 = t(f(r(n2.states[n2.initial].entry).map(function(t2) {
93
+ var s2 = t(f(r(n2.states[n2.initial].entry).map((function(t2) {
94
94
  return o(t2, i2.actions);
95
- }), n2.context, e), 2), l2 = s2[0], v2 = s2[1], y = { config: n2, _options: i2, initialState: { value: n2.initial, actions: l2, context: v2, matches: a(n2.initial) }, transition: function(e2, i3) {
95
+ })), n2.context, e), 2), l2 = s2[0], v2 = s2[1], y = { config: n2, _options: i2, initialState: { value: n2.initial, actions: l2, context: v2, matches: a(n2.initial) }, transition: function(e2, i3) {
96
96
  var s3, l3, v3 = "string" == typeof e2 ? { value: e2, context: n2.context } : e2, p = v3.value, g2 = v3.context, d = u$1(i3), x = n2.states[p];
97
97
  if (x.on) {
98
98
  var m = r(x.on[d.type]);
99
99
  try {
100
- for (var h = function(t2) {
100
+ for (var h = (function(t2) {
101
101
  var n3 = "function" == typeof Symbol && Symbol.iterator, e3 = n3 && t2[n3], r2 = 0;
102
102
  if (e3) return e3.call(t2);
103
103
  if (t2 && "number" == typeof t2.length) return { next: function() {
104
104
  return t2 && r2 >= t2.length && (t2 = void 0), { value: t2 && t2[r2++], done: !t2 };
105
105
  } };
106
106
  throw new TypeError(n3 ? "Object is not iterable." : "Symbol.iterator is not defined.");
107
- }(m), b = h.next(); !b.done; b = h.next()) {
107
+ })(m), b = h.next(); !b.done; b = h.next()) {
108
108
  var S = b.value;
109
109
  if (void 0 === S) return c(p, g2);
110
110
  var w = "string" == typeof S ? { target: S } : S, j = w.target, E = w.actions, R = void 0 === E ? [] : E, N = w.cond, O = void 0 === N ? function() {
111
111
  return true;
112
112
  } : N, _ = void 0 === j, k = null != j ? j : p, T = n2.states[k];
113
113
  if (O(g2, d)) {
114
- var q = t(f((_ ? r(R) : [].concat(x.exit, R, T.entry).filter(function(t2) {
114
+ var q = t(f((_ ? r(R) : [].concat(x.exit, R, T.entry).filter((function(t2) {
115
115
  return t2;
116
- })).map(function(t2) {
116
+ }))).map((function(t2) {
117
117
  return o(t2, y._options.actions);
118
- }), g2, d), 3), z = q[0], A = q[1], B = q[2], C = null != j ? j : p;
118
+ })), g2, d), 3), z = q[0], A = q[1], B = q[2], C = null != j ? j : p;
119
119
  return { value: C, context: A, actions: z, changed: j !== p || z.length > 0 || B, matches: a(C) };
120
120
  }
121
121
  }
@@ -134,16 +134,16 @@
134
134
  return y;
135
135
  }
136
136
  var l$1 = function(t2, n2) {
137
- return t2.actions.forEach(function(e2) {
137
+ return t2.actions.forEach((function(e2) {
138
138
  var r2 = e2.exec;
139
139
  return r2 && r2(t2.context, n2);
140
- });
140
+ }));
141
141
  };
142
142
  function v(t2) {
143
143
  var r2 = t2.initialState, i2 = n.NotStarted, o2 = /* @__PURE__ */ new Set(), c2 = { _machine: t2, send: function(e2) {
144
- i2 === n.Running && (r2 = t2.transition(r2, e2), l$1(r2, u$1(e2)), o2.forEach(function(t3) {
144
+ i2 === n.Running && (r2 = t2.transition(r2, e2), l$1(r2, u$1(e2)), o2.forEach((function(t3) {
145
145
  return t3(r2);
146
- }));
146
+ })));
147
147
  }, subscribe: function(t3) {
148
148
  return o2.add(t3), t3(r2), { unsubscribe: function() {
149
149
  return o2.delete(t3);
@@ -807,7 +807,7 @@
807
807
  }
808
808
  `
809
809
  );
810
- const SFAPI_VERSION = "2025-04";
810
+ const SFAPI_VERSION = "2025-07";
811
811
  const MOCK_SHOP_DOMAIN = "mock.shop";
812
812
  const isMockShop = (domain) => domain.includes(MOCK_SHOP_DOMAIN);
813
813
  function createStorefrontClient({
@@ -2409,7 +2409,7 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
2409
2409
  }
2410
2410
  return false;
2411
2411
  }
2412
- const version = "2025.5.0";
2412
+ const version = "2025.7.0";
2413
2413
  const SCHEMA_ID = "custom_storefront_customer_tracking/1.2";
2414
2414
  const PAGE_RENDERED_EVENT_NAME = "page_rendered";
2415
2415
  const COLLECTION_PAGE_RENDERED_EVENT_NAME = "collection_page_rendered";
@@ -2861,6 +2861,17 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
2861
2861
  );
2862
2862
  }
2863
2863
  const amount = parseFloat(money.amount);
2864
+ let isCurrencySupported = true;
2865
+ try {
2866
+ new Intl.NumberFormat(locale, {
2867
+ style: "currency",
2868
+ currency: money.currencyCode
2869
+ });
2870
+ } catch (e2) {
2871
+ if (e2 instanceof RangeError && e2.message.includes("currency")) {
2872
+ isCurrencySupported = false;
2873
+ }
2874
+ }
2864
2875
  const {
2865
2876
  defaultFormatter,
2866
2877
  nameFormatter,
@@ -2869,9 +2880,13 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
2869
2880
  withoutCurrencyFormatter,
2870
2881
  withoutTrailingZerosOrCurrencyFormatter
2871
2882
  } = React$1.useMemo(() => {
2872
- const options = {
2883
+ const options = isCurrencySupported ? {
2873
2884
  style: "currency",
2874
2885
  currency: money.currencyCode
2886
+ } : {
2887
+ style: "decimal",
2888
+ minimumFractionDigits: 2,
2889
+ maximumFractionDigits: 2
2875
2890
  };
2876
2891
  return {
2877
2892
  defaultFormatter: getLazyFormatter(locale, options),
@@ -2888,21 +2903,39 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
2888
2903
  minimumFractionDigits: 0,
2889
2904
  maximumFractionDigits: 0
2890
2905
  }),
2891
- withoutCurrencyFormatter: getLazyFormatter(locale),
2906
+ withoutCurrencyFormatter: getLazyFormatter(locale, {
2907
+ minimumFractionDigits: 2,
2908
+ maximumFractionDigits: 2
2909
+ }),
2892
2910
  withoutTrailingZerosOrCurrencyFormatter: getLazyFormatter(locale, {
2893
2911
  minimumFractionDigits: 0,
2894
2912
  maximumFractionDigits: 0
2895
2913
  })
2896
2914
  };
2897
- }, [money.currencyCode, locale]);
2915
+ }, [money.currencyCode, locale, isCurrencySupported]);
2898
2916
  const isPartCurrency = (part) => part.type === "currency";
2899
2917
  const lazyFormatters = React$1.useMemo(
2900
2918
  () => ({
2901
2919
  original: () => money,
2902
2920
  currencyCode: () => money.currencyCode,
2903
- localizedString: () => defaultFormatter().format(amount),
2904
- parts: () => defaultFormatter().formatToParts(amount),
2905
- withoutTrailingZeros: () => amount % 1 === 0 ? withoutTrailingZerosFormatter().format(amount) : defaultFormatter().format(amount),
2921
+ localizedString: () => {
2922
+ const formatted = defaultFormatter().format(amount);
2923
+ return isCurrencySupported ? formatted : `${formatted} ${money.currencyCode}`;
2924
+ },
2925
+ parts: () => {
2926
+ const parts = defaultFormatter().formatToParts(amount);
2927
+ if (!isCurrencySupported) {
2928
+ parts.push(
2929
+ { type: "literal", value: " " },
2930
+ { type: "currency", value: money.currencyCode }
2931
+ );
2932
+ }
2933
+ return parts;
2934
+ },
2935
+ withoutTrailingZeros: () => {
2936
+ const formatted = amount % 1 === 0 ? withoutTrailingZerosFormatter().format(amount) : defaultFormatter().format(amount);
2937
+ return isCurrencySupported ? formatted : `${formatted} ${money.currencyCode}`;
2938
+ },
2906
2939
  withoutTrailingZerosAndCurrency: () => amount % 1 === 0 ? withoutTrailingZerosOrCurrencyFormatter().format(amount) : withoutCurrencyFormatter().format(amount),
2907
2940
  currencyName: () => {
2908
2941
  var _a;
@@ -2928,6 +2961,7 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
2928
2961
  [
2929
2962
  money,
2930
2963
  amount,
2964
+ isCurrencySupported,
2931
2965
  nameFormatter,
2932
2966
  defaultFormatter,
2933
2967
  narrowSymbolFormatter,
@@ -2953,7 +2987,19 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
2953
2987
  return function() {
2954
2988
  let formatter = formatterCache.get(key);
2955
2989
  if (!formatter) {
2956
- formatter = new Intl.NumberFormat(locale, options);
2990
+ try {
2991
+ formatter = new Intl.NumberFormat(locale, options);
2992
+ } catch (error) {
2993
+ if (error instanceof RangeError && error.message.includes("currency")) {
2994
+ const fallbackOptions = { ...options };
2995
+ delete fallbackOptions.currency;
2996
+ delete fallbackOptions.currencyDisplay;
2997
+ delete fallbackOptions.currencySign;
2998
+ formatter = new Intl.NumberFormat(locale, fallbackOptions);
2999
+ } else {
3000
+ throw error;
3001
+ }
3002
+ }
2957
3003
  formatterCache.set(key, formatter);
2958
3004
  }
2959
3005
  return formatter;
@@ -4127,8 +4173,33 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
4127
4173
  parsedValue: metafield.value
4128
4174
  };
4129
4175
  // TODO: 'money' should probably be parsed even further to like `useMoney()`, but that logic needs to be extracted first so it's not a hook
4176
+ case "money": {
4177
+ let parsedValue = null;
4178
+ try {
4179
+ const parsed = parseJSON(metafield.value ?? "");
4180
+ if (parsed && typeof parsed === "object" && "currency_code" in parsed) {
4181
+ const moneyData = parsed;
4182
+ parsedValue = {
4183
+ amount: moneyData.amount,
4184
+ currencyCode: moneyData.currency_code
4185
+ };
4186
+ } else if (parsed && typeof parsed === "object" && "currencyCode" in parsed) {
4187
+ parsedValue = parsed;
4188
+ } else {
4189
+ parsedValue = parsed;
4190
+ }
4191
+ } catch (err) {
4192
+ const parseError = `parseMetafield(): attempted to JSON.parse the 'metafield.value' property, but failed.`;
4193
+ {
4194
+ throw new Error(parseError);
4195
+ }
4196
+ }
4197
+ return {
4198
+ ...metafield,
4199
+ parsedValue
4200
+ };
4201
+ }
4130
4202
  case "dimension":
4131
- case "money":
4132
4203
  case "json":
4133
4204
  case "rating":
4134
4205
  case "volume":
@@ -4659,5 +4730,5 @@ Refer to the authentication https://shopify.dev/api/storefront#authentication do
4659
4730
  exports2.useShop = useShop;
4660
4731
  exports2.useShopifyCookies = useShopifyCookies;
4661
4732
  Object.defineProperty(exports2, Symbol.toStringTag, { value: "Module" });
4662
- });
4733
+ }));
4663
4734
  //# sourceMappingURL=hydrogen-react.dev.js.map