@shopify/hydrogen-react 0.0.0-next-32f1381 → 0.0.0-next-992334e

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 (625) hide show
  1. package/dist/browser-dev/{AddToCartButton.js → AddToCartButton.mjs} +4 -4
  2. package/dist/{node-dev/AddToCartButton.cjs.map → browser-dev/AddToCartButton.mjs.map} +1 -1
  3. package/dist/browser-dev/{BaseButton.js → BaseButton.mjs} +1 -1
  4. package/dist/{node-dev/BaseButton.cjs.map → browser-dev/BaseButton.mjs.map} +1 -1
  5. package/dist/{browser-prod/BuyNowButton.js → browser-dev/BuyNowButton.mjs} +3 -3
  6. package/dist/{node-dev/BuyNowButton.cjs.map → browser-dev/BuyNowButton.mjs.map} +1 -1
  7. package/dist/browser-dev/{CartCheckoutButton.js → CartCheckoutButton.mjs} +3 -3
  8. package/dist/{node-dev/CartCheckoutButton.cjs.map → browser-dev/CartCheckoutButton.mjs.map} +1 -1
  9. package/dist/browser-dev/{CartProvider.js → CartProvider.mjs} +3 -3
  10. package/dist/{node-prod/CartProvider.cjs.map → browser-dev/CartProvider.mjs.map} +1 -1
  11. package/dist/browser-dev/{ExternalVideo.js → ExternalVideo.mjs} +1 -1
  12. package/dist/{node-dev/ExternalVideo.cjs.map → browser-dev/ExternalVideo.mjs.map} +1 -1
  13. package/dist/browser-dev/{Image.js → Image.mjs} +2 -2
  14. package/dist/{node-dev/Image.cjs.map → browser-dev/Image.mjs.map} +1 -1
  15. package/dist/browser-dev/{MediaFile.js → MediaFile.mjs} +5 -5
  16. package/dist/{node-dev/MediaFile.cjs.map → browser-dev/MediaFile.mjs.map} +1 -1
  17. package/dist/browser-dev/{Metafield.js → Metafield.mjs} +5 -5
  18. package/dist/{node-dev/Metafield.cjs.map → browser-dev/Metafield.mjs.map} +1 -1
  19. package/dist/browser-dev/{ModelViewer.js → ModelViewer.mjs} +2 -2
  20. package/dist/{node-dev/ModelViewer.cjs.map → browser-dev/ModelViewer.mjs.map} +1 -1
  21. package/dist/browser-dev/{Money.js → Money.mjs} +2 -2
  22. package/dist/{node-dev/Money.cjs.map → browser-dev/Money.mjs.map} +1 -1
  23. package/dist/{browser-prod/ProductPrice.js → browser-dev/ProductPrice.mjs} +3 -3
  24. package/dist/{node-prod/ProductPrice.cjs.map → browser-dev/ProductPrice.mjs.map} +1 -1
  25. package/dist/browser-dev/{ProductProvider.js → ProductProvider.mjs} +2 -2
  26. package/dist/{node-dev/ProductProvider.cjs.map → browser-dev/ProductProvider.mjs.map} +1 -1
  27. package/dist/browser-dev/{ShopPayButton.js → ShopPayButton.mjs} +3 -3
  28. package/dist/{node-prod/ShopPayButton.cjs.map → browser-dev/ShopPayButton.mjs.map} +1 -1
  29. package/dist/browser-dev/{ShopifyProvider.js → ShopifyProvider.mjs} +2 -2
  30. package/dist/{node-dev/ShopifyProvider.cjs.map → browser-dev/ShopifyProvider.mjs.map} +1 -1
  31. package/dist/browser-dev/{Video.js → Video.mjs} +2 -2
  32. package/dist/{node-dev/Video.cjs.map → browser-dev/Video.mjs.map} +1 -1
  33. package/dist/browser-dev/_virtual/{index.js → index.mjs} +1 -1
  34. package/dist/browser-dev/_virtual/index.mjs.map +1 -0
  35. package/dist/browser-dev/_virtual/{use-sync-external-store-shim.development.js → use-sync-external-store-shim.development.mjs} +1 -1
  36. package/dist/browser-dev/_virtual/use-sync-external-store-shim.development.mjs.map +1 -0
  37. package/dist/{browser-prod/_virtual/use-sync-external-store-shim.production.min.js → browser-dev/_virtual/use-sync-external-store-shim.production.min.mjs} +1 -1
  38. package/dist/browser-dev/_virtual/use-sync-external-store-shim.production.min.mjs.map +1 -0
  39. package/dist/{browser-prod/_virtual/with-selector.development.js → browser-dev/_virtual/with-selector.development.mjs} +1 -1
  40. package/dist/browser-dev/_virtual/with-selector.development.mjs.map +1 -0
  41. package/dist/{browser-prod/_virtual/with-selector.js → browser-dev/_virtual/with-selector.mjs} +1 -1
  42. package/dist/browser-dev/_virtual/with-selector.mjs.map +1 -0
  43. package/dist/{browser-prod/_virtual/with-selector.production.min.js → browser-dev/_virtual/with-selector.production.min.mjs} +1 -1
  44. package/dist/browser-dev/_virtual/with-selector.production.min.mjs.map +1 -0
  45. package/dist/browser-dev/{cart-constants.js → cart-constants.mjs} +1 -1
  46. package/dist/{node-dev/cart-constants.cjs.map → browser-dev/cart-constants.mjs.map} +1 -1
  47. package/dist/{browser-prod/cart-hooks.js → browser-dev/cart-hooks.mjs} +3 -3
  48. package/dist/{node-prod/cart-hooks.cjs.map → browser-dev/cart-hooks.mjs.map} +1 -1
  49. package/dist/browser-dev/{cart-queries.js → cart-queries.mjs} +1 -1
  50. package/dist/{node-dev/cart-queries.cjs.map → browser-dev/cart-queries.mjs.map} +1 -1
  51. package/dist/browser-dev/{flatten-connection.js → flatten-connection.mjs} +1 -1
  52. package/dist/{node-dev/flatten-connection.cjs.map → browser-dev/flatten-connection.mjs.map} +1 -1
  53. package/dist/{browser-prod/image-size.js → browser-dev/image-size.mjs} +1 -1
  54. package/dist/{node-prod/image-size.cjs.map → browser-dev/image-size.mjs.map} +1 -1
  55. package/dist/browser-dev/index.mjs +46 -0
  56. package/dist/browser-dev/index.mjs.map +1 -0
  57. package/dist/browser-dev/{load-script.js → load-script.mjs} +1 -1
  58. package/dist/{node-prod/load-script.cjs.map → browser-dev/load-script.mjs.map} +1 -1
  59. package/dist/browser-dev/{metafield-parser.js → metafield-parser.mjs} +3 -3
  60. package/dist/{node-dev/metafield-parser.cjs.map → browser-dev/metafield-parser.mjs.map} +1 -1
  61. package/dist/{browser-prod/node_modules/@xstate/fsm/es/index.js → browser-dev/node_modules/@xstate/fsm/es/index.mjs} +1 -1
  62. package/dist/browser-dev/node_modules/@xstate/fsm/es/index.mjs.map +1 -0
  63. package/dist/browser-dev/node_modules/@xstate/react/es/fsm.mjs +94 -0
  64. package/dist/browser-dev/node_modules/@xstate/react/es/fsm.mjs.map +1 -0
  65. package/dist/browser-dev/node_modules/@xstate/react/es/{useConstant.js → useConstant.mjs} +1 -1
  66. package/dist/browser-dev/node_modules/@xstate/react/es/useConstant.mjs.map +1 -0
  67. package/dist/browser-dev/node_modules/use-isomorphic-layout-effect/dist/{use-isomorphic-layout-effect.browser.esm.js → use-isomorphic-layout-effect.browser.esm.mjs} +1 -1
  68. package/dist/browser-dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.mjs.map +1 -0
  69. package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/{with-selector.development.js → with-selector.development.mjs} +3 -3
  70. package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -0
  71. package/dist/{browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js → browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs} +3 -3
  72. package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -0
  73. package/dist/browser-dev/node_modules/use-sync-external-store/cjs/{use-sync-external-store-shim.development.js → use-sync-external-store-shim.development.mjs} +2 -2
  74. package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -0
  75. package/dist/browser-dev/node_modules/use-sync-external-store/cjs/{use-sync-external-store-shim.production.min.js → use-sync-external-store-shim.production.min.mjs} +2 -2
  76. package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -0
  77. package/dist/{browser-prod/node_modules/use-sync-external-store/shim/index.js → browser-dev/node_modules/use-sync-external-store/shim/index.mjs} +4 -4
  78. package/dist/browser-dev/node_modules/use-sync-external-store/shim/index.mjs.map +1 -0
  79. package/dist/{browser-prod/node_modules/use-sync-external-store/shim/with-selector.js → browser-dev/node_modules/use-sync-external-store/shim/with-selector.mjs} +4 -4
  80. package/dist/browser-dev/node_modules/use-sync-external-store/shim/with-selector.mjs.map +1 -0
  81. package/dist/{browser-prod/storefront-api-constants.js → browser-dev/storefront-api-constants.mjs} +1 -1
  82. package/dist/browser-dev/storefront-api-constants.mjs.map +1 -0
  83. package/dist/browser-dev/{storefront-client.js → storefront-client.mjs} +2 -2
  84. package/dist/{node-dev/storefront-client.cjs.map → browser-dev/storefront-client.mjs.map} +1 -1
  85. package/dist/{browser-prod/useCartAPIStateMachine.js → browser-dev/useCartAPIStateMachine.mjs} +5 -5
  86. package/dist/{node-prod/useCartAPIStateMachine.cjs.map → browser-dev/useCartAPIStateMachine.mjs.map} +1 -1
  87. package/dist/{browser-prod/useCartActions.js → browser-dev/useCartActions.mjs} +3 -3
  88. package/dist/{node-dev/useCartActions.cjs.map → browser-dev/useCartActions.mjs.map} +1 -1
  89. package/dist/{browser-prod/useMoney.js → browser-dev/useMoney.mjs} +2 -2
  90. package/dist/{node-prod/useMoney.cjs.map → browser-dev/useMoney.mjs.map} +1 -1
  91. package/dist/browser-prod/{AddToCartButton.js → AddToCartButton.mjs} +4 -4
  92. package/dist/{node-prod/AddToCartButton.cjs.map → browser-prod/AddToCartButton.mjs.map} +1 -1
  93. package/dist/browser-prod/{BaseButton.js → BaseButton.mjs} +1 -1
  94. package/dist/{node-prod/BaseButton.cjs.map → browser-prod/BaseButton.mjs.map} +1 -1
  95. package/dist/{browser-dev/BuyNowButton.js → browser-prod/BuyNowButton.mjs} +3 -3
  96. package/dist/{node-prod/BuyNowButton.cjs.map → browser-prod/BuyNowButton.mjs.map} +1 -1
  97. package/dist/browser-prod/{CartCheckoutButton.js → CartCheckoutButton.mjs} +3 -3
  98. package/dist/{node-prod/CartCheckoutButton.cjs.map → browser-prod/CartCheckoutButton.mjs.map} +1 -1
  99. package/dist/browser-prod/{CartProvider.js → CartProvider.mjs} +3 -3
  100. package/dist/{node-dev/CartProvider.cjs.map → browser-prod/CartProvider.mjs.map} +1 -1
  101. package/dist/browser-prod/{ExternalVideo.js → ExternalVideo.mjs} +1 -1
  102. package/dist/{node-prod/ExternalVideo.cjs.map → browser-prod/ExternalVideo.mjs.map} +1 -1
  103. package/dist/browser-prod/{Image.js → Image.mjs} +2 -2
  104. package/dist/{node-prod/Image.cjs.map → browser-prod/Image.mjs.map} +1 -1
  105. package/dist/browser-prod/{MediaFile.js → MediaFile.mjs} +5 -5
  106. package/dist/{node-prod/MediaFile.cjs.map → browser-prod/MediaFile.mjs.map} +1 -1
  107. package/dist/browser-prod/{Metafield.js → Metafield.mjs} +5 -5
  108. package/dist/{node-prod/Metafield.cjs.map → browser-prod/Metafield.mjs.map} +1 -1
  109. package/dist/browser-prod/{ModelViewer.js → ModelViewer.mjs} +2 -2
  110. package/dist/{node-prod/ModelViewer.cjs.map → browser-prod/ModelViewer.mjs.map} +1 -1
  111. package/dist/browser-prod/{Money.js → Money.mjs} +2 -2
  112. package/dist/{node-prod/Money.cjs.map → browser-prod/Money.mjs.map} +1 -1
  113. package/dist/{browser-dev/ProductPrice.js → browser-prod/ProductPrice.mjs} +3 -3
  114. package/dist/{node-dev/ProductPrice.cjs.map → browser-prod/ProductPrice.mjs.map} +1 -1
  115. package/dist/browser-prod/{ProductProvider.js → ProductProvider.mjs} +2 -2
  116. package/dist/{node-prod/ProductProvider.cjs.map → browser-prod/ProductProvider.mjs.map} +1 -1
  117. package/dist/browser-prod/{ShopPayButton.js → ShopPayButton.mjs} +3 -3
  118. package/dist/{node-dev/ShopPayButton.cjs.map → browser-prod/ShopPayButton.mjs.map} +1 -1
  119. package/dist/browser-prod/{ShopifyProvider.js → ShopifyProvider.mjs} +2 -2
  120. package/dist/{node-prod/ShopifyProvider.cjs.map → browser-prod/ShopifyProvider.mjs.map} +1 -1
  121. package/dist/browser-prod/{Video.js → Video.mjs} +2 -2
  122. package/dist/{node-prod/Video.cjs.map → browser-prod/Video.mjs.map} +1 -1
  123. package/dist/browser-prod/_virtual/{index.js → index.mjs} +1 -1
  124. package/dist/browser-prod/_virtual/index.mjs.map +1 -0
  125. package/dist/browser-prod/_virtual/{use-sync-external-store-shim.development.js → use-sync-external-store-shim.development.mjs} +1 -1
  126. package/dist/browser-prod/_virtual/use-sync-external-store-shim.development.mjs.map +1 -0
  127. package/dist/{browser-dev/_virtual/use-sync-external-store-shim.production.min.js → browser-prod/_virtual/use-sync-external-store-shim.production.min.mjs} +1 -1
  128. package/dist/browser-prod/_virtual/use-sync-external-store-shim.production.min.mjs.map +1 -0
  129. package/dist/{browser-dev/_virtual/with-selector.development.js → browser-prod/_virtual/with-selector.development.mjs} +1 -1
  130. package/dist/browser-prod/_virtual/with-selector.development.mjs.map +1 -0
  131. package/dist/{browser-dev/_virtual/with-selector.js → browser-prod/_virtual/with-selector.mjs} +1 -1
  132. package/dist/browser-prod/_virtual/with-selector.mjs.map +1 -0
  133. package/dist/{browser-dev/_virtual/with-selector.production.min.js → browser-prod/_virtual/with-selector.production.min.mjs} +1 -1
  134. package/dist/browser-prod/_virtual/with-selector.production.min.mjs.map +1 -0
  135. package/dist/browser-prod/{cart-constants.js → cart-constants.mjs} +1 -1
  136. package/dist/{node-prod/cart-constants.cjs.map → browser-prod/cart-constants.mjs.map} +1 -1
  137. package/dist/{browser-dev/cart-hooks.js → browser-prod/cart-hooks.mjs} +3 -3
  138. package/dist/{node-dev/cart-hooks.cjs.map → browser-prod/cart-hooks.mjs.map} +1 -1
  139. package/dist/browser-prod/{cart-queries.js → cart-queries.mjs} +1 -1
  140. package/dist/{node-prod/cart-queries.cjs.map → browser-prod/cart-queries.mjs.map} +1 -1
  141. package/dist/browser-prod/{flatten-connection.js → flatten-connection.mjs} +1 -1
  142. package/dist/{node-prod/flatten-connection.cjs.map → browser-prod/flatten-connection.mjs.map} +1 -1
  143. package/dist/{browser-dev/image-size.js → browser-prod/image-size.mjs} +1 -1
  144. package/dist/{node-dev/image-size.cjs.map → browser-prod/image-size.mjs.map} +1 -1
  145. package/dist/browser-prod/index.mjs +46 -0
  146. package/dist/browser-prod/index.mjs.map +1 -0
  147. package/dist/browser-prod/{load-script.js → load-script.mjs} +1 -1
  148. package/dist/{node-dev/load-script.cjs.map → browser-prod/load-script.mjs.map} +1 -1
  149. package/dist/browser-prod/{metafield-parser.js → metafield-parser.mjs} +3 -3
  150. package/dist/{node-prod/metafield-parser.cjs.map → browser-prod/metafield-parser.mjs.map} +1 -1
  151. package/dist/{browser-dev/node_modules/@xstate/fsm/es/index.js → browser-prod/node_modules/@xstate/fsm/es/index.mjs} +1 -1
  152. package/dist/browser-prod/node_modules/@xstate/fsm/es/index.mjs.map +1 -0
  153. package/dist/browser-prod/node_modules/@xstate/react/es/fsm.mjs +94 -0
  154. package/dist/browser-prod/node_modules/@xstate/react/es/fsm.mjs.map +1 -0
  155. package/dist/browser-prod/node_modules/@xstate/react/es/{useConstant.js → useConstant.mjs} +1 -1
  156. package/dist/browser-prod/node_modules/@xstate/react/es/useConstant.mjs.map +1 -0
  157. package/dist/browser-prod/node_modules/use-isomorphic-layout-effect/dist/{use-isomorphic-layout-effect.browser.esm.js → use-isomorphic-layout-effect.browser.esm.mjs} +1 -1
  158. package/dist/browser-prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.mjs.map +1 -0
  159. package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/{with-selector.development.js → with-selector.development.mjs} +3 -3
  160. package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -0
  161. package/dist/{browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js → browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs} +3 -3
  162. package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -0
  163. package/dist/browser-prod/node_modules/use-sync-external-store/cjs/{use-sync-external-store-shim.development.js → use-sync-external-store-shim.development.mjs} +2 -2
  164. package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -0
  165. package/dist/browser-prod/node_modules/use-sync-external-store/cjs/{use-sync-external-store-shim.production.min.js → use-sync-external-store-shim.production.min.mjs} +2 -2
  166. package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -0
  167. package/dist/{browser-dev/node_modules/use-sync-external-store/shim/index.js → browser-prod/node_modules/use-sync-external-store/shim/index.mjs} +4 -4
  168. package/dist/browser-prod/node_modules/use-sync-external-store/shim/index.mjs.map +1 -0
  169. package/dist/{browser-dev/node_modules/use-sync-external-store/shim/with-selector.js → browser-prod/node_modules/use-sync-external-store/shim/with-selector.mjs} +4 -4
  170. package/dist/browser-prod/node_modules/use-sync-external-store/shim/with-selector.mjs.map +1 -0
  171. package/dist/{browser-dev/storefront-api-constants.js → browser-prod/storefront-api-constants.mjs} +1 -1
  172. package/dist/browser-prod/storefront-api-constants.mjs.map +1 -0
  173. package/dist/browser-prod/{storefront-client.js → storefront-client.mjs} +2 -2
  174. package/dist/{node-prod/storefront-client.cjs.map → browser-prod/storefront-client.mjs.map} +1 -1
  175. package/dist/{browser-dev/useCartAPIStateMachine.js → browser-prod/useCartAPIStateMachine.mjs} +5 -5
  176. package/dist/{node-dev/useCartAPIStateMachine.cjs.map → browser-prod/useCartAPIStateMachine.mjs.map} +1 -1
  177. package/dist/{browser-dev/useCartActions.js → browser-prod/useCartActions.mjs} +3 -3
  178. package/dist/{node-prod/useCartActions.cjs.map → browser-prod/useCartActions.mjs.map} +1 -1
  179. package/dist/{browser-dev/useMoney.js → browser-prod/useMoney.mjs} +2 -2
  180. package/dist/{node-dev/useMoney.cjs.map → browser-prod/useMoney.mjs.map} +1 -1
  181. package/dist/node-dev/AddToCartButton.js +16 -16
  182. package/dist/node-dev/AddToCartButton.js.map +1 -1
  183. package/dist/node-dev/{AddToCartButton.cjs → AddToCartButton.mjs} +17 -17
  184. package/dist/node-dev/AddToCartButton.mjs.map +1 -0
  185. package/dist/node-dev/BaseButton.js +7 -7
  186. package/dist/node-dev/BaseButton.js.map +1 -1
  187. package/dist/node-dev/{BaseButton.cjs → BaseButton.mjs} +8 -8
  188. package/dist/node-dev/BaseButton.mjs.map +1 -0
  189. package/dist/node-dev/BuyNowButton.js +12 -12
  190. package/dist/node-dev/BuyNowButton.js.map +1 -1
  191. package/dist/node-dev/{BuyNowButton.cjs → BuyNowButton.mjs} +13 -13
  192. package/dist/node-dev/BuyNowButton.mjs.map +1 -0
  193. package/dist/node-dev/CartCheckoutButton.js +11 -11
  194. package/dist/node-dev/CartCheckoutButton.js.map +1 -1
  195. package/dist/node-dev/CartCheckoutButton.mjs +30 -0
  196. package/dist/node-dev/CartCheckoutButton.mjs.map +1 -0
  197. package/dist/node-dev/CartProvider.js +35 -35
  198. package/dist/node-dev/CartProvider.js.map +1 -1
  199. package/dist/node-dev/{CartProvider.cjs → CartProvider.mjs} +36 -36
  200. package/dist/node-dev/CartProvider.mjs.map +1 -0
  201. package/dist/node-dev/ExternalVideo.js +5 -5
  202. package/dist/node-dev/ExternalVideo.js.map +1 -1
  203. package/dist/node-dev/{ExternalVideo.cjs → ExternalVideo.mjs} +6 -6
  204. package/dist/node-dev/ExternalVideo.mjs.map +1 -0
  205. package/dist/node-dev/Image.js +12 -12
  206. package/dist/node-dev/Image.js.map +1 -1
  207. package/dist/node-dev/{Image.cjs → Image.mjs} +13 -13
  208. package/dist/node-dev/Image.mjs.map +1 -0
  209. package/dist/node-dev/MediaFile.js +12 -12
  210. package/dist/node-dev/MediaFile.js.map +1 -1
  211. package/dist/node-dev/{MediaFile.cjs → MediaFile.mjs} +13 -13
  212. package/dist/node-dev/MediaFile.mjs.map +1 -0
  213. package/dist/node-dev/Metafield.js +32 -32
  214. package/dist/node-dev/Metafield.js.map +1 -1
  215. package/dist/node-dev/{Metafield.cjs → Metafield.mjs} +33 -33
  216. package/dist/node-dev/Metafield.mjs.map +1 -0
  217. package/dist/node-dev/ModelViewer.js +11 -11
  218. package/dist/node-dev/ModelViewer.js.map +1 -1
  219. package/dist/node-dev/{ModelViewer.cjs → ModelViewer.mjs} +12 -12
  220. package/dist/node-dev/ModelViewer.mjs.map +1 -0
  221. package/dist/node-dev/Money.js +8 -8
  222. package/dist/node-dev/Money.js.map +1 -1
  223. package/dist/node-dev/{Money.cjs → Money.mjs} +9 -9
  224. package/dist/node-dev/Money.mjs.map +1 -0
  225. package/dist/node-dev/ProductPrice.js +9 -9
  226. package/dist/node-dev/ProductPrice.js.map +1 -1
  227. package/dist/node-dev/{ProductPrice.cjs → ProductPrice.mjs} +10 -10
  228. package/dist/node-dev/ProductPrice.mjs.map +1 -0
  229. package/dist/node-dev/ProductProvider.js +25 -25
  230. package/dist/node-dev/ProductProvider.js.map +1 -1
  231. package/dist/node-dev/{ProductProvider.cjs → ProductProvider.mjs} +26 -26
  232. package/dist/node-dev/ProductProvider.mjs.map +1 -0
  233. package/dist/node-dev/ShopPayButton.js +13 -13
  234. package/dist/node-dev/ShopPayButton.js.map +1 -1
  235. package/dist/node-dev/{ShopPayButton.cjs → ShopPayButton.mjs} +14 -14
  236. package/dist/node-dev/ShopPayButton.mjs.map +1 -0
  237. package/dist/node-dev/ShopifyProvider.js +14 -14
  238. package/dist/node-dev/ShopifyProvider.js.map +1 -1
  239. package/dist/node-dev/ShopifyProvider.mjs +46 -0
  240. package/dist/node-dev/ShopifyProvider.mjs.map +1 -0
  241. package/dist/node-dev/Video.js +9 -9
  242. package/dist/node-dev/Video.js.map +1 -1
  243. package/dist/node-dev/{Video.cjs → Video.mjs} +10 -10
  244. package/dist/node-dev/Video.mjs.map +1 -0
  245. package/dist/node-dev/_virtual/index.js +5 -0
  246. package/dist/{browser-dev → node-dev}/_virtual/index.js.map +1 -1
  247. package/dist/node-dev/_virtual/index.mjs +5 -0
  248. package/dist/node-dev/_virtual/index.mjs.map +1 -0
  249. package/dist/node-dev/_virtual/use-sync-external-store-shim.development.js +5 -0
  250. package/dist/{browser-dev → node-dev}/_virtual/use-sync-external-store-shim.development.js.map +1 -1
  251. package/dist/node-dev/_virtual/use-sync-external-store-shim.development.mjs +5 -0
  252. package/dist/node-dev/_virtual/use-sync-external-store-shim.development.mjs.map +1 -0
  253. package/dist/node-dev/_virtual/use-sync-external-store-shim.production.min.js +5 -0
  254. package/dist/node-dev/_virtual/use-sync-external-store-shim.production.min.js.map +1 -0
  255. package/dist/node-dev/_virtual/use-sync-external-store-shim.production.min.mjs +5 -0
  256. package/dist/node-dev/_virtual/use-sync-external-store-shim.production.min.mjs.map +1 -0
  257. package/dist/node-dev/_virtual/with-selector.development.js +5 -0
  258. package/dist/{browser-dev → node-dev}/_virtual/with-selector.development.js.map +1 -1
  259. package/dist/node-dev/_virtual/with-selector.development.mjs +5 -0
  260. package/dist/node-dev/_virtual/with-selector.development.mjs.map +1 -0
  261. package/dist/node-dev/_virtual/with-selector.js +5 -0
  262. package/dist/{browser-dev → node-dev}/_virtual/with-selector.js.map +1 -1
  263. package/dist/node-dev/_virtual/with-selector.mjs +5 -0
  264. package/dist/node-dev/_virtual/with-selector.mjs.map +1 -0
  265. package/dist/node-dev/_virtual/with-selector.production.min.js +5 -0
  266. package/dist/{browser-dev → node-dev}/_virtual/with-selector.production.min.js.map +1 -1
  267. package/dist/node-dev/_virtual/with-selector.production.min.mjs +5 -0
  268. package/dist/node-dev/_virtual/with-selector.production.min.mjs.map +1 -0
  269. package/dist/node-dev/cart-constants.js +9 -9
  270. package/dist/node-dev/cart-constants.js.map +1 -1
  271. package/dist/node-dev/cart-constants.mjs +17 -0
  272. package/dist/node-dev/cart-constants.mjs.map +1 -0
  273. package/dist/node-dev/cart-hooks.js +15 -15
  274. package/dist/node-dev/cart-hooks.js.map +1 -1
  275. package/dist/node-dev/cart-hooks.mjs +48 -0
  276. package/dist/node-dev/cart-hooks.mjs.map +1 -0
  277. package/dist/node-dev/cart-queries.js +11 -11
  278. package/dist/node-dev/cart-queries.js.map +1 -1
  279. package/dist/{node-prod/cart-queries.cjs → node-dev/cart-queries.mjs} +12 -12
  280. package/dist/node-dev/cart-queries.mjs.map +1 -0
  281. package/dist/node-dev/flatten-connection.js +3 -3
  282. package/dist/node-dev/flatten-connection.js.map +1 -1
  283. package/dist/node-dev/{flatten-connection.cjs → flatten-connection.mjs} +4 -4
  284. package/dist/node-dev/flatten-connection.mjs.map +1 -0
  285. package/dist/node-dev/image-size.js +6 -6
  286. package/dist/node-dev/image-size.js.map +1 -1
  287. package/dist/node-dev/{image-size.cjs → image-size.mjs} +7 -7
  288. package/dist/node-dev/image-size.mjs.map +1 -0
  289. package/dist/node-dev/index.js +45 -45
  290. package/dist/node-dev/index.js.map +1 -1
  291. package/dist/node-dev/index.mjs +46 -0
  292. package/dist/node-dev/index.mjs.map +1 -0
  293. package/dist/node-dev/load-script.js +7 -7
  294. package/dist/node-dev/load-script.js.map +1 -1
  295. package/dist/node-dev/{load-script.cjs → load-script.mjs} +8 -8
  296. package/dist/node-dev/load-script.mjs.map +1 -0
  297. package/dist/node-dev/metafield-parser.js +8 -8
  298. package/dist/node-dev/metafield-parser.js.map +1 -1
  299. package/dist/node-dev/{metafield-parser.cjs → metafield-parser.mjs} +9 -9
  300. package/dist/node-dev/metafield-parser.mjs.map +1 -0
  301. package/dist/node-dev/node_modules/@xstate/fsm/es/index.js +158 -0
  302. package/dist/node-dev/node_modules/@xstate/fsm/es/index.js.map +1 -0
  303. package/dist/node-dev/node_modules/@xstate/fsm/es/index.mjs +159 -0
  304. package/dist/node-dev/node_modules/@xstate/fsm/es/index.mjs.map +1 -0
  305. package/dist/node-dev/node_modules/@xstate/react/es/fsm.js +94 -0
  306. package/dist/{browser-dev → node-dev}/node_modules/@xstate/react/es/fsm.js.map +1 -1
  307. package/dist/{browser-prod/node_modules/@xstate/react/es/fsm.js → node-dev/node_modules/@xstate/react/es/fsm.mjs} +6 -6
  308. package/dist/node-dev/node_modules/@xstate/react/es/fsm.mjs.map +1 -0
  309. package/dist/node-dev/node_modules/@xstate/react/es/useConstant.js +30 -0
  310. package/dist/{browser-dev → node-dev}/node_modules/@xstate/react/es/useConstant.js.map +1 -1
  311. package/dist/node-dev/node_modules/@xstate/react/es/useConstant.mjs +12 -0
  312. package/dist/node-dev/node_modules/@xstate/react/es/useConstant.mjs.map +1 -0
  313. package/dist/node-dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.js +5 -0
  314. package/dist/node-dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.js.map +1 -0
  315. package/dist/node-dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.mjs +6 -0
  316. package/dist/node-dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.mjs.map +1 -0
  317. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +107 -0
  318. package/dist/{browser-dev → node-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +1 -1
  319. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs +105 -0
  320. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -0
  321. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js +74 -0
  322. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js.map +1 -0
  323. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs +72 -0
  324. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -0
  325. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +138 -0
  326. package/dist/{browser-prod → node-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +1 -1
  327. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs +136 -0
  328. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -0
  329. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js +60 -0
  330. package/dist/{browser-prod → node-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js.map +1 -1
  331. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs +58 -0
  332. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -0
  333. package/dist/node-dev/node_modules/use-sync-external-store/shim/index.js +21 -0
  334. package/dist/{browser-prod → node-dev}/node_modules/use-sync-external-store/shim/index.js.map +1 -1
  335. package/dist/node-dev/node_modules/use-sync-external-store/shim/index.mjs +21 -0
  336. package/dist/node-dev/node_modules/use-sync-external-store/shim/index.mjs.map +1 -0
  337. package/dist/node-dev/node_modules/use-sync-external-store/shim/with-selector.js +12 -0
  338. package/dist/{browser-dev → node-dev}/node_modules/use-sync-external-store/shim/with-selector.js.map +1 -1
  339. package/dist/node-dev/node_modules/use-sync-external-store/shim/with-selector.mjs +11 -0
  340. package/dist/node-dev/node_modules/use-sync-external-store/shim/with-selector.mjs.map +1 -0
  341. package/dist/node-dev/storefront-api-constants.js +3 -3
  342. package/dist/node-dev/storefront-api-constants.js.map +1 -1
  343. package/dist/node-dev/storefront-api-constants.mjs +5 -0
  344. package/dist/node-dev/storefront-api-constants.mjs.map +1 -0
  345. package/dist/node-dev/storefront-client.js +6 -6
  346. package/dist/node-dev/storefront-client.js.map +1 -1
  347. package/dist/node-dev/{storefront-client.cjs → storefront-client.mjs} +7 -7
  348. package/dist/node-dev/storefront-client.mjs.map +1 -0
  349. package/dist/node-dev/useCartAPIStateMachine.js +20 -20
  350. package/dist/node-dev/useCartAPIStateMachine.js.map +1 -1
  351. package/dist/node-dev/{useCartAPIStateMachine.cjs → useCartAPIStateMachine.mjs} +21 -21
  352. package/dist/node-dev/useCartAPIStateMachine.mjs.map +1 -0
  353. package/dist/node-dev/useCartActions.js +26 -26
  354. package/dist/node-dev/useCartActions.js.map +1 -1
  355. package/dist/{node-prod/useCartActions.cjs → node-dev/useCartActions.mjs} +27 -27
  356. package/dist/node-dev/useCartActions.mjs.map +1 -0
  357. package/dist/node-dev/useMoney.js +10 -10
  358. package/dist/node-dev/useMoney.js.map +1 -1
  359. package/dist/node-dev/{useMoney.cjs → useMoney.mjs} +11 -11
  360. package/dist/node-dev/useMoney.mjs.map +1 -0
  361. package/dist/node-prod/AddToCartButton.js +16 -16
  362. package/dist/node-prod/AddToCartButton.js.map +1 -1
  363. package/dist/node-prod/{AddToCartButton.cjs → AddToCartButton.mjs} +17 -17
  364. package/dist/node-prod/AddToCartButton.mjs.map +1 -0
  365. package/dist/node-prod/BaseButton.js +7 -7
  366. package/dist/node-prod/BaseButton.js.map +1 -1
  367. package/dist/node-prod/{BaseButton.cjs → BaseButton.mjs} +8 -8
  368. package/dist/node-prod/BaseButton.mjs.map +1 -0
  369. package/dist/node-prod/BuyNowButton.js +12 -12
  370. package/dist/node-prod/BuyNowButton.js.map +1 -1
  371. package/dist/node-prod/{BuyNowButton.cjs → BuyNowButton.mjs} +13 -13
  372. package/dist/node-prod/BuyNowButton.mjs.map +1 -0
  373. package/dist/node-prod/CartCheckoutButton.js +11 -11
  374. package/dist/node-prod/CartCheckoutButton.js.map +1 -1
  375. package/dist/node-prod/CartCheckoutButton.mjs +30 -0
  376. package/dist/node-prod/CartCheckoutButton.mjs.map +1 -0
  377. package/dist/node-prod/CartProvider.js +35 -35
  378. package/dist/node-prod/CartProvider.js.map +1 -1
  379. package/dist/node-prod/{CartProvider.cjs → CartProvider.mjs} +36 -36
  380. package/dist/node-prod/CartProvider.mjs.map +1 -0
  381. package/dist/node-prod/ExternalVideo.js +5 -5
  382. package/dist/node-prod/ExternalVideo.js.map +1 -1
  383. package/dist/node-prod/{ExternalVideo.cjs → ExternalVideo.mjs} +6 -6
  384. package/dist/node-prod/ExternalVideo.mjs.map +1 -0
  385. package/dist/node-prod/Image.js +12 -12
  386. package/dist/node-prod/Image.js.map +1 -1
  387. package/dist/node-prod/{Image.cjs → Image.mjs} +13 -13
  388. package/dist/node-prod/Image.mjs.map +1 -0
  389. package/dist/node-prod/MediaFile.js +12 -12
  390. package/dist/node-prod/MediaFile.js.map +1 -1
  391. package/dist/node-prod/{MediaFile.cjs → MediaFile.mjs} +13 -13
  392. package/dist/node-prod/MediaFile.mjs.map +1 -0
  393. package/dist/node-prod/Metafield.js +32 -32
  394. package/dist/node-prod/Metafield.js.map +1 -1
  395. package/dist/node-prod/{Metafield.cjs → Metafield.mjs} +33 -33
  396. package/dist/node-prod/Metafield.mjs.map +1 -0
  397. package/dist/node-prod/ModelViewer.js +11 -11
  398. package/dist/node-prod/ModelViewer.js.map +1 -1
  399. package/dist/node-prod/{ModelViewer.cjs → ModelViewer.mjs} +12 -12
  400. package/dist/node-prod/ModelViewer.mjs.map +1 -0
  401. package/dist/node-prod/Money.js +8 -8
  402. package/dist/node-prod/Money.js.map +1 -1
  403. package/dist/node-prod/{Money.cjs → Money.mjs} +9 -9
  404. package/dist/node-prod/Money.mjs.map +1 -0
  405. package/dist/node-prod/ProductPrice.js +9 -9
  406. package/dist/node-prod/ProductPrice.js.map +1 -1
  407. package/dist/node-prod/{ProductPrice.cjs → ProductPrice.mjs} +10 -10
  408. package/dist/node-prod/ProductPrice.mjs.map +1 -0
  409. package/dist/node-prod/ProductProvider.js +25 -25
  410. package/dist/node-prod/ProductProvider.js.map +1 -1
  411. package/dist/node-prod/{ProductProvider.cjs → ProductProvider.mjs} +26 -26
  412. package/dist/node-prod/ProductProvider.mjs.map +1 -0
  413. package/dist/node-prod/ShopPayButton.js +13 -13
  414. package/dist/node-prod/ShopPayButton.js.map +1 -1
  415. package/dist/node-prod/{ShopPayButton.cjs → ShopPayButton.mjs} +14 -14
  416. package/dist/node-prod/ShopPayButton.mjs.map +1 -0
  417. package/dist/node-prod/ShopifyProvider.js +14 -14
  418. package/dist/node-prod/ShopifyProvider.js.map +1 -1
  419. package/dist/node-prod/ShopifyProvider.mjs +46 -0
  420. package/dist/node-prod/ShopifyProvider.mjs.map +1 -0
  421. package/dist/node-prod/Video.js +9 -9
  422. package/dist/node-prod/Video.js.map +1 -1
  423. package/dist/node-prod/{Video.cjs → Video.mjs} +10 -10
  424. package/dist/node-prod/Video.mjs.map +1 -0
  425. package/dist/node-prod/_virtual/index.js +5 -0
  426. package/dist/{browser-prod → node-prod}/_virtual/index.js.map +1 -1
  427. package/dist/node-prod/_virtual/index.mjs +5 -0
  428. package/dist/node-prod/_virtual/index.mjs.map +1 -0
  429. package/dist/node-prod/_virtual/use-sync-external-store-shim.development.js +5 -0
  430. package/dist/{browser-prod → node-prod}/_virtual/use-sync-external-store-shim.development.js.map +1 -1
  431. package/dist/node-prod/_virtual/use-sync-external-store-shim.development.mjs +5 -0
  432. package/dist/node-prod/_virtual/use-sync-external-store-shim.development.mjs.map +1 -0
  433. package/dist/node-prod/_virtual/use-sync-external-store-shim.production.min.js +5 -0
  434. package/dist/node-prod/_virtual/use-sync-external-store-shim.production.min.js.map +1 -0
  435. package/dist/node-prod/_virtual/use-sync-external-store-shim.production.min.mjs +5 -0
  436. package/dist/node-prod/_virtual/use-sync-external-store-shim.production.min.mjs.map +1 -0
  437. package/dist/node-prod/_virtual/with-selector.development.js +5 -0
  438. package/dist/{browser-prod → node-prod}/_virtual/with-selector.development.js.map +1 -1
  439. package/dist/node-prod/_virtual/with-selector.development.mjs +5 -0
  440. package/dist/node-prod/_virtual/with-selector.development.mjs.map +1 -0
  441. package/dist/node-prod/_virtual/with-selector.js +5 -0
  442. package/dist/{browser-prod → node-prod}/_virtual/with-selector.js.map +1 -1
  443. package/dist/node-prod/_virtual/with-selector.mjs +5 -0
  444. package/dist/node-prod/_virtual/with-selector.mjs.map +1 -0
  445. package/dist/node-prod/_virtual/with-selector.production.min.js +5 -0
  446. package/dist/{browser-prod → node-prod}/_virtual/with-selector.production.min.js.map +1 -1
  447. package/dist/node-prod/_virtual/with-selector.production.min.mjs +5 -0
  448. package/dist/node-prod/_virtual/with-selector.production.min.mjs.map +1 -0
  449. package/dist/node-prod/cart-constants.js +9 -9
  450. package/dist/node-prod/cart-constants.js.map +1 -1
  451. package/dist/node-prod/cart-constants.mjs +17 -0
  452. package/dist/node-prod/cart-constants.mjs.map +1 -0
  453. package/dist/node-prod/cart-hooks.js +15 -15
  454. package/dist/node-prod/cart-hooks.js.map +1 -1
  455. package/dist/node-prod/cart-hooks.mjs +48 -0
  456. package/dist/node-prod/cart-hooks.mjs.map +1 -0
  457. package/dist/node-prod/cart-queries.js +11 -11
  458. package/dist/node-prod/cart-queries.js.map +1 -1
  459. package/dist/{node-dev/cart-queries.cjs → node-prod/cart-queries.mjs} +12 -12
  460. package/dist/node-prod/cart-queries.mjs.map +1 -0
  461. package/dist/node-prod/flatten-connection.js +3 -3
  462. package/dist/node-prod/flatten-connection.js.map +1 -1
  463. package/dist/node-prod/{flatten-connection.cjs → flatten-connection.mjs} +4 -4
  464. package/dist/node-prod/flatten-connection.mjs.map +1 -0
  465. package/dist/node-prod/image-size.js +6 -6
  466. package/dist/node-prod/image-size.js.map +1 -1
  467. package/dist/node-prod/{image-size.cjs → image-size.mjs} +7 -7
  468. package/dist/node-prod/image-size.mjs.map +1 -0
  469. package/dist/node-prod/index.js +45 -45
  470. package/dist/node-prod/index.js.map +1 -1
  471. package/dist/node-prod/index.mjs +46 -0
  472. package/dist/node-prod/index.mjs.map +1 -0
  473. package/dist/node-prod/load-script.js +7 -7
  474. package/dist/node-prod/load-script.js.map +1 -1
  475. package/dist/node-prod/{load-script.cjs → load-script.mjs} +8 -8
  476. package/dist/node-prod/load-script.mjs.map +1 -0
  477. package/dist/node-prod/metafield-parser.js +8 -8
  478. package/dist/node-prod/metafield-parser.js.map +1 -1
  479. package/dist/node-prod/{metafield-parser.cjs → metafield-parser.mjs} +9 -9
  480. package/dist/node-prod/metafield-parser.mjs.map +1 -0
  481. package/dist/node-prod/node_modules/@xstate/fsm/es/index.js +158 -0
  482. package/dist/node-prod/node_modules/@xstate/fsm/es/index.js.map +1 -0
  483. package/dist/node-prod/node_modules/@xstate/fsm/es/index.mjs +159 -0
  484. package/dist/node-prod/node_modules/@xstate/fsm/es/index.mjs.map +1 -0
  485. package/dist/node-prod/node_modules/@xstate/react/es/fsm.js +94 -0
  486. package/dist/{browser-prod → node-prod}/node_modules/@xstate/react/es/fsm.js.map +1 -1
  487. package/dist/{browser-dev/node_modules/@xstate/react/es/fsm.js → node-prod/node_modules/@xstate/react/es/fsm.mjs} +6 -6
  488. package/dist/node-prod/node_modules/@xstate/react/es/fsm.mjs.map +1 -0
  489. package/dist/node-prod/node_modules/@xstate/react/es/useConstant.js +30 -0
  490. package/dist/{browser-prod → node-prod}/node_modules/@xstate/react/es/useConstant.js.map +1 -1
  491. package/dist/node-prod/node_modules/@xstate/react/es/useConstant.mjs +12 -0
  492. package/dist/node-prod/node_modules/@xstate/react/es/useConstant.mjs.map +1 -0
  493. package/dist/node-prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.js +5 -0
  494. package/dist/node-prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.js.map +1 -0
  495. package/dist/node-prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.mjs +6 -0
  496. package/dist/node-prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.mjs.map +1 -0
  497. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +107 -0
  498. package/dist/{browser-prod → node-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +1 -1
  499. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs +105 -0
  500. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -0
  501. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js +74 -0
  502. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js.map +1 -0
  503. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs +72 -0
  504. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -0
  505. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +138 -0
  506. package/dist/{browser-dev → node-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +1 -1
  507. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs +136 -0
  508. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -0
  509. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js +60 -0
  510. package/dist/{browser-dev → node-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js.map +1 -1
  511. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs +58 -0
  512. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -0
  513. package/dist/node-prod/node_modules/use-sync-external-store/shim/index.js +21 -0
  514. package/dist/{browser-dev → node-prod}/node_modules/use-sync-external-store/shim/index.js.map +1 -1
  515. package/dist/node-prod/node_modules/use-sync-external-store/shim/index.mjs +21 -0
  516. package/dist/node-prod/node_modules/use-sync-external-store/shim/index.mjs.map +1 -0
  517. package/dist/node-prod/node_modules/use-sync-external-store/shim/with-selector.js +12 -0
  518. package/dist/{browser-prod → node-prod}/node_modules/use-sync-external-store/shim/with-selector.js.map +1 -1
  519. package/dist/node-prod/node_modules/use-sync-external-store/shim/with-selector.mjs +11 -0
  520. package/dist/node-prod/node_modules/use-sync-external-store/shim/with-selector.mjs.map +1 -0
  521. package/dist/node-prod/storefront-api-constants.js +3 -3
  522. package/dist/node-prod/storefront-api-constants.js.map +1 -1
  523. package/dist/node-prod/storefront-api-constants.mjs +5 -0
  524. package/dist/node-prod/storefront-api-constants.mjs.map +1 -0
  525. package/dist/node-prod/storefront-client.js +6 -6
  526. package/dist/node-prod/storefront-client.js.map +1 -1
  527. package/dist/node-prod/{storefront-client.cjs → storefront-client.mjs} +7 -7
  528. package/dist/node-prod/storefront-client.mjs.map +1 -0
  529. package/dist/node-prod/useCartAPIStateMachine.js +20 -20
  530. package/dist/node-prod/useCartAPIStateMachine.js.map +1 -1
  531. package/dist/node-prod/{useCartAPIStateMachine.cjs → useCartAPIStateMachine.mjs} +21 -21
  532. package/dist/node-prod/useCartAPIStateMachine.mjs.map +1 -0
  533. package/dist/node-prod/useCartActions.js +26 -26
  534. package/dist/node-prod/useCartActions.js.map +1 -1
  535. package/dist/{node-dev/useCartActions.cjs → node-prod/useCartActions.mjs} +27 -27
  536. package/dist/node-prod/useCartActions.mjs.map +1 -0
  537. package/dist/node-prod/useMoney.js +10 -10
  538. package/dist/node-prod/useMoney.js.map +1 -1
  539. package/dist/node-prod/{useMoney.cjs → useMoney.mjs} +11 -11
  540. package/dist/node-prod/useMoney.mjs.map +1 -0
  541. package/package.json +19 -19
  542. package/dist/browser-dev/AddToCartButton.js.map +0 -1
  543. package/dist/browser-dev/BaseButton.js.map +0 -1
  544. package/dist/browser-dev/BuyNowButton.js.map +0 -1
  545. package/dist/browser-dev/CartCheckoutButton.js.map +0 -1
  546. package/dist/browser-dev/CartProvider.js.map +0 -1
  547. package/dist/browser-dev/ExternalVideo.js.map +0 -1
  548. package/dist/browser-dev/Image.js.map +0 -1
  549. package/dist/browser-dev/MediaFile.js.map +0 -1
  550. package/dist/browser-dev/Metafield.js.map +0 -1
  551. package/dist/browser-dev/ModelViewer.js.map +0 -1
  552. package/dist/browser-dev/Money.js.map +0 -1
  553. package/dist/browser-dev/ProductPrice.js.map +0 -1
  554. package/dist/browser-dev/ProductProvider.js.map +0 -1
  555. package/dist/browser-dev/ShopPayButton.js.map +0 -1
  556. package/dist/browser-dev/ShopifyProvider.js.map +0 -1
  557. package/dist/browser-dev/Video.js.map +0 -1
  558. package/dist/browser-dev/_virtual/use-sync-external-store-shim.production.min.js.map +0 -1
  559. package/dist/browser-dev/cart-constants.js.map +0 -1
  560. package/dist/browser-dev/cart-hooks.js.map +0 -1
  561. package/dist/browser-dev/cart-queries.js.map +0 -1
  562. package/dist/browser-dev/flatten-connection.js.map +0 -1
  563. package/dist/browser-dev/image-size.js.map +0 -1
  564. package/dist/browser-dev/index.js +0 -46
  565. package/dist/browser-dev/index.js.map +0 -1
  566. package/dist/browser-dev/load-script.js.map +0 -1
  567. package/dist/browser-dev/metafield-parser.js.map +0 -1
  568. package/dist/browser-dev/node_modules/@xstate/fsm/es/index.js.map +0 -1
  569. package/dist/browser-dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js.map +0 -1
  570. package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js.map +0 -1
  571. package/dist/browser-dev/storefront-api-constants.js.map +0 -1
  572. package/dist/browser-dev/storefront-client.js.map +0 -1
  573. package/dist/browser-dev/useCartAPIStateMachine.js.map +0 -1
  574. package/dist/browser-dev/useCartActions.js.map +0 -1
  575. package/dist/browser-dev/useMoney.js.map +0 -1
  576. package/dist/browser-prod/AddToCartButton.js.map +0 -1
  577. package/dist/browser-prod/BaseButton.js.map +0 -1
  578. package/dist/browser-prod/BuyNowButton.js.map +0 -1
  579. package/dist/browser-prod/CartCheckoutButton.js.map +0 -1
  580. package/dist/browser-prod/CartProvider.js.map +0 -1
  581. package/dist/browser-prod/ExternalVideo.js.map +0 -1
  582. package/dist/browser-prod/Image.js.map +0 -1
  583. package/dist/browser-prod/MediaFile.js.map +0 -1
  584. package/dist/browser-prod/Metafield.js.map +0 -1
  585. package/dist/browser-prod/ModelViewer.js.map +0 -1
  586. package/dist/browser-prod/Money.js.map +0 -1
  587. package/dist/browser-prod/ProductPrice.js.map +0 -1
  588. package/dist/browser-prod/ProductProvider.js.map +0 -1
  589. package/dist/browser-prod/ShopPayButton.js.map +0 -1
  590. package/dist/browser-prod/ShopifyProvider.js.map +0 -1
  591. package/dist/browser-prod/Video.js.map +0 -1
  592. package/dist/browser-prod/_virtual/use-sync-external-store-shim.production.min.js.map +0 -1
  593. package/dist/browser-prod/cart-constants.js.map +0 -1
  594. package/dist/browser-prod/cart-hooks.js.map +0 -1
  595. package/dist/browser-prod/cart-queries.js.map +0 -1
  596. package/dist/browser-prod/flatten-connection.js.map +0 -1
  597. package/dist/browser-prod/image-size.js.map +0 -1
  598. package/dist/browser-prod/index.js +0 -46
  599. package/dist/browser-prod/index.js.map +0 -1
  600. package/dist/browser-prod/load-script.js.map +0 -1
  601. package/dist/browser-prod/metafield-parser.js.map +0 -1
  602. package/dist/browser-prod/node_modules/@xstate/fsm/es/index.js.map +0 -1
  603. package/dist/browser-prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js.map +0 -1
  604. package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js.map +0 -1
  605. package/dist/browser-prod/storefront-api-constants.js.map +0 -1
  606. package/dist/browser-prod/storefront-client.js.map +0 -1
  607. package/dist/browser-prod/useCartAPIStateMachine.js.map +0 -1
  608. package/dist/browser-prod/useCartActions.js.map +0 -1
  609. package/dist/browser-prod/useMoney.js.map +0 -1
  610. package/dist/node-dev/CartCheckoutButton.cjs +0 -30
  611. package/dist/node-dev/ShopifyProvider.cjs +0 -46
  612. package/dist/node-dev/cart-constants.cjs +0 -17
  613. package/dist/node-dev/cart-hooks.cjs +0 -48
  614. package/dist/node-dev/index.cjs +0 -46
  615. package/dist/node-dev/index.cjs.map +0 -1
  616. package/dist/node-dev/storefront-api-constants.cjs +0 -5
  617. package/dist/node-dev/storefront-api-constants.cjs.map +0 -1
  618. package/dist/node-prod/CartCheckoutButton.cjs +0 -30
  619. package/dist/node-prod/ShopifyProvider.cjs +0 -46
  620. package/dist/node-prod/cart-constants.cjs +0 -17
  621. package/dist/node-prod/cart-hooks.cjs +0 -48
  622. package/dist/node-prod/index.cjs +0 -46
  623. package/dist/node-prod/index.cjs.map +0 -1
  624. package/dist/node-prod/storefront-api-constants.cjs +0 -5
  625. package/dist/node-prod/storefront-api-constants.cjs.map +0 -1
@@ -1,15 +1,13 @@
1
- "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const react = require("react");
4
- const CartProvider = require("./CartProvider.cjs");
5
- const BaseButton = require("./BaseButton.cjs");
6
- const jsxRuntime = require("react/jsx-runtime");
1
+ import { useState, useEffect, useCallback } from "react";
2
+ import { useCart } from "./CartProvider.mjs";
3
+ import { BaseButton } from "./BaseButton.mjs";
4
+ import { jsx } from "react/jsx-runtime";
7
5
  function BuyNowButton(props) {
8
6
  const {
9
7
  cartCreate,
10
8
  checkoutUrl
11
- } = CartProvider.useCart();
12
- const [loading, setLoading] = react.useState(false);
9
+ } = useCart();
10
+ const [loading, setLoading] = useState(false);
13
11
  const {
14
12
  quantity,
15
13
  variantId,
@@ -18,12 +16,12 @@ function BuyNowButton(props) {
18
16
  children,
19
17
  ...passthroughProps
20
18
  } = props;
21
- react.useEffect(() => {
19
+ useEffect(() => {
22
20
  if (checkoutUrl) {
23
21
  window.location.href = checkoutUrl;
24
22
  }
25
23
  }, [checkoutUrl]);
26
- const handleBuyNow = react.useCallback(() => {
24
+ const handleBuyNow = useCallback(() => {
27
25
  setLoading(true);
28
26
  cartCreate({
29
27
  lines: [{
@@ -33,7 +31,7 @@ function BuyNowButton(props) {
33
31
  }]
34
32
  });
35
33
  }, [cartCreate, quantity, variantId, attributes]);
36
- return /* @__PURE__ */ jsxRuntime.jsx(BaseButton.BaseButton, {
34
+ return /* @__PURE__ */ jsx(BaseButton, {
37
35
  disabled: loading != null ? loading : passthroughProps.disabled,
38
36
  ...passthroughProps,
39
37
  onClick,
@@ -41,5 +39,7 @@ function BuyNowButton(props) {
41
39
  children
42
40
  });
43
41
  }
44
- exports.BuyNowButton = BuyNowButton;
45
- //# sourceMappingURL=BuyNowButton.cjs.map
42
+ export {
43
+ BuyNowButton
44
+ };
45
+ //# sourceMappingURL=BuyNowButton.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BuyNowButton.mjs","sources":["../../src/BuyNowButton.tsx"],"sourcesContent":["import {useEffect, useState, useCallback} from 'react';\nimport {useCart} from './CartProvider.js';\nimport {BaseButton, BaseButtonProps} from './BaseButton.js';\n\ninterface BuyNowButtonProps {\n /** The item quantity. Defaults to 1. */\n quantity?: number;\n /** The ID of the variant. */\n variantId: string;\n /** An array of cart line attributes that belong to the item being added to the cart. */\n attributes?: {\n key: string;\n value: string;\n }[];\n}\n\n/** The `BuyNowButton` component renders a button that adds an item to the cart and redirects the customer to checkout. */\nexport function BuyNowButton<AsType extends React.ElementType = 'button'>(\n props: BuyNowButtonProps & BaseButtonProps<AsType>\n) {\n const {cartCreate, checkoutUrl} = useCart();\n const [loading, setLoading] = useState<boolean>(false);\n\n const {\n quantity,\n variantId,\n onClick,\n attributes,\n children,\n ...passthroughProps\n } = props;\n\n useEffect(() => {\n if (checkoutUrl) {\n window.location.href = checkoutUrl;\n }\n }, [checkoutUrl]);\n\n const handleBuyNow = useCallback(() => {\n setLoading(true);\n cartCreate({\n lines: [\n {\n quantity: quantity ?? 1,\n merchandiseId: variantId,\n attributes,\n },\n ],\n });\n }, [cartCreate, quantity, variantId, attributes]);\n\n return (\n <BaseButton\n disabled={loading ?? passthroughProps.disabled}\n {...passthroughProps}\n onClick={onClick}\n defaultOnClick={handleBuyNow}\n >\n {children}\n </BaseButton>\n );\n}\n"],"names":["BuyNowButton","props","cartCreate","checkoutUrl","useCart","loading","setLoading","useState","quantity","variantId","onClick","attributes","children","passthroughProps","useEffect","window","location","href","handleBuyNow","useCallback","lines","merchandiseId","disabled"],"mappings":";;;;AAiBO,SAASA,aACdC,OACA;AACM,QAAA;AAAA,IAACC;AAAAA,IAAYC;AAAAA,MAAeC,QAAlC;AACA,QAAM,CAACC,SAASC,UAAV,IAAwBC,SAAkB,KAAV;AAEhC,QAAA;AAAA,IACJC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,OACGC;AAAAA,EACDZ,IAAAA;AAEJa,YAAU,MAAM;AACd,QAAIX,aAAa;AACfY,aAAOC,SAASC,OAAOd;AAAAA,IACxB;AAAA,EAAA,GACA,CAACA,WAAD,CAJM;AAMHe,QAAAA,eAAeC,YAAY,MAAM;AACrCb,eAAW,IAAD;AACC,eAAA;AAAA,MACTc,OAAO,CACL;AAAA,QACEZ,UAAUA,8BAAY;AAAA,QACtBa,eAAeZ;AAAAA,QACfE;AAAAA,MAAAA,CAJG;AAAA,IAAA,CADC;AAAA,KAST,CAACT,YAAYM,UAAUC,WAAWE,UAAlC,CAX6B;AAahC,6BACG,YAAD;AAAA,IACE,UAAUN,4BAAWQ,iBAAiBS;AAAAA,IADxC,GAEMT;AAAAA,IACJ;AAAA,IACA,gBAAgBK;AAAAA,IAJlB;AAAA,EAAA,CADF;AAUD;"}
@@ -1,30 +1,30 @@
1
- import { useState, useEffect } from "react";
2
- import { useCart } from "./CartProvider.js";
3
- import { BaseButton } from "./BaseButton.js";
4
- import { jsx } from "react/jsx-runtime";
1
+ "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const require$$0 = require("react");
4
+ const CartProvider = require("./CartProvider.js");
5
+ const BaseButton = require("./BaseButton.js");
6
+ const jsxRuntime = require("react/jsx-runtime");
5
7
  function CartCheckoutButton(props) {
6
- const [requestedCheckout, setRequestedCheckout] = useState(false);
8
+ const [requestedCheckout, setRequestedCheckout] = require$$0.useState(false);
7
9
  const {
8
10
  status,
9
11
  checkoutUrl
10
- } = useCart();
12
+ } = CartProvider.useCart();
11
13
  const {
12
14
  children,
13
15
  ...passthroughProps
14
16
  } = props;
15
- useEffect(() => {
17
+ require$$0.useEffect(() => {
16
18
  if (requestedCheckout && checkoutUrl && status === "idle") {
17
19
  window.location.href = checkoutUrl;
18
20
  }
19
21
  }, [requestedCheckout, status, checkoutUrl]);
20
- return /* @__PURE__ */ jsx(BaseButton, {
22
+ return /* @__PURE__ */ jsxRuntime.jsx(BaseButton.BaseButton, {
21
23
  ...passthroughProps,
22
24
  disabled: requestedCheckout || passthroughProps.disabled,
23
25
  onClick: () => setRequestedCheckout(true),
24
26
  children
25
27
  });
26
28
  }
27
- export {
28
- CartCheckoutButton
29
- };
29
+ exports.CartCheckoutButton = CartCheckoutButton;
30
30
  //# sourceMappingURL=CartCheckoutButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CartCheckoutButton.js","sources":["../../src/CartCheckoutButton.tsx"],"sourcesContent":["import {ReactNode, useEffect, useState} from 'react';\nimport {useCart} from './CartProvider.js';\nimport {BaseButton, BaseButtonProps} from './BaseButton.js';\n\ntype PropsWeControl = 'onClick';\n\n/**\n * The `CartCheckoutButton` component renders a button that redirects to the checkout URL for the cart.\n * It must be a descendent of a `CartProvider` component.\n */\nexport function CartCheckoutButton(\n props: Omit<BaseButtonProps<'button'>, PropsWeControl> & {\n /** A `ReactNode` element. */\n children: ReactNode;\n }\n) {\n const [requestedCheckout, setRequestedCheckout] = useState(false);\n const {status, checkoutUrl} = useCart();\n const {children, ...passthroughProps} = props;\n\n useEffect(() => {\n if (requestedCheckout && checkoutUrl && status === 'idle') {\n window.location.href = checkoutUrl;\n }\n }, [requestedCheckout, status, checkoutUrl]);\n\n return (\n <BaseButton\n {...passthroughProps}\n disabled={requestedCheckout || passthroughProps.disabled}\n onClick={() => setRequestedCheckout(true)}\n >\n {children}\n </BaseButton>\n );\n}\n"],"names":["CartCheckoutButton","props","requestedCheckout","setRequestedCheckout","useState","status","checkoutUrl","useCart","children","passthroughProps","useEffect","window","location","href","disabled"],"mappings":";;;;AAUO,SAASA,mBACdC,OAIA;AACA,QAAM,CAACC,mBAAmBC,oBAApB,IAA4CC,SAAS,KAAD;AACpD,QAAA;AAAA,IAACC;AAAAA,IAAQC;AAAAA,MAAeC,QAA9B;AACM,QAAA;AAAA,IAACC;AAAAA,OAAaC;AAAAA,EAAoBR,IAAAA;AAExCS,YAAU,MAAM;AACVR,QAAAA,qBAAqBI,eAAeD,WAAW,QAAQ;AACzDM,aAAOC,SAASC,OAAOP;AAAAA,IACxB;AAAA,EACA,GAAA,CAACJ,mBAAmBG,QAAQC,WAA5B,CAJM;AAMT,6BACG,YAAD;AAAA,IAAA,GACMG;AAAAA,IACJ,UAAUP,qBAAqBO,iBAAiBK;AAAAA,IAChD,SAAS,MAAMX,qBAAqB,IAAD;AAAA,IAHrC;AAAA,EAAA,CADF;AASD;"}
1
+ {"version":3,"file":"CartCheckoutButton.js","sources":["../../src/CartCheckoutButton.tsx"],"sourcesContent":["import {ReactNode, useEffect, useState} from 'react';\nimport {useCart} from './CartProvider.js';\nimport {BaseButton, BaseButtonProps} from './BaseButton.js';\n\ntype PropsWeControl = 'onClick';\n\n/**\n * The `CartCheckoutButton` component renders a button that redirects to the checkout URL for the cart.\n * It must be a descendent of a `CartProvider` component.\n */\nexport function CartCheckoutButton(\n props: Omit<BaseButtonProps<'button'>, PropsWeControl> & {\n /** A `ReactNode` element. */\n children: ReactNode;\n }\n) {\n const [requestedCheckout, setRequestedCheckout] = useState(false);\n const {status, checkoutUrl} = useCart();\n const {children, ...passthroughProps} = props;\n\n useEffect(() => {\n if (requestedCheckout && checkoutUrl && status === 'idle') {\n window.location.href = checkoutUrl;\n }\n }, [requestedCheckout, status, checkoutUrl]);\n\n return (\n <BaseButton\n {...passthroughProps}\n disabled={requestedCheckout || passthroughProps.disabled}\n onClick={() => setRequestedCheckout(true)}\n >\n {children}\n </BaseButton>\n );\n}\n"],"names":["CartCheckoutButton","props","requestedCheckout","setRequestedCheckout","useState","status","checkoutUrl","useCart","children","passthroughProps","useEffect","window","location","href","BaseButton","disabled"],"mappings":";;;;;;AAUO,SAASA,mBACdC,OAIA;AACA,QAAM,CAACC,mBAAmBC,oBAApB,IAA4CC,oBAAS,KAAD;AACpD,QAAA;AAAA,IAACC;AAAAA,IAAQC;AAAAA,MAAeC,aAA9B,QAAA;AACM,QAAA;AAAA,IAACC;AAAAA,OAAaC;AAAAA,EAAoBR,IAAAA;AAExCS,aAAAA,UAAU,MAAM;AACVR,QAAAA,qBAAqBI,eAAeD,WAAW,QAAQ;AACzDM,aAAOC,SAASC,OAAOP;AAAAA,IACxB;AAAA,EACA,GAAA,CAACJ,mBAAmBG,QAAQC,WAA5B,CAJM;AAMT,wCACGQ,WAAAA,YAAD;AAAA,IAAA,GACML;AAAAA,IACJ,UAAUP,qBAAqBO,iBAAiBM;AAAAA,IAChD,SAAS,MAAMZ,qBAAqB,IAAD;AAAA,IAHrC;AAAA,EAAA,CADF;AASD;;"}
@@ -0,0 +1,30 @@
1
+ import { useState, useEffect } from "react";
2
+ import { useCart } from "./CartProvider.mjs";
3
+ import { BaseButton } from "./BaseButton.mjs";
4
+ import { jsx } from "react/jsx-runtime";
5
+ function CartCheckoutButton(props) {
6
+ const [requestedCheckout, setRequestedCheckout] = useState(false);
7
+ const {
8
+ status,
9
+ checkoutUrl
10
+ } = useCart();
11
+ const {
12
+ children,
13
+ ...passthroughProps
14
+ } = props;
15
+ useEffect(() => {
16
+ if (requestedCheckout && checkoutUrl && status === "idle") {
17
+ window.location.href = checkoutUrl;
18
+ }
19
+ }, [requestedCheckout, status, checkoutUrl]);
20
+ return /* @__PURE__ */ jsx(BaseButton, {
21
+ ...passthroughProps,
22
+ disabled: requestedCheckout || passthroughProps.disabled,
23
+ onClick: () => setRequestedCheckout(true),
24
+ children
25
+ });
26
+ }
27
+ export {
28
+ CartCheckoutButton
29
+ };
30
+ //# sourceMappingURL=CartCheckoutButton.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CartCheckoutButton.mjs","sources":["../../src/CartCheckoutButton.tsx"],"sourcesContent":["import {ReactNode, useEffect, useState} from 'react';\nimport {useCart} from './CartProvider.js';\nimport {BaseButton, BaseButtonProps} from './BaseButton.js';\n\ntype PropsWeControl = 'onClick';\n\n/**\n * The `CartCheckoutButton` component renders a button that redirects to the checkout URL for the cart.\n * It must be a descendent of a `CartProvider` component.\n */\nexport function CartCheckoutButton(\n props: Omit<BaseButtonProps<'button'>, PropsWeControl> & {\n /** A `ReactNode` element. */\n children: ReactNode;\n }\n) {\n const [requestedCheckout, setRequestedCheckout] = useState(false);\n const {status, checkoutUrl} = useCart();\n const {children, ...passthroughProps} = props;\n\n useEffect(() => {\n if (requestedCheckout && checkoutUrl && status === 'idle') {\n window.location.href = checkoutUrl;\n }\n }, [requestedCheckout, status, checkoutUrl]);\n\n return (\n <BaseButton\n {...passthroughProps}\n disabled={requestedCheckout || passthroughProps.disabled}\n onClick={() => setRequestedCheckout(true)}\n >\n {children}\n </BaseButton>\n );\n}\n"],"names":["CartCheckoutButton","props","requestedCheckout","setRequestedCheckout","useState","status","checkoutUrl","useCart","children","passthroughProps","useEffect","window","location","href","disabled"],"mappings":";;;;AAUO,SAASA,mBACdC,OAIA;AACA,QAAM,CAACC,mBAAmBC,oBAApB,IAA4CC,SAAS,KAAD;AACpD,QAAA;AAAA,IAACC;AAAAA,IAAQC;AAAAA,MAAeC,QAA9B;AACM,QAAA;AAAA,IAACC;AAAAA,OAAaC;AAAAA,EAAoBR,IAAAA;AAExCS,YAAU,MAAM;AACVR,QAAAA,qBAAqBI,eAAeD,WAAW,QAAQ;AACzDM,aAAOC,SAASC,OAAOP;AAAAA,IACxB;AAAA,EACA,GAAA,CAACJ,mBAAmBG,QAAQC,WAA5B,CAJM;AAMT,6BACG,YAAD;AAAA,IAAA,GACMG;AAAAA,IACJ,UAAUP,qBAAqBO,iBAAiBK;AAAAA,IAChD,SAAS,MAAMX,qBAAqB,IAAD;AAAA,IAHrC;AAAA,EAAA,CADF;AASD;"}
@@ -1,10 +1,12 @@
1
- import { createContext, useContext, useState, useRef, useEffect, useCallback, useMemo, useTransition } from "react";
2
- import { useCartAPIStateMachine } from "./useCartAPIStateMachine.js";
3
- import { CART_ID_STORAGE_KEY } from "./cart-constants.js";
4
- import { jsx } from "react/jsx-runtime";
5
- const CartContext = createContext(null);
1
+ "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const require$$0 = require("react");
4
+ const useCartAPIStateMachine = require("./useCartAPIStateMachine.js");
5
+ const cartConstants = require("./cart-constants.js");
6
+ const jsxRuntime = require("react/jsx-runtime");
7
+ const CartContext = require$$0.createContext(null);
6
8
  function useCart() {
7
- const context = useContext(CartContext);
9
+ const context = require$$0.useContext(CartContext);
8
10
  if (!context) {
9
11
  throw new Error("Expected a Cart Context, but no Cart Context was found");
10
12
  }
@@ -37,15 +39,15 @@ function CartProvider({
37
39
  var _a, _b, _c, _d, _e, _f, _g;
38
40
  if (countryCode)
39
41
  countryCode = countryCode.toUpperCase();
40
- const [prevCountryCode, setPrevCountryCode] = useState(countryCode);
41
- const [prevCustomerAccessToken, setPrevCustomerAccessToken] = useState(customerAccessToken);
42
- const customerOverridesCountryCode = useRef(false);
42
+ const [prevCountryCode, setPrevCountryCode] = require$$0.useState(countryCode);
43
+ const [prevCustomerAccessToken, setPrevCustomerAccessToken] = require$$0.useState(customerAccessToken);
44
+ const customerOverridesCountryCode = require$$0.useRef(false);
43
45
  if (prevCountryCode !== countryCode || prevCustomerAccessToken !== customerAccessToken) {
44
46
  setPrevCountryCode(countryCode);
45
47
  setPrevCustomerAccessToken(customerAccessToken);
46
48
  customerOverridesCountryCode.current = false;
47
49
  }
48
- const [cartState, cartSend] = useCartAPIStateMachine({
50
+ const [cartState, cartSend] = useCartAPIStateMachine.useCartAPIStateMachine({
49
51
  numCartLines,
50
52
  data: cart,
51
53
  cartFragment,
@@ -149,16 +151,16 @@ function CartProvider({
149
151
  }
150
152
  }
151
153
  });
152
- const cartReady = useRef(false);
154
+ const cartReady = require$$0.useRef(false);
153
155
  const cartCompleted = cartState.matches("cartCompleted");
154
156
  const countryChanged = (cartState.value === "idle" || cartState.value === "error" || cartState.value === "cartCompleted") && countryCode !== ((_c = (_b = (_a = cartState == null ? void 0 : cartState.context) == null ? void 0 : _a.cart) == null ? void 0 : _b.buyerIdentity) == null ? void 0 : _c.countryCode) && !cartState.context.errors;
155
- const fetchingFromStorage = useRef(false);
156
- useEffect(() => {
157
+ const fetchingFromStorage = require$$0.useRef(false);
158
+ require$$0.useEffect(() => {
157
159
  if (!cartReady.current && !fetchingFromStorage.current) {
158
160
  if (!cart && storageAvailable("localStorage")) {
159
161
  fetchingFromStorage.current = true;
160
162
  try {
161
- const cartId = window.localStorage.getItem(CART_ID_STORAGE_KEY);
163
+ const cartId = window.localStorage.getItem(cartConstants.CART_ID_STORAGE_KEY);
162
164
  if (cartId) {
163
165
  cartSend({
164
166
  type: "CART_FETCH",
@@ -175,7 +177,7 @@ function CartProvider({
175
177
  cartReady.current = true;
176
178
  }
177
179
  }, [cart, cartReady, cartSend]);
178
- useEffect(() => {
180
+ require$$0.useEffect(() => {
179
181
  if (!countryChanged || customerOverridesCountryCode.current)
180
182
  return;
181
183
  cartSend({
@@ -188,32 +190,32 @@ function CartProvider({
188
190
  }
189
191
  });
190
192
  }, [countryCode, customerAccessToken, countryChanged, customerOverridesCountryCode, cartSend]);
191
- const onCartReadySend = useCallback((cartEvent) => {
193
+ const onCartReadySend = require$$0.useCallback((cartEvent) => {
192
194
  if (!cartReady.current) {
193
195
  return console.warn("Cart isn't ready yet");
194
196
  }
195
197
  cartSend(cartEvent);
196
198
  }, [cartSend]);
197
- useEffect(() => {
199
+ require$$0.useEffect(() => {
198
200
  var _a2, _b2, _c2;
199
201
  if (((_b2 = (_a2 = cartState == null ? void 0 : cartState.context) == null ? void 0 : _a2.cart) == null ? void 0 : _b2.id) && storageAvailable("localStorage")) {
200
202
  try {
201
- window.localStorage.setItem(CART_ID_STORAGE_KEY, (_c2 = cartState.context.cart) == null ? void 0 : _c2.id);
203
+ window.localStorage.setItem(cartConstants.CART_ID_STORAGE_KEY, (_c2 = cartState.context.cart) == null ? void 0 : _c2.id);
202
204
  } catch (error) {
203
205
  console.warn("Failed to save cartId to localStorage", error);
204
206
  }
205
207
  }
206
208
  }, [(_e = (_d = cartState == null ? void 0 : cartState.context) == null ? void 0 : _d.cart) == null ? void 0 : _e.id]);
207
- useEffect(() => {
209
+ require$$0.useEffect(() => {
208
210
  if (cartCompleted && storageAvailable("localStorage")) {
209
211
  try {
210
- window.localStorage.removeItem(CART_ID_STORAGE_KEY);
212
+ window.localStorage.removeItem(cartConstants.CART_ID_STORAGE_KEY);
211
213
  } catch (error) {
212
214
  console.warn("Failed to delete cartId from localStorage", error);
213
215
  }
214
216
  }
215
217
  }, [cartCompleted]);
216
- const cartCreate = useCallback((cartInput) => {
218
+ const cartCreate = require$$0.useCallback((cartInput) => {
217
219
  var _a2, _b2;
218
220
  if (countryCode && !((_a2 = cartInput.buyerIdentity) == null ? void 0 : _a2.countryCode)) {
219
221
  if (cartInput.buyerIdentity == null) {
@@ -233,7 +235,7 @@ function CartProvider({
233
235
  });
234
236
  }, [countryCode, customerAccessToken, onCartReadySend]);
235
237
  const cartDisplayState = useDelayedStateUntilHydration(cartState);
236
- const cartContextValue = useMemo(() => {
238
+ const cartContextValue = require$$0.useMemo(() => {
237
239
  var _a2, _b2, _c2, _d2, _e2, _f2;
238
240
  return {
239
241
  ...(_b2 = (_a2 = cartDisplayState == null ? void 0 : cartDisplayState.context) == null ? void 0 : _a2.cart) != null ? _b2 : {
@@ -310,7 +312,7 @@ function CartProvider({
310
312
  cartFragment
311
313
  };
312
314
  }, [cartCreate, (_f = cartDisplayState == null ? void 0 : cartDisplayState.context) == null ? void 0 : _f.cart, (_g = cartDisplayState == null ? void 0 : cartDisplayState.context) == null ? void 0 : _g.errors, cartDisplayState.value, cartFragment, onCartReadySend]);
313
- return /* @__PURE__ */ jsx(CartContext.Provider, {
315
+ return /* @__PURE__ */ jsxRuntime.jsx(CartContext.Provider, {
314
316
  value: cartContextValue,
315
317
  children
316
318
  });
@@ -339,17 +341,17 @@ function transposeStatus(status) {
339
341
  }
340
342
  }
341
343
  function useDelayedStateUntilHydration(state) {
342
- const [isPending, startTransition] = useTransition();
343
- const [delayedState, setDelayedState] = useState(state);
344
- const firstTimePending = useRef(false);
344
+ const [isPending, startTransition] = require$$0.useTransition();
345
+ const [delayedState, setDelayedState] = require$$0.useState(state);
346
+ const firstTimePending = require$$0.useRef(false);
345
347
  if (isPending) {
346
348
  firstTimePending.current = true;
347
349
  }
348
- const firstTimePendingFinished = useRef(false);
350
+ const firstTimePendingFinished = require$$0.useRef(false);
349
351
  if (!isPending && firstTimePending.current) {
350
352
  firstTimePendingFinished.current = true;
351
353
  }
352
- useEffect(() => {
354
+ require$$0.useEffect(() => {
353
355
  startTransition(() => {
354
356
  if (!firstTimePendingFinished.current) {
355
357
  setDelayedState(state);
@@ -475,11 +477,9 @@ fragment ImageFragment on Image {
475
477
  height
476
478
  }
477
479
  `;
478
- export {
479
- CartContext,
480
- CartProvider,
481
- defaultCartFragment,
482
- storageAvailable,
483
- useCart
484
- };
480
+ exports.CartContext = CartContext;
481
+ exports.CartProvider = CartProvider;
482
+ exports.defaultCartFragment = defaultCartFragment;
483
+ exports.storageAvailable = storageAvailable;
484
+ exports.useCart = useCart;
485
485
  //# sourceMappingURL=CartProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CartProvider.js","sources":["../../src/CartProvider.tsx"],"sourcesContent":["import {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n useTransition,\n createContext,\n useContext,\n} from 'react';\nimport {\n AttributeInput,\n CartBuyerIdentityInput,\n CartInput,\n CartLineInput,\n CartLineUpdateInput,\n CountryCode,\n Cart as CartType,\n MutationCartNoteUpdateArgs,\n} from './storefront-api-types.js';\nimport {\n BuyerIdentityUpdateEvent,\n CartMachineContext,\n CartMachineEvent,\n CartMachineTypeState,\n CartWithActions,\n} from './cart-types.js';\nimport {useCartAPIStateMachine} from './useCartAPIStateMachine.js';\nimport {CART_ID_STORAGE_KEY} from './cart-constants.js';\nimport {PartialDeep} from 'type-fest';\n\nexport const CartContext = createContext<CartWithActions | null>(null);\n\n/**\n * The `useCart` hook provides access to the cart object. It must be a descendent of a `CartProvider` component.\n */\nexport function useCart() {\n const context = useContext(CartContext);\n\n if (!context) {\n throw new Error('Expected a Cart Context, but no Cart Context was found');\n }\n\n return context;\n}\n\nexport function CartProvider({\n children,\n numCartLines,\n onCreate,\n onLineAdd,\n onLineRemove,\n onLineUpdate,\n onNoteUpdate,\n onBuyerIdentityUpdate,\n onAttributesUpdate,\n onDiscountCodesUpdate,\n onCreateComplete,\n onLineAddComplete,\n onLineRemoveComplete,\n onLineUpdateComplete,\n onNoteUpdateComplete,\n onBuyerIdentityUpdateComplete,\n onAttributesUpdateComplete,\n onDiscountCodesUpdateComplete,\n data: cart,\n cartFragment = defaultCartFragment,\n customerAccessToken,\n countryCode = 'US',\n}: {\n /** Any `ReactNode` elements. */\n children: React.ReactNode;\n /** Maximum number of cart lines to fetch. Defaults to 250 cart lines. */\n numCartLines?: number;\n /** A callback that is invoked when the process to create a cart begins, but before the cart is created in the Storefront API. */\n onCreate?: () => void;\n /** A callback that is invoked when the process to add a line item to the cart begins, but before the line item is added to the Storefront API. */\n onLineAdd?: () => void;\n /** A callback that is invoked when the process to remove a line item to the cart begins, but before the line item is removed from the Storefront API. */\n onLineRemove?: () => void;\n /** A callback that is invoked when the process to update a line item in the cart begins, but before the line item is updated in the Storefront API. */\n onLineUpdate?: () => void;\n /** A callback that is invoked when the process to add or update a note in the cart begins, but before the note is added or updated in the Storefront API. */\n onNoteUpdate?: () => void;\n /** A callback that is invoked when the process to update the buyer identity begins, but before the buyer identity is updated in the Storefront API. */\n onBuyerIdentityUpdate?: () => void;\n /** A callback that is invoked when the process to update the cart attributes begins, but before the attributes are updated in the Storefront API. */\n onAttributesUpdate?: () => void;\n /** A callback that is invoked when the process to update the cart discount codes begins, but before the discount codes are updated in the Storefront API. */\n onDiscountCodesUpdate?: () => void;\n /** A callback that is invoked when the process to create a cart completes */\n onCreateComplete?: () => void;\n /** A callback that is invoked when the process to add a line item to the cart completes */\n onLineAddComplete?: () => void;\n /** A callback that is invoked when the process to remove a line item to the cart completes */\n onLineRemoveComplete?: () => void;\n /** A callback that is invoked when the process to update a line item in the cart completes */\n onLineUpdateComplete?: () => void;\n /** A callback that is invoked when the process to add or update a note in the cart completes */\n onNoteUpdateComplete?: () => void;\n /** A callback that is invoked when the process to update the buyer identity completes */\n onBuyerIdentityUpdateComplete?: () => void;\n /** A callback that is invoked when the process to update the cart attributes completes */\n onAttributesUpdateComplete?: () => void;\n /** A callback that is invoked when the process to update the cart discount codes completes */\n onDiscountCodesUpdateComplete?: () => void;\n /** An object with fields that correspond to the Storefront API's [Cart object](https://shopify.dev/api/storefront/latest/objects/cart). */\n data?: PartialDeep<CartType, {recurseIntoArrays: true}>;\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 /** A customer access token that's accessible on the server if there's a customer login. */\n customerAccessToken?: CartBuyerIdentityInput['customerAccessToken'];\n /** The ISO country code for i18n. */\n countryCode?: CountryCode;\n}) {\n if (countryCode) countryCode = countryCode.toUpperCase() as CountryCode;\n const [prevCountryCode, setPrevCountryCode] = useState(countryCode);\n const [prevCustomerAccessToken, setPrevCustomerAccessToken] =\n useState(customerAccessToken);\n const customerOverridesCountryCode = useRef(false);\n\n if (\n prevCountryCode !== countryCode ||\n prevCustomerAccessToken !== customerAccessToken\n ) {\n setPrevCountryCode(countryCode);\n setPrevCustomerAccessToken(customerAccessToken);\n customerOverridesCountryCode.current = false;\n }\n\n const [cartState, cartSend] = useCartAPIStateMachine({\n numCartLines,\n data: cart,\n cartFragment,\n countryCode,\n onCartActionEntry(context, event) {\n try {\n switch (event.type) {\n case 'CART_CREATE':\n return onCreate?.();\n case 'CARTLINE_ADD':\n return onLineAdd?.();\n case 'CARTLINE_REMOVE':\n return onLineRemove?.();\n case 'CARTLINE_UPDATE':\n return onLineUpdate?.();\n case 'NOTE_UPDATE':\n return onNoteUpdate?.();\n case 'BUYER_IDENTITY_UPDATE':\n return onBuyerIdentityUpdate?.();\n case 'CART_ATTRIBUTES_UPDATE':\n return onAttributesUpdate?.();\n case 'DISCOUNT_CODES_UPDATE':\n return onDiscountCodesUpdate?.();\n }\n } catch (error) {\n console.error('Cart entry action failed', error);\n }\n },\n onCartActionOptimisticUI(context, event) {\n if (!context?.cart) return {cart: undefined};\n switch (event.type) {\n case 'CARTLINE_REMOVE':\n return {\n ...context,\n lastValidCart: context.cart,\n cart: {\n ...context.cart,\n lines: context?.cart?.lines?.filter(\n (line) => line?.id && !event.payload.lines.includes(line?.id)\n ),\n },\n };\n case 'CARTLINE_UPDATE':\n return {\n ...context,\n lastValidCart: context.cart,\n cart: {\n ...context.cart,\n lines: context?.cart?.lines?.map((line) => {\n const updatedLine = event.payload.lines.find(\n ({id}) => id === line?.id\n );\n\n if (updatedLine && updatedLine.quantity) {\n return {\n ...line,\n quantity: updatedLine.quantity,\n };\n }\n\n return line;\n }),\n },\n };\n }\n return {cart: context.cart ? {...context.cart} : undefined};\n },\n onCartActionComplete(context, event) {\n const cartActionEvent = event.payload.cartActionEvent;\n try {\n switch (event.type) {\n case 'RESOLVE':\n switch (cartActionEvent.type) {\n case 'CART_CREATE':\n return onCreateComplete?.();\n case 'CARTLINE_ADD':\n return onLineAddComplete?.();\n case 'CARTLINE_REMOVE':\n return onLineRemoveComplete?.();\n case 'CARTLINE_UPDATE':\n return onLineUpdateComplete?.();\n case 'NOTE_UPDATE':\n return onNoteUpdateComplete?.();\n case 'BUYER_IDENTITY_UPDATE':\n if (countryCodeNotUpdated(context, cartActionEvent)) {\n customerOverridesCountryCode.current = true;\n }\n return onBuyerIdentityUpdateComplete?.();\n case 'CART_ATTRIBUTES_UPDATE':\n return onAttributesUpdateComplete?.();\n case 'DISCOUNT_CODES_UPDATE':\n return onDiscountCodesUpdateComplete?.();\n }\n }\n } catch (error) {\n console.error('onCartActionComplete failed', error);\n }\n },\n });\n\n const cartReady = useRef(false);\n const cartCompleted = cartState.matches('cartCompleted');\n\n const countryChanged =\n (cartState.value === 'idle' ||\n cartState.value === 'error' ||\n cartState.value === 'cartCompleted') &&\n countryCode !== cartState?.context?.cart?.buyerIdentity?.countryCode &&\n !cartState.context.errors;\n\n const fetchingFromStorage = useRef(false);\n\n /**\n * Initializes cart with priority in this order:\n * 1. cart props\n * 2. localStorage cartId\n */\n useEffect(() => {\n if (!cartReady.current && !fetchingFromStorage.current) {\n if (!cart && storageAvailable('localStorage')) {\n fetchingFromStorage.current = true;\n try {\n const cartId = window.localStorage.getItem(CART_ID_STORAGE_KEY);\n if (cartId) {\n cartSend({type: 'CART_FETCH', payload: {cartId}});\n }\n } catch (error) {\n console.warn('error fetching cartId');\n console.warn(error);\n }\n }\n cartReady.current = true;\n }\n }, [cart, cartReady, cartSend]);\n\n // Update cart country code if cart and props countryCode's as different\n useEffect(() => {\n if (!countryChanged || customerOverridesCountryCode.current) return;\n cartSend({\n type: 'BUYER_IDENTITY_UPDATE',\n payload: {buyerIdentity: {countryCode, customerAccessToken}},\n });\n }, [\n countryCode,\n customerAccessToken,\n countryChanged,\n customerOverridesCountryCode,\n cartSend,\n ]);\n\n // send cart events when ready\n const onCartReadySend = useCallback(\n (cartEvent: CartMachineEvent) => {\n if (!cartReady.current) {\n return console.warn(\"Cart isn't ready yet\");\n }\n cartSend(cartEvent);\n },\n [cartSend]\n );\n\n // save cart id to local storage\n useEffect(() => {\n if (cartState?.context?.cart?.id && storageAvailable('localStorage')) {\n try {\n window.localStorage.setItem(\n CART_ID_STORAGE_KEY,\n cartState.context.cart?.id\n );\n } catch (error) {\n console.warn('Failed to save cartId to localStorage', error);\n }\n }\n }, [cartState?.context?.cart?.id]);\n\n // delete cart from local storage if cart fetched has been completed\n useEffect(() => {\n if (cartCompleted && storageAvailable('localStorage')) {\n try {\n window.localStorage.removeItem(CART_ID_STORAGE_KEY);\n } catch (error) {\n console.warn('Failed to delete cartId from localStorage', error);\n }\n }\n }, [cartCompleted]);\n\n const cartCreate = useCallback(\n (cartInput: CartInput) => {\n if (countryCode && !cartInput.buyerIdentity?.countryCode) {\n if (cartInput.buyerIdentity == null) {\n cartInput.buyerIdentity = {};\n }\n cartInput.buyerIdentity.countryCode = countryCode;\n }\n\n if (\n customerAccessToken &&\n !cartInput.buyerIdentity?.customerAccessToken\n ) {\n if (cartInput.buyerIdentity == null) {\n cartInput.buyerIdentity = {};\n }\n cartInput.buyerIdentity.customerAccessToken = customerAccessToken;\n }\n onCartReadySend({\n type: 'CART_CREATE',\n payload: cartInput,\n });\n },\n [countryCode, customerAccessToken, onCartReadySend]\n );\n\n // Delays the cart state in the context if the page is hydrating\n // preventing suspense boundary errors.\n const cartDisplayState = useDelayedStateUntilHydration(cartState);\n\n const cartContextValue = useMemo<CartWithActions>(() => {\n return {\n ...(cartDisplayState?.context?.cart ?? {lines: [], attributes: []}),\n status: transposeStatus(cartDisplayState.value),\n error: cartDisplayState?.context?.errors,\n totalQuantity: cartDisplayState?.context?.cart?.totalQuantity ?? 0,\n cartCreate,\n linesAdd(lines: CartLineInput[]) {\n if (cartDisplayState?.context?.cart?.id) {\n onCartReadySend({\n type: 'CARTLINE_ADD',\n payload: {lines},\n });\n } else {\n cartCreate({lines});\n }\n },\n linesRemove(lines: string[]) {\n onCartReadySend({\n type: 'CARTLINE_REMOVE',\n payload: {\n lines,\n },\n });\n },\n linesUpdate(lines: CartLineUpdateInput[]) {\n onCartReadySend({\n type: 'CARTLINE_UPDATE',\n payload: {\n lines,\n },\n });\n },\n noteUpdate(note: MutationCartNoteUpdateArgs['note']) {\n onCartReadySend({\n type: 'NOTE_UPDATE',\n payload: {\n note,\n },\n });\n },\n buyerIdentityUpdate(buyerIdentity: CartBuyerIdentityInput) {\n onCartReadySend({\n type: 'BUYER_IDENTITY_UPDATE',\n payload: {\n buyerIdentity,\n },\n });\n },\n cartAttributesUpdate(attributes: AttributeInput[]) {\n onCartReadySend({\n type: 'CART_ATTRIBUTES_UPDATE',\n payload: {\n attributes,\n },\n });\n },\n discountCodesUpdate(discountCodes: string[]) {\n onCartReadySend({\n type: 'DISCOUNT_CODES_UPDATE',\n payload: {\n discountCodes,\n },\n });\n },\n cartFragment,\n };\n }, [\n cartCreate,\n cartDisplayState?.context?.cart,\n cartDisplayState?.context?.errors,\n cartDisplayState.value,\n cartFragment,\n onCartReadySend,\n ]);\n\n return (\n <CartContext.Provider value={cartContextValue}>\n {children}\n </CartContext.Provider>\n );\n}\n\nfunction transposeStatus(\n status: CartMachineTypeState['value']\n): CartWithActions['status'] {\n switch (status) {\n case 'uninitialized':\n case 'initializationError':\n return 'uninitialized';\n case 'idle':\n case 'cartCompleted':\n case 'error':\n return 'idle';\n case 'cartFetching':\n return 'fetching';\n case 'cartCreating':\n return 'creating';\n case 'cartLineAdding':\n case 'cartLineRemoving':\n case 'cartLineUpdating':\n case 'noteUpdating':\n case 'buyerIdentityUpdating':\n case 'cartAttributesUpdating':\n case 'discountCodesUpdating':\n return 'updating';\n }\n}\n\n/**\n * Delays a state update until hydration finishes. Useful for preventing suspense boundaries errors when updating a context\n * @remarks this uses startTransition and waits for it to finish.\n */\nfunction useDelayedStateUntilHydration<T>(state: T) {\n const [isPending, startTransition] = useTransition();\n const [delayedState, setDelayedState] = useState(state);\n\n const firstTimePending = useRef(false);\n if (isPending) {\n firstTimePending.current = true;\n }\n\n const firstTimePendingFinished = useRef(false);\n if (!isPending && firstTimePending.current) {\n firstTimePendingFinished.current = true;\n }\n\n useEffect(() => {\n startTransition(() => {\n if (!firstTimePendingFinished.current) {\n setDelayedState(state);\n }\n });\n }, [state]);\n\n const displayState = firstTimePendingFinished.current ? state : delayedState;\n\n return displayState;\n}\n\n/** Check for storage availability funciton obtained from\n * https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API\n */\nexport function storageAvailable(type: 'localStorage' | 'sessionStorage') {\n let storage;\n try {\n storage = window[type];\n const x = '__storage_test__';\n storage.setItem(x, x);\n storage.removeItem(x);\n return true;\n } catch (e) {\n return (\n e instanceof DOMException &&\n // everything except Firefox\n (e.code === 22 ||\n // Firefox\n e.code === 1014 ||\n // test name field too, because code might not be present\n // everything except Firefox\n e.name === 'QuotaExceededError' ||\n // Firefox\n e.name === 'NS_ERROR_DOM_QUOTA_REACHED') &&\n // acknowledge QuotaExceededError only if there's something already stored\n storage &&\n storage.length !== 0\n );\n }\n}\n\nfunction countryCodeNotUpdated(\n context: CartMachineContext,\n event: BuyerIdentityUpdateEvent\n) {\n return (\n event.payload.buyerIdentity.countryCode &&\n context.cart?.buyerIdentity?.countryCode !==\n event.payload.buyerIdentity.countryCode\n );\n}\n\nexport const defaultCartFragment = `\nfragment CartFragment on Cart {\n id\n checkoutUrl\n totalQuantity\n buyerIdentity {\n countryCode\n customer {\n id\n email\n firstName\n lastName\n displayName\n }\n email\n phone\n }\n lines(first: $numCartLines) {\n edges {\n node {\n id\n quantity\n attributes {\n key\n value\n }\n cost {\n totalAmount {\n amount\n currencyCode\n }\n compareAtAmountPerQuantity {\n amount\n currencyCode\n }\n }\n merchandise {\n ... on ProductVariant {\n id\n availableForSale\n compareAtPriceV2 {\n ...MoneyFragment\n }\n priceV2 {\n ...MoneyFragment\n }\n requiresShipping\n title\n image {\n ...ImageFragment\n }\n product {\n handle\n title\n }\n selectedOptions {\n name\n value\n }\n }\n }\n }\n }\n }\n cost {\n subtotalAmount {\n ...MoneyFragment\n }\n totalAmount {\n ...MoneyFragment\n }\n totalDutyAmount {\n ...MoneyFragment\n }\n totalTaxAmount {\n ...MoneyFragment\n }\n }\n note\n attributes {\n key\n value\n }\n discountCodes {\n code\n }\n}\n\nfragment MoneyFragment on MoneyV2 {\n currencyCode\n amount\n}\nfragment ImageFragment on Image {\n id\n url\n altText\n width\n height\n}\n`;\n"],"names":["CartContext","createContext","useCart","context","useContext","Error","CartProvider","children","numCartLines","onCreate","onLineAdd","onLineRemove","onLineUpdate","onNoteUpdate","onBuyerIdentityUpdate","onAttributesUpdate","onDiscountCodesUpdate","onCreateComplete","onLineAddComplete","onLineRemoveComplete","onLineUpdateComplete","onNoteUpdateComplete","onBuyerIdentityUpdateComplete","onAttributesUpdateComplete","onDiscountCodesUpdateComplete","data","cart","cartFragment","defaultCartFragment","customerAccessToken","countryCode","toUpperCase","prevCountryCode","setPrevCountryCode","useState","prevCustomerAccessToken","setPrevCustomerAccessToken","customerOverridesCountryCode","useRef","current","cartState","cartSend","useCartAPIStateMachine","onCartActionEntry","event","type","error","onCartActionOptimisticUI","undefined","lastValidCart","lines","filter","line","id","payload","includes","map","updatedLine","find","quantity","onCartActionComplete","cartActionEvent","countryCodeNotUpdated","cartReady","cartCompleted","matches","countryChanged","value","buyerIdentity","errors","fetchingFromStorage","useEffect","storageAvailable","cartId","window","localStorage","getItem","CART_ID_STORAGE_KEY","console","warn","onCartReadySend","useCallback","cartEvent","setItem","removeItem","cartCreate","cartInput","cartDisplayState","useDelayedStateUntilHydration","cartContextValue","useMemo","attributes","status","transposeStatus","totalQuantity","linesAdd","linesRemove","linesUpdate","noteUpdate","note","buyerIdentityUpdate","cartAttributesUpdate","discountCodesUpdate","discountCodes","_jsx","state","isPending","startTransition","useTransition","delayedState","setDelayedState","firstTimePending","firstTimePendingFinished","displayState","storage","x","e","DOMException","code","name","length"],"mappings":"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"}
1
+ {"version":3,"file":"CartProvider.js","sources":["../../src/CartProvider.tsx"],"sourcesContent":["import {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n useTransition,\n createContext,\n useContext,\n} from 'react';\nimport {\n AttributeInput,\n CartBuyerIdentityInput,\n CartInput,\n CartLineInput,\n CartLineUpdateInput,\n CountryCode,\n Cart as CartType,\n MutationCartNoteUpdateArgs,\n} from './storefront-api-types.js';\nimport {\n BuyerIdentityUpdateEvent,\n CartMachineContext,\n CartMachineEvent,\n CartMachineTypeState,\n CartWithActions,\n} from './cart-types.js';\nimport {useCartAPIStateMachine} from './useCartAPIStateMachine.js';\nimport {CART_ID_STORAGE_KEY} from './cart-constants.js';\nimport {PartialDeep} from 'type-fest';\n\nexport const CartContext = createContext<CartWithActions | null>(null);\n\n/**\n * The `useCart` hook provides access to the cart object. It must be a descendent of a `CartProvider` component.\n */\nexport function useCart() {\n const context = useContext(CartContext);\n\n if (!context) {\n throw new Error('Expected a Cart Context, but no Cart Context was found');\n }\n\n return context;\n}\n\nexport function CartProvider({\n children,\n numCartLines,\n onCreate,\n onLineAdd,\n onLineRemove,\n onLineUpdate,\n onNoteUpdate,\n onBuyerIdentityUpdate,\n onAttributesUpdate,\n onDiscountCodesUpdate,\n onCreateComplete,\n onLineAddComplete,\n onLineRemoveComplete,\n onLineUpdateComplete,\n onNoteUpdateComplete,\n onBuyerIdentityUpdateComplete,\n onAttributesUpdateComplete,\n onDiscountCodesUpdateComplete,\n data: cart,\n cartFragment = defaultCartFragment,\n customerAccessToken,\n countryCode = 'US',\n}: {\n /** Any `ReactNode` elements. */\n children: React.ReactNode;\n /** Maximum number of cart lines to fetch. Defaults to 250 cart lines. */\n numCartLines?: number;\n /** A callback that is invoked when the process to create a cart begins, but before the cart is created in the Storefront API. */\n onCreate?: () => void;\n /** A callback that is invoked when the process to add a line item to the cart begins, but before the line item is added to the Storefront API. */\n onLineAdd?: () => void;\n /** A callback that is invoked when the process to remove a line item to the cart begins, but before the line item is removed from the Storefront API. */\n onLineRemove?: () => void;\n /** A callback that is invoked when the process to update a line item in the cart begins, but before the line item is updated in the Storefront API. */\n onLineUpdate?: () => void;\n /** A callback that is invoked when the process to add or update a note in the cart begins, but before the note is added or updated in the Storefront API. */\n onNoteUpdate?: () => void;\n /** A callback that is invoked when the process to update the buyer identity begins, but before the buyer identity is updated in the Storefront API. */\n onBuyerIdentityUpdate?: () => void;\n /** A callback that is invoked when the process to update the cart attributes begins, but before the attributes are updated in the Storefront API. */\n onAttributesUpdate?: () => void;\n /** A callback that is invoked when the process to update the cart discount codes begins, but before the discount codes are updated in the Storefront API. */\n onDiscountCodesUpdate?: () => void;\n /** A callback that is invoked when the process to create a cart completes */\n onCreateComplete?: () => void;\n /** A callback that is invoked when the process to add a line item to the cart completes */\n onLineAddComplete?: () => void;\n /** A callback that is invoked when the process to remove a line item to the cart completes */\n onLineRemoveComplete?: () => void;\n /** A callback that is invoked when the process to update a line item in the cart completes */\n onLineUpdateComplete?: () => void;\n /** A callback that is invoked when the process to add or update a note in the cart completes */\n onNoteUpdateComplete?: () => void;\n /** A callback that is invoked when the process to update the buyer identity completes */\n onBuyerIdentityUpdateComplete?: () => void;\n /** A callback that is invoked when the process to update the cart attributes completes */\n onAttributesUpdateComplete?: () => void;\n /** A callback that is invoked when the process to update the cart discount codes completes */\n onDiscountCodesUpdateComplete?: () => void;\n /** An object with fields that correspond to the Storefront API's [Cart object](https://shopify.dev/api/storefront/latest/objects/cart). */\n data?: PartialDeep<CartType, {recurseIntoArrays: true}>;\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 /** A customer access token that's accessible on the server if there's a customer login. */\n customerAccessToken?: CartBuyerIdentityInput['customerAccessToken'];\n /** The ISO country code for i18n. */\n countryCode?: CountryCode;\n}) {\n if (countryCode) countryCode = countryCode.toUpperCase() as CountryCode;\n const [prevCountryCode, setPrevCountryCode] = useState(countryCode);\n const [prevCustomerAccessToken, setPrevCustomerAccessToken] =\n useState(customerAccessToken);\n const customerOverridesCountryCode = useRef(false);\n\n if (\n prevCountryCode !== countryCode ||\n prevCustomerAccessToken !== customerAccessToken\n ) {\n setPrevCountryCode(countryCode);\n setPrevCustomerAccessToken(customerAccessToken);\n customerOverridesCountryCode.current = false;\n }\n\n const [cartState, cartSend] = useCartAPIStateMachine({\n numCartLines,\n data: cart,\n cartFragment,\n countryCode,\n onCartActionEntry(context, event) {\n try {\n switch (event.type) {\n case 'CART_CREATE':\n return onCreate?.();\n case 'CARTLINE_ADD':\n return onLineAdd?.();\n case 'CARTLINE_REMOVE':\n return onLineRemove?.();\n case 'CARTLINE_UPDATE':\n return onLineUpdate?.();\n case 'NOTE_UPDATE':\n return onNoteUpdate?.();\n case 'BUYER_IDENTITY_UPDATE':\n return onBuyerIdentityUpdate?.();\n case 'CART_ATTRIBUTES_UPDATE':\n return onAttributesUpdate?.();\n case 'DISCOUNT_CODES_UPDATE':\n return onDiscountCodesUpdate?.();\n }\n } catch (error) {\n console.error('Cart entry action failed', error);\n }\n },\n onCartActionOptimisticUI(context, event) {\n if (!context?.cart) return {cart: undefined};\n switch (event.type) {\n case 'CARTLINE_REMOVE':\n return {\n ...context,\n lastValidCart: context.cart,\n cart: {\n ...context.cart,\n lines: context?.cart?.lines?.filter(\n (line) => line?.id && !event.payload.lines.includes(line?.id)\n ),\n },\n };\n case 'CARTLINE_UPDATE':\n return {\n ...context,\n lastValidCart: context.cart,\n cart: {\n ...context.cart,\n lines: context?.cart?.lines?.map((line) => {\n const updatedLine = event.payload.lines.find(\n ({id}) => id === line?.id\n );\n\n if (updatedLine && updatedLine.quantity) {\n return {\n ...line,\n quantity: updatedLine.quantity,\n };\n }\n\n return line;\n }),\n },\n };\n }\n return {cart: context.cart ? {...context.cart} : undefined};\n },\n onCartActionComplete(context, event) {\n const cartActionEvent = event.payload.cartActionEvent;\n try {\n switch (event.type) {\n case 'RESOLVE':\n switch (cartActionEvent.type) {\n case 'CART_CREATE':\n return onCreateComplete?.();\n case 'CARTLINE_ADD':\n return onLineAddComplete?.();\n case 'CARTLINE_REMOVE':\n return onLineRemoveComplete?.();\n case 'CARTLINE_UPDATE':\n return onLineUpdateComplete?.();\n case 'NOTE_UPDATE':\n return onNoteUpdateComplete?.();\n case 'BUYER_IDENTITY_UPDATE':\n if (countryCodeNotUpdated(context, cartActionEvent)) {\n customerOverridesCountryCode.current = true;\n }\n return onBuyerIdentityUpdateComplete?.();\n case 'CART_ATTRIBUTES_UPDATE':\n return onAttributesUpdateComplete?.();\n case 'DISCOUNT_CODES_UPDATE':\n return onDiscountCodesUpdateComplete?.();\n }\n }\n } catch (error) {\n console.error('onCartActionComplete failed', error);\n }\n },\n });\n\n const cartReady = useRef(false);\n const cartCompleted = cartState.matches('cartCompleted');\n\n const countryChanged =\n (cartState.value === 'idle' ||\n cartState.value === 'error' ||\n cartState.value === 'cartCompleted') &&\n countryCode !== cartState?.context?.cart?.buyerIdentity?.countryCode &&\n !cartState.context.errors;\n\n const fetchingFromStorage = useRef(false);\n\n /**\n * Initializes cart with priority in this order:\n * 1. cart props\n * 2. localStorage cartId\n */\n useEffect(() => {\n if (!cartReady.current && !fetchingFromStorage.current) {\n if (!cart && storageAvailable('localStorage')) {\n fetchingFromStorage.current = true;\n try {\n const cartId = window.localStorage.getItem(CART_ID_STORAGE_KEY);\n if (cartId) {\n cartSend({type: 'CART_FETCH', payload: {cartId}});\n }\n } catch (error) {\n console.warn('error fetching cartId');\n console.warn(error);\n }\n }\n cartReady.current = true;\n }\n }, [cart, cartReady, cartSend]);\n\n // Update cart country code if cart and props countryCode's as different\n useEffect(() => {\n if (!countryChanged || customerOverridesCountryCode.current) return;\n cartSend({\n type: 'BUYER_IDENTITY_UPDATE',\n payload: {buyerIdentity: {countryCode, customerAccessToken}},\n });\n }, [\n countryCode,\n customerAccessToken,\n countryChanged,\n customerOverridesCountryCode,\n cartSend,\n ]);\n\n // send cart events when ready\n const onCartReadySend = useCallback(\n (cartEvent: CartMachineEvent) => {\n if (!cartReady.current) {\n return console.warn(\"Cart isn't ready yet\");\n }\n cartSend(cartEvent);\n },\n [cartSend]\n );\n\n // save cart id to local storage\n useEffect(() => {\n if (cartState?.context?.cart?.id && storageAvailable('localStorage')) {\n try {\n window.localStorage.setItem(\n CART_ID_STORAGE_KEY,\n cartState.context.cart?.id\n );\n } catch (error) {\n console.warn('Failed to save cartId to localStorage', error);\n }\n }\n }, [cartState?.context?.cart?.id]);\n\n // delete cart from local storage if cart fetched has been completed\n useEffect(() => {\n if (cartCompleted && storageAvailable('localStorage')) {\n try {\n window.localStorage.removeItem(CART_ID_STORAGE_KEY);\n } catch (error) {\n console.warn('Failed to delete cartId from localStorage', error);\n }\n }\n }, [cartCompleted]);\n\n const cartCreate = useCallback(\n (cartInput: CartInput) => {\n if (countryCode && !cartInput.buyerIdentity?.countryCode) {\n if (cartInput.buyerIdentity == null) {\n cartInput.buyerIdentity = {};\n }\n cartInput.buyerIdentity.countryCode = countryCode;\n }\n\n if (\n customerAccessToken &&\n !cartInput.buyerIdentity?.customerAccessToken\n ) {\n if (cartInput.buyerIdentity == null) {\n cartInput.buyerIdentity = {};\n }\n cartInput.buyerIdentity.customerAccessToken = customerAccessToken;\n }\n onCartReadySend({\n type: 'CART_CREATE',\n payload: cartInput,\n });\n },\n [countryCode, customerAccessToken, onCartReadySend]\n );\n\n // Delays the cart state in the context if the page is hydrating\n // preventing suspense boundary errors.\n const cartDisplayState = useDelayedStateUntilHydration(cartState);\n\n const cartContextValue = useMemo<CartWithActions>(() => {\n return {\n ...(cartDisplayState?.context?.cart ?? {lines: [], attributes: []}),\n status: transposeStatus(cartDisplayState.value),\n error: cartDisplayState?.context?.errors,\n totalQuantity: cartDisplayState?.context?.cart?.totalQuantity ?? 0,\n cartCreate,\n linesAdd(lines: CartLineInput[]) {\n if (cartDisplayState?.context?.cart?.id) {\n onCartReadySend({\n type: 'CARTLINE_ADD',\n payload: {lines},\n });\n } else {\n cartCreate({lines});\n }\n },\n linesRemove(lines: string[]) {\n onCartReadySend({\n type: 'CARTLINE_REMOVE',\n payload: {\n lines,\n },\n });\n },\n linesUpdate(lines: CartLineUpdateInput[]) {\n onCartReadySend({\n type: 'CARTLINE_UPDATE',\n payload: {\n lines,\n },\n });\n },\n noteUpdate(note: MutationCartNoteUpdateArgs['note']) {\n onCartReadySend({\n type: 'NOTE_UPDATE',\n payload: {\n note,\n },\n });\n },\n buyerIdentityUpdate(buyerIdentity: CartBuyerIdentityInput) {\n onCartReadySend({\n type: 'BUYER_IDENTITY_UPDATE',\n payload: {\n buyerIdentity,\n },\n });\n },\n cartAttributesUpdate(attributes: AttributeInput[]) {\n onCartReadySend({\n type: 'CART_ATTRIBUTES_UPDATE',\n payload: {\n attributes,\n },\n });\n },\n discountCodesUpdate(discountCodes: string[]) {\n onCartReadySend({\n type: 'DISCOUNT_CODES_UPDATE',\n payload: {\n discountCodes,\n },\n });\n },\n cartFragment,\n };\n }, [\n cartCreate,\n cartDisplayState?.context?.cart,\n cartDisplayState?.context?.errors,\n cartDisplayState.value,\n cartFragment,\n onCartReadySend,\n ]);\n\n return (\n <CartContext.Provider value={cartContextValue}>\n {children}\n </CartContext.Provider>\n );\n}\n\nfunction transposeStatus(\n status: CartMachineTypeState['value']\n): CartWithActions['status'] {\n switch (status) {\n case 'uninitialized':\n case 'initializationError':\n return 'uninitialized';\n case 'idle':\n case 'cartCompleted':\n case 'error':\n return 'idle';\n case 'cartFetching':\n return 'fetching';\n case 'cartCreating':\n return 'creating';\n case 'cartLineAdding':\n case 'cartLineRemoving':\n case 'cartLineUpdating':\n case 'noteUpdating':\n case 'buyerIdentityUpdating':\n case 'cartAttributesUpdating':\n case 'discountCodesUpdating':\n return 'updating';\n }\n}\n\n/**\n * Delays a state update until hydration finishes. Useful for preventing suspense boundaries errors when updating a context\n * @remarks this uses startTransition and waits for it to finish.\n */\nfunction useDelayedStateUntilHydration<T>(state: T) {\n const [isPending, startTransition] = useTransition();\n const [delayedState, setDelayedState] = useState(state);\n\n const firstTimePending = useRef(false);\n if (isPending) {\n firstTimePending.current = true;\n }\n\n const firstTimePendingFinished = useRef(false);\n if (!isPending && firstTimePending.current) {\n firstTimePendingFinished.current = true;\n }\n\n useEffect(() => {\n startTransition(() => {\n if (!firstTimePendingFinished.current) {\n setDelayedState(state);\n }\n });\n }, [state]);\n\n const displayState = firstTimePendingFinished.current ? state : delayedState;\n\n return displayState;\n}\n\n/** Check for storage availability funciton obtained from\n * https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API\n */\nexport function storageAvailable(type: 'localStorage' | 'sessionStorage') {\n let storage;\n try {\n storage = window[type];\n const x = '__storage_test__';\n storage.setItem(x, x);\n storage.removeItem(x);\n return true;\n } catch (e) {\n return (\n e instanceof DOMException &&\n // everything except Firefox\n (e.code === 22 ||\n // Firefox\n e.code === 1014 ||\n // test name field too, because code might not be present\n // everything except Firefox\n e.name === 'QuotaExceededError' ||\n // Firefox\n e.name === 'NS_ERROR_DOM_QUOTA_REACHED') &&\n // acknowledge QuotaExceededError only if there's something already stored\n storage &&\n storage.length !== 0\n );\n }\n}\n\nfunction countryCodeNotUpdated(\n context: CartMachineContext,\n event: BuyerIdentityUpdateEvent\n) {\n return (\n event.payload.buyerIdentity.countryCode &&\n context.cart?.buyerIdentity?.countryCode !==\n event.payload.buyerIdentity.countryCode\n );\n}\n\nexport const defaultCartFragment = `\nfragment CartFragment on Cart {\n id\n checkoutUrl\n totalQuantity\n buyerIdentity {\n countryCode\n customer {\n id\n email\n firstName\n lastName\n displayName\n }\n email\n phone\n }\n lines(first: $numCartLines) {\n edges {\n node {\n id\n quantity\n attributes {\n key\n value\n }\n cost {\n totalAmount {\n amount\n currencyCode\n }\n compareAtAmountPerQuantity {\n amount\n currencyCode\n }\n }\n merchandise {\n ... on ProductVariant {\n id\n availableForSale\n compareAtPriceV2 {\n ...MoneyFragment\n }\n priceV2 {\n ...MoneyFragment\n }\n requiresShipping\n title\n image {\n ...ImageFragment\n }\n product {\n handle\n title\n }\n selectedOptions {\n name\n value\n }\n }\n }\n }\n }\n }\n cost {\n subtotalAmount {\n ...MoneyFragment\n }\n totalAmount {\n ...MoneyFragment\n }\n totalDutyAmount {\n ...MoneyFragment\n }\n totalTaxAmount {\n ...MoneyFragment\n }\n }\n note\n attributes {\n key\n value\n }\n discountCodes {\n code\n }\n}\n\nfragment MoneyFragment on MoneyV2 {\n currencyCode\n amount\n}\nfragment ImageFragment on Image {\n id\n url\n altText\n width\n height\n}\n`;\n"],"names":["CartContext","createContext","useCart","context","useContext","Error","CartProvider","children","numCartLines","onCreate","onLineAdd","onLineRemove","onLineUpdate","onNoteUpdate","onBuyerIdentityUpdate","onAttributesUpdate","onDiscountCodesUpdate","onCreateComplete","onLineAddComplete","onLineRemoveComplete","onLineUpdateComplete","onNoteUpdateComplete","onBuyerIdentityUpdateComplete","onAttributesUpdateComplete","onDiscountCodesUpdateComplete","data","cart","cartFragment","defaultCartFragment","customerAccessToken","countryCode","toUpperCase","prevCountryCode","setPrevCountryCode","useState","prevCustomerAccessToken","setPrevCustomerAccessToken","customerOverridesCountryCode","useRef","current","cartState","cartSend","useCartAPIStateMachine","onCartActionEntry","event","type","error","onCartActionOptimisticUI","undefined","lastValidCart","lines","filter","line","id","payload","includes","map","updatedLine","find","quantity","onCartActionComplete","cartActionEvent","countryCodeNotUpdated","cartReady","cartCompleted","matches","countryChanged","value","buyerIdentity","errors","fetchingFromStorage","useEffect","storageAvailable","cartId","window","localStorage","getItem","CART_ID_STORAGE_KEY","console","warn","onCartReadySend","useCallback","cartEvent","setItem","removeItem","cartCreate","cartInput","cartDisplayState","useDelayedStateUntilHydration","cartContextValue","useMemo","attributes","status","transposeStatus","totalQuantity","linesAdd","linesRemove","linesUpdate","noteUpdate","note","buyerIdentityUpdate","cartAttributesUpdate","discountCodesUpdate","discountCodes","_jsx","state","isPending","startTransition","useTransition","delayedState","setDelayedState","firstTimePending","firstTimePendingFinished","displayState","storage","x","e","DOMException","code","name","length"],"mappings":"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"}