@shopify/hydrogen-react 0.0.0-next-585a03d → 0.0.0-next-32f1381

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 (491) hide show
  1. package/dist/{dev/AddToCartButton.mjs → browser-dev/AddToCartButton.js} +4 -4
  2. package/dist/{dev → browser-dev}/AddToCartButton.js.map +1 -1
  3. package/dist/{dev/BaseButton.mjs → browser-dev/BaseButton.js} +1 -1
  4. package/dist/{dev → browser-dev}/BaseButton.js.map +1 -1
  5. package/dist/{prod/BuyNowButton.mjs → browser-dev/BuyNowButton.js} +3 -3
  6. package/dist/{dev → browser-dev}/BuyNowButton.js.map +1 -1
  7. package/dist/{dev/CartCheckoutButton.mjs → browser-dev/CartCheckoutButton.js} +3 -3
  8. package/dist/{dev → browser-dev}/CartCheckoutButton.js.map +1 -1
  9. package/dist/{prod/CartProvider.mjs → browser-dev/CartProvider.js} +3 -3
  10. package/dist/{prod → browser-dev}/CartProvider.js.map +1 -1
  11. package/dist/{prod/ExternalVideo.mjs → browser-dev/ExternalVideo.js} +1 -1
  12. package/dist/{dev → browser-dev}/ExternalVideo.js.map +1 -1
  13. package/dist/{dev/Image.mjs → browser-dev/Image.js} +2 -2
  14. package/dist/{dev → browser-dev}/Image.js.map +1 -1
  15. package/dist/{dev/MediaFile.mjs → browser-dev/MediaFile.js} +5 -5
  16. package/dist/{dev → browser-dev}/MediaFile.js.map +1 -1
  17. package/dist/{dev/Metafield.mjs → browser-dev/Metafield.js} +5 -5
  18. package/dist/{dev → browser-dev}/Metafield.js.map +1 -1
  19. package/dist/{dev/ModelViewer.mjs → browser-dev/ModelViewer.js} +2 -2
  20. package/dist/{dev → browser-dev}/ModelViewer.js.map +1 -1
  21. package/dist/{dev/Money.mjs → browser-dev/Money.js} +2 -2
  22. package/dist/{dev → browser-dev}/Money.js.map +1 -1
  23. package/dist/{dev/ProductPrice.mjs → browser-dev/ProductPrice.js} +3 -3
  24. package/dist/{dev → browser-dev}/ProductPrice.js.map +1 -1
  25. package/dist/{dev/ProductProvider.mjs → browser-dev/ProductProvider.js} +2 -2
  26. package/dist/{prod → browser-dev}/ProductProvider.js.map +1 -1
  27. package/dist/{prod/ShopPayButton.mjs → browser-dev/ShopPayButton.js} +3 -3
  28. package/dist/{prod → browser-dev}/ShopPayButton.js.map +1 -1
  29. package/dist/{dev/ShopifyProvider.mjs → browser-dev/ShopifyProvider.js} +2 -2
  30. package/dist/{prod → browser-dev}/ShopifyProvider.js.map +1 -1
  31. package/dist/{dev/Video.mjs → browser-dev/Video.js} +2 -2
  32. package/dist/{prod → browser-dev}/Video.js.map +1 -1
  33. package/dist/{dev/_virtual/index.mjs → browser-dev/_virtual/index.js} +1 -1
  34. package/dist/{dev → browser-dev}/_virtual/index.js.map +1 -1
  35. package/dist/{dev/_virtual/use-sync-external-store-shim.development.mjs → browser-dev/_virtual/use-sync-external-store-shim.development.js} +1 -1
  36. package/dist/{dev → browser-dev}/_virtual/use-sync-external-store-shim.development.js.map +1 -1
  37. package/dist/{dev/_virtual/use-sync-external-store-shim.production.min.mjs → browser-dev/_virtual/use-sync-external-store-shim.production.min.js} +1 -1
  38. package/dist/browser-dev/_virtual/use-sync-external-store-shim.production.min.js.map +1 -0
  39. package/dist/{prod/_virtual/with-selector.development.mjs → browser-dev/_virtual/with-selector.development.js} +1 -1
  40. package/dist/{dev → browser-dev}/_virtual/with-selector.development.js.map +1 -1
  41. package/dist/{prod/_virtual/with-selector.mjs → browser-dev/_virtual/with-selector.js} +1 -1
  42. package/dist/{dev → browser-dev}/_virtual/with-selector.js.map +1 -1
  43. package/dist/{dev/_virtual/with-selector.production.min.mjs → browser-dev/_virtual/with-selector.production.min.js} +1 -1
  44. package/dist/{dev → browser-dev}/_virtual/with-selector.production.min.js.map +1 -1
  45. package/dist/{prod/cart-constants.mjs → browser-dev/cart-constants.js} +1 -1
  46. package/dist/{dev → browser-dev}/cart-constants.js.map +1 -1
  47. package/dist/{dev/cart-hooks.mjs → browser-dev/cart-hooks.js} +3 -3
  48. package/dist/{prod → browser-dev}/cart-hooks.js.map +1 -1
  49. package/dist/{dev/cart-queries.mjs → browser-dev/cart-queries.js} +1 -1
  50. package/dist/{dev → browser-dev}/cart-queries.js.map +1 -1
  51. package/dist/{dev/flatten-connection.mjs → browser-dev/flatten-connection.js} +1 -1
  52. package/dist/{dev → browser-dev}/flatten-connection.js.map +1 -1
  53. package/dist/{prod/image-size.mjs → browser-dev/image-size.js} +1 -1
  54. package/dist/{dev → browser-dev}/image-size.js.map +1 -1
  55. package/dist/browser-dev/index.js +46 -0
  56. package/dist/browser-dev/index.js.map +1 -0
  57. package/dist/{prod/load-script.mjs → browser-dev/load-script.js} +1 -1
  58. package/dist/{dev → browser-dev}/load-script.js.map +1 -1
  59. package/dist/{dev/metafield-parser.mjs → browser-dev/metafield-parser.js} +3 -3
  60. package/dist/{dev → browser-dev}/metafield-parser.js.map +1 -1
  61. package/dist/{dev/node_modules/@xstate/fsm/es/index.mjs → browser-dev/node_modules/@xstate/fsm/es/index.js} +1 -1
  62. package/dist/browser-dev/node_modules/@xstate/fsm/es/index.js.map +1 -0
  63. package/dist/{prod/node_modules/@xstate/react/es/fsm.mjs → browser-dev/node_modules/@xstate/react/es/fsm.js} +6 -6
  64. package/dist/{prod → browser-dev}/node_modules/@xstate/react/es/fsm.js.map +1 -1
  65. package/dist/{dev/node_modules/@xstate/react/es/useConstant.mjs → browser-dev/node_modules/@xstate/react/es/useConstant.js} +1 -1
  66. package/dist/{dev → browser-dev}/node_modules/@xstate/react/es/useConstant.js.map +1 -1
  67. package/dist/{dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.mjs → browser-dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js} +1 -1
  68. package/dist/{dev → browser-dev}/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js.map +1 -1
  69. package/dist/{dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs → browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js} +3 -3
  70. package/dist/{prod → browser-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +1 -1
  71. package/dist/{dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs → browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js} +3 -3
  72. package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js.map +1 -0
  73. package/dist/{dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs → browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js} +2 -2
  74. package/dist/{dev → browser-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +1 -1
  75. package/dist/{dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs → browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js} +2 -2
  76. package/dist/{prod → browser-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js.map +1 -1
  77. package/dist/{dev/node_modules/use-sync-external-store/shim/index.mjs → browser-dev/node_modules/use-sync-external-store/shim/index.js} +4 -4
  78. package/dist/{prod → browser-dev}/node_modules/use-sync-external-store/shim/index.js.map +1 -1
  79. package/dist/{prod/node_modules/use-sync-external-store/shim/with-selector.mjs → browser-dev/node_modules/use-sync-external-store/shim/with-selector.js} +4 -4
  80. package/dist/{dev → browser-dev}/node_modules/use-sync-external-store/shim/with-selector.js.map +1 -1
  81. package/dist/{prod/storefront-api-constants.mjs → browser-dev/storefront-api-constants.js} +1 -1
  82. package/dist/{dev → browser-dev}/storefront-api-constants.js.map +1 -1
  83. package/dist/{dev/storefront-client.mjs → browser-dev/storefront-client.js} +2 -2
  84. package/dist/{dev → browser-dev}/storefront-client.js.map +1 -1
  85. package/dist/{prod/useCartAPIStateMachine.mjs → browser-dev/useCartAPIStateMachine.js} +5 -5
  86. package/dist/{dev → browser-dev}/useCartAPIStateMachine.js.map +1 -1
  87. package/dist/{dev/useCartActions.mjs → browser-dev/useCartActions.js} +3 -3
  88. package/dist/{prod → browser-dev}/useCartActions.js.map +1 -1
  89. package/dist/{dev/useMoney.mjs → browser-dev/useMoney.js} +2 -2
  90. package/dist/{dev → browser-dev}/useMoney.js.map +1 -1
  91. package/dist/{prod/AddToCartButton.mjs → browser-prod/AddToCartButton.js} +4 -4
  92. package/dist/{prod → browser-prod}/AddToCartButton.js.map +1 -1
  93. package/dist/{prod/BaseButton.mjs → browser-prod/BaseButton.js} +1 -1
  94. package/dist/{prod → browser-prod}/BaseButton.js.map +1 -1
  95. package/dist/{dev/BuyNowButton.mjs → browser-prod/BuyNowButton.js} +3 -3
  96. package/dist/{prod → browser-prod}/BuyNowButton.js.map +1 -1
  97. package/dist/{prod/CartCheckoutButton.mjs → browser-prod/CartCheckoutButton.js} +3 -3
  98. package/dist/{prod → browser-prod}/CartCheckoutButton.js.map +1 -1
  99. package/dist/{dev/CartProvider.mjs → browser-prod/CartProvider.js} +3 -3
  100. package/dist/{dev → browser-prod}/CartProvider.js.map +1 -1
  101. package/dist/{dev/ExternalVideo.mjs → browser-prod/ExternalVideo.js} +1 -1
  102. package/dist/{prod → browser-prod}/ExternalVideo.js.map +1 -1
  103. package/dist/{prod/Image.mjs → browser-prod/Image.js} +2 -2
  104. package/dist/{prod → browser-prod}/Image.js.map +1 -1
  105. package/dist/{prod/MediaFile.mjs → browser-prod/MediaFile.js} +5 -5
  106. package/dist/{prod → browser-prod}/MediaFile.js.map +1 -1
  107. package/dist/{prod/Metafield.mjs → browser-prod/Metafield.js} +5 -5
  108. package/dist/{prod → browser-prod}/Metafield.js.map +1 -1
  109. package/dist/{prod/ModelViewer.mjs → browser-prod/ModelViewer.js} +2 -2
  110. package/dist/{prod → browser-prod}/ModelViewer.js.map +1 -1
  111. package/dist/{prod/Money.mjs → browser-prod/Money.js} +2 -2
  112. package/dist/{prod → browser-prod}/Money.js.map +1 -1
  113. package/dist/{prod/ProductPrice.mjs → browser-prod/ProductPrice.js} +3 -3
  114. package/dist/{prod → browser-prod}/ProductPrice.js.map +1 -1
  115. package/dist/{prod/ProductProvider.mjs → browser-prod/ProductProvider.js} +2 -2
  116. package/dist/{dev → browser-prod}/ProductProvider.js.map +1 -1
  117. package/dist/{dev/ShopPayButton.mjs → browser-prod/ShopPayButton.js} +3 -3
  118. package/dist/{dev → browser-prod}/ShopPayButton.js.map +1 -1
  119. package/dist/{prod/ShopifyProvider.mjs → browser-prod/ShopifyProvider.js} +2 -2
  120. package/dist/{dev → browser-prod}/ShopifyProvider.js.map +1 -1
  121. package/dist/{prod/Video.mjs → browser-prod/Video.js} +2 -2
  122. package/dist/{dev → browser-prod}/Video.js.map +1 -1
  123. package/dist/{prod/_virtual/index.mjs → browser-prod/_virtual/index.js} +1 -1
  124. package/dist/{prod → browser-prod}/_virtual/index.js.map +1 -1
  125. package/dist/{prod/_virtual/use-sync-external-store-shim.development.mjs → browser-prod/_virtual/use-sync-external-store-shim.development.js} +1 -1
  126. package/dist/{prod → browser-prod}/_virtual/use-sync-external-store-shim.development.js.map +1 -1
  127. package/dist/{prod/_virtual/use-sync-external-store-shim.production.min.mjs → browser-prod/_virtual/use-sync-external-store-shim.production.min.js} +1 -1
  128. package/dist/browser-prod/_virtual/use-sync-external-store-shim.production.min.js.map +1 -0
  129. package/dist/{dev/_virtual/with-selector.development.mjs → browser-prod/_virtual/with-selector.development.js} +1 -1
  130. package/dist/{prod → browser-prod}/_virtual/with-selector.development.js.map +1 -1
  131. package/dist/{dev/_virtual/with-selector.mjs → browser-prod/_virtual/with-selector.js} +1 -1
  132. package/dist/{prod → browser-prod}/_virtual/with-selector.js.map +1 -1
  133. package/dist/{prod/_virtual/with-selector.production.min.mjs → browser-prod/_virtual/with-selector.production.min.js} +1 -1
  134. package/dist/{prod → browser-prod}/_virtual/with-selector.production.min.js.map +1 -1
  135. package/dist/{dev/cart-constants.mjs → browser-prod/cart-constants.js} +1 -1
  136. package/dist/{prod → browser-prod}/cart-constants.js.map +1 -1
  137. package/dist/{prod/cart-hooks.mjs → browser-prod/cart-hooks.js} +3 -3
  138. package/dist/{dev → browser-prod}/cart-hooks.js.map +1 -1
  139. package/dist/{prod/cart-queries.mjs → browser-prod/cart-queries.js} +1 -1
  140. package/dist/{prod → browser-prod}/cart-queries.js.map +1 -1
  141. package/dist/{prod/flatten-connection.mjs → browser-prod/flatten-connection.js} +1 -1
  142. package/dist/{prod → browser-prod}/flatten-connection.js.map +1 -1
  143. package/dist/{dev/image-size.mjs → browser-prod/image-size.js} +1 -1
  144. package/dist/{prod → browser-prod}/image-size.js.map +1 -1
  145. package/dist/browser-prod/index.js +46 -0
  146. package/dist/browser-prod/index.js.map +1 -0
  147. package/dist/{dev/load-script.mjs → browser-prod/load-script.js} +1 -1
  148. package/dist/{prod → browser-prod}/load-script.js.map +1 -1
  149. package/dist/{prod/metafield-parser.mjs → browser-prod/metafield-parser.js} +3 -3
  150. package/dist/{prod → browser-prod}/metafield-parser.js.map +1 -1
  151. package/dist/{prod/node_modules/@xstate/fsm/es/index.mjs → browser-prod/node_modules/@xstate/fsm/es/index.js} +1 -1
  152. package/dist/browser-prod/node_modules/@xstate/fsm/es/index.js.map +1 -0
  153. package/dist/{dev/node_modules/@xstate/react/es/fsm.mjs → browser-prod/node_modules/@xstate/react/es/fsm.js} +6 -6
  154. package/dist/{dev → browser-prod}/node_modules/@xstate/react/es/fsm.js.map +1 -1
  155. package/dist/{prod/node_modules/@xstate/react/es/useConstant.mjs → browser-prod/node_modules/@xstate/react/es/useConstant.js} +1 -1
  156. package/dist/{prod → browser-prod}/node_modules/@xstate/react/es/useConstant.js.map +1 -1
  157. package/dist/{prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.mjs → browser-prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js} +1 -1
  158. package/dist/{prod → browser-prod}/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js.map +1 -1
  159. package/dist/{prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs → browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js} +3 -3
  160. package/dist/{dev → browser-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +1 -1
  161. package/dist/{prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs → browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js} +3 -3
  162. package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js.map +1 -0
  163. package/dist/{prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs → browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js} +2 -2
  164. package/dist/{prod → browser-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +1 -1
  165. package/dist/{prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs → browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js} +2 -2
  166. package/dist/{dev → browser-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js.map +1 -1
  167. package/dist/{prod/node_modules/use-sync-external-store/shim/index.mjs → browser-prod/node_modules/use-sync-external-store/shim/index.js} +4 -4
  168. package/dist/{dev → browser-prod}/node_modules/use-sync-external-store/shim/index.js.map +1 -1
  169. package/dist/{dev/node_modules/use-sync-external-store/shim/with-selector.mjs → browser-prod/node_modules/use-sync-external-store/shim/with-selector.js} +4 -4
  170. package/dist/{prod → browser-prod}/node_modules/use-sync-external-store/shim/with-selector.js.map +1 -1
  171. package/dist/{dev/storefront-api-constants.mjs → browser-prod/storefront-api-constants.js} +1 -1
  172. package/dist/{prod → browser-prod}/storefront-api-constants.js.map +1 -1
  173. package/dist/{prod/storefront-client.mjs → browser-prod/storefront-client.js} +2 -2
  174. package/dist/{prod → browser-prod}/storefront-client.js.map +1 -1
  175. package/dist/{dev/useCartAPIStateMachine.mjs → browser-prod/useCartAPIStateMachine.js} +5 -5
  176. package/dist/{prod → browser-prod}/useCartAPIStateMachine.js.map +1 -1
  177. package/dist/{prod/useCartActions.mjs → browser-prod/useCartActions.js} +3 -3
  178. package/dist/{dev → browser-prod}/useCartActions.js.map +1 -1
  179. package/dist/{prod/useMoney.mjs → browser-prod/useMoney.js} +2 -2
  180. package/dist/{prod → browser-prod}/useMoney.js.map +1 -1
  181. package/dist/{dev/AddToCartButton.js → node-dev/AddToCartButton.cjs} +8 -8
  182. package/dist/{prod/AddToCartButton.mjs.map → node-dev/AddToCartButton.cjs.map} +1 -1
  183. package/dist/node-dev/AddToCartButton.js +70 -0
  184. package/dist/node-dev/AddToCartButton.js.map +1 -0
  185. package/dist/{dev/BaseButton.js → node-dev/BaseButton.cjs} +3 -3
  186. package/dist/{dev/BaseButton.mjs.map → node-dev/BaseButton.cjs.map} +1 -1
  187. package/dist/node-dev/BaseButton.js +31 -0
  188. package/dist/node-dev/BaseButton.js.map +1 -0
  189. package/dist/{prod/BuyNowButton.js → node-dev/BuyNowButton.cjs} +7 -7
  190. package/dist/{dev/BuyNowButton.mjs.map → node-dev/BuyNowButton.cjs.map} +1 -1
  191. package/dist/node-dev/BuyNowButton.js +45 -0
  192. package/dist/node-dev/BuyNowButton.js.map +1 -0
  193. package/dist/{prod/CartCheckoutButton.js → node-dev/CartCheckoutButton.cjs} +6 -6
  194. package/dist/{dev/CartCheckoutButton.mjs.map → node-dev/CartCheckoutButton.cjs.map} +1 -1
  195. package/dist/node-dev/CartCheckoutButton.js +30 -0
  196. package/dist/node-dev/CartCheckoutButton.js.map +1 -0
  197. package/dist/{dev/CartProvider.js → node-dev/CartProvider.cjs} +23 -23
  198. package/dist/{prod/CartProvider.mjs.map → node-dev/CartProvider.cjs.map} +1 -1
  199. package/dist/node-dev/CartProvider.js +485 -0
  200. package/dist/node-dev/CartProvider.js.map +1 -0
  201. package/dist/{dev/ExternalVideo.js → node-dev/ExternalVideo.cjs} +1 -1
  202. package/dist/{prod/ExternalVideo.mjs.map → node-dev/ExternalVideo.cjs.map} +1 -1
  203. package/dist/node-dev/ExternalVideo.js +39 -0
  204. package/dist/node-dev/ExternalVideo.js.map +1 -0
  205. package/dist/{dev/Image.js → node-dev/Image.cjs} +2 -2
  206. package/dist/{dev/Image.mjs.map → node-dev/Image.cjs.map} +1 -1
  207. package/dist/node-dev/Image.js +104 -0
  208. package/dist/node-dev/Image.js.map +1 -0
  209. package/dist/{dev/MediaFile.js → node-dev/MediaFile.cjs} +5 -5
  210. package/dist/{dev/MediaFile.mjs.map → node-dev/MediaFile.cjs.map} +1 -1
  211. package/dist/node-dev/MediaFile.js +57 -0
  212. package/dist/node-dev/MediaFile.js.map +1 -0
  213. package/dist/{dev/Metafield.js → node-dev/Metafield.cjs} +7 -7
  214. package/dist/{dev/Metafield.mjs.map → node-dev/Metafield.cjs.map} +1 -1
  215. package/dist/node-dev/Metafield.js +301 -0
  216. package/dist/node-dev/Metafield.js.map +1 -0
  217. package/dist/{dev/ModelViewer.js → node-dev/ModelViewer.cjs} +6 -6
  218. package/dist/{dev/ModelViewer.mjs.map → node-dev/ModelViewer.cjs.map} +1 -1
  219. package/dist/node-dev/ModelViewer.js +145 -0
  220. package/dist/node-dev/ModelViewer.js.map +1 -0
  221. package/dist/{prod/Money.js → node-dev/Money.cjs} +2 -2
  222. package/dist/{dev/Money.mjs.map → node-dev/Money.cjs.map} +1 -1
  223. package/dist/node-dev/Money.js +40 -0
  224. package/dist/node-dev/Money.js.map +1 -0
  225. package/dist/{prod/ProductPrice.js → node-dev/ProductPrice.cjs} +3 -3
  226. package/dist/{dev/ProductPrice.mjs.map → node-dev/ProductPrice.cjs.map} +1 -1
  227. package/dist/node-dev/ProductPrice.js +61 -0
  228. package/dist/node-dev/ProductPrice.js.map +1 -0
  229. package/dist/{prod/ProductProvider.js → node-dev/ProductProvider.cjs} +16 -16
  230. package/dist/{dev/ProductProvider.mjs.map → node-dev/ProductProvider.cjs.map} +1 -1
  231. package/dist/node-dev/ProductProvider.js +161 -0
  232. package/dist/node-dev/ProductProvider.js.map +1 -0
  233. package/dist/{dev/ShopPayButton.js → node-dev/ShopPayButton.cjs} +3 -3
  234. package/dist/{prod/ShopPayButton.mjs.map → node-dev/ShopPayButton.cjs.map} +1 -1
  235. package/dist/node-dev/ShopPayButton.js +64 -0
  236. package/dist/node-dev/ShopPayButton.js.map +1 -0
  237. package/dist/{prod/ShopifyProvider.js → node-dev/ShopifyProvider.cjs} +6 -6
  238. package/dist/{dev/ShopifyProvider.mjs.map → node-dev/ShopifyProvider.cjs.map} +1 -1
  239. package/dist/node-dev/ShopifyProvider.js +46 -0
  240. package/dist/node-dev/ShopifyProvider.js.map +1 -0
  241. package/dist/{prod/Video.js → node-dev/Video.cjs} +4 -4
  242. package/dist/{dev/Video.mjs.map → node-dev/Video.cjs.map} +1 -1
  243. package/dist/node-dev/Video.js +44 -0
  244. package/dist/node-dev/Video.js.map +1 -0
  245. package/dist/{prod/cart-constants.js → node-dev/cart-constants.cjs} +1 -1
  246. package/dist/{dev/cart-constants.mjs.map → node-dev/cart-constants.cjs.map} +1 -1
  247. package/dist/node-dev/cart-constants.js +17 -0
  248. package/dist/node-dev/cart-constants.js.map +1 -0
  249. package/dist/{dev/cart-hooks.js → node-dev/cart-hooks.cjs} +5 -5
  250. package/dist/{prod/cart-hooks.mjs.map → node-dev/cart-hooks.cjs.map} +1 -1
  251. package/dist/node-dev/cart-hooks.js +48 -0
  252. package/dist/node-dev/cart-hooks.js.map +1 -0
  253. package/dist/{dev/cart-queries.js → node-dev/cart-queries.cjs} +1 -1
  254. package/dist/{dev/cart-queries.mjs.map → node-dev/cart-queries.cjs.map} +1 -1
  255. package/dist/node-dev/cart-queries.js +114 -0
  256. package/dist/node-dev/cart-queries.js.map +1 -0
  257. package/dist/{dev/flatten-connection.js → node-dev/flatten-connection.cjs} +1 -1
  258. package/dist/{dev/flatten-connection.mjs.map → node-dev/flatten-connection.cjs.map} +1 -1
  259. package/dist/node-dev/flatten-connection.js +29 -0
  260. package/dist/node-dev/flatten-connection.js.map +1 -0
  261. package/dist/{dev/image-size.js → node-dev/image-size.cjs} +1 -1
  262. package/dist/{prod/image-size.mjs.map → node-dev/image-size.cjs.map} +1 -1
  263. package/dist/node-dev/image-size.js +80 -0
  264. package/dist/node-dev/image-size.js.map +1 -0
  265. package/dist/{prod/index.js → node-dev/index.cjs} +20 -20
  266. package/dist/node-dev/index.cjs.map +1 -0
  267. package/dist/node-dev/index.js +46 -0
  268. package/dist/node-dev/index.js.map +1 -0
  269. package/dist/{prod/load-script.js → node-dev/load-script.cjs} +4 -4
  270. package/dist/{dev/load-script.mjs.map → node-dev/load-script.cjs.map} +1 -1
  271. package/dist/node-dev/load-script.js +52 -0
  272. package/dist/node-dev/load-script.js.map +1 -0
  273. package/dist/{dev/metafield-parser.js → node-dev/metafield-parser.cjs} +3 -3
  274. package/dist/{dev/metafield-parser.mjs.map → node-dev/metafield-parser.cjs.map} +1 -1
  275. package/dist/node-dev/metafield-parser.js +103 -0
  276. package/dist/node-dev/metafield-parser.js.map +1 -0
  277. package/dist/{prod/storefront-api-constants.js → node-dev/storefront-api-constants.cjs} +1 -1
  278. package/dist/node-dev/storefront-api-constants.cjs.map +1 -0
  279. package/dist/node-dev/storefront-api-constants.js +5 -0
  280. package/dist/node-dev/storefront-api-constants.js.map +1 -0
  281. package/dist/{dev/storefront-client.js → node-dev/storefront-client.cjs} +2 -2
  282. package/dist/{dev/storefront-client.mjs.map → node-dev/storefront-client.cjs.map} +1 -1
  283. package/dist/node-dev/storefront-client.js +72 -0
  284. package/dist/node-dev/storefront-client.js.map +1 -0
  285. package/dist/{prod/useCartAPIStateMachine.js → node-dev/useCartAPIStateMachine.cjs} +15 -15
  286. package/dist/{prod/useCartAPIStateMachine.mjs.map → node-dev/useCartAPIStateMachine.cjs.map} +1 -1
  287. package/dist/node-dev/useCartAPIStateMachine.js +326 -0
  288. package/dist/node-dev/useCartAPIStateMachine.js.map +1 -0
  289. package/dist/{dev/useCartActions.js → node-dev/useCartActions.cjs} +14 -14
  290. package/dist/{dev/useCartActions.mjs.map → node-dev/useCartActions.cjs.map} +1 -1
  291. package/dist/node-dev/useCartActions.js +123 -0
  292. package/dist/node-dev/useCartActions.js.map +1 -0
  293. package/dist/{prod/useMoney.js → node-dev/useMoney.cjs} +7 -7
  294. package/dist/{dev/useMoney.mjs.map → node-dev/useMoney.cjs.map} +1 -1
  295. package/dist/node-dev/useMoney.js +72 -0
  296. package/dist/node-dev/useMoney.js.map +1 -0
  297. package/dist/{prod/AddToCartButton.js → node-prod/AddToCartButton.cjs} +8 -8
  298. package/dist/{dev/AddToCartButton.mjs.map → node-prod/AddToCartButton.cjs.map} +1 -1
  299. package/dist/node-prod/AddToCartButton.js +70 -0
  300. package/dist/node-prod/AddToCartButton.js.map +1 -0
  301. package/dist/{prod/BaseButton.js → node-prod/BaseButton.cjs} +3 -3
  302. package/dist/{prod/BaseButton.mjs.map → node-prod/BaseButton.cjs.map} +1 -1
  303. package/dist/node-prod/BaseButton.js +31 -0
  304. package/dist/node-prod/BaseButton.js.map +1 -0
  305. package/dist/{dev/BuyNowButton.js → node-prod/BuyNowButton.cjs} +7 -7
  306. package/dist/{prod/BuyNowButton.mjs.map → node-prod/BuyNowButton.cjs.map} +1 -1
  307. package/dist/node-prod/BuyNowButton.js +45 -0
  308. package/dist/node-prod/BuyNowButton.js.map +1 -0
  309. package/dist/{dev/CartCheckoutButton.js → node-prod/CartCheckoutButton.cjs} +6 -6
  310. package/dist/{prod/CartCheckoutButton.mjs.map → node-prod/CartCheckoutButton.cjs.map} +1 -1
  311. package/dist/node-prod/CartCheckoutButton.js +30 -0
  312. package/dist/node-prod/CartCheckoutButton.js.map +1 -0
  313. package/dist/{prod/CartProvider.js → node-prod/CartProvider.cjs} +23 -23
  314. package/dist/{dev/CartProvider.mjs.map → node-prod/CartProvider.cjs.map} +1 -1
  315. package/dist/node-prod/CartProvider.js +485 -0
  316. package/dist/node-prod/CartProvider.js.map +1 -0
  317. package/dist/{prod/ExternalVideo.js → node-prod/ExternalVideo.cjs} +1 -1
  318. package/dist/{dev/ExternalVideo.mjs.map → node-prod/ExternalVideo.cjs.map} +1 -1
  319. package/dist/node-prod/ExternalVideo.js +39 -0
  320. package/dist/node-prod/ExternalVideo.js.map +1 -0
  321. package/dist/{prod/Image.js → node-prod/Image.cjs} +2 -2
  322. package/dist/{prod/Image.mjs.map → node-prod/Image.cjs.map} +1 -1
  323. package/dist/node-prod/Image.js +99 -0
  324. package/dist/node-prod/Image.js.map +1 -0
  325. package/dist/{prod/MediaFile.js → node-prod/MediaFile.cjs} +5 -5
  326. package/dist/{prod/MediaFile.mjs.map → node-prod/MediaFile.cjs.map} +1 -1
  327. package/dist/node-prod/MediaFile.js +59 -0
  328. package/dist/node-prod/MediaFile.js.map +1 -0
  329. package/dist/{prod/Metafield.js → node-prod/Metafield.cjs} +7 -7
  330. package/dist/{prod/Metafield.mjs.map → node-prod/Metafield.cjs.map} +1 -1
  331. package/dist/node-prod/Metafield.js +288 -0
  332. package/dist/node-prod/Metafield.js.map +1 -0
  333. package/dist/{prod/ModelViewer.js → node-prod/ModelViewer.cjs} +6 -6
  334. package/dist/{prod/ModelViewer.mjs.map → node-prod/ModelViewer.cjs.map} +1 -1
  335. package/dist/node-prod/ModelViewer.js +143 -0
  336. package/dist/node-prod/ModelViewer.js.map +1 -0
  337. package/dist/{dev/Money.js → node-prod/Money.cjs} +2 -2
  338. package/dist/{prod/Money.mjs.map → node-prod/Money.cjs.map} +1 -1
  339. package/dist/node-prod/Money.js +40 -0
  340. package/dist/node-prod/Money.js.map +1 -0
  341. package/dist/{dev/ProductPrice.js → node-prod/ProductPrice.cjs} +3 -3
  342. package/dist/{prod/ProductPrice.mjs.map → node-prod/ProductPrice.cjs.map} +1 -1
  343. package/dist/node-prod/ProductPrice.js +61 -0
  344. package/dist/node-prod/ProductPrice.js.map +1 -0
  345. package/dist/{dev/ProductProvider.js → node-prod/ProductProvider.cjs} +16 -16
  346. package/dist/{prod/ProductProvider.mjs.map → node-prod/ProductProvider.cjs.map} +1 -1
  347. package/dist/node-prod/ProductProvider.js +161 -0
  348. package/dist/node-prod/ProductProvider.js.map +1 -0
  349. package/dist/{prod/ShopPayButton.js → node-prod/ShopPayButton.cjs} +3 -3
  350. package/dist/{dev/ShopPayButton.mjs.map → node-prod/ShopPayButton.cjs.map} +1 -1
  351. package/dist/node-prod/ShopPayButton.js +64 -0
  352. package/dist/node-prod/ShopPayButton.js.map +1 -0
  353. package/dist/{dev/ShopifyProvider.js → node-prod/ShopifyProvider.cjs} +6 -6
  354. package/dist/{prod/ShopifyProvider.mjs.map → node-prod/ShopifyProvider.cjs.map} +1 -1
  355. package/dist/node-prod/ShopifyProvider.js +46 -0
  356. package/dist/node-prod/ShopifyProvider.js.map +1 -0
  357. package/dist/{dev/Video.js → node-prod/Video.cjs} +4 -4
  358. package/dist/{prod/Video.mjs.map → node-prod/Video.cjs.map} +1 -1
  359. package/dist/node-prod/Video.js +44 -0
  360. package/dist/node-prod/Video.js.map +1 -0
  361. package/dist/{dev/cart-constants.js → node-prod/cart-constants.cjs} +1 -1
  362. package/dist/{prod/cart-constants.mjs.map → node-prod/cart-constants.cjs.map} +1 -1
  363. package/dist/node-prod/cart-constants.js +17 -0
  364. package/dist/node-prod/cart-constants.js.map +1 -0
  365. package/dist/{prod/cart-hooks.js → node-prod/cart-hooks.cjs} +5 -5
  366. package/dist/{dev/cart-hooks.mjs.map → node-prod/cart-hooks.cjs.map} +1 -1
  367. package/dist/node-prod/cart-hooks.js +48 -0
  368. package/dist/node-prod/cart-hooks.js.map +1 -0
  369. package/dist/{prod/cart-queries.js → node-prod/cart-queries.cjs} +1 -1
  370. package/dist/{prod/cart-queries.mjs.map → node-prod/cart-queries.cjs.map} +1 -1
  371. package/dist/node-prod/cart-queries.js +114 -0
  372. package/dist/node-prod/cart-queries.js.map +1 -0
  373. package/dist/{prod/flatten-connection.js → node-prod/flatten-connection.cjs} +1 -1
  374. package/dist/{prod/flatten-connection.mjs.map → node-prod/flatten-connection.cjs.map} +1 -1
  375. package/dist/node-prod/flatten-connection.js +25 -0
  376. package/dist/node-prod/flatten-connection.js.map +1 -0
  377. package/dist/{prod/image-size.js → node-prod/image-size.cjs} +1 -1
  378. package/dist/{dev/image-size.mjs.map → node-prod/image-size.cjs.map} +1 -1
  379. package/dist/node-prod/image-size.js +80 -0
  380. package/dist/node-prod/image-size.js.map +1 -0
  381. package/dist/{dev/index.js → node-prod/index.cjs} +20 -20
  382. package/dist/node-prod/index.cjs.map +1 -0
  383. package/dist/node-prod/index.js +46 -0
  384. package/dist/node-prod/index.js.map +1 -0
  385. package/dist/{dev/load-script.js → node-prod/load-script.cjs} +4 -4
  386. package/dist/{prod/load-script.mjs.map → node-prod/load-script.cjs.map} +1 -1
  387. package/dist/node-prod/load-script.js +52 -0
  388. package/dist/node-prod/load-script.js.map +1 -0
  389. package/dist/{prod/metafield-parser.js → node-prod/metafield-parser.cjs} +3 -3
  390. package/dist/{prod/metafield-parser.mjs.map → node-prod/metafield-parser.cjs.map} +1 -1
  391. package/dist/node-prod/metafield-parser.js +114 -0
  392. package/dist/node-prod/metafield-parser.js.map +1 -0
  393. package/dist/{dev/storefront-api-constants.js → node-prod/storefront-api-constants.cjs} +1 -1
  394. package/dist/node-prod/storefront-api-constants.cjs.map +1 -0
  395. package/dist/node-prod/storefront-api-constants.js +5 -0
  396. package/dist/node-prod/storefront-api-constants.js.map +1 -0
  397. package/dist/{prod/storefront-client.js → node-prod/storefront-client.cjs} +2 -2
  398. package/dist/{prod/storefront-client.mjs.map → node-prod/storefront-client.cjs.map} +1 -1
  399. package/dist/node-prod/storefront-client.js +57 -0
  400. package/dist/node-prod/storefront-client.js.map +1 -0
  401. package/dist/{dev/useCartAPIStateMachine.js → node-prod/useCartAPIStateMachine.cjs} +15 -15
  402. package/dist/{dev/useCartAPIStateMachine.mjs.map → node-prod/useCartAPIStateMachine.cjs.map} +1 -1
  403. package/dist/node-prod/useCartAPIStateMachine.js +326 -0
  404. package/dist/node-prod/useCartAPIStateMachine.js.map +1 -0
  405. package/dist/{prod/useCartActions.js → node-prod/useCartActions.cjs} +14 -14
  406. package/dist/{prod/useCartActions.mjs.map → node-prod/useCartActions.cjs.map} +1 -1
  407. package/dist/node-prod/useCartActions.js +123 -0
  408. package/dist/node-prod/useCartActions.js.map +1 -0
  409. package/dist/{dev/useMoney.js → node-prod/useMoney.cjs} +7 -7
  410. package/dist/{prod/useMoney.mjs.map → node-prod/useMoney.cjs.map} +1 -1
  411. package/dist/node-prod/useMoney.js +72 -0
  412. package/dist/node-prod/useMoney.js.map +1 -0
  413. package/package.json +35 -20
  414. package/dist/dev/_virtual/index.js +0 -5
  415. package/dist/dev/_virtual/index.mjs.map +0 -1
  416. package/dist/dev/_virtual/use-sync-external-store-shim.development.js +0 -5
  417. package/dist/dev/_virtual/use-sync-external-store-shim.development.mjs.map +0 -1
  418. package/dist/dev/_virtual/use-sync-external-store-shim.production.min.js +0 -5
  419. package/dist/dev/_virtual/use-sync-external-store-shim.production.min.js.map +0 -1
  420. package/dist/dev/_virtual/use-sync-external-store-shim.production.min.mjs.map +0 -1
  421. package/dist/dev/_virtual/with-selector.development.js +0 -5
  422. package/dist/dev/_virtual/with-selector.development.mjs.map +0 -1
  423. package/dist/dev/_virtual/with-selector.js +0 -5
  424. package/dist/dev/_virtual/with-selector.mjs.map +0 -1
  425. package/dist/dev/_virtual/with-selector.production.min.js +0 -5
  426. package/dist/dev/_virtual/with-selector.production.min.mjs.map +0 -1
  427. package/dist/dev/index.js.map +0 -1
  428. package/dist/dev/index.mjs +0 -46
  429. package/dist/dev/index.mjs.map +0 -1
  430. package/dist/dev/node_modules/@xstate/fsm/es/index.js +0 -158
  431. package/dist/dev/node_modules/@xstate/fsm/es/index.js.map +0 -1
  432. package/dist/dev/node_modules/@xstate/fsm/es/index.mjs.map +0 -1
  433. package/dist/dev/node_modules/@xstate/react/es/fsm.js +0 -94
  434. package/dist/dev/node_modules/@xstate/react/es/fsm.mjs.map +0 -1
  435. package/dist/dev/node_modules/@xstate/react/es/useConstant.js +0 -30
  436. package/dist/dev/node_modules/@xstate/react/es/useConstant.mjs.map +0 -1
  437. package/dist/dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js +0 -5
  438. package/dist/dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.mjs.map +0 -1
  439. package/dist/dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +0 -107
  440. package/dist/dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +0 -1
  441. package/dist/dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js +0 -74
  442. package/dist/dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js.map +0 -1
  443. package/dist/dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +0 -1
  444. package/dist/dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +0 -138
  445. package/dist/dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +0 -1
  446. package/dist/dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js +0 -60
  447. package/dist/dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +0 -1
  448. package/dist/dev/node_modules/use-sync-external-store/shim/index.js +0 -21
  449. package/dist/dev/node_modules/use-sync-external-store/shim/index.mjs.map +0 -1
  450. package/dist/dev/node_modules/use-sync-external-store/shim/with-selector.js +0 -12
  451. package/dist/dev/node_modules/use-sync-external-store/shim/with-selector.mjs.map +0 -1
  452. package/dist/dev/storefront-api-constants.mjs.map +0 -1
  453. package/dist/prod/_virtual/index.js +0 -5
  454. package/dist/prod/_virtual/index.mjs.map +0 -1
  455. package/dist/prod/_virtual/use-sync-external-store-shim.development.js +0 -5
  456. package/dist/prod/_virtual/use-sync-external-store-shim.development.mjs.map +0 -1
  457. package/dist/prod/_virtual/use-sync-external-store-shim.production.min.js +0 -5
  458. package/dist/prod/_virtual/use-sync-external-store-shim.production.min.js.map +0 -1
  459. package/dist/prod/_virtual/use-sync-external-store-shim.production.min.mjs.map +0 -1
  460. package/dist/prod/_virtual/with-selector.development.js +0 -5
  461. package/dist/prod/_virtual/with-selector.development.mjs.map +0 -1
  462. package/dist/prod/_virtual/with-selector.js +0 -5
  463. package/dist/prod/_virtual/with-selector.mjs.map +0 -1
  464. package/dist/prod/_virtual/with-selector.production.min.js +0 -5
  465. package/dist/prod/_virtual/with-selector.production.min.mjs.map +0 -1
  466. package/dist/prod/index.js.map +0 -1
  467. package/dist/prod/index.mjs +0 -46
  468. package/dist/prod/index.mjs.map +0 -1
  469. package/dist/prod/node_modules/@xstate/fsm/es/index.js +0 -158
  470. package/dist/prod/node_modules/@xstate/fsm/es/index.js.map +0 -1
  471. package/dist/prod/node_modules/@xstate/fsm/es/index.mjs.map +0 -1
  472. package/dist/prod/node_modules/@xstate/react/es/fsm.js +0 -94
  473. package/dist/prod/node_modules/@xstate/react/es/fsm.mjs.map +0 -1
  474. package/dist/prod/node_modules/@xstate/react/es/useConstant.js +0 -30
  475. package/dist/prod/node_modules/@xstate/react/es/useConstant.mjs.map +0 -1
  476. package/dist/prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js +0 -5
  477. package/dist/prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.mjs.map +0 -1
  478. package/dist/prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +0 -107
  479. package/dist/prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +0 -1
  480. package/dist/prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js +0 -74
  481. package/dist/prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js.map +0 -1
  482. package/dist/prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +0 -1
  483. package/dist/prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +0 -138
  484. package/dist/prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +0 -1
  485. package/dist/prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js +0 -60
  486. package/dist/prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +0 -1
  487. package/dist/prod/node_modules/use-sync-external-store/shim/index.js +0 -21
  488. package/dist/prod/node_modules/use-sync-external-store/shim/index.mjs.map +0 -1
  489. package/dist/prod/node_modules/use-sync-external-store/shim/with-selector.js +0 -12
  490. package/dist/prod/node_modules/use-sync-external-store/shim/with-selector.mjs.map +0 -1
  491. package/dist/prod/storefront-api-constants.mjs.map +0 -1
@@ -0,0 +1,123 @@
1
+ import { useCallback, useMemo } from "react";
2
+ import { CartQuery, CartCreate, CartLineAdd, CartLineUpdate, CartLineRemove, CartNoteUpdate, CartBuyerIdentityUpdate, CartAttributesUpdate, CartDiscountCodesUpdate } from "./cart-queries.js";
3
+ import { useCartFetch } from "./cart-hooks.js";
4
+ function useCartActions({
5
+ numCartLines,
6
+ cartFragment,
7
+ countryCode = "US"
8
+ }) {
9
+ const fetchCart = useCartFetch();
10
+ const cartFetch = useCallback((cartId) => {
11
+ return fetchCart({
12
+ query: CartQuery(cartFragment),
13
+ variables: {
14
+ id: cartId,
15
+ numCartLines,
16
+ country: countryCode
17
+ }
18
+ });
19
+ }, [fetchCart, cartFragment, numCartLines, countryCode]);
20
+ const cartCreate = useCallback((cart) => {
21
+ return fetchCart({
22
+ query: CartCreate(cartFragment),
23
+ variables: {
24
+ input: cart,
25
+ numCartLines,
26
+ country: countryCode
27
+ }
28
+ });
29
+ }, [cartFragment, countryCode, fetchCart, numCartLines]);
30
+ const cartLineAdd = useCallback((cartId, lines) => {
31
+ return fetchCart({
32
+ query: CartLineAdd(cartFragment),
33
+ variables: {
34
+ cartId,
35
+ lines,
36
+ numCartLines,
37
+ country: countryCode
38
+ }
39
+ });
40
+ }, [cartFragment, countryCode, fetchCart, numCartLines]);
41
+ const cartLineUpdate = useCallback((cartId, lines) => {
42
+ return fetchCart({
43
+ query: CartLineUpdate(cartFragment),
44
+ variables: {
45
+ cartId,
46
+ lines,
47
+ numCartLines,
48
+ country: countryCode
49
+ }
50
+ });
51
+ }, [cartFragment, countryCode, fetchCart, numCartLines]);
52
+ const cartLineRemove = useCallback((cartId, lines) => {
53
+ return fetchCart({
54
+ query: CartLineRemove(cartFragment),
55
+ variables: {
56
+ cartId,
57
+ lines,
58
+ numCartLines,
59
+ country: countryCode
60
+ }
61
+ });
62
+ }, [cartFragment, countryCode, fetchCart, numCartLines]);
63
+ const noteUpdate = useCallback((cartId, note) => {
64
+ return fetchCart({
65
+ query: CartNoteUpdate(cartFragment),
66
+ variables: {
67
+ cartId,
68
+ note,
69
+ numCartLines,
70
+ country: countryCode
71
+ }
72
+ });
73
+ }, [fetchCart, cartFragment, numCartLines, countryCode]);
74
+ const buyerIdentityUpdate = useCallback((cartId, buyerIdentity) => {
75
+ return fetchCart({
76
+ query: CartBuyerIdentityUpdate(cartFragment),
77
+ variables: {
78
+ cartId,
79
+ buyerIdentity,
80
+ numCartLines,
81
+ country: countryCode
82
+ }
83
+ });
84
+ }, [cartFragment, countryCode, fetchCart, numCartLines]);
85
+ const cartAttributesUpdate = useCallback((cartId, attributes) => {
86
+ return fetchCart({
87
+ query: CartAttributesUpdate(cartFragment),
88
+ variables: {
89
+ cartId,
90
+ attributes,
91
+ numCartLines,
92
+ country: countryCode
93
+ }
94
+ });
95
+ }, [cartFragment, countryCode, fetchCart, numCartLines]);
96
+ const discountCodesUpdate = useCallback((cartId, discountCodes) => {
97
+ return fetchCart({
98
+ query: CartDiscountCodesUpdate(cartFragment),
99
+ variables: {
100
+ cartId,
101
+ discountCodes,
102
+ numCartLines,
103
+ country: countryCode
104
+ }
105
+ });
106
+ }, [cartFragment, countryCode, fetchCart, numCartLines]);
107
+ return useMemo(() => ({
108
+ cartFetch,
109
+ cartCreate,
110
+ cartLineAdd,
111
+ cartLineUpdate,
112
+ cartLineRemove,
113
+ noteUpdate,
114
+ buyerIdentityUpdate,
115
+ cartAttributesUpdate,
116
+ discountCodesUpdate,
117
+ cartFragment
118
+ }), [cartFetch, cartCreate, cartLineAdd, cartLineUpdate, cartLineRemove, noteUpdate, buyerIdentityUpdate, cartAttributesUpdate, discountCodesUpdate, cartFragment]);
119
+ }
120
+ export {
121
+ useCartActions
122
+ };
123
+ //# sourceMappingURL=useCartActions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCartActions.js","sources":["../../src/useCartActions.tsx"],"sourcesContent":["import {useCallback, useMemo} from 'react';\nimport {\n AttributeInput,\n CartBuyerIdentityInput,\n CartInput,\n CartLineInput,\n CartLineUpdateInput,\n CountryCode,\n Cart as CartType,\n MutationCartDiscountCodesUpdateArgs,\n MutationCartNoteUpdateArgs,\n} from './storefront-api-types.js';\nimport {\n CartAttributesUpdate,\n CartBuyerIdentityUpdate,\n CartCreate,\n CartDiscountCodesUpdate,\n CartLineAdd,\n CartLineRemove,\n CartLineUpdate,\n CartNoteUpdate,\n CartQuery,\n} from './cart-queries.js';\nimport {useCartFetch} from './cart-hooks.js';\nimport {PartialDeep} from 'type-fest';\n\ntype CartResponse = PartialDeep<CartType, {recurseIntoArrays: true}>;\n\n/**\n * The `useCartActions` hook returns helper graphql functions for Storefront Cart API\n *\n * See [cart API graphql mutations](https://shopify.dev/api/storefront/2022-10/objects/Cart)\n */\nexport function useCartActions({\n numCartLines,\n cartFragment,\n countryCode = 'US',\n}: {\n /** Maximum number of cart lines to fetch. Defaults to 250 cart lines. */\n numCartLines?: number;\n /** A fragment used to query the Storefront API's [Cart object](https://shopify.dev/api/storefront/latest/objects/cart) for all queries and mutations. A default value is used if no argument is provided. */\n cartFragment: string;\n /** The ISO country code for i18n. */\n countryCode?: CountryCode;\n}) {\n const fetchCart = useCartFetch();\n\n const cartFetch = useCallback(\n (cartId: string) => {\n return fetchCart<{cart: CartResponse}>({\n query: CartQuery(cartFragment),\n variables: {\n id: cartId,\n numCartLines,\n country: countryCode,\n },\n });\n },\n [fetchCart, cartFragment, numCartLines, countryCode]\n );\n\n const cartCreate = useCallback(\n (cart: CartInput) => {\n return fetchCart<{cartCreate: {cart: CartResponse}}>({\n query: CartCreate(cartFragment),\n variables: {\n input: cart,\n numCartLines,\n country: countryCode,\n },\n });\n },\n [cartFragment, countryCode, fetchCart, numCartLines]\n );\n\n const cartLineAdd = useCallback(\n (cartId: string, lines: CartLineInput[]) => {\n return fetchCart<{cartLinesAdd: {cart: CartResponse}}>({\n query: CartLineAdd(cartFragment),\n variables: {\n cartId,\n lines,\n numCartLines,\n country: countryCode,\n },\n });\n },\n [cartFragment, countryCode, fetchCart, numCartLines]\n );\n\n const cartLineUpdate = useCallback(\n (cartId: string, lines: CartLineUpdateInput[]) => {\n return fetchCart<{cartLinesUpdate: {cart: CartResponse}}>({\n query: CartLineUpdate(cartFragment),\n variables: {\n cartId,\n lines,\n numCartLines,\n country: countryCode,\n },\n });\n },\n [cartFragment, countryCode, fetchCart, numCartLines]\n );\n\n const cartLineRemove = useCallback(\n (cartId: string, lines: string[]) => {\n return fetchCart<{cartLinesRemove: {cart: CartResponse}}>({\n query: CartLineRemove(cartFragment),\n variables: {\n cartId,\n lines,\n numCartLines,\n country: countryCode,\n },\n });\n },\n [cartFragment, countryCode, fetchCart, numCartLines]\n );\n\n const noteUpdate = useCallback(\n (cartId: string, note: MutationCartNoteUpdateArgs['note']) => {\n return fetchCart<{cartNoteUpdate: {cart: CartResponse}}>({\n query: CartNoteUpdate(cartFragment),\n variables: {\n cartId,\n note,\n numCartLines,\n country: countryCode,\n },\n });\n },\n [fetchCart, cartFragment, numCartLines, countryCode]\n );\n\n const buyerIdentityUpdate = useCallback(\n (cartId: string, buyerIdentity: CartBuyerIdentityInput) => {\n return fetchCart<{cartBuyerIdentityUpdate: {cart: CartResponse}}>({\n query: CartBuyerIdentityUpdate(cartFragment),\n variables: {\n cartId,\n buyerIdentity,\n numCartLines,\n country: countryCode,\n },\n });\n },\n [cartFragment, countryCode, fetchCart, numCartLines]\n );\n\n const cartAttributesUpdate = useCallback(\n (cartId: string, attributes: AttributeInput[]) => {\n return fetchCart<{cartAttributesUpdate: {cart: CartResponse}}>({\n query: CartAttributesUpdate(cartFragment),\n variables: {\n cartId,\n attributes,\n numCartLines,\n country: countryCode,\n },\n });\n },\n [cartFragment, countryCode, fetchCart, numCartLines]\n );\n\n const discountCodesUpdate = useCallback(\n (\n cartId: string,\n discountCodes: MutationCartDiscountCodesUpdateArgs['discountCodes']\n ) => {\n return fetchCart<{cartDiscountCodesUpdate: {cart: CartResponse}}>({\n query: CartDiscountCodesUpdate(cartFragment),\n variables: {\n cartId,\n discountCodes,\n numCartLines,\n country: countryCode,\n },\n });\n },\n [cartFragment, countryCode, fetchCart, numCartLines]\n );\n\n return useMemo(\n () => ({\n cartFetch,\n cartCreate,\n cartLineAdd,\n cartLineUpdate,\n cartLineRemove,\n noteUpdate,\n buyerIdentityUpdate,\n cartAttributesUpdate,\n discountCodesUpdate,\n cartFragment,\n }),\n [\n cartFetch,\n cartCreate,\n cartLineAdd,\n cartLineUpdate,\n cartLineRemove,\n noteUpdate,\n buyerIdentityUpdate,\n cartAttributesUpdate,\n discountCodesUpdate,\n cartFragment,\n ]\n );\n}\n"],"names":["useCartActions","numCartLines","cartFragment","countryCode","fetchCart","useCartFetch","cartFetch","useCallback","cartId","query","CartQuery","variables","id","country","cartCreate","cart","CartCreate","input","cartLineAdd","lines","CartLineAdd","cartLineUpdate","CartLineUpdate","cartLineRemove","CartLineRemove","noteUpdate","note","CartNoteUpdate","buyerIdentityUpdate","buyerIdentity","CartBuyerIdentityUpdate","cartAttributesUpdate","attributes","CartAttributesUpdate","discountCodesUpdate","discountCodes","CartDiscountCodesUpdate","useMemo"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const require$$0 = require("react");
4
- const ShopifyProvider = require("./ShopifyProvider.js");
3
+ const react = require("react");
4
+ const ShopifyProvider = require("./ShopifyProvider.cjs");
5
5
  function useMoney(money) {
6
6
  const {
7
7
  locale
@@ -10,7 +10,7 @@ function useMoney(money) {
10
10
  throw new Error(`useMoney(): Unable to get 'locale' from 'useShop()', which means that 'locale' was not passed to '<ShopifyProvider/>'. 'locale' is required for 'useMoney()' to work`);
11
11
  }
12
12
  const amount = parseFloat(money.amount);
13
- const options = require$$0.useMemo(() => ({
13
+ const options = react.useMemo(() => ({
14
14
  style: "currency",
15
15
  currency: money.currencyCode
16
16
  }), [money.currencyCode]);
@@ -34,7 +34,7 @@ function useMoney(money) {
34
34
  maximumFractionDigits: 0
35
35
  });
36
36
  const isPartCurrency = (part) => part.type === "currency";
37
- const lazyFormatters = require$$0.useMemo(() => ({
37
+ const lazyFormatters = react.useMemo(() => ({
38
38
  original: () => money,
39
39
  currencyCode: () => money.currencyCode,
40
40
  localizedString: () => defaultFormatter().format(amount),
@@ -55,7 +55,7 @@ function useMoney(money) {
55
55
  },
56
56
  amount: () => defaultFormatter().formatToParts(amount).filter((part) => ["decimal", "fraction", "group", "integer", "literal"].includes(part.type)).map((part) => part.value).join("")
57
57
  }), [money, amount, nameFormatter, defaultFormatter, narrowSymbolFormatter, withoutCurrencyFormatter, withoutTrailingZerosFormatter, withoutTrailingZerosOrCurrencyFormatter]);
58
- return require$$0.useMemo(() => new Proxy(lazyFormatters, {
58
+ return react.useMemo(() => new Proxy(lazyFormatters, {
59
59
  get: (target, key) => {
60
60
  var _a;
61
61
  return (_a = Reflect.get(target, key)) == null ? void 0 : _a.call(null);
@@ -63,10 +63,10 @@ function useMoney(money) {
63
63
  }), [lazyFormatters]);
64
64
  }
65
65
  function useLazyFormatter(locale, options) {
66
- return require$$0.useMemo(() => {
66
+ return react.useMemo(() => {
67
67
  let memoized;
68
68
  return () => memoized != null ? memoized : memoized = new Intl.NumberFormat(locale, options);
69
69
  }, [locale, options]);
70
70
  }
71
71
  exports.useMoney = useMoney;
72
- //# sourceMappingURL=useMoney.js.map
72
+ //# sourceMappingURL=useMoney.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMoney.mjs","sources":["../../src/useMoney.tsx"],"sourcesContent":["import {useMemo} from 'react';\nimport {useShop} from './ShopifyProvider.js';\nimport {CurrencyCode, MoneyV2} from './storefront-api-types.js';\n\nexport type UseMoneyValue = {\n /**\n * The currency code from the `MoneyV2` object.\n */\n currencyCode: CurrencyCode;\n /**\n * The name for the currency code, returned by `Intl.NumberFormat`.\n */\n currencyName?: string;\n /**\n * The currency symbol returned by `Intl.NumberFormat`.\n */\n currencySymbol?: string;\n /**\n * The currency narrow symbol returned by `Intl.NumberFormat`.\n */\n currencyNarrowSymbol?: string;\n /**\n * The localized amount, without any currency symbols or non-number types from the `Intl.NumberFormat.formatToParts` parts.\n */\n amount: string;\n /**\n * All parts returned by `Intl.NumberFormat.formatToParts`.\n */\n parts: Intl.NumberFormatPart[];\n /**\n * A string returned by `new Intl.NumberFormat` for the amount and currency code,\n * using the `locale` value in the [`LocalizationProvider` component](https://shopify.dev/api/hydrogen/components/localization/localizationprovider).\n */\n localizedString: string;\n /**\n * The `MoneyV2` object provided as an argument to the hook.\n */\n original: MoneyV2;\n /**\n * A string with trailing zeros removed from the fractional part, if any exist. If there are no trailing zeros, then the fractional part remains.\n * For example, `$640.00` turns into `$640`.\n * `$640.42` remains `$640.42`.\n */\n withoutTrailingZeros: string;\n /**\n * A string without currency and without trailing zeros removed from the fractional part, if any exist. If there are no trailing zeros, then the fractional part remains.\n * For example, `$640.00` turns into `640`.\n * `$640.42` turns into `640.42`.\n */\n withoutTrailingZerosAndCurrency: string;\n};\n\n/**\n * The `useMoney` hook takes a [MoneyV2 object](https://shopify.dev/api/storefront/reference/common-objects/moneyv2) and returns a\n * default-formatted string of the amount with the correct currency indicator, along with some of the parts provided by\n * [Intl.NumberFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat).\n * Uses `locale` from `ShopifyProvider`\n */\nexport function useMoney(money: MoneyV2): UseMoneyValue {\n const {locale} = useShop();\n\n if (!locale) {\n throw new Error(\n `useMoney(): Unable to get 'locale' from 'useShop()', which means that 'locale' was not passed to '<ShopifyProvider/>'. 'locale' is required for 'useMoney()' to work`\n );\n }\n\n const amount = parseFloat(money.amount);\n\n const options = useMemo(\n () => ({\n style: 'currency',\n currency: money.currencyCode,\n }),\n [money.currencyCode]\n );\n\n const defaultFormatter = useLazyFormatter(locale, options);\n\n const nameFormatter = useLazyFormatter(locale, {\n ...options,\n currencyDisplay: 'name',\n });\n\n const narrowSymbolFormatter = useLazyFormatter(locale, {\n ...options,\n currencyDisplay: 'narrowSymbol',\n });\n\n const withoutTrailingZerosFormatter = useLazyFormatter(locale, {\n ...options,\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n });\n\n const withoutCurrencyFormatter = useLazyFormatter(locale);\n\n const withoutTrailingZerosOrCurrencyFormatter = useLazyFormatter(locale, {\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n });\n\n const isPartCurrency = (part: Intl.NumberFormatPart) =>\n part.type === 'currency';\n\n // By wrapping these properties in functions, we only\n // create formatters if they are going to be used.\n const lazyFormatters = useMemo(\n () => ({\n original: () => money,\n currencyCode: () => money.currencyCode,\n\n localizedString: () => defaultFormatter().format(amount),\n\n parts: () => defaultFormatter().formatToParts(amount),\n\n withoutTrailingZeros: () =>\n amount % 1 === 0\n ? withoutTrailingZerosFormatter().format(amount)\n : defaultFormatter().format(amount),\n\n withoutTrailingZerosAndCurrency: () =>\n amount % 1 === 0\n ? withoutTrailingZerosOrCurrencyFormatter().format(amount)\n : withoutCurrencyFormatter().format(amount),\n\n currencyName: () =>\n nameFormatter().formatToParts(amount).find(isPartCurrency)?.value ??\n money.currencyCode, // e.g. \"US dollars\"\n\n currencySymbol: () =>\n defaultFormatter().formatToParts(amount).find(isPartCurrency)?.value ??\n money.currencyCode, // e.g. \"USD\"\n\n currencyNarrowSymbol: () =>\n narrowSymbolFormatter().formatToParts(amount).find(isPartCurrency)\n ?.value ?? '', // e.g. \"$\"\n\n amount: () =>\n defaultFormatter()\n .formatToParts(amount)\n .filter((part) =>\n ['decimal', 'fraction', 'group', 'integer', 'literal'].includes(\n part.type\n )\n )\n .map((part) => part.value)\n .join(''),\n }),\n [\n money,\n amount,\n nameFormatter,\n defaultFormatter,\n narrowSymbolFormatter,\n withoutCurrencyFormatter,\n withoutTrailingZerosFormatter,\n withoutTrailingZerosOrCurrencyFormatter,\n ]\n );\n\n // Call functions automatically when the properties are accessed\n // to keep these functions as an implementation detail.\n return useMemo(\n () =>\n new Proxy(lazyFormatters as unknown as UseMoneyValue, {\n get: (target, key) => Reflect.get(target, key)?.call(null),\n }),\n [lazyFormatters]\n );\n}\n\nfunction useLazyFormatter(locale: string, options?: Intl.NumberFormatOptions) {\n return useMemo(() => {\n let memoized: Intl.NumberFormat;\n return () => (memoized ??= new Intl.NumberFormat(locale, options));\n }, [locale, options]);\n}\n"],"names":["useMoney","money","locale","useShop","Error","amount","parseFloat","options","useMemo","style","currency","currencyCode","defaultFormatter","useLazyFormatter","nameFormatter","currencyDisplay","narrowSymbolFormatter","withoutTrailingZerosFormatter","minimumFractionDigits","maximumFractionDigits","withoutCurrencyFormatter","withoutTrailingZerosOrCurrencyFormatter","isPartCurrency","part","type","lazyFormatters","original","localizedString","format","parts","formatToParts","withoutTrailingZeros","withoutTrailingZerosAndCurrency","currencyName","find","value","currencySymbol","currencyNarrowSymbol","filter","includes","map","join","Proxy","get","target","key","Reflect","call","memoized","Intl","NumberFormat"],"mappings":"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"}
1
+ {"version":3,"file":"useMoney.cjs","sources":["../../src/useMoney.tsx"],"sourcesContent":["import {useMemo} from 'react';\nimport {useShop} from './ShopifyProvider.js';\nimport {CurrencyCode, MoneyV2} from './storefront-api-types.js';\n\nexport type UseMoneyValue = {\n /**\n * The currency code from the `MoneyV2` object.\n */\n currencyCode: CurrencyCode;\n /**\n * The name for the currency code, returned by `Intl.NumberFormat`.\n */\n currencyName?: string;\n /**\n * The currency symbol returned by `Intl.NumberFormat`.\n */\n currencySymbol?: string;\n /**\n * The currency narrow symbol returned by `Intl.NumberFormat`.\n */\n currencyNarrowSymbol?: string;\n /**\n * The localized amount, without any currency symbols or non-number types from the `Intl.NumberFormat.formatToParts` parts.\n */\n amount: string;\n /**\n * All parts returned by `Intl.NumberFormat.formatToParts`.\n */\n parts: Intl.NumberFormatPart[];\n /**\n * A string returned by `new Intl.NumberFormat` for the amount and currency code,\n * using the `locale` value in the [`LocalizationProvider` component](https://shopify.dev/api/hydrogen/components/localization/localizationprovider).\n */\n localizedString: string;\n /**\n * The `MoneyV2` object provided as an argument to the hook.\n */\n original: MoneyV2;\n /**\n * A string with trailing zeros removed from the fractional part, if any exist. If there are no trailing zeros, then the fractional part remains.\n * For example, `$640.00` turns into `$640`.\n * `$640.42` remains `$640.42`.\n */\n withoutTrailingZeros: string;\n /**\n * A string without currency and without trailing zeros removed from the fractional part, if any exist. If there are no trailing zeros, then the fractional part remains.\n * For example, `$640.00` turns into `640`.\n * `$640.42` turns into `640.42`.\n */\n withoutTrailingZerosAndCurrency: string;\n};\n\n/**\n * The `useMoney` hook takes a [MoneyV2 object](https://shopify.dev/api/storefront/reference/common-objects/moneyv2) and returns a\n * default-formatted string of the amount with the correct currency indicator, along with some of the parts provided by\n * [Intl.NumberFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat).\n * Uses `locale` from `ShopifyProvider`\n */\nexport function useMoney(money: MoneyV2): UseMoneyValue {\n const {locale} = useShop();\n\n if (!locale) {\n throw new Error(\n `useMoney(): Unable to get 'locale' from 'useShop()', which means that 'locale' was not passed to '<ShopifyProvider/>'. 'locale' is required for 'useMoney()' to work`\n );\n }\n\n const amount = parseFloat(money.amount);\n\n const options = useMemo(\n () => ({\n style: 'currency',\n currency: money.currencyCode,\n }),\n [money.currencyCode]\n );\n\n const defaultFormatter = useLazyFormatter(locale, options);\n\n const nameFormatter = useLazyFormatter(locale, {\n ...options,\n currencyDisplay: 'name',\n });\n\n const narrowSymbolFormatter = useLazyFormatter(locale, {\n ...options,\n currencyDisplay: 'narrowSymbol',\n });\n\n const withoutTrailingZerosFormatter = useLazyFormatter(locale, {\n ...options,\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n });\n\n const withoutCurrencyFormatter = useLazyFormatter(locale);\n\n const withoutTrailingZerosOrCurrencyFormatter = useLazyFormatter(locale, {\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n });\n\n const isPartCurrency = (part: Intl.NumberFormatPart) =>\n part.type === 'currency';\n\n // By wrapping these properties in functions, we only\n // create formatters if they are going to be used.\n const lazyFormatters = useMemo(\n () => ({\n original: () => money,\n currencyCode: () => money.currencyCode,\n\n localizedString: () => defaultFormatter().format(amount),\n\n parts: () => defaultFormatter().formatToParts(amount),\n\n withoutTrailingZeros: () =>\n amount % 1 === 0\n ? withoutTrailingZerosFormatter().format(amount)\n : defaultFormatter().format(amount),\n\n withoutTrailingZerosAndCurrency: () =>\n amount % 1 === 0\n ? withoutTrailingZerosOrCurrencyFormatter().format(amount)\n : withoutCurrencyFormatter().format(amount),\n\n currencyName: () =>\n nameFormatter().formatToParts(amount).find(isPartCurrency)?.value ??\n money.currencyCode, // e.g. \"US dollars\"\n\n currencySymbol: () =>\n defaultFormatter().formatToParts(amount).find(isPartCurrency)?.value ??\n money.currencyCode, // e.g. \"USD\"\n\n currencyNarrowSymbol: () =>\n narrowSymbolFormatter().formatToParts(amount).find(isPartCurrency)\n ?.value ?? '', // e.g. \"$\"\n\n amount: () =>\n defaultFormatter()\n .formatToParts(amount)\n .filter((part) =>\n ['decimal', 'fraction', 'group', 'integer', 'literal'].includes(\n part.type\n )\n )\n .map((part) => part.value)\n .join(''),\n }),\n [\n money,\n amount,\n nameFormatter,\n defaultFormatter,\n narrowSymbolFormatter,\n withoutCurrencyFormatter,\n withoutTrailingZerosFormatter,\n withoutTrailingZerosOrCurrencyFormatter,\n ]\n );\n\n // Call functions automatically when the properties are accessed\n // to keep these functions as an implementation detail.\n return useMemo(\n () =>\n new Proxy(lazyFormatters as unknown as UseMoneyValue, {\n get: (target, key) => Reflect.get(target, key)?.call(null),\n }),\n [lazyFormatters]\n );\n}\n\nfunction useLazyFormatter(locale: string, options?: Intl.NumberFormatOptions) {\n return useMemo(() => {\n let memoized: Intl.NumberFormat;\n return () => (memoized ??= new Intl.NumberFormat(locale, options));\n }, [locale, options]);\n}\n"],"names":["useMoney","money","locale","useShop","Error","amount","parseFloat","options","useMemo","style","currency","currencyCode","defaultFormatter","useLazyFormatter","nameFormatter","currencyDisplay","narrowSymbolFormatter","withoutTrailingZerosFormatter","minimumFractionDigits","maximumFractionDigits","withoutCurrencyFormatter","withoutTrailingZerosOrCurrencyFormatter","isPartCurrency","part","type","lazyFormatters","original","localizedString","format","parts","formatToParts","withoutTrailingZeros","withoutTrailingZerosAndCurrency","currencyName","find","value","currencySymbol","currencyNarrowSymbol","filter","includes","map","join","Proxy","get","target","key","Reflect","call","memoized","Intl","NumberFormat"],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ import { useMemo } from "react";
2
+ import { useShop } from "./ShopifyProvider.js";
3
+ function useMoney(money) {
4
+ const {
5
+ locale
6
+ } = useShop();
7
+ if (!locale) {
8
+ throw new Error(`useMoney(): Unable to get 'locale' from 'useShop()', which means that 'locale' was not passed to '<ShopifyProvider/>'. 'locale' is required for 'useMoney()' to work`);
9
+ }
10
+ const amount = parseFloat(money.amount);
11
+ const options = useMemo(() => ({
12
+ style: "currency",
13
+ currency: money.currencyCode
14
+ }), [money.currencyCode]);
15
+ const defaultFormatter = useLazyFormatter(locale, options);
16
+ const nameFormatter = useLazyFormatter(locale, {
17
+ ...options,
18
+ currencyDisplay: "name"
19
+ });
20
+ const narrowSymbolFormatter = useLazyFormatter(locale, {
21
+ ...options,
22
+ currencyDisplay: "narrowSymbol"
23
+ });
24
+ const withoutTrailingZerosFormatter = useLazyFormatter(locale, {
25
+ ...options,
26
+ minimumFractionDigits: 0,
27
+ maximumFractionDigits: 0
28
+ });
29
+ const withoutCurrencyFormatter = useLazyFormatter(locale);
30
+ const withoutTrailingZerosOrCurrencyFormatter = useLazyFormatter(locale, {
31
+ minimumFractionDigits: 0,
32
+ maximumFractionDigits: 0
33
+ });
34
+ const isPartCurrency = (part) => part.type === "currency";
35
+ const lazyFormatters = useMemo(() => ({
36
+ original: () => money,
37
+ currencyCode: () => money.currencyCode,
38
+ localizedString: () => defaultFormatter().format(amount),
39
+ parts: () => defaultFormatter().formatToParts(amount),
40
+ withoutTrailingZeros: () => amount % 1 === 0 ? withoutTrailingZerosFormatter().format(amount) : defaultFormatter().format(amount),
41
+ withoutTrailingZerosAndCurrency: () => amount % 1 === 0 ? withoutTrailingZerosOrCurrencyFormatter().format(amount) : withoutCurrencyFormatter().format(amount),
42
+ currencyName: () => {
43
+ var _a, _b;
44
+ return (_b = (_a = nameFormatter().formatToParts(amount).find(isPartCurrency)) == null ? void 0 : _a.value) != null ? _b : money.currencyCode;
45
+ },
46
+ currencySymbol: () => {
47
+ var _a, _b;
48
+ return (_b = (_a = defaultFormatter().formatToParts(amount).find(isPartCurrency)) == null ? void 0 : _a.value) != null ? _b : money.currencyCode;
49
+ },
50
+ currencyNarrowSymbol: () => {
51
+ var _a, _b;
52
+ return (_b = (_a = narrowSymbolFormatter().formatToParts(amount).find(isPartCurrency)) == null ? void 0 : _a.value) != null ? _b : "";
53
+ },
54
+ amount: () => defaultFormatter().formatToParts(amount).filter((part) => ["decimal", "fraction", "group", "integer", "literal"].includes(part.type)).map((part) => part.value).join("")
55
+ }), [money, amount, nameFormatter, defaultFormatter, narrowSymbolFormatter, withoutCurrencyFormatter, withoutTrailingZerosFormatter, withoutTrailingZerosOrCurrencyFormatter]);
56
+ return useMemo(() => new Proxy(lazyFormatters, {
57
+ get: (target, key) => {
58
+ var _a;
59
+ return (_a = Reflect.get(target, key)) == null ? void 0 : _a.call(null);
60
+ }
61
+ }), [lazyFormatters]);
62
+ }
63
+ function useLazyFormatter(locale, options) {
64
+ return useMemo(() => {
65
+ let memoized;
66
+ return () => memoized != null ? memoized : memoized = new Intl.NumberFormat(locale, options);
67
+ }, [locale, options]);
68
+ }
69
+ export {
70
+ useMoney
71
+ };
72
+ //# sourceMappingURL=useMoney.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMoney.js","sources":["../../src/useMoney.tsx"],"sourcesContent":["import {useMemo} from 'react';\nimport {useShop} from './ShopifyProvider.js';\nimport {CurrencyCode, MoneyV2} from './storefront-api-types.js';\n\nexport type UseMoneyValue = {\n /**\n * The currency code from the `MoneyV2` object.\n */\n currencyCode: CurrencyCode;\n /**\n * The name for the currency code, returned by `Intl.NumberFormat`.\n */\n currencyName?: string;\n /**\n * The currency symbol returned by `Intl.NumberFormat`.\n */\n currencySymbol?: string;\n /**\n * The currency narrow symbol returned by `Intl.NumberFormat`.\n */\n currencyNarrowSymbol?: string;\n /**\n * The localized amount, without any currency symbols or non-number types from the `Intl.NumberFormat.formatToParts` parts.\n */\n amount: string;\n /**\n * All parts returned by `Intl.NumberFormat.formatToParts`.\n */\n parts: Intl.NumberFormatPart[];\n /**\n * A string returned by `new Intl.NumberFormat` for the amount and currency code,\n * using the `locale` value in the [`LocalizationProvider` component](https://shopify.dev/api/hydrogen/components/localization/localizationprovider).\n */\n localizedString: string;\n /**\n * The `MoneyV2` object provided as an argument to the hook.\n */\n original: MoneyV2;\n /**\n * A string with trailing zeros removed from the fractional part, if any exist. If there are no trailing zeros, then the fractional part remains.\n * For example, `$640.00` turns into `$640`.\n * `$640.42` remains `$640.42`.\n */\n withoutTrailingZeros: string;\n /**\n * A string without currency and without trailing zeros removed from the fractional part, if any exist. If there are no trailing zeros, then the fractional part remains.\n * For example, `$640.00` turns into `640`.\n * `$640.42` turns into `640.42`.\n */\n withoutTrailingZerosAndCurrency: string;\n};\n\n/**\n * The `useMoney` hook takes a [MoneyV2 object](https://shopify.dev/api/storefront/reference/common-objects/moneyv2) and returns a\n * default-formatted string of the amount with the correct currency indicator, along with some of the parts provided by\n * [Intl.NumberFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat).\n * Uses `locale` from `ShopifyProvider`\n */\nexport function useMoney(money: MoneyV2): UseMoneyValue {\n const {locale} = useShop();\n\n if (!locale) {\n throw new Error(\n `useMoney(): Unable to get 'locale' from 'useShop()', which means that 'locale' was not passed to '<ShopifyProvider/>'. 'locale' is required for 'useMoney()' to work`\n );\n }\n\n const amount = parseFloat(money.amount);\n\n const options = useMemo(\n () => ({\n style: 'currency',\n currency: money.currencyCode,\n }),\n [money.currencyCode]\n );\n\n const defaultFormatter = useLazyFormatter(locale, options);\n\n const nameFormatter = useLazyFormatter(locale, {\n ...options,\n currencyDisplay: 'name',\n });\n\n const narrowSymbolFormatter = useLazyFormatter(locale, {\n ...options,\n currencyDisplay: 'narrowSymbol',\n });\n\n const withoutTrailingZerosFormatter = useLazyFormatter(locale, {\n ...options,\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n });\n\n const withoutCurrencyFormatter = useLazyFormatter(locale);\n\n const withoutTrailingZerosOrCurrencyFormatter = useLazyFormatter(locale, {\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n });\n\n const isPartCurrency = (part: Intl.NumberFormatPart) =>\n part.type === 'currency';\n\n // By wrapping these properties in functions, we only\n // create formatters if they are going to be used.\n const lazyFormatters = useMemo(\n () => ({\n original: () => money,\n currencyCode: () => money.currencyCode,\n\n localizedString: () => defaultFormatter().format(amount),\n\n parts: () => defaultFormatter().formatToParts(amount),\n\n withoutTrailingZeros: () =>\n amount % 1 === 0\n ? withoutTrailingZerosFormatter().format(amount)\n : defaultFormatter().format(amount),\n\n withoutTrailingZerosAndCurrency: () =>\n amount % 1 === 0\n ? withoutTrailingZerosOrCurrencyFormatter().format(amount)\n : withoutCurrencyFormatter().format(amount),\n\n currencyName: () =>\n nameFormatter().formatToParts(amount).find(isPartCurrency)?.value ??\n money.currencyCode, // e.g. \"US dollars\"\n\n currencySymbol: () =>\n defaultFormatter().formatToParts(amount).find(isPartCurrency)?.value ??\n money.currencyCode, // e.g. \"USD\"\n\n currencyNarrowSymbol: () =>\n narrowSymbolFormatter().formatToParts(amount).find(isPartCurrency)\n ?.value ?? '', // e.g. \"$\"\n\n amount: () =>\n defaultFormatter()\n .formatToParts(amount)\n .filter((part) =>\n ['decimal', 'fraction', 'group', 'integer', 'literal'].includes(\n part.type\n )\n )\n .map((part) => part.value)\n .join(''),\n }),\n [\n money,\n amount,\n nameFormatter,\n defaultFormatter,\n narrowSymbolFormatter,\n withoutCurrencyFormatter,\n withoutTrailingZerosFormatter,\n withoutTrailingZerosOrCurrencyFormatter,\n ]\n );\n\n // Call functions automatically when the properties are accessed\n // to keep these functions as an implementation detail.\n return useMemo(\n () =>\n new Proxy(lazyFormatters as unknown as UseMoneyValue, {\n get: (target, key) => Reflect.get(target, key)?.call(null),\n }),\n [lazyFormatters]\n );\n}\n\nfunction useLazyFormatter(locale: string, options?: Intl.NumberFormatOptions) {\n return useMemo(() => {\n let memoized: Intl.NumberFormat;\n return () => (memoized ??= new Intl.NumberFormat(locale, options));\n }, [locale, options]);\n}\n"],"names":["useMoney","money","locale","useShop","Error","amount","parseFloat","options","useMemo","style","currency","currencyCode","defaultFormatter","useLazyFormatter","nameFormatter","currencyDisplay","narrowSymbolFormatter","withoutTrailingZerosFormatter","minimumFractionDigits","maximumFractionDigits","withoutCurrencyFormatter","withoutTrailingZerosOrCurrencyFormatter","isPartCurrency","part","type","lazyFormatters","original","localizedString","format","parts","formatToParts","withoutTrailingZeros","withoutTrailingZerosAndCurrency","currencyName","find","value","currencySymbol","currencyNarrowSymbol","filter","includes","map","join","Proxy","get","target","key","Reflect","call","memoized","Intl","NumberFormat"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shopify/hydrogen-react",
3
- "version": "0.0.0-next-585a03d",
3
+ "version": "0.0.0-next-32f1381",
4
4
  "description": "React components, hooks, and utilities for creating custom Shopify storefronts",
5
5
  "homepage": "https://github.com/Shopify/hydrogen-ui/tree/main/packages/react",
6
6
  "license": "MIT",
@@ -15,28 +15,43 @@
15
15
  "dist",
16
16
  "storefront.schema.json"
17
17
  ],
18
- "type": "commonjs",
18
+ "type": "module",
19
19
  "exports": {
20
20
  ".": {
21
+ "node": {
22
+ "require": {
23
+ "types": "./dist/types/index.d.cts",
24
+ "development": "./dist/node-dev/index.cjs",
25
+ "production": "./dist/node-prod/index.cjs",
26
+ "default": "./dist/node-prod/index.cjs"
27
+ },
28
+ "import": {
29
+ "types": "./dist/types/index.d.ts",
30
+ "development": "./dist/node-dev/index.js",
31
+ "production": "./dist/node-prod/index.js",
32
+ "default": "./dist/node-prod/index.js"
33
+ },
34
+ "default": "./dist/node-prod/index.cjs"
35
+ },
21
36
  "module": {
22
37
  "types": "./dist/types/index.d.ts",
23
- "development": "./dist/dev/index.mjs",
24
- "production": "./dist/prod/index.mjs",
25
- "default": "./dist/prod/index.mjs"
38
+ "development": "./dist/browser-dev/index.js",
39
+ "production": "./dist/browser-prod/index.js",
40
+ "default": "./dist/browser-prod/index.js"
26
41
  },
27
42
  "import": {
28
43
  "types": "./dist/types/index.d.ts",
29
- "development": "./dist/dev/index.mjs",
30
- "production": "./dist/prod/index.mjs",
31
- "default": "./dist/prod/index.mjs"
44
+ "development": "./dist/browser-dev/index.js",
45
+ "production": "./dist/browser-prod/index.js",
46
+ "default": "./dist/browser-prod/index.js"
32
47
  },
33
48
  "require": {
34
49
  "types": "./dist/types/index.d.cts",
35
- "development": "./dist/dev/index.js",
36
- "production": "./dist/prod/index.js",
37
- "default": "./dist/prod/index.js"
50
+ "development": "./dist/browser-dev/index.cjs",
51
+ "production": "./dist/browser-prod/index.cjs",
52
+ "default": "./dist/browser-prod/index.cjs"
38
53
  },
39
- "default": "./dist/prod/index.mjs"
54
+ "default": "./dist/browser-prod/index.js"
40
55
  },
41
56
  "./storefront-api-types": "./dist/types/storefront-api-types.d.ts",
42
57
  "./storefront.schema.json": "./storefront.schema.json",
@@ -55,21 +70,21 @@
55
70
  "unpkg": "./dist/umd/hydrogen-react.prod.js",
56
71
  "jsdelivr": "./dist/umd/hydrogen-react.prod.js",
57
72
  "sideEffects": [
58
- "dist/dev/node_modules/use-sync-external-store/shim/with-selector.mjs",
59
- "dist/prod/node_modules/use-sync-external-store/shim/with-selector.mjs",
60
- "dist/dev/node_modules/use-sync-external-store/shim/with-selector.js",
61
- "dist/prod/node_modules/use-sync-external-store/shim/with-selector.js"
73
+ "dist/*/node_modules/use-sync-external-store/shim/with-selector.*js"
62
74
  ],
63
75
  "scripts": {
64
76
  "clean-dist": "rimraf ./dist",
65
77
  "dev": "run-s clean-dist dev:demo",
66
78
  "dev:story": "ladle serve",
67
- "dev:demo": "run-p dev:demo:*",
68
- "dev:demo:vite": "vite build --watch --emptyOutDir false --clearScreen false --mode devbuild",
79
+ "dev:demo": "run-p dev:demo:* ",
80
+ "dev:demo:browser-dev": "vite build --watch --emptyOutDir false --clearScreen false --mode devbuild",
81
+ "dev:demo:node-dev": "vite build --watch --emptyOutDir false --clearScreen false --mode devbuild --ssr",
69
82
  "dev:demo:ts": "tsc --watch --emitDeclarationOnly",
70
83
  "build": "npm-run-all --sequential clean-dist --parallel build:vite:* build:tsc:es --parallel build:tsc:cjs copy-storefront-types",
71
- "build:vite:dev": "vite build --mode devbuild",
72
- "build:vite:prod": "vite build",
84
+ "build:vite:browser-dev": "vite build --mode devbuild",
85
+ "build:vite:browser-prod": "vite build",
86
+ "build:vite:node-dev": "vite build --mode devbuild --ssr",
87
+ "build:vite:node-prod": "vite build --ssr",
73
88
  "build:vite:umddev": "vite build --mode umdbuilddev",
74
89
  "build:vite:umdprod": "vite build --mode umdbuild",
75
90
  "build:tsc:cjs": "cpy ./dist/types/index.d.ts ./dist/types/ --rename='index.d.cts' --flat",
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- var shim = { exports: {} };
4
- exports.shim = shim;
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- var useSyncExternalStoreShim_development = {};
4
- exports.__exports = useSyncExternalStoreShim_development;
5
- //# sourceMappingURL=use-sync-external-store-shim.development.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-sync-external-store-shim.development.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- var useSyncExternalStoreShim_production_min = {};
4
- exports.__exports = useSyncExternalStoreShim_production_min;
5
- //# sourceMappingURL=use-sync-external-store-shim.production.min.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-sync-external-store-shim.production.min.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-sync-external-store-shim.production.min.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- var withSelector_development = {};
4
- exports.__exports = withSelector_development;
5
- //# sourceMappingURL=with-selector.development.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"with-selector.development.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- var withSelector = { exports: {} };
4
- exports.withSelector = withSelector;
5
- //# sourceMappingURL=with-selector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"with-selector.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- var withSelector_production_min = {};
4
- exports.__exports = withSelector_production_min;
5
- //# sourceMappingURL=with-selector.production.min.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"with-selector.production.min.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,46 +0,0 @@
1
- import { AddToCartButton } from "./AddToCartButton.mjs";
2
- import { BuyNowButton } from "./BuyNowButton.mjs";
3
- import { CartCheckoutButton } from "./CartCheckoutButton.mjs";
4
- import { CartProvider, useCart } from "./CartProvider.mjs";
5
- import { ExternalVideo } from "./ExternalVideo.mjs";
6
- import { flattenConnection } from "./flatten-connection.mjs";
7
- import { Image } from "./Image.mjs";
8
- import { MediaFile } from "./MediaFile.mjs";
9
- import { metafieldParser } from "./metafield-parser.mjs";
10
- import { Metafield, parseMetafield, parseMetafieldValue } from "./Metafield.mjs";
11
- import { ModelViewer } from "./ModelViewer.mjs";
12
- import { Money } from "./Money.mjs";
13
- import { ProductPrice } from "./ProductPrice.mjs";
14
- import { ProductProvider, useProduct } from "./ProductProvider.mjs";
15
- import { ShopifyProvider, useShop } from "./ShopifyProvider.mjs";
16
- import { ShopPayButton } from "./ShopPayButton.mjs";
17
- import { createStorefrontClient } from "./storefront-client.mjs";
18
- import { useMoney } from "./useMoney.mjs";
19
- import { Video } from "./Video.mjs";
20
- export {
21
- AddToCartButton,
22
- BuyNowButton,
23
- CartCheckoutButton,
24
- CartProvider,
25
- ExternalVideo,
26
- Image,
27
- MediaFile,
28
- Metafield,
29
- ModelViewer,
30
- Money,
31
- ProductPrice,
32
- ProductProvider,
33
- ShopPayButton,
34
- ShopifyProvider,
35
- Video,
36
- createStorefrontClient,
37
- flattenConnection,
38
- metafieldParser,
39
- parseMetafield,
40
- parseMetafieldValue,
41
- useCart,
42
- useMoney,
43
- useProduct,
44
- useShop
45
- };
46
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;"}