@shopify/hydrogen-react 2026.4.0 → 2026.4.2

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 (631) hide show
  1. package/dist/browser-dev/AddToCartButton.mjs +60 -71
  2. package/dist/browser-dev/AddToCartButton.mjs.map +1 -1
  3. package/dist/browser-dev/BaseButton.mjs +20 -26
  4. package/dist/browser-dev/BaseButton.mjs.map +1 -1
  5. package/dist/browser-dev/BuyNowButton.mjs +40 -45
  6. package/dist/browser-dev/BuyNowButton.mjs.map +1 -1
  7. package/dist/browser-dev/CartCheckoutButton.mjs +28 -23
  8. package/dist/browser-dev/CartCheckoutButton.mjs.map +1 -1
  9. package/dist/browser-dev/CartCost.mjs +26 -22
  10. package/dist/browser-dev/CartCost.mjs.map +1 -1
  11. package/dist/browser-dev/CartLineProvider.mjs +23 -18
  12. package/dist/browser-dev/CartLineProvider.mjs.map +1 -1
  13. package/dist/browser-dev/CartLineQuantity.mjs +18 -9
  14. package/dist/browser-dev/CartLineQuantity.mjs.map +1 -1
  15. package/dist/browser-dev/CartLineQuantityAdjustButton.mjs +48 -45
  16. package/dist/browser-dev/CartLineQuantityAdjustButton.mjs.map +1 -1
  17. package/dist/browser-dev/CartProvider.mjs +315 -385
  18. package/dist/browser-dev/CartProvider.mjs.map +1 -1
  19. package/dist/browser-dev/ExternalVideo.mjs +35 -47
  20. package/dist/browser-dev/ExternalVideo.mjs.map +1 -1
  21. package/dist/browser-dev/Image.mjs +335 -340
  22. package/dist/browser-dev/Image.mjs.map +1 -1
  23. package/dist/browser-dev/MediaFile.mjs +39 -61
  24. package/dist/browser-dev/MediaFile.mjs.map +1 -1
  25. package/dist/browser-dev/ModelViewer.mjs +115 -139
  26. package/dist/browser-dev/ModelViewer.mjs.map +1 -1
  27. package/dist/browser-dev/Money.mjs +53 -39
  28. package/dist/browser-dev/Money.mjs.map +1 -1
  29. package/dist/browser-dev/ProductPrice.mjs +44 -61
  30. package/dist/browser-dev/ProductPrice.mjs.map +1 -1
  31. package/dist/browser-dev/ProductProvider.mjs +147 -179
  32. package/dist/browser-dev/ProductProvider.mjs.map +1 -1
  33. package/dist/browser-dev/RichText.components.mjs +36 -46
  34. package/dist/browser-dev/RichText.components.mjs.map +1 -1
  35. package/dist/browser-dev/RichText.mjs +111 -154
  36. package/dist/browser-dev/RichText.mjs.map +1 -1
  37. package/dist/browser-dev/ShopPayButton.mjs +53 -81
  38. package/dist/browser-dev/ShopPayButton.mjs.map +1 -1
  39. package/dist/browser-dev/ShopifyProvider.mjs +71 -84
  40. package/dist/browser-dev/ShopifyProvider.mjs.map +1 -1
  41. package/dist/browser-dev/Video.mjs +35 -52
  42. package/dist/browser-dev/Video.mjs.map +1 -1
  43. package/dist/browser-dev/analytics-constants.mjs +41 -43
  44. package/dist/browser-dev/analytics-constants.mjs.map +1 -1
  45. package/dist/browser-dev/analytics-schema-custom-storefront-customer-tracking.mjs +127 -214
  46. package/dist/browser-dev/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -1
  47. package/dist/browser-dev/analytics-schema-trekkie-storefront-page-view.mjs +39 -50
  48. package/dist/browser-dev/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -1
  49. package/dist/browser-dev/analytics-utils.mjs +78 -56
  50. package/dist/browser-dev/analytics-utils.mjs.map +1 -1
  51. package/dist/browser-dev/analytics.mjs +112 -155
  52. package/dist/browser-dev/analytics.mjs.map +1 -1
  53. package/dist/browser-dev/cart-constants.mjs +11 -15
  54. package/dist/browser-dev/cart-constants.mjs.map +1 -1
  55. package/dist/browser-dev/cart-hooks.mjs +42 -57
  56. package/dist/browser-dev/cart-hooks.mjs.map +1 -1
  57. package/dist/browser-dev/cart-queries.mjs +59 -135
  58. package/dist/browser-dev/cart-queries.mjs.map +1 -1
  59. package/dist/browser-dev/codegen.helpers.mjs +31 -20
  60. package/dist/browser-dev/codegen.helpers.mjs.map +1 -1
  61. package/dist/browser-dev/cookies-utils.mjs +44 -42
  62. package/dist/browser-dev/cookies-utils.mjs.map +1 -1
  63. package/dist/browser-dev/flatten-connection.mjs +23 -29
  64. package/dist/browser-dev/flatten-connection.mjs.map +1 -1
  65. package/dist/browser-dev/getProductOptions.mjs +248 -226
  66. package/dist/browser-dev/getProductOptions.mjs.map +1 -1
  67. package/dist/browser-dev/index.mjs +15 -70
  68. package/dist/browser-dev/load-script.mjs +38 -49
  69. package/dist/browser-dev/load-script.mjs.map +1 -1
  70. package/dist/browser-dev/node_modules/.pnpm/@xstate_fsm@2.0.0/node_modules/@xstate/fsm/es/index.mjs +175 -123
  71. package/dist/browser-dev/node_modules/.pnpm/@xstate_fsm@2.0.0/node_modules/@xstate/fsm/es/index.mjs.map +1 -1
  72. package/dist/browser-dev/optionValueDecoder.mjs +104 -86
  73. package/dist/browser-dev/optionValueDecoder.mjs.map +1 -1
  74. package/dist/browser-dev/packages/hydrogen-react/package.mjs +6 -0
  75. package/dist/browser-dev/packages/hydrogen-react/package.mjs.map +1 -0
  76. package/dist/browser-dev/parse-metafield.mjs +122 -134
  77. package/dist/browser-dev/parse-metafield.mjs.map +1 -1
  78. package/dist/browser-dev/storefront-api-constants.mjs +6 -5
  79. package/dist/browser-dev/storefront-api-constants.mjs.map +1 -1
  80. package/dist/browser-dev/storefront-client.mjs +62 -102
  81. package/dist/browser-dev/storefront-client.mjs.map +1 -1
  82. package/dist/browser-dev/tracking-utils.mjs +68 -88
  83. package/dist/browser-dev/tracking-utils.mjs.map +1 -1
  84. package/dist/browser-dev/useCartAPIStateMachine.mjs +188 -346
  85. package/dist/browser-dev/useCartAPIStateMachine.mjs.map +1 -1
  86. package/dist/browser-dev/useCartActions.mjs +197 -172
  87. package/dist/browser-dev/useCartActions.mjs.map +1 -1
  88. package/dist/browser-dev/useMachine.mjs +50 -62
  89. package/dist/browser-dev/useMachine.mjs.map +1 -1
  90. package/dist/browser-dev/useMoney.mjs +176 -154
  91. package/dist/browser-dev/useMoney.mjs.map +1 -1
  92. package/dist/browser-dev/useSelectedOptionInUrlParam.mjs +17 -27
  93. package/dist/browser-dev/useSelectedOptionInUrlParam.mjs.map +1 -1
  94. package/dist/browser-dev/useShopifyCookies.mjs +123 -138
  95. package/dist/browser-dev/useShopifyCookies.mjs.map +1 -1
  96. package/dist/browser-prod/AddToCartButton.mjs +60 -71
  97. package/dist/browser-prod/AddToCartButton.mjs.map +1 -1
  98. package/dist/browser-prod/BaseButton.mjs +20 -26
  99. package/dist/browser-prod/BaseButton.mjs.map +1 -1
  100. package/dist/browser-prod/BuyNowButton.mjs +40 -45
  101. package/dist/browser-prod/BuyNowButton.mjs.map +1 -1
  102. package/dist/browser-prod/CartCheckoutButton.mjs +28 -23
  103. package/dist/browser-prod/CartCheckoutButton.mjs.map +1 -1
  104. package/dist/browser-prod/CartCost.mjs +26 -22
  105. package/dist/browser-prod/CartCost.mjs.map +1 -1
  106. package/dist/browser-prod/CartLineProvider.mjs +23 -18
  107. package/dist/browser-prod/CartLineProvider.mjs.map +1 -1
  108. package/dist/browser-prod/CartLineQuantity.mjs +18 -9
  109. package/dist/browser-prod/CartLineQuantity.mjs.map +1 -1
  110. package/dist/browser-prod/CartLineQuantityAdjustButton.mjs +48 -45
  111. package/dist/browser-prod/CartLineQuantityAdjustButton.mjs.map +1 -1
  112. package/dist/browser-prod/CartProvider.mjs +315 -385
  113. package/dist/browser-prod/CartProvider.mjs.map +1 -1
  114. package/dist/browser-prod/ExternalVideo.mjs +35 -47
  115. package/dist/browser-prod/ExternalVideo.mjs.map +1 -1
  116. package/dist/browser-prod/Image.mjs +326 -325
  117. package/dist/browser-prod/Image.mjs.map +1 -1
  118. package/dist/browser-prod/MediaFile.mjs +44 -63
  119. package/dist/browser-prod/MediaFile.mjs.map +1 -1
  120. package/dist/browser-prod/ModelViewer.mjs +117 -135
  121. package/dist/browser-prod/ModelViewer.mjs.map +1 -1
  122. package/dist/browser-prod/Money.mjs +53 -39
  123. package/dist/browser-prod/Money.mjs.map +1 -1
  124. package/dist/browser-prod/ProductPrice.mjs +44 -61
  125. package/dist/browser-prod/ProductPrice.mjs.map +1 -1
  126. package/dist/browser-prod/ProductProvider.mjs +147 -179
  127. package/dist/browser-prod/ProductProvider.mjs.map +1 -1
  128. package/dist/browser-prod/RichText.components.mjs +36 -46
  129. package/dist/browser-prod/RichText.components.mjs.map +1 -1
  130. package/dist/browser-prod/RichText.mjs +111 -154
  131. package/dist/browser-prod/RichText.mjs.map +1 -1
  132. package/dist/browser-prod/ShopPayButton.mjs +53 -81
  133. package/dist/browser-prod/ShopPayButton.mjs.map +1 -1
  134. package/dist/browser-prod/ShopifyProvider.mjs +71 -84
  135. package/dist/browser-prod/ShopifyProvider.mjs.map +1 -1
  136. package/dist/browser-prod/Video.mjs +35 -52
  137. package/dist/browser-prod/Video.mjs.map +1 -1
  138. package/dist/browser-prod/analytics-constants.mjs +41 -43
  139. package/dist/browser-prod/analytics-constants.mjs.map +1 -1
  140. package/dist/browser-prod/analytics-schema-custom-storefront-customer-tracking.mjs +127 -214
  141. package/dist/browser-prod/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -1
  142. package/dist/browser-prod/analytics-schema-trekkie-storefront-page-view.mjs +39 -50
  143. package/dist/browser-prod/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -1
  144. package/dist/browser-prod/analytics-utils.mjs +78 -56
  145. package/dist/browser-prod/analytics-utils.mjs.map +1 -1
  146. package/dist/browser-prod/analytics.mjs +111 -153
  147. package/dist/browser-prod/analytics.mjs.map +1 -1
  148. package/dist/browser-prod/cart-constants.mjs +11 -15
  149. package/dist/browser-prod/cart-constants.mjs.map +1 -1
  150. package/dist/browser-prod/cart-hooks.mjs +42 -57
  151. package/dist/browser-prod/cart-hooks.mjs.map +1 -1
  152. package/dist/browser-prod/cart-queries.mjs +59 -135
  153. package/dist/browser-prod/cart-queries.mjs.map +1 -1
  154. package/dist/browser-prod/codegen.helpers.mjs +31 -20
  155. package/dist/browser-prod/codegen.helpers.mjs.map +1 -1
  156. package/dist/browser-prod/cookies-utils.mjs +44 -42
  157. package/dist/browser-prod/cookies-utils.mjs.map +1 -1
  158. package/dist/browser-prod/flatten-connection.mjs +23 -25
  159. package/dist/browser-prod/flatten-connection.mjs.map +1 -1
  160. package/dist/browser-prod/getProductOptions.mjs +248 -226
  161. package/dist/browser-prod/getProductOptions.mjs.map +1 -1
  162. package/dist/browser-prod/index.mjs +15 -70
  163. package/dist/browser-prod/load-script.mjs +38 -49
  164. package/dist/browser-prod/load-script.mjs.map +1 -1
  165. package/dist/browser-prod/node_modules/.pnpm/@xstate_fsm@2.0.0/node_modules/@xstate/fsm/es/index.mjs +175 -123
  166. package/dist/browser-prod/node_modules/.pnpm/@xstate_fsm@2.0.0/node_modules/@xstate/fsm/es/index.mjs.map +1 -1
  167. package/dist/browser-prod/optionValueDecoder.mjs +104 -86
  168. package/dist/browser-prod/optionValueDecoder.mjs.map +1 -1
  169. package/dist/browser-prod/packages/hydrogen-react/package.mjs +6 -0
  170. package/dist/browser-prod/packages/hydrogen-react/package.mjs.map +1 -0
  171. package/dist/browser-prod/parse-metafield.mjs +134 -146
  172. package/dist/browser-prod/parse-metafield.mjs.map +1 -1
  173. package/dist/browser-prod/storefront-api-constants.mjs +6 -5
  174. package/dist/browser-prod/storefront-api-constants.mjs.map +1 -1
  175. package/dist/browser-prod/storefront-client.mjs +56 -84
  176. package/dist/browser-prod/storefront-client.mjs.map +1 -1
  177. package/dist/browser-prod/tracking-utils.mjs +68 -88
  178. package/dist/browser-prod/tracking-utils.mjs.map +1 -1
  179. package/dist/browser-prod/useCartAPIStateMachine.mjs +188 -346
  180. package/dist/browser-prod/useCartAPIStateMachine.mjs.map +1 -1
  181. package/dist/browser-prod/useCartActions.mjs +197 -172
  182. package/dist/browser-prod/useCartActions.mjs.map +1 -1
  183. package/dist/browser-prod/useMachine.mjs +50 -62
  184. package/dist/browser-prod/useMachine.mjs.map +1 -1
  185. package/dist/browser-prod/useMoney.mjs +176 -154
  186. package/dist/browser-prod/useMoney.mjs.map +1 -1
  187. package/dist/browser-prod/useSelectedOptionInUrlParam.mjs +17 -27
  188. package/dist/browser-prod/useSelectedOptionInUrlParam.mjs.map +1 -1
  189. package/dist/browser-prod/useShopifyCookies.mjs +123 -138
  190. package/dist/browser-prod/useShopifyCookies.mjs.map +1 -1
  191. package/dist/node-dev/AddToCartButton.js +64 -73
  192. package/dist/node-dev/AddToCartButton.js.map +1 -1
  193. package/dist/node-dev/AddToCartButton.mjs +60 -71
  194. package/dist/node-dev/AddToCartButton.mjs.map +1 -1
  195. package/dist/node-dev/BaseButton.js +21 -26
  196. package/dist/node-dev/BaseButton.js.map +1 -1
  197. package/dist/node-dev/BaseButton.mjs +20 -26
  198. package/dist/node-dev/BaseButton.mjs.map +1 -1
  199. package/dist/node-dev/BuyNowButton.js +42 -46
  200. package/dist/node-dev/BuyNowButton.js.map +1 -1
  201. package/dist/node-dev/BuyNowButton.mjs +40 -45
  202. package/dist/node-dev/BuyNowButton.mjs.map +1 -1
  203. package/dist/node-dev/CartCheckoutButton.js +30 -24
  204. package/dist/node-dev/CartCheckoutButton.js.map +1 -1
  205. package/dist/node-dev/CartCheckoutButton.mjs +28 -23
  206. package/dist/node-dev/CartCheckoutButton.mjs.map +1 -1
  207. package/dist/node-dev/CartCost.js +27 -22
  208. package/dist/node-dev/CartCost.js.map +1 -1
  209. package/dist/node-dev/CartCost.mjs +26 -22
  210. package/dist/node-dev/CartCost.mjs.map +1 -1
  211. package/dist/node-dev/CartLineProvider.js +24 -17
  212. package/dist/node-dev/CartLineProvider.js.map +1 -1
  213. package/dist/node-dev/CartLineProvider.mjs +23 -18
  214. package/dist/node-dev/CartLineProvider.mjs.map +1 -1
  215. package/dist/node-dev/CartLineQuantity.js +19 -9
  216. package/dist/node-dev/CartLineQuantity.js.map +1 -1
  217. package/dist/node-dev/CartLineQuantity.mjs +18 -9
  218. package/dist/node-dev/CartLineQuantity.mjs.map +1 -1
  219. package/dist/node-dev/CartLineQuantityAdjustButton.js +50 -46
  220. package/dist/node-dev/CartLineQuantityAdjustButton.js.map +1 -1
  221. package/dist/node-dev/CartLineQuantityAdjustButton.mjs +48 -45
  222. package/dist/node-dev/CartLineQuantityAdjustButton.mjs.map +1 -1
  223. package/dist/node-dev/CartProvider.js +317 -385
  224. package/dist/node-dev/CartProvider.js.map +1 -1
  225. package/dist/node-dev/CartProvider.mjs +315 -385
  226. package/dist/node-dev/CartProvider.mjs.map +1 -1
  227. package/dist/node-dev/ExternalVideo.js +36 -47
  228. package/dist/node-dev/ExternalVideo.js.map +1 -1
  229. package/dist/node-dev/ExternalVideo.mjs +35 -47
  230. package/dist/node-dev/ExternalVideo.mjs.map +1 -1
  231. package/dist/node-dev/Image.js +337 -355
  232. package/dist/node-dev/Image.js.map +1 -1
  233. package/dist/node-dev/Image.mjs +335 -340
  234. package/dist/node-dev/Image.mjs.map +1 -1
  235. package/dist/node-dev/MediaFile.js +42 -63
  236. package/dist/node-dev/MediaFile.js.map +1 -1
  237. package/dist/node-dev/MediaFile.mjs +39 -61
  238. package/dist/node-dev/MediaFile.mjs.map +1 -1
  239. package/dist/node-dev/ModelViewer.js +116 -139
  240. package/dist/node-dev/ModelViewer.js.map +1 -1
  241. package/dist/node-dev/ModelViewer.mjs +115 -139
  242. package/dist/node-dev/ModelViewer.mjs.map +1 -1
  243. package/dist/node-dev/Money.js +54 -39
  244. package/dist/node-dev/Money.js.map +1 -1
  245. package/dist/node-dev/Money.mjs +53 -39
  246. package/dist/node-dev/Money.mjs.map +1 -1
  247. package/dist/node-dev/ProductPrice.js +45 -61
  248. package/dist/node-dev/ProductPrice.js.map +1 -1
  249. package/dist/node-dev/ProductPrice.mjs +44 -61
  250. package/dist/node-dev/ProductPrice.mjs.map +1 -1
  251. package/dist/node-dev/ProductProvider.js +148 -178
  252. package/dist/node-dev/ProductProvider.js.map +1 -1
  253. package/dist/node-dev/ProductProvider.mjs +147 -179
  254. package/dist/node-dev/ProductProvider.mjs.map +1 -1
  255. package/dist/node-dev/RichText.components.js +37 -46
  256. package/dist/node-dev/RichText.components.js.map +1 -1
  257. package/dist/node-dev/RichText.components.mjs +36 -46
  258. package/dist/node-dev/RichText.components.mjs.map +1 -1
  259. package/dist/node-dev/RichText.js +112 -154
  260. package/dist/node-dev/RichText.js.map +1 -1
  261. package/dist/node-dev/RichText.mjs +111 -154
  262. package/dist/node-dev/RichText.mjs.map +1 -1
  263. package/dist/node-dev/ShopPayButton.js +54 -81
  264. package/dist/node-dev/ShopPayButton.js.map +1 -1
  265. package/dist/node-dev/ShopPayButton.mjs +53 -81
  266. package/dist/node-dev/ShopPayButton.mjs.map +1 -1
  267. package/dist/node-dev/ShopifyProvider.js +73 -83
  268. package/dist/node-dev/ShopifyProvider.js.map +1 -1
  269. package/dist/node-dev/ShopifyProvider.mjs +71 -84
  270. package/dist/node-dev/ShopifyProvider.mjs.map +1 -1
  271. package/dist/node-dev/Video.js +36 -52
  272. package/dist/node-dev/Video.js.map +1 -1
  273. package/dist/node-dev/Video.mjs +35 -52
  274. package/dist/node-dev/Video.mjs.map +1 -1
  275. package/dist/node-dev/_virtual/_rolldown/runtime.js +23 -0
  276. package/dist/node-dev/analytics-constants.js +40 -39
  277. package/dist/node-dev/analytics-constants.js.map +1 -1
  278. package/dist/node-dev/analytics-constants.mjs +41 -43
  279. package/dist/node-dev/analytics-constants.mjs.map +1 -1
  280. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.js +128 -210
  281. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.js.map +1 -1
  282. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.mjs +127 -214
  283. package/dist/node-dev/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -1
  284. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.js +40 -51
  285. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.js.map +1 -1
  286. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.mjs +39 -50
  287. package/dist/node-dev/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -1
  288. package/dist/node-dev/analytics-utils.js +77 -52
  289. package/dist/node-dev/analytics-utils.js.map +1 -1
  290. package/dist/node-dev/analytics-utils.mjs +78 -56
  291. package/dist/node-dev/analytics-utils.mjs.map +1 -1
  292. package/dist/node-dev/analytics.js +114 -156
  293. package/dist/node-dev/analytics.js.map +1 -1
  294. package/dist/node-dev/analytics.mjs +112 -155
  295. package/dist/node-dev/analytics.mjs.map +1 -1
  296. package/dist/node-dev/cart-constants.js +10 -9
  297. package/dist/node-dev/cart-constants.js.map +1 -1
  298. package/dist/node-dev/cart-constants.mjs +11 -15
  299. package/dist/node-dev/cart-constants.mjs.map +1 -1
  300. package/dist/node-dev/cart-hooks.js +43 -57
  301. package/dist/node-dev/cart-hooks.js.map +1 -1
  302. package/dist/node-dev/cart-hooks.mjs +42 -57
  303. package/dist/node-dev/cart-hooks.mjs.map +1 -1
  304. package/dist/node-dev/cart-queries.js +58 -125
  305. package/dist/node-dev/cart-queries.js.map +1 -1
  306. package/dist/node-dev/cart-queries.mjs +59 -135
  307. package/dist/node-dev/cart-queries.mjs.map +1 -1
  308. package/dist/node-dev/codegen.helpers.js +30 -18
  309. package/dist/node-dev/codegen.helpers.js.map +1 -1
  310. package/dist/node-dev/codegen.helpers.mjs +31 -20
  311. package/dist/node-dev/codegen.helpers.mjs.map +1 -1
  312. package/dist/node-dev/cookies-utils.js +45 -42
  313. package/dist/node-dev/cookies-utils.js.map +1 -1
  314. package/dist/node-dev/cookies-utils.mjs +44 -42
  315. package/dist/node-dev/cookies-utils.mjs.map +1 -1
  316. package/dist/node-dev/flatten-connection.js +22 -28
  317. package/dist/node-dev/flatten-connection.js.map +1 -1
  318. package/dist/node-dev/flatten-connection.mjs +23 -29
  319. package/dist/node-dev/flatten-connection.mjs.map +1 -1
  320. package/dist/node-dev/getProductOptions.js +248 -224
  321. package/dist/node-dev/getProductOptions.js.map +1 -1
  322. package/dist/node-dev/getProductOptions.mjs +248 -226
  323. package/dist/node-dev/getProductOptions.mjs.map +1 -1
  324. package/dist/node-dev/index.js +88 -90
  325. package/dist/node-dev/index.mjs +15 -70
  326. package/dist/node-dev/load-script.js +38 -48
  327. package/dist/node-dev/load-script.js.map +1 -1
  328. package/dist/node-dev/load-script.mjs +38 -49
  329. package/dist/node-dev/load-script.mjs.map +1 -1
  330. package/dist/node-dev/node_modules/.pnpm/@xstate_fsm@2.0.0/node_modules/@xstate/fsm/es/index.js +185 -124
  331. package/dist/node-dev/node_modules/.pnpm/@xstate_fsm@2.0.0/node_modules/@xstate/fsm/es/index.js.map +1 -1
  332. package/dist/node-dev/node_modules/.pnpm/@xstate_fsm@2.0.0/node_modules/@xstate/fsm/es/index.mjs +175 -123
  333. package/dist/node-dev/node_modules/.pnpm/@xstate_fsm@2.0.0/node_modules/@xstate/fsm/es/index.mjs.map +1 -1
  334. package/dist/node-dev/optionValueDecoder.js +103 -84
  335. package/dist/node-dev/optionValueDecoder.js.map +1 -1
  336. package/dist/node-dev/optionValueDecoder.mjs +104 -86
  337. package/dist/node-dev/optionValueDecoder.mjs.map +1 -1
  338. package/dist/node-dev/packages/hydrogen-react/package.js +6 -0
  339. package/dist/node-dev/packages/hydrogen-react/package.js.map +1 -0
  340. package/dist/node-dev/packages/hydrogen-react/package.mjs +6 -0
  341. package/dist/node-dev/packages/hydrogen-react/package.mjs.map +1 -0
  342. package/dist/node-dev/parse-metafield.js +122 -134
  343. package/dist/node-dev/parse-metafield.js.map +1 -1
  344. package/dist/node-dev/parse-metafield.mjs +122 -134
  345. package/dist/node-dev/parse-metafield.mjs.map +1 -1
  346. package/dist/node-dev/storefront-api-constants.js +5 -4
  347. package/dist/node-dev/storefront-api-constants.js.map +1 -1
  348. package/dist/node-dev/storefront-api-constants.mjs +6 -5
  349. package/dist/node-dev/storefront-api-constants.mjs.map +1 -1
  350. package/dist/node-dev/storefront-client.js +62 -101
  351. package/dist/node-dev/storefront-client.js.map +1 -1
  352. package/dist/node-dev/storefront-client.mjs +62 -102
  353. package/dist/node-dev/storefront-client.mjs.map +1 -1
  354. package/dist/node-dev/tracking-utils.js +67 -85
  355. package/dist/node-dev/tracking-utils.js.map +1 -1
  356. package/dist/node-dev/tracking-utils.mjs +68 -88
  357. package/dist/node-dev/tracking-utils.mjs.map +1 -1
  358. package/dist/node-dev/useCartAPIStateMachine.js +192 -349
  359. package/dist/node-dev/useCartAPIStateMachine.js.map +1 -1
  360. package/dist/node-dev/useCartAPIStateMachine.mjs +188 -346
  361. package/dist/node-dev/useCartAPIStateMachine.mjs.map +1 -1
  362. package/dist/node-dev/useCartActions.js +198 -172
  363. package/dist/node-dev/useCartActions.js.map +1 -1
  364. package/dist/node-dev/useCartActions.mjs +197 -172
  365. package/dist/node-dev/useCartActions.mjs.map +1 -1
  366. package/dist/node-dev/useMachine.js +50 -61
  367. package/dist/node-dev/useMachine.js.map +1 -1
  368. package/dist/node-dev/useMachine.mjs +50 -62
  369. package/dist/node-dev/useMachine.mjs.map +1 -1
  370. package/dist/node-dev/useMoney.js +177 -154
  371. package/dist/node-dev/useMoney.js.map +1 -1
  372. package/dist/node-dev/useMoney.mjs +176 -154
  373. package/dist/node-dev/useMoney.mjs.map +1 -1
  374. package/dist/node-dev/useSelectedOptionInUrlParam.js +18 -27
  375. package/dist/node-dev/useSelectedOptionInUrlParam.js.map +1 -1
  376. package/dist/node-dev/useSelectedOptionInUrlParam.mjs +17 -27
  377. package/dist/node-dev/useSelectedOptionInUrlParam.mjs.map +1 -1
  378. package/dist/node-dev/useShopifyCookies.js +124 -138
  379. package/dist/node-dev/useShopifyCookies.js.map +1 -1
  380. package/dist/node-dev/useShopifyCookies.mjs +123 -138
  381. package/dist/node-dev/useShopifyCookies.mjs.map +1 -1
  382. package/dist/node-prod/AddToCartButton.js +64 -73
  383. package/dist/node-prod/AddToCartButton.js.map +1 -1
  384. package/dist/node-prod/AddToCartButton.mjs +60 -71
  385. package/dist/node-prod/AddToCartButton.mjs.map +1 -1
  386. package/dist/node-prod/BaseButton.js +21 -26
  387. package/dist/node-prod/BaseButton.js.map +1 -1
  388. package/dist/node-prod/BaseButton.mjs +20 -26
  389. package/dist/node-prod/BaseButton.mjs.map +1 -1
  390. package/dist/node-prod/BuyNowButton.js +42 -46
  391. package/dist/node-prod/BuyNowButton.js.map +1 -1
  392. package/dist/node-prod/BuyNowButton.mjs +40 -45
  393. package/dist/node-prod/BuyNowButton.mjs.map +1 -1
  394. package/dist/node-prod/CartCheckoutButton.js +30 -24
  395. package/dist/node-prod/CartCheckoutButton.js.map +1 -1
  396. package/dist/node-prod/CartCheckoutButton.mjs +28 -23
  397. package/dist/node-prod/CartCheckoutButton.mjs.map +1 -1
  398. package/dist/node-prod/CartCost.js +27 -22
  399. package/dist/node-prod/CartCost.js.map +1 -1
  400. package/dist/node-prod/CartCost.mjs +26 -22
  401. package/dist/node-prod/CartCost.mjs.map +1 -1
  402. package/dist/node-prod/CartLineProvider.js +24 -17
  403. package/dist/node-prod/CartLineProvider.js.map +1 -1
  404. package/dist/node-prod/CartLineProvider.mjs +23 -18
  405. package/dist/node-prod/CartLineProvider.mjs.map +1 -1
  406. package/dist/node-prod/CartLineQuantity.js +19 -9
  407. package/dist/node-prod/CartLineQuantity.js.map +1 -1
  408. package/dist/node-prod/CartLineQuantity.mjs +18 -9
  409. package/dist/node-prod/CartLineQuantity.mjs.map +1 -1
  410. package/dist/node-prod/CartLineQuantityAdjustButton.js +50 -46
  411. package/dist/node-prod/CartLineQuantityAdjustButton.js.map +1 -1
  412. package/dist/node-prod/CartLineQuantityAdjustButton.mjs +48 -45
  413. package/dist/node-prod/CartLineQuantityAdjustButton.mjs.map +1 -1
  414. package/dist/node-prod/CartProvider.js +317 -385
  415. package/dist/node-prod/CartProvider.js.map +1 -1
  416. package/dist/node-prod/CartProvider.mjs +315 -385
  417. package/dist/node-prod/CartProvider.mjs.map +1 -1
  418. package/dist/node-prod/ExternalVideo.js +36 -47
  419. package/dist/node-prod/ExternalVideo.js.map +1 -1
  420. package/dist/node-prod/ExternalVideo.mjs +35 -47
  421. package/dist/node-prod/ExternalVideo.mjs.map +1 -1
  422. package/dist/node-prod/Image.js +328 -340
  423. package/dist/node-prod/Image.js.map +1 -1
  424. package/dist/node-prod/Image.mjs +326 -325
  425. package/dist/node-prod/Image.mjs.map +1 -1
  426. package/dist/node-prod/MediaFile.js +47 -65
  427. package/dist/node-prod/MediaFile.js.map +1 -1
  428. package/dist/node-prod/MediaFile.mjs +44 -63
  429. package/dist/node-prod/MediaFile.mjs.map +1 -1
  430. package/dist/node-prod/ModelViewer.js +118 -135
  431. package/dist/node-prod/ModelViewer.js.map +1 -1
  432. package/dist/node-prod/ModelViewer.mjs +117 -135
  433. package/dist/node-prod/ModelViewer.mjs.map +1 -1
  434. package/dist/node-prod/Money.js +54 -39
  435. package/dist/node-prod/Money.js.map +1 -1
  436. package/dist/node-prod/Money.mjs +53 -39
  437. package/dist/node-prod/Money.mjs.map +1 -1
  438. package/dist/node-prod/ProductPrice.js +45 -61
  439. package/dist/node-prod/ProductPrice.js.map +1 -1
  440. package/dist/node-prod/ProductPrice.mjs +44 -61
  441. package/dist/node-prod/ProductPrice.mjs.map +1 -1
  442. package/dist/node-prod/ProductProvider.js +148 -178
  443. package/dist/node-prod/ProductProvider.js.map +1 -1
  444. package/dist/node-prod/ProductProvider.mjs +147 -179
  445. package/dist/node-prod/ProductProvider.mjs.map +1 -1
  446. package/dist/node-prod/RichText.components.js +37 -46
  447. package/dist/node-prod/RichText.components.js.map +1 -1
  448. package/dist/node-prod/RichText.components.mjs +36 -46
  449. package/dist/node-prod/RichText.components.mjs.map +1 -1
  450. package/dist/node-prod/RichText.js +112 -154
  451. package/dist/node-prod/RichText.js.map +1 -1
  452. package/dist/node-prod/RichText.mjs +111 -154
  453. package/dist/node-prod/RichText.mjs.map +1 -1
  454. package/dist/node-prod/ShopPayButton.js +54 -81
  455. package/dist/node-prod/ShopPayButton.js.map +1 -1
  456. package/dist/node-prod/ShopPayButton.mjs +53 -81
  457. package/dist/node-prod/ShopPayButton.mjs.map +1 -1
  458. package/dist/node-prod/ShopifyProvider.js +73 -83
  459. package/dist/node-prod/ShopifyProvider.js.map +1 -1
  460. package/dist/node-prod/ShopifyProvider.mjs +71 -84
  461. package/dist/node-prod/ShopifyProvider.mjs.map +1 -1
  462. package/dist/node-prod/Video.js +36 -52
  463. package/dist/node-prod/Video.js.map +1 -1
  464. package/dist/node-prod/Video.mjs +35 -52
  465. package/dist/node-prod/Video.mjs.map +1 -1
  466. package/dist/node-prod/_virtual/_rolldown/runtime.js +23 -0
  467. package/dist/node-prod/analytics-constants.js +40 -39
  468. package/dist/node-prod/analytics-constants.js.map +1 -1
  469. package/dist/node-prod/analytics-constants.mjs +41 -43
  470. package/dist/node-prod/analytics-constants.mjs.map +1 -1
  471. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.js +128 -210
  472. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.js.map +1 -1
  473. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.mjs +127 -214
  474. package/dist/node-prod/analytics-schema-custom-storefront-customer-tracking.mjs.map +1 -1
  475. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.js +40 -51
  476. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.js.map +1 -1
  477. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.mjs +39 -50
  478. package/dist/node-prod/analytics-schema-trekkie-storefront-page-view.mjs.map +1 -1
  479. package/dist/node-prod/analytics-utils.js +77 -52
  480. package/dist/node-prod/analytics-utils.js.map +1 -1
  481. package/dist/node-prod/analytics-utils.mjs +78 -56
  482. package/dist/node-prod/analytics-utils.mjs.map +1 -1
  483. package/dist/node-prod/analytics.js +113 -154
  484. package/dist/node-prod/analytics.js.map +1 -1
  485. package/dist/node-prod/analytics.mjs +111 -153
  486. package/dist/node-prod/analytics.mjs.map +1 -1
  487. package/dist/node-prod/cart-constants.js +10 -9
  488. package/dist/node-prod/cart-constants.js.map +1 -1
  489. package/dist/node-prod/cart-constants.mjs +11 -15
  490. package/dist/node-prod/cart-constants.mjs.map +1 -1
  491. package/dist/node-prod/cart-hooks.js +43 -57
  492. package/dist/node-prod/cart-hooks.js.map +1 -1
  493. package/dist/node-prod/cart-hooks.mjs +42 -57
  494. package/dist/node-prod/cart-hooks.mjs.map +1 -1
  495. package/dist/node-prod/cart-queries.js +58 -125
  496. package/dist/node-prod/cart-queries.js.map +1 -1
  497. package/dist/node-prod/cart-queries.mjs +59 -135
  498. package/dist/node-prod/cart-queries.mjs.map +1 -1
  499. package/dist/node-prod/codegen.helpers.js +30 -18
  500. package/dist/node-prod/codegen.helpers.js.map +1 -1
  501. package/dist/node-prod/codegen.helpers.mjs +31 -20
  502. package/dist/node-prod/codegen.helpers.mjs.map +1 -1
  503. package/dist/node-prod/cookies-utils.js +45 -42
  504. package/dist/node-prod/cookies-utils.js.map +1 -1
  505. package/dist/node-prod/cookies-utils.mjs +44 -42
  506. package/dist/node-prod/cookies-utils.mjs.map +1 -1
  507. package/dist/node-prod/flatten-connection.js +22 -24
  508. package/dist/node-prod/flatten-connection.js.map +1 -1
  509. package/dist/node-prod/flatten-connection.mjs +23 -25
  510. package/dist/node-prod/flatten-connection.mjs.map +1 -1
  511. package/dist/node-prod/getProductOptions.js +248 -224
  512. package/dist/node-prod/getProductOptions.js.map +1 -1
  513. package/dist/node-prod/getProductOptions.mjs +248 -226
  514. package/dist/node-prod/getProductOptions.mjs.map +1 -1
  515. package/dist/node-prod/index.js +88 -90
  516. package/dist/node-prod/index.mjs +15 -70
  517. package/dist/node-prod/load-script.js +38 -48
  518. package/dist/node-prod/load-script.js.map +1 -1
  519. package/dist/node-prod/load-script.mjs +38 -49
  520. package/dist/node-prod/load-script.mjs.map +1 -1
  521. package/dist/node-prod/node_modules/.pnpm/@xstate_fsm@2.0.0/node_modules/@xstate/fsm/es/index.js +185 -124
  522. package/dist/node-prod/node_modules/.pnpm/@xstate_fsm@2.0.0/node_modules/@xstate/fsm/es/index.js.map +1 -1
  523. package/dist/node-prod/node_modules/.pnpm/@xstate_fsm@2.0.0/node_modules/@xstate/fsm/es/index.mjs +175 -123
  524. package/dist/node-prod/node_modules/.pnpm/@xstate_fsm@2.0.0/node_modules/@xstate/fsm/es/index.mjs.map +1 -1
  525. package/dist/node-prod/optionValueDecoder.js +103 -84
  526. package/dist/node-prod/optionValueDecoder.js.map +1 -1
  527. package/dist/node-prod/optionValueDecoder.mjs +104 -86
  528. package/dist/node-prod/optionValueDecoder.mjs.map +1 -1
  529. package/dist/node-prod/packages/hydrogen-react/package.js +6 -0
  530. package/dist/node-prod/packages/hydrogen-react/package.js.map +1 -0
  531. package/dist/node-prod/packages/hydrogen-react/package.mjs +6 -0
  532. package/dist/node-prod/packages/hydrogen-react/package.mjs.map +1 -0
  533. package/dist/node-prod/parse-metafield.js +134 -146
  534. package/dist/node-prod/parse-metafield.js.map +1 -1
  535. package/dist/node-prod/parse-metafield.mjs +134 -146
  536. package/dist/node-prod/parse-metafield.mjs.map +1 -1
  537. package/dist/node-prod/storefront-api-constants.js +5 -4
  538. package/dist/node-prod/storefront-api-constants.js.map +1 -1
  539. package/dist/node-prod/storefront-api-constants.mjs +6 -5
  540. package/dist/node-prod/storefront-api-constants.mjs.map +1 -1
  541. package/dist/node-prod/storefront-client.js +56 -83
  542. package/dist/node-prod/storefront-client.js.map +1 -1
  543. package/dist/node-prod/storefront-client.mjs +56 -84
  544. package/dist/node-prod/storefront-client.mjs.map +1 -1
  545. package/dist/node-prod/tracking-utils.js +67 -85
  546. package/dist/node-prod/tracking-utils.js.map +1 -1
  547. package/dist/node-prod/tracking-utils.mjs +68 -88
  548. package/dist/node-prod/tracking-utils.mjs.map +1 -1
  549. package/dist/node-prod/useCartAPIStateMachine.js +192 -349
  550. package/dist/node-prod/useCartAPIStateMachine.js.map +1 -1
  551. package/dist/node-prod/useCartAPIStateMachine.mjs +188 -346
  552. package/dist/node-prod/useCartAPIStateMachine.mjs.map +1 -1
  553. package/dist/node-prod/useCartActions.js +198 -172
  554. package/dist/node-prod/useCartActions.js.map +1 -1
  555. package/dist/node-prod/useCartActions.mjs +197 -172
  556. package/dist/node-prod/useCartActions.mjs.map +1 -1
  557. package/dist/node-prod/useMachine.js +50 -61
  558. package/dist/node-prod/useMachine.js.map +1 -1
  559. package/dist/node-prod/useMachine.mjs +50 -62
  560. package/dist/node-prod/useMachine.mjs.map +1 -1
  561. package/dist/node-prod/useMoney.js +177 -154
  562. package/dist/node-prod/useMoney.js.map +1 -1
  563. package/dist/node-prod/useMoney.mjs +176 -154
  564. package/dist/node-prod/useMoney.mjs.map +1 -1
  565. package/dist/node-prod/useSelectedOptionInUrlParam.js +18 -27
  566. package/dist/node-prod/useSelectedOptionInUrlParam.js.map +1 -1
  567. package/dist/node-prod/useSelectedOptionInUrlParam.mjs +17 -27
  568. package/dist/node-prod/useSelectedOptionInUrlParam.mjs.map +1 -1
  569. package/dist/node-prod/useShopifyCookies.js +124 -138
  570. package/dist/node-prod/useShopifyCookies.js.map +1 -1
  571. package/dist/node-prod/useShopifyCookies.mjs +123 -138
  572. package/dist/node-prod/useShopifyCookies.mjs.map +1 -1
  573. package/dist/types/AddToCartButton.d.ts +2 -0
  574. package/dist/types/BuyNowButton.d.ts +2 -0
  575. package/dist/types/CartCheckoutButton.d.ts +2 -0
  576. package/dist/types/CartCost.d.ts +2 -0
  577. package/dist/types/CartLineProvider.d.ts +2 -0
  578. package/dist/types/CartLineQuantity.d.ts +2 -0
  579. package/dist/types/CartLineQuantityAdjustButton.d.ts +1 -0
  580. package/dist/types/CartProvider.d.ts +7 -1
  581. package/dist/types/ExternalVideo.d.ts +4 -0
  582. package/dist/types/Image.d.ts +2 -0
  583. package/dist/types/MediaFile.d.ts +4 -0
  584. package/dist/types/ModelViewer.d.ts +1 -0
  585. package/dist/types/Money.d.ts +1 -0
  586. package/dist/types/ProductPrice.d.ts +2 -0
  587. package/dist/types/ProductProvider.d.ts +2 -0
  588. package/dist/types/RichText.d.ts +2 -0
  589. package/dist/types/ShopPayButton.d.ts +1 -0
  590. package/dist/types/ShopifyProvider.d.ts +2 -0
  591. package/dist/types/Video.d.ts +2 -0
  592. package/dist/types/analytics-constants.d.ts +9 -0
  593. package/dist/types/analytics-types.d.ts +1 -0
  594. package/dist/types/analytics-utils.d.ts +1 -0
  595. package/dist/types/analytics.d.ts +6 -1
  596. package/dist/types/cart-queries.d.ts +13 -9
  597. package/dist/types/codegen.helpers.d.ts +2 -0
  598. package/dist/types/cookies-utils.d.ts +2 -1
  599. package/dist/types/flatten-connection.d.ts +3 -0
  600. package/dist/types/getProductOptions.d.ts +3 -0
  601. package/dist/types/load-script.d.ts +3 -1
  602. package/dist/types/optionValueDecoder.d.ts +3 -0
  603. package/dist/types/parse-metafield.d.ts +1 -0
  604. package/dist/types/storefront-client.d.ts +1 -0
  605. package/dist/types/tracking-utils.d.ts +2 -2
  606. package/dist/types/useMoney.d.ts +1 -0
  607. package/dist/types/useSelectedOptionInUrlParam.d.ts +1 -0
  608. package/dist/types/useShopifyCookies.d.ts +1 -0
  609. package/dist/umd/hydrogen-react.dev.js +3957 -4483
  610. package/dist/umd/hydrogen-react.dev.js.map +1 -1
  611. package/dist/umd/hydrogen-react.prod.js +42 -101
  612. package/dist/umd/hydrogen-react.prod.js.map +1 -1
  613. package/package.json +5 -5
  614. package/dist/browser-dev/index.mjs.map +0 -1
  615. package/dist/browser-dev/packages/hydrogen-react/package.json.mjs +0 -5
  616. package/dist/browser-dev/packages/hydrogen-react/package.json.mjs.map +0 -1
  617. package/dist/browser-prod/index.mjs.map +0 -1
  618. package/dist/browser-prod/packages/hydrogen-react/package.json.mjs +0 -5
  619. package/dist/browser-prod/packages/hydrogen-react/package.json.mjs.map +0 -1
  620. package/dist/node-dev/index.js.map +0 -1
  621. package/dist/node-dev/index.mjs.map +0 -1
  622. package/dist/node-dev/packages/hydrogen-react/package.json.js +0 -5
  623. package/dist/node-dev/packages/hydrogen-react/package.json.js.map +0 -1
  624. package/dist/node-dev/packages/hydrogen-react/package.json.mjs +0 -5
  625. package/dist/node-dev/packages/hydrogen-react/package.json.mjs.map +0 -1
  626. package/dist/node-prod/index.js.map +0 -1
  627. package/dist/node-prod/index.mjs.map +0 -1
  628. package/dist/node-prod/packages/hydrogen-react/package.json.js +0 -5
  629. package/dist/node-prod/packages/hydrogen-react/package.json.js.map +0 -1
  630. package/dist/node-prod/packages/hydrogen-react/package.json.mjs +0 -5
  631. package/dist/node-prod/packages/hydrogen-react/package.json.mjs.map +0 -1
@@ -1,174 +1,199 @@
1
- import { useCallback, useMemo } from "react";
2
- import { CartQuery, CartCreate, CartLineAdd, CartLineUpdate, CartLineRemove, CartNoteUpdate, CartBuyerIdentityUpdate, CartAttributesUpdate, CartDiscountCodesUpdate } from "./cart-queries.mjs";
1
+ import { CartAttributesUpdate, CartBuyerIdentityUpdate, CartCreate, CartDiscountCodesUpdate, CartLineAdd, CartLineRemove, CartLineUpdate, CartNoteUpdate, CartQuery } from "./cart-queries.mjs";
3
2
  import { useCartFetch } from "./cart-hooks.mjs";
4
- function useCartActions({
5
- numCartLines,
6
- cartFragment,
7
- countryCode = "US",
8
- languageCode = "EN"
9
- }) {
10
- const fetchCart = useCartFetch();
11
- const cartFetch = useCallback(
12
- (cartId) => {
13
- return fetchCart({
14
- query: CartQuery(cartFragment),
15
- variables: {
16
- id: cartId,
17
- numCartLines,
18
- country: countryCode,
19
- language: languageCode
20
- }
21
- });
22
- },
23
- [fetchCart, cartFragment, numCartLines, countryCode, languageCode]
24
- );
25
- const cartCreate = useCallback(
26
- (cart) => {
27
- return fetchCart({
28
- query: CartCreate(cartFragment),
29
- variables: {
30
- input: cart,
31
- numCartLines,
32
- country: countryCode,
33
- language: languageCode
34
- }
35
- });
36
- },
37
- [cartFragment, countryCode, fetchCart, numCartLines, languageCode]
38
- );
39
- const cartLineAdd = useCallback(
40
- (cartId, lines) => {
41
- return fetchCart({
42
- query: CartLineAdd(cartFragment),
43
- variables: {
44
- cartId,
45
- lines,
46
- numCartLines,
47
- country: countryCode,
48
- language: languageCode
49
- }
50
- });
51
- },
52
- [cartFragment, countryCode, fetchCart, numCartLines, languageCode]
53
- );
54
- const cartLineUpdate = useCallback(
55
- (cartId, lines) => {
56
- return fetchCart({
57
- query: CartLineUpdate(cartFragment),
58
- variables: {
59
- cartId,
60
- lines,
61
- numCartLines,
62
- country: countryCode,
63
- language: languageCode
64
- }
65
- });
66
- },
67
- [cartFragment, countryCode, fetchCart, numCartLines, languageCode]
68
- );
69
- const cartLineRemove = useCallback(
70
- (cartId, lines) => {
71
- return fetchCart({
72
- query: CartLineRemove(cartFragment),
73
- variables: {
74
- cartId,
75
- lines,
76
- numCartLines,
77
- country: countryCode,
78
- language: languageCode
79
- }
80
- });
81
- },
82
- [cartFragment, countryCode, fetchCart, numCartLines, languageCode]
83
- );
84
- const noteUpdate = useCallback(
85
- (cartId, note) => {
86
- return fetchCart({
87
- query: CartNoteUpdate(cartFragment),
88
- variables: {
89
- cartId,
90
- note,
91
- numCartLines,
92
- country: countryCode,
93
- language: languageCode
94
- }
95
- });
96
- },
97
- [fetchCart, cartFragment, numCartLines, countryCode, languageCode]
98
- );
99
- const buyerIdentityUpdate = useCallback(
100
- (cartId, buyerIdentity) => {
101
- return fetchCart({
102
- query: CartBuyerIdentityUpdate(cartFragment),
103
- variables: {
104
- cartId,
105
- buyerIdentity,
106
- numCartLines,
107
- country: countryCode,
108
- language: languageCode
109
- }
110
- });
111
- },
112
- [cartFragment, countryCode, fetchCart, numCartLines, languageCode]
113
- );
114
- const cartAttributesUpdate = useCallback(
115
- (cartId, attributes) => {
116
- return fetchCart({
117
- query: CartAttributesUpdate(cartFragment),
118
- variables: {
119
- cartId,
120
- attributes,
121
- numCartLines,
122
- country: countryCode,
123
- language: languageCode
124
- }
125
- });
126
- },
127
- [cartFragment, countryCode, fetchCart, numCartLines, languageCode]
128
- );
129
- const discountCodesUpdate = useCallback(
130
- (cartId, discountCodes) => {
131
- return fetchCart({
132
- query: CartDiscountCodesUpdate(cartFragment),
133
- variables: {
134
- cartId,
135
- discountCodes,
136
- numCartLines,
137
- country: countryCode,
138
- language: languageCode
139
- }
140
- });
141
- },
142
- [cartFragment, countryCode, fetchCart, numCartLines, languageCode]
143
- );
144
- return useMemo(
145
- () => ({
146
- cartFetch,
147
- cartCreate,
148
- cartLineAdd,
149
- cartLineUpdate,
150
- cartLineRemove,
151
- noteUpdate,
152
- buyerIdentityUpdate,
153
- cartAttributesUpdate,
154
- discountCodesUpdate,
155
- cartFragment
156
- }),
157
- [
158
- cartFetch,
159
- cartCreate,
160
- cartLineAdd,
161
- cartLineUpdate,
162
- cartLineRemove,
163
- noteUpdate,
164
- buyerIdentityUpdate,
165
- cartAttributesUpdate,
166
- discountCodesUpdate,
167
- cartFragment
168
- ]
169
- );
3
+ import { useCallback, useMemo } from "react";
4
+ //#region src/useCartActions.tsx
5
+ /**
6
+ * The `useCartActions` hook returns helper graphql functions for Storefront Cart API
7
+ *
8
+ * See [cart API graphql mutations](https://shopify.dev/api/storefront/2026-04/objects/Cart)
9
+ */
10
+ function useCartActions({ numCartLines, cartFragment, countryCode = "US", languageCode = "EN" }) {
11
+ const fetchCart = useCartFetch();
12
+ const cartFetch = useCallback((cartId) => {
13
+ return fetchCart({
14
+ query: CartQuery(cartFragment),
15
+ variables: {
16
+ id: cartId,
17
+ numCartLines,
18
+ country: countryCode,
19
+ language: languageCode
20
+ }
21
+ });
22
+ }, [
23
+ fetchCart,
24
+ cartFragment,
25
+ numCartLines,
26
+ countryCode,
27
+ languageCode
28
+ ]);
29
+ const cartCreate = useCallback((cart) => {
30
+ return fetchCart({
31
+ query: CartCreate(cartFragment),
32
+ variables: {
33
+ input: cart,
34
+ numCartLines,
35
+ country: countryCode,
36
+ language: languageCode
37
+ }
38
+ });
39
+ }, [
40
+ cartFragment,
41
+ countryCode,
42
+ fetchCart,
43
+ numCartLines,
44
+ languageCode
45
+ ]);
46
+ const cartLineAdd = useCallback((cartId, lines) => {
47
+ return fetchCart({
48
+ query: CartLineAdd(cartFragment),
49
+ variables: {
50
+ cartId,
51
+ lines,
52
+ numCartLines,
53
+ country: countryCode,
54
+ language: languageCode
55
+ }
56
+ });
57
+ }, [
58
+ cartFragment,
59
+ countryCode,
60
+ fetchCart,
61
+ numCartLines,
62
+ languageCode
63
+ ]);
64
+ const cartLineUpdate = useCallback((cartId, lines) => {
65
+ return fetchCart({
66
+ query: CartLineUpdate(cartFragment),
67
+ variables: {
68
+ cartId,
69
+ lines,
70
+ numCartLines,
71
+ country: countryCode,
72
+ language: languageCode
73
+ }
74
+ });
75
+ }, [
76
+ cartFragment,
77
+ countryCode,
78
+ fetchCart,
79
+ numCartLines,
80
+ languageCode
81
+ ]);
82
+ const cartLineRemove = useCallback((cartId, lines) => {
83
+ return fetchCart({
84
+ query: CartLineRemove(cartFragment),
85
+ variables: {
86
+ cartId,
87
+ lines,
88
+ numCartLines,
89
+ country: countryCode,
90
+ language: languageCode
91
+ }
92
+ });
93
+ }, [
94
+ cartFragment,
95
+ countryCode,
96
+ fetchCart,
97
+ numCartLines,
98
+ languageCode
99
+ ]);
100
+ const noteUpdate = useCallback((cartId, note) => {
101
+ return fetchCart({
102
+ query: CartNoteUpdate(cartFragment),
103
+ variables: {
104
+ cartId,
105
+ note,
106
+ numCartLines,
107
+ country: countryCode,
108
+ language: languageCode
109
+ }
110
+ });
111
+ }, [
112
+ fetchCart,
113
+ cartFragment,
114
+ numCartLines,
115
+ countryCode,
116
+ languageCode
117
+ ]);
118
+ const buyerIdentityUpdate = useCallback((cartId, buyerIdentity) => {
119
+ return fetchCart({
120
+ query: CartBuyerIdentityUpdate(cartFragment),
121
+ variables: {
122
+ cartId,
123
+ buyerIdentity,
124
+ numCartLines,
125
+ country: countryCode,
126
+ language: languageCode
127
+ }
128
+ });
129
+ }, [
130
+ cartFragment,
131
+ countryCode,
132
+ fetchCart,
133
+ numCartLines,
134
+ languageCode
135
+ ]);
136
+ const cartAttributesUpdate = useCallback((cartId, attributes) => {
137
+ return fetchCart({
138
+ query: CartAttributesUpdate(cartFragment),
139
+ variables: {
140
+ cartId,
141
+ attributes,
142
+ numCartLines,
143
+ country: countryCode,
144
+ language: languageCode
145
+ }
146
+ });
147
+ }, [
148
+ cartFragment,
149
+ countryCode,
150
+ fetchCart,
151
+ numCartLines,
152
+ languageCode
153
+ ]);
154
+ const discountCodesUpdate = useCallback((cartId, discountCodes) => {
155
+ return fetchCart({
156
+ query: CartDiscountCodesUpdate(cartFragment),
157
+ variables: {
158
+ cartId,
159
+ discountCodes,
160
+ numCartLines,
161
+ country: countryCode,
162
+ language: languageCode
163
+ }
164
+ });
165
+ }, [
166
+ cartFragment,
167
+ countryCode,
168
+ fetchCart,
169
+ numCartLines,
170
+ languageCode
171
+ ]);
172
+ return useMemo(() => ({
173
+ cartFetch,
174
+ cartCreate,
175
+ cartLineAdd,
176
+ cartLineUpdate,
177
+ cartLineRemove,
178
+ noteUpdate,
179
+ buyerIdentityUpdate,
180
+ cartAttributesUpdate,
181
+ discountCodesUpdate,
182
+ cartFragment
183
+ }), [
184
+ cartFetch,
185
+ cartCreate,
186
+ cartLineAdd,
187
+ cartLineUpdate,
188
+ cartLineRemove,
189
+ noteUpdate,
190
+ buyerIdentityUpdate,
191
+ cartAttributesUpdate,
192
+ discountCodesUpdate,
193
+ cartFragment
194
+ ]);
170
195
  }
171
- export {
172
- useCartActions
173
- };
174
- //# sourceMappingURL=useCartActions.mjs.map
196
+ //#endregion
197
+ export { useCartActions };
198
+
199
+ //# sourceMappingURL=useCartActions.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useCartActions.mjs","sources":["../../src/useCartActions.tsx"],"sourcesContent":["import {useCallback, useMemo} from 'react';\nimport {\n AttributeInput,\n CartBuyerIdentityInput,\n CartInput,\n CartLineInput,\n CartLineUpdateInput,\n CountryCode,\n LanguageCode,\n Cart as CartType,\n MutationCartDiscountCodesUpdateArgs,\n MutationCartNoteUpdateArgs,\n} from './storefront-api-types.js';\nimport {\n CartAttributesUpdate,\n CartBuyerIdentityUpdate,\n CartCreate,\n CartDiscountCodesUpdate,\n CartLineAdd,\n CartLineRemove,\n CartLineUpdate,\n CartNoteUpdate,\n CartQuery,\n} from './cart-queries.js';\nimport {useCartFetch} from './cart-hooks.js';\nimport {PartialDeep} from 'type-fest';\n\ntype CartResponse = PartialDeep<CartType, {recurseIntoArrays: true}>;\n\n/**\n * The `useCartActions` hook returns helper graphql functions for Storefront Cart API\n *\n * See [cart API graphql mutations](https://shopify.dev/api/storefront/2026-04/objects/Cart)\n */\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nexport function useCartActions({\n numCartLines,\n cartFragment,\n countryCode = 'US',\n languageCode = 'EN',\n}: {\n /** Maximum number of cart lines to fetch. Defaults to 250 cart lines. */\n numCartLines?: number;\n /** A fragment used to query the Storefront API's [Cart object](https://shopify.dev/api/storefront/2026-04/objects/cart) for all queries and mutations. A default value is used if no argument is provided. */\n cartFragment: string;\n /** The ISO country code for i18n. Default to `US` */\n countryCode?: CountryCode;\n /** The ISO language code for i18n. Default to `EN` */\n languageCode?: LanguageCode;\n}) {\n const fetchCart = useCartFetch();\n\n const cartFetch = useCallback(\n (cartId: string) => {\n return fetchCart<{cart: CartResponse}>({\n query: CartQuery(cartFragment),\n variables: {\n id: cartId,\n numCartLines,\n country: countryCode,\n language: languageCode,\n },\n });\n },\n [fetchCart, cartFragment, numCartLines, countryCode, languageCode],\n );\n\n const cartCreate = useCallback(\n (cart: CartInput) => {\n return fetchCart<{cartCreate: {cart: CartResponse}}>({\n query: CartCreate(cartFragment),\n variables: {\n input: cart,\n numCartLines,\n country: countryCode,\n language: languageCode,\n },\n });\n },\n [cartFragment, countryCode, fetchCart, numCartLines, languageCode],\n );\n\n const cartLineAdd = useCallback(\n (cartId: string, lines: CartLineInput[]) => {\n return fetchCart<{cartLinesAdd: {cart: CartResponse}}>({\n query: CartLineAdd(cartFragment),\n variables: {\n cartId,\n lines,\n numCartLines,\n country: countryCode,\n language: languageCode,\n },\n });\n },\n [cartFragment, countryCode, fetchCart, numCartLines, languageCode],\n );\n\n const cartLineUpdate = useCallback(\n (cartId: string, lines: CartLineUpdateInput[]) => {\n return fetchCart<{cartLinesUpdate: {cart: CartResponse}}>({\n query: CartLineUpdate(cartFragment),\n variables: {\n cartId,\n lines,\n numCartLines,\n country: countryCode,\n language: languageCode,\n },\n });\n },\n [cartFragment, countryCode, fetchCart, numCartLines, languageCode],\n );\n\n const cartLineRemove = useCallback(\n (cartId: string, lines: string[]) => {\n return fetchCart<{cartLinesRemove: {cart: CartResponse}}>({\n query: CartLineRemove(cartFragment),\n variables: {\n cartId,\n lines,\n numCartLines,\n country: countryCode,\n language: languageCode,\n },\n });\n },\n [cartFragment, countryCode, fetchCart, numCartLines, languageCode],\n );\n\n const noteUpdate = useCallback(\n (cartId: string, note: MutationCartNoteUpdateArgs['note']) => {\n return fetchCart<{cartNoteUpdate: {cart: CartResponse}}>({\n query: CartNoteUpdate(cartFragment),\n variables: {\n cartId,\n note,\n numCartLines,\n country: countryCode,\n language: languageCode,\n },\n });\n },\n [fetchCart, cartFragment, numCartLines, countryCode, languageCode],\n );\n\n const buyerIdentityUpdate = useCallback(\n (cartId: string, buyerIdentity: CartBuyerIdentityInput) => {\n return fetchCart<{cartBuyerIdentityUpdate: {cart: CartResponse}}>({\n query: CartBuyerIdentityUpdate(cartFragment),\n variables: {\n cartId,\n buyerIdentity,\n numCartLines,\n country: countryCode,\n language: languageCode,\n },\n });\n },\n [cartFragment, countryCode, fetchCart, numCartLines, languageCode],\n );\n\n const cartAttributesUpdate = useCallback(\n (cartId: string, attributes: AttributeInput[]) => {\n return fetchCart<{cartAttributesUpdate: {cart: CartResponse}}>({\n query: CartAttributesUpdate(cartFragment),\n variables: {\n cartId,\n attributes,\n numCartLines,\n country: countryCode,\n language: languageCode,\n },\n });\n },\n [cartFragment, countryCode, fetchCart, numCartLines, languageCode],\n );\n\n const discountCodesUpdate = useCallback(\n (\n cartId: string,\n discountCodes: MutationCartDiscountCodesUpdateArgs['discountCodes'],\n ) => {\n return fetchCart<{cartDiscountCodesUpdate: {cart: CartResponse}}>({\n query: CartDiscountCodesUpdate(cartFragment),\n variables: {\n cartId,\n discountCodes,\n numCartLines,\n country: countryCode,\n language: languageCode,\n },\n });\n },\n [cartFragment, countryCode, fetchCart, numCartLines, languageCode],\n );\n\n return useMemo(\n () => ({\n cartFetch,\n cartCreate,\n cartLineAdd,\n cartLineUpdate,\n cartLineRemove,\n noteUpdate,\n buyerIdentityUpdate,\n cartAttributesUpdate,\n discountCodesUpdate,\n cartFragment,\n }),\n [\n cartFetch,\n cartCreate,\n cartLineAdd,\n cartLineUpdate,\n cartLineRemove,\n noteUpdate,\n buyerIdentityUpdate,\n cartAttributesUpdate,\n discountCodesUpdate,\n cartFragment,\n ],\n );\n}\n"],"names":[],"mappings":";;;AAmCO,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd,eAAe;AACjB,GASG;AACD,QAAM,YAAY,aAAA;AAElB,QAAM,YAAY;AAAA,IAChB,CAAC,WAAmB;AAClB,aAAO,UAAgC;AAAA,QACrC,OAAO,UAAU,YAAY;AAAA,QAC7B,WAAW;AAAA,UACT,IAAI;AAAA,UACJ;AAAA,UACA,SAAS;AAAA,UACT,UAAU;AAAA,QAAA;AAAA,MACZ,CACD;AAAA,IACH;AAAA,IACA,CAAC,WAAW,cAAc,cAAc,aAAa,YAAY;AAAA,EAAA;AAGnE,QAAM,aAAa;AAAA,IACjB,CAAC,SAAoB;AACnB,aAAO,UAA8C;AAAA,QACnD,OAAO,WAAW,YAAY;AAAA,QAC9B,WAAW;AAAA,UACT,OAAO;AAAA,UACP;AAAA,UACA,SAAS;AAAA,UACT,UAAU;AAAA,QAAA;AAAA,MACZ,CACD;AAAA,IACH;AAAA,IACA,CAAC,cAAc,aAAa,WAAW,cAAc,YAAY;AAAA,EAAA;AAGnE,QAAM,cAAc;AAAA,IAClB,CAAC,QAAgB,UAA2B;AAC1C,aAAO,UAAgD;AAAA,QACrD,OAAO,YAAY,YAAY;AAAA,QAC/B,WAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA,SAAS;AAAA,UACT,UAAU;AAAA,QAAA;AAAA,MACZ,CACD;AAAA,IACH;AAAA,IACA,CAAC,cAAc,aAAa,WAAW,cAAc,YAAY;AAAA,EAAA;AAGnE,QAAM,iBAAiB;AAAA,IACrB,CAAC,QAAgB,UAAiC;AAChD,aAAO,UAAmD;AAAA,QACxD,OAAO,eAAe,YAAY;AAAA,QAClC,WAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA,SAAS;AAAA,UACT,UAAU;AAAA,QAAA;AAAA,MACZ,CACD;AAAA,IACH;AAAA,IACA,CAAC,cAAc,aAAa,WAAW,cAAc,YAAY;AAAA,EAAA;AAGnE,QAAM,iBAAiB;AAAA,IACrB,CAAC,QAAgB,UAAoB;AACnC,aAAO,UAAmD;AAAA,QACxD,OAAO,eAAe,YAAY;AAAA,QAClC,WAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA,SAAS;AAAA,UACT,UAAU;AAAA,QAAA;AAAA,MACZ,CACD;AAAA,IACH;AAAA,IACA,CAAC,cAAc,aAAa,WAAW,cAAc,YAAY;AAAA,EAAA;AAGnE,QAAM,aAAa;AAAA,IACjB,CAAC,QAAgB,SAA6C;AAC5D,aAAO,UAAkD;AAAA,QACvD,OAAO,eAAe,YAAY;AAAA,QAClC,WAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA,SAAS;AAAA,UACT,UAAU;AAAA,QAAA;AAAA,MACZ,CACD;AAAA,IACH;AAAA,IACA,CAAC,WAAW,cAAc,cAAc,aAAa,YAAY;AAAA,EAAA;AAGnE,QAAM,sBAAsB;AAAA,IAC1B,CAAC,QAAgB,kBAA0C;AACzD,aAAO,UAA2D;AAAA,QAChE,OAAO,wBAAwB,YAAY;AAAA,QAC3C,WAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA,SAAS;AAAA,UACT,UAAU;AAAA,QAAA;AAAA,MACZ,CACD;AAAA,IACH;AAAA,IACA,CAAC,cAAc,aAAa,WAAW,cAAc,YAAY;AAAA,EAAA;AAGnE,QAAM,uBAAuB;AAAA,IAC3B,CAAC,QAAgB,eAAiC;AAChD,aAAO,UAAwD;AAAA,QAC7D,OAAO,qBAAqB,YAAY;AAAA,QACxC,WAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA,SAAS;AAAA,UACT,UAAU;AAAA,QAAA;AAAA,MACZ,CACD;AAAA,IACH;AAAA,IACA,CAAC,cAAc,aAAa,WAAW,cAAc,YAAY;AAAA,EAAA;AAGnE,QAAM,sBAAsB;AAAA,IAC1B,CACE,QACA,kBACG;AACH,aAAO,UAA2D;AAAA,QAChE,OAAO,wBAAwB,YAAY;AAAA,QAC3C,WAAW;AAAA,UACT;AAAA,UACA;AAAA,UACA;AAAA,UACA,SAAS;AAAA,UACT,UAAU;AAAA,QAAA;AAAA,MACZ,CACD;AAAA,IACH;AAAA,IACA,CAAC,cAAc,aAAa,WAAW,cAAc,YAAY;AAAA,EAAA;AAGnE,SAAO;AAAA,IACL,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEF;AAAA,MACE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EACF;AAEJ;"}
1
+ {"version":3,"file":"useCartActions.mjs","names":[],"sources":["../../src/useCartActions.tsx"],"sourcesContent":["import {useCallback, useMemo} from 'react';\nimport {\n AttributeInput,\n CartBuyerIdentityInput,\n CartInput,\n CartLineInput,\n CartLineUpdateInput,\n CountryCode,\n LanguageCode,\n Cart as CartType,\n MutationCartDiscountCodesUpdateArgs,\n MutationCartNoteUpdateArgs,\n} from './storefront-api-types.js';\nimport {\n CartAttributesUpdate,\n CartBuyerIdentityUpdate,\n CartCreate,\n CartDiscountCodesUpdate,\n CartLineAdd,\n CartLineRemove,\n CartLineUpdate,\n CartNoteUpdate,\n CartQuery,\n} from './cart-queries.js';\nimport {useCartFetch} from './cart-hooks.js';\nimport {PartialDeep} from 'type-fest';\n\ntype CartResponse = PartialDeep<CartType, {recurseIntoArrays: true}>;\n\n/**\n * The `useCartActions` hook returns helper graphql functions for Storefront Cart API\n *\n * See [cart API graphql mutations](https://shopify.dev/api/storefront/2026-04/objects/Cart)\n */\n// eslint-disable-next-line @typescript-eslint/explicit-function-return-type\nexport function useCartActions({\n numCartLines,\n cartFragment,\n countryCode = 'US',\n languageCode = 'EN',\n}: {\n /** Maximum number of cart lines to fetch. Defaults to 250 cart lines. */\n numCartLines?: number;\n /** A fragment used to query the Storefront API's [Cart object](https://shopify.dev/api/storefront/2026-04/objects/cart) for all queries and mutations. A default value is used if no argument is provided. */\n cartFragment: string;\n /** The ISO country code for i18n. Default to `US` */\n countryCode?: CountryCode;\n /** The ISO language code for i18n. Default to `EN` */\n languageCode?: LanguageCode;\n}) {\n const fetchCart = useCartFetch();\n\n const cartFetch = useCallback(\n (cartId: string) => {\n return fetchCart<{cart: CartResponse}>({\n query: CartQuery(cartFragment),\n variables: {\n id: cartId,\n numCartLines,\n country: countryCode,\n language: languageCode,\n },\n });\n },\n [fetchCart, cartFragment, numCartLines, countryCode, languageCode],\n );\n\n const cartCreate = useCallback(\n (cart: CartInput) => {\n return fetchCart<{cartCreate: {cart: CartResponse}}>({\n query: CartCreate(cartFragment),\n variables: {\n input: cart,\n numCartLines,\n country: countryCode,\n language: languageCode,\n },\n });\n },\n [cartFragment, countryCode, fetchCart, numCartLines, languageCode],\n );\n\n const cartLineAdd = useCallback(\n (cartId: string, lines: CartLineInput[]) => {\n return fetchCart<{cartLinesAdd: {cart: CartResponse}}>({\n query: CartLineAdd(cartFragment),\n variables: {\n cartId,\n lines,\n numCartLines,\n country: countryCode,\n language: languageCode,\n },\n });\n },\n [cartFragment, countryCode, fetchCart, numCartLines, languageCode],\n );\n\n const cartLineUpdate = useCallback(\n (cartId: string, lines: CartLineUpdateInput[]) => {\n return fetchCart<{cartLinesUpdate: {cart: CartResponse}}>({\n query: CartLineUpdate(cartFragment),\n variables: {\n cartId,\n lines,\n numCartLines,\n country: countryCode,\n language: languageCode,\n },\n });\n },\n [cartFragment, countryCode, fetchCart, numCartLines, languageCode],\n );\n\n const cartLineRemove = useCallback(\n (cartId: string, lines: string[]) => {\n return fetchCart<{cartLinesRemove: {cart: CartResponse}}>({\n query: CartLineRemove(cartFragment),\n variables: {\n cartId,\n lines,\n numCartLines,\n country: countryCode,\n language: languageCode,\n },\n });\n },\n [cartFragment, countryCode, fetchCart, numCartLines, languageCode],\n );\n\n const noteUpdate = useCallback(\n (cartId: string, note: MutationCartNoteUpdateArgs['note']) => {\n return fetchCart<{cartNoteUpdate: {cart: CartResponse}}>({\n query: CartNoteUpdate(cartFragment),\n variables: {\n cartId,\n note,\n numCartLines,\n country: countryCode,\n language: languageCode,\n },\n });\n },\n [fetchCart, cartFragment, numCartLines, countryCode, languageCode],\n );\n\n const buyerIdentityUpdate = useCallback(\n (cartId: string, buyerIdentity: CartBuyerIdentityInput) => {\n return fetchCart<{cartBuyerIdentityUpdate: {cart: CartResponse}}>({\n query: CartBuyerIdentityUpdate(cartFragment),\n variables: {\n cartId,\n buyerIdentity,\n numCartLines,\n country: countryCode,\n language: languageCode,\n },\n });\n },\n [cartFragment, countryCode, fetchCart, numCartLines, languageCode],\n );\n\n const cartAttributesUpdate = useCallback(\n (cartId: string, attributes: AttributeInput[]) => {\n return fetchCart<{cartAttributesUpdate: {cart: CartResponse}}>({\n query: CartAttributesUpdate(cartFragment),\n variables: {\n cartId,\n attributes,\n numCartLines,\n country: countryCode,\n language: languageCode,\n },\n });\n },\n [cartFragment, countryCode, fetchCart, numCartLines, languageCode],\n );\n\n const discountCodesUpdate = useCallback(\n (\n cartId: string,\n discountCodes: MutationCartDiscountCodesUpdateArgs['discountCodes'],\n ) => {\n return fetchCart<{cartDiscountCodesUpdate: {cart: CartResponse}}>({\n query: CartDiscountCodesUpdate(cartFragment),\n variables: {\n cartId,\n discountCodes,\n numCartLines,\n country: countryCode,\n language: languageCode,\n },\n });\n },\n [cartFragment, countryCode, fetchCart, numCartLines, languageCode],\n );\n\n return useMemo(\n () => ({\n cartFetch,\n cartCreate,\n cartLineAdd,\n cartLineUpdate,\n cartLineRemove,\n noteUpdate,\n buyerIdentityUpdate,\n cartAttributesUpdate,\n discountCodesUpdate,\n cartFragment,\n }),\n [\n cartFetch,\n cartCreate,\n cartLineAdd,\n cartLineUpdate,\n cartLineRemove,\n noteUpdate,\n buyerIdentityUpdate,\n cartAttributesUpdate,\n discountCodesUpdate,\n cartFragment,\n ],\n );\n}\n"],"mappings":";;;;;;;;;AAmCA,SAAgB,eAAe,EAC7B,cACA,cACA,cAAc,MACd,eAAe,QAUd;CACD,MAAM,YAAY,cAAc;CAEhC,MAAM,YAAY,aACf,WAAmB;AAClB,SAAO,UAAgC;GACrC,OAAO,UAAU,aAAa;GAC9B,WAAW;IACT,IAAI;IACJ;IACA,SAAS;IACT,UAAU;IACX;GACF,CAAC;IAEJ;EAAC;EAAW;EAAc;EAAc;EAAa;EAAa,CACnE;CAED,MAAM,aAAa,aAChB,SAAoB;AACnB,SAAO,UAA8C;GACnD,OAAO,WAAW,aAAa;GAC/B,WAAW;IACT,OAAO;IACP;IACA,SAAS;IACT,UAAU;IACX;GACF,CAAC;IAEJ;EAAC;EAAc;EAAa;EAAW;EAAc;EAAa,CACnE;CAED,MAAM,cAAc,aACjB,QAAgB,UAA2B;AAC1C,SAAO,UAAgD;GACrD,OAAO,YAAY,aAAa;GAChC,WAAW;IACT;IACA;IACA;IACA,SAAS;IACT,UAAU;IACX;GACF,CAAC;IAEJ;EAAC;EAAc;EAAa;EAAW;EAAc;EAAa,CACnE;CAED,MAAM,iBAAiB,aACpB,QAAgB,UAAiC;AAChD,SAAO,UAAmD;GACxD,OAAO,eAAe,aAAa;GACnC,WAAW;IACT;IACA;IACA;IACA,SAAS;IACT,UAAU;IACX;GACF,CAAC;IAEJ;EAAC;EAAc;EAAa;EAAW;EAAc;EAAa,CACnE;CAED,MAAM,iBAAiB,aACpB,QAAgB,UAAoB;AACnC,SAAO,UAAmD;GACxD,OAAO,eAAe,aAAa;GACnC,WAAW;IACT;IACA;IACA;IACA,SAAS;IACT,UAAU;IACX;GACF,CAAC;IAEJ;EAAC;EAAc;EAAa;EAAW;EAAc;EAAa,CACnE;CAED,MAAM,aAAa,aAChB,QAAgB,SAA6C;AAC5D,SAAO,UAAkD;GACvD,OAAO,eAAe,aAAa;GACnC,WAAW;IACT;IACA;IACA;IACA,SAAS;IACT,UAAU;IACX;GACF,CAAC;IAEJ;EAAC;EAAW;EAAc;EAAc;EAAa;EAAa,CACnE;CAED,MAAM,sBAAsB,aACzB,QAAgB,kBAA0C;AACzD,SAAO,UAA2D;GAChE,OAAO,wBAAwB,aAAa;GAC5C,WAAW;IACT;IACA;IACA;IACA,SAAS;IACT,UAAU;IACX;GACF,CAAC;IAEJ;EAAC;EAAc;EAAa;EAAW;EAAc;EAAa,CACnE;CAED,MAAM,uBAAuB,aAC1B,QAAgB,eAAiC;AAChD,SAAO,UAAwD;GAC7D,OAAO,qBAAqB,aAAa;GACzC,WAAW;IACT;IACA;IACA;IACA,SAAS;IACT,UAAU;IACX;GACF,CAAC;IAEJ;EAAC;EAAc;EAAa;EAAW;EAAc;EAAa,CACnE;CAED,MAAM,sBAAsB,aAExB,QACA,kBACG;AACH,SAAO,UAA2D;GAChE,OAAO,wBAAwB,aAAa;GAC5C,WAAW;IACT;IACA;IACA;IACA,SAAS;IACT,UAAU;IACX;GACF,CAAC;IAEJ;EAAC;EAAc;EAAa;EAAW;EAAc;EAAa,CACnE;AAED,QAAO,eACE;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,GACD;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CACF"}
@@ -1,68 +1,57 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const index = require("./node_modules/.pnpm/@xstate_fsm@2.0.0/node_modules/@xstate/fsm/es/index.js");
4
- const React = require("react");
5
- const useIsomorphicLayoutEffect = typeof window !== "undefined" ? React.useLayoutEffect : React.useEffect;
1
+ require("./_virtual/_rolldown/runtime.js");
2
+ const require_index = require("./node_modules/.pnpm/@xstate_fsm@2.0.0/node_modules/@xstate/fsm/es/index.js");
3
+ let react = require("react");
4
+ //#region src/useMachine.ts
5
+ var useIsomorphicLayoutEffect = typeof window !== "undefined" ? react.useLayoutEffect : react.useEffect;
6
6
  function useConstant(fn) {
7
- const ref = React.useRef();
8
- if (!ref.current) {
9
- ref.current = { v: fn() };
10
- }
11
- return ref.current.v;
7
+ const ref = (0, react.useRef)();
8
+ if (!ref.current) ref.current = { v: fn() };
9
+ return ref.current.v;
12
10
  }
13
11
  function getServiceState(service) {
14
- let currentValue;
15
- service.subscribe((state) => currentValue = state).unsubscribe();
16
- return currentValue;
12
+ let currentValue;
13
+ service.subscribe((state) => currentValue = state).unsubscribe();
14
+ return currentValue;
17
15
  }
18
16
  function useMachine(stateMachine, options) {
19
- const persistedStateRef = React.useRef();
20
- const [service, queue] = useConstant(() => {
21
- const eventQueue = [];
22
- const svc = index.interpret(
23
- index.createMachine(
24
- stateMachine.config,
25
- options ? options : stateMachine._options
26
- )
27
- );
28
- const originalSend = svc.send;
29
- svc.send = (event) => {
30
- if (svc.status === index.InterpreterStatus.NotStarted) {
31
- eventQueue.push(event);
32
- return;
33
- }
34
- originalSend(event);
35
- persistedStateRef.current = svc.state;
36
- };
37
- return [svc, eventQueue];
38
- });
39
- useIsomorphicLayoutEffect(() => {
40
- if (options) {
41
- service._machine._options = options;
42
- }
43
- });
44
- const getSnapshot = React.useCallback(() => getServiceState(service), [service]);
45
- const subscribe = React.useCallback(
46
- (handleStoreChange) => {
47
- const { unsubscribe } = service.subscribe(handleStoreChange);
48
- return unsubscribe;
49
- },
50
- [service]
51
- );
52
- const storeSnapshot = React.useSyncExternalStore(
53
- subscribe,
54
- getSnapshot,
55
- getSnapshot
56
- );
57
- React.useEffect(() => {
58
- service.start(persistedStateRef.current);
59
- queue.forEach(service.send);
60
- persistedStateRef.current = service.state;
61
- return () => {
62
- service.stop();
63
- };
64
- }, []);
65
- return [storeSnapshot, service.send, service];
17
+ const persistedStateRef = (0, react.useRef)();
18
+ const [service, queue] = useConstant(() => {
19
+ const eventQueue = [];
20
+ const svc = require_index.v(require_index.s(stateMachine.config, options ? options : stateMachine._options));
21
+ const originalSend = svc.send;
22
+ svc.send = (event) => {
23
+ if (svc.status === require_index.n.NotStarted) {
24
+ eventQueue.push(event);
25
+ return;
26
+ }
27
+ originalSend(event);
28
+ persistedStateRef.current = svc.state;
29
+ };
30
+ return [svc, eventQueue];
31
+ });
32
+ useIsomorphicLayoutEffect(() => {
33
+ if (options) service._machine._options = options;
34
+ });
35
+ const getSnapshot = (0, react.useCallback)(() => getServiceState(service), [service]);
36
+ const storeSnapshot = (0, react.useSyncExternalStore)((0, react.useCallback)((handleStoreChange) => {
37
+ const { unsubscribe } = service.subscribe(handleStoreChange);
38
+ return unsubscribe;
39
+ }, [service]), getSnapshot, getSnapshot);
40
+ (0, react.useEffect)(() => {
41
+ service.start(persistedStateRef.current);
42
+ queue.forEach(service.send);
43
+ persistedStateRef.current = service.state;
44
+ return () => {
45
+ service.stop();
46
+ };
47
+ }, []);
48
+ return [
49
+ storeSnapshot,
50
+ service.send,
51
+ service
52
+ ];
66
53
  }
54
+ //#endregion
67
55
  exports.useMachine = useMachine;
68
- //# sourceMappingURL=useMachine.js.map
56
+
57
+ //# sourceMappingURL=useMachine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMachine.js","sources":["../../src/useMachine.ts"],"sourcesContent":["// Inlined React binding for xstate/fsm's state machine interpreter.\n//\n// This replaces the xstate/react/fsm entrypoint, which had no official version\n// supporting both React 19 and xstate/fsm. By owning this hook, we eliminate\n// the xstate/react dependency (and its React version peer dep constraint)\n// while keeping xstate/fsm and the cart state machine definition unchanged.\n//\n// Adapted from xstate/react v3.2.1/fsm (MIT license, Stately/xstate).\n// Copyright (c) 2015 David Khourshid\nimport {\n createMachine,\n interpret,\n InterpreterStatus,\n StateMachine,\n EventObject,\n} from '@xstate/fsm';\nimport {\n useCallback,\n useEffect,\n useLayoutEffect,\n useRef,\n useSyncExternalStore,\n} from 'react';\n\n// useLayoutEffect in the browser (sync after DOM mutations, before paint),\n// useEffect on the server (where useLayoutEffect warns). The check runs once\n// at module evaluation time (not per-render). This matches the original\n// xstate/react behavior via use-isomorphic-layout-effect.\nconst useIsomorphicLayoutEffect =\n typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n\nfunction useConstant<T>(fn: () => T): T {\n const ref = useRef<{v: T}>();\n if (!ref.current) {\n ref.current = {v: fn()};\n }\n return ref.current.v;\n}\n\nfunction getServiceState<\n TC extends object,\n TE extends EventObject,\n TS extends {value: any; context: TC},\n>(service: StateMachine.Service<TC, TE, TS>): StateMachine.State<TC, TE, TS> {\n let currentValue!: StateMachine.State<TC, TE, TS>;\n service.subscribe((state) => (currentValue = state)).unsubscribe();\n return currentValue;\n}\n\nexport function useMachine<\n TC extends object,\n TE extends EventObject,\n TS extends {value: any; context: TC},\n>(\n stateMachine: StateMachine.Machine<TC, TE, TS>,\n options?: {actions?: StateMachine.ActionMap<TC, TE>},\n): readonly [\n StateMachine.State<TC, TE, TS>,\n StateMachine.Service<TC, TE, TS>['send'],\n StateMachine.Service<TC, TE, TS>,\n] {\n const persistedStateRef = useRef<StateMachine.State<TC, TE, TS>>();\n\n const [service, queue] = useConstant(() => {\n const eventQueue: Array<TE | TE['type']> = [];\n const svc = interpret(\n createMachine(\n stateMachine.config,\n options ? options : (stateMachine as any)._options,\n ),\n );\n const originalSend = svc.send;\n svc.send = (event: TE | TE['type']) => {\n if (svc.status === InterpreterStatus.NotStarted) {\n eventQueue.push(event);\n return;\n }\n originalSend(event);\n persistedStateRef.current = svc.state;\n };\n return [svc, eventQueue] as const;\n });\n\n // Keep action implementations in sync without re-creating the service.\n // useIsomorphicLayoutEffect ensures this runs before child effects and paint,\n // preventing a window where stale action handlers could be invoked.\n useIsomorphicLayoutEffect(() => {\n if (options) {\n (service as any)._machine._options = options;\n }\n });\n\n const getSnapshot = useCallback(() => getServiceState(service), [service]);\n\n const subscribe = useCallback(\n (handleStoreChange: () => void) => {\n const {unsubscribe} = service.subscribe(handleStoreChange);\n return unsubscribe;\n },\n [service],\n );\n\n const storeSnapshot = useSyncExternalStore(\n subscribe,\n getSnapshot,\n getSnapshot,\n );\n\n useEffect(() => {\n service.start(persistedStateRef.current as any);\n queue.forEach(service.send);\n persistedStateRef.current = service.state;\n return () => {\n service.stop();\n };\n // service and queue are stable refs from useConstant\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return [storeSnapshot, service.send, service] as const;\n}\n"],"names":["useLayoutEffect","useEffect","useRef","interpret","createMachine","InterpreterStatus","useCallback","useSyncExternalStore"],"mappings":";;;;AA4BA,MAAM,4BACJ,OAAO,WAAW,cAAcA,MAAAA,kBAAkBC,MAAAA;AAEpD,SAAS,YAAe,IAAgB;AACtC,QAAM,MAAMC,MAAAA,OAAA;AACZ,MAAI,CAAC,IAAI,SAAS;AAChB,QAAI,UAAU,EAAC,GAAG,GAAA,EAAG;AAAA,EACvB;AACA,SAAO,IAAI,QAAQ;AACrB;AAEA,SAAS,gBAIP,SAA2E;AAC3E,MAAI;AACJ,UAAQ,UAAU,CAAC,UAAW,eAAe,KAAM,EAAE,YAAA;AACrD,SAAO;AACT;AAEO,SAAS,WAKd,cACA,SAKA;AACA,QAAM,oBAAoBA,MAAAA,OAAA;AAE1B,QAAM,CAAC,SAAS,KAAK,IAAI,YAAY,MAAM;AACzC,UAAM,aAAqC,CAAA;AAC3C,UAAM,MAAMC,MAAAA;AAAAA,MACVC,MAAAA;AAAAA,QACE,aAAa;AAAA,QACb,UAAU,UAAW,aAAqB;AAAA,MAAA;AAAA,IAC5C;AAEF,UAAM,eAAe,IAAI;AACzB,QAAI,OAAO,CAAC,UAA2B;AACrC,UAAI,IAAI,WAAWC,MAAAA,kBAAkB,YAAY;AAC/C,mBAAW,KAAK,KAAK;AACrB;AAAA,MACF;AACA,mBAAa,KAAK;AAClB,wBAAkB,UAAU,IAAI;AAAA,IAClC;AACA,WAAO,CAAC,KAAK,UAAU;AAAA,EACzB,CAAC;AAKD,4BAA0B,MAAM;AAC9B,QAAI,SAAS;AACV,cAAgB,SAAS,WAAW;AAAA,IACvC;AAAA,EACF,CAAC;AAED,QAAM,cAAcC,MAAAA,YAAY,MAAM,gBAAgB,OAAO,GAAG,CAAC,OAAO,CAAC;AAEzE,QAAM,YAAYA,MAAAA;AAAAA,IAChB,CAAC,sBAAkC;AACjC,YAAM,EAAC,YAAA,IAAe,QAAQ,UAAU,iBAAiB;AACzD,aAAO;AAAA,IACT;AAAA,IACA,CAAC,OAAO;AAAA,EAAA;AAGV,QAAM,gBAAgBC,MAAAA;AAAAA,IACpB;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAGFN,QAAAA,UAAU,MAAM;AACd,YAAQ,MAAM,kBAAkB,OAAc;AAC9C,UAAM,QAAQ,QAAQ,IAAI;AAC1B,sBAAkB,UAAU,QAAQ;AACpC,WAAO,MAAM;AACX,cAAQ,KAAA;AAAA,IACV;AAAA,EAGF,GAAG,CAAA,CAAE;AAEL,SAAO,CAAC,eAAe,QAAQ,MAAM,OAAO;AAC9C;;"}
1
+ {"version":3,"file":"useMachine.js","names":[],"sources":["../../src/useMachine.ts"],"sourcesContent":["// Inlined React binding for xstate/fsm's state machine interpreter.\n//\n// This replaces the xstate/react/fsm entrypoint, which had no official version\n// supporting both React 19 and xstate/fsm. By owning this hook, we eliminate\n// the xstate/react dependency (and its React version peer dep constraint)\n// while keeping xstate/fsm and the cart state machine definition unchanged.\n//\n// Adapted from xstate/react v3.2.1/fsm (MIT license, Stately/xstate).\n// Copyright (c) 2015 David Khourshid\nimport {\n createMachine,\n interpret,\n InterpreterStatus,\n StateMachine,\n EventObject,\n} from '@xstate/fsm';\nimport {\n useCallback,\n useEffect,\n useLayoutEffect,\n useRef,\n useSyncExternalStore,\n} from 'react';\n\n// useLayoutEffect in the browser (sync after DOM mutations, before paint),\n// useEffect on the server (where useLayoutEffect warns). The check runs once\n// at module evaluation time (not per-render). This matches the original\n// xstate/react behavior via use-isomorphic-layout-effect.\nconst useIsomorphicLayoutEffect =\n typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n\nfunction useConstant<T>(fn: () => T): T {\n const ref = useRef<{v: T}>();\n if (!ref.current) {\n ref.current = {v: fn()};\n }\n return ref.current.v;\n}\n\nfunction getServiceState<\n TC extends object,\n TE extends EventObject,\n TS extends {value: any; context: TC},\n>(service: StateMachine.Service<TC, TE, TS>): StateMachine.State<TC, TE, TS> {\n let currentValue!: StateMachine.State<TC, TE, TS>;\n service.subscribe((state) => (currentValue = state)).unsubscribe();\n return currentValue;\n}\n\nexport function useMachine<\n TC extends object,\n TE extends EventObject,\n TS extends {value: any; context: TC},\n>(\n stateMachine: StateMachine.Machine<TC, TE, TS>,\n options?: {actions?: StateMachine.ActionMap<TC, TE>},\n): readonly [\n StateMachine.State<TC, TE, TS>,\n StateMachine.Service<TC, TE, TS>['send'],\n StateMachine.Service<TC, TE, TS>,\n] {\n const persistedStateRef = useRef<StateMachine.State<TC, TE, TS>>();\n\n const [service, queue] = useConstant(() => {\n const eventQueue: Array<TE | TE['type']> = [];\n const svc = interpret(\n createMachine(\n stateMachine.config,\n options ? options : (stateMachine as any)._options,\n ),\n );\n const originalSend = svc.send;\n svc.send = (event: TE | TE['type']) => {\n if (svc.status === InterpreterStatus.NotStarted) {\n eventQueue.push(event);\n return;\n }\n originalSend(event);\n persistedStateRef.current = svc.state;\n };\n return [svc, eventQueue] as const;\n });\n\n // Keep action implementations in sync without re-creating the service.\n // useIsomorphicLayoutEffect ensures this runs before child effects and paint,\n // preventing a window where stale action handlers could be invoked.\n useIsomorphicLayoutEffect(() => {\n if (options) {\n (service as any)._machine._options = options;\n }\n });\n\n const getSnapshot = useCallback(() => getServiceState(service), [service]);\n\n const subscribe = useCallback(\n (handleStoreChange: () => void) => {\n const {unsubscribe} = service.subscribe(handleStoreChange);\n return unsubscribe;\n },\n [service],\n );\n\n const storeSnapshot = useSyncExternalStore(\n subscribe,\n getSnapshot,\n getSnapshot,\n );\n\n useEffect(() => {\n service.start(persistedStateRef.current as any);\n queue.forEach(service.send);\n persistedStateRef.current = service.state;\n return () => {\n service.stop();\n };\n // service and queue are stable refs from useConstant\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return [storeSnapshot, service.send, service] as const;\n}\n"],"mappings":";;;;AA4BA,IAAM,4BACJ,OAAO,WAAW,cAAc,MAAA,kBAAkB,MAAA;AAEpD,SAAS,YAAe,IAAgB;CACtC,MAAM,OAAA,GAAA,MAAA,SAAsB;AAC5B,KAAI,CAAC,IAAI,QACP,KAAI,UAAU,EAAC,GAAG,IAAI,EAAC;AAEzB,QAAO,IAAI,QAAQ;;AAGrB,SAAS,gBAIP,SAA2E;CAC3E,IAAI;AACJ,SAAQ,WAAW,UAAW,eAAe,MAAO,CAAC,aAAa;AAClE,QAAO;;AAGT,SAAgB,WAKd,cACA,SAKA;CACA,MAAM,qBAAA,GAAA,MAAA,SAA4D;CAElE,MAAM,CAAC,SAAS,SAAS,kBAAkB;EACzC,MAAM,aAAqC,EAAE;EAC7C,MAAM,MAAM,cAAA,EACV,cAAA,EACE,aAAa,QACb,UAAU,UAAW,aAAqB,SAC3C,CACF;EACD,MAAM,eAAe,IAAI;AACzB,MAAI,QAAQ,UAA2B;AACrC,OAAI,IAAI,WAAW,cAAA,EAAkB,YAAY;AAC/C,eAAW,KAAK,MAAM;AACtB;;AAEF,gBAAa,MAAM;AACnB,qBAAkB,UAAU,IAAI;;AAElC,SAAO,CAAC,KAAK,WAAW;GACxB;AAKF,iCAAgC;AAC9B,MAAI,QACD,SAAgB,SAAS,WAAW;GAEvC;CAEF,MAAM,eAAA,GAAA,MAAA,mBAAgC,gBAAgB,QAAQ,EAAE,CAAC,QAAQ,CAAC;CAU1E,MAAM,iBAAA,GAAA,MAAA,uBAAA,GAAA,MAAA,cAPH,sBAAkC;EACjC,MAAM,EAAC,gBAAe,QAAQ,UAAU,kBAAkB;AAC1D,SAAO;IAET,CAAC,QAAQ,CACV,EAIC,aACA,YACD;AAED,EAAA,GAAA,MAAA,iBAAgB;AACd,UAAQ,MAAM,kBAAkB,QAAe;AAC/C,QAAM,QAAQ,QAAQ,KAAK;AAC3B,oBAAkB,UAAU,QAAQ;AACpC,eAAa;AACX,WAAQ,MAAM;;IAIf,EAAE,CAAC;AAEN,QAAO;EAAC;EAAe,QAAQ;EAAM;EAAQ"}