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

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 (567) hide show
  1. package/README.md +21 -21
  2. package/dist/browser-dev/AddToCartButton.mjs +43 -40
  3. package/dist/browser-dev/AddToCartButton.mjs.map +1 -1
  4. package/dist/browser-dev/BaseButton.mjs +13 -15
  5. package/dist/browser-dev/BaseButton.mjs.map +1 -1
  6. package/dist/browser-dev/BuyNowButton.mjs +19 -17
  7. package/dist/browser-dev/BuyNowButton.mjs.map +1 -1
  8. package/dist/browser-dev/CartCheckoutButton.mjs +12 -15
  9. package/dist/browser-dev/CartCheckoutButton.mjs.map +1 -1
  10. package/dist/browser-dev/CartCost.mjs +25 -0
  11. package/dist/browser-dev/CartCost.mjs.map +1 -0
  12. package/dist/browser-dev/CartLinePrice.mjs +18 -0
  13. package/dist/browser-dev/CartLinePrice.mjs.map +1 -0
  14. package/dist/browser-dev/CartLineProvider.mjs +19 -0
  15. package/dist/browser-dev/CartLineProvider.mjs.map +1 -0
  16. package/dist/browser-dev/CartProvider.mjs +73 -67
  17. package/dist/browser-dev/CartProvider.mjs.map +1 -1
  18. package/dist/browser-dev/ExternalVideo.mjs +13 -11
  19. package/dist/browser-dev/ExternalVideo.mjs.map +1 -1
  20. package/dist/browser-dev/Image.mjs +41 -30
  21. package/dist/browser-dev/Image.mjs.map +1 -1
  22. package/dist/browser-dev/MediaFile.mjs +29 -21
  23. package/dist/browser-dev/MediaFile.mjs.map +1 -1
  24. package/dist/browser-dev/ModelViewer.mjs +138 -76
  25. package/dist/browser-dev/ModelViewer.mjs.map +1 -1
  26. package/dist/browser-dev/Money.mjs +12 -9
  27. package/dist/browser-dev/Money.mjs.map +1 -1
  28. package/dist/browser-dev/ProductPrice.mjs +12 -17
  29. package/dist/browser-dev/ProductPrice.mjs.map +1 -1
  30. package/dist/browser-dev/ProductProvider.mjs +102 -73
  31. package/dist/browser-dev/ProductProvider.mjs.map +1 -1
  32. package/dist/browser-dev/ShopPayButton.mjs +14 -24
  33. package/dist/browser-dev/ShopPayButton.mjs.map +1 -1
  34. package/dist/browser-dev/ShopifyProvider.mjs +22 -29
  35. package/dist/browser-dev/ShopifyProvider.mjs.map +1 -1
  36. package/dist/browser-dev/Video.mjs +30 -21
  37. package/dist/browser-dev/Video.mjs.map +1 -1
  38. package/dist/browser-dev/_virtual/index.mjs +11 -2
  39. package/dist/browser-dev/_virtual/index.mjs.map +1 -1
  40. package/dist/browser-dev/_virtual/with-selector.mjs +11 -2
  41. package/dist/browser-dev/_virtual/with-selector.mjs.map +1 -1
  42. package/dist/browser-dev/analytics-constants.mjs +43 -0
  43. package/dist/browser-dev/analytics-constants.mjs.map +1 -0
  44. package/dist/browser-dev/analytics-schema-custom-storefront-customer-tracking.mjs +145 -0
  45. package/dist/browser-dev/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -0
  46. package/dist/browser-dev/analytics-schema-trekkie-storefront-page-view.mjs +58 -0
  47. package/dist/browser-dev/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -0
  48. package/dist/browser-dev/analytics-utils.mjs +49 -0
  49. package/dist/browser-dev/analytics-utils.mjs.map +1 -0
  50. package/dist/browser-dev/analytics.mjs +159 -0
  51. package/dist/browser-dev/analytics.mjs.map +1 -0
  52. package/dist/browser-dev/cart-hooks.mjs +29 -34
  53. package/dist/browser-dev/cart-hooks.mjs.map +1 -1
  54. package/dist/browser-dev/cart-queries.mjs +50 -20
  55. package/dist/browser-dev/cart-queries.mjs.map +1 -1
  56. package/dist/browser-dev/codegen.helpers.mjs +1 -0
  57. package/dist/browser-dev/codegen.helpers.mjs.map +1 -1
  58. package/dist/browser-dev/cookies-utils.mjs +50 -0
  59. package/dist/browser-dev/cookies-utils.mjs.map +1 -0
  60. package/dist/browser-dev/image-size.mjs +8 -8
  61. package/dist/browser-dev/image-size.mjs.map +1 -1
  62. package/dist/browser-dev/index.mjs +20 -2
  63. package/dist/browser-dev/index.mjs.map +1 -1
  64. package/dist/browser-dev/load-script.mjs.map +1 -1
  65. package/dist/browser-dev/node_modules/@xstate/fsm/es/index.mjs.map +1 -1
  66. package/dist/browser-dev/node_modules/@xstate/react/es/fsm.mjs +2 -2
  67. package/dist/browser-dev/node_modules/@xstate/react/es/fsm.mjs.map +1 -1
  68. package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -1
  69. package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -1
  70. package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -1
  71. package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -1
  72. package/dist/browser-dev/node_modules/use-sync-external-store/shim/index.mjs +3 -3
  73. package/dist/browser-dev/node_modules/use-sync-external-store/shim/with-selector.mjs +1 -1
  74. package/dist/browser-dev/parse-metafield.mjs +4 -5
  75. package/dist/browser-dev/parse-metafield.mjs.map +1 -1
  76. package/dist/browser-dev/storefront-client.mjs +19 -20
  77. package/dist/browser-dev/storefront-client.mjs.map +1 -1
  78. package/dist/browser-dev/useCartAPIStateMachine.mjs +111 -80
  79. package/dist/browser-dev/useCartAPIStateMachine.mjs.map +1 -1
  80. package/dist/browser-dev/useCartActions.mjs +150 -109
  81. package/dist/browser-dev/useCartActions.mjs.map +1 -1
  82. package/dist/browser-dev/useMoney.mjs +62 -36
  83. package/dist/browser-dev/useMoney.mjs.map +1 -1
  84. package/dist/browser-dev/useShopifyCookies.mjs +41 -0
  85. package/dist/browser-dev/useShopifyCookies.mjs.map +1 -0
  86. package/dist/browser-prod/AddToCartButton.mjs +43 -40
  87. package/dist/browser-prod/AddToCartButton.mjs.map +1 -1
  88. package/dist/browser-prod/BaseButton.mjs +13 -15
  89. package/dist/browser-prod/BaseButton.mjs.map +1 -1
  90. package/dist/browser-prod/BuyNowButton.mjs +19 -17
  91. package/dist/browser-prod/BuyNowButton.mjs.map +1 -1
  92. package/dist/browser-prod/CartCheckoutButton.mjs +12 -15
  93. package/dist/browser-prod/CartCheckoutButton.mjs.map +1 -1
  94. package/dist/browser-prod/CartCost.mjs +25 -0
  95. package/dist/browser-prod/CartCost.mjs.map +1 -0
  96. package/dist/browser-prod/CartLinePrice.mjs +18 -0
  97. package/dist/browser-prod/CartLinePrice.mjs.map +1 -0
  98. package/dist/browser-prod/CartLineProvider.mjs +19 -0
  99. package/dist/browser-prod/CartLineProvider.mjs.map +1 -0
  100. package/dist/browser-prod/CartProvider.mjs +73 -67
  101. package/dist/browser-prod/CartProvider.mjs.map +1 -1
  102. package/dist/browser-prod/ExternalVideo.mjs +13 -11
  103. package/dist/browser-prod/ExternalVideo.mjs.map +1 -1
  104. package/dist/browser-prod/Image.mjs +35 -28
  105. package/dist/browser-prod/Image.mjs.map +1 -1
  106. package/dist/browser-prod/MediaFile.mjs +29 -21
  107. package/dist/browser-prod/MediaFile.mjs.map +1 -1
  108. package/dist/browser-prod/ModelViewer.mjs +135 -75
  109. package/dist/browser-prod/ModelViewer.mjs.map +1 -1
  110. package/dist/browser-prod/Money.mjs +12 -9
  111. package/dist/browser-prod/Money.mjs.map +1 -1
  112. package/dist/browser-prod/ProductPrice.mjs +12 -17
  113. package/dist/browser-prod/ProductPrice.mjs.map +1 -1
  114. package/dist/browser-prod/ProductProvider.mjs +102 -73
  115. package/dist/browser-prod/ProductProvider.mjs.map +1 -1
  116. package/dist/browser-prod/ShopPayButton.mjs +14 -24
  117. package/dist/browser-prod/ShopPayButton.mjs.map +1 -1
  118. package/dist/browser-prod/ShopifyProvider.mjs +22 -26
  119. package/dist/browser-prod/ShopifyProvider.mjs.map +1 -1
  120. package/dist/browser-prod/Video.mjs +30 -21
  121. package/dist/browser-prod/Video.mjs.map +1 -1
  122. package/dist/browser-prod/_virtual/index.mjs +11 -2
  123. package/dist/browser-prod/_virtual/index.mjs.map +1 -1
  124. package/dist/browser-prod/_virtual/with-selector.mjs +11 -2
  125. package/dist/browser-prod/_virtual/with-selector.mjs.map +1 -1
  126. package/dist/browser-prod/analytics-constants.mjs +43 -0
  127. package/dist/browser-prod/analytics-constants.mjs.map +1 -0
  128. package/dist/browser-prod/analytics-schema-custom-storefront-customer-tracking.mjs +145 -0
  129. package/dist/browser-prod/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -0
  130. package/dist/browser-prod/analytics-schema-trekkie-storefront-page-view.mjs +58 -0
  131. package/dist/browser-prod/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -0
  132. package/dist/browser-prod/analytics-utils.mjs +49 -0
  133. package/dist/browser-prod/analytics-utils.mjs.map +1 -0
  134. package/dist/browser-prod/analytics.mjs +158 -0
  135. package/dist/browser-prod/analytics.mjs.map +1 -0
  136. package/dist/browser-prod/cart-hooks.mjs +29 -34
  137. package/dist/browser-prod/cart-hooks.mjs.map +1 -1
  138. package/dist/browser-prod/cart-queries.mjs +50 -20
  139. package/dist/browser-prod/cart-queries.mjs.map +1 -1
  140. package/dist/browser-prod/codegen.helpers.mjs +1 -0
  141. package/dist/browser-prod/codegen.helpers.mjs.map +1 -1
  142. package/dist/browser-prod/cookies-utils.mjs +50 -0
  143. package/dist/browser-prod/cookies-utils.mjs.map +1 -0
  144. package/dist/browser-prod/image-size.mjs +8 -8
  145. package/dist/browser-prod/image-size.mjs.map +1 -1
  146. package/dist/browser-prod/index.mjs +20 -2
  147. package/dist/browser-prod/index.mjs.map +1 -1
  148. package/dist/browser-prod/load-script.mjs.map +1 -1
  149. package/dist/browser-prod/node_modules/@xstate/fsm/es/index.mjs.map +1 -1
  150. package/dist/browser-prod/node_modules/@xstate/react/es/fsm.mjs +2 -2
  151. package/dist/browser-prod/node_modules/@xstate/react/es/fsm.mjs.map +1 -1
  152. package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -1
  153. package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -1
  154. package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -1
  155. package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -1
  156. package/dist/browser-prod/node_modules/use-sync-external-store/shim/index.mjs +3 -3
  157. package/dist/browser-prod/node_modules/use-sync-external-store/shim/with-selector.mjs +1 -1
  158. package/dist/browser-prod/parse-metafield.mjs +4 -5
  159. package/dist/browser-prod/parse-metafield.mjs.map +1 -1
  160. package/dist/browser-prod/storefront-client.mjs +19 -20
  161. package/dist/browser-prod/storefront-client.mjs.map +1 -1
  162. package/dist/browser-prod/useCartAPIStateMachine.mjs +111 -80
  163. package/dist/browser-prod/useCartAPIStateMachine.mjs.map +1 -1
  164. package/dist/browser-prod/useCartActions.mjs +150 -109
  165. package/dist/browser-prod/useCartActions.mjs.map +1 -1
  166. package/dist/browser-prod/useMoney.mjs +62 -36
  167. package/dist/browser-prod/useMoney.mjs.map +1 -1
  168. package/dist/browser-prod/useShopifyCookies.mjs +41 -0
  169. package/dist/browser-prod/useShopifyCookies.mjs.map +1 -0
  170. package/dist/node-dev/AddToCartButton.js +44 -41
  171. package/dist/node-dev/AddToCartButton.js.map +1 -1
  172. package/dist/node-dev/AddToCartButton.mjs +43 -40
  173. package/dist/node-dev/AddToCartButton.mjs.map +1 -1
  174. package/dist/node-dev/BaseButton.js +14 -16
  175. package/dist/node-dev/BaseButton.js.map +1 -1
  176. package/dist/node-dev/BaseButton.mjs +13 -15
  177. package/dist/node-dev/BaseButton.mjs.map +1 -1
  178. package/dist/node-dev/BuyNowButton.js +20 -18
  179. package/dist/node-dev/BuyNowButton.js.map +1 -1
  180. package/dist/node-dev/BuyNowButton.mjs +19 -17
  181. package/dist/node-dev/BuyNowButton.mjs.map +1 -1
  182. package/dist/node-dev/CartCheckoutButton.js +13 -16
  183. package/dist/node-dev/CartCheckoutButton.js.map +1 -1
  184. package/dist/node-dev/CartCheckoutButton.mjs +12 -15
  185. package/dist/node-dev/CartCheckoutButton.mjs.map +1 -1
  186. package/dist/node-dev/CartCost.js +25 -0
  187. package/dist/node-dev/CartCost.js.map +1 -0
  188. package/dist/node-dev/CartCost.mjs +25 -0
  189. package/dist/node-dev/CartCost.mjs.map +1 -0
  190. package/dist/node-dev/CartLinePrice.js +18 -0
  191. package/dist/node-dev/CartLinePrice.js.map +1 -0
  192. package/dist/node-dev/CartLinePrice.mjs +18 -0
  193. package/dist/node-dev/CartLinePrice.mjs.map +1 -0
  194. package/dist/node-dev/CartLineProvider.js +19 -0
  195. package/dist/node-dev/CartLineProvider.js.map +1 -0
  196. package/dist/node-dev/CartLineProvider.mjs +19 -0
  197. package/dist/node-dev/CartLineProvider.mjs.map +1 -0
  198. package/dist/node-dev/CartProvider.js +74 -68
  199. package/dist/node-dev/CartProvider.js.map +1 -1
  200. package/dist/node-dev/CartProvider.mjs +73 -67
  201. package/dist/node-dev/CartProvider.mjs.map +1 -1
  202. package/dist/node-dev/ExternalVideo.js +14 -12
  203. package/dist/node-dev/ExternalVideo.js.map +1 -1
  204. package/dist/node-dev/ExternalVideo.mjs +13 -11
  205. package/dist/node-dev/ExternalVideo.mjs.map +1 -1
  206. package/dist/node-dev/Image.js +42 -31
  207. package/dist/node-dev/Image.js.map +1 -1
  208. package/dist/node-dev/Image.mjs +41 -30
  209. package/dist/node-dev/Image.mjs.map +1 -1
  210. package/dist/node-dev/MediaFile.js +30 -22
  211. package/dist/node-dev/MediaFile.js.map +1 -1
  212. package/dist/node-dev/MediaFile.mjs +29 -21
  213. package/dist/node-dev/MediaFile.mjs.map +1 -1
  214. package/dist/node-dev/ModelViewer.js +139 -77
  215. package/dist/node-dev/ModelViewer.js.map +1 -1
  216. package/dist/node-dev/ModelViewer.mjs +138 -76
  217. package/dist/node-dev/ModelViewer.mjs.map +1 -1
  218. package/dist/node-dev/Money.js +13 -10
  219. package/dist/node-dev/Money.js.map +1 -1
  220. package/dist/node-dev/Money.mjs +12 -9
  221. package/dist/node-dev/Money.mjs.map +1 -1
  222. package/dist/node-dev/ProductPrice.js +13 -18
  223. package/dist/node-dev/ProductPrice.js.map +1 -1
  224. package/dist/node-dev/ProductPrice.mjs +12 -17
  225. package/dist/node-dev/ProductPrice.mjs.map +1 -1
  226. package/dist/node-dev/ProductProvider.js +103 -74
  227. package/dist/node-dev/ProductProvider.js.map +1 -1
  228. package/dist/node-dev/ProductProvider.mjs +102 -73
  229. package/dist/node-dev/ProductProvider.mjs.map +1 -1
  230. package/dist/node-dev/ShopPayButton.js +14 -24
  231. package/dist/node-dev/ShopPayButton.js.map +1 -1
  232. package/dist/node-dev/ShopPayButton.mjs +14 -24
  233. package/dist/node-dev/ShopPayButton.mjs.map +1 -1
  234. package/dist/node-dev/ShopifyProvider.js +23 -30
  235. package/dist/node-dev/ShopifyProvider.js.map +1 -1
  236. package/dist/node-dev/ShopifyProvider.mjs +22 -29
  237. package/dist/node-dev/ShopifyProvider.mjs.map +1 -1
  238. package/dist/node-dev/Video.js +31 -22
  239. package/dist/node-dev/Video.js.map +1 -1
  240. package/dist/node-dev/Video.mjs +30 -21
  241. package/dist/node-dev/Video.mjs.map +1 -1
  242. package/dist/node-dev/_virtual/index.js +11 -3
  243. package/dist/node-dev/_virtual/index.js.map +1 -1
  244. package/dist/node-dev/_virtual/index.mjs +11 -2
  245. package/dist/node-dev/_virtual/index.mjs.map +1 -1
  246. package/dist/node-dev/_virtual/use-sync-external-store-shim.development.js +1 -1
  247. package/dist/node-dev/_virtual/use-sync-external-store-shim.production.min.js +1 -1
  248. package/dist/node-dev/_virtual/with-selector.development.js +1 -1
  249. package/dist/node-dev/_virtual/with-selector.js +11 -3
  250. package/dist/node-dev/_virtual/with-selector.js.map +1 -1
  251. package/dist/node-dev/_virtual/with-selector.mjs +11 -2
  252. package/dist/node-dev/_virtual/with-selector.mjs.map +1 -1
  253. package/dist/node-dev/_virtual/with-selector.production.min.js +1 -1
  254. package/dist/node-dev/analytics-constants.js +43 -0
  255. package/dist/node-dev/analytics-constants.js.map +1 -0
  256. package/dist/node-dev/analytics-constants.mjs +43 -0
  257. package/dist/node-dev/analytics-constants.mjs.map +1 -0
  258. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.js +145 -0
  259. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.js.map +1 -0
  260. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.mjs +145 -0
  261. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -0
  262. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.js +58 -0
  263. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.js.map +1 -0
  264. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.mjs +58 -0
  265. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -0
  266. package/dist/node-dev/analytics-utils.js +49 -0
  267. package/dist/node-dev/analytics-utils.js.map +1 -0
  268. package/dist/node-dev/analytics-utils.mjs +49 -0
  269. package/dist/node-dev/analytics-utils.mjs.map +1 -0
  270. package/dist/node-dev/analytics.js +159 -0
  271. package/dist/node-dev/analytics.js.map +1 -0
  272. package/dist/node-dev/analytics.mjs +159 -0
  273. package/dist/node-dev/analytics.mjs.map +1 -0
  274. package/dist/node-dev/cart-constants.js +1 -1
  275. package/dist/node-dev/cart-hooks.js +29 -34
  276. package/dist/node-dev/cart-hooks.js.map +1 -1
  277. package/dist/node-dev/cart-hooks.mjs +29 -34
  278. package/dist/node-dev/cart-hooks.mjs.map +1 -1
  279. package/dist/node-dev/cart-queries.js +51 -21
  280. package/dist/node-dev/cart-queries.js.map +1 -1
  281. package/dist/node-dev/cart-queries.mjs +50 -20
  282. package/dist/node-dev/cart-queries.mjs.map +1 -1
  283. package/dist/node-dev/codegen.helpers.js +2 -1
  284. package/dist/node-dev/codegen.helpers.js.map +1 -1
  285. package/dist/node-dev/codegen.helpers.mjs +1 -0
  286. package/dist/node-dev/codegen.helpers.mjs.map +1 -1
  287. package/dist/node-dev/cookies-utils.js +50 -0
  288. package/dist/node-dev/cookies-utils.js.map +1 -0
  289. package/dist/node-dev/cookies-utils.mjs +50 -0
  290. package/dist/node-dev/cookies-utils.mjs.map +1 -0
  291. package/dist/node-dev/flatten-connection.js +1 -1
  292. package/dist/node-dev/image-size.js +9 -9
  293. package/dist/node-dev/image-size.js.map +1 -1
  294. package/dist/node-dev/image-size.mjs +8 -8
  295. package/dist/node-dev/image-size.mjs.map +1 -1
  296. package/dist/node-dev/index.js +21 -3
  297. package/dist/node-dev/index.js.map +1 -1
  298. package/dist/node-dev/index.mjs +20 -2
  299. package/dist/node-dev/index.mjs.map +1 -1
  300. package/dist/node-dev/load-script.js +1 -1
  301. package/dist/node-dev/load-script.js.map +1 -1
  302. package/dist/node-dev/load-script.mjs.map +1 -1
  303. package/dist/node-dev/node_modules/@xstate/fsm/es/index.js +1 -1
  304. package/dist/node-dev/node_modules/@xstate/fsm/es/index.js.map +1 -1
  305. package/dist/node-dev/node_modules/@xstate/fsm/es/index.mjs.map +1 -1
  306. package/dist/node-dev/node_modules/@xstate/react/es/fsm.js +2 -2
  307. package/dist/node-dev/node_modules/@xstate/react/es/fsm.js.map +1 -1
  308. package/dist/node-dev/node_modules/@xstate/react/es/fsm.mjs +2 -2
  309. package/dist/node-dev/node_modules/@xstate/react/es/fsm.mjs.map +1 -1
  310. package/dist/node-dev/node_modules/@xstate/react/es/useConstant.js +2 -4
  311. package/dist/node-dev/node_modules/@xstate/react/es/useConstant.js.map +1 -1
  312. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +2 -4
  313. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +1 -1
  314. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -1
  315. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js +2 -4
  316. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js.map +1 -1
  317. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -1
  318. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +2 -4
  319. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +1 -1
  320. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -1
  321. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js +2 -4
  322. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js.map +1 -1
  323. package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -1
  324. package/dist/node-dev/node_modules/use-sync-external-store/shim/index.js +4 -4
  325. package/dist/node-dev/node_modules/use-sync-external-store/shim/index.mjs +3 -3
  326. package/dist/node-dev/node_modules/use-sync-external-store/shim/with-selector.js +1 -1
  327. package/dist/node-dev/node_modules/use-sync-external-store/shim/with-selector.mjs +1 -1
  328. package/dist/node-dev/parse-metafield.js +5 -6
  329. package/dist/node-dev/parse-metafield.js.map +1 -1
  330. package/dist/node-dev/parse-metafield.mjs +4 -5
  331. package/dist/node-dev/parse-metafield.mjs.map +1 -1
  332. package/dist/node-dev/storefront-api-constants.js +1 -1
  333. package/dist/node-dev/storefront-client.js +20 -21
  334. package/dist/node-dev/storefront-client.js.map +1 -1
  335. package/dist/node-dev/storefront-client.mjs +19 -20
  336. package/dist/node-dev/storefront-client.mjs.map +1 -1
  337. package/dist/node-dev/useCartAPIStateMachine.js +112 -81
  338. package/dist/node-dev/useCartAPIStateMachine.js.map +1 -1
  339. package/dist/node-dev/useCartAPIStateMachine.mjs +111 -80
  340. package/dist/node-dev/useCartAPIStateMachine.mjs.map +1 -1
  341. package/dist/node-dev/useCartActions.js +151 -110
  342. package/dist/node-dev/useCartActions.js.map +1 -1
  343. package/dist/node-dev/useCartActions.mjs +150 -109
  344. package/dist/node-dev/useCartActions.mjs.map +1 -1
  345. package/dist/node-dev/useMoney.js +63 -37
  346. package/dist/node-dev/useMoney.js.map +1 -1
  347. package/dist/node-dev/useMoney.mjs +62 -36
  348. package/dist/node-dev/useMoney.mjs.map +1 -1
  349. package/dist/node-dev/useShopifyCookies.js +41 -0
  350. package/dist/node-dev/useShopifyCookies.js.map +1 -0
  351. package/dist/node-dev/useShopifyCookies.mjs +41 -0
  352. package/dist/node-dev/useShopifyCookies.mjs.map +1 -0
  353. package/dist/node-prod/AddToCartButton.js +44 -41
  354. package/dist/node-prod/AddToCartButton.js.map +1 -1
  355. package/dist/node-prod/AddToCartButton.mjs +43 -40
  356. package/dist/node-prod/AddToCartButton.mjs.map +1 -1
  357. package/dist/node-prod/BaseButton.js +14 -16
  358. package/dist/node-prod/BaseButton.js.map +1 -1
  359. package/dist/node-prod/BaseButton.mjs +13 -15
  360. package/dist/node-prod/BaseButton.mjs.map +1 -1
  361. package/dist/node-prod/BuyNowButton.js +20 -18
  362. package/dist/node-prod/BuyNowButton.js.map +1 -1
  363. package/dist/node-prod/BuyNowButton.mjs +19 -17
  364. package/dist/node-prod/BuyNowButton.mjs.map +1 -1
  365. package/dist/node-prod/CartCheckoutButton.js +13 -16
  366. package/dist/node-prod/CartCheckoutButton.js.map +1 -1
  367. package/dist/node-prod/CartCheckoutButton.mjs +12 -15
  368. package/dist/node-prod/CartCheckoutButton.mjs.map +1 -1
  369. package/dist/node-prod/CartCost.js +25 -0
  370. package/dist/node-prod/CartCost.js.map +1 -0
  371. package/dist/node-prod/CartCost.mjs +25 -0
  372. package/dist/node-prod/CartCost.mjs.map +1 -0
  373. package/dist/node-prod/CartLinePrice.js +18 -0
  374. package/dist/node-prod/CartLinePrice.js.map +1 -0
  375. package/dist/node-prod/CartLinePrice.mjs +18 -0
  376. package/dist/node-prod/CartLinePrice.mjs.map +1 -0
  377. package/dist/node-prod/CartLineProvider.js +19 -0
  378. package/dist/node-prod/CartLineProvider.js.map +1 -0
  379. package/dist/node-prod/CartLineProvider.mjs +19 -0
  380. package/dist/node-prod/CartLineProvider.mjs.map +1 -0
  381. package/dist/node-prod/CartProvider.js +74 -68
  382. package/dist/node-prod/CartProvider.js.map +1 -1
  383. package/dist/node-prod/CartProvider.mjs +73 -67
  384. package/dist/node-prod/CartProvider.mjs.map +1 -1
  385. package/dist/node-prod/ExternalVideo.js +14 -12
  386. package/dist/node-prod/ExternalVideo.js.map +1 -1
  387. package/dist/node-prod/ExternalVideo.mjs +13 -11
  388. package/dist/node-prod/ExternalVideo.mjs.map +1 -1
  389. package/dist/node-prod/Image.js +36 -29
  390. package/dist/node-prod/Image.js.map +1 -1
  391. package/dist/node-prod/Image.mjs +35 -28
  392. package/dist/node-prod/Image.mjs.map +1 -1
  393. package/dist/node-prod/MediaFile.js +30 -22
  394. package/dist/node-prod/MediaFile.js.map +1 -1
  395. package/dist/node-prod/MediaFile.mjs +29 -21
  396. package/dist/node-prod/MediaFile.mjs.map +1 -1
  397. package/dist/node-prod/ModelViewer.js +136 -76
  398. package/dist/node-prod/ModelViewer.js.map +1 -1
  399. package/dist/node-prod/ModelViewer.mjs +135 -75
  400. package/dist/node-prod/ModelViewer.mjs.map +1 -1
  401. package/dist/node-prod/Money.js +13 -10
  402. package/dist/node-prod/Money.js.map +1 -1
  403. package/dist/node-prod/Money.mjs +12 -9
  404. package/dist/node-prod/Money.mjs.map +1 -1
  405. package/dist/node-prod/ProductPrice.js +13 -18
  406. package/dist/node-prod/ProductPrice.js.map +1 -1
  407. package/dist/node-prod/ProductPrice.mjs +12 -17
  408. package/dist/node-prod/ProductPrice.mjs.map +1 -1
  409. package/dist/node-prod/ProductProvider.js +103 -74
  410. package/dist/node-prod/ProductProvider.js.map +1 -1
  411. package/dist/node-prod/ProductProvider.mjs +102 -73
  412. package/dist/node-prod/ProductProvider.mjs.map +1 -1
  413. package/dist/node-prod/ShopPayButton.js +14 -24
  414. package/dist/node-prod/ShopPayButton.js.map +1 -1
  415. package/dist/node-prod/ShopPayButton.mjs +14 -24
  416. package/dist/node-prod/ShopPayButton.mjs.map +1 -1
  417. package/dist/node-prod/ShopifyProvider.js +23 -27
  418. package/dist/node-prod/ShopifyProvider.js.map +1 -1
  419. package/dist/node-prod/ShopifyProvider.mjs +22 -26
  420. package/dist/node-prod/ShopifyProvider.mjs.map +1 -1
  421. package/dist/node-prod/Video.js +31 -22
  422. package/dist/node-prod/Video.js.map +1 -1
  423. package/dist/node-prod/Video.mjs +30 -21
  424. package/dist/node-prod/Video.mjs.map +1 -1
  425. package/dist/node-prod/_virtual/index.js +11 -3
  426. package/dist/node-prod/_virtual/index.js.map +1 -1
  427. package/dist/node-prod/_virtual/index.mjs +11 -2
  428. package/dist/node-prod/_virtual/index.mjs.map +1 -1
  429. package/dist/node-prod/_virtual/use-sync-external-store-shim.development.js +1 -1
  430. package/dist/node-prod/_virtual/use-sync-external-store-shim.production.min.js +1 -1
  431. package/dist/node-prod/_virtual/with-selector.development.js +1 -1
  432. package/dist/node-prod/_virtual/with-selector.js +11 -3
  433. package/dist/node-prod/_virtual/with-selector.js.map +1 -1
  434. package/dist/node-prod/_virtual/with-selector.mjs +11 -2
  435. package/dist/node-prod/_virtual/with-selector.mjs.map +1 -1
  436. package/dist/node-prod/_virtual/with-selector.production.min.js +1 -1
  437. package/dist/node-prod/analytics-constants.js +43 -0
  438. package/dist/node-prod/analytics-constants.js.map +1 -0
  439. package/dist/node-prod/analytics-constants.mjs +43 -0
  440. package/dist/node-prod/analytics-constants.mjs.map +1 -0
  441. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.js +145 -0
  442. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.js.map +1 -0
  443. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.mjs +145 -0
  444. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -0
  445. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.js +58 -0
  446. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.js.map +1 -0
  447. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.mjs +58 -0
  448. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -0
  449. package/dist/node-prod/analytics-utils.js +49 -0
  450. package/dist/node-prod/analytics-utils.js.map +1 -0
  451. package/dist/node-prod/analytics-utils.mjs +49 -0
  452. package/dist/node-prod/analytics-utils.mjs.map +1 -0
  453. package/dist/node-prod/analytics.js +158 -0
  454. package/dist/node-prod/analytics.js.map +1 -0
  455. package/dist/node-prod/analytics.mjs +158 -0
  456. package/dist/node-prod/analytics.mjs.map +1 -0
  457. package/dist/node-prod/cart-constants.js +1 -1
  458. package/dist/node-prod/cart-hooks.js +29 -34
  459. package/dist/node-prod/cart-hooks.js.map +1 -1
  460. package/dist/node-prod/cart-hooks.mjs +29 -34
  461. package/dist/node-prod/cart-hooks.mjs.map +1 -1
  462. package/dist/node-prod/cart-queries.js +51 -21
  463. package/dist/node-prod/cart-queries.js.map +1 -1
  464. package/dist/node-prod/cart-queries.mjs +50 -20
  465. package/dist/node-prod/cart-queries.mjs.map +1 -1
  466. package/dist/node-prod/codegen.helpers.js +2 -1
  467. package/dist/node-prod/codegen.helpers.js.map +1 -1
  468. package/dist/node-prod/codegen.helpers.mjs +1 -0
  469. package/dist/node-prod/codegen.helpers.mjs.map +1 -1
  470. package/dist/node-prod/cookies-utils.js +50 -0
  471. package/dist/node-prod/cookies-utils.js.map +1 -0
  472. package/dist/node-prod/cookies-utils.mjs +50 -0
  473. package/dist/node-prod/cookies-utils.mjs.map +1 -0
  474. package/dist/node-prod/flatten-connection.js +1 -1
  475. package/dist/node-prod/image-size.js +9 -9
  476. package/dist/node-prod/image-size.js.map +1 -1
  477. package/dist/node-prod/image-size.mjs +8 -8
  478. package/dist/node-prod/image-size.mjs.map +1 -1
  479. package/dist/node-prod/index.js +21 -3
  480. package/dist/node-prod/index.js.map +1 -1
  481. package/dist/node-prod/index.mjs +20 -2
  482. package/dist/node-prod/index.mjs.map +1 -1
  483. package/dist/node-prod/load-script.js +1 -1
  484. package/dist/node-prod/load-script.js.map +1 -1
  485. package/dist/node-prod/load-script.mjs.map +1 -1
  486. package/dist/node-prod/node_modules/@xstate/fsm/es/index.js +1 -1
  487. package/dist/node-prod/node_modules/@xstate/fsm/es/index.js.map +1 -1
  488. package/dist/node-prod/node_modules/@xstate/fsm/es/index.mjs.map +1 -1
  489. package/dist/node-prod/node_modules/@xstate/react/es/fsm.js +2 -2
  490. package/dist/node-prod/node_modules/@xstate/react/es/fsm.js.map +1 -1
  491. package/dist/node-prod/node_modules/@xstate/react/es/fsm.mjs +2 -2
  492. package/dist/node-prod/node_modules/@xstate/react/es/fsm.mjs.map +1 -1
  493. package/dist/node-prod/node_modules/@xstate/react/es/useConstant.js +2 -4
  494. package/dist/node-prod/node_modules/@xstate/react/es/useConstant.js.map +1 -1
  495. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +2 -4
  496. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +1 -1
  497. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -1
  498. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js +2 -4
  499. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js.map +1 -1
  500. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -1
  501. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +2 -4
  502. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +1 -1
  503. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -1
  504. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js +2 -4
  505. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js.map +1 -1
  506. package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -1
  507. package/dist/node-prod/node_modules/use-sync-external-store/shim/index.js +4 -4
  508. package/dist/node-prod/node_modules/use-sync-external-store/shim/index.mjs +3 -3
  509. package/dist/node-prod/node_modules/use-sync-external-store/shim/with-selector.js +1 -1
  510. package/dist/node-prod/node_modules/use-sync-external-store/shim/with-selector.mjs +1 -1
  511. package/dist/node-prod/parse-metafield.js +5 -6
  512. package/dist/node-prod/parse-metafield.js.map +1 -1
  513. package/dist/node-prod/parse-metafield.mjs +4 -5
  514. package/dist/node-prod/parse-metafield.mjs.map +1 -1
  515. package/dist/node-prod/storefront-api-constants.js +1 -1
  516. package/dist/node-prod/storefront-client.js +20 -21
  517. package/dist/node-prod/storefront-client.js.map +1 -1
  518. package/dist/node-prod/storefront-client.mjs +19 -20
  519. package/dist/node-prod/storefront-client.mjs.map +1 -1
  520. package/dist/node-prod/useCartAPIStateMachine.js +112 -81
  521. package/dist/node-prod/useCartAPIStateMachine.js.map +1 -1
  522. package/dist/node-prod/useCartAPIStateMachine.mjs +111 -80
  523. package/dist/node-prod/useCartAPIStateMachine.mjs.map +1 -1
  524. package/dist/node-prod/useCartActions.js +151 -110
  525. package/dist/node-prod/useCartActions.js.map +1 -1
  526. package/dist/node-prod/useCartActions.mjs +150 -109
  527. package/dist/node-prod/useCartActions.mjs.map +1 -1
  528. package/dist/node-prod/useMoney.js +63 -37
  529. package/dist/node-prod/useMoney.js.map +1 -1
  530. package/dist/node-prod/useMoney.mjs +62 -36
  531. package/dist/node-prod/useMoney.mjs.map +1 -1
  532. package/dist/node-prod/useShopifyCookies.js +41 -0
  533. package/dist/node-prod/useShopifyCookies.js.map +1 -0
  534. package/dist/node-prod/useShopifyCookies.mjs +41 -0
  535. package/dist/node-prod/useShopifyCookies.mjs.map +1 -0
  536. package/dist/types/AddToCartButton.d.ts +3 -2
  537. package/dist/types/BuyNowButton.d.ts +7 -3
  538. package/dist/types/CartCheckoutButton.d.ts +6 -5
  539. package/dist/types/CartCost.d.ts +7 -5
  540. package/dist/types/CartLinePrice.d.ts +4 -4
  541. package/dist/types/CartLineProvider.d.ts +8 -6
  542. package/dist/types/CartProvider.d.ts +12 -2
  543. package/dist/types/ExternalVideo.d.ts +1 -2
  544. package/dist/types/Image.d.ts +5 -3
  545. package/dist/types/MediaFile.d.ts +12 -11
  546. package/dist/types/ModelViewer.d.ts +2 -2
  547. package/dist/types/ProductPrice.d.ts +1 -1
  548. package/dist/types/ProductProvider.d.ts +1 -1
  549. package/dist/types/ShopPayButton.d.ts +10 -10
  550. package/dist/types/ShopifyProvider.d.ts +35 -39
  551. package/dist/types/analytics-constants.d.ts +48 -0
  552. package/dist/types/analytics-schema-custom-storefront-customer-tracking.d.ts +3 -0
  553. package/dist/types/analytics-schema-trekkie-storefront-page-view.d.ts +2 -0
  554. package/dist/types/analytics-types.d.ts +108 -0
  555. package/dist/types/analytics-utils.d.ts +36 -0
  556. package/dist/types/analytics.d.ts +9 -0
  557. package/dist/types/cookies-utils.d.ts +4 -0
  558. package/dist/types/index.d.cts +11 -3
  559. package/dist/types/index.d.ts +11 -3
  560. package/dist/types/parse-metafield.d.ts +2 -4
  561. package/dist/types/storefront-client.d.ts +14 -14
  562. package/dist/types/useShopifyCookies.d.ts +14 -0
  563. package/dist/umd/hydrogen-react.dev.js +1625 -979
  564. package/dist/umd/hydrogen-react.dev.js.map +1 -1
  565. package/dist/umd/hydrogen-react.prod.js +18 -16
  566. package/dist/umd/hydrogen-react.prod.js.map +1 -1
  567. package/package.json +24 -19
@@ -1,4 +1,4 @@
1
- (function(L,h){typeof exports=="object"&&typeof module<"u"?h(exports,require("react")):typeof define=="function"&&define.amd?define(["exports","react"],h):(L=typeof globalThis<"u"?globalThis:L||self,h(L.hydrogenreact={},L.React))})(this,function(L,h){"use strict";const _t=e=>e&&typeof e=="object"&&"default"in e?e:{default:e};function gt(e){if(e&&e.__esModule)return e;const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const a=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const D=_t(h),Se=gt(h);/*! *****************************************************************************
1
+ (function(A,s){typeof exports=="object"&&typeof module<"u"?s(exports,require("react")):typeof define=="function"&&define.amd?define(["exports","react"],s):(A=typeof globalThis<"u"?globalThis:A||self,s(A.storefrontkitreact={},A.React))})(this,function(A,s){"use strict";function At(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:()=>e[r]})}}return t.default=e,Object.freeze(t)}const Oe=At(s);/*! *****************************************************************************
2
2
  Copyright (c) Microsoft Corporation.
3
3
 
4
4
  Permission to use, copy, modify, and/or distribute this software for any
@@ -11,7 +11,7 @@
11
11
  LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
12
12
  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
13
13
  PERFORMANCE OF THIS SOFTWARE.
14
- ***************************************************************************** */function pe(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var a,o,i=r.call(e),u=[];try{for(;(t===void 0||t-- >0)&&!(a=i.next()).done;)u.push(a.value)}catch(n){o={error:n}}finally{try{a&&!a.done&&(r=i.return)&&r.call(i)}finally{if(o)throw o.error}}return u}var Y;(function(e){e[e.NotStarted=0]="NotStarted",e[e.Running=1]="Running",e[e.Stopped=2]="Stopped"})(Y||(Y={}));var Ce={type:"xstate.init"};function se(e){return e===void 0?[]:[].concat(e)}function Z(e){return{type:"xstate.assign",assignment:e}}function be(e,t){return typeof(e=typeof e=="string"&&t&&t[e]?t[e]:e)=="string"?{type:e}:typeof e=="function"?{type:e.name,exec:e}:e}function re(e){return function(t){return e===t}}function ve(e){return typeof e=="string"?{type:e}:e}function Te(e,t){return{value:e,context:t,actions:[],changed:!1,matches:re(e)}}function Ae(e,t,r){var a=t,o=!1;return[e.filter(function(i){if(i.type==="xstate.assign"){o=!0;var u=Object.assign({},a);return typeof i.assignment=="function"?u=i.assignment(a,r):Object.keys(i.assignment).forEach(function(n){u[n]=typeof i.assignment[n]=="function"?i.assignment[n](a,r):i.assignment[n]}),a=u,!1}return!0}),a,o]}function we(e,t){t===void 0&&(t={});var r=pe(Ae(se(e.states[e.initial].entry).map(function(u){return be(u,t.actions)}),e.context,Ce),2),a=r[0],o=r[1],i={config:e,_options:t,initialState:{value:e.initial,actions:a,context:o,matches:re(e.initial)},transition:function(u,n){var d,c,f=typeof u=="string"?{value:u,context:e.context}:u,l=f.value,_=f.context,m=ve(n),E=e.states[l];if(E.on){var T=se(E.on[m.type]);try{for(var S=function(O){var G=typeof Symbol=="function"&&Symbol.iterator,k=G&&O[G],oe=0;if(k)return k.call(O);if(O&&typeof O.length=="number")return{next:function(){return O&&oe>=O.length&&(O=void 0),{value:O&&O[oe++],done:!O}}};throw new TypeError(G?"Object is not iterable.":"Symbol.iterator is not defined.")}(T),b=S.next();!b.done;b=S.next()){var C=b.value;if(C===void 0)return Te(l,_);var p=typeof C=="string"?{target:C}:C,s=p.target,y=p.actions,g=y===void 0?[]:y,w=p.cond,N=w===void 0?function(){return!0}:w,v=s===void 0,I=s!=null?s:l,R=e.states[I];if(N(_,m)){var V=pe(Ae((v?se(g):[].concat(E.exit,g,R.entry).filter(function(O){return O})).map(function(O){return be(O,i._options.actions)}),_,m),3),P=V[0],H=V[1],K=V[2],B=s!=null?s:l;return{value:B,context:H,actions:P,changed:s!==l||P.length>0||K,matches:re(B)}}}}catch(O){d={error:O}}finally{try{b&&!b.done&&(c=S.return)&&c.call(S)}finally{if(d)throw d.error}}}return Te(l,_)}};return i}var Ne=function(e,t){return e.actions.forEach(function(r){var a=r.exec;return a&&a(e.context,t)})};function Et(e){var t=e.initialState,r=Y.NotStarted,a=new Set,o={_machine:e,send:function(i){r===Y.Running&&(t=e.transition(t,i),Ne(t,ve(i)),a.forEach(function(u){return u(t)}))},subscribe:function(i){return a.add(i),i(t),{unsubscribe:function(){return a.delete(i)}}},start:function(i){if(i){var u=typeof i=="object"?i:{context:e.config.context,value:i};t={value:u.value,actions:[],context:u.context,matches:re(u.value)}}else t=e.initialState;return r=Y.Running,Ne(t,Ce),o},stop:function(){return r=Y.Stopped,a.clear(),o},get state(){return t},get status(){return r}};return o}var St=h.useLayoutEffect,Ie={exports:{}},ce={},le={exports:{}},de={};/**
14
+ ***************************************************************************** */function Le(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n,i,a=r.call(e),u=[];try{for(;(t===void 0||t-- >0)&&!(n=a.next()).done;)u.push(n.value)}catch(o){i={error:o}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(i)throw i.error}}return u}var Y;(function(e){e[e.NotStarted=0]="NotStarted",e[e.Running=1]="Running",e[e.Stopped=2]="Stopped"})(Y||(Y={}));var Pe={type:"xstate.init"};function Ee(e){return e===void 0?[]:[].concat(e)}function Q(e){return{type:"xstate.assign",assignment:e}}function Ue(e,t){return typeof(e=typeof e=="string"&&t&&t[e]?t[e]:e)=="string"?{type:e}:typeof e=="function"?{type:e.name,exec:e}:e}function ce(e){return function(t){return e===t}}function ke(e){return typeof e=="string"?{type:e}:e}function Ne(e,t){return{value:e,context:t,actions:[],changed:!1,matches:ce(e)}}function Ve(e,t,r){var n=t,i=!1;return[e.filter(function(a){if(a.type==="xstate.assign"){i=!0;var u=Object.assign({},n);return typeof a.assignment=="function"?u=a.assignment(n,r):Object.keys(a.assignment).forEach(function(o){u[o]=typeof a.assignment[o]=="function"?a.assignment[o](n,r):a.assignment[o]}),n=u,!1}return!0}),n,i]}function Me(e,t){t===void 0&&(t={});var r=Le(Ve(Ee(e.states[e.initial].entry).map(function(u){return Ue(u,t.actions)}),e.context,Pe),2),n=r[0],i=r[1],a={config:e,_options:t,initialState:{value:e.initial,actions:n,context:i,matches:ce(e.initial)},transition:function(u,o){var h,y,l=typeof u=="string"?{value:u,context:e.context}:u,d=l.value,p=l.context,E=ke(o),g=e.states[d];if(g.on){var b=Ee(g.on[E.type]);try{for(var _=function(O){var K=typeof Symbol=="function"&&Symbol.iterator,P=K&&O[K],me=0;if(P)return P.call(O);if(O&&typeof O.length=="number")return{next:function(){return O&&me>=O.length&&(O=void 0),{value:O&&O[me++],done:!O}}};throw new TypeError(K?"Object is not iterable.":"Symbol.iterator is not defined.")}(b),L=_.next();!L.done;L=_.next()){var w=L.value;if(w===void 0)return Ne(d,p);var C=typeof w=="string"?{target:w}:w,c=C.target,f=C.actions,m=f===void 0?[]:f,T=C.cond,I=T===void 0?function(){return!0}:T,S=c===void 0,D=c??d,U=e.states[D];if(I(p,E)){var V=Le(Ve((S?Ee(m):[].concat(g.exit,m,U.entry).filter(function(O){return O})).map(function(O){return Ue(O,a._options.actions)}),p,E),3),$=V[0],j=V[1],ee=V[2],F=c??d;return{value:F,context:j,actions:$,changed:c!==d||$.length>0||ee,matches:ce(F)}}}}catch(O){h={error:O}}finally{try{L&&!L.done&&(y=_.return)&&y.call(_)}finally{if(h)throw h.error}}}return Ne(d,p)}};return a}var Re=function(e,t){return e.actions.forEach(function(r){var n=r.exec;return n&&n(e.context,t)})};function bt(e){var t=e.initialState,r=Y.NotStarted,n=new Set,i={_machine:e,send:function(a){r===Y.Running&&(t=e.transition(t,a),Re(t,ke(a)),n.forEach(function(u){return u(t)}))},subscribe:function(a){return n.add(a),a(t),{unsubscribe:function(){return n.delete(a)}}},start:function(a){if(a){var u=typeof a=="object"?a:{context:e.config.context,value:a};t={value:u.value,actions:[],context:u.context,matches:ce(u.value)}}else t=e.initialState;return r=Y.Running,Re(t,Pe),i},stop:function(){return r=Y.Stopped,n.clear(),i},get state(){return t},get status(){return r}};return i}var wt=s.useLayoutEffect,pe={},It={get exports(){return pe},set exports(e){pe=e}},_e={},le={},Dt={get exports(){return le},set exports(e){le=e}},Se={};/**
15
15
  * @license React
16
16
  * use-sync-external-store-shim.production.min.js
17
17
  *
@@ -19,7 +19,7 @@
19
19
  *
20
20
  * This source code is licensed under the MIT license found in the
21
21
  * LICENSE file in the root directory of this source tree.
22
- */var Oe;function pt(){if(Oe)return de;Oe=1;var e=D.default;function t(l,_){return l===_&&(l!==0||1/l===1/_)||l!==l&&_!==_}var r=typeof Object.is=="function"?Object.is:t,a=e.useState,o=e.useEffect,i=e.useLayoutEffect,u=e.useDebugValue;function n(l,_){var m=_(),E=a({inst:{value:m,getSnapshot:_}}),T=E[0].inst,S=E[1];return i(function(){T.value=m,T.getSnapshot=_,d(T)&&S({inst:T})},[l,m,_]),o(function(){return d(T)&&S({inst:T}),l(function(){d(T)&&S({inst:T})})},[l]),u(m),m}function d(l){var _=l.getSnapshot;l=l.value;try{var m=_();return!r(l,m)}catch{return!0}}function c(l,_){return _()}var f=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?c:n;return de.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:f,de}var fe={};/**
22
+ */var $e;function Ot(){if($e)return Se;$e=1;var e=s;function t(d,p){return d===p&&(d!==0||1/d===1/p)||d!==d&&p!==p}var r=typeof Object.is=="function"?Object.is:t,n=e.useState,i=e.useEffect,a=e.useLayoutEffect,u=e.useDebugValue;function o(d,p){var E=p(),g=n({inst:{value:E,getSnapshot:p}}),b=g[0].inst,_=g[1];return a(function(){b.value=E,b.getSnapshot=p,h(b)&&_({inst:b})},[d,E,p]),i(function(){return h(b)&&_({inst:b}),d(function(){h(b)&&_({inst:b})})},[d]),u(E),E}function h(d){var p=d.getSnapshot;d=d.value;try{var E=p();return!r(d,E)}catch{return!0}}function y(d,p){return p()}var l=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?y:o;return Se.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:l,Se}var ve={};/**
23
23
  * @license React
24
24
  * use-sync-external-store-shim.development.js
25
25
  *
@@ -27,7 +27,7 @@
27
27
  *
28
28
  * This source code is licensed under the MIT license found in the
29
29
  * LICENSE file in the root directory of this source tree.
30
- */var De;function Ct(){return De||(De=1,process.env.NODE_ENV!=="production"&&function(){typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error);var e=D.default,t=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function r(p){{for(var s=arguments.length,y=new Array(s>1?s-1:0),g=1;g<s;g++)y[g-1]=arguments[g];a("error",p,y)}}function a(p,s,y){{var g=t.ReactDebugCurrentFrame,w=g.getStackAddendum();w!==""&&(s+="%s",y=y.concat([w]));var N=y.map(function(v){return String(v)});N.unshift("Warning: "+s),Function.prototype.apply.call(console[p],console,N)}}function o(p,s){return p===s&&(p!==0||1/p===1/s)||p!==p&&s!==s}var i=typeof Object.is=="function"?Object.is:o,u=e.useState,n=e.useEffect,d=e.useLayoutEffect,c=e.useDebugValue,f=!1,l=!1;function _(p,s,y){f||e.startTransition!==void 0&&(f=!0,r("You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."));var g=s();if(!l){var w=s();i(g,w)||(r("The result of getSnapshot should be cached to avoid an infinite loop"),l=!0)}var N=u({inst:{value:g,getSnapshot:s}}),v=N[0].inst,I=N[1];return d(function(){v.value=g,v.getSnapshot=s,m(v)&&I({inst:v})},[p,g,s]),n(function(){m(v)&&I({inst:v});var R=function(){m(v)&&I({inst:v})};return p(R)},[p]),c(g),g}function m(p){var s=p.getSnapshot,y=p.value;try{var g=s();return!i(y,g)}catch{return!0}}function E(p,s,y){return s()}var T=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",S=!T,b=S?E:_,C=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:b;fe.useSyncExternalStore=C,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error)}()),fe}var Le;function Ue(){return Le||(Le=1,function(e){process.env.NODE_ENV==="production"?e.exports=pt():e.exports=Ct()}(le)),le.exports}/**
30
+ */var xe;function Lt(){return xe||(xe=1,process.env.NODE_ENV!=="production"&&function(){typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error);var e=s,t=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function r(C){{for(var c=arguments.length,f=new Array(c>1?c-1:0),m=1;m<c;m++)f[m-1]=arguments[m];n("error",C,f)}}function n(C,c,f){{var m=t.ReactDebugCurrentFrame,T=m.getStackAddendum();T!==""&&(c+="%s",f=f.concat([T]));var I=f.map(function(S){return String(S)});I.unshift("Warning: "+c),Function.prototype.apply.call(console[C],console,I)}}function i(C,c){return C===c&&(C!==0||1/C===1/c)||C!==C&&c!==c}var a=typeof Object.is=="function"?Object.is:i,u=e.useState,o=e.useEffect,h=e.useLayoutEffect,y=e.useDebugValue,l=!1,d=!1;function p(C,c,f){l||e.startTransition!==void 0&&(l=!0,r("You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."));var m=c();if(!d){var T=c();a(m,T)||(r("The result of getSnapshot should be cached to avoid an infinite loop"),d=!0)}var I=u({inst:{value:m,getSnapshot:c}}),S=I[0].inst,D=I[1];return h(function(){S.value=m,S.getSnapshot=c,E(S)&&D({inst:S})},[C,m,c]),o(function(){E(S)&&D({inst:S});var U=function(){E(S)&&D({inst:S})};return C(U)},[C]),y(m),m}function E(C){var c=C.getSnapshot,f=C.value;try{var m=c();return!a(f,m)}catch{return!0}}function g(C,c,f){return c()}var b=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",_=!b,L=_?g:p,w=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:L;ve.useSyncExternalStore=w,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error)}()),ve}var qe;function Fe(){return qe||(qe=1,function(e){process.env.NODE_ENV==="production"?e.exports=Ot():e.exports=Lt()}(Dt)),le}/**
31
31
  * @license React
32
32
  * use-sync-external-store-shim/with-selector.production.min.js
33
33
  *
@@ -35,7 +35,7 @@
35
35
  *
36
36
  * This source code is licensed under the MIT license found in the
37
37
  * LICENSE file in the root directory of this source tree.
38
- */var ke;function bt(){if(ke)return ce;ke=1;var e=D.default,t=Ue();function r(c,f){return c===f&&(c!==0||1/c===1/f)||c!==c&&f!==f}var a=typeof Object.is=="function"?Object.is:r,o=t.useSyncExternalStore,i=e.useRef,u=e.useEffect,n=e.useMemo,d=e.useDebugValue;return ce.useSyncExternalStoreWithSelector=function(c,f,l,_,m){var E=i(null);if(E.current===null){var T={hasValue:!1,value:null};E.current=T}else T=E.current;E=n(function(){function b(g){if(!C){if(C=!0,p=g,g=_(g),m!==void 0&&T.hasValue){var w=T.value;if(m(w,g))return s=w}return s=g}if(w=s,a(p,g))return w;var N=_(g);return m!==void 0&&m(w,N)?w:(p=g,s=N)}var C=!1,p,s,y=l===void 0?null:l;return[function(){return b(f())},y===null?void 0:function(){return b(y())}]},[f,l,_,m]);var S=o(c,E[0],E[1]);return u(function(){T.hasValue=!0,T.value=S},[S]),d(S),S},ce}var ye={};/**
38
+ */var Be;function Pt(){if(Be)return _e;Be=1;var e=s,t=Fe();function r(y,l){return y===l&&(y!==0||1/y===1/l)||y!==y&&l!==l}var n=typeof Object.is=="function"?Object.is:r,i=t.useSyncExternalStore,a=e.useRef,u=e.useEffect,o=e.useMemo,h=e.useDebugValue;return _e.useSyncExternalStoreWithSelector=function(y,l,d,p,E){var g=a(null);if(g.current===null){var b={hasValue:!1,value:null};g.current=b}else b=g.current;g=o(function(){function L(m){if(!w){if(w=!0,C=m,m=p(m),E!==void 0&&b.hasValue){var T=b.value;if(E(T,m))return c=T}return c=m}if(T=c,n(C,m))return T;var I=p(m);return E!==void 0&&E(T,I)?T:(C=m,c=I)}var w=!1,C,c,f=d===void 0?null:d;return[function(){return L(l())},f===null?void 0:function(){return L(f())}]},[l,d,p,E]);var _=i(y,g[0],g[1]);return u(function(){b.hasValue=!0,b.value=_},[_]),h(_),_},_e}var Ce={};/**
39
39
  * @license React
40
40
  * use-sync-external-store-shim/with-selector.development.js
41
41
  *
@@ -43,7 +43,7 @@
43
43
  *
44
44
  * This source code is licensed under the MIT license found in the
45
45
  * LICENSE file in the root directory of this source tree.
46
- */var Re;function vt(){return Re||(Re=1,process.env.NODE_ENV!=="production"&&function(){typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error);var e=D.default,t=Ue();function r(f,l){return f===l&&(f!==0||1/f===1/l)||f!==f&&l!==l}var a=typeof Object.is=="function"?Object.is:r,o=t.useSyncExternalStore,i=e.useRef,u=e.useEffect,n=e.useMemo,d=e.useDebugValue;function c(f,l,_,m,E){var T=i(null),S;T.current===null?(S={hasValue:!1,value:null},T.current=S):S=T.current;var b=n(function(){var y=!1,g,w,N=function(V){if(!y){y=!0,g=V;var P=m(V);if(E!==void 0&&S.hasValue){var H=S.value;if(E(H,P))return w=H,H}return w=P,P}var K=g,B=w;if(a(K,V))return B;var O=m(V);return E!==void 0&&E(B,O)?B:(g=V,w=O,O)},v=_===void 0?null:_,I=function(){return N(l())},R=v===null?void 0:function(){return N(v())};return[I,R]},[l,_,m,E]),C=b[0],p=b[1],s=o(f,C,p);return u(function(){S.hasValue=!0,S.value=s},[s]),d(s),s}ye.useSyncExternalStoreWithSelector=c,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error)}()),ye}(function(e){process.env.NODE_ENV==="production"?e.exports=bt():e.exports=vt()})(Ie);function Tt(e){var t=Se.useRef();return t.current||(t.current={v:e()}),t.current.v}var $e=globalThis&&globalThis.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var a=r.call(e),o,i=[],u;try{for(;(t===void 0||t-- >0)&&!(o=a.next()).done;)i.push(o.value)}catch(n){u={error:n}}finally{try{o&&!o.done&&(r=a.return)&&r.call(a)}finally{if(u)throw u.error}}return i};function At(e){return e}var wt=function(e){var t;return e.subscribe(function(r){t=r}).unsubscribe(),t};function Nt(e,t){var r=h.useRef();if(process.env.NODE_ENV!=="production"){var a=$e(h.useState(e),1),o=a[0];e!==o&&console.warn("Machine given to `useMachine` has changed between renders. This is not supported and might lead to unexpected results.\nPlease make sure that you pass the same Machine as argument each time.")}var i=$e(Tt(function(){var c=[],f=Et(we(e.config,t||e._options)),l=f.send;return f.send=function(_){if(f.status===Y.NotStarted){c.push(_);return}l(_),r.current=f.state},[f,c]}),2),u=i[0],n=i[1];St(function(){t&&(u._machine._options=t)});var d=Ot(u);return h.useEffect(function(){return u.start(r.current),n.forEach(u.send),r.current=u.state,function(){u.stop()}},[]),d}var It=function(e,t){return t.changed===!1};function Ot(e){var t=h.useCallback(function(){return wt(e)},[e]),r=h.useCallback(function(o){var i=e.subscribe(o).unsubscribe;return i},[e]),a=Ie.exports.useSyncExternalStoreWithSelector(r,t,t,At,It);return[a,e.send,e]}function q(e){if(!e){const t=`flattenConnection(): needs a 'connection' to flatten, but received '${e}' instead.`;return console.error(t+" Returning an empty array"),[]}return"nodes"in e?e.nodes:"edges"in e&&Array.isArray(e.edges)?e.edges.map(t=>{if(!(t!=null&&t.node))throw new Error("flattenConnection(): Connection edges must contain nodes");return t.node}):[]}const Dt=e=>`
46
+ */var He;function Ut(){return He||(He=1,process.env.NODE_ENV!=="production"&&function(){typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error);var e=s,t=Fe();function r(l,d){return l===d&&(l!==0||1/l===1/d)||l!==l&&d!==d}var n=typeof Object.is=="function"?Object.is:r,i=t.useSyncExternalStore,a=e.useRef,u=e.useEffect,o=e.useMemo,h=e.useDebugValue;function y(l,d,p,E,g){var b=a(null),_;b.current===null?(_={hasValue:!1,value:null},b.current=_):_=b.current;var L=o(function(){var f=!1,m,T,I=function(V){if(!f){f=!0,m=V;var $=E(V);if(g!==void 0&&_.hasValue){var j=_.value;if(g(j,$))return T=j,j}return T=$,$}var ee=m,F=T;if(n(ee,V))return F;var O=E(V);return g!==void 0&&g(F,O)?F:(m=V,T=O,O)},S=p===void 0?null:p,D=function(){return I(d())},U=S===null?void 0:function(){return I(S())};return[D,U]},[d,p,E,g]),w=L[0],C=L[1],c=i(l,w,C);return u(function(){_.hasValue=!0,_.value=c},[c]),h(c),c}Ce.useSyncExternalStoreWithSelector=y,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error)}()),Ce}(function(e){process.env.NODE_ENV==="production"?e.exports=Pt():e.exports=Ut()})(It);function kt(e){var t=Oe.useRef();return t.current||(t.current={v:e()}),t.current.v}var Ge=globalThis&&globalThis.__read||function(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var n=r.call(e),i,a=[],u;try{for(;(t===void 0||t-- >0)&&!(i=n.next()).done;)a.push(i.value)}catch(o){u={error:o}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(u)throw u.error}}return a};function Nt(e){return e}var Vt=function(e){var t;return e.subscribe(function(r){t=r}).unsubscribe(),t};function Mt(e,t){var r=s.useRef();if(process.env.NODE_ENV!=="production"){var n=Ge(s.useState(e),1),i=n[0];e!==i&&console.warn("Machine given to `useMachine` has changed between renders. This is not supported and might lead to unexpected results.\nPlease make sure that you pass the same Machine as argument each time.")}var a=Ge(kt(function(){var y=[],l=bt(Me(e.config,t||e._options)),d=l.send;return l.send=function(p){if(l.status===Y.NotStarted){y.push(p);return}d(p),r.current=l.state},[l,y]}),2),u=a[0],o=a[1];wt(function(){t&&(u._machine._options=t)});var h=$t(u);return s.useEffect(function(){return u.start(r.current),o.forEach(u.send),r.current=u.state,function(){u.stop()}},[]),h}var Rt=function(e,t){return t.changed===!1};function $t(e){var t=s.useCallback(function(){return Vt(e)},[e]),r=s.useCallback(function(i){var a=e.subscribe(i).unsubscribe;return a},[e]),n=pe.useSyncExternalStoreWithSelector(r,t,t,Nt,Rt);return[n,e.send,e]}function H(e){if(!e){const t=`flattenConnection(): needs a 'connection' to flatten, but received '${e}' instead.`;return console.error(t+" Returning an empty array"),[]}return"nodes"in e?e.nodes:"edges"in e&&Array.isArray(e.edges)?e.edges.map(t=>{if(!(t!=null&&t.node))throw new Error("flattenConnection(): Connection edges must contain nodes");return t.node}):[]}const xt=e=>`
47
47
  mutation CartLineAdd(
48
48
  $cartId: ID!
49
49
  $lines: [CartLineInput!]!
@@ -58,7 +58,7 @@
58
58
  }
59
59
 
60
60
  ${e}
61
- `,Lt=e=>`
61
+ `,qt=e=>`
62
62
  mutation CartCreate(
63
63
  $input: CartInput!
64
64
  $numCartLines: Int = 250
@@ -72,7 +72,7 @@
72
72
  }
73
73
 
74
74
  ${e}
75
- `,Ut=e=>`
75
+ `,Ft=e=>`
76
76
  mutation CartLineRemove(
77
77
  $cartId: ID!
78
78
  $lines: [ID!]!
@@ -87,7 +87,7 @@
87
87
  }
88
88
 
89
89
  ${e}
90
- `,kt=e=>`
90
+ `,Bt=e=>`
91
91
  mutation CartLineUpdate(
92
92
  $cartId: ID!
93
93
  $lines: [CartLineUpdateInput!]!
@@ -102,7 +102,7 @@
102
102
  }
103
103
 
104
104
  ${e}
105
- `,Rt=e=>`
105
+ `,Ht=e=>`
106
106
  mutation CartNoteUpdate(
107
107
  $cartId: ID!
108
108
  $note: String
@@ -117,7 +117,7 @@
117
117
  }
118
118
 
119
119
  ${e}
120
- `,$t=e=>`
120
+ `,Gt=e=>`
121
121
  mutation CartBuyerIdentityUpdate(
122
122
  $cartId: ID!
123
123
  $buyerIdentity: CartBuyerIdentityInput!
@@ -132,7 +132,7 @@
132
132
  }
133
133
 
134
134
  ${e}
135
- `,Vt=e=>`
135
+ `,jt=e=>`
136
136
  mutation CartAttributesUpdate(
137
137
  $attributes: [AttributeInput!]!
138
138
  $cartId: ID!
@@ -147,7 +147,7 @@
147
147
  }
148
148
 
149
149
  ${e}
150
- `,Mt=e=>`
150
+ `,Yt=e=>`
151
151
  mutation CartDiscountCodesUpdate(
152
152
  $cartId: ID!
153
153
  $discountCodes: [String!]
@@ -162,7 +162,7 @@
162
162
  }
163
163
 
164
164
  ${e}
165
- `,Pt=e=>`
165
+ `,Wt=e=>`
166
166
  query CartQuery(
167
167
  $id: ID!
168
168
  $numCartLines: Int = 250
@@ -174,7 +174,7 @@
174
174
  }
175
175
 
176
176
  ${e}
177
- `,Ft=`
177
+ `,Zt=`
178
178
  fragment CartFragment on Cart {
179
179
  id
180
180
  checkoutUrl
@@ -274,5 +274,7 @@
274
274
  width
275
275
  height
276
276
  }
277
- `,Q="2023-01",Ve=new Set,xt=e=>{Ve.has(e)||(console.warn(e),Ve.add(e))};function Bt({storeDomain:e,privateStorefrontToken:t,publicStorefrontToken:r,storefrontApiVersion:a,contentType:o}){return a!==Q&&xt(`StorefrontClient: The Storefront API version that you're using is different than the version this build of Hydrogen-UI is targeting. You may run into unexpected errors if these versions don't match. Received verion: "${a}"; expected version "${Q}"`),{getShopifyDomain(i){var u;return`https://${(u=i==null?void 0:i.storeDomain)!=null?u:e}.myshopify.com`},getStorefrontApiUrl(i){var u,n;return`https://${(u=i==null?void 0:i.storeDomain)!=null?u:e}.myshopify.com/api/${(n=i==null?void 0:i.storefrontApiVersion)!=null?n:a}/graphql.json`},getPrivateTokenHeaders(i){var n,d,c;if(!t&&!(i!=null&&i.privateStorefrontToken))throw new Error("StorefrontClient: You did not pass in a 'privateStorefrontToken' while using 'getPrivateTokenHeaders()'");return{"content-type":((n=i==null?void 0:i.contentType)!=null?n:o)==="graphql"?"application/graphql":"application/json","X-SDK-Variant":"hydrogen-ui","X-SDK-Variant-Source":"react","X-SDK-Version":a,"Shopify-Storefront-Private-Token":(c=(d=i==null?void 0:i.privateStorefrontToken)!=null?d:t)!=null?c:"",...i!=null&&i.buyerIp?{"Shopify-Storefront-Buyer-IP":i.buyerIp}:{}}},getPublicTokenHeaders(i){var n,d,c,f;if(!r&&!(i!=null&&i.publicStorefrontToken))throw new Error("StorefrontClient: You did not pass in a 'publicStorefrontToken' while using 'getPublicTokenHeaders()'");const u=(d=(n=i==null?void 0:i.contentType)!=null?n:o)!=null?d:"json";return Me(u,a,(f=(c=i==null?void 0:i.publicStorefrontToken)!=null?c:r)!=null?f:"")}}}function Me(e,t,r){return{"content-type":e==="graphql"?"application/graphql":"application/json","X-SDK-Variant":"hydrogen-ui","X-SDK-Variant-Source":"react","X-SDK-Version":t,"X-Shopify-Storefront-Access-Token":r}}var jt="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/ShopifyProvider.tsx";const Pe=h.createContext({storeDomain:"test",storefrontToken:"abc123",storefrontApiVersion:Q,country:{isoCode:"US"},language:{isoCode:"EN"},locale:"EN-US",getStorefrontApiUrl(){return""},getPublicTokenHeaders(){return{}},getShopifyDomain(){return""}});function qt({children:e,shopifyConfig:t}){if(!t)throw new Error("The 'shopifyConfig' prop must be passed to '<ShopifyProvider/>'");t.storefrontApiVersion!==Q&&console.warn(`<ShopifyProvider/>: This version of Hydrogen-UI is built for Shopify's Storefront API version ${Q}, but it looks like you're using version ${t.storefrontApiVersion}. There may be issues or bugs if you use a mismatched version of Hydrogen-UI and the Storefront API.`);const r=h.useMemo(()=>{function a(o){var i;return(i=o==null?void 0:o.storeDomain)!=null?i:t.storeDomain}return{...t,getPublicTokenHeaders(o){var i;return Me(o.contentType,t.storefrontApiVersion,(i=o.storefrontToken)!=null?i:t.storefrontToken)},getShopifyDomain:a,getStorefrontApiUrl(o){var i,u,n;return(i=o==null?void 0:o.storeDomain)!=null&&i.includes(".myshopify.com"),`${a({storeDomain:(u=o==null?void 0:o.storeDomain)!=null?u:t.storeDomain})}/api/${(n=o==null?void 0:o.storefrontApiVersion)!=null?n:t.storefrontApiVersion}/graphql.json`}}},[t]);return D.default.createElement(Pe.Provider,{value:r,__self:this,__source:{fileName:jt,lineNumber:84,columnNumber:5}},e)}function ne(){const e=h.useContext(Pe);if(!e)throw new Error("'useShop()' must be a descendent of <ShopifyProvider/>");return e}const he="shopifyCartId",Ht="Shopify-Storefront-Id",Yt="Shopify-Storefront-Y",Gt="Shopify-Storefront-S",Fe="_shopify_y",xe="_shopify_s";var Zt=new Set(["domain","path","max-age","expires","samesite","secure","httponly"]);function Wt(e){let t={},r,a,o=0,i=e.split(/;\s*/g),u,n;for(;o<i.length;o++)if(a=i[o],r=a.indexOf("="),~r){if(u=a.substring(0,r++).trim(),n=a.substring(r).trim(),n[0]==='"'&&(n=n.substring(1,n.length-1)),~n.indexOf("%"))try{n=decodeURIComponent(n)}catch{}Zt.has(a=u.toLowerCase())?a==="expires"?t.expires=new Date(n):a==="max-age"?t.maxage=+n:t[a]=n:t[u]=n}else(u=a.trim().toLowerCase())&&(u==="httponly"||u==="secure")&&(t[u]=!0);return t}function Kt(){const{storefrontId:e,getPublicTokenHeaders:t,getStorefrontApiUrl:r}=ne();return h.useCallback(({query:a,variables:o})=>{const i=t({contentType:"json"});e&&(i[Ht]=e);const u=Wt(document.cookie);return u[Fe]&&u[xe]&&(i[Yt]=u[Fe],i[Gt]=u[xe]),fetch(r(),{method:"POST",headers:i,body:JSON.stringify({query:a.toString(),variables:o})}).then(n=>n.json()).catch(n=>({data:void 0,errors:n.toString()}))},[t,e,r])}function zt({numCartLines:e,cartFragment:t,countryCode:r="US"}){const a=Kt(),o=h.useCallback(m=>a({query:Pt(t),variables:{id:m,numCartLines:e,country:r}}),[a,t,e,r]),i=h.useCallback(m=>a({query:Lt(t),variables:{input:m,numCartLines:e,country:r}}),[t,r,a,e]),u=h.useCallback((m,E)=>a({query:Dt(t),variables:{cartId:m,lines:E,numCartLines:e,country:r}}),[t,r,a,e]),n=h.useCallback((m,E)=>a({query:kt(t),variables:{cartId:m,lines:E,numCartLines:e,country:r}}),[t,r,a,e]),d=h.useCallback((m,E)=>a({query:Ut(t),variables:{cartId:m,lines:E,numCartLines:e,country:r}}),[t,r,a,e]),c=h.useCallback((m,E)=>a({query:Rt(t),variables:{cartId:m,note:E,numCartLines:e,country:r}}),[a,t,e,r]),f=h.useCallback((m,E)=>a({query:$t(t),variables:{cartId:m,buyerIdentity:E,numCartLines:e,country:r}}),[t,r,a,e]),l=h.useCallback((m,E)=>a({query:Vt(t),variables:{cartId:m,attributes:E,numCartLines:e,country:r}}),[t,r,a,e]),_=h.useCallback((m,E)=>a({query:Mt(t),variables:{cartId:m,discountCodes:E,numCartLines:e,country:r}}),[t,r,a,e]);return h.useMemo(()=>({cartFetch:o,cartCreate:i,cartLineAdd:u,cartLineUpdate:n,cartLineRemove:d,noteUpdate:c,buyerIdentityUpdate:f,cartAttributesUpdate:l,discountCodesUpdate:_,cartFragment:t}),[o,i,u,n,d,c,f,l,_,t])}function F(e,t){return{entry:[...(t==null?void 0:t.entryActions)||[],Z({lastValidCart:r=>r==null?void 0:r.cart}),"onCartActionEntry","onCartActionOptimisticUI",e],on:{RESOLVE:{target:(t==null?void 0:t.resolveTarget)||"idle",actions:[Z({prevCart:r=>r==null?void 0:r.lastValidCart,cart:(r,a)=>{var o;return(o=a==null?void 0:a.payload)==null?void 0:o.cart},rawCartResult:(r,a)=>{var o;return(o=a==null?void 0:a.payload)==null?void 0:o.rawCartResult},errors:r=>{}})]},ERROR:{target:(t==null?void 0:t.errorTarget)||"error",actions:[Z({prevCart:r=>r==null?void 0:r.lastValidCart,cart:r=>r==null?void 0:r.lastValidCart,errors:(r,a)=>{var o;return(o=a==null?void 0:a.payload)==null?void 0:o.errors}})]},CART_COMPLETED:{target:"cartCompleted",actions:Z({prevCart:r=>{},cart:r=>{},lastValidCart:r=>{},rawCartResult:r=>{},errors:r=>{}})}},exit:["onCartActionComplete",...(t==null?void 0:t.exitActions)||[]]}}const J={CART_FETCH:{target:"cartFetching"},CART_CREATE:{target:"cartCreating"},CART_SET:{target:"idle",actions:[Z({rawCartResult:(e,t)=>t.payload.cart,cart:(e,t)=>me(t.payload.cart)})]}},Be={CARTLINE_ADD:{target:"cartLineAdding"},CARTLINE_UPDATE:{target:"cartLineUpdating"},CARTLINE_REMOVE:{target:"cartLineRemoving"},NOTE_UPDATE:{target:"noteUpdating"},BUYER_IDENTITY_UPDATE:{target:"buyerIdentityUpdating"},CART_ATTRIBUTES_UPDATE:{target:"cartAttributesUpdating"},DISCOUNT_CODES_UPDATE:{target:"discountCodesUpdating"}};function Qt(e){return we({id:"Cart",initial:e?"idle":"uninitialized",context:{cart:e&&me(e)},states:{uninitialized:{on:J},cartCompleted:{on:J},initializationError:{on:J},idle:{on:{...J,...Be}},error:{on:{...J,...Be}},cartFetching:F("cartFetchAction",{errorTarget:"initializationError"}),cartCreating:F("cartCreateAction",{errorTarget:"initializationError"}),cartLineRemoving:F("cartLineRemoveAction"),cartLineUpdating:F("cartLineUpdateAction"),cartLineAdding:F("cartLineAddAction"),noteUpdating:F("noteUpdateAction"),buyerIdentityUpdating:F("buyerIdentityUpdateAction"),cartAttributesUpdating:F("cartAttributesUpdateAction"),discountCodesUpdating:F("discountCodesUpdateAction")}})}function Jt({numCartLines:e,onCartActionEntry:t,onCartActionOptimisticUI:r,onCartActionComplete:a,data:o,cartFragment:i,countryCode:u}){const{cartFetch:n,cartCreate:d,cartLineAdd:c,cartLineUpdate:f,cartLineRemove:l,noteUpdate:_,buyerIdentityUpdate:m,cartAttributesUpdate:E,discountCodesUpdate:T}=zt({numCartLines:e,cartFragment:i,countryCode:u}),S=h.useMemo(()=>Qt(o),[o]),[b,C,p]=Nt(S,{actions:{cartFetchAction:async(s,y)=>{var v;if(y.type!=="CART_FETCH")return;const{data:g,errors:w}=await n((v=y==null?void 0:y.payload)==null?void 0:v.cartId),N=x(y,g==null?void 0:g.cart,w);C(N)},cartCreateAction:async(s,y)=>{var v;if(y.type!=="CART_CREATE")return;const{data:g,errors:w}=await d(y==null?void 0:y.payload),N=x(y,(v=g==null?void 0:g.cartCreate)==null?void 0:v.cart,w);C(N)},cartLineAddAction:async(s,y)=>{var v,I;if(y.type!=="CARTLINE_ADD"||!((v=s==null?void 0:s.cart)!=null&&v.id))return;const{data:g,errors:w}=await c(s.cart.id,y.payload.lines),N=x(y,(I=g==null?void 0:g.cartLinesAdd)==null?void 0:I.cart,w);C(N)},cartLineUpdateAction:async(s,y)=>{var v,I;if(y.type!=="CARTLINE_UPDATE"||!((v=s==null?void 0:s.cart)!=null&&v.id))return;const{data:g,errors:w}=await f(s.cart.id,y.payload.lines),N=x(y,(I=g==null?void 0:g.cartLinesUpdate)==null?void 0:I.cart,w);C(N)},cartLineRemoveAction:async(s,y)=>{var v,I;if(y.type!=="CARTLINE_REMOVE"||!((v=s==null?void 0:s.cart)!=null&&v.id))return;const{data:g,errors:w}=await l(s.cart.id,y.payload.lines),N=x(y,(I=g==null?void 0:g.cartLinesRemove)==null?void 0:I.cart,w);C(N)},noteUpdateAction:async(s,y)=>{var v,I;if(y.type!=="NOTE_UPDATE"||!((v=s==null?void 0:s.cart)!=null&&v.id))return;const{data:g,errors:w}=await _(s.cart.id,y.payload.note),N=x(y,(I=g==null?void 0:g.cartNoteUpdate)==null?void 0:I.cart,w);C(N)},buyerIdentityUpdateAction:async(s,y)=>{var v,I;if(y.type!=="BUYER_IDENTITY_UPDATE"||!((v=s==null?void 0:s.cart)!=null&&v.id))return;const{data:g,errors:w}=await m(s.cart.id,y.payload.buyerIdentity),N=x(y,(I=g==null?void 0:g.cartBuyerIdentityUpdate)==null?void 0:I.cart,w);C(N)},cartAttributesUpdateAction:async(s,y)=>{var v,I;if(y.type!=="CART_ATTRIBUTES_UPDATE"||!((v=s==null?void 0:s.cart)!=null&&v.id))return;const{data:g,errors:w}=await E(s.cart.id,y.payload.attributes),N=x(y,(I=g==null?void 0:g.cartAttributesUpdate)==null?void 0:I.cart,w);C(N)},discountCodesUpdateAction:async(s,y)=>{var v,I;if(y.type!=="DISCOUNT_CODES_UPDATE"||!((v=s==null?void 0:s.cart)!=null&&v.id))return;const{data:g,errors:w}=await T(s.cart.id,y.payload.discountCodes),N=x(y,(I=g==null?void 0:g.cartDiscountCodesUpdate)==null?void 0:I.cart,w);C(N)},...t&&{onCartActionEntry:(s,y)=>{Xt(y)&&t(s,y)}},...r&&{onCartActionOptimisticUI:Z((s,y)=>r(s,y))},...a&&{onCartActionComplete:(s,y)=>{er(y)&&a(s,y)}}}});return h.useMemo(()=>[b,C,p],[b,C,p])}function me(e){var t;return{...e,lines:q(e==null?void 0:e.lines),note:(t=e.note)!=null?t:void 0}}function x(e,t,r){return r?{type:"ERROR",payload:{errors:r,cartActionEvent:e}}:t?{type:"RESOLVE",payload:{cart:me(t),rawCartResult:t,cartActionEvent:e}}:{type:"CART_COMPLETED",payload:{cartActionEvent:e}}}function Xt(e){return e.type==="CART_CREATE"||e.type==="CARTLINE_ADD"||e.type==="CARTLINE_UPDATE"||e.type==="CARTLINE_REMOVE"||e.type==="NOTE_UPDATE"||e.type==="BUYER_IDENTITY_UPDATE"||e.type==="CART_ATTRIBUTES_UPDATE"||e.type==="DISCOUNT_CODES_UPDATE"}function er(e){return e.type==="RESOLVE"||e.type==="ERROR"||e.type==="CART_COMPLETED"}var tr="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/CartProvider.tsx";const je=h.createContext(null);function ae(){const e=h.useContext(je);if(!e)throw new Error("Expected a Cart Context, but no Cart Context was found");return e}function rr({children:e,numCartLines:t,onCreate:r,onLineAdd:a,onLineRemove:o,onLineUpdate:i,onNoteUpdate:u,onBuyerIdentityUpdate:n,onAttributesUpdate:d,onDiscountCodesUpdate:c,onCreateComplete:f,onLineAddComplete:l,onLineRemoveComplete:_,onLineUpdateComplete:m,onNoteUpdateComplete:E,onBuyerIdentityUpdateComplete:T,onAttributesUpdateComplete:S,onDiscountCodesUpdateComplete:b,data:C,cartFragment:p=Ft,customerAccessToken:s,countryCode:y="US"}){var ct,lt,dt,ft,yt,ht,mt;y&&(y=y.toUpperCase());const[g,w]=h.useState(y),[N,v]=h.useState(s),I=h.useRef(!1);(g!==y||N!==s)&&(w(y),v(s),I.current=!1);const[R,V]=Jt({numCartLines:t,data:C,cartFragment:p,countryCode:y,onCartActionEntry(A,$){try{switch($.type){case"CART_CREATE":return r==null?void 0:r();case"CARTLINE_ADD":return a==null?void 0:a();case"CARTLINE_REMOVE":return o==null?void 0:o();case"CARTLINE_UPDATE":return i==null?void 0:i();case"NOTE_UPDATE":return u==null?void 0:u();case"BUYER_IDENTITY_UPDATE":return n==null?void 0:n();case"CART_ATTRIBUTES_UPDATE":return d==null?void 0:d();case"DISCOUNT_CODES_UPDATE":return c==null?void 0:c()}}catch(M){console.error("Cart entry action failed",M)}},onCartActionOptimisticUI(A,$){var M,j,ee,te;if(!A.cart)return{...A};switch($.type){case"CARTLINE_REMOVE":return{...A,cart:{...A.cart,lines:(j=(M=A==null?void 0:A.cart)==null?void 0:M.lines)==null?void 0:j.filter(U=>(U==null?void 0:U.id)&&!$.payload.lines.includes(U==null?void 0:U.id))}};case"CARTLINE_UPDATE":return{...A,cart:{...A.cart,lines:(te=(ee=A==null?void 0:A.cart)==null?void 0:ee.lines)==null?void 0:te.map(U=>{const z=$.payload.lines.find(({id:ue})=>ue===(U==null?void 0:U.id));return z&&z.quantity?{...U,quantity:z.quantity}:U})}}}return{...A}},onCartActionComplete(A,$){const M=$.payload.cartActionEvent;try{switch($.type){case"RESOLVE":switch(M.type){case"CART_CREATE":return f==null?void 0:f();case"CARTLINE_ADD":return l==null?void 0:l();case"CARTLINE_REMOVE":return _==null?void 0:_();case"CARTLINE_UPDATE":return m==null?void 0:m();case"NOTE_UPDATE":return E==null?void 0:E();case"BUYER_IDENTITY_UPDATE":return ir(A,M)&&(I.current=!0),T==null?void 0:T();case"CART_ATTRIBUTES_UPDATE":return S==null?void 0:S();case"DISCOUNT_CODES_UPDATE":return b==null?void 0:b()}}}catch(j){console.error("onCartActionComplete failed",j)}}}),P=h.useRef(!1),H=R.matches("cartCompleted"),K=(R.value==="idle"||R.value==="error"||R.value==="cartCompleted")&&y!==((dt=(lt=(ct=R==null?void 0:R.context)==null?void 0:ct.cart)==null?void 0:lt.buyerIdentity)==null?void 0:dt.countryCode)&&!R.context.errors,B=h.useRef(!1);h.useEffect(()=>{if(!P.current&&!B.current){if(!C&&_e("localStorage")){B.current=!0;try{const A=window.localStorage.getItem(he);A&&V({type:"CART_FETCH",payload:{cartId:A}})}catch(A){console.warn("error fetching cartId"),console.warn(A)}}P.current=!0}},[C,P,V]),h.useEffect(()=>{!K||I.current||V({type:"BUYER_IDENTITY_UPDATE",payload:{buyerIdentity:{countryCode:y,customerAccessToken:s}}})},[y,s,K,I,V]);const O=h.useCallback(A=>{if(!P.current)return console.warn("Cart isn't ready yet");V(A)},[V]);h.useEffect(()=>{var A,$,M;if((($=(A=R==null?void 0:R.context)==null?void 0:A.cart)==null?void 0:$.id)&&_e("localStorage"))try{window.localStorage.setItem(he,(M=R.context.cart)==null?void 0:M.id)}catch(j){console.warn("Failed to save cartId to localStorage",j)}},[(yt=(ft=R==null?void 0:R.context)==null?void 0:ft.cart)==null?void 0:yt.id]),h.useEffect(()=>{if(H&&_e("localStorage"))try{window.localStorage.removeItem(he)}catch(A){console.warn("Failed to delete cartId from localStorage",A)}},[H]);const G=h.useCallback(A=>{var $,M;y&&!(($=A.buyerIdentity)!=null&&$.countryCode)&&(A.buyerIdentity==null&&(A.buyerIdentity={}),A.buyerIdentity.countryCode=y),s&&!((M=A.buyerIdentity)!=null&&M.customerAccessToken)&&(A.buyerIdentity==null&&(A.buyerIdentity={}),A.buyerIdentity.customerAccessToken=s),O({type:"CART_CREATE",payload:A})},[y,s,O]),k=ar(R),oe=h.useMemo(()=>{var A,$,M,j,ee,te;return{...($=(A=k==null?void 0:k.context)==null?void 0:A.cart)!=null?$:{lines:[],attributes:[]},status:nr(k.value),error:(M=k==null?void 0:k.context)==null?void 0:M.errors,totalQuantity:(te=(ee=(j=k==null?void 0:k.context)==null?void 0:j.cart)==null?void 0:ee.totalQuantity)!=null?te:0,cartCreate:G,linesAdd(U){var z,ue;(ue=(z=k==null?void 0:k.context)==null?void 0:z.cart)!=null&&ue.id?O({type:"CARTLINE_ADD",payload:{lines:U}}):G({lines:U})},linesRemove(U){O({type:"CARTLINE_REMOVE",payload:{lines:U}})},linesUpdate(U){O({type:"CARTLINE_UPDATE",payload:{lines:U}})},noteUpdate(U){O({type:"NOTE_UPDATE",payload:{note:U}})},buyerIdentityUpdate(U){O({type:"BUYER_IDENTITY_UPDATE",payload:{buyerIdentity:U}})},cartAttributesUpdate(U){O({type:"CART_ATTRIBUTES_UPDATE",payload:{attributes:U}})},discountCodesUpdate(U){O({type:"DISCOUNT_CODES_UPDATE",payload:{discountCodes:U}})},cartFragment:p}},[G,(ht=k==null?void 0:k.context)==null?void 0:ht.cart,(mt=k==null?void 0:k.context)==null?void 0:mt.errors,k.value,p,O]);return D.default.createElement(je.Provider,{value:oe,__self:this,__source:{fileName:tr,lineNumber:424,columnNumber:5}},e)}function nr(e){switch(e){case"uninitialized":case"initializationError":return"uninitialized";case"idle":case"cartCompleted":case"error":return"idle";case"cartFetching":return"fetching";case"cartCreating":return"creating";case"cartLineAdding":case"cartLineRemoving":case"cartLineUpdating":case"noteUpdating":case"buyerIdentityUpdating":case"cartAttributesUpdating":case"discountCodesUpdating":return"updating"}}function ar(e){const[t,r]=h.useTransition(),[a,o]=h.useState(e),i=h.useRef(!1);t&&(i.current=!0);const u=h.useRef(!1);return!t&&i.current&&(u.current=!0),h.useEffect(()=>{r(()=>{u.current||o(e)})},[e]),u.current?e:a}function _e(e){let t;try{t=window[e];const r="__storage_test__";return t.setItem(r,r),t.removeItem(r),!0}catch(r){return r instanceof DOMException&&(r.code===22||r.code===1014||r.name==="QuotaExceededError"||r.name==="NS_ERROR_DOM_QUOTA_REACHED")&&t&&t.length!==0}}function ir(e,t){var r,a;return t.payload.buyerIdentity.countryCode&&((a=(r=e.cart)==null?void 0:r.buyerIdentity)==null?void 0:a.countryCode)!==t.payload.buyerIdentity.countryCode}var or="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/ProductProvider.tsx";const qe=h.createContext(null);function ur({children:e,data:t,initialVariantId:r}){const a=h.useMemo(()=>{var S;return q((S=t.variants)!=null?S:{})},[t.variants]);if(!cr(a))throw new Error("<ProductProvider/> requires 'product.variants.nodes' or 'product.variants.edges'");const o=h.useMemo(()=>sr(a),[a]),[i,u]=h.useState(()=>Ge(r,a)),[n,d]=h.useState(()=>Ze(i));h.useEffect(()=>{const S=Ge(r,a);u(S),d(Ze(S))},[r,a]);const c=h.useCallback((S,b)=>{d(C=>{const p={...C,[S]:b};return u(Ye(a,p)),p})},[d,a]),f=h.useCallback((S,b)=>{var p;const C=Ye(a,{...n,[S]:b});return(p=C==null?void 0:C.availableForSale)!=null?p:!0},[n,a]),l=h.useMemo(()=>{var S;return q((S=t.sellingPlanGroups)!=null?S:{}).map(b=>{var C;return{...b,sellingPlans:q((C=b==null?void 0:b.sellingPlans)!=null?C:{})}})},[t.sellingPlanGroups]),[_,m]=h.useState(void 0),E=h.useMemo(()=>{var S,b;if(!(!i||!_)){if(!((S=i.sellingPlanAllocations)!=null&&S.nodes)&&!((b=i.sellingPlanAllocations)!=null&&b.edges))throw new Error("<ProductProvider/>: You must include 'sellingPlanAllocations.nodes' or 'sellingPlanAllocations.edges' in your variants in order to calculate selectedSellingPlanAllocation");return q(i.sellingPlanAllocations).find(C=>{var p;return((p=C==null?void 0:C.sellingPlan)==null?void 0:p.id)===_.id})}},[i,_]),T=h.useMemo(()=>({variants:a,variantsConnection:t.variants,options:o,selectedVariant:i,setSelectedVariant:u,selectedOptions:n,setSelectedOption:c,setSelectedOptions:d,isOptionInStock:f,selectedSellingPlan:_,setSelectedSellingPlan:m,selectedSellingPlanAllocation:E,sellingPlanGroups:l,sellingPlanGroupsConnection:t.sellingPlanGroups}),[f,o,t.sellingPlanGroups,t.variants,n,_,E,i,l,c,a]);return D.default.createElement(qe.Provider,{value:T,__self:this,__source:{fileName:or,lineNumber:201,columnNumber:5}},e)}function He(){const e=h.useContext(qe);if(!e)throw new Error("'useProduct' must be a child of <ProductProvider />");return e}function Ye(e,t){var r,a;if(!(!e.length||((a=(r=e==null?void 0:e[0])==null?void 0:r.selectedOptions)==null?void 0:a.length)!==Object.keys(t).length))return e==null?void 0:e.find(o=>Object.entries(t).every(([i,u])=>{var n;return(n=o==null?void 0:o.selectedOptions)==null?void 0:n.some(d=>(d==null?void 0:d.name)===i&&(d==null?void 0:d.value)===u)}))}function sr(e){const t=e.reduce((r,a)=>{var o;if(!a.selectedOptions)throw new Error("'getOptions' requires 'variant.selectedOptions'");return(o=a==null?void 0:a.selectedOptions)==null||o.forEach(i=>{var u,n,d,c;r[(u=i==null?void 0:i.name)!=null?u:""]=r[(n=i==null?void 0:i.name)!=null?n:""]||new Set,r[(d=i==null?void 0:i.name)!=null?d:""].add((c=i==null?void 0:i.value)!=null?c:"")}),r},{});return Object.keys(t).map(r=>({name:r,values:Array.from(t[r])}))}function Ge(e,t){if(e){const r=t.find(a=>(a==null?void 0:a.id)===e);return r||console.warn("<ProductProvider/> received a 'initialVariantId' prop, but could not actually find a variant with that ID"),r}if(e===null)return null;if(e===void 0)return t.find(r=>r==null?void 0:r.availableForSale)||t[0]}function Ze(e){return e!=null&&e.selectedOptions?e.selectedOptions.reduce((t,r)=>{var a,o;return t[(a=r==null?void 0:r.name)!=null?a:""]=(o=r==null?void 0:r.value)!=null?o:"",t},{}):{}}function cr(e){return!(!e||!Array.isArray(e))}var lr="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/BaseButton.tsx";function ge(e){const{as:t,onClick:r,defaultOnClick:a,children:o,buttonRef:i,...u}=e,n=h.useCallback(c=>{if(r){const f=r(c);if(typeof f=="boolean"&&f===!1||(c==null?void 0:c.defaultPrevented))return}a==null||a(c)},[a,r]),d=t||"button";return D.default.createElement(d,{ref:i,onClick:n,...u,__self:this,__source:{fileName:lr,lineNumber:59,columnNumber:5}},o)}var We="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/AddToCartButton.tsx";function dr(e){var b;const[t,r]=h.useState(!1),{variantId:a,quantity:o=1,attributes:i,sellingPlanId:u,onClick:n,children:d,accessibleAddingToCartLabel:c,...f}=e,{status:l,linesAdd:_}=ae(),{selectedVariant:m}=He(),E=(b=a!=null?a:m==null?void 0:m.id)!=null?b:"",T=a===null||E===""||m===null||t||f.disabled;h.useEffect(()=>{t&&l==="idle"&&r(!1)},[l,t]);const S=h.useCallback(()=>{r(!0),_([{quantity:o,merchandiseId:E||"",attributes:i,sellingPlanId:u}])},[_,o,E,i,u]);return D.default.createElement(D.default.Fragment,null,D.default.createElement(ge,{...f,disabled:T,onClick:n,defaultOnClick:S,__self:this,__source:{fileName:We,lineNumber:71,columnNumber:7}},d),c?D.default.createElement("p",{style:{position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"},role:"alert","aria-live":"assertive",__self:this,__source:{fileName:We,lineNumber:80,columnNumber:9}},t?c:null):null)}var fr="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/BuyNowButton.tsx";function yr(e){const{cartCreate:t,checkoutUrl:r}=ae(),[a,o]=h.useState(!1),{quantity:i,variantId:u,onClick:n,attributes:d,children:c,...f}=e;h.useEffect(()=>{r&&(window.location.href=r)},[r]);const l=h.useCallback(()=>{o(!0),t({lines:[{quantity:i!=null?i:1,merchandiseId:u,attributes:d}]})},[t,i,u,d]);return D.default.createElement(ge,{disabled:a!=null?a:f.disabled,...f,onClick:n,defaultOnClick:l,__self:this,__source:{fileName:fr,lineNumber:53,columnNumber:5}},c)}var hr="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/CartCheckoutButton.tsx";function mr(e){const[t,r]=h.useState(!1),{status:a,checkoutUrl:o}=ae(),{children:i,...u}=e;return h.useEffect(()=>{t&&o&&a==="idle"&&(window.location.href=o)},[t,a,o]),D.default.createElement(ge,{...u,disabled:t||u.disabled,onClick:()=>r(!0),__self:this,__source:{fileName:hr,lineNumber:28,columnNumber:5}},i)}const _r={DateTime:"string",Decimal:"string",HTML:"string",URL:"string",Color:"string",UnsignedInt64:"string"};var gr="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/ExternalVideo.tsx";function Ke(e){var f,l;const{data:t,options:r,id:a=t.id,frameBorder:o="0",allow:i="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:u=!0,loading:n="lazy",...d}=e;if(!t.embedUrl)throw new Error("<ExternalVideo/> requires the 'embedUrl' property");let c=t.embedUrl;if(r){const _=new URL(t.embedUrl);for(const m of Object.keys(r))_.searchParams.set(m,r[m]);c=_.toString()}return D.default.createElement("iframe",{...d,id:a!=null?a:t.embedUrl,title:(l=(f=t.alt)!=null?f:t.id)!=null?l:"external video",frameBorder:o,allow:i,allowFullScreen:u,src:c,loading:n,__self:this,__source:{fileName:gr,lineNumber:56,columnNumber:5}})}const Er=["cdn.shopify.com","cdn.shopifycdn.net","shopify-assets.shopifycdn.com","shopify-assets.shopifycdn.net"],Sr=["spin.dev"],pr=[...Er,...Sr],X=[352,832,1200,1920,2560];function ze({src:e,width:t,height:r,crop:a,scale:o}){const i=new URL(e),u=o!=null?o:1;if(t){let n;typeof t=="string"?n=(X[0]*u).toString():n=(Number(t)*u).toString(),i.searchParams.append("width",n)}return r&&typeof r=="number"&&i.searchParams.append("height",(r*u).toString()),a&&i.searchParams.append("crop",a),i.toString()}function Qe(e){const t=new URL(e.src);return!pr.some(a=>t.hostname.endsWith(a))||!e.width&&!e.height&&!e.crop&&!e.scale?e.src:ze(e)}function Cr({data:e,loaderOptions:t,elementProps:r}){var o,i,u,n,d,c;let a=null;return(e==null?void 0:e.width)&&(e==null?void 0:e.height)&&(a=(e==null?void 0:e.width)/(e==null?void 0:e.height)),(t==null?void 0:t.width)||(t==null?void 0:t.height)?{width:(o=t==null?void 0:t.width)!=null?o:a&&typeof t.height=="number"?Math.round(a*t.height):null,height:(i=t==null?void 0:t.height)!=null?i:a&&typeof t.width=="number"?Math.round(a*t.width):null}:(r==null?void 0:r.width)||(r==null?void 0:r.height)?{width:(u=r==null?void 0:r.width)!=null?u:a&&typeof r.height=="number"?Math.round(a*r.height):null,height:(n=r==null?void 0:r.height)!=null?n:a&&typeof r.width=="number"?Math.round(a*r.width):null}:(e==null?void 0:e.width)||(e==null?void 0:e.height)?{width:(d=e==null?void 0:e.width)!=null?d:null,height:(c=e==null?void 0:e.height)!=null?c:null}:{width:null,height:null}}var br="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/Image.tsx";function Je({data:e,width:t,height:r,loading:a,loader:o=Qe,loaderOptions:i,widths:u,decoding:n="async",...d}){var E,T,S,b,C,p;if(!e.url){const s=`<Image/>: the 'data' prop requires the 'url' property. Image: ${(E=e.id)!=null?E:"no ID provided"}`;return console.error(s),null}const{width:c,height:f}=Cr({data:e,loaderOptions:i,elementProps:{width:t,height:r}});let l=e.url;if(o&&(l=o({...i,src:e.url,width:c,height:f}),typeof l!="string"||!l))throw new Error(`<Image/>: 'loader' did not return a valid string. Image: ${(T=e.id)!=null?T:e.url}`);const _=t&&c&&t<c?t:c,m=(S=d.srcSet)!=null?S:vr({...i,widths:u,src:e.url,width:_,height:f,loader:o});return Se.createElement("img",{id:(b=e.id)!=null?b:"",alt:(p=(C=e.altText)!=null?C:d.alt)!=null?p:"",loading:a!=null?a:"lazy",...d,src:l,width:c!=null?c:void 0,height:f!=null?f:void 0,srcSet:m,decoding:n,__self:this,__source:{fileName:br,lineNumber:150,columnNumber:5}})}function vr({src:e,width:t,crop:r,scale:a,widths:o,loader:i,height:u}){const n=o&&Array.isArray(o);if(n&&o.some(l=>isNaN(l)))throw new Error(`<Image/>: the 'widths' must be an array of numbers. Image: ${e}`);let d=1;t&&u&&(d=Number(u)/Number(t));let c=n?o:X;!n&&t&&t<X[X.length-1]&&(c=X.filter(l=>l<=t));const f=i||ze;return c.map(l=>`${f({src:e,width:l,height:r?Number(l)*d:void 0,crop:r,scale:a})} ${l}w`).join(", ")}var Xe="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/Video.tsx";function et(e){var c,f;const{data:t,previewImageOptions:r,id:a=t.id,playsInline:o=!0,controls:i=!0,sourceProps:u={},...n}=e,d=Qe({src:(f=(c=t.previewImage)==null?void 0:c.url)!=null?f:"",...r});if(!t.sources)throw new Error("<Video/> requires a 'data.sources' array");return D.default.createElement("video",{...n,id:a,playsInline:o,controls:i,poster:d,__self:this,__source:{fileName:Xe,lineNumber:42,columnNumber:5}},t.sources.map(l=>{if(!((l==null?void 0:l.url)&&(l==null?void 0:l.mimeType)))throw new Error("<Video/> needs 'source.url' and 'source.mimeType'");return D.default.createElement("source",{...u,key:l.url,src:l.url,type:l.mimeType,__self:this,__source:{fileName:Xe,lineNumber:54,columnNumber:11}})}))}const tt={};function Tr(e,t){const r=tt[e];if(r)return r;const a=new Promise((o,i)=>{const u=document.createElement("script");t!=null&&t.module?u.type="module":u.type="text/javascript",u.src=e,u.onload=()=>{o(!0)},u.onerror=()=>{i(!1)},(t==null?void 0:t.in)==="head"?document.head.appendChild(u):document.body.appendChild(u)});return tt[e]=a,a}function rt(e,t){const[r,a]=h.useState("loading"),o=JSON.stringify(t);return h.useEffect(()=>{async function i(){try{a("loading"),await Tr(e,t),a("done")}catch{a("error")}}i()},[e,o,t]),r}var Ar="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/ModelViewer.tsx";function nt(e){var c,f,l,_,m,E,T,S,b,C,p;const[t,r]=h.useState(void 0),a=h.useCallback(s=>{r(s)},[]),{data:o,children:i,className:u,...n}=e,d=rt("https://unpkg.com/@google/model-viewer@v1.12.1/dist/model-viewer.min.js",{module:!0});return h.useEffect(()=>{if(!!t)return n.onError&&t.addEventListener("error",n.onError),n.onLoad&&t.addEventListener("load",n.onLoad),n.onPreload&&t.addEventListener("preload",n.onPreload),n.onModelVisibility&&t.addEventListener("model-visibility",n.onModelVisibility),n.onProgress&&t.addEventListener("progress",n.onProgress),n.onArStatus&&t.addEventListener("ar-status",n.onArStatus),n.onArTracking&&t.addEventListener("ar-tracking",n.onArTracking),n.onQuickLookButtonTapped&&t.addEventListener("quick-look-button-tapped",n.onQuickLookButtonTapped),n.onCameraChange&&t.addEventListener("camera-change",n.onCameraChange),n.onEnvironmentChange&&t.addEventListener("environment-change",n.onEnvironmentChange),n.onPlay&&t.addEventListener("play",n.onPlay),n.onPause&&t.addEventListener("ar-status",n.onPause),n.onSceneGraphReady&&t.addEventListener("scene-graph-ready",n.onSceneGraphReady),()=>{t!=null&&(n.onError&&t.removeEventListener("error",n.onError),n.onLoad&&t.removeEventListener("load",n.onLoad),n.onPreload&&t.removeEventListener("preload",n.onPreload),n.onModelVisibility&&t.removeEventListener("model-visibility",n.onModelVisibility),n.onProgress&&t.removeEventListener("progress",n.onProgress),n.onArStatus&&t.removeEventListener("ar-status",n.onArStatus),n.onArTracking&&t.removeEventListener("ar-tracking",n.onArTracking),n.onQuickLookButtonTapped&&t.removeEventListener("quick-look-button-tapped",n.onQuickLookButtonTapped),n.onCameraChange&&t.removeEventListener("camera-change",n.onCameraChange),n.onEnvironmentChange&&t.removeEventListener("environment-change",n.onEnvironmentChange),n.onPlay&&t.removeEventListener("play",n.onPlay),n.onPause&&t.removeEventListener("ar-status",n.onPause),n.onSceneGraphReady&&t.removeEventListener("scene-graph-ready",n.onSceneGraphReady))}},[t,n.onArStatus,n.onArTracking,n.onCameraChange,n.onEnvironmentChange,n.onError,n.onLoad,n.onModelVisibility,n.onPause,n.onPlay,n.onPreload,n.onProgress,n.onQuickLookButtonTapped,n.onSceneGraphReady]),d!=="done"?null:(f=(c=o.sources)==null?void 0:c[0])!=null&&f.url?D.default.createElement("model-viewer",{ref:a,...n,className:u,id:(l=n.id)!=null?l:o.id,src:o.sources[0].url,alt:(_=o.alt)!=null?_:null,"camera-controls":(m=n.cameraControls)!=null?m:!0,poster:(T=n.poster||((E=o.previewImage)==null?void 0:E.url))!=null?T:null,autoplay:(S=n.autoplay)!=null?S:!0,loading:n.loading,reveal:n.reveal,ar:n.ar,"ar-modes":n.arModes,"ar-scale":n.arScale,"ar-placement":n.arPlacement,"ios-src":n.iosSrc,"touch-action":n.touchAction,"disable-zoom":n.disableZoom,"orbit-sensitivity":n.orbitSensitivity,"auto-rotate":n.autoRotate,"auto-rotate-delay":n.autoRotateDelay,"rotation-per-second":n.rotationPerSecond,"interaction-policy":n.interactionPolicy,"interaction-prompt":n.interactionPrompt,"interaction-prompt-style":n.interactionPromptStyle,"interaction-prompt-threshold":n.interactionPromptThreshold,"camera-orbit":n.cameraOrbit,"camera-target":n.cameraTarget,"field-of-view":n.fieldOfView,"max-camera-orbit":n.maxCameraOrbit,"min-camera-orbit":n.minCameraOrbit,"max-field-of-view":n.maxFieldOfView,"min-field-of-view":n.minFieldOfView,bounds:n.bounds,"interpolation-decay":(b=n.interpolationDecay)!=null?b:100,"skybox-image":n.skyboxImage,"environment-image":n.environmentImage,exposure:n.exposure,"shadow-intensity":(C=n.shadowIntensity)!=null?C:0,"shadow-softness":(p=n.shadowSoftness)!=null?p:0,"animation-name":n.animationName,"animation-crossfade-duration":n.animationCrossfadeDuration,"variant-name":n.variantName,orientation:n.orientation,scale:n.scale,__self:this,__source:{fileName:Ar,lineNumber:222,columnNumber:5}},i):(console.error("<ModelViewer/> requires 'data.sources' prop to be an array, with an object that has a property 'url' on it. Rendering 'null'"),null)}var ie="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/MediaFile.tsx";function wr({data:e,mediaOptions:t,...r}){switch(e.__typename){case"MediaImage":return e.image?D.default.createElement(Je,{...r,...t==null?void 0:t.image,data:e.image,__self:this,__source:{fileName:ie,lineNumber:54,columnNumber:9}}):(console.warn("<MediaFile/>: 'data.image' does not exist for __typename of 'MediaImage'; rendering 'null' by default."),null);case"Video":return D.default.createElement(et,{...r,...t==null?void 0:t.video,data:e,__self:this,__source:{fileName:ie,lineNumber:63,columnNumber:9}});case"ExternalVideo":return D.default.createElement(Ke,{...r,...t==null?void 0:t.externalVideo,data:e,__self:this,__source:{fileName:ie,lineNumber:68,columnNumber:9}});case"Model3d":return D.default.createElement(nt,{...r,...t==null?void 0:t.modelViewer,data:e,__self:this,__source:{fileName:ie,lineNumber:78,columnNumber:9}});default:return console.error("<MediaFile /> requires the '__typename' property to exist on the 'data' prop in order to render the matching sub-component for this type of media. Rendering 'null' by default"),null}}function Nr(e){var t,r,a,o;if(!e.type)return console.error("parseMetafield(): The 'type' field is required in order to parse the Metafield. Returning 'parsedValue' of 'null'"),{...e,parsedValue:null};switch(e.type){case"boolean":return{...e,parsedValue:e.value==="true"};case"collection_reference":case"file_reference":case"page_reference":case"product_reference":case"variant_reference":return{...e,parsedValue:e.reference};case"color":case"multi_line_text_field":case"single_line_text_field":case"url":return{...e,parsedValue:e.value};case"dimension":case"money":case"json":case"rating":case"volume":case"weight":case"list.color":case"list.dimension":case"list.number_integer":case"list.number_decimal":case"list.rating":case"list.single_line_text_field":case"list.url":case"list.volume":case"list.weight":{let i=null;try{i=at((t=e.value)!=null?t:"")}catch{console.error("parseMetafield(): attempted to JSON.parse the 'metafield.value' property, but failed. Returning 'null' for 'parsedValue'"),i=null}return{...e,parsedValue:i}}case"date":case"date_time":return{...e,parsedValue:new Date((r=e.value)!=null?r:"")};case"list.date":case"list.date_time":{const i=at((a=e==null?void 0:e.value)!=null?a:"");return{...e,parsedValue:i.map(u=>new Date(u))}}case"number_decimal":case"number_integer":return{...e,parsedValue:Number(e.value)};case"list.collection_reference":case"list.file_reference":case"list.page_reference":case"list.product_reference":case"list.variant_reference":return{...e,parsedValue:q((o=e.references)!=null?o:void 0)};default:{const i=`parseMetafield(): the 'metafield.type' you passed in is not supported. Your type: "${e.type}". If you believe this is an error, please open an issue on GitHub.`;return console.error(`${i} Returning 'parsedValue' of 'null'`),{...e,parsedValue:null}}}}function at(e){return String(e).includes("__proto__")?JSON.parse(e,(t,r)=>{if(t!=="__proto__")return r}):JSON.parse(e)}function it(e){const{locale:t}=ne();if(!t)throw new Error("useMoney(): Unable to get 'locale' from 'useShop()', which means that 'locale' was not passed to '<ShopifyProvider/>'. 'locale' is required for 'useMoney()' to work");const r=parseFloat(e.amount),a=h.useMemo(()=>({style:"currency",currency:e.currencyCode}),[e.currencyCode]),o=W(t,a),i=W(t,{...a,currencyDisplay:"name"}),u=W(t,{...a,currencyDisplay:"narrowSymbol"}),n=W(t,{...a,minimumFractionDigits:0,maximumFractionDigits:0}),d=W(t),c=W(t,{minimumFractionDigits:0,maximumFractionDigits:0}),f=_=>_.type==="currency",l=h.useMemo(()=>({original:()=>e,currencyCode:()=>e.currencyCode,localizedString:()=>o().format(r),parts:()=>o().formatToParts(r),withoutTrailingZeros:()=>r%1===0?n().format(r):o().format(r),withoutTrailingZerosAndCurrency:()=>r%1===0?c().format(r):d().format(r),currencyName:()=>{var _,m;return(m=(_=i().formatToParts(r).find(f))==null?void 0:_.value)!=null?m:e.currencyCode},currencySymbol:()=>{var _,m;return(m=(_=o().formatToParts(r).find(f))==null?void 0:_.value)!=null?m:e.currencyCode},currencyNarrowSymbol:()=>{var _,m;return(m=(_=u().formatToParts(r).find(f))==null?void 0:_.value)!=null?m:""},amount:()=>o().formatToParts(r).filter(_=>["decimal","fraction","group","integer","literal"].includes(_.type)).map(_=>_.value).join("")}),[e,r,i,o,u,d,n,c]);return h.useMemo(()=>new Proxy(l,{get:(_,m)=>{var E;return(E=Reflect.get(_,m))==null?void 0:E.call(null)}}),[l])}function W(e,t){return h.useMemo(()=>{let r;return()=>r!=null?r:r=new Intl.NumberFormat(e,t)},[e,t])}var Ir="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/Money.tsx";function Ee({data:e,as:t,withoutCurrency:r,withoutTrailingZeros:a,measurement:o,measurementSeparator:i="/",...u}){if(!Or(e))throw new Error("<Money/> needs a valid 'data' prop that has 'amount' and 'currencyCode'");const n=it(e),d=t!=null?t:"div";let c=n.localizedString;return(r||a)&&(r&&!a?c=n.amount:!r&&a?c=n.withoutTrailingZeros:c=n.withoutTrailingZerosAndCurrency),D.default.createElement(d,{...u,__self:this,__source:{fileName:Ir,lineNumber:65,columnNumber:5}},c,o&&o.referenceUnit&&D.default.createElement(D.default.Fragment,null,i,o.referenceUnit))}function Or(e){return typeof e.amount=="string"&&!!e.amount&&typeof e.currencyCode=="string"&&!!e.currencyCode}var ot="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/ProductPrice.tsx";function Dr(e){var c,f,l,_,m,E,T,S;const{priceType:t="regular",variantId:r,valueType:a="min",data:o,...i}=e;if(o==null)throw new Error("<ProductPrice/> requires a product as the 'data' prop");let u,n;const d=r&&(f=q((c=o==null?void 0:o.variants)!=null?c:{}).find(b=>(b==null?void 0:b.id)===r))!=null?f:null;if(t==="compareAt")if(r&&d){if(((l=d.compareAtPriceV2)==null?void 0:l.amount)===((_=d.priceV2)==null?void 0:_.amount))return null;u=d.compareAtPriceV2}else a==="max"?u=(m=o==null?void 0:o.compareAtPriceRange)==null?void 0:m.maxVariantPrice:u=(E=o==null?void 0:o.compareAtPriceRange)==null?void 0:E.minVariantPrice;else r&&d?(u=d.priceV2,a==="unit"&&(u=d.unitPrice,n=d.unitPriceMeasurement)):a==="max"?u=(T=o.priceRange)==null?void 0:T.maxVariantPrice:u=(S=o.priceRange)==null?void 0:S.minVariantPrice;return u?n?D.default.createElement(Ee,{...i,data:u,measurement:n,__self:this,__source:{fileName:ot,lineNumber:81,columnNumber:7}}):D.default.createElement(Ee,{...i,data:u,__self:this,__source:{fileName:ot,lineNumber:85,columnNumber:10}}):null}var ut="/home/runner/work/hydrogen-ui/hydrogen-ui/packages/react/src/ShopPayButton.tsx";const Lr="https://cdn.shopify.com/shopifycloud/shop-js/v1.0/client.js";function Ur({variantIds:e,className:t,variantIdsAndQuantities:r,width:a}){const{storeDomain:o}=ne(),i=rt(Lr);let u;if(e&&r)throw new Error(Rr);if(e)u=e.reduce((d,c)=>{const f=st(c);return f&&d.push(f),d},[]);else if(r)u=r.reduce((d,c)=>{var l;const f=st(c==null?void 0:c.id);return f&&d.push(`${f}:${(l=c==null?void 0:c.quantity)!=null?l:1}`),d},[]);else throw new Error(kr);const n=a?{"--shop-pay-button-width":a}:void 0;return D.default.createElement("div",{className:t,style:n,__self:this,__source:{fileName:ut,lineNumber:90,columnNumber:5}},i==="done"&&D.default.createElement("shop-pay-button",{"store-url":o,variants:u.join(","),__self:this,__source:{fileName:ut,lineNumber:92,columnNumber:9}}))}function st(e){if(!!e)return e.split("/").pop()}const kr='You must pass in either "variantIds" or "variantIdsAndQuantities" to ShopPayButton',Rr="You must provide either a variantIds or variantIdsAndQuantities prop, but not both in the ShopPayButton component";L.AddToCartButton=dr,L.BuyNowButton=yr,L.CartCheckoutButton=mr,L.CartProvider=rr,L.ExternalVideo=Ke,L.Image=Je,L.MediaFile=wr,L.ModelViewer=nt,L.Money=Ee,L.ProductPrice=Dr,L.ProductProvider=ur,L.ShopPayButton=Ur,L.ShopifyProvider=qt,L.Video=et,L.createStorefrontClient=Bt,L.flattenConnection=q,L.parseMetafield=Nr,L.storefrontApiCustomScalars=_r,L.useCart=ae,L.useMoney=it,L.useProduct=He,L.useShop=ne,Object.defineProperties(L,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
277
+ `,te="2023-01";function zt({storeDomain:e,privateStorefrontToken:t,publicStorefrontToken:r,storefrontApiVersion:n,contentType:i}){return n!==te&&Kt(`StorefrontClient: The Storefront API version that you're using is different than the version this build of Hydrogen React is targeting. You may run into unexpected errors if these versions don't match. Received verion: "${n}"; expected version "${te}"`),{getShopifyDomain(a){return(a==null?void 0:a.storeDomain)??e},getStorefrontApiUrl(a){const u=(a==null?void 0:a.storeDomain)??e;return`${u}${u.endsWith("/")?"":"/"}api/${(a==null?void 0:a.storefrontApiVersion)??n}/graphql.json`},getPrivateTokenHeaders(a){if(!t&&!(a!=null&&a.privateStorefrontToken))throw new Error("StorefrontClient: You did not pass in a 'privateStorefrontToken' while using 'getPrivateTokenHeaders()'");return{"content-type":((a==null?void 0:a.contentType)??i)==="graphql"?"application/graphql":"application/json","X-SDK-Variant":"hydrogen-react","X-SDK-Variant-Source":"react","X-SDK-Version":n,"Shopify-Storefront-Private-Token":(a==null?void 0:a.privateStorefrontToken)??t??"",...a!=null&&a.buyerIp?{"Shopify-Storefront-Buyer-IP":a.buyerIp}:{}}},getPublicTokenHeaders(a){if(!r&&!(a!=null&&a.publicStorefrontToken))throw new Error("StorefrontClient: You did not pass in a 'publicStorefrontToken' while using 'getPublicTokenHeaders()'");const u=(a==null?void 0:a.contentType)??i??"json";return je(u,n,(a==null?void 0:a.publicStorefrontToken)??r??"")}}}function je(e,t,r){return{"content-type":e==="graphql"?"application/graphql":"application/json","X-SDK-Variant":"hydrogen-react","X-SDK-Variant-Source":"react","X-SDK-Version":t,"X-Shopify-Storefront-Access-Token":r}}const Ye=new Set,Kt=e=>{Ye.has(e)||(console.warn(e),Ye.add(e))},We=s.createContext({storeDomain:"test",storefrontToken:"abc123",storefrontApiVersion:te,countryIsoCode:"US",languageIsoCode:"EN",getStorefrontApiUrl(){return""},getPublicTokenHeaders(){return{}},getShopifyDomain(){return""}});function Qt({children:e,...t}){if(!t.countryIsoCode||!t.languageIsoCode||!t.storeDomain||!t.storefrontToken||!t.storefrontApiVersion)throw new Error("Please provide the necessary props to '<ShopifyProvider/>'");t.storefrontApiVersion!==te&&console.warn(`<ShopifyProvider/>: This version of Hydrogen React is built for Shopify's Storefront API version ${te}, but it looks like you're using version ${t.storefrontApiVersion}. There may be issues or bugs if you use a mismatched version of Hydrogen React and the Storefront API.`);const r=s.useMemo(()=>{function n(i){return(i==null?void 0:i.storeDomain)??t.storeDomain}return{...t,getPublicTokenHeaders(i){return je(i.contentType,t.storefrontApiVersion,i.storefrontToken??t.storefrontToken)},getShopifyDomain:n,getStorefrontApiUrl(i){const a=n({storeDomain:(i==null?void 0:i.storeDomain)??t.storeDomain});return`${a}${a.endsWith("/")?"":"/"}api/${(i==null?void 0:i.storefrontApiVersion)??t.storefrontApiVersion}/graphql.json`}}},[t]);return s.createElement(We.Provider,{value:r},e)}function de(){const e=s.useContext(We);if(!e)throw new Error("'useShop()' must be a descendent of <ShopifyProvider/>");return e}const Te="shopifyCartId",Jt="Shopify-Storefront-Id",Xt="Shopify-Storefront-Y",er="Shopify-Storefront-S",W="_shopify_y",Z="_shopify_s";var tr=new Set(["domain","path","max-age","expires","samesite","secure","httponly"]);function rr(e){let t={},r,n,i=0,a=e.split(/;\s*/g),u,o;for(;i<a.length;i++)if(n=a[i],r=n.indexOf("="),~r){if(u=n.substring(0,r++).trim(),o=n.substring(r).trim(),o[0]==='"'&&(o=o.substring(1,o.length-1)),~o.indexOf("%"))try{o=decodeURIComponent(o)}catch{}tr.has(n=u.toLowerCase())?n==="expires"?t.expires=new Date(o):n==="max-age"?t.maxage=+o:t[n]=o:t[u]=o}else(u=n.trim().toLowerCase())&&(u==="httponly"||u==="secure")&&(t[u]=!0);return t}function nr(e,t,r={}){let n=e+"="+encodeURIComponent(t);return r.expires&&(n+="; Expires="+new Date(r.expires).toUTCString()),r.maxage!=null&&r.maxage>=0&&(n+="; Max-Age="+(r.maxage|0)),r.domain&&(n+="; Domain="+r.domain),r.path&&(n+="; Path="+r.path),r.samesite&&(n+="; SameSite="+r.samesite),(r.secure||r.samesite==="None")&&(n+="; Secure"),r.httponly&&(n+="; HttpOnly"),n}const Ze="xxxx-4xxx-xxxx-xxxxxxxxxxxx";function fe(){let e="";try{const t=window.crypto,r=new Uint16Array(31);t.getRandomValues(r);let n=0;e=Ze.replace(/[x]/g,i=>{const a=r[n]%16,u=i==="x"?a:a&3|8;return n++,u.toString(16)}).toUpperCase()}catch{e=Ze.replace(/[x]/g,r=>{const n=Math.random()*16|0;return(r==="x"?n:n&3|8).toString(16)}).toUpperCase()}return`${or()}-${e}`}function or(){let e=0,t=0;e=new Date().getTime()>>>0;try{t=performance.now()>>>0}catch{t=0}const r=Math.abs(e+t).toString(16).toLowerCase();return r.padStart(8-r.length,"0")}function ye(e){const t=rr(e);return{[W]:t[W]||"",[Z]:t[Z]||""}}function ar(){const{storefrontId:e,getPublicTokenHeaders:t,getStorefrontApiUrl:r}=de();return s.useCallback(({query:n,variables:i})=>{const a=t({contentType:"json"});e&&(a[Jt]=e);const u=ye(document.cookie);return a[Xt]=u[W],a[er]=u[Z],fetch(r(),{method:"POST",headers:a,body:JSON.stringify({query:n.toString(),variables:i})}).then(o=>o.json()).catch(o=>({data:void 0,errors:o.toString()}))},[t,e,r])}function ir({numCartLines:e,cartFragment:t,countryCode:r="US"}){const n=ar(),i=s.useCallback(E=>n({query:Wt(t),variables:{id:E,numCartLines:e,country:r}}),[n,t,e,r]),a=s.useCallback(E=>n({query:qt(t),variables:{input:E,numCartLines:e,country:r}}),[t,r,n,e]),u=s.useCallback((E,g)=>n({query:xt(t),variables:{cartId:E,lines:g,numCartLines:e,country:r}}),[t,r,n,e]),o=s.useCallback((E,g)=>n({query:Bt(t),variables:{cartId:E,lines:g,numCartLines:e,country:r}}),[t,r,n,e]),h=s.useCallback((E,g)=>n({query:Ft(t),variables:{cartId:E,lines:g,numCartLines:e,country:r}}),[t,r,n,e]),y=s.useCallback((E,g)=>n({query:Ht(t),variables:{cartId:E,note:g,numCartLines:e,country:r}}),[n,t,e,r]),l=s.useCallback((E,g)=>n({query:Gt(t),variables:{cartId:E,buyerIdentity:g,numCartLines:e,country:r}}),[t,r,n,e]),d=s.useCallback((E,g)=>n({query:jt(t),variables:{cartId:E,attributes:g,numCartLines:e,country:r}}),[t,r,n,e]),p=s.useCallback((E,g)=>n({query:Yt(t),variables:{cartId:E,discountCodes:g,numCartLines:e,country:r}}),[t,r,n,e]);return s.useMemo(()=>({cartFetch:i,cartCreate:a,cartLineAdd:u,cartLineUpdate:o,cartLineRemove:h,noteUpdate:y,buyerIdentityUpdate:l,cartAttributesUpdate:d,discountCodesUpdate:p,cartFragment:t}),[i,a,u,o,h,y,l,d,p,t])}function x(e,t){return{entry:[...(t==null?void 0:t.entryActions)||[],Q({lastValidCart:r=>r==null?void 0:r.cart}),"onCartActionEntry","onCartActionOptimisticUI",e],on:{RESOLVE:{target:(t==null?void 0:t.resolveTarget)||"idle",actions:[Q({prevCart:r=>r==null?void 0:r.lastValidCart,cart:(r,n)=>{var i;return(i=n==null?void 0:n.payload)==null?void 0:i.cart},rawCartResult:(r,n)=>{var i;return(i=n==null?void 0:n.payload)==null?void 0:i.rawCartResult},errors:r=>{}})]},ERROR:{target:(t==null?void 0:t.errorTarget)||"error",actions:[Q({prevCart:r=>r==null?void 0:r.lastValidCart,cart:r=>r==null?void 0:r.lastValidCart,errors:(r,n)=>{var i;return(i=n==null?void 0:n.payload)==null?void 0:i.errors}})]},CART_COMPLETED:{target:"cartCompleted",actions:Q({prevCart:r=>{},cart:r=>{},lastValidCart:r=>{},rawCartResult:r=>{},errors:r=>{}})}},exit:["onCartActionComplete",...(t==null?void 0:t.exitActions)||[]]}}const re={CART_FETCH:{target:"cartFetching"},CART_CREATE:{target:"cartCreating"},CART_SET:{target:"idle",actions:[Q({rawCartResult:(e,t)=>t.payload.cart,cart:(e,t)=>Ae(t.payload.cart)})]}},ze={CARTLINE_ADD:{target:"cartLineAdding"},CARTLINE_UPDATE:{target:"cartLineUpdating"},CARTLINE_REMOVE:{target:"cartLineRemoving"},NOTE_UPDATE:{target:"noteUpdating"},BUYER_IDENTITY_UPDATE:{target:"buyerIdentityUpdating"},CART_ATTRIBUTES_UPDATE:{target:"cartAttributesUpdating"},DISCOUNT_CODES_UPDATE:{target:"discountCodesUpdating"}};function ur(e){return Me({id:"Cart",initial:e?"idle":"uninitialized",context:{cart:e&&Ae(e)},states:{uninitialized:{on:re},cartCompleted:{on:re},initializationError:{on:re},idle:{on:{...re,...ze}},error:{on:{...re,...ze}},cartFetching:x("cartFetchAction",{errorTarget:"initializationError"}),cartCreating:x("cartCreateAction",{errorTarget:"initializationError"}),cartLineRemoving:x("cartLineRemoveAction"),cartLineUpdating:x("cartLineUpdateAction"),cartLineAdding:x("cartLineAddAction"),noteUpdating:x("noteUpdateAction"),buyerIdentityUpdating:x("buyerIdentityUpdateAction"),cartAttributesUpdating:x("cartAttributesUpdateAction"),discountCodesUpdating:x("discountCodesUpdateAction")}})}function sr({numCartLines:e,onCartActionEntry:t,onCartActionOptimisticUI:r,onCartActionComplete:n,data:i,cartFragment:a,countryCode:u}){const{cartFetch:o,cartCreate:h,cartLineAdd:y,cartLineUpdate:l,cartLineRemove:d,noteUpdate:p,buyerIdentityUpdate:E,cartAttributesUpdate:g,discountCodesUpdate:b}=ir({numCartLines:e,cartFragment:a,countryCode:u}),_=s.useMemo(()=>ur(i),[i]),[L,w,C]=Mt(_,{actions:{cartFetchAction:async(c,f)=>{var S;if(f.type!=="CART_FETCH")return;const{data:m,errors:T}=await o((S=f==null?void 0:f.payload)==null?void 0:S.cartId),I=q(f,m==null?void 0:m.cart,T);w(I)},cartCreateAction:async(c,f)=>{var S;if(f.type!=="CART_CREATE")return;const{data:m,errors:T}=await h(f==null?void 0:f.payload),I=q(f,(S=m==null?void 0:m.cartCreate)==null?void 0:S.cart,T);w(I)},cartLineAddAction:async(c,f)=>{var S,D;if(f.type!=="CARTLINE_ADD"||!((S=c==null?void 0:c.cart)!=null&&S.id))return;const{data:m,errors:T}=await y(c.cart.id,f.payload.lines),I=q(f,(D=m==null?void 0:m.cartLinesAdd)==null?void 0:D.cart,T);w(I)},cartLineUpdateAction:async(c,f)=>{var S,D;if(f.type!=="CARTLINE_UPDATE"||!((S=c==null?void 0:c.cart)!=null&&S.id))return;const{data:m,errors:T}=await l(c.cart.id,f.payload.lines),I=q(f,(D=m==null?void 0:m.cartLinesUpdate)==null?void 0:D.cart,T);w(I)},cartLineRemoveAction:async(c,f)=>{var S,D;if(f.type!=="CARTLINE_REMOVE"||!((S=c==null?void 0:c.cart)!=null&&S.id))return;const{data:m,errors:T}=await d(c.cart.id,f.payload.lines),I=q(f,(D=m==null?void 0:m.cartLinesRemove)==null?void 0:D.cart,T);w(I)},noteUpdateAction:async(c,f)=>{var S,D;if(f.type!=="NOTE_UPDATE"||!((S=c==null?void 0:c.cart)!=null&&S.id))return;const{data:m,errors:T}=await p(c.cart.id,f.payload.note),I=q(f,(D=m==null?void 0:m.cartNoteUpdate)==null?void 0:D.cart,T);w(I)},buyerIdentityUpdateAction:async(c,f)=>{var S,D;if(f.type!=="BUYER_IDENTITY_UPDATE"||!((S=c==null?void 0:c.cart)!=null&&S.id))return;const{data:m,errors:T}=await E(c.cart.id,f.payload.buyerIdentity),I=q(f,(D=m==null?void 0:m.cartBuyerIdentityUpdate)==null?void 0:D.cart,T);w(I)},cartAttributesUpdateAction:async(c,f)=>{var S,D;if(f.type!=="CART_ATTRIBUTES_UPDATE"||!((S=c==null?void 0:c.cart)!=null&&S.id))return;const{data:m,errors:T}=await g(c.cart.id,f.payload.attributes),I=q(f,(D=m==null?void 0:m.cartAttributesUpdate)==null?void 0:D.cart,T);w(I)},discountCodesUpdateAction:async(c,f)=>{var S,D;if(f.type!=="DISCOUNT_CODES_UPDATE"||!((S=c==null?void 0:c.cart)!=null&&S.id))return;const{data:m,errors:T}=await b(c.cart.id,f.payload.discountCodes),I=q(f,(D=m==null?void 0:m.cartDiscountCodesUpdate)==null?void 0:D.cart,T);w(I)},...t&&{onCartActionEntry:(c,f)=>{cr(f)&&t(c,f)}},...r&&{onCartActionOptimisticUI:Q((c,f)=>r(c,f))},...n&&{onCartActionComplete:(c,f)=>{lr(f)&&n(c,f)}}}});return s.useMemo(()=>[L,w,C],[L,w,C])}function Ae(e){return{...e,lines:H(e==null?void 0:e.lines),note:e.note??void 0}}function q(e,t,r){return r?{type:"ERROR",payload:{errors:r,cartActionEvent:e}}:t?{type:"RESOLVE",payload:{cart:Ae(t),rawCartResult:t,cartActionEvent:e}}:{type:"CART_COMPLETED",payload:{cartActionEvent:e}}}function cr(e){return e.type==="CART_CREATE"||e.type==="CARTLINE_ADD"||e.type==="CARTLINE_UPDATE"||e.type==="CARTLINE_REMOVE"||e.type==="NOTE_UPDATE"||e.type==="BUYER_IDENTITY_UPDATE"||e.type==="CART_ATTRIBUTES_UPDATE"||e.type==="DISCOUNT_CODES_UPDATE"}function lr(e){return e.type==="RESOLVE"||e.type==="ERROR"||e.type==="CART_COMPLETED"}const Ke=s.createContext(null);function ne(){const e=s.useContext(Ke);if(!e)throw new Error("Expected a Cart Context, but no Cart Context was found");return e}function dr({children:e,numCartLines:t,onCreate:r,onLineAdd:n,onLineRemove:i,onLineUpdate:a,onNoteUpdate:u,onBuyerIdentityUpdate:o,onAttributesUpdate:h,onDiscountCodesUpdate:y,onCreateComplete:l,onLineAddComplete:d,onLineRemoveComplete:p,onLineUpdateComplete:E,onNoteUpdateComplete:g,onBuyerIdentityUpdateComplete:b,onAttributesUpdateComplete:_,onDiscountCodesUpdateComplete:L,data:w,cartFragment:C=Zt,customerAccessToken:c,countryCode:f="US"}){var Et,pt,_t,St,vt,Ct,Tt;f&&(f=f.toUpperCase());const[m,T]=s.useState(f),[I,S]=s.useState(c),D=s.useRef(!1);(m!==f||I!==c)&&(T(f),S(c),D.current=!1);const[U,V]=sr({numCartLines:t,data:w,cartFragment:C,countryCode:f,onCartActionEntry(v,k){try{switch(k.type){case"CART_CREATE":return r==null?void 0:r();case"CARTLINE_ADD":return n==null?void 0:n();case"CARTLINE_REMOVE":return i==null?void 0:i();case"CARTLINE_UPDATE":return a==null?void 0:a();case"NOTE_UPDATE":return u==null?void 0:u();case"BUYER_IDENTITY_UPDATE":return o==null?void 0:o();case"CART_ATTRIBUTES_UPDATE":return h==null?void 0:h();case"DISCOUNT_CODES_UPDATE":return y==null?void 0:y()}}catch(M){console.error("Cart entry action failed",M)}},onCartActionOptimisticUI(v,k){var M,B,N,se;if(!v.cart)return{...v};switch(k.type){case"CARTLINE_REMOVE":return{...v,cart:{...v.cart,lines:(B=(M=v==null?void 0:v.cart)==null?void 0:M.lines)==null?void 0:B.filter(R=>(R==null?void 0:R.id)&&!k.payload.lines.includes(R==null?void 0:R.id))}};case"CARTLINE_UPDATE":return{...v,cart:{...v.cart,lines:(se=(N=v==null?void 0:v.cart)==null?void 0:N.lines)==null?void 0:se.map(R=>{const De=k.payload.lines.find(({id:ln})=>ln===(R==null?void 0:R.id));return De&&De.quantity?{...R,quantity:De.quantity}:R})}}}return{...v}},onCartActionComplete(v,k){const M=k.payload.cartActionEvent;try{switch(k.type){case"RESOLVE":switch(M.type){case"CART_CREATE":return l==null?void 0:l();case"CARTLINE_ADD":return d==null?void 0:d();case"CARTLINE_REMOVE":return p==null?void 0:p();case"CARTLINE_UPDATE":return E==null?void 0:E();case"NOTE_UPDATE":return g==null?void 0:g();case"BUYER_IDENTITY_UPDATE":return hr(v,M)&&(D.current=!0),b==null?void 0:b();case"CART_ATTRIBUTES_UPDATE":return _==null?void 0:_();case"DISCOUNT_CODES_UPDATE":return L==null?void 0:L()}}}catch(B){console.error("onCartActionComplete failed",B)}}}),$=s.useRef(!1),j=U.matches("cartCompleted"),ee=(U.value==="idle"||U.value==="error"||U.value==="cartCompleted")&&f!==((_t=(pt=(Et=U==null?void 0:U.context)==null?void 0:Et.cart)==null?void 0:pt.buyerIdentity)==null?void 0:_t.countryCode)&&!U.context.errors,F=s.useRef(!1);s.useEffect(()=>{if(!$.current&&!F.current){if(!w&&be("localStorage")){F.current=!0;try{const v=window.localStorage.getItem(Te);v&&V({type:"CART_FETCH",payload:{cartId:v}})}catch(v){console.warn("error fetching cartId"),console.warn(v)}}$.current=!0}},[w,$,V]),s.useEffect(()=>{!ee||D.current||V({type:"BUYER_IDENTITY_UPDATE",payload:{buyerIdentity:{countryCode:f,customerAccessToken:c}}})},[f,c,ee,D,V]);const O=s.useCallback(v=>{if(!$.current)return console.warn("Cart isn't ready yet");V(v)},[V]);s.useEffect(()=>{var v,k,M;if((k=(v=U==null?void 0:U.context)==null?void 0:v.cart)!=null&&k.id&&be("localStorage"))try{window.localStorage.setItem(Te,(M=U.context.cart)==null?void 0:M.id)}catch(B){console.warn("Failed to save cartId to localStorage",B)}},[(vt=(St=U==null?void 0:U.context)==null?void 0:St.cart)==null?void 0:vt.id]),s.useEffect(()=>{if(j&&be("localStorage"))try{window.localStorage.removeItem(Te)}catch(v){console.warn("Failed to delete cartId from localStorage",v)}},[j]);const K=s.useCallback(v=>{var k,M;f&&!((k=v.buyerIdentity)!=null&&k.countryCode)&&(v.buyerIdentity==null&&(v.buyerIdentity={}),v.buyerIdentity.countryCode=f),c&&!((M=v.buyerIdentity)!=null&&M.customerAccessToken)&&(v.buyerIdentity==null&&(v.buyerIdentity={}),v.buyerIdentity.customerAccessToken=c),O({type:"CART_CREATE",payload:v})},[f,c,O]),P=yr(U),me=s.useMemo(()=>{var v,k,M,B;return{...((v=P==null?void 0:P.context)==null?void 0:v.cart)??{lines:[],attributes:[]},status:fr(P.value),error:(k=P==null?void 0:P.context)==null?void 0:k.errors,totalQuantity:((B=(M=P==null?void 0:P.context)==null?void 0:M.cart)==null?void 0:B.totalQuantity)??0,cartCreate:K,linesAdd(N){var se,R;(R=(se=P==null?void 0:P.context)==null?void 0:se.cart)!=null&&R.id?O({type:"CARTLINE_ADD",payload:{lines:N}}):K({lines:N})},linesRemove(N){O({type:"CARTLINE_REMOVE",payload:{lines:N}})},linesUpdate(N){O({type:"CARTLINE_UPDATE",payload:{lines:N}})},noteUpdate(N){O({type:"NOTE_UPDATE",payload:{note:N}})},buyerIdentityUpdate(N){O({type:"BUYER_IDENTITY_UPDATE",payload:{buyerIdentity:N}})},cartAttributesUpdate(N){O({type:"CART_ATTRIBUTES_UPDATE",payload:{attributes:N}})},discountCodesUpdate(N){O({type:"DISCOUNT_CODES_UPDATE",payload:{discountCodes:N}})},cartFragment:C}},[K,(Ct=P==null?void 0:P.context)==null?void 0:Ct.cart,(Tt=P==null?void 0:P.context)==null?void 0:Tt.errors,P.value,C,O]);return s.createElement(Ke.Provider,{value:me},e)}function fr(e){switch(e){case"uninitialized":case"initializationError":return"uninitialized";case"idle":case"cartCompleted":case"error":return"idle";case"cartFetching":return"fetching";case"cartCreating":return"creating";case"cartLineAdding":case"cartLineRemoving":case"cartLineUpdating":case"noteUpdating":case"buyerIdentityUpdating":case"cartAttributesUpdating":case"discountCodesUpdating":return"updating"}}function yr(e){const[t,r]=s.useTransition(),[n,i]=s.useState(e),a=s.useRef(!1);t&&(a.current=!0);const u=s.useRef(!1);return!t&&a.current&&(u.current=!0),s.useEffect(()=>{r(()=>{u.current||i(e)})},[e]),u.current?e:n}function be(e){let t;try{t=window[e];const r="__storage_test__";return t.setItem(r,r),t.removeItem(r),!0}catch(r){return r instanceof DOMException&&(r.code===22||r.code===1014||r.name==="QuotaExceededError"||r.name==="NS_ERROR_DOM_QUOTA_REACHED")&&t&&t.length!==0}}function hr(e,t){var r,n;return t.payload.buyerIdentity.countryCode&&((n=(r=e.cart)==null?void 0:r.buyerIdentity)==null?void 0:n.countryCode)!==t.payload.buyerIdentity.countryCode}const Qe=s.createContext(null);function gr({children:e,data:t,initialVariantId:r}){const n=s.useMemo(()=>H(t.variants??{}),[t.variants]);if(!Er(n))throw new Error("<ProductProvider/> requires 'product.variants.nodes' or 'product.variants.edges'");const i=s.useMemo(()=>mr(n),[n]),[a,u]=s.useState(()=>et(r,n)),[o,h]=s.useState(()=>tt(a));s.useEffect(()=>{const _=et(r,n);u(_),h(tt(_))},[r,n]);const y=s.useCallback((_,L)=>{h(w=>{const C={...w,[_]:L};return u(Xe(n,C)),C})},[h,n]),l=s.useCallback((_,L)=>{const w=Xe(n,{...o,[_]:L});return(w==null?void 0:w.availableForSale)??!0},[o,n]),d=s.useMemo(()=>H(t.sellingPlanGroups??{}).map(_=>({..._,sellingPlans:H((_==null?void 0:_.sellingPlans)??{})})),[t.sellingPlanGroups]),[p,E]=s.useState(void 0),g=s.useMemo(()=>{var _,L;if(!(!a||!p)){if(!((_=a.sellingPlanAllocations)!=null&&_.nodes)&&!((L=a.sellingPlanAllocations)!=null&&L.edges))throw new Error("<ProductProvider/>: You must include 'sellingPlanAllocations.nodes' or 'sellingPlanAllocations.edges' in your variants in order to calculate selectedSellingPlanAllocation");return H(a.sellingPlanAllocations).find(w=>{var C;return((C=w==null?void 0:w.sellingPlan)==null?void 0:C.id)===p.id})}},[a,p]),b=s.useMemo(()=>({variants:n,variantsConnection:t.variants,options:i,selectedVariant:a,setSelectedVariant:u,selectedOptions:o,setSelectedOption:y,setSelectedOptions:h,isOptionInStock:l,selectedSellingPlan:p,setSelectedSellingPlan:E,selectedSellingPlanAllocation:g,sellingPlanGroups:d,sellingPlanGroupsConnection:t.sellingPlanGroups}),[l,i,t.sellingPlanGroups,t.variants,o,p,g,a,d,y,n]);return s.createElement(Qe.Provider,{value:b},e)}function Je(){const e=s.useContext(Qe);if(!e)throw new Error("'useProduct' must be a child of <ProductProvider />");return e}function Xe(e,t){var r,n;if(!(!e.length||((n=(r=e==null?void 0:e[0])==null?void 0:r.selectedOptions)==null?void 0:n.length)!==Object.keys(t).length))return e==null?void 0:e.find(i=>Object.entries(t).every(([a,u])=>{var o;return(o=i==null?void 0:i.selectedOptions)==null?void 0:o.some(h=>(h==null?void 0:h.name)===a&&(h==null?void 0:h.value)===u)}))}function mr(e){const t=e.reduce((r,n)=>{var i;if(!n.selectedOptions)throw new Error("'getOptions' requires 'variant.selectedOptions'");return(i=n==null?void 0:n.selectedOptions)==null||i.forEach(a=>{r[(a==null?void 0:a.name)??""]=r[(a==null?void 0:a.name)??""]||new Set,r[(a==null?void 0:a.name)??""].add((a==null?void 0:a.value)??"")}),r},{});return Object.keys(t).map(r=>({name:r,values:Array.from(t[r])}))}function et(e,t){if(e){const r=t.find(n=>(n==null?void 0:n.id)===e);return r||console.warn("<ProductProvider/> received a 'initialVariantId' prop, but could not actually find a variant with that ID"),r}if(e===null)return null;if(e===void 0)return t.find(r=>r==null?void 0:r.availableForSale)||t[0]}function tt(e){return e!=null&&e.selectedOptions?e.selectedOptions.reduce((t,r)=>(t[(r==null?void 0:r.name)??""]=(r==null?void 0:r.value)??"",t),{}):{}}function Er(e){return!(!e||!Array.isArray(e))}function we(e){const{as:t,onClick:r,defaultOnClick:n,children:i,buttonRef:a,...u}=e,o=s.useCallback(y=>{if(r){const l=r(y);if(typeof l=="boolean"&&l===!1||y!=null&&y.defaultPrevented)return}n==null||n(y)},[n,r]),h=t||"button";return s.createElement(h,{ref:a,onClick:o,...u},i)}function pr(e){const[t,r]=s.useState(!1),{variantId:n,quantity:i=1,attributes:a,sellingPlanId:u,onClick:o,children:h,accessibleAddingToCartLabel:y,...l}=e,{status:d,linesAdd:p}=ne(),{selectedVariant:E}=Je(),g=n??(E==null?void 0:E.id)??"",b=n===null||g===""||E===null||t||l.disabled;s.useEffect(()=>{t&&d==="idle"&&r(!1)},[d,t]);const _=s.useCallback(()=>{r(!0),p([{quantity:i,merchandiseId:g||"",attributes:a,sellingPlanId:u}])},[p,i,g,a,u]);return s.createElement(s.Fragment,null,s.createElement(we,{...l,disabled:b,onClick:o,defaultOnClick:_},h),y?s.createElement("p",{style:{position:"absolute",width:"1px",height:"1px",padding:"0",margin:"-1px",overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0"},role:"alert","aria-live":"assertive"},t?y:null):null)}const Ie={PAGE_VIEW:"PAGE_VIEW",ADD_TO_CART:"ADD_TO_CART"},he={article:"article",blog:"blog",captcha:"captcha",cart:"cart",collection:"collection",customersAccount:"customers/account",customersActivateAccount:"customers/activate_account",customersAddresses:"customers/addresses",customersLogin:"customers/login",customersOrder:"customers/order",customersRegister:"customers/register",customersResetPassword:"customers/reset_password",giftCard:"gift_card",home:"index",listCollections:"list-collections",forbidden:"403",notFound:"404",page:"page",password:"password",product:"product",policy:"policy",search:"search"},rt={hydrogen:"hydrogen",headless:"headless"},nt={hydrogen:"6167201",headless:"12875497473"};function J(e,t){return{schema_id:e,payload:t,metadata:{event_created_at_ms:Date.now()}}}function G(e){const t={id:"",resource:null};if(typeof e!="string")return t;const r=e.match(/^gid:\/\/shopify\/(\w+)\/([a-z0-9]+)/);if(!r||r.length===1)return t;const n=r[2]??null,i=r[1]??null;return{id:n,resource:i}}function z(e,t){return typeof e!="object"?{}:(Object.entries(e).forEach(([r,n])=>{n&&(t[r]=n)}),t)}function _r(e){return typeof document>"u"?(console.error(`${e} should only be used within the useEffect callback or event handlers`),!0):!1}const Sr="trekkie_storefront_page_view/1.4",vr="myshopify.dev";function Cr(e){const t=e,{id:r,resource:n}=G(t.resourceId),i=n?n.toLowerCase():void 0;return[J(Sr,z({pageType:t.pageType,customerId:t.customerId,resourceType:i,resourceId:parseInt(r)},Tr(t)))]}function Tr(e){return{appClientId:e.shopifySalesChannel?nt[e.shopifySalesChannel]:nt.headless,isMerchantRequest:Ar(e.url),hydrogenSubchannelId:e.storefrontId||"0",isPersistentCookie:e.hasUserConsent,uniqToken:e.uniqueToken,visitToken:e.visitToken,microSessionId:fe(),microSessionCount:1,url:e.url,path:e.path,search:e.search,referrer:e.referrer,title:e.title,shopId:parseInt(G(e.shopId).id),currency:e.currency,contentLanguage:e.acceptedLanguage||"en"}}function Ar(e){if(typeof e!="string")return!1;const t=new URL(e).hostname;return t.indexOf(vr)!==-1||t==="localhost"}const oe="custom_storefront_customer_tracking/1.0",br="page_rendered",wr="collection_page_rendered",Ir="product_page_rendered",Dr="product_added_to_cart",Or="search_submitted";function Lr(e){const t=e,r={canonical_url:t.canonicalUrl||t.url,customer_id:t.customerId},n=t.pageType,i=[];switch(i.push(J(oe,z({event_name:br,...r},ae(t)))),n){case he.collection:i.push(J(oe,z({event_name:wr,...r,collection_name:t.collectionHandle},ae(t))));break;case he.product:i.push(J(oe,z({event_name:Ir,...r,products:ot(t.products),total_value:t.totalValue},ae(t))));break;case he.search:i.push(J(oe,z({event_name:Or,...r,search_string:t.searchString},ae(t))));break}return i}function Pr(e){const t=e,r=G(t.cartId),n=r!=null&&r.id?`${r.id}`:null;return[J(oe,z({event_name:Dr,customerId:t.customerId,cart_token:n,total_value:t.totalValue,products:ot(t.products)},ae(t)))]}function ae(e){return{source:e.shopifySalesChannel||rt.headless,hydrogenSubchannelId:e.storefrontId||"0",is_persistent_cookie:e.hasUserConsent,ccpa_enforced:!1,gdpr_enforced:!1,unique_token:e.uniqueToken,event_time:Date.now(),event_id:fe(),event_source_url:e.url,referrer:e.referrer,user_agent:e.userAgent,navigation_type:e.navigationType,navigation_api:e.navigationApi,shop_id:parseInt(G(e.shopId).id),currency:e.currency}}function ot(e){return e?e.map(t=>{const r=z({variant_gid:t.variantGid,category:t.category,sku:t.sku,product_id:parseInt(G(t.productGid).id),variant_id:parseInt(G(t.variantGid).id)},{product_gid:t.productGid,name:t.name,variant:t.variantName||"",brand:t.brand,price:t.price,quantity:Number(t.quantity||0)});return JSON.stringify(r)}):[]}function Ur(e,t){const{eventName:r,payload:n}=e;if(!n.hasUserConsent)return Promise.resolve();let i=[];if(r===Ie.PAGE_VIEW){const a=n;i=i.concat(Cr(a),Lr(a))}else r===Ie.ADD_TO_CART&&(i=i.concat(Pr(n)));return i.length?kr(i,t):Promise.resolve()}const at="sendShopifyAnalytics request is unsuccessful";function kr(e,t){const r={events:e,metadata:{event_sent_at_ms:Date.now()}};try{return fetch(t?`https://${t}/.well-known/shopify/monorail/unstable/produce_batch`:"https://monorail-edge.shopifysvc.com/unstable/produce_batch",{method:"post",headers:{"content-type":"text/plain"},body:JSON.stringify(r)}).then(n=>{if(!n.ok)throw new Error("Response failed");return n.text()}).then(n=>{n&&JSON.parse(n).result.forEach(a=>{a.status!==200&&console.error(at,`
278
+
279
+ `,a.message)})}).catch(n=>{console.error(at,n)})}catch{return Promise.resolve()}}function Nr(){if(_r("getClientBrowserParameters"))return{uniqueToken:"",visitToken:"",url:"",path:"",search:"",referrer:"",title:"",userAgent:"",navigationType:"",navigationApi:""};const[e,t]=Rr(),r=ye(document.cookie);return{uniqueToken:r[W],visitToken:r[Z],url:location.href,path:location.pathname,search:location.search,referrer:document.referrer,title:document.title,userAgent:navigator.userAgent,navigationType:e,navigationApi:t}}function Vr(){try{const e=(performance==null?void 0:performance.getEntriesByType)&&(performance==null?void 0:performance.getEntriesByType("navigation"));if(e&&e[0]){const t=window.performance.getEntriesByType("navigation")[0].type;return t&&t.toString()}}catch{}}function Mr(){var e,t;try{if(PerformanceNavigation&&((e=performance==null?void 0:performance.navigation)==null?void 0:e.type)!==null&&((t=performance==null?void 0:performance.navigation)==null?void 0:t.type)!==void 0){const r=performance.navigation.type;switch(r){case PerformanceNavigation.TYPE_NAVIGATE:return"navigate";case PerformanceNavigation.TYPE_RELOAD:return"reload";case PerformanceNavigation.TYPE_BACK_FORWARD:return"back_forward";default:return`unknown: ${r}`}}}catch{}}function Rr(){try{let e="PerformanceNavigationTiming",t=Vr();return t||(t=Mr(),e="performance.navigation"),t?[t,e]:["unknown","unknown"]}catch{}return["error","error"]}function $r(e){const{cartCreate:t,checkoutUrl:r}=ne(),[n,i]=s.useState(!1),{quantity:a,variantId:u,onClick:o,attributes:h,children:y,...l}=e;s.useEffect(()=>{r&&(window.location.href=r)},[r]);const d=s.useCallback(()=>{i(!0),t({lines:[{quantity:a??1,merchandiseId:u,attributes:h}]})},[t,a,u,h]);return s.createElement(we,{disabled:n??l.disabled,...l,onClick:o,defaultOnClick:d},y)}function xr(e){const[t,r]=s.useState(!1),{status:n,checkoutUrl:i}=ne(),{children:a,...u}=e;return s.useEffect(()=>{t&&i&&n==="idle"&&(window.location.href=i)},[t,n,i]),s.createElement(we,{...u,disabled:t||u.disabled,onClick:()=>r(!0)},a)}function it(e){const{countryIsoCode:t,languageIsoCode:r}=de(),n=`${r}-${t}`;if(!n)throw new Error("useMoney(): Unable to get 'locale' from 'useShop()', which means that 'locale' was not passed to '<ShopifyProvider/>'. 'locale' is required for 'useMoney()' to work");const i=parseFloat(e.amount),a=s.useMemo(()=>({style:"currency",currency:e.currencyCode}),[e.currencyCode]),u=X(n,a),o=X(n,{...a,currencyDisplay:"name"}),h=X(n,{...a,currencyDisplay:"narrowSymbol"}),y=X(n,{...a,minimumFractionDigits:0,maximumFractionDigits:0}),l=X(n),d=X(n,{minimumFractionDigits:0,maximumFractionDigits:0}),p=g=>g.type==="currency",E=s.useMemo(()=>({original:()=>e,currencyCode:()=>e.currencyCode,localizedString:()=>u().format(i),parts:()=>u().formatToParts(i),withoutTrailingZeros:()=>i%1===0?y().format(i):u().format(i),withoutTrailingZerosAndCurrency:()=>i%1===0?d().format(i):l().format(i),currencyName:()=>{var g;return((g=o().formatToParts(i).find(p))==null?void 0:g.value)??e.currencyCode},currencySymbol:()=>{var g;return((g=u().formatToParts(i).find(p))==null?void 0:g.value)??e.currencyCode},currencyNarrowSymbol:()=>{var g;return((g=h().formatToParts(i).find(p))==null?void 0:g.value)??""},amount:()=>u().formatToParts(i).filter(g=>["decimal","fraction","group","integer","literal"].includes(g.type)).map(g=>g.value).join("")}),[e,i,o,u,h,l,y,d]);return s.useMemo(()=>new Proxy(E,{get:(g,b)=>{var _;return(_=Reflect.get(g,b))==null?void 0:_.call(null)}}),[E])}function X(e,t){return s.useMemo(()=>{let r;return()=>r??(r=new Intl.NumberFormat(e,t))},[e,t])}function ie({data:e,as:t,withoutCurrency:r,withoutTrailingZeros:n,measurement:i,measurementSeparator:a="/",...u}){if(!qr(e))throw new Error("<Money/> needs a valid 'data' prop that has 'amount' and 'currencyCode'");const o=it(e),h=t??"div";let y=o.localizedString;return(r||n)&&(r&&!n?y=o.amount:!r&&n?y=o.withoutTrailingZeros:y=o.withoutTrailingZerosAndCurrency),s.createElement(h,{...u},y,i&&i.referenceUnit&&s.createElement(s.Fragment,null,a,i.referenceUnit))}function qr(e){return typeof e.amount=="string"&&!!e.amount&&typeof e.currencyCode=="string"&&!!e.currencyCode}function Fr(e){const{cost:t}=ne(),{amountType:r="total",children:n,...i}=e;let a;return r=="total"?a=t==null?void 0:t.totalAmount:r=="subtotal"?a=t==null?void 0:t.subtotalAmount:r=="tax"?a=t==null?void 0:t.totalTaxAmount:r=="duty"&&(a=t==null?void 0:t.totalDutyAmount),a==null?null:s.createElement(ie,{...i,data:a},n)}function Br(e){var a,u;const{data:t,priceType:r="regular",...n}=e;if(t==null)throw new Error("<CartLinePrice/> requires a cart line as the 'data' prop");const i=r==="regular"?(a=t.cost)==null?void 0:a.totalAmount:(u=t.cost)==null?void 0:u.compareAtAmountPerQuantity;return i==null?null:s.createElement(ie,{...n,data:i})}const ut=s.createContext(null);function Hr(){const e=s.useContext(ut);if(e==null)throw new Error("Expected a cart line context but none was found");return e}function Gr({children:e,line:t}){return s.createElement(ut.Provider,{value:t},e)}const jr={DateTime:"string",Decimal:"string",HTML:"string",URL:"string",Color:"string",UnsignedInt64:"string"};function st(e){const{data:t,options:r,id:n=t.id,frameBorder:i="0",allow:a="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:u=!0,loading:o="lazy",...h}=e;if(!t.embedUrl)throw new Error("<ExternalVideo/> requires the 'embedUrl' property");let y=t.embedUrl;if(r){const l=new URL(t.embedUrl);for(const d of Object.keys(r))l.searchParams.set(d,r[d]);y=l.toString()}return s.createElement("iframe",{...h,id:n??t.embedUrl,title:t.alt??t.id??"external video",frameBorder:i,allow:a,allowFullScreen:u,src:y,loading:o})}const Yr=["cdn.shopify.com","cdn.shopifycdn.net","shopify-assets.shopifycdn.com","shopify-assets.shopifycdn.net"],Wr=["spin.dev"],Zr=[...Yr,...Wr],ue=[352,832,1200,1920,2560];function ct({src:e,width:t,height:r,crop:n,scale:i}){const a=new URL(e),u=i??1;if(t){let o;typeof t=="string"?o=(ue[0]*u).toString():o=(Number(t)*u).toString(),a.searchParams.append("width",o)}return r&&typeof r=="number"&&a.searchParams.append("height",(r*u).toString()),n&&a.searchParams.append("crop",n),a.toString()}function lt(e){const t=new URL(e.src);return!Zr.some(n=>t.hostname.endsWith(n))||!e.width&&!e.height&&!e.crop&&!e.scale?e.src:ct(e)}function zr({data:e,loaderOptions:t,elementProps:r}){let n=null;return e!=null&&e.width&&(e!=null&&e.height)&&(n=(e==null?void 0:e.width)/(e==null?void 0:e.height)),t!=null&&t.width||t!=null&&t.height?{width:(t==null?void 0:t.width)??(n&&typeof t.height=="number"?Math.round(n*t.height):null),height:(t==null?void 0:t.height)??(n&&typeof t.width=="number"?Math.round(n*t.width):null)}:r!=null&&r.width||r!=null&&r.height?{width:(r==null?void 0:r.width)??(n&&typeof r.height=="number"?Math.round(n*r.height):null),height:(r==null?void 0:r.height)??(n&&typeof r.width=="number"?Math.round(n*r.width):null)}:e!=null&&e.width||e!=null&&e.height?{width:(e==null?void 0:e.width)??null,height:(e==null?void 0:e.height)??null}:{width:null,height:null}}function dt({data:e,width:t,height:r,loading:n,loader:i=lt,loaderOptions:a,widths:u,decoding:o="async",...h}){if(!e.url){const g=`<Image/>: the 'data' prop requires the 'url' property. Image: ${e.id??"no ID provided"}`;return console.error(g),null}const{width:y,height:l}=zr({data:e,loaderOptions:a,elementProps:{width:t,height:r}});let d=e.url;if(i&&(d=i({...a,src:e.url,width:y,height:l}),typeof d!="string"||!d))throw new Error(`<Image/>: 'loader' did not return a valid string. Image: ${e.id??e.url}`);const p=t&&y&&t<y?t:y,E=h.srcSet??Kr({...a,widths:u,src:e.url,width:p,height:l,loader:i});return Oe.createElement("img",{id:e.id??"",alt:e.altText??h.alt??"",loading:n??"lazy",...h,src:d,width:y??void 0,height:l??void 0,srcSet:E,decoding:o})}function Kr({src:e,width:t,crop:r,scale:n,widths:i,loader:a,height:u}){const o=i&&Array.isArray(i);if(o&&i.some(d=>isNaN(d)))throw new Error(`<Image/>: the 'widths' must be an array of numbers. Image: ${e}`);let h=1;t&&u&&(h=Number(u)/Number(t));let y=o?i:ue;!o&&t&&t<ue[ue.length-1]&&(y=ue.filter(d=>d<=t));const l=a||ct;return y.map(d=>`${l({src:e,width:d,height:r?Number(d)*h:void 0,crop:r,scale:n})} ${d}w`).join(", ")}function ft(e){var y;const{data:t,previewImageOptions:r,id:n=t.id,playsInline:i=!0,controls:a=!0,sourceProps:u={},...o}=e,h=lt({src:((y=t.previewImage)==null?void 0:y.url)??"",...r});if(!t.sources)throw new Error("<Video/> requires a 'data.sources' array");return s.createElement("video",{...o,id:n,playsInline:i,controls:a,poster:h},t.sources.map(l=>{if(!(l!=null&&l.url&&(l!=null&&l.mimeType)))throw new Error("<Video/> needs 'source.url' and 'source.mimeType'");return s.createElement("source",{...u,key:l.url,src:l.url,type:l.mimeType})}))}const yt={};function Qr(e,t){const r=yt[e];if(r)return r;const n=new Promise((i,a)=>{const u=document.createElement("script");t!=null&&t.module?u.type="module":u.type="text/javascript",u.src=e,u.onload=()=>{i(!0)},u.onerror=()=>{a(!1)},(t==null?void 0:t.in)==="head"?document.head.appendChild(u):document.body.appendChild(u)});return yt[e]=n,n}function ht(e,t){const[r,n]=s.useState("loading"),i=JSON.stringify(t);return s.useEffect(()=>{async function a(){try{n("loading"),await Qr(e,t),n("done")}catch{n("error")}}a()},[e,i,t]),r}function gt(e){var y,l,d;const[t,r]=s.useState(void 0),n=s.useCallback(p=>{r(p)},[]),{data:i,children:a,className:u,...o}=e,h=ht("https://unpkg.com/@google/model-viewer@v1.12.1/dist/model-viewer.min.js",{module:!0});return s.useEffect(()=>{if(t)return o.onError&&t.addEventListener("error",o.onError),o.onLoad&&t.addEventListener("load",o.onLoad),o.onPreload&&t.addEventListener("preload",o.onPreload),o.onModelVisibility&&t.addEventListener("model-visibility",o.onModelVisibility),o.onProgress&&t.addEventListener("progress",o.onProgress),o.onArStatus&&t.addEventListener("ar-status",o.onArStatus),o.onArTracking&&t.addEventListener("ar-tracking",o.onArTracking),o.onQuickLookButtonTapped&&t.addEventListener("quick-look-button-tapped",o.onQuickLookButtonTapped),o.onCameraChange&&t.addEventListener("camera-change",o.onCameraChange),o.onEnvironmentChange&&t.addEventListener("environment-change",o.onEnvironmentChange),o.onPlay&&t.addEventListener("play",o.onPlay),o.onPause&&t.addEventListener("ar-status",o.onPause),o.onSceneGraphReady&&t.addEventListener("scene-graph-ready",o.onSceneGraphReady),()=>{t!=null&&(o.onError&&t.removeEventListener("error",o.onError),o.onLoad&&t.removeEventListener("load",o.onLoad),o.onPreload&&t.removeEventListener("preload",o.onPreload),o.onModelVisibility&&t.removeEventListener("model-visibility",o.onModelVisibility),o.onProgress&&t.removeEventListener("progress",o.onProgress),o.onArStatus&&t.removeEventListener("ar-status",o.onArStatus),o.onArTracking&&t.removeEventListener("ar-tracking",o.onArTracking),o.onQuickLookButtonTapped&&t.removeEventListener("quick-look-button-tapped",o.onQuickLookButtonTapped),o.onCameraChange&&t.removeEventListener("camera-change",o.onCameraChange),o.onEnvironmentChange&&t.removeEventListener("environment-change",o.onEnvironmentChange),o.onPlay&&t.removeEventListener("play",o.onPlay),o.onPause&&t.removeEventListener("ar-status",o.onPause),o.onSceneGraphReady&&t.removeEventListener("scene-graph-ready",o.onSceneGraphReady))}},[t,o.onArStatus,o.onArTracking,o.onCameraChange,o.onEnvironmentChange,o.onError,o.onLoad,o.onModelVisibility,o.onPause,o.onPlay,o.onPreload,o.onProgress,o.onQuickLookButtonTapped,o.onSceneGraphReady]),h!=="done"?null:(l=(y=i.sources)==null?void 0:y[0])!=null&&l.url?s.createElement("model-viewer",{ref:n,...o,className:u,id:o.id??i.id,src:i.sources[0].url,alt:i.alt??null,"camera-controls":o.cameraControls??!0,poster:(o.poster||((d=i.previewImage)==null?void 0:d.url))??null,autoplay:o.autoplay??!0,loading:o.loading,reveal:o.reveal,ar:o.ar,"ar-modes":o.arModes,"ar-scale":o.arScale,"ar-placement":o.arPlacement,"ios-src":o.iosSrc,"touch-action":o.touchAction,"disable-zoom":o.disableZoom,"orbit-sensitivity":o.orbitSensitivity,"auto-rotate":o.autoRotate,"auto-rotate-delay":o.autoRotateDelay,"rotation-per-second":o.rotationPerSecond,"interaction-policy":o.interactionPolicy,"interaction-prompt":o.interactionPrompt,"interaction-prompt-style":o.interactionPromptStyle,"interaction-prompt-threshold":o.interactionPromptThreshold,"camera-orbit":o.cameraOrbit,"camera-target":o.cameraTarget,"field-of-view":o.fieldOfView,"max-camera-orbit":o.maxCameraOrbit,"min-camera-orbit":o.minCameraOrbit,"max-field-of-view":o.maxFieldOfView,"min-field-of-view":o.minFieldOfView,bounds:o.bounds,"interpolation-decay":o.interpolationDecay??100,"skybox-image":o.skyboxImage,"environment-image":o.environmentImage,exposure:o.exposure,"shadow-intensity":o.shadowIntensity??0,"shadow-softness":o.shadowSoftness??0,"animation-name":o.animationName,"animation-crossfade-duration":o.animationCrossfadeDuration,"variant-name":o.variantName,orientation:o.orientation,scale:o.scale},a):(console.error("<ModelViewer/> requires 'data.sources' prop to be an array, with an object that has a property 'url' on it. Rendering 'null'"),null)}function Jr({data:e,mediaOptions:t,...r}){switch(e.__typename){case"MediaImage":return e.image?s.createElement(dt,{...r,...t==null?void 0:t.image,data:e.image}):(console.warn("<MediaFile/>: 'data.image' does not exist for __typename of 'MediaImage'; rendering 'null' by default."),null);case"Video":return s.createElement(ft,{...r,...t==null?void 0:t.video,data:e});case"ExternalVideo":return s.createElement(st,{...r,...t==null?void 0:t.externalVideo,data:e});case"Model3d":return s.createElement(gt,{...r,...t==null?void 0:t.modelViewer,data:e});default:return console.error("<MediaFile /> requires the '__typename' property to exist on the 'data' prop in order to render the matching sub-component for this type of media. Rendering 'null' by default"),null}}function Xr(e){if(!e.type)return console.error("parseMetafield(): The 'type' field is required in order to parse the Metafield. Returning 'parsedValue' of 'null'"),{...e,parsedValue:null};switch(e.type){case"boolean":return{...e,parsedValue:e.value==="true"};case"collection_reference":case"file_reference":case"page_reference":case"product_reference":case"variant_reference":return{...e,parsedValue:e.reference};case"color":case"multi_line_text_field":case"single_line_text_field":case"url":return{...e,parsedValue:e.value};case"dimension":case"money":case"json":case"rating":case"volume":case"weight":case"list.color":case"list.dimension":case"list.number_integer":case"list.number_decimal":case"list.rating":case"list.single_line_text_field":case"list.url":case"list.volume":case"list.weight":{let t=null;try{t=mt(e.value??"")}catch{console.error("parseMetafield(): attempted to JSON.parse the 'metafield.value' property, but failed. Returning 'null' for 'parsedValue'"),t=null}return{...e,parsedValue:t}}case"date":case"date_time":return{...e,parsedValue:new Date(e.value??"")};case"list.date":case"list.date_time":{const t=mt((e==null?void 0:e.value)??"");return{...e,parsedValue:t.map(r=>new Date(r))}}case"number_decimal":case"number_integer":return{...e,parsedValue:Number(e.value)};case"list.collection_reference":case"list.file_reference":case"list.page_reference":case"list.product_reference":case"list.variant_reference":return{...e,parsedValue:H(e.references??void 0)};default:{const t=`parseMetafield(): the 'metafield.type' you passed in is not supported. Your type: "${e.type}". If you believe this is an error, please open an issue on GitHub.`;return console.error(`${t} Returning 'parsedValue' of 'null'`),{...e,parsedValue:null}}}}function mt(e){return String(e).includes("__proto__")?JSON.parse(e,(t,r)=>{if(t!=="__proto__")return r}):JSON.parse(e)}function en(e){var y,l,d,p,E,g;const{priceType:t="regular",variantId:r,valueType:n="min",data:i,...a}=e;if(i==null)throw new Error("<ProductPrice/> requires a product as the 'data' prop");let u,o;const h=r?H((i==null?void 0:i.variants)??{}).find(b=>(b==null?void 0:b.id)===r)??null:null;if(t==="compareAt")if(r&&h){if(((y=h.compareAtPriceV2)==null?void 0:y.amount)===((l=h.priceV2)==null?void 0:l.amount))return null;u=h.compareAtPriceV2}else n==="max"?u=(d=i==null?void 0:i.compareAtPriceRange)==null?void 0:d.maxVariantPrice:u=(p=i==null?void 0:i.compareAtPriceRange)==null?void 0:p.minVariantPrice;else r&&h?(u=h.priceV2,n==="unit"&&(u=h.unitPrice,o=h.unitPriceMeasurement)):n==="max"?u=(E=i.priceRange)==null?void 0:E.maxVariantPrice:u=(g=i.priceRange)==null?void 0:g.minVariantPrice;return u?o?s.createElement(ie,{...a,data:u,measurement:o}):s.createElement(ie,{...a,data:u}):null}const tn="https://cdn.shopify.com/shopifycloud/shop-js/v1.0/client.js";function rn({variantIds:e,className:t,variantIdsAndQuantities:r,width:n}){const{storeDomain:i}=de(),a=ht(tn);let u=[];if(e&&r)throw new Error(an);if(e)u=e.reduce((h,y)=>{const l=G(y).id;return l&&h.push(l),h},[]);else if(r)u=r.reduce((h,y)=>{const l=G(y==null?void 0:y.id).id;return l&&h.push(`${l}:${(y==null?void 0:y.quantity)??1}`),h},[]);else throw new Error(on);if(u.length===0)throw new Error(nn);const o=n?{"--shop-pay-button-width":n}:void 0;return s.createElement("div",{className:t,style:o},a==="done"&&s.createElement("shop-pay-button",{"store-url":i,variants:u.join(",")}))}const nn='You must pass in "variantIds" in the form of ["gid://shopify/ProductVariant/1"]',on='You must pass in either "variantIds" or "variantIdsAndQuantities" to ShopPayButton',an="You must provide either a variantIds or variantIdsAndQuantities prop, but not both in the ShopPayButton component",un=60*60*24*360*1,sn=60*30;function cn(e){const{hasUserConsent:t=!1,domain:r=""}=e||{};s.useEffect(()=>{const n=ye(document.cookie);t?(ge(W,n[W]||fe(),un,r),ge(Z,n[Z]||fe(),sn,r)):(ge(W,"",0,r),ge(Z,"",0,r))})}function ge(e,t,r,n){document.cookie=nr(e,t,{maxage:r,domain:n,samesite:"Lax",path:"/"})}A.AddToCartButton=pr,A.AnalyticsEventName=Ie,A.AnalyticsPageType=he,A.BuyNowButton=$r,A.CartCheckoutButton=xr,A.CartCost=Fr,A.CartLinePrice=Br,A.CartLineProvider=Gr,A.CartProvider=dr,A.ExternalVideo=st,A.Image=dt,A.MediaFile=Jr,A.ModelViewer=gt,A.Money=ie,A.ProductPrice=en,A.ProductProvider=gr,A.ShopPayButton=rn,A.ShopifyProvider=Qt,A.ShopifySalesChannel=rt,A.Video=ft,A.createStorefrontClient=zt,A.flattenConnection=H,A.getClientBrowserParameters=Nr,A.getShopifyCookies=ye,A.parseMetafield=Xr,A.sendShopifyAnalytics=Ur,A.storefrontApiCustomScalars=jr,A.useCart=ne,A.useCartLine=Hr,A.useMoney=it,A.useProduct=Je,A.useShop=de,A.useShopifyCookies=cn,Object.defineProperty(A,Symbol.toStringTag,{value:"Module"})});
278
280
  //# sourceMappingURL=hydrogen-react.prod.js.map