@shopify/hydrogen-react 0.0.0-next-5c16c78 → 0.0.0-next-ea3959b

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 (410) hide show
  1. package/dist/browser-dev/AddToCartButton.mjs +43 -40
  2. package/dist/browser-dev/AddToCartButton.mjs.map +1 -1
  3. package/dist/browser-dev/BaseButton.mjs +13 -15
  4. package/dist/browser-dev/BaseButton.mjs.map +1 -1
  5. package/dist/browser-dev/BuyNowButton.mjs +19 -17
  6. package/dist/browser-dev/BuyNowButton.mjs.map +1 -1
  7. package/dist/browser-dev/CartCheckoutButton.mjs +12 -15
  8. package/dist/browser-dev/CartCheckoutButton.mjs.map +1 -1
  9. package/dist/browser-dev/CartProvider.mjs +73 -67
  10. package/dist/browser-dev/CartProvider.mjs.map +1 -1
  11. package/dist/browser-dev/ExternalVideo.mjs +13 -11
  12. package/dist/browser-dev/ExternalVideo.mjs.map +1 -1
  13. package/dist/browser-dev/Image.mjs +41 -30
  14. package/dist/browser-dev/Image.mjs.map +1 -1
  15. package/dist/browser-dev/MediaFile.mjs +29 -21
  16. package/dist/browser-dev/MediaFile.mjs.map +1 -1
  17. package/dist/browser-dev/ModelViewer.mjs +138 -76
  18. package/dist/browser-dev/ModelViewer.mjs.map +1 -1
  19. package/dist/browser-dev/Money.mjs +12 -9
  20. package/dist/browser-dev/Money.mjs.map +1 -1
  21. package/dist/browser-dev/ProductPrice.mjs +12 -17
  22. package/dist/browser-dev/ProductPrice.mjs.map +1 -1
  23. package/dist/browser-dev/ProductProvider.mjs +102 -73
  24. package/dist/browser-dev/ProductProvider.mjs.map +1 -1
  25. package/dist/browser-dev/ShopPayButton.mjs +4 -14
  26. package/dist/browser-dev/ShopPayButton.mjs.map +1 -1
  27. package/dist/browser-dev/ShopifyProvider.mjs +20 -15
  28. package/dist/browser-dev/ShopifyProvider.mjs.map +1 -1
  29. package/dist/browser-dev/Video.mjs +30 -21
  30. package/dist/browser-dev/Video.mjs.map +1 -1
  31. package/dist/browser-dev/_virtual/index.mjs +11 -2
  32. package/dist/browser-dev/_virtual/index.mjs.map +1 -1
  33. package/dist/browser-dev/_virtual/with-selector.mjs +11 -2
  34. package/dist/browser-dev/_virtual/with-selector.mjs.map +1 -1
  35. package/dist/browser-dev/cart-hooks.mjs +31 -34
  36. package/dist/browser-dev/cart-hooks.mjs.map +1 -1
  37. package/dist/browser-dev/cart-queries.mjs +50 -20
  38. package/dist/browser-dev/cart-queries.mjs.map +1 -1
  39. package/dist/browser-dev/codegen.helpers.mjs +1 -0
  40. package/dist/browser-dev/codegen.helpers.mjs.map +1 -1
  41. package/dist/browser-dev/image-size.mjs +8 -8
  42. package/dist/browser-dev/image-size.mjs.map +1 -1
  43. package/dist/browser-dev/load-script.mjs.map +1 -1
  44. package/dist/browser-dev/node_modules/@xstate/fsm/es/index.mjs.map +1 -1
  45. package/dist/browser-dev/node_modules/@xstate/react/es/fsm.mjs +2 -2
  46. package/dist/browser-dev/node_modules/@xstate/react/es/fsm.mjs.map +1 -1
  47. package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -1
  48. package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -1
  49. package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -1
  50. package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -1
  51. package/dist/browser-dev/node_modules/use-sync-external-store/shim/index.mjs +3 -3
  52. package/dist/browser-dev/node_modules/use-sync-external-store/shim/with-selector.mjs +1 -1
  53. package/dist/browser-dev/parse-metafield.mjs +4 -5
  54. package/dist/browser-dev/parse-metafield.mjs.map +1 -1
  55. package/dist/browser-dev/storefront-client.mjs +8 -10
  56. package/dist/browser-dev/storefront-client.mjs.map +1 -1
  57. package/dist/browser-dev/useCartAPIStateMachine.mjs +111 -80
  58. package/dist/browser-dev/useCartAPIStateMachine.mjs.map +1 -1
  59. package/dist/browser-dev/useCartActions.mjs +150 -109
  60. package/dist/browser-dev/useCartActions.mjs.map +1 -1
  61. package/dist/browser-dev/useMoney.mjs +61 -36
  62. package/dist/browser-dev/useMoney.mjs.map +1 -1
  63. package/dist/browser-prod/AddToCartButton.mjs +43 -40
  64. package/dist/browser-prod/AddToCartButton.mjs.map +1 -1
  65. package/dist/browser-prod/BaseButton.mjs +13 -15
  66. package/dist/browser-prod/BaseButton.mjs.map +1 -1
  67. package/dist/browser-prod/BuyNowButton.mjs +19 -17
  68. package/dist/browser-prod/BuyNowButton.mjs.map +1 -1
  69. package/dist/browser-prod/CartCheckoutButton.mjs +12 -15
  70. package/dist/browser-prod/CartCheckoutButton.mjs.map +1 -1
  71. package/dist/browser-prod/CartProvider.mjs +73 -67
  72. package/dist/browser-prod/CartProvider.mjs.map +1 -1
  73. package/dist/browser-prod/ExternalVideo.mjs +13 -11
  74. package/dist/browser-prod/ExternalVideo.mjs.map +1 -1
  75. package/dist/browser-prod/Image.mjs +35 -28
  76. package/dist/browser-prod/Image.mjs.map +1 -1
  77. package/dist/browser-prod/MediaFile.mjs +29 -21
  78. package/dist/browser-prod/MediaFile.mjs.map +1 -1
  79. package/dist/browser-prod/ModelViewer.mjs +135 -75
  80. package/dist/browser-prod/ModelViewer.mjs.map +1 -1
  81. package/dist/browser-prod/Money.mjs +12 -9
  82. package/dist/browser-prod/Money.mjs.map +1 -1
  83. package/dist/browser-prod/ProductPrice.mjs +12 -17
  84. package/dist/browser-prod/ProductPrice.mjs.map +1 -1
  85. package/dist/browser-prod/ProductProvider.mjs +102 -73
  86. package/dist/browser-prod/ProductProvider.mjs.map +1 -1
  87. package/dist/browser-prod/ShopPayButton.mjs +4 -14
  88. package/dist/browser-prod/ShopPayButton.mjs.map +1 -1
  89. package/dist/browser-prod/ShopifyProvider.mjs +17 -14
  90. package/dist/browser-prod/ShopifyProvider.mjs.map +1 -1
  91. package/dist/browser-prod/Video.mjs +30 -21
  92. package/dist/browser-prod/Video.mjs.map +1 -1
  93. package/dist/browser-prod/_virtual/index.mjs +11 -2
  94. package/dist/browser-prod/_virtual/index.mjs.map +1 -1
  95. package/dist/browser-prod/_virtual/with-selector.mjs +11 -2
  96. package/dist/browser-prod/_virtual/with-selector.mjs.map +1 -1
  97. package/dist/browser-prod/cart-hooks.mjs +31 -34
  98. package/dist/browser-prod/cart-hooks.mjs.map +1 -1
  99. package/dist/browser-prod/cart-queries.mjs +50 -20
  100. package/dist/browser-prod/cart-queries.mjs.map +1 -1
  101. package/dist/browser-prod/codegen.helpers.mjs +1 -0
  102. package/dist/browser-prod/codegen.helpers.mjs.map +1 -1
  103. package/dist/browser-prod/image-size.mjs +8 -8
  104. package/dist/browser-prod/image-size.mjs.map +1 -1
  105. package/dist/browser-prod/load-script.mjs.map +1 -1
  106. package/dist/browser-prod/node_modules/@xstate/fsm/es/index.mjs.map +1 -1
  107. package/dist/browser-prod/node_modules/@xstate/react/es/fsm.mjs +2 -2
  108. package/dist/browser-prod/node_modules/@xstate/react/es/fsm.mjs.map +1 -1
  109. package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -1
  110. package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -1
  111. package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -1
  112. package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -1
  113. package/dist/browser-prod/node_modules/use-sync-external-store/shim/index.mjs +3 -3
  114. package/dist/browser-prod/node_modules/use-sync-external-store/shim/with-selector.mjs +1 -1
  115. package/dist/browser-prod/parse-metafield.mjs +4 -5
  116. package/dist/browser-prod/parse-metafield.mjs.map +1 -1
  117. package/dist/browser-prod/storefront-client.mjs +8 -10
  118. package/dist/browser-prod/storefront-client.mjs.map +1 -1
  119. package/dist/browser-prod/useCartAPIStateMachine.mjs +111 -80
  120. package/dist/browser-prod/useCartAPIStateMachine.mjs.map +1 -1
  121. package/dist/browser-prod/useCartActions.mjs +150 -109
  122. package/dist/browser-prod/useCartActions.mjs.map +1 -1
  123. package/dist/browser-prod/useMoney.mjs +61 -36
  124. package/dist/browser-prod/useMoney.mjs.map +1 -1
  125. package/dist/node-dev/AddToCartButton.js +44 -41
  126. package/dist/node-dev/AddToCartButton.js.map +1 -1
  127. package/dist/node-dev/AddToCartButton.mjs +43 -40
  128. package/dist/node-dev/AddToCartButton.mjs.map +1 -1
  129. package/dist/node-dev/BaseButton.js +14 -16
  130. package/dist/node-dev/BaseButton.js.map +1 -1
  131. package/dist/node-dev/BaseButton.mjs +13 -15
  132. package/dist/node-dev/BaseButton.mjs.map +1 -1
  133. package/dist/node-dev/BuyNowButton.js +20 -18
  134. package/dist/node-dev/BuyNowButton.js.map +1 -1
  135. package/dist/node-dev/BuyNowButton.mjs +19 -17
  136. package/dist/node-dev/BuyNowButton.mjs.map +1 -1
  137. package/dist/node-dev/CartCheckoutButton.js +13 -16
  138. package/dist/node-dev/CartCheckoutButton.js.map +1 -1
  139. package/dist/node-dev/CartCheckoutButton.mjs +12 -15
  140. package/dist/node-dev/CartCheckoutButton.mjs.map +1 -1
  141. package/dist/node-dev/CartProvider.js +74 -68
  142. package/dist/node-dev/CartProvider.js.map +1 -1
  143. package/dist/node-dev/CartProvider.mjs +73 -67
  144. package/dist/node-dev/CartProvider.mjs.map +1 -1
  145. package/dist/node-dev/ExternalVideo.js +14 -12
  146. package/dist/node-dev/ExternalVideo.js.map +1 -1
  147. package/dist/node-dev/ExternalVideo.mjs +13 -11
  148. package/dist/node-dev/ExternalVideo.mjs.map +1 -1
  149. package/dist/node-dev/Image.js +42 -31
  150. package/dist/node-dev/Image.js.map +1 -1
  151. package/dist/node-dev/Image.mjs +41 -30
  152. package/dist/node-dev/Image.mjs.map +1 -1
  153. package/dist/node-dev/MediaFile.js +30 -22
  154. package/dist/node-dev/MediaFile.js.map +1 -1
  155. package/dist/node-dev/MediaFile.mjs +29 -21
  156. package/dist/node-dev/MediaFile.mjs.map +1 -1
  157. package/dist/node-dev/ModelViewer.js +139 -77
  158. package/dist/node-dev/ModelViewer.js.map +1 -1
  159. package/dist/node-dev/ModelViewer.mjs +138 -76
  160. package/dist/node-dev/ModelViewer.mjs.map +1 -1
  161. package/dist/node-dev/Money.js +13 -10
  162. package/dist/node-dev/Money.js.map +1 -1
  163. package/dist/node-dev/Money.mjs +12 -9
  164. package/dist/node-dev/Money.mjs.map +1 -1
  165. package/dist/node-dev/ProductPrice.js +13 -18
  166. package/dist/node-dev/ProductPrice.js.map +1 -1
  167. package/dist/node-dev/ProductPrice.mjs +12 -17
  168. package/dist/node-dev/ProductPrice.mjs.map +1 -1
  169. package/dist/node-dev/ProductProvider.js +103 -74
  170. package/dist/node-dev/ProductProvider.js.map +1 -1
  171. package/dist/node-dev/ProductProvider.mjs +102 -73
  172. package/dist/node-dev/ProductProvider.mjs.map +1 -1
  173. package/dist/node-dev/ShopPayButton.js +5 -15
  174. package/dist/node-dev/ShopPayButton.js.map +1 -1
  175. package/dist/node-dev/ShopPayButton.mjs +4 -14
  176. package/dist/node-dev/ShopPayButton.mjs.map +1 -1
  177. package/dist/node-dev/ShopifyProvider.js +21 -16
  178. package/dist/node-dev/ShopifyProvider.js.map +1 -1
  179. package/dist/node-dev/ShopifyProvider.mjs +20 -15
  180. package/dist/node-dev/ShopifyProvider.mjs.map +1 -1
  181. package/dist/node-dev/Video.js +31 -22
  182. package/dist/node-dev/Video.js.map +1 -1
  183. package/dist/node-dev/Video.mjs +30 -21
  184. package/dist/node-dev/Video.mjs.map +1 -1
  185. package/dist/node-dev/_virtual/index.js +11 -3
  186. package/dist/node-dev/_virtual/index.js.map +1 -1
  187. package/dist/node-dev/_virtual/index.mjs +11 -2
  188. package/dist/node-dev/_virtual/index.mjs.map +1 -1
  189. package/dist/node-dev/_virtual/use-sync-external-store-shim.development.js +1 -1
  190. package/dist/node-dev/_virtual/use-sync-external-store-shim.production.min.js +1 -1
  191. package/dist/node-dev/_virtual/with-selector.development.js +1 -1
  192. package/dist/node-dev/_virtual/with-selector.js +11 -3
  193. package/dist/node-dev/_virtual/with-selector.js.map +1 -1
  194. package/dist/node-dev/_virtual/with-selector.mjs +11 -2
  195. package/dist/node-dev/_virtual/with-selector.mjs.map +1 -1
  196. package/dist/node-dev/_virtual/with-selector.production.min.js +1 -1
  197. package/dist/node-dev/cart-constants.js +1 -1
  198. package/dist/node-dev/cart-hooks.js +32 -35
  199. package/dist/node-dev/cart-hooks.js.map +1 -1
  200. package/dist/node-dev/cart-hooks.mjs +31 -34
  201. package/dist/node-dev/cart-hooks.mjs.map +1 -1
  202. package/dist/node-dev/cart-queries.js +51 -21
  203. package/dist/node-dev/cart-queries.js.map +1 -1
  204. package/dist/node-dev/cart-queries.mjs +50 -20
  205. package/dist/node-dev/cart-queries.mjs.map +1 -1
  206. package/dist/node-dev/codegen.helpers.js +2 -1
  207. package/dist/node-dev/codegen.helpers.js.map +1 -1
  208. package/dist/node-dev/codegen.helpers.mjs +1 -0
  209. package/dist/node-dev/codegen.helpers.mjs.map +1 -1
  210. package/dist/node-dev/flatten-connection.js +1 -1
  211. package/dist/node-dev/image-size.js +9 -9
  212. package/dist/node-dev/image-size.js.map +1 -1
  213. package/dist/node-dev/image-size.mjs +8 -8
  214. package/dist/node-dev/image-size.mjs.map +1 -1
  215. package/dist/node-dev/index.js +1 -1
  216. package/dist/node-dev/load-script.js +1 -1
  217. package/dist/node-dev/load-script.js.map +1 -1
  218. package/dist/node-dev/load-script.mjs.map +1 -1
  219. package/dist/node-dev/node_modules/@xstate/fsm/es/index.js +1 -1
  220. package/dist/node-dev/node_modules/@xstate/fsm/es/index.js.map +1 -1
  221. package/dist/node-dev/node_modules/@xstate/fsm/es/index.mjs.map +1 -1
  222. package/dist/node-dev/node_modules/@xstate/react/es/fsm.js +2 -2
  223. package/dist/node-dev/node_modules/@xstate/react/es/fsm.js.map +1 -1
  224. package/dist/node-dev/node_modules/@xstate/react/es/fsm.mjs +2 -2
  225. package/dist/node-dev/node_modules/@xstate/react/es/fsm.mjs.map +1 -1
  226. package/dist/node-dev/node_modules/@xstate/react/es/useConstant.js +2 -4
  227. package/dist/node-dev/node_modules/@xstate/react/es/useConstant.js.map +1 -1
  228. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +2 -4
  229. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +1 -1
  230. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -1
  231. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js +2 -4
  232. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js.map +1 -1
  233. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -1
  234. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +2 -4
  235. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +1 -1
  236. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -1
  237. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js +2 -4
  238. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js.map +1 -1
  239. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -1
  240. package/dist/node-dev/node_modules/use-sync-external-store/shim/index.js +4 -4
  241. package/dist/node-dev/node_modules/use-sync-external-store/shim/index.mjs +3 -3
  242. package/dist/node-dev/node_modules/use-sync-external-store/shim/with-selector.js +1 -1
  243. package/dist/node-dev/node_modules/use-sync-external-store/shim/with-selector.mjs +1 -1
  244. package/dist/node-dev/parse-metafield.js +5 -6
  245. package/dist/node-dev/parse-metafield.js.map +1 -1
  246. package/dist/node-dev/parse-metafield.mjs +4 -5
  247. package/dist/node-dev/parse-metafield.mjs.map +1 -1
  248. package/dist/node-dev/storefront-api-constants.js +1 -1
  249. package/dist/node-dev/storefront-client.js +9 -11
  250. package/dist/node-dev/storefront-client.js.map +1 -1
  251. package/dist/node-dev/storefront-client.mjs +8 -10
  252. package/dist/node-dev/storefront-client.mjs.map +1 -1
  253. package/dist/node-dev/useCartAPIStateMachine.js +112 -81
  254. package/dist/node-dev/useCartAPIStateMachine.js.map +1 -1
  255. package/dist/node-dev/useCartAPIStateMachine.mjs +111 -80
  256. package/dist/node-dev/useCartAPIStateMachine.mjs.map +1 -1
  257. package/dist/node-dev/useCartActions.js +151 -110
  258. package/dist/node-dev/useCartActions.js.map +1 -1
  259. package/dist/node-dev/useCartActions.mjs +150 -109
  260. package/dist/node-dev/useCartActions.mjs.map +1 -1
  261. package/dist/node-dev/useMoney.js +62 -37
  262. package/dist/node-dev/useMoney.js.map +1 -1
  263. package/dist/node-dev/useMoney.mjs +61 -36
  264. package/dist/node-dev/useMoney.mjs.map +1 -1
  265. package/dist/node-prod/AddToCartButton.js +44 -41
  266. package/dist/node-prod/AddToCartButton.js.map +1 -1
  267. package/dist/node-prod/AddToCartButton.mjs +43 -40
  268. package/dist/node-prod/AddToCartButton.mjs.map +1 -1
  269. package/dist/node-prod/BaseButton.js +14 -16
  270. package/dist/node-prod/BaseButton.js.map +1 -1
  271. package/dist/node-prod/BaseButton.mjs +13 -15
  272. package/dist/node-prod/BaseButton.mjs.map +1 -1
  273. package/dist/node-prod/BuyNowButton.js +20 -18
  274. package/dist/node-prod/BuyNowButton.js.map +1 -1
  275. package/dist/node-prod/BuyNowButton.mjs +19 -17
  276. package/dist/node-prod/BuyNowButton.mjs.map +1 -1
  277. package/dist/node-prod/CartCheckoutButton.js +13 -16
  278. package/dist/node-prod/CartCheckoutButton.js.map +1 -1
  279. package/dist/node-prod/CartCheckoutButton.mjs +12 -15
  280. package/dist/node-prod/CartCheckoutButton.mjs.map +1 -1
  281. package/dist/node-prod/CartProvider.js +74 -68
  282. package/dist/node-prod/CartProvider.js.map +1 -1
  283. package/dist/node-prod/CartProvider.mjs +73 -67
  284. package/dist/node-prod/CartProvider.mjs.map +1 -1
  285. package/dist/node-prod/ExternalVideo.js +14 -12
  286. package/dist/node-prod/ExternalVideo.js.map +1 -1
  287. package/dist/node-prod/ExternalVideo.mjs +13 -11
  288. package/dist/node-prod/ExternalVideo.mjs.map +1 -1
  289. package/dist/node-prod/Image.js +36 -29
  290. package/dist/node-prod/Image.js.map +1 -1
  291. package/dist/node-prod/Image.mjs +35 -28
  292. package/dist/node-prod/Image.mjs.map +1 -1
  293. package/dist/node-prod/MediaFile.js +30 -22
  294. package/dist/node-prod/MediaFile.js.map +1 -1
  295. package/dist/node-prod/MediaFile.mjs +29 -21
  296. package/dist/node-prod/MediaFile.mjs.map +1 -1
  297. package/dist/node-prod/ModelViewer.js +136 -76
  298. package/dist/node-prod/ModelViewer.js.map +1 -1
  299. package/dist/node-prod/ModelViewer.mjs +135 -75
  300. package/dist/node-prod/ModelViewer.mjs.map +1 -1
  301. package/dist/node-prod/Money.js +13 -10
  302. package/dist/node-prod/Money.js.map +1 -1
  303. package/dist/node-prod/Money.mjs +12 -9
  304. package/dist/node-prod/Money.mjs.map +1 -1
  305. package/dist/node-prod/ProductPrice.js +13 -18
  306. package/dist/node-prod/ProductPrice.js.map +1 -1
  307. package/dist/node-prod/ProductPrice.mjs +12 -17
  308. package/dist/node-prod/ProductPrice.mjs.map +1 -1
  309. package/dist/node-prod/ProductProvider.js +103 -74
  310. package/dist/node-prod/ProductProvider.js.map +1 -1
  311. package/dist/node-prod/ProductProvider.mjs +102 -73
  312. package/dist/node-prod/ProductProvider.mjs.map +1 -1
  313. package/dist/node-prod/ShopPayButton.js +5 -15
  314. package/dist/node-prod/ShopPayButton.js.map +1 -1
  315. package/dist/node-prod/ShopPayButton.mjs +4 -14
  316. package/dist/node-prod/ShopPayButton.mjs.map +1 -1
  317. package/dist/node-prod/ShopifyProvider.js +18 -15
  318. package/dist/node-prod/ShopifyProvider.js.map +1 -1
  319. package/dist/node-prod/ShopifyProvider.mjs +17 -14
  320. package/dist/node-prod/ShopifyProvider.mjs.map +1 -1
  321. package/dist/node-prod/Video.js +31 -22
  322. package/dist/node-prod/Video.js.map +1 -1
  323. package/dist/node-prod/Video.mjs +30 -21
  324. package/dist/node-prod/Video.mjs.map +1 -1
  325. package/dist/node-prod/_virtual/index.js +11 -3
  326. package/dist/node-prod/_virtual/index.js.map +1 -1
  327. package/dist/node-prod/_virtual/index.mjs +11 -2
  328. package/dist/node-prod/_virtual/index.mjs.map +1 -1
  329. package/dist/node-prod/_virtual/use-sync-external-store-shim.development.js +1 -1
  330. package/dist/node-prod/_virtual/use-sync-external-store-shim.production.min.js +1 -1
  331. package/dist/node-prod/_virtual/with-selector.development.js +1 -1
  332. package/dist/node-prod/_virtual/with-selector.js +11 -3
  333. package/dist/node-prod/_virtual/with-selector.js.map +1 -1
  334. package/dist/node-prod/_virtual/with-selector.mjs +11 -2
  335. package/dist/node-prod/_virtual/with-selector.mjs.map +1 -1
  336. package/dist/node-prod/_virtual/with-selector.production.min.js +1 -1
  337. package/dist/node-prod/cart-constants.js +1 -1
  338. package/dist/node-prod/cart-hooks.js +32 -35
  339. package/dist/node-prod/cart-hooks.js.map +1 -1
  340. package/dist/node-prod/cart-hooks.mjs +31 -34
  341. package/dist/node-prod/cart-hooks.mjs.map +1 -1
  342. package/dist/node-prod/cart-queries.js +51 -21
  343. package/dist/node-prod/cart-queries.js.map +1 -1
  344. package/dist/node-prod/cart-queries.mjs +50 -20
  345. package/dist/node-prod/cart-queries.mjs.map +1 -1
  346. package/dist/node-prod/codegen.helpers.js +2 -1
  347. package/dist/node-prod/codegen.helpers.js.map +1 -1
  348. package/dist/node-prod/codegen.helpers.mjs +1 -0
  349. package/dist/node-prod/codegen.helpers.mjs.map +1 -1
  350. package/dist/node-prod/flatten-connection.js +1 -1
  351. package/dist/node-prod/image-size.js +9 -9
  352. package/dist/node-prod/image-size.js.map +1 -1
  353. package/dist/node-prod/image-size.mjs +8 -8
  354. package/dist/node-prod/image-size.mjs.map +1 -1
  355. package/dist/node-prod/index.js +1 -1
  356. package/dist/node-prod/load-script.js +1 -1
  357. package/dist/node-prod/load-script.js.map +1 -1
  358. package/dist/node-prod/load-script.mjs.map +1 -1
  359. package/dist/node-prod/node_modules/@xstate/fsm/es/index.js +1 -1
  360. package/dist/node-prod/node_modules/@xstate/fsm/es/index.js.map +1 -1
  361. package/dist/node-prod/node_modules/@xstate/fsm/es/index.mjs.map +1 -1
  362. package/dist/node-prod/node_modules/@xstate/react/es/fsm.js +2 -2
  363. package/dist/node-prod/node_modules/@xstate/react/es/fsm.js.map +1 -1
  364. package/dist/node-prod/node_modules/@xstate/react/es/fsm.mjs +2 -2
  365. package/dist/node-prod/node_modules/@xstate/react/es/fsm.mjs.map +1 -1
  366. package/dist/node-prod/node_modules/@xstate/react/es/useConstant.js +2 -4
  367. package/dist/node-prod/node_modules/@xstate/react/es/useConstant.js.map +1 -1
  368. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +2 -4
  369. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +1 -1
  370. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -1
  371. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js +2 -4
  372. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js.map +1 -1
  373. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -1
  374. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +2 -4
  375. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +1 -1
  376. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -1
  377. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js +2 -4
  378. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js.map +1 -1
  379. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -1
  380. package/dist/node-prod/node_modules/use-sync-external-store/shim/index.js +4 -4
  381. package/dist/node-prod/node_modules/use-sync-external-store/shim/index.mjs +3 -3
  382. package/dist/node-prod/node_modules/use-sync-external-store/shim/with-selector.js +1 -1
  383. package/dist/node-prod/node_modules/use-sync-external-store/shim/with-selector.mjs +1 -1
  384. package/dist/node-prod/parse-metafield.js +5 -6
  385. package/dist/node-prod/parse-metafield.js.map +1 -1
  386. package/dist/node-prod/parse-metafield.mjs +4 -5
  387. package/dist/node-prod/parse-metafield.mjs.map +1 -1
  388. package/dist/node-prod/storefront-api-constants.js +1 -1
  389. package/dist/node-prod/storefront-client.js +9 -11
  390. package/dist/node-prod/storefront-client.js.map +1 -1
  391. package/dist/node-prod/storefront-client.mjs +8 -10
  392. package/dist/node-prod/storefront-client.mjs.map +1 -1
  393. package/dist/node-prod/useCartAPIStateMachine.js +112 -81
  394. package/dist/node-prod/useCartAPIStateMachine.js.map +1 -1
  395. package/dist/node-prod/useCartAPIStateMachine.mjs +111 -80
  396. package/dist/node-prod/useCartAPIStateMachine.mjs.map +1 -1
  397. package/dist/node-prod/useCartActions.js +151 -110
  398. package/dist/node-prod/useCartActions.js.map +1 -1
  399. package/dist/node-prod/useCartActions.mjs +150 -109
  400. package/dist/node-prod/useCartActions.mjs.map +1 -1
  401. package/dist/node-prod/useMoney.js +62 -37
  402. package/dist/node-prod/useMoney.js.map +1 -1
  403. package/dist/node-prod/useMoney.mjs +61 -36
  404. package/dist/node-prod/useMoney.mjs.map +1 -1
  405. package/dist/types/parse-metafield.d.ts +1 -1
  406. package/dist/umd/hydrogen-react.dev.js +994 -880
  407. package/dist/umd/hydrogen-react.dev.js.map +1 -1
  408. package/dist/umd/hydrogen-react.prod.js +16 -16
  409. package/dist/umd/hydrogen-react.prod.js.map +1 -1
  410. package/package.json +13 -13
@@ -1,10 +1,9 @@
1
+ import { jsxs, Fragment, jsx } from "react/jsx-runtime";
1
2
  import { useState, useEffect, useCallback } from "react";
2
3
  import { useCart } from "./CartProvider.mjs";
3
4
  import { useProduct } from "./ProductProvider.mjs";
4
5
  import { BaseButton } from "./BaseButton.mjs";
5
- import { jsxs, Fragment, jsx } from "react/jsx-runtime";
6
6
  function AddToCartButton(props) {
7
- var _a;
8
7
  const [addingItem, setAddingItem] = useState(false);
9
8
  const {
10
9
  variantId: explicitVariantId,
@@ -16,14 +15,9 @@ function AddToCartButton(props) {
16
15
  accessibleAddingToCartLabel,
17
16
  ...passthroughProps
18
17
  } = props;
19
- const {
20
- status,
21
- linesAdd
22
- } = useCart();
23
- const {
24
- selectedVariant
25
- } = useProduct();
26
- const variantId = (_a = explicitVariantId != null ? explicitVariantId : selectedVariant == null ? void 0 : selectedVariant.id) != null ? _a : "";
18
+ const { status, linesAdd } = useCart();
19
+ const { selectedVariant } = useProduct();
20
+ const variantId = explicitVariantId ?? (selectedVariant == null ? void 0 : selectedVariant.id) ?? "";
27
21
  const disabled = explicitVariantId === null || variantId === "" || selectedVariant === null || addingItem || passthroughProps.disabled;
28
22
  useEffect(() => {
29
23
  if (addingItem && status === "idle") {
@@ -32,37 +26,46 @@ function AddToCartButton(props) {
32
26
  }, [status, addingItem]);
33
27
  const handleAddItem = useCallback(() => {
34
28
  setAddingItem(true);
35
- linesAdd([{
36
- quantity,
37
- merchandiseId: variantId || "",
38
- attributes,
39
- sellingPlanId
40
- }]);
29
+ linesAdd([
30
+ {
31
+ quantity,
32
+ merchandiseId: variantId || "",
33
+ attributes,
34
+ sellingPlanId
35
+ }
36
+ ]);
41
37
  }, [linesAdd, quantity, variantId, attributes, sellingPlanId]);
42
- return /* @__PURE__ */ jsxs(Fragment, {
43
- children: [/* @__PURE__ */ jsx(BaseButton, {
44
- ...passthroughProps,
45
- disabled,
46
- onClick,
47
- defaultOnClick: handleAddItem,
48
- children
49
- }), accessibleAddingToCartLabel ? /* @__PURE__ */ jsx("p", {
50
- style: {
51
- position: "absolute",
52
- width: "1px",
53
- height: "1px",
54
- padding: "0",
55
- margin: "-1px",
56
- overflow: "hidden",
57
- clip: "rect(0, 0, 0, 0)",
58
- whiteSpace: "nowrap",
59
- borderWidth: "0"
60
- },
61
- role: "alert",
62
- "aria-live": "assertive",
63
- children: addingItem ? accessibleAddingToCartLabel : null
64
- }) : null]
65
- });
38
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
39
+ /* @__PURE__ */ jsx(
40
+ BaseButton,
41
+ {
42
+ ...passthroughProps,
43
+ disabled,
44
+ onClick,
45
+ defaultOnClick: handleAddItem,
46
+ children
47
+ }
48
+ ),
49
+ accessibleAddingToCartLabel ? /* @__PURE__ */ jsx(
50
+ "p",
51
+ {
52
+ style: {
53
+ position: "absolute",
54
+ width: "1px",
55
+ height: "1px",
56
+ padding: "0",
57
+ margin: "-1px",
58
+ overflow: "hidden",
59
+ clip: "rect(0, 0, 0, 0)",
60
+ whiteSpace: "nowrap",
61
+ borderWidth: "0"
62
+ },
63
+ role: "alert",
64
+ "aria-live": "assertive",
65
+ children: addingItem ? accessibleAddingToCartLabel : null
66
+ }
67
+ ) : null
68
+ ] });
66
69
  }
67
70
  export {
68
71
  AddToCartButton
@@ -1 +1 @@
1
- {"version":3,"file":"AddToCartButton.mjs","sources":["../../src/AddToCartButton.tsx"],"sourcesContent":["import {useCallback, useEffect, useState} from 'react';\n\nimport {useCart} from './CartProvider.js';\nimport {useProduct} from './ProductProvider.js';\nimport {BaseButton, BaseButtonProps} from './BaseButton.js';\n\nexport interface AddToCartButtonProps {\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 /** The ID of the variant. */\n variantId?: string | null;\n /** The item quantity. */\n quantity?: number;\n /** The text that is announced by the screen reader when the item is being added to the cart. Used for accessibility purposes only and not displayed on the page. */\n accessibleAddingToCartLabel?: string;\n /** The selling plan ID of the subscription variant */\n sellingPlanId?: string;\n}\n\n/**\n * The `AddToCartButton` component renders a button that adds an item to the cart when pressed.\n * It must be a descendent of the `CartProvider` component.\n */\nexport function AddToCartButton<AsType extends React.ElementType = 'button'>(\n props: AddToCartButtonProps & BaseButtonProps<AsType>\n) {\n const [addingItem, setAddingItem] = useState<boolean>(false);\n const {\n variantId: explicitVariantId,\n quantity = 1,\n attributes,\n sellingPlanId,\n onClick,\n children,\n accessibleAddingToCartLabel,\n ...passthroughProps\n } = props;\n const {status, linesAdd} = useCart();\n const {selectedVariant} = useProduct();\n const variantId = explicitVariantId ?? selectedVariant?.id ?? '';\n const disabled =\n explicitVariantId === null ||\n variantId === '' ||\n selectedVariant === null ||\n addingItem ||\n passthroughProps.disabled;\n\n useEffect(() => {\n if (addingItem && status === 'idle') {\n setAddingItem(false);\n }\n }, [status, addingItem]);\n\n const handleAddItem = useCallback(() => {\n setAddingItem(true);\n linesAdd([\n {\n quantity,\n merchandiseId: variantId || '',\n attributes,\n sellingPlanId,\n },\n ]);\n }, [linesAdd, quantity, variantId, attributes, sellingPlanId]);\n\n return (\n <>\n <BaseButton\n {...passthroughProps}\n disabled={disabled}\n onClick={onClick}\n defaultOnClick={handleAddItem}\n >\n {children}\n </BaseButton>\n {accessibleAddingToCartLabel ? (\n <p\n style={{\n position: 'absolute',\n width: '1px',\n height: '1px',\n padding: '0',\n margin: '-1px',\n overflow: 'hidden',\n clip: 'rect(0, 0, 0, 0)',\n whiteSpace: 'nowrap',\n borderWidth: '0',\n }}\n role=\"alert\"\n aria-live=\"assertive\"\n >\n {addingItem ? accessibleAddingToCartLabel : null}\n </p>\n ) : null}\n </>\n );\n}\n"],"names":["AddToCartButton","props","addingItem","setAddingItem","useState","variantId","explicitVariantId","quantity","attributes","sellingPlanId","onClick","children","accessibleAddingToCartLabel","passthroughProps","status","linesAdd","useCart","selectedVariant","useProduct","id","disabled","useEffect","handleAddItem","useCallback","merchandiseId","_Fragment","_jsx","position","width","height","padding","margin","overflow","clip","whiteSpace","borderWidth"],"mappings":";;;;;AA0BO,SAASA,gBACdC,OACA;;AACA,QAAM,CAACC,YAAYC,aAAa,IAAIC,SAAkB,KAAK;AACrD,QAAA;AAAA,IACJC,WAAWC;AAAAA,IACXC,WAAW;AAAA,IACXC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,OACGC;AAAAA,EACDZ,IAAAA;AACE,QAAA;AAAA,IAACa;AAAAA,IAAQC;AAAAA,MAAYC,QAAS;AAC9B,QAAA;AAAA,IAACC;AAAAA,MAAmBC,WAAY;AAChCb,QAAAA,aAAYC,qDAAqBW,mDAAiBE,OAAtCb,YAA4C;AACxDc,QAAAA,WACJd,sBAAsB,QACtBD,cAAc,MACdY,oBAAoB,QACpBf,cACAW,iBAAiBO;AAEnBC,YAAU,MAAM;AACVnB,QAAAA,cAAcY,WAAW,QAAQ;AACnCX,oBAAc,KAAK;AAAA,IACrB;AAAA,EAAA,GACC,CAACW,QAAQZ,UAAU,CAAC;AAEjBoB,QAAAA,gBAAgBC,YAAY,MAAM;AACtCpB,kBAAc,IAAI;AAClBY,aAAS,CACP;AAAA,MACER;AAAAA,MACAiB,eAAenB,aAAa;AAAA,MAC5BG;AAAAA,MACAC;AAAAA,IACD,CAAA,CACF;AAAA,EAAA,GACA,CAACM,UAAUR,UAAUF,WAAWG,YAAYC,aAAa,CAAC;AAE7D,8BACEgB,UAAA;AAAA,IAAA,UAAA,CACEC,oBAAC,YAAU;AAAA,MAAA,GACLb;AAAAA,MACJ;AAAA,MACA;AAAA,MACA,gBAAgBS;AAAAA,MAAc;AAAA,IAAA,CAGnB,GACZV,8BACCc,oBAAA,KAAA;AAAA,MACE,OAAO;AAAA,QACLC,UAAU;AAAA,QACVC,OAAO;AAAA,QACPC,QAAQ;AAAA,QACRC,SAAS;AAAA,QACTC,QAAQ;AAAA,QACRC,UAAU;AAAA,QACVC,MAAM;AAAA,QACNC,YAAY;AAAA,QACZC,aAAa;AAAA,MACf;AAAA,MACA,MAAK;AAAA,MACL,aAAU;AAAA,MAAW,UAEpBjC,aAAaU,8BAA8B;AAAA,IAAI,CAAA,IAEhD,IAAI;AAAA,EAAA,CACP;AAEP;"}
1
+ {"version":3,"file":"AddToCartButton.mjs","sources":["../../src/AddToCartButton.tsx"],"sourcesContent":["import {useCallback, useEffect, useState} from 'react';\n\nimport {useCart} from './CartProvider.js';\nimport {useProduct} from './ProductProvider.js';\nimport {BaseButton, BaseButtonProps} from './BaseButton.js';\n\nexport interface AddToCartButtonProps {\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 /** The ID of the variant. */\n variantId?: string | null;\n /** The item quantity. */\n quantity?: number;\n /** The text that is announced by the screen reader when the item is being added to the cart. Used for accessibility purposes only and not displayed on the page. */\n accessibleAddingToCartLabel?: string;\n /** The selling plan ID of the subscription variant */\n sellingPlanId?: string;\n}\n\n/**\n * The `AddToCartButton` component renders a button that adds an item to the cart when pressed.\n * It must be a descendent of the `CartProvider` component.\n */\nexport function AddToCartButton<AsType extends React.ElementType = 'button'>(\n props: AddToCartButtonProps & BaseButtonProps<AsType>\n) {\n const [addingItem, setAddingItem] = useState<boolean>(false);\n const {\n variantId: explicitVariantId,\n quantity = 1,\n attributes,\n sellingPlanId,\n onClick,\n children,\n accessibleAddingToCartLabel,\n ...passthroughProps\n } = props;\n const {status, linesAdd} = useCart();\n const {selectedVariant} = useProduct();\n const variantId = explicitVariantId ?? selectedVariant?.id ?? '';\n const disabled =\n explicitVariantId === null ||\n variantId === '' ||\n selectedVariant === null ||\n addingItem ||\n passthroughProps.disabled;\n\n useEffect(() => {\n if (addingItem && status === 'idle') {\n setAddingItem(false);\n }\n }, [status, addingItem]);\n\n const handleAddItem = useCallback(() => {\n setAddingItem(true);\n linesAdd([\n {\n quantity,\n merchandiseId: variantId || '',\n attributes,\n sellingPlanId,\n },\n ]);\n }, [linesAdd, quantity, variantId, attributes, sellingPlanId]);\n\n return (\n <>\n <BaseButton\n {...passthroughProps}\n disabled={disabled}\n onClick={onClick}\n defaultOnClick={handleAddItem}\n >\n {children}\n </BaseButton>\n {accessibleAddingToCartLabel ? (\n <p\n style={{\n position: 'absolute',\n width: '1px',\n height: '1px',\n padding: '0',\n margin: '-1px',\n overflow: 'hidden',\n clip: 'rect(0, 0, 0, 0)',\n whiteSpace: 'nowrap',\n borderWidth: '0',\n }}\n role=\"alert\"\n aria-live=\"assertive\"\n >\n {addingItem ? accessibleAddingToCartLabel : null}\n </p>\n ) : null}\n </>\n );\n}\n"],"names":[],"mappings":";;;;;AA0BO,SAAS,gBACd,OACA;AACA,QAAM,CAAC,YAAY,aAAa,IAAI,SAAkB,KAAK;AACrD,QAAA;AAAA,IACJ,WAAW;AAAA,IACX,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACD,IAAA;AACJ,QAAM,EAAC,QAAQ,SAAQ,IAAI,QAAQ;AAC7B,QAAA,EAAC,oBAAmB;AACpB,QAAA,YAAY,sBAAqB,mDAAiB,OAAM;AACxD,QAAA,WACJ,sBAAsB,QACtB,cAAc,MACd,oBAAoB,QACpB,cACA,iBAAiB;AAEnB,YAAU,MAAM;AACV,QAAA,cAAc,WAAW,QAAQ;AACnC,oBAAc,KAAK;AAAA,IACrB;AAAA,EAAA,GACC,CAAC,QAAQ,UAAU,CAAC;AAEjB,QAAA,gBAAgB,YAAY,MAAM;AACtC,kBAAc,IAAI;AACT,aAAA;AAAA,MACP;AAAA,QACE;AAAA,QACA,eAAe,aAAa;AAAA,QAC5B;AAAA,QACA;AAAA,MACF;AAAA,IAAA,CACD;AAAA,EAAA,GACA,CAAC,UAAU,UAAU,WAAW,YAAY,aAAa,CAAC;AAE7D,SAEI,qBAAA,UAAA,EAAA,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACE,GAAG;AAAA,QACJ;AAAA,QACA;AAAA,QACA,gBAAgB;AAAA,QAEf;AAAA,MAAA;AAAA,IACH;AAAA,IACC,8BACC;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAO;AAAA,UACL,UAAU;AAAA,UACV,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,SAAS;AAAA,UACT,QAAQ;AAAA,UACR,UAAU;AAAA,UACV,MAAM;AAAA,UACN,YAAY;AAAA,UACZ,aAAa;AAAA,QACf;AAAA,QACA,MAAK;AAAA,QACL,aAAU;AAAA,QAET,uBAAa,8BAA8B;AAAA,MAAA;AAAA,IAAA,IAE5C;AAAA,EACN,EAAA,CAAA;AAEJ;"}
@@ -1,5 +1,5 @@
1
- import { useCallback } from "react";
2
1
  import { jsx } from "react/jsx-runtime";
2
+ import { useCallback } from "react";
3
3
  function BaseButton(props) {
4
4
  const {
5
5
  as,
@@ -9,21 +9,19 @@ function BaseButton(props) {
9
9
  buttonRef,
10
10
  ...passthroughProps
11
11
  } = props;
12
- const handleOnClick = useCallback((event) => {
13
- if (onClick) {
14
- const clickShouldContinue = onClick(event);
15
- if (typeof clickShouldContinue === "boolean" && clickShouldContinue === false || (event == null ? void 0 : event.defaultPrevented))
16
- return;
17
- }
18
- defaultOnClick == null ? void 0 : defaultOnClick(event);
19
- }, [defaultOnClick, onClick]);
12
+ const handleOnClick = useCallback(
13
+ (event) => {
14
+ if (onClick) {
15
+ const clickShouldContinue = onClick(event);
16
+ if (typeof clickShouldContinue === "boolean" && clickShouldContinue === false || (event == null ? void 0 : event.defaultPrevented))
17
+ return;
18
+ }
19
+ defaultOnClick == null ? void 0 : defaultOnClick(event);
20
+ },
21
+ [defaultOnClick, onClick]
22
+ );
20
23
  const Component = as || "button";
21
- return /* @__PURE__ */ jsx(Component, {
22
- ref: buttonRef,
23
- onClick: handleOnClick,
24
- ...passthroughProps,
25
- children
26
- });
24
+ return /* @__PURE__ */ jsx(Component, { ref: buttonRef, onClick: handleOnClick, ...passthroughProps, children });
27
25
  }
28
26
  export {
29
27
  BaseButton
@@ -1 +1 @@
1
- {"version":3,"file":"BaseButton.mjs","sources":["../../src/BaseButton.tsx"],"sourcesContent":["import {ReactNode, Ref, useCallback} from 'react';\n\nexport interface CustomBaseButtonProps<AsType> {\n /** Provide a React element or component to render as the underlying button. Note: for accessibility compliance, almost always you should use a `button` element, or a component that renders an underlying button. */\n as?: AsType;\n /** Any ReactNode elements. */\n children: ReactNode;\n /** Click event handler. Default behaviour triggers unless prevented */\n onClick?: (\n event?: React.MouseEvent<HTMLButtonElement, MouseEvent>\n ) => void | boolean;\n /** A default onClick behavior */\n defaultOnClick?: (\n event?: React.MouseEvent<HTMLButtonElement, MouseEvent>\n ) => void | boolean;\n /** A ref to the underlying button */\n buttonRef?: Ref<HTMLButtonElement>;\n}\n\nexport type BaseButtonProps<AsType extends React.ElementType> =\n CustomBaseButtonProps<AsType> &\n Omit<\n React.ComponentPropsWithoutRef<AsType>,\n keyof CustomBaseButtonProps<AsType>\n >;\n\nexport function BaseButton<AsType extends React.ElementType = 'button'>(\n props: BaseButtonProps<AsType>\n) {\n const {\n as,\n onClick,\n defaultOnClick,\n children,\n buttonRef,\n ...passthroughProps\n } = props;\n\n const handleOnClick = useCallback(\n (event?: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n if (onClick) {\n const clickShouldContinue = onClick(event);\n if (\n (typeof clickShouldContinue === 'boolean' &&\n clickShouldContinue === false) ||\n event?.defaultPrevented\n )\n return;\n }\n\n defaultOnClick?.(event);\n },\n [defaultOnClick, onClick]\n );\n\n const Component = as || 'button';\n\n return (\n <Component ref={buttonRef} onClick={handleOnClick} {...passthroughProps}>\n {children}\n </Component>\n );\n}\n"],"names":["BaseButton","props","as","onClick","defaultOnClick","children","buttonRef","passthroughProps","handleOnClick","useCallback","event","clickShouldContinue","defaultPrevented","Component"],"mappings":";;AA0BO,SAASA,WACdC,OACA;AACM,QAAA;AAAA,IACJC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,OACGC;AAAAA,EACDN,IAAAA;AAEEO,QAAAA,gBAAgBC,YACpB,CAACC,UAA4D;AAC3D,QAAIP,SAAS;AACLQ,YAAAA,sBAAsBR,QAAQO,KAAK;AACzC,UACG,OAAOC,wBAAwB,aAC9BA,wBAAwB,UAC1BD,+BAAOE;AAEP;AAAA,IACJ;AAEAR,qDAAiBM;AAAAA,EAAK,GAExB,CAACN,gBAAgBD,OAAO,CAAC;AAG3B,QAAMU,YAAYX,MAAM;AAExB,6BACG,WAAS;AAAA,IAAC,KAAKI;AAAAA,IAAW,SAASE;AAAAA,IAAc,GAAKD;AAAAA,IAAgB;AAAA,EAAA,CAE3D;AAEhB;"}
1
+ {"version":3,"file":"BaseButton.mjs","sources":["../../src/BaseButton.tsx"],"sourcesContent":["import {ReactNode, Ref, useCallback} from 'react';\n\nexport interface CustomBaseButtonProps<AsType> {\n /** Provide a React element or component to render as the underlying button. Note: for accessibility compliance, almost always you should use a `button` element, or a component that renders an underlying button. */\n as?: AsType;\n /** Any ReactNode elements. */\n children: ReactNode;\n /** Click event handler. Default behaviour triggers unless prevented */\n onClick?: (\n event?: React.MouseEvent<HTMLButtonElement, MouseEvent>\n ) => void | boolean;\n /** A default onClick behavior */\n defaultOnClick?: (\n event?: React.MouseEvent<HTMLButtonElement, MouseEvent>\n ) => void | boolean;\n /** A ref to the underlying button */\n buttonRef?: Ref<HTMLButtonElement>;\n}\n\nexport type BaseButtonProps<AsType extends React.ElementType> =\n CustomBaseButtonProps<AsType> &\n Omit<\n React.ComponentPropsWithoutRef<AsType>,\n keyof CustomBaseButtonProps<AsType>\n >;\n\nexport function BaseButton<AsType extends React.ElementType = 'button'>(\n props: BaseButtonProps<AsType>\n) {\n const {\n as,\n onClick,\n defaultOnClick,\n children,\n buttonRef,\n ...passthroughProps\n } = props;\n\n const handleOnClick = useCallback(\n (event?: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n if (onClick) {\n const clickShouldContinue = onClick(event);\n if (\n (typeof clickShouldContinue === 'boolean' &&\n clickShouldContinue === false) ||\n event?.defaultPrevented\n )\n return;\n }\n\n defaultOnClick?.(event);\n },\n [defaultOnClick, onClick]\n );\n\n const Component = as || 'button';\n\n return (\n <Component ref={buttonRef} onClick={handleOnClick} {...passthroughProps}>\n {children}\n </Component>\n );\n}\n"],"names":[],"mappings":";;AA0BO,SAAS,WACd,OACA;AACM,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACD,IAAA;AAEJ,QAAM,gBAAgB;AAAA,IACpB,CAAC,UAA4D;AAC3D,UAAI,SAAS;AACL,cAAA,sBAAsB,QAAQ,KAAK;AACzC,YACG,OAAO,wBAAwB,aAC9B,wBAAwB,UAC1B,+BAAO;AAEP;AAAA,MACJ;AAEA,uDAAiB;AAAA,IACnB;AAAA,IACA,CAAC,gBAAgB,OAAO;AAAA,EAAA;AAG1B,QAAM,YAAY,MAAM;AAGtB,SAAA,oBAAC,aAAU,KAAK,WAAW,SAAS,eAAgB,GAAG,kBACpD,SACH,CAAA;AAEJ;"}
@@ -1,12 +1,9 @@
1
+ import { jsx } from "react/jsx-runtime";
1
2
  import { useState, useEffect, useCallback } from "react";
2
3
  import { useCart } from "./CartProvider.mjs";
3
4
  import { BaseButton } from "./BaseButton.mjs";
4
- import { jsx } from "react/jsx-runtime";
5
5
  function BuyNowButton(props) {
6
- const {
7
- cartCreate,
8
- checkoutUrl
9
- } = useCart();
6
+ const { cartCreate, checkoutUrl } = useCart();
10
7
  const [loading, setLoading] = useState(false);
11
8
  const {
12
9
  quantity,
@@ -24,20 +21,25 @@ function BuyNowButton(props) {
24
21
  const handleBuyNow = useCallback(() => {
25
22
  setLoading(true);
26
23
  cartCreate({
27
- lines: [{
28
- quantity: quantity != null ? quantity : 1,
29
- merchandiseId: variantId,
30
- attributes
31
- }]
24
+ lines: [
25
+ {
26
+ quantity: quantity ?? 1,
27
+ merchandiseId: variantId,
28
+ attributes
29
+ }
30
+ ]
32
31
  });
33
32
  }, [cartCreate, quantity, variantId, attributes]);
34
- return /* @__PURE__ */ jsx(BaseButton, {
35
- disabled: loading != null ? loading : passthroughProps.disabled,
36
- ...passthroughProps,
37
- onClick,
38
- defaultOnClick: handleBuyNow,
39
- children
40
- });
33
+ return /* @__PURE__ */ jsx(
34
+ BaseButton,
35
+ {
36
+ disabled: loading ?? passthroughProps.disabled,
37
+ ...passthroughProps,
38
+ onClick,
39
+ defaultOnClick: handleBuyNow,
40
+ children
41
+ }
42
+ );
41
43
  }
42
44
  export {
43
45
  BuyNowButton
@@ -1 +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,QAAS;AAC3C,QAAM,CAACC,SAASC,UAAU,IAAIC,SAAkB,KAAK;AAE/C,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,IACzB;AAAA,EAAA,GACC,CAACA,WAAW,CAAC;AAEVe,QAAAA,eAAeC,YAAY,MAAM;AACrCb,eAAW,IAAI;AACJ,eAAA;AAAA,MACTc,OAAO,CACL;AAAA,QACEZ,UAAUA,8BAAY;AAAA,QACtBa,eAAeZ;AAAAA,QACfE;AAAAA,MAAAA,CACD;AAAA,IAAA,CAEJ;AAAA,KACA,CAACT,YAAYM,UAAUC,WAAWE,UAAU,CAAC;AAEhD,6BACG,YAAU;AAAA,IACT,UAAUN,4BAAWQ,iBAAiBS;AAAAA,IAAS,GAC3CT;AAAAA,IACJ;AAAA,IACA,gBAAgBK;AAAAA,IAAa;AAAA,EAAA,CAGlB;AAEjB;"}
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":[],"mappings":";;;;AAiBO,SAAS,aACd,OACA;AACA,QAAM,EAAC,YAAY,YAAW,IAAI,QAAQ;AAC1C,QAAM,CAAC,SAAS,UAAU,IAAI,SAAkB,KAAK;AAE/C,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACD,IAAA;AAEJ,YAAU,MAAM;AACd,QAAI,aAAa;AACf,aAAO,SAAS,OAAO;AAAA,IACzB;AAAA,EAAA,GACC,CAAC,WAAW,CAAC;AAEV,QAAA,eAAe,YAAY,MAAM;AACrC,eAAW,IAAI;AACJ,eAAA;AAAA,MACT,OAAO;AAAA,QACL;AAAA,UACE,UAAU,YAAY;AAAA,UACtB,eAAe;AAAA,UACf;AAAA,QACF;AAAA,MACF;AAAA,IAAA,CACD;AAAA,KACA,CAAC,YAAY,UAAU,WAAW,UAAU,CAAC;AAG9C,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,UAAU,WAAW,iBAAiB;AAAA,MACrC,GAAG;AAAA,MACJ;AAAA,MACA,gBAAgB;AAAA,MAEf;AAAA,IAAA;AAAA,EAAA;AAGP;"}
@@ -1,28 +1,25 @@
1
+ import { jsx } from "react/jsx-runtime";
1
2
  import { useState, useEffect } from "react";
2
3
  import { useCart } from "./CartProvider.mjs";
3
4
  import { BaseButton } from "./BaseButton.mjs";
4
- import { jsx } from "react/jsx-runtime";
5
5
  function CartCheckoutButton(props) {
6
6
  const [requestedCheckout, setRequestedCheckout] = useState(false);
7
- const {
8
- status,
9
- checkoutUrl
10
- } = useCart();
11
- const {
12
- children,
13
- ...passthroughProps
14
- } = props;
7
+ const { status, checkoutUrl } = useCart();
8
+ const { children, ...passthroughProps } = props;
15
9
  useEffect(() => {
16
10
  if (requestedCheckout && checkoutUrl && status === "idle") {
17
11
  window.location.href = checkoutUrl;
18
12
  }
19
13
  }, [requestedCheckout, status, checkoutUrl]);
20
- return /* @__PURE__ */ jsx(BaseButton, {
21
- ...passthroughProps,
22
- disabled: requestedCheckout || passthroughProps.disabled,
23
- onClick: () => setRequestedCheckout(true),
24
- children
25
- });
14
+ return /* @__PURE__ */ jsx(
15
+ BaseButton,
16
+ {
17
+ ...passthroughProps,
18
+ disabled: requestedCheckout || passthroughProps.disabled,
19
+ onClick: () => setRequestedCheckout(true),
20
+ children
21
+ }
22
+ );
26
23
  }
27
24
  export {
28
25
  CartCheckoutButton
@@ -1 +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,oBAAoB,IAAIC,SAAS,KAAK;AAC1D,QAAA;AAAA,IAACC;AAAAA,IAAQC;AAAAA,MAAeC,QAAS;AACjC,QAAA;AAAA,IAACC;AAAAA,OAAaC;AAAAA,EAAoBR,IAAAA;AAExCS,YAAU,MAAM;AACVR,QAAAA,qBAAqBI,eAAeD,WAAW,QAAQ;AACzDM,aAAOC,SAASC,OAAOP;AAAAA,IACzB;AAAA,EACC,GAAA,CAACJ,mBAAmBG,QAAQC,WAAW,CAAC;AAE3C,6BACG,YAAU;AAAA,IAAA,GACLG;AAAAA,IACJ,UAAUP,qBAAqBO,iBAAiBK;AAAAA,IAChD,SAAS,MAAMX,qBAAqB,IAAI;AAAA,IAAE;AAAA,EAAA,CAG/B;AAEjB;"}
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":[],"mappings":";;;;AAUO,SAAS,mBACd,OAIA;AACA,QAAM,CAAC,mBAAmB,oBAAoB,IAAI,SAAS,KAAK;AAChE,QAAM,EAAC,QAAQ,YAAW,IAAI,QAAQ;AACtC,QAAM,EAAC,UAAU,GAAG,iBAAA,IAAoB;AAExC,YAAU,MAAM;AACV,QAAA,qBAAqB,eAAe,WAAW,QAAQ;AACzD,aAAO,SAAS,OAAO;AAAA,IACzB;AAAA,EACC,GAAA,CAAC,mBAAmB,QAAQ,WAAW,CAAC;AAGzC,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAG;AAAA,MACJ,UAAU,qBAAqB,iBAAiB;AAAA,MAChD,SAAS,MAAM,qBAAqB,IAAI;AAAA,MAEvC;AAAA,IAAA;AAAA,EAAA;AAGP;"}
@@ -1,8 +1,8 @@
1
+ import { jsx } from "react/jsx-runtime";
1
2
  import { createContext, useContext, useState, useRef, useEffect, useCallback, useMemo, useTransition } from "react";
2
3
  import { useCartAPIStateMachine } from "./useCartAPIStateMachine.mjs";
3
4
  import { CART_ID_STORAGE_KEY } from "./cart-constants.mjs";
4
5
  import { defaultCartFragment } from "./cart-queries.mjs";
5
- import { jsx } from "react/jsx-runtime";
6
6
  const CartContext = createContext(null);
7
7
  function useCart() {
8
8
  const context = useContext(CartContext);
@@ -78,16 +78,16 @@ function CartProvider({
78
78
  onCartActionOptimisticUI(context, event) {
79
79
  var _a2, _b2, _c2, _d2;
80
80
  if (!context.cart)
81
- return {
82
- ...context
83
- };
81
+ return { ...context };
84
82
  switch (event.type) {
85
83
  case "CARTLINE_REMOVE":
86
84
  return {
87
85
  ...context,
88
86
  cart: {
89
87
  ...context.cart,
90
- lines: (_b2 = (_a2 = context == null ? void 0 : context.cart) == null ? void 0 : _a2.lines) == null ? void 0 : _b2.filter((line) => (line == null ? void 0 : line.id) && !event.payload.lines.includes(line == null ? void 0 : line.id))
88
+ lines: (_b2 = (_a2 = context == null ? void 0 : context.cart) == null ? void 0 : _a2.lines) == null ? void 0 : _b2.filter(
89
+ (line) => (line == null ? void 0 : line.id) && !event.payload.lines.includes(line == null ? void 0 : line.id)
90
+ )
91
91
  }
92
92
  };
93
93
  case "CARTLINE_UPDATE":
@@ -96,9 +96,9 @@ function CartProvider({
96
96
  cart: {
97
97
  ...context.cart,
98
98
  lines: (_d2 = (_c2 = context == null ? void 0 : context.cart) == null ? void 0 : _c2.lines) == null ? void 0 : _d2.map((line) => {
99
- const updatedLine = event.payload.lines.find(({
100
- id
101
- }) => id === (line == null ? void 0 : line.id));
99
+ const updatedLine = event.payload.lines.find(
100
+ ({ id }) => id === (line == null ? void 0 : line.id)
101
+ );
102
102
  if (updatedLine && updatedLine.quantity) {
103
103
  return {
104
104
  ...line,
@@ -110,9 +110,7 @@ function CartProvider({
110
110
  }
111
111
  };
112
112
  }
113
- return {
114
- ...context
115
- };
113
+ return { ...context };
116
114
  },
117
115
  onCartActionComplete(context, event) {
118
116
  const cartActionEvent = event.payload.cartActionEvent;
@@ -157,12 +155,7 @@ function CartProvider({
157
155
  try {
158
156
  const cartId = window.localStorage.getItem(CART_ID_STORAGE_KEY);
159
157
  if (cartId) {
160
- cartSend({
161
- type: "CART_FETCH",
162
- payload: {
163
- cartId
164
- }
165
- });
158
+ cartSend({ type: "CART_FETCH", payload: { cartId } });
166
159
  }
167
160
  } catch (error) {
168
161
  console.warn("error fetching cartId");
@@ -177,25 +170,32 @@ function CartProvider({
177
170
  return;
178
171
  cartSend({
179
172
  type: "BUYER_IDENTITY_UPDATE",
180
- payload: {
181
- buyerIdentity: {
182
- countryCode,
183
- customerAccessToken
184
- }
185
- }
173
+ payload: { buyerIdentity: { countryCode, customerAccessToken } }
186
174
  });
187
- }, [countryCode, customerAccessToken, countryChanged, customerOverridesCountryCode, cartSend]);
188
- const onCartReadySend = useCallback((cartEvent) => {
189
- if (!cartReady.current) {
190
- return console.warn("Cart isn't ready yet");
191
- }
192
- cartSend(cartEvent);
193
- }, [cartSend]);
175
+ }, [
176
+ countryCode,
177
+ customerAccessToken,
178
+ countryChanged,
179
+ customerOverridesCountryCode,
180
+ cartSend
181
+ ]);
182
+ const onCartReadySend = useCallback(
183
+ (cartEvent) => {
184
+ if (!cartReady.current) {
185
+ return console.warn("Cart isn't ready yet");
186
+ }
187
+ cartSend(cartEvent);
188
+ },
189
+ [cartSend]
190
+ );
194
191
  useEffect(() => {
195
192
  var _a2, _b2, _c2;
196
193
  if (((_b2 = (_a2 = cartState == null ? void 0 : cartState.context) == null ? void 0 : _a2.cart) == null ? void 0 : _b2.id) && storageAvailable("localStorage")) {
197
194
  try {
198
- window.localStorage.setItem(CART_ID_STORAGE_KEY, (_c2 = cartState.context.cart) == null ? void 0 : _c2.id);
195
+ window.localStorage.setItem(
196
+ CART_ID_STORAGE_KEY,
197
+ (_c2 = cartState.context.cart) == null ? void 0 : _c2.id
198
+ );
199
199
  } catch (error) {
200
200
  console.warn("Failed to save cartId to localStorage", error);
201
201
  }
@@ -210,50 +210,46 @@ function CartProvider({
210
210
  }
211
211
  }
212
212
  }, [cartCompleted]);
213
- const cartCreate = useCallback((cartInput) => {
214
- var _a2, _b2;
215
- if (countryCode && !((_a2 = cartInput.buyerIdentity) == null ? void 0 : _a2.countryCode)) {
216
- if (cartInput.buyerIdentity == null) {
217
- cartInput.buyerIdentity = {};
213
+ const cartCreate = useCallback(
214
+ (cartInput) => {
215
+ var _a2, _b2;
216
+ if (countryCode && !((_a2 = cartInput.buyerIdentity) == null ? void 0 : _a2.countryCode)) {
217
+ if (cartInput.buyerIdentity == null) {
218
+ cartInput.buyerIdentity = {};
219
+ }
220
+ cartInput.buyerIdentity.countryCode = countryCode;
218
221
  }
219
- cartInput.buyerIdentity.countryCode = countryCode;
220
- }
221
- if (customerAccessToken && !((_b2 = cartInput.buyerIdentity) == null ? void 0 : _b2.customerAccessToken)) {
222
- if (cartInput.buyerIdentity == null) {
223
- cartInput.buyerIdentity = {};
222
+ if (customerAccessToken && !((_b2 = cartInput.buyerIdentity) == null ? void 0 : _b2.customerAccessToken)) {
223
+ if (cartInput.buyerIdentity == null) {
224
+ cartInput.buyerIdentity = {};
225
+ }
226
+ cartInput.buyerIdentity.customerAccessToken = customerAccessToken;
224
227
  }
225
- cartInput.buyerIdentity.customerAccessToken = customerAccessToken;
226
- }
227
- onCartReadySend({
228
- type: "CART_CREATE",
229
- payload: cartInput
230
- });
231
- }, [countryCode, customerAccessToken, onCartReadySend]);
228
+ onCartReadySend({
229
+ type: "CART_CREATE",
230
+ payload: cartInput
231
+ });
232
+ },
233
+ [countryCode, customerAccessToken, onCartReadySend]
234
+ );
232
235
  const cartDisplayState = useDelayedStateUntilHydration(cartState);
233
236
  const cartContextValue = useMemo(() => {
234
- var _a2, _b2, _c2, _d2, _e2, _f2;
237
+ var _a2, _b2, _c2, _d2;
235
238
  return {
236
- ...(_b2 = (_a2 = cartDisplayState == null ? void 0 : cartDisplayState.context) == null ? void 0 : _a2.cart) != null ? _b2 : {
237
- lines: [],
238
- attributes: []
239
- },
239
+ ...((_a2 = cartDisplayState == null ? void 0 : cartDisplayState.context) == null ? void 0 : _a2.cart) ?? { lines: [], attributes: [] },
240
240
  status: transposeStatus(cartDisplayState.value),
241
- error: (_c2 = cartDisplayState == null ? void 0 : cartDisplayState.context) == null ? void 0 : _c2.errors,
242
- totalQuantity: (_f2 = (_e2 = (_d2 = cartDisplayState == null ? void 0 : cartDisplayState.context) == null ? void 0 : _d2.cart) == null ? void 0 : _e2.totalQuantity) != null ? _f2 : 0,
241
+ error: (_b2 = cartDisplayState == null ? void 0 : cartDisplayState.context) == null ? void 0 : _b2.errors,
242
+ totalQuantity: ((_d2 = (_c2 = cartDisplayState == null ? void 0 : cartDisplayState.context) == null ? void 0 : _c2.cart) == null ? void 0 : _d2.totalQuantity) ?? 0,
243
243
  cartCreate,
244
244
  linesAdd(lines) {
245
245
  var _a3, _b3;
246
246
  if ((_b3 = (_a3 = cartDisplayState == null ? void 0 : cartDisplayState.context) == null ? void 0 : _a3.cart) == null ? void 0 : _b3.id) {
247
247
  onCartReadySend({
248
248
  type: "CARTLINE_ADD",
249
- payload: {
250
- lines
251
- }
249
+ payload: { lines }
252
250
  });
253
251
  } else {
254
- cartCreate({
255
- lines
256
- });
252
+ cartCreate({ lines });
257
253
  }
258
254
  },
259
255
  linesRemove(lines) {
@@ -306,11 +302,15 @@ function CartProvider({
306
302
  },
307
303
  cartFragment
308
304
  };
309
- }, [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]);
310
- return /* @__PURE__ */ jsx(CartContext.Provider, {
311
- value: cartContextValue,
312
- children
313
- });
305
+ }, [
306
+ cartCreate,
307
+ (_f = cartDisplayState == null ? void 0 : cartDisplayState.context) == null ? void 0 : _f.cart,
308
+ (_g = cartDisplayState == null ? void 0 : cartDisplayState.context) == null ? void 0 : _g.errors,
309
+ cartDisplayState.value,
310
+ cartFragment,
311
+ onCartReadySend
312
+ ]);
313
+ return /* @__PURE__ */ jsx(CartContext.Provider, { value: cartContextValue, children });
314
314
  }
315
315
  function transposeStatus(status) {
316
316
  switch (status) {
@@ -365,7 +365,13 @@ function storageAvailable(type) {
365
365
  storage.removeItem(x);
366
366
  return true;
367
367
  } catch (e) {
368
- return e instanceof DOMException && (e.code === 22 || e.code === 1014 || e.name === "QuotaExceededError" || e.name === "NS_ERROR_DOM_QUOTA_REACHED") && storage && storage.length !== 0;
368
+ return e instanceof DOMException && // everything except Firefox
369
+ (e.code === 22 || // Firefox
370
+ e.code === 1014 || // test name field too, because code might not be present
371
+ // everything except Firefox
372
+ e.name === "QuotaExceededError" || // Firefox
373
+ e.name === "NS_ERROR_DOM_QUOTA_REACHED") && // acknowledge QuotaExceededError only if there's something already stored
374
+ storage && storage.length !== 0;
369
375
  }
370
376
  }
371
377
  function countryCodeNotUpdated(context, event) {