@shopify/hydrogen-react 0.0.0-next-32f1381 → 0.0.0-next-992334e
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser-dev/{AddToCartButton.js → AddToCartButton.mjs} +4 -4
- package/dist/{node-dev/AddToCartButton.cjs.map → browser-dev/AddToCartButton.mjs.map} +1 -1
- package/dist/browser-dev/{BaseButton.js → BaseButton.mjs} +1 -1
- package/dist/{node-dev/BaseButton.cjs.map → browser-dev/BaseButton.mjs.map} +1 -1
- package/dist/{browser-prod/BuyNowButton.js → browser-dev/BuyNowButton.mjs} +3 -3
- package/dist/{node-dev/BuyNowButton.cjs.map → browser-dev/BuyNowButton.mjs.map} +1 -1
- package/dist/browser-dev/{CartCheckoutButton.js → CartCheckoutButton.mjs} +3 -3
- package/dist/{node-dev/CartCheckoutButton.cjs.map → browser-dev/CartCheckoutButton.mjs.map} +1 -1
- package/dist/browser-dev/{CartProvider.js → CartProvider.mjs} +3 -3
- package/dist/{node-prod/CartProvider.cjs.map → browser-dev/CartProvider.mjs.map} +1 -1
- package/dist/browser-dev/{ExternalVideo.js → ExternalVideo.mjs} +1 -1
- package/dist/{node-dev/ExternalVideo.cjs.map → browser-dev/ExternalVideo.mjs.map} +1 -1
- package/dist/browser-dev/{Image.js → Image.mjs} +2 -2
- package/dist/{node-dev/Image.cjs.map → browser-dev/Image.mjs.map} +1 -1
- package/dist/browser-dev/{MediaFile.js → MediaFile.mjs} +5 -5
- package/dist/{node-dev/MediaFile.cjs.map → browser-dev/MediaFile.mjs.map} +1 -1
- package/dist/browser-dev/{Metafield.js → Metafield.mjs} +5 -5
- package/dist/{node-dev/Metafield.cjs.map → browser-dev/Metafield.mjs.map} +1 -1
- package/dist/browser-dev/{ModelViewer.js → ModelViewer.mjs} +2 -2
- package/dist/{node-dev/ModelViewer.cjs.map → browser-dev/ModelViewer.mjs.map} +1 -1
- package/dist/browser-dev/{Money.js → Money.mjs} +2 -2
- package/dist/{node-dev/Money.cjs.map → browser-dev/Money.mjs.map} +1 -1
- package/dist/{browser-prod/ProductPrice.js → browser-dev/ProductPrice.mjs} +3 -3
- package/dist/{node-prod/ProductPrice.cjs.map → browser-dev/ProductPrice.mjs.map} +1 -1
- package/dist/browser-dev/{ProductProvider.js → ProductProvider.mjs} +2 -2
- package/dist/{node-dev/ProductProvider.cjs.map → browser-dev/ProductProvider.mjs.map} +1 -1
- package/dist/browser-dev/{ShopPayButton.js → ShopPayButton.mjs} +3 -3
- package/dist/{node-prod/ShopPayButton.cjs.map → browser-dev/ShopPayButton.mjs.map} +1 -1
- package/dist/browser-dev/{ShopifyProvider.js → ShopifyProvider.mjs} +2 -2
- package/dist/{node-dev/ShopifyProvider.cjs.map → browser-dev/ShopifyProvider.mjs.map} +1 -1
- package/dist/browser-dev/{Video.js → Video.mjs} +2 -2
- package/dist/{node-dev/Video.cjs.map → browser-dev/Video.mjs.map} +1 -1
- package/dist/browser-dev/_virtual/{index.js → index.mjs} +1 -1
- package/dist/browser-dev/_virtual/index.mjs.map +1 -0
- package/dist/browser-dev/_virtual/{use-sync-external-store-shim.development.js → use-sync-external-store-shim.development.mjs} +1 -1
- package/dist/browser-dev/_virtual/use-sync-external-store-shim.development.mjs.map +1 -0
- package/dist/{browser-prod/_virtual/use-sync-external-store-shim.production.min.js → browser-dev/_virtual/use-sync-external-store-shim.production.min.mjs} +1 -1
- package/dist/browser-dev/_virtual/use-sync-external-store-shim.production.min.mjs.map +1 -0
- package/dist/{browser-prod/_virtual/with-selector.development.js → browser-dev/_virtual/with-selector.development.mjs} +1 -1
- package/dist/browser-dev/_virtual/with-selector.development.mjs.map +1 -0
- package/dist/{browser-prod/_virtual/with-selector.js → browser-dev/_virtual/with-selector.mjs} +1 -1
- package/dist/browser-dev/_virtual/with-selector.mjs.map +1 -0
- package/dist/{browser-prod/_virtual/with-selector.production.min.js → browser-dev/_virtual/with-selector.production.min.mjs} +1 -1
- package/dist/browser-dev/_virtual/with-selector.production.min.mjs.map +1 -0
- package/dist/browser-dev/{cart-constants.js → cart-constants.mjs} +1 -1
- package/dist/{node-dev/cart-constants.cjs.map → browser-dev/cart-constants.mjs.map} +1 -1
- package/dist/{browser-prod/cart-hooks.js → browser-dev/cart-hooks.mjs} +3 -3
- package/dist/{node-prod/cart-hooks.cjs.map → browser-dev/cart-hooks.mjs.map} +1 -1
- package/dist/browser-dev/{cart-queries.js → cart-queries.mjs} +1 -1
- package/dist/{node-dev/cart-queries.cjs.map → browser-dev/cart-queries.mjs.map} +1 -1
- package/dist/browser-dev/{flatten-connection.js → flatten-connection.mjs} +1 -1
- package/dist/{node-dev/flatten-connection.cjs.map → browser-dev/flatten-connection.mjs.map} +1 -1
- package/dist/{browser-prod/image-size.js → browser-dev/image-size.mjs} +1 -1
- package/dist/{node-prod/image-size.cjs.map → browser-dev/image-size.mjs.map} +1 -1
- package/dist/browser-dev/index.mjs +46 -0
- package/dist/browser-dev/index.mjs.map +1 -0
- package/dist/browser-dev/{load-script.js → load-script.mjs} +1 -1
- package/dist/{node-prod/load-script.cjs.map → browser-dev/load-script.mjs.map} +1 -1
- package/dist/browser-dev/{metafield-parser.js → metafield-parser.mjs} +3 -3
- package/dist/{node-dev/metafield-parser.cjs.map → browser-dev/metafield-parser.mjs.map} +1 -1
- package/dist/{browser-prod/node_modules/@xstate/fsm/es/index.js → browser-dev/node_modules/@xstate/fsm/es/index.mjs} +1 -1
- package/dist/browser-dev/node_modules/@xstate/fsm/es/index.mjs.map +1 -0
- package/dist/browser-dev/node_modules/@xstate/react/es/fsm.mjs +94 -0
- package/dist/browser-dev/node_modules/@xstate/react/es/fsm.mjs.map +1 -0
- package/dist/browser-dev/node_modules/@xstate/react/es/{useConstant.js → useConstant.mjs} +1 -1
- package/dist/browser-dev/node_modules/@xstate/react/es/useConstant.mjs.map +1 -0
- package/dist/browser-dev/node_modules/use-isomorphic-layout-effect/dist/{use-isomorphic-layout-effect.browser.esm.js → use-isomorphic-layout-effect.browser.esm.mjs} +1 -1
- package/dist/browser-dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.mjs.map +1 -0
- package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/{with-selector.development.js → with-selector.development.mjs} +3 -3
- package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -0
- package/dist/{browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js → browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs} +3 -3
- package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -0
- package/dist/browser-dev/node_modules/use-sync-external-store/cjs/{use-sync-external-store-shim.development.js → use-sync-external-store-shim.development.mjs} +2 -2
- package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -0
- package/dist/browser-dev/node_modules/use-sync-external-store/cjs/{use-sync-external-store-shim.production.min.js → use-sync-external-store-shim.production.min.mjs} +2 -2
- package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -0
- package/dist/{browser-prod/node_modules/use-sync-external-store/shim/index.js → browser-dev/node_modules/use-sync-external-store/shim/index.mjs} +4 -4
- package/dist/browser-dev/node_modules/use-sync-external-store/shim/index.mjs.map +1 -0
- package/dist/{browser-prod/node_modules/use-sync-external-store/shim/with-selector.js → browser-dev/node_modules/use-sync-external-store/shim/with-selector.mjs} +4 -4
- package/dist/browser-dev/node_modules/use-sync-external-store/shim/with-selector.mjs.map +1 -0
- package/dist/{browser-prod/storefront-api-constants.js → browser-dev/storefront-api-constants.mjs} +1 -1
- package/dist/browser-dev/storefront-api-constants.mjs.map +1 -0
- package/dist/browser-dev/{storefront-client.js → storefront-client.mjs} +2 -2
- package/dist/{node-dev/storefront-client.cjs.map → browser-dev/storefront-client.mjs.map} +1 -1
- package/dist/{browser-prod/useCartAPIStateMachine.js → browser-dev/useCartAPIStateMachine.mjs} +5 -5
- package/dist/{node-prod/useCartAPIStateMachine.cjs.map → browser-dev/useCartAPIStateMachine.mjs.map} +1 -1
- package/dist/{browser-prod/useCartActions.js → browser-dev/useCartActions.mjs} +3 -3
- package/dist/{node-dev/useCartActions.cjs.map → browser-dev/useCartActions.mjs.map} +1 -1
- package/dist/{browser-prod/useMoney.js → browser-dev/useMoney.mjs} +2 -2
- package/dist/{node-prod/useMoney.cjs.map → browser-dev/useMoney.mjs.map} +1 -1
- package/dist/browser-prod/{AddToCartButton.js → AddToCartButton.mjs} +4 -4
- package/dist/{node-prod/AddToCartButton.cjs.map → browser-prod/AddToCartButton.mjs.map} +1 -1
- package/dist/browser-prod/{BaseButton.js → BaseButton.mjs} +1 -1
- package/dist/{node-prod/BaseButton.cjs.map → browser-prod/BaseButton.mjs.map} +1 -1
- package/dist/{browser-dev/BuyNowButton.js → browser-prod/BuyNowButton.mjs} +3 -3
- package/dist/{node-prod/BuyNowButton.cjs.map → browser-prod/BuyNowButton.mjs.map} +1 -1
- package/dist/browser-prod/{CartCheckoutButton.js → CartCheckoutButton.mjs} +3 -3
- package/dist/{node-prod/CartCheckoutButton.cjs.map → browser-prod/CartCheckoutButton.mjs.map} +1 -1
- package/dist/browser-prod/{CartProvider.js → CartProvider.mjs} +3 -3
- package/dist/{node-dev/CartProvider.cjs.map → browser-prod/CartProvider.mjs.map} +1 -1
- package/dist/browser-prod/{ExternalVideo.js → ExternalVideo.mjs} +1 -1
- package/dist/{node-prod/ExternalVideo.cjs.map → browser-prod/ExternalVideo.mjs.map} +1 -1
- package/dist/browser-prod/{Image.js → Image.mjs} +2 -2
- package/dist/{node-prod/Image.cjs.map → browser-prod/Image.mjs.map} +1 -1
- package/dist/browser-prod/{MediaFile.js → MediaFile.mjs} +5 -5
- package/dist/{node-prod/MediaFile.cjs.map → browser-prod/MediaFile.mjs.map} +1 -1
- package/dist/browser-prod/{Metafield.js → Metafield.mjs} +5 -5
- package/dist/{node-prod/Metafield.cjs.map → browser-prod/Metafield.mjs.map} +1 -1
- package/dist/browser-prod/{ModelViewer.js → ModelViewer.mjs} +2 -2
- package/dist/{node-prod/ModelViewer.cjs.map → browser-prod/ModelViewer.mjs.map} +1 -1
- package/dist/browser-prod/{Money.js → Money.mjs} +2 -2
- package/dist/{node-prod/Money.cjs.map → browser-prod/Money.mjs.map} +1 -1
- package/dist/{browser-dev/ProductPrice.js → browser-prod/ProductPrice.mjs} +3 -3
- package/dist/{node-dev/ProductPrice.cjs.map → browser-prod/ProductPrice.mjs.map} +1 -1
- package/dist/browser-prod/{ProductProvider.js → ProductProvider.mjs} +2 -2
- package/dist/{node-prod/ProductProvider.cjs.map → browser-prod/ProductProvider.mjs.map} +1 -1
- package/dist/browser-prod/{ShopPayButton.js → ShopPayButton.mjs} +3 -3
- package/dist/{node-dev/ShopPayButton.cjs.map → browser-prod/ShopPayButton.mjs.map} +1 -1
- package/dist/browser-prod/{ShopifyProvider.js → ShopifyProvider.mjs} +2 -2
- package/dist/{node-prod/ShopifyProvider.cjs.map → browser-prod/ShopifyProvider.mjs.map} +1 -1
- package/dist/browser-prod/{Video.js → Video.mjs} +2 -2
- package/dist/{node-prod/Video.cjs.map → browser-prod/Video.mjs.map} +1 -1
- package/dist/browser-prod/_virtual/{index.js → index.mjs} +1 -1
- package/dist/browser-prod/_virtual/index.mjs.map +1 -0
- package/dist/browser-prod/_virtual/{use-sync-external-store-shim.development.js → use-sync-external-store-shim.development.mjs} +1 -1
- package/dist/browser-prod/_virtual/use-sync-external-store-shim.development.mjs.map +1 -0
- package/dist/{browser-dev/_virtual/use-sync-external-store-shim.production.min.js → browser-prod/_virtual/use-sync-external-store-shim.production.min.mjs} +1 -1
- package/dist/browser-prod/_virtual/use-sync-external-store-shim.production.min.mjs.map +1 -0
- package/dist/{browser-dev/_virtual/with-selector.development.js → browser-prod/_virtual/with-selector.development.mjs} +1 -1
- package/dist/browser-prod/_virtual/with-selector.development.mjs.map +1 -0
- package/dist/{browser-dev/_virtual/with-selector.js → browser-prod/_virtual/with-selector.mjs} +1 -1
- package/dist/browser-prod/_virtual/with-selector.mjs.map +1 -0
- package/dist/{browser-dev/_virtual/with-selector.production.min.js → browser-prod/_virtual/with-selector.production.min.mjs} +1 -1
- package/dist/browser-prod/_virtual/with-selector.production.min.mjs.map +1 -0
- package/dist/browser-prod/{cart-constants.js → cart-constants.mjs} +1 -1
- package/dist/{node-prod/cart-constants.cjs.map → browser-prod/cart-constants.mjs.map} +1 -1
- package/dist/{browser-dev/cart-hooks.js → browser-prod/cart-hooks.mjs} +3 -3
- package/dist/{node-dev/cart-hooks.cjs.map → browser-prod/cart-hooks.mjs.map} +1 -1
- package/dist/browser-prod/{cart-queries.js → cart-queries.mjs} +1 -1
- package/dist/{node-prod/cart-queries.cjs.map → browser-prod/cart-queries.mjs.map} +1 -1
- package/dist/browser-prod/{flatten-connection.js → flatten-connection.mjs} +1 -1
- package/dist/{node-prod/flatten-connection.cjs.map → browser-prod/flatten-connection.mjs.map} +1 -1
- package/dist/{browser-dev/image-size.js → browser-prod/image-size.mjs} +1 -1
- package/dist/{node-dev/image-size.cjs.map → browser-prod/image-size.mjs.map} +1 -1
- package/dist/browser-prod/index.mjs +46 -0
- package/dist/browser-prod/index.mjs.map +1 -0
- package/dist/browser-prod/{load-script.js → load-script.mjs} +1 -1
- package/dist/{node-dev/load-script.cjs.map → browser-prod/load-script.mjs.map} +1 -1
- package/dist/browser-prod/{metafield-parser.js → metafield-parser.mjs} +3 -3
- package/dist/{node-prod/metafield-parser.cjs.map → browser-prod/metafield-parser.mjs.map} +1 -1
- package/dist/{browser-dev/node_modules/@xstate/fsm/es/index.js → browser-prod/node_modules/@xstate/fsm/es/index.mjs} +1 -1
- package/dist/browser-prod/node_modules/@xstate/fsm/es/index.mjs.map +1 -0
- package/dist/browser-prod/node_modules/@xstate/react/es/fsm.mjs +94 -0
- package/dist/browser-prod/node_modules/@xstate/react/es/fsm.mjs.map +1 -0
- package/dist/browser-prod/node_modules/@xstate/react/es/{useConstant.js → useConstant.mjs} +1 -1
- package/dist/browser-prod/node_modules/@xstate/react/es/useConstant.mjs.map +1 -0
- package/dist/browser-prod/node_modules/use-isomorphic-layout-effect/dist/{use-isomorphic-layout-effect.browser.esm.js → use-isomorphic-layout-effect.browser.esm.mjs} +1 -1
- package/dist/browser-prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.mjs.map +1 -0
- package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/{with-selector.development.js → with-selector.development.mjs} +3 -3
- package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -0
- package/dist/{browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js → browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs} +3 -3
- package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -0
- package/dist/browser-prod/node_modules/use-sync-external-store/cjs/{use-sync-external-store-shim.development.js → use-sync-external-store-shim.development.mjs} +2 -2
- package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -0
- package/dist/browser-prod/node_modules/use-sync-external-store/cjs/{use-sync-external-store-shim.production.min.js → use-sync-external-store-shim.production.min.mjs} +2 -2
- package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -0
- package/dist/{browser-dev/node_modules/use-sync-external-store/shim/index.js → browser-prod/node_modules/use-sync-external-store/shim/index.mjs} +4 -4
- package/dist/browser-prod/node_modules/use-sync-external-store/shim/index.mjs.map +1 -0
- package/dist/{browser-dev/node_modules/use-sync-external-store/shim/with-selector.js → browser-prod/node_modules/use-sync-external-store/shim/with-selector.mjs} +4 -4
- package/dist/browser-prod/node_modules/use-sync-external-store/shim/with-selector.mjs.map +1 -0
- package/dist/{browser-dev/storefront-api-constants.js → browser-prod/storefront-api-constants.mjs} +1 -1
- package/dist/browser-prod/storefront-api-constants.mjs.map +1 -0
- package/dist/browser-prod/{storefront-client.js → storefront-client.mjs} +2 -2
- package/dist/{node-prod/storefront-client.cjs.map → browser-prod/storefront-client.mjs.map} +1 -1
- package/dist/{browser-dev/useCartAPIStateMachine.js → browser-prod/useCartAPIStateMachine.mjs} +5 -5
- package/dist/{node-dev/useCartAPIStateMachine.cjs.map → browser-prod/useCartAPIStateMachine.mjs.map} +1 -1
- package/dist/{browser-dev/useCartActions.js → browser-prod/useCartActions.mjs} +3 -3
- package/dist/{node-prod/useCartActions.cjs.map → browser-prod/useCartActions.mjs.map} +1 -1
- package/dist/{browser-dev/useMoney.js → browser-prod/useMoney.mjs} +2 -2
- package/dist/{node-dev/useMoney.cjs.map → browser-prod/useMoney.mjs.map} +1 -1
- package/dist/node-dev/AddToCartButton.js +16 -16
- package/dist/node-dev/AddToCartButton.js.map +1 -1
- package/dist/node-dev/{AddToCartButton.cjs → AddToCartButton.mjs} +17 -17
- package/dist/node-dev/AddToCartButton.mjs.map +1 -0
- package/dist/node-dev/BaseButton.js +7 -7
- package/dist/node-dev/BaseButton.js.map +1 -1
- package/dist/node-dev/{BaseButton.cjs → BaseButton.mjs} +8 -8
- package/dist/node-dev/BaseButton.mjs.map +1 -0
- package/dist/node-dev/BuyNowButton.js +12 -12
- package/dist/node-dev/BuyNowButton.js.map +1 -1
- package/dist/node-dev/{BuyNowButton.cjs → BuyNowButton.mjs} +13 -13
- package/dist/node-dev/BuyNowButton.mjs.map +1 -0
- package/dist/node-dev/CartCheckoutButton.js +11 -11
- package/dist/node-dev/CartCheckoutButton.js.map +1 -1
- package/dist/node-dev/CartCheckoutButton.mjs +30 -0
- package/dist/node-dev/CartCheckoutButton.mjs.map +1 -0
- package/dist/node-dev/CartProvider.js +35 -35
- package/dist/node-dev/CartProvider.js.map +1 -1
- package/dist/node-dev/{CartProvider.cjs → CartProvider.mjs} +36 -36
- package/dist/node-dev/CartProvider.mjs.map +1 -0
- package/dist/node-dev/ExternalVideo.js +5 -5
- package/dist/node-dev/ExternalVideo.js.map +1 -1
- package/dist/node-dev/{ExternalVideo.cjs → ExternalVideo.mjs} +6 -6
- package/dist/node-dev/ExternalVideo.mjs.map +1 -0
- package/dist/node-dev/Image.js +12 -12
- package/dist/node-dev/Image.js.map +1 -1
- package/dist/node-dev/{Image.cjs → Image.mjs} +13 -13
- package/dist/node-dev/Image.mjs.map +1 -0
- package/dist/node-dev/MediaFile.js +12 -12
- package/dist/node-dev/MediaFile.js.map +1 -1
- package/dist/node-dev/{MediaFile.cjs → MediaFile.mjs} +13 -13
- package/dist/node-dev/MediaFile.mjs.map +1 -0
- package/dist/node-dev/Metafield.js +32 -32
- package/dist/node-dev/Metafield.js.map +1 -1
- package/dist/node-dev/{Metafield.cjs → Metafield.mjs} +33 -33
- package/dist/node-dev/Metafield.mjs.map +1 -0
- package/dist/node-dev/ModelViewer.js +11 -11
- package/dist/node-dev/ModelViewer.js.map +1 -1
- package/dist/node-dev/{ModelViewer.cjs → ModelViewer.mjs} +12 -12
- package/dist/node-dev/ModelViewer.mjs.map +1 -0
- package/dist/node-dev/Money.js +8 -8
- package/dist/node-dev/Money.js.map +1 -1
- package/dist/node-dev/{Money.cjs → Money.mjs} +9 -9
- package/dist/node-dev/Money.mjs.map +1 -0
- package/dist/node-dev/ProductPrice.js +9 -9
- package/dist/node-dev/ProductPrice.js.map +1 -1
- package/dist/node-dev/{ProductPrice.cjs → ProductPrice.mjs} +10 -10
- package/dist/node-dev/ProductPrice.mjs.map +1 -0
- package/dist/node-dev/ProductProvider.js +25 -25
- package/dist/node-dev/ProductProvider.js.map +1 -1
- package/dist/node-dev/{ProductProvider.cjs → ProductProvider.mjs} +26 -26
- package/dist/node-dev/ProductProvider.mjs.map +1 -0
- package/dist/node-dev/ShopPayButton.js +13 -13
- package/dist/node-dev/ShopPayButton.js.map +1 -1
- package/dist/node-dev/{ShopPayButton.cjs → ShopPayButton.mjs} +14 -14
- package/dist/node-dev/ShopPayButton.mjs.map +1 -0
- package/dist/node-dev/ShopifyProvider.js +14 -14
- package/dist/node-dev/ShopifyProvider.js.map +1 -1
- package/dist/node-dev/ShopifyProvider.mjs +46 -0
- package/dist/node-dev/ShopifyProvider.mjs.map +1 -0
- package/dist/node-dev/Video.js +9 -9
- package/dist/node-dev/Video.js.map +1 -1
- package/dist/node-dev/{Video.cjs → Video.mjs} +10 -10
- package/dist/node-dev/Video.mjs.map +1 -0
- package/dist/node-dev/_virtual/index.js +5 -0
- package/dist/{browser-dev → node-dev}/_virtual/index.js.map +1 -1
- package/dist/node-dev/_virtual/index.mjs +5 -0
- package/dist/node-dev/_virtual/index.mjs.map +1 -0
- package/dist/node-dev/_virtual/use-sync-external-store-shim.development.js +5 -0
- package/dist/{browser-dev → node-dev}/_virtual/use-sync-external-store-shim.development.js.map +1 -1
- package/dist/node-dev/_virtual/use-sync-external-store-shim.development.mjs +5 -0
- package/dist/node-dev/_virtual/use-sync-external-store-shim.development.mjs.map +1 -0
- package/dist/node-dev/_virtual/use-sync-external-store-shim.production.min.js +5 -0
- package/dist/node-dev/_virtual/use-sync-external-store-shim.production.min.js.map +1 -0
- package/dist/node-dev/_virtual/use-sync-external-store-shim.production.min.mjs +5 -0
- package/dist/node-dev/_virtual/use-sync-external-store-shim.production.min.mjs.map +1 -0
- package/dist/node-dev/_virtual/with-selector.development.js +5 -0
- package/dist/{browser-dev → node-dev}/_virtual/with-selector.development.js.map +1 -1
- package/dist/node-dev/_virtual/with-selector.development.mjs +5 -0
- package/dist/node-dev/_virtual/with-selector.development.mjs.map +1 -0
- package/dist/node-dev/_virtual/with-selector.js +5 -0
- package/dist/{browser-dev → node-dev}/_virtual/with-selector.js.map +1 -1
- package/dist/node-dev/_virtual/with-selector.mjs +5 -0
- package/dist/node-dev/_virtual/with-selector.mjs.map +1 -0
- package/dist/node-dev/_virtual/with-selector.production.min.js +5 -0
- package/dist/{browser-dev → node-dev}/_virtual/with-selector.production.min.js.map +1 -1
- package/dist/node-dev/_virtual/with-selector.production.min.mjs +5 -0
- package/dist/node-dev/_virtual/with-selector.production.min.mjs.map +1 -0
- package/dist/node-dev/cart-constants.js +9 -9
- package/dist/node-dev/cart-constants.js.map +1 -1
- package/dist/node-dev/cart-constants.mjs +17 -0
- package/dist/node-dev/cart-constants.mjs.map +1 -0
- package/dist/node-dev/cart-hooks.js +15 -15
- package/dist/node-dev/cart-hooks.js.map +1 -1
- package/dist/node-dev/cart-hooks.mjs +48 -0
- package/dist/node-dev/cart-hooks.mjs.map +1 -0
- package/dist/node-dev/cart-queries.js +11 -11
- package/dist/node-dev/cart-queries.js.map +1 -1
- package/dist/{node-prod/cart-queries.cjs → node-dev/cart-queries.mjs} +12 -12
- package/dist/node-dev/cart-queries.mjs.map +1 -0
- package/dist/node-dev/flatten-connection.js +3 -3
- package/dist/node-dev/flatten-connection.js.map +1 -1
- package/dist/node-dev/{flatten-connection.cjs → flatten-connection.mjs} +4 -4
- package/dist/node-dev/flatten-connection.mjs.map +1 -0
- package/dist/node-dev/image-size.js +6 -6
- package/dist/node-dev/image-size.js.map +1 -1
- package/dist/node-dev/{image-size.cjs → image-size.mjs} +7 -7
- package/dist/node-dev/image-size.mjs.map +1 -0
- package/dist/node-dev/index.js +45 -45
- package/dist/node-dev/index.js.map +1 -1
- package/dist/node-dev/index.mjs +46 -0
- package/dist/node-dev/index.mjs.map +1 -0
- package/dist/node-dev/load-script.js +7 -7
- package/dist/node-dev/load-script.js.map +1 -1
- package/dist/node-dev/{load-script.cjs → load-script.mjs} +8 -8
- package/dist/node-dev/load-script.mjs.map +1 -0
- package/dist/node-dev/metafield-parser.js +8 -8
- package/dist/node-dev/metafield-parser.js.map +1 -1
- package/dist/node-dev/{metafield-parser.cjs → metafield-parser.mjs} +9 -9
- package/dist/node-dev/metafield-parser.mjs.map +1 -0
- package/dist/node-dev/node_modules/@xstate/fsm/es/index.js +158 -0
- package/dist/node-dev/node_modules/@xstate/fsm/es/index.js.map +1 -0
- package/dist/node-dev/node_modules/@xstate/fsm/es/index.mjs +159 -0
- package/dist/node-dev/node_modules/@xstate/fsm/es/index.mjs.map +1 -0
- package/dist/node-dev/node_modules/@xstate/react/es/fsm.js +94 -0
- package/dist/{browser-dev → node-dev}/node_modules/@xstate/react/es/fsm.js.map +1 -1
- package/dist/{browser-prod/node_modules/@xstate/react/es/fsm.js → node-dev/node_modules/@xstate/react/es/fsm.mjs} +6 -6
- package/dist/node-dev/node_modules/@xstate/react/es/fsm.mjs.map +1 -0
- package/dist/node-dev/node_modules/@xstate/react/es/useConstant.js +30 -0
- package/dist/{browser-dev → node-dev}/node_modules/@xstate/react/es/useConstant.js.map +1 -1
- package/dist/node-dev/node_modules/@xstate/react/es/useConstant.mjs +12 -0
- package/dist/node-dev/node_modules/@xstate/react/es/useConstant.mjs.map +1 -0
- package/dist/node-dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.js +5 -0
- package/dist/node-dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.js.map +1 -0
- package/dist/node-dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.mjs +6 -0
- package/dist/node-dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.mjs.map +1 -0
- package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +107 -0
- package/dist/{browser-dev → node-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +1 -1
- package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs +105 -0
- package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -0
- package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js +74 -0
- package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js.map +1 -0
- package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs +72 -0
- package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -0
- package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +138 -0
- package/dist/{browser-prod → node-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +1 -1
- package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs +136 -0
- package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -0
- package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js +60 -0
- package/dist/{browser-prod → node-dev}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js.map +1 -1
- package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs +58 -0
- package/dist/node-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -0
- package/dist/node-dev/node_modules/use-sync-external-store/shim/index.js +21 -0
- package/dist/{browser-prod → node-dev}/node_modules/use-sync-external-store/shim/index.js.map +1 -1
- package/dist/node-dev/node_modules/use-sync-external-store/shim/index.mjs +21 -0
- package/dist/node-dev/node_modules/use-sync-external-store/shim/index.mjs.map +1 -0
- package/dist/node-dev/node_modules/use-sync-external-store/shim/with-selector.js +12 -0
- package/dist/{browser-dev → node-dev}/node_modules/use-sync-external-store/shim/with-selector.js.map +1 -1
- package/dist/node-dev/node_modules/use-sync-external-store/shim/with-selector.mjs +11 -0
- package/dist/node-dev/node_modules/use-sync-external-store/shim/with-selector.mjs.map +1 -0
- package/dist/node-dev/storefront-api-constants.js +3 -3
- package/dist/node-dev/storefront-api-constants.js.map +1 -1
- package/dist/node-dev/storefront-api-constants.mjs +5 -0
- package/dist/node-dev/storefront-api-constants.mjs.map +1 -0
- package/dist/node-dev/storefront-client.js +6 -6
- package/dist/node-dev/storefront-client.js.map +1 -1
- package/dist/node-dev/{storefront-client.cjs → storefront-client.mjs} +7 -7
- package/dist/node-dev/storefront-client.mjs.map +1 -0
- package/dist/node-dev/useCartAPIStateMachine.js +20 -20
- package/dist/node-dev/useCartAPIStateMachine.js.map +1 -1
- package/dist/node-dev/{useCartAPIStateMachine.cjs → useCartAPIStateMachine.mjs} +21 -21
- package/dist/node-dev/useCartAPIStateMachine.mjs.map +1 -0
- package/dist/node-dev/useCartActions.js +26 -26
- package/dist/node-dev/useCartActions.js.map +1 -1
- package/dist/{node-prod/useCartActions.cjs → node-dev/useCartActions.mjs} +27 -27
- package/dist/node-dev/useCartActions.mjs.map +1 -0
- package/dist/node-dev/useMoney.js +10 -10
- package/dist/node-dev/useMoney.js.map +1 -1
- package/dist/node-dev/{useMoney.cjs → useMoney.mjs} +11 -11
- package/dist/node-dev/useMoney.mjs.map +1 -0
- package/dist/node-prod/AddToCartButton.js +16 -16
- package/dist/node-prod/AddToCartButton.js.map +1 -1
- package/dist/node-prod/{AddToCartButton.cjs → AddToCartButton.mjs} +17 -17
- package/dist/node-prod/AddToCartButton.mjs.map +1 -0
- package/dist/node-prod/BaseButton.js +7 -7
- package/dist/node-prod/BaseButton.js.map +1 -1
- package/dist/node-prod/{BaseButton.cjs → BaseButton.mjs} +8 -8
- package/dist/node-prod/BaseButton.mjs.map +1 -0
- package/dist/node-prod/BuyNowButton.js +12 -12
- package/dist/node-prod/BuyNowButton.js.map +1 -1
- package/dist/node-prod/{BuyNowButton.cjs → BuyNowButton.mjs} +13 -13
- package/dist/node-prod/BuyNowButton.mjs.map +1 -0
- package/dist/node-prod/CartCheckoutButton.js +11 -11
- package/dist/node-prod/CartCheckoutButton.js.map +1 -1
- package/dist/node-prod/CartCheckoutButton.mjs +30 -0
- package/dist/node-prod/CartCheckoutButton.mjs.map +1 -0
- package/dist/node-prod/CartProvider.js +35 -35
- package/dist/node-prod/CartProvider.js.map +1 -1
- package/dist/node-prod/{CartProvider.cjs → CartProvider.mjs} +36 -36
- package/dist/node-prod/CartProvider.mjs.map +1 -0
- package/dist/node-prod/ExternalVideo.js +5 -5
- package/dist/node-prod/ExternalVideo.js.map +1 -1
- package/dist/node-prod/{ExternalVideo.cjs → ExternalVideo.mjs} +6 -6
- package/dist/node-prod/ExternalVideo.mjs.map +1 -0
- package/dist/node-prod/Image.js +12 -12
- package/dist/node-prod/Image.js.map +1 -1
- package/dist/node-prod/{Image.cjs → Image.mjs} +13 -13
- package/dist/node-prod/Image.mjs.map +1 -0
- package/dist/node-prod/MediaFile.js +12 -12
- package/dist/node-prod/MediaFile.js.map +1 -1
- package/dist/node-prod/{MediaFile.cjs → MediaFile.mjs} +13 -13
- package/dist/node-prod/MediaFile.mjs.map +1 -0
- package/dist/node-prod/Metafield.js +32 -32
- package/dist/node-prod/Metafield.js.map +1 -1
- package/dist/node-prod/{Metafield.cjs → Metafield.mjs} +33 -33
- package/dist/node-prod/Metafield.mjs.map +1 -0
- package/dist/node-prod/ModelViewer.js +11 -11
- package/dist/node-prod/ModelViewer.js.map +1 -1
- package/dist/node-prod/{ModelViewer.cjs → ModelViewer.mjs} +12 -12
- package/dist/node-prod/ModelViewer.mjs.map +1 -0
- package/dist/node-prod/Money.js +8 -8
- package/dist/node-prod/Money.js.map +1 -1
- package/dist/node-prod/{Money.cjs → Money.mjs} +9 -9
- package/dist/node-prod/Money.mjs.map +1 -0
- package/dist/node-prod/ProductPrice.js +9 -9
- package/dist/node-prod/ProductPrice.js.map +1 -1
- package/dist/node-prod/{ProductPrice.cjs → ProductPrice.mjs} +10 -10
- package/dist/node-prod/ProductPrice.mjs.map +1 -0
- package/dist/node-prod/ProductProvider.js +25 -25
- package/dist/node-prod/ProductProvider.js.map +1 -1
- package/dist/node-prod/{ProductProvider.cjs → ProductProvider.mjs} +26 -26
- package/dist/node-prod/ProductProvider.mjs.map +1 -0
- package/dist/node-prod/ShopPayButton.js +13 -13
- package/dist/node-prod/ShopPayButton.js.map +1 -1
- package/dist/node-prod/{ShopPayButton.cjs → ShopPayButton.mjs} +14 -14
- package/dist/node-prod/ShopPayButton.mjs.map +1 -0
- package/dist/node-prod/ShopifyProvider.js +14 -14
- package/dist/node-prod/ShopifyProvider.js.map +1 -1
- package/dist/node-prod/ShopifyProvider.mjs +46 -0
- package/dist/node-prod/ShopifyProvider.mjs.map +1 -0
- package/dist/node-prod/Video.js +9 -9
- package/dist/node-prod/Video.js.map +1 -1
- package/dist/node-prod/{Video.cjs → Video.mjs} +10 -10
- package/dist/node-prod/Video.mjs.map +1 -0
- package/dist/node-prod/_virtual/index.js +5 -0
- package/dist/{browser-prod → node-prod}/_virtual/index.js.map +1 -1
- package/dist/node-prod/_virtual/index.mjs +5 -0
- package/dist/node-prod/_virtual/index.mjs.map +1 -0
- package/dist/node-prod/_virtual/use-sync-external-store-shim.development.js +5 -0
- package/dist/{browser-prod → node-prod}/_virtual/use-sync-external-store-shim.development.js.map +1 -1
- package/dist/node-prod/_virtual/use-sync-external-store-shim.development.mjs +5 -0
- package/dist/node-prod/_virtual/use-sync-external-store-shim.development.mjs.map +1 -0
- package/dist/node-prod/_virtual/use-sync-external-store-shim.production.min.js +5 -0
- package/dist/node-prod/_virtual/use-sync-external-store-shim.production.min.js.map +1 -0
- package/dist/node-prod/_virtual/use-sync-external-store-shim.production.min.mjs +5 -0
- package/dist/node-prod/_virtual/use-sync-external-store-shim.production.min.mjs.map +1 -0
- package/dist/node-prod/_virtual/with-selector.development.js +5 -0
- package/dist/{browser-prod → node-prod}/_virtual/with-selector.development.js.map +1 -1
- package/dist/node-prod/_virtual/with-selector.development.mjs +5 -0
- package/dist/node-prod/_virtual/with-selector.development.mjs.map +1 -0
- package/dist/node-prod/_virtual/with-selector.js +5 -0
- package/dist/{browser-prod → node-prod}/_virtual/with-selector.js.map +1 -1
- package/dist/node-prod/_virtual/with-selector.mjs +5 -0
- package/dist/node-prod/_virtual/with-selector.mjs.map +1 -0
- package/dist/node-prod/_virtual/with-selector.production.min.js +5 -0
- package/dist/{browser-prod → node-prod}/_virtual/with-selector.production.min.js.map +1 -1
- package/dist/node-prod/_virtual/with-selector.production.min.mjs +5 -0
- package/dist/node-prod/_virtual/with-selector.production.min.mjs.map +1 -0
- package/dist/node-prod/cart-constants.js +9 -9
- package/dist/node-prod/cart-constants.js.map +1 -1
- package/dist/node-prod/cart-constants.mjs +17 -0
- package/dist/node-prod/cart-constants.mjs.map +1 -0
- package/dist/node-prod/cart-hooks.js +15 -15
- package/dist/node-prod/cart-hooks.js.map +1 -1
- package/dist/node-prod/cart-hooks.mjs +48 -0
- package/dist/node-prod/cart-hooks.mjs.map +1 -0
- package/dist/node-prod/cart-queries.js +11 -11
- package/dist/node-prod/cart-queries.js.map +1 -1
- package/dist/{node-dev/cart-queries.cjs → node-prod/cart-queries.mjs} +12 -12
- package/dist/node-prod/cart-queries.mjs.map +1 -0
- package/dist/node-prod/flatten-connection.js +3 -3
- package/dist/node-prod/flatten-connection.js.map +1 -1
- package/dist/node-prod/{flatten-connection.cjs → flatten-connection.mjs} +4 -4
- package/dist/node-prod/flatten-connection.mjs.map +1 -0
- package/dist/node-prod/image-size.js +6 -6
- package/dist/node-prod/image-size.js.map +1 -1
- package/dist/node-prod/{image-size.cjs → image-size.mjs} +7 -7
- package/dist/node-prod/image-size.mjs.map +1 -0
- package/dist/node-prod/index.js +45 -45
- package/dist/node-prod/index.js.map +1 -1
- package/dist/node-prod/index.mjs +46 -0
- package/dist/node-prod/index.mjs.map +1 -0
- package/dist/node-prod/load-script.js +7 -7
- package/dist/node-prod/load-script.js.map +1 -1
- package/dist/node-prod/{load-script.cjs → load-script.mjs} +8 -8
- package/dist/node-prod/load-script.mjs.map +1 -0
- package/dist/node-prod/metafield-parser.js +8 -8
- package/dist/node-prod/metafield-parser.js.map +1 -1
- package/dist/node-prod/{metafield-parser.cjs → metafield-parser.mjs} +9 -9
- package/dist/node-prod/metafield-parser.mjs.map +1 -0
- package/dist/node-prod/node_modules/@xstate/fsm/es/index.js +158 -0
- package/dist/node-prod/node_modules/@xstate/fsm/es/index.js.map +1 -0
- package/dist/node-prod/node_modules/@xstate/fsm/es/index.mjs +159 -0
- package/dist/node-prod/node_modules/@xstate/fsm/es/index.mjs.map +1 -0
- package/dist/node-prod/node_modules/@xstate/react/es/fsm.js +94 -0
- package/dist/{browser-prod → node-prod}/node_modules/@xstate/react/es/fsm.js.map +1 -1
- package/dist/{browser-dev/node_modules/@xstate/react/es/fsm.js → node-prod/node_modules/@xstate/react/es/fsm.mjs} +6 -6
- package/dist/node-prod/node_modules/@xstate/react/es/fsm.mjs.map +1 -0
- package/dist/node-prod/node_modules/@xstate/react/es/useConstant.js +30 -0
- package/dist/{browser-prod → node-prod}/node_modules/@xstate/react/es/useConstant.js.map +1 -1
- package/dist/node-prod/node_modules/@xstate/react/es/useConstant.mjs +12 -0
- package/dist/node-prod/node_modules/@xstate/react/es/useConstant.mjs.map +1 -0
- package/dist/node-prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.js +5 -0
- package/dist/node-prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.js.map +1 -0
- package/dist/node-prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.mjs +6 -0
- package/dist/node-prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.esm.mjs.map +1 -0
- package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +107 -0
- package/dist/{browser-prod → node-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +1 -1
- package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs +105 -0
- package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.mjs.map +1 -0
- package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js +74 -0
- package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js.map +1 -0
- package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs +72 -0
- package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.mjs.map +1 -0
- package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +138 -0
- package/dist/{browser-dev → node-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +1 -1
- package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs +136 -0
- package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.mjs.map +1 -0
- package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js +60 -0
- package/dist/{browser-dev → node-prod}/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js.map +1 -1
- package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs +58 -0
- package/dist/node-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.mjs.map +1 -0
- package/dist/node-prod/node_modules/use-sync-external-store/shim/index.js +21 -0
- package/dist/{browser-dev → node-prod}/node_modules/use-sync-external-store/shim/index.js.map +1 -1
- package/dist/node-prod/node_modules/use-sync-external-store/shim/index.mjs +21 -0
- package/dist/node-prod/node_modules/use-sync-external-store/shim/index.mjs.map +1 -0
- package/dist/node-prod/node_modules/use-sync-external-store/shim/with-selector.js +12 -0
- package/dist/{browser-prod → node-prod}/node_modules/use-sync-external-store/shim/with-selector.js.map +1 -1
- package/dist/node-prod/node_modules/use-sync-external-store/shim/with-selector.mjs +11 -0
- package/dist/node-prod/node_modules/use-sync-external-store/shim/with-selector.mjs.map +1 -0
- package/dist/node-prod/storefront-api-constants.js +3 -3
- package/dist/node-prod/storefront-api-constants.js.map +1 -1
- package/dist/node-prod/storefront-api-constants.mjs +5 -0
- package/dist/node-prod/storefront-api-constants.mjs.map +1 -0
- package/dist/node-prod/storefront-client.js +6 -6
- package/dist/node-prod/storefront-client.js.map +1 -1
- package/dist/node-prod/{storefront-client.cjs → storefront-client.mjs} +7 -7
- package/dist/node-prod/storefront-client.mjs.map +1 -0
- package/dist/node-prod/useCartAPIStateMachine.js +20 -20
- package/dist/node-prod/useCartAPIStateMachine.js.map +1 -1
- package/dist/node-prod/{useCartAPIStateMachine.cjs → useCartAPIStateMachine.mjs} +21 -21
- package/dist/node-prod/useCartAPIStateMachine.mjs.map +1 -0
- package/dist/node-prod/useCartActions.js +26 -26
- package/dist/node-prod/useCartActions.js.map +1 -1
- package/dist/{node-dev/useCartActions.cjs → node-prod/useCartActions.mjs} +27 -27
- package/dist/node-prod/useCartActions.mjs.map +1 -0
- package/dist/node-prod/useMoney.js +10 -10
- package/dist/node-prod/useMoney.js.map +1 -1
- package/dist/node-prod/{useMoney.cjs → useMoney.mjs} +11 -11
- package/dist/node-prod/useMoney.mjs.map +1 -0
- package/package.json +19 -19
- package/dist/browser-dev/AddToCartButton.js.map +0 -1
- package/dist/browser-dev/BaseButton.js.map +0 -1
- package/dist/browser-dev/BuyNowButton.js.map +0 -1
- package/dist/browser-dev/CartCheckoutButton.js.map +0 -1
- package/dist/browser-dev/CartProvider.js.map +0 -1
- package/dist/browser-dev/ExternalVideo.js.map +0 -1
- package/dist/browser-dev/Image.js.map +0 -1
- package/dist/browser-dev/MediaFile.js.map +0 -1
- package/dist/browser-dev/Metafield.js.map +0 -1
- package/dist/browser-dev/ModelViewer.js.map +0 -1
- package/dist/browser-dev/Money.js.map +0 -1
- package/dist/browser-dev/ProductPrice.js.map +0 -1
- package/dist/browser-dev/ProductProvider.js.map +0 -1
- package/dist/browser-dev/ShopPayButton.js.map +0 -1
- package/dist/browser-dev/ShopifyProvider.js.map +0 -1
- package/dist/browser-dev/Video.js.map +0 -1
- package/dist/browser-dev/_virtual/use-sync-external-store-shim.production.min.js.map +0 -1
- package/dist/browser-dev/cart-constants.js.map +0 -1
- package/dist/browser-dev/cart-hooks.js.map +0 -1
- package/dist/browser-dev/cart-queries.js.map +0 -1
- package/dist/browser-dev/flatten-connection.js.map +0 -1
- package/dist/browser-dev/image-size.js.map +0 -1
- package/dist/browser-dev/index.js +0 -46
- package/dist/browser-dev/index.js.map +0 -1
- package/dist/browser-dev/load-script.js.map +0 -1
- package/dist/browser-dev/metafield-parser.js.map +0 -1
- package/dist/browser-dev/node_modules/@xstate/fsm/es/index.js.map +0 -1
- package/dist/browser-dev/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js.map +0 -1
- package/dist/browser-dev/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js.map +0 -1
- package/dist/browser-dev/storefront-api-constants.js.map +0 -1
- package/dist/browser-dev/storefront-client.js.map +0 -1
- package/dist/browser-dev/useCartAPIStateMachine.js.map +0 -1
- package/dist/browser-dev/useCartActions.js.map +0 -1
- package/dist/browser-dev/useMoney.js.map +0 -1
- package/dist/browser-prod/AddToCartButton.js.map +0 -1
- package/dist/browser-prod/BaseButton.js.map +0 -1
- package/dist/browser-prod/BuyNowButton.js.map +0 -1
- package/dist/browser-prod/CartCheckoutButton.js.map +0 -1
- package/dist/browser-prod/CartProvider.js.map +0 -1
- package/dist/browser-prod/ExternalVideo.js.map +0 -1
- package/dist/browser-prod/Image.js.map +0 -1
- package/dist/browser-prod/MediaFile.js.map +0 -1
- package/dist/browser-prod/Metafield.js.map +0 -1
- package/dist/browser-prod/ModelViewer.js.map +0 -1
- package/dist/browser-prod/Money.js.map +0 -1
- package/dist/browser-prod/ProductPrice.js.map +0 -1
- package/dist/browser-prod/ProductProvider.js.map +0 -1
- package/dist/browser-prod/ShopPayButton.js.map +0 -1
- package/dist/browser-prod/ShopifyProvider.js.map +0 -1
- package/dist/browser-prod/Video.js.map +0 -1
- package/dist/browser-prod/_virtual/use-sync-external-store-shim.production.min.js.map +0 -1
- package/dist/browser-prod/cart-constants.js.map +0 -1
- package/dist/browser-prod/cart-hooks.js.map +0 -1
- package/dist/browser-prod/cart-queries.js.map +0 -1
- package/dist/browser-prod/flatten-connection.js.map +0 -1
- package/dist/browser-prod/image-size.js.map +0 -1
- package/dist/browser-prod/index.js +0 -46
- package/dist/browser-prod/index.js.map +0 -1
- package/dist/browser-prod/load-script.js.map +0 -1
- package/dist/browser-prod/metafield-parser.js.map +0 -1
- package/dist/browser-prod/node_modules/@xstate/fsm/es/index.js.map +0 -1
- package/dist/browser-prod/node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js.map +0 -1
- package/dist/browser-prod/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js.map +0 -1
- package/dist/browser-prod/storefront-api-constants.js.map +0 -1
- package/dist/browser-prod/storefront-client.js.map +0 -1
- package/dist/browser-prod/useCartAPIStateMachine.js.map +0 -1
- package/dist/browser-prod/useCartActions.js.map +0 -1
- package/dist/browser-prod/useMoney.js.map +0 -1
- package/dist/node-dev/CartCheckoutButton.cjs +0 -30
- package/dist/node-dev/ShopifyProvider.cjs +0 -46
- package/dist/node-dev/cart-constants.cjs +0 -17
- package/dist/node-dev/cart-hooks.cjs +0 -48
- package/dist/node-dev/index.cjs +0 -46
- package/dist/node-dev/index.cjs.map +0 -1
- package/dist/node-dev/storefront-api-constants.cjs +0 -5
- package/dist/node-dev/storefront-api-constants.cjs.map +0 -1
- package/dist/node-prod/CartCheckoutButton.cjs +0 -30
- package/dist/node-prod/ShopifyProvider.cjs +0 -46
- package/dist/node-prod/cart-constants.cjs +0 -17
- package/dist/node-prod/cart-hooks.cjs +0 -48
- package/dist/node-prod/index.cjs +0 -46
- package/dist/node-prod/index.cjs.map +0 -1
- package/dist/node-prod/storefront-api-constants.cjs +0 -5
- package/dist/node-prod/storefront-api-constants.cjs.map +0 -1
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const BaseButton = require("./BaseButton.cjs");
|
|
6
|
-
const jsxRuntime = require("react/jsx-runtime");
|
|
1
|
+
import { useState, useEffect, useCallback } from "react";
|
|
2
|
+
import { useCart } from "./CartProvider.mjs";
|
|
3
|
+
import { BaseButton } from "./BaseButton.mjs";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
7
5
|
function BuyNowButton(props) {
|
|
8
6
|
const {
|
|
9
7
|
cartCreate,
|
|
10
8
|
checkoutUrl
|
|
11
|
-
} =
|
|
12
|
-
const [loading, setLoading] =
|
|
9
|
+
} = useCart();
|
|
10
|
+
const [loading, setLoading] = useState(false);
|
|
13
11
|
const {
|
|
14
12
|
quantity,
|
|
15
13
|
variantId,
|
|
@@ -18,12 +16,12 @@ function BuyNowButton(props) {
|
|
|
18
16
|
children,
|
|
19
17
|
...passthroughProps
|
|
20
18
|
} = props;
|
|
21
|
-
|
|
19
|
+
useEffect(() => {
|
|
22
20
|
if (checkoutUrl) {
|
|
23
21
|
window.location.href = checkoutUrl;
|
|
24
22
|
}
|
|
25
23
|
}, [checkoutUrl]);
|
|
26
|
-
const handleBuyNow =
|
|
24
|
+
const handleBuyNow = useCallback(() => {
|
|
27
25
|
setLoading(true);
|
|
28
26
|
cartCreate({
|
|
29
27
|
lines: [{
|
|
@@ -33,7 +31,7 @@ function BuyNowButton(props) {
|
|
|
33
31
|
}]
|
|
34
32
|
});
|
|
35
33
|
}, [cartCreate, quantity, variantId, attributes]);
|
|
36
|
-
return /* @__PURE__ */
|
|
34
|
+
return /* @__PURE__ */ jsx(BaseButton, {
|
|
37
35
|
disabled: loading != null ? loading : passthroughProps.disabled,
|
|
38
36
|
...passthroughProps,
|
|
39
37
|
onClick,
|
|
@@ -41,5 +39,7 @@ function BuyNowButton(props) {
|
|
|
41
39
|
children
|
|
42
40
|
});
|
|
43
41
|
}
|
|
44
|
-
|
|
45
|
-
|
|
42
|
+
export {
|
|
43
|
+
BuyNowButton
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=BuyNowButton.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuyNowButton.mjs","sources":["../../src/BuyNowButton.tsx"],"sourcesContent":["import {useEffect, useState, useCallback} from 'react';\nimport {useCart} from './CartProvider.js';\nimport {BaseButton, BaseButtonProps} from './BaseButton.js';\n\ninterface BuyNowButtonProps {\n /** The item quantity. Defaults to 1. */\n quantity?: number;\n /** The ID of the variant. */\n variantId: string;\n /** An array of cart line attributes that belong to the item being added to the cart. */\n attributes?: {\n key: string;\n value: string;\n }[];\n}\n\n/** The `BuyNowButton` component renders a button that adds an item to the cart and redirects the customer to checkout. */\nexport function BuyNowButton<AsType extends React.ElementType = 'button'>(\n props: BuyNowButtonProps & BaseButtonProps<AsType>\n) {\n const {cartCreate, checkoutUrl} = useCart();\n const [loading, setLoading] = useState<boolean>(false);\n\n const {\n quantity,\n variantId,\n onClick,\n attributes,\n children,\n ...passthroughProps\n } = props;\n\n useEffect(() => {\n if (checkoutUrl) {\n window.location.href = checkoutUrl;\n }\n }, [checkoutUrl]);\n\n const handleBuyNow = useCallback(() => {\n setLoading(true);\n cartCreate({\n lines: [\n {\n quantity: quantity ?? 1,\n merchandiseId: variantId,\n attributes,\n },\n ],\n });\n }, [cartCreate, quantity, variantId, attributes]);\n\n return (\n <BaseButton\n disabled={loading ?? passthroughProps.disabled}\n {...passthroughProps}\n onClick={onClick}\n defaultOnClick={handleBuyNow}\n >\n {children}\n </BaseButton>\n );\n}\n"],"names":["BuyNowButton","props","cartCreate","checkoutUrl","useCart","loading","setLoading","useState","quantity","variantId","onClick","attributes","children","passthroughProps","useEffect","window","location","href","handleBuyNow","useCallback","lines","merchandiseId","disabled"],"mappings":";;;;AAiBO,SAASA,aACdC,OACA;AACM,QAAA;AAAA,IAACC;AAAAA,IAAYC;AAAAA,MAAeC,QAAlC;AACA,QAAM,CAACC,SAASC,UAAV,IAAwBC,SAAkB,KAAV;AAEhC,QAAA;AAAA,IACJC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,IACAC;AAAAA,OACGC;AAAAA,EACDZ,IAAAA;AAEJa,YAAU,MAAM;AACd,QAAIX,aAAa;AACfY,aAAOC,SAASC,OAAOd;AAAAA,IACxB;AAAA,EAAA,GACA,CAACA,WAAD,CAJM;AAMHe,QAAAA,eAAeC,YAAY,MAAM;AACrCb,eAAW,IAAD;AACC,eAAA;AAAA,MACTc,OAAO,CACL;AAAA,QACEZ,UAAUA,8BAAY;AAAA,QACtBa,eAAeZ;AAAAA,QACfE;AAAAA,MAAAA,CAJG;AAAA,IAAA,CADC;AAAA,KAST,CAACT,YAAYM,UAAUC,WAAWE,UAAlC,CAX6B;AAahC,6BACG,YAAD;AAAA,IACE,UAAUN,4BAAWQ,iBAAiBS;AAAAA,IADxC,GAEMT;AAAAA,IACJ;AAAA,IACA,gBAAgBK;AAAAA,IAJlB;AAAA,EAAA,CADF;AAUD;"}
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
+
const require$$0 = require("react");
|
|
4
|
+
const CartProvider = require("./CartProvider.js");
|
|
5
|
+
const BaseButton = require("./BaseButton.js");
|
|
6
|
+
const jsxRuntime = require("react/jsx-runtime");
|
|
5
7
|
function CartCheckoutButton(props) {
|
|
6
|
-
const [requestedCheckout, setRequestedCheckout] = useState(false);
|
|
8
|
+
const [requestedCheckout, setRequestedCheckout] = require$$0.useState(false);
|
|
7
9
|
const {
|
|
8
10
|
status,
|
|
9
11
|
checkoutUrl
|
|
10
|
-
} = useCart();
|
|
12
|
+
} = CartProvider.useCart();
|
|
11
13
|
const {
|
|
12
14
|
children,
|
|
13
15
|
...passthroughProps
|
|
14
16
|
} = props;
|
|
15
|
-
useEffect(() => {
|
|
17
|
+
require$$0.useEffect(() => {
|
|
16
18
|
if (requestedCheckout && checkoutUrl && status === "idle") {
|
|
17
19
|
window.location.href = checkoutUrl;
|
|
18
20
|
}
|
|
19
21
|
}, [requestedCheckout, status, checkoutUrl]);
|
|
20
|
-
return /* @__PURE__ */ jsx(BaseButton, {
|
|
22
|
+
return /* @__PURE__ */ jsxRuntime.jsx(BaseButton.BaseButton, {
|
|
21
23
|
...passthroughProps,
|
|
22
24
|
disabled: requestedCheckout || passthroughProps.disabled,
|
|
23
25
|
onClick: () => setRequestedCheckout(true),
|
|
24
26
|
children
|
|
25
27
|
});
|
|
26
28
|
}
|
|
27
|
-
|
|
28
|
-
CartCheckoutButton
|
|
29
|
-
};
|
|
29
|
+
exports.CartCheckoutButton = CartCheckoutButton;
|
|
30
30
|
//# sourceMappingURL=CartCheckoutButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CartCheckoutButton.js","sources":["../../src/CartCheckoutButton.tsx"],"sourcesContent":["import {ReactNode, useEffect, useState} from 'react';\nimport {useCart} from './CartProvider.js';\nimport {BaseButton, BaseButtonProps} from './BaseButton.js';\n\ntype PropsWeControl = 'onClick';\n\n/**\n * The `CartCheckoutButton` component renders a button that redirects to the checkout URL for the cart.\n * It must be a descendent of a `CartProvider` component.\n */\nexport function CartCheckoutButton(\n props: Omit<BaseButtonProps<'button'>, PropsWeControl> & {\n /** A `ReactNode` element. */\n children: ReactNode;\n }\n) {\n const [requestedCheckout, setRequestedCheckout] = useState(false);\n const {status, checkoutUrl} = useCart();\n const {children, ...passthroughProps} = props;\n\n useEffect(() => {\n if (requestedCheckout && checkoutUrl && status === 'idle') {\n window.location.href = checkoutUrl;\n }\n }, [requestedCheckout, status, checkoutUrl]);\n\n return (\n <BaseButton\n {...passthroughProps}\n disabled={requestedCheckout || passthroughProps.disabled}\n onClick={() => setRequestedCheckout(true)}\n >\n {children}\n </BaseButton>\n );\n}\n"],"names":["CartCheckoutButton","props","requestedCheckout","setRequestedCheckout","useState","status","checkoutUrl","useCart","children","passthroughProps","useEffect","window","location","href","disabled"],"mappings":"
|
|
1
|
+
{"version":3,"file":"CartCheckoutButton.js","sources":["../../src/CartCheckoutButton.tsx"],"sourcesContent":["import {ReactNode, useEffect, useState} from 'react';\nimport {useCart} from './CartProvider.js';\nimport {BaseButton, BaseButtonProps} from './BaseButton.js';\n\ntype PropsWeControl = 'onClick';\n\n/**\n * The `CartCheckoutButton` component renders a button that redirects to the checkout URL for the cart.\n * It must be a descendent of a `CartProvider` component.\n */\nexport function CartCheckoutButton(\n props: Omit<BaseButtonProps<'button'>, PropsWeControl> & {\n /** A `ReactNode` element. */\n children: ReactNode;\n }\n) {\n const [requestedCheckout, setRequestedCheckout] = useState(false);\n const {status, checkoutUrl} = useCart();\n const {children, ...passthroughProps} = props;\n\n useEffect(() => {\n if (requestedCheckout && checkoutUrl && status === 'idle') {\n window.location.href = checkoutUrl;\n }\n }, [requestedCheckout, status, checkoutUrl]);\n\n return (\n <BaseButton\n {...passthroughProps}\n disabled={requestedCheckout || passthroughProps.disabled}\n onClick={() => setRequestedCheckout(true)}\n >\n {children}\n </BaseButton>\n );\n}\n"],"names":["CartCheckoutButton","props","requestedCheckout","setRequestedCheckout","useState","status","checkoutUrl","useCart","children","passthroughProps","useEffect","window","location","href","BaseButton","disabled"],"mappings":";;;;;;AAUO,SAASA,mBACdC,OAIA;AACA,QAAM,CAACC,mBAAmBC,oBAApB,IAA4CC,oBAAS,KAAD;AACpD,QAAA;AAAA,IAACC;AAAAA,IAAQC;AAAAA,MAAeC,aAA9B,QAAA;AACM,QAAA;AAAA,IAACC;AAAAA,OAAaC;AAAAA,EAAoBR,IAAAA;AAExCS,aAAAA,UAAU,MAAM;AACVR,QAAAA,qBAAqBI,eAAeD,WAAW,QAAQ;AACzDM,aAAOC,SAASC,OAAOP;AAAAA,IACxB;AAAA,EACA,GAAA,CAACJ,mBAAmBG,QAAQC,WAA5B,CAJM;AAMT,wCACGQ,WAAAA,YAAD;AAAA,IAAA,GACML;AAAAA,IACJ,UAAUP,qBAAqBO,iBAAiBM;AAAAA,IAChD,SAAS,MAAMZ,qBAAqB,IAAD;AAAA,IAHrC;AAAA,EAAA,CADF;AASD;;"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { useState, useEffect } from "react";
|
|
2
|
+
import { useCart } from "./CartProvider.mjs";
|
|
3
|
+
import { BaseButton } from "./BaseButton.mjs";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
function CartCheckoutButton(props) {
|
|
6
|
+
const [requestedCheckout, setRequestedCheckout] = useState(false);
|
|
7
|
+
const {
|
|
8
|
+
status,
|
|
9
|
+
checkoutUrl
|
|
10
|
+
} = useCart();
|
|
11
|
+
const {
|
|
12
|
+
children,
|
|
13
|
+
...passthroughProps
|
|
14
|
+
} = props;
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
if (requestedCheckout && checkoutUrl && status === "idle") {
|
|
17
|
+
window.location.href = checkoutUrl;
|
|
18
|
+
}
|
|
19
|
+
}, [requestedCheckout, status, checkoutUrl]);
|
|
20
|
+
return /* @__PURE__ */ jsx(BaseButton, {
|
|
21
|
+
...passthroughProps,
|
|
22
|
+
disabled: requestedCheckout || passthroughProps.disabled,
|
|
23
|
+
onClick: () => setRequestedCheckout(true),
|
|
24
|
+
children
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
export {
|
|
28
|
+
CartCheckoutButton
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=CartCheckoutButton.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CartCheckoutButton.mjs","sources":["../../src/CartCheckoutButton.tsx"],"sourcesContent":["import {ReactNode, useEffect, useState} from 'react';\nimport {useCart} from './CartProvider.js';\nimport {BaseButton, BaseButtonProps} from './BaseButton.js';\n\ntype PropsWeControl = 'onClick';\n\n/**\n * The `CartCheckoutButton` component renders a button that redirects to the checkout URL for the cart.\n * It must be a descendent of a `CartProvider` component.\n */\nexport function CartCheckoutButton(\n props: Omit<BaseButtonProps<'button'>, PropsWeControl> & {\n /** A `ReactNode` element. */\n children: ReactNode;\n }\n) {\n const [requestedCheckout, setRequestedCheckout] = useState(false);\n const {status, checkoutUrl} = useCart();\n const {children, ...passthroughProps} = props;\n\n useEffect(() => {\n if (requestedCheckout && checkoutUrl && status === 'idle') {\n window.location.href = checkoutUrl;\n }\n }, [requestedCheckout, status, checkoutUrl]);\n\n return (\n <BaseButton\n {...passthroughProps}\n disabled={requestedCheckout || passthroughProps.disabled}\n onClick={() => setRequestedCheckout(true)}\n >\n {children}\n </BaseButton>\n );\n}\n"],"names":["CartCheckoutButton","props","requestedCheckout","setRequestedCheckout","useState","status","checkoutUrl","useCart","children","passthroughProps","useEffect","window","location","href","disabled"],"mappings":";;;;AAUO,SAASA,mBACdC,OAIA;AACA,QAAM,CAACC,mBAAmBC,oBAApB,IAA4CC,SAAS,KAAD;AACpD,QAAA;AAAA,IAACC;AAAAA,IAAQC;AAAAA,MAAeC,QAA9B;AACM,QAAA;AAAA,IAACC;AAAAA,OAAaC;AAAAA,EAAoBR,IAAAA;AAExCS,YAAU,MAAM;AACVR,QAAAA,qBAAqBI,eAAeD,WAAW,QAAQ;AACzDM,aAAOC,SAASC,OAAOP;AAAAA,IACxB;AAAA,EACA,GAAA,CAACJ,mBAAmBG,QAAQC,WAA5B,CAJM;AAMT,6BACG,YAAD;AAAA,IAAA,GACMG;AAAAA,IACJ,UAAUP,qBAAqBO,iBAAiBK;AAAAA,IAChD,SAAS,MAAMX,qBAAqB,IAAD;AAAA,IAHrC;AAAA,EAAA,CADF;AASD;"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
|
|
3
|
+
const require$$0 = require("react");
|
|
4
|
+
const useCartAPIStateMachine = require("./useCartAPIStateMachine.js");
|
|
5
|
+
const cartConstants = require("./cart-constants.js");
|
|
6
|
+
const jsxRuntime = require("react/jsx-runtime");
|
|
7
|
+
const CartContext = require$$0.createContext(null);
|
|
6
8
|
function useCart() {
|
|
7
|
-
const context = useContext(CartContext);
|
|
9
|
+
const context = require$$0.useContext(CartContext);
|
|
8
10
|
if (!context) {
|
|
9
11
|
throw new Error("Expected a Cart Context, but no Cart Context was found");
|
|
10
12
|
}
|
|
@@ -37,15 +39,15 @@ function CartProvider({
|
|
|
37
39
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
38
40
|
if (countryCode)
|
|
39
41
|
countryCode = countryCode.toUpperCase();
|
|
40
|
-
const [prevCountryCode, setPrevCountryCode] = useState(countryCode);
|
|
41
|
-
const [prevCustomerAccessToken, setPrevCustomerAccessToken] = useState(customerAccessToken);
|
|
42
|
-
const customerOverridesCountryCode = useRef(false);
|
|
42
|
+
const [prevCountryCode, setPrevCountryCode] = require$$0.useState(countryCode);
|
|
43
|
+
const [prevCustomerAccessToken, setPrevCustomerAccessToken] = require$$0.useState(customerAccessToken);
|
|
44
|
+
const customerOverridesCountryCode = require$$0.useRef(false);
|
|
43
45
|
if (prevCountryCode !== countryCode || prevCustomerAccessToken !== customerAccessToken) {
|
|
44
46
|
setPrevCountryCode(countryCode);
|
|
45
47
|
setPrevCustomerAccessToken(customerAccessToken);
|
|
46
48
|
customerOverridesCountryCode.current = false;
|
|
47
49
|
}
|
|
48
|
-
const [cartState, cartSend] = useCartAPIStateMachine({
|
|
50
|
+
const [cartState, cartSend] = useCartAPIStateMachine.useCartAPIStateMachine({
|
|
49
51
|
numCartLines,
|
|
50
52
|
data: cart,
|
|
51
53
|
cartFragment,
|
|
@@ -149,16 +151,16 @@ function CartProvider({
|
|
|
149
151
|
}
|
|
150
152
|
}
|
|
151
153
|
});
|
|
152
|
-
const cartReady = useRef(false);
|
|
154
|
+
const cartReady = require$$0.useRef(false);
|
|
153
155
|
const cartCompleted = cartState.matches("cartCompleted");
|
|
154
156
|
const countryChanged = (cartState.value === "idle" || cartState.value === "error" || cartState.value === "cartCompleted") && countryCode !== ((_c = (_b = (_a = cartState == null ? void 0 : cartState.context) == null ? void 0 : _a.cart) == null ? void 0 : _b.buyerIdentity) == null ? void 0 : _c.countryCode) && !cartState.context.errors;
|
|
155
|
-
const fetchingFromStorage = useRef(false);
|
|
156
|
-
useEffect(() => {
|
|
157
|
+
const fetchingFromStorage = require$$0.useRef(false);
|
|
158
|
+
require$$0.useEffect(() => {
|
|
157
159
|
if (!cartReady.current && !fetchingFromStorage.current) {
|
|
158
160
|
if (!cart && storageAvailable("localStorage")) {
|
|
159
161
|
fetchingFromStorage.current = true;
|
|
160
162
|
try {
|
|
161
|
-
const cartId = window.localStorage.getItem(CART_ID_STORAGE_KEY);
|
|
163
|
+
const cartId = window.localStorage.getItem(cartConstants.CART_ID_STORAGE_KEY);
|
|
162
164
|
if (cartId) {
|
|
163
165
|
cartSend({
|
|
164
166
|
type: "CART_FETCH",
|
|
@@ -175,7 +177,7 @@ function CartProvider({
|
|
|
175
177
|
cartReady.current = true;
|
|
176
178
|
}
|
|
177
179
|
}, [cart, cartReady, cartSend]);
|
|
178
|
-
useEffect(() => {
|
|
180
|
+
require$$0.useEffect(() => {
|
|
179
181
|
if (!countryChanged || customerOverridesCountryCode.current)
|
|
180
182
|
return;
|
|
181
183
|
cartSend({
|
|
@@ -188,32 +190,32 @@ function CartProvider({
|
|
|
188
190
|
}
|
|
189
191
|
});
|
|
190
192
|
}, [countryCode, customerAccessToken, countryChanged, customerOverridesCountryCode, cartSend]);
|
|
191
|
-
const onCartReadySend = useCallback((cartEvent) => {
|
|
193
|
+
const onCartReadySend = require$$0.useCallback((cartEvent) => {
|
|
192
194
|
if (!cartReady.current) {
|
|
193
195
|
return console.warn("Cart isn't ready yet");
|
|
194
196
|
}
|
|
195
197
|
cartSend(cartEvent);
|
|
196
198
|
}, [cartSend]);
|
|
197
|
-
useEffect(() => {
|
|
199
|
+
require$$0.useEffect(() => {
|
|
198
200
|
var _a2, _b2, _c2;
|
|
199
201
|
if (((_b2 = (_a2 = cartState == null ? void 0 : cartState.context) == null ? void 0 : _a2.cart) == null ? void 0 : _b2.id) && storageAvailable("localStorage")) {
|
|
200
202
|
try {
|
|
201
|
-
window.localStorage.setItem(CART_ID_STORAGE_KEY, (_c2 = cartState.context.cart) == null ? void 0 : _c2.id);
|
|
203
|
+
window.localStorage.setItem(cartConstants.CART_ID_STORAGE_KEY, (_c2 = cartState.context.cart) == null ? void 0 : _c2.id);
|
|
202
204
|
} catch (error) {
|
|
203
205
|
console.warn("Failed to save cartId to localStorage", error);
|
|
204
206
|
}
|
|
205
207
|
}
|
|
206
208
|
}, [(_e = (_d = cartState == null ? void 0 : cartState.context) == null ? void 0 : _d.cart) == null ? void 0 : _e.id]);
|
|
207
|
-
useEffect(() => {
|
|
209
|
+
require$$0.useEffect(() => {
|
|
208
210
|
if (cartCompleted && storageAvailable("localStorage")) {
|
|
209
211
|
try {
|
|
210
|
-
window.localStorage.removeItem(CART_ID_STORAGE_KEY);
|
|
212
|
+
window.localStorage.removeItem(cartConstants.CART_ID_STORAGE_KEY);
|
|
211
213
|
} catch (error) {
|
|
212
214
|
console.warn("Failed to delete cartId from localStorage", error);
|
|
213
215
|
}
|
|
214
216
|
}
|
|
215
217
|
}, [cartCompleted]);
|
|
216
|
-
const cartCreate = useCallback((cartInput) => {
|
|
218
|
+
const cartCreate = require$$0.useCallback((cartInput) => {
|
|
217
219
|
var _a2, _b2;
|
|
218
220
|
if (countryCode && !((_a2 = cartInput.buyerIdentity) == null ? void 0 : _a2.countryCode)) {
|
|
219
221
|
if (cartInput.buyerIdentity == null) {
|
|
@@ -233,7 +235,7 @@ function CartProvider({
|
|
|
233
235
|
});
|
|
234
236
|
}, [countryCode, customerAccessToken, onCartReadySend]);
|
|
235
237
|
const cartDisplayState = useDelayedStateUntilHydration(cartState);
|
|
236
|
-
const cartContextValue = useMemo(() => {
|
|
238
|
+
const cartContextValue = require$$0.useMemo(() => {
|
|
237
239
|
var _a2, _b2, _c2, _d2, _e2, _f2;
|
|
238
240
|
return {
|
|
239
241
|
...(_b2 = (_a2 = cartDisplayState == null ? void 0 : cartDisplayState.context) == null ? void 0 : _a2.cart) != null ? _b2 : {
|
|
@@ -310,7 +312,7 @@ function CartProvider({
|
|
|
310
312
|
cartFragment
|
|
311
313
|
};
|
|
312
314
|
}, [cartCreate, (_f = cartDisplayState == null ? void 0 : cartDisplayState.context) == null ? void 0 : _f.cart, (_g = cartDisplayState == null ? void 0 : cartDisplayState.context) == null ? void 0 : _g.errors, cartDisplayState.value, cartFragment, onCartReadySend]);
|
|
313
|
-
return /* @__PURE__ */ jsx(CartContext.Provider, {
|
|
315
|
+
return /* @__PURE__ */ jsxRuntime.jsx(CartContext.Provider, {
|
|
314
316
|
value: cartContextValue,
|
|
315
317
|
children
|
|
316
318
|
});
|
|
@@ -339,17 +341,17 @@ function transposeStatus(status) {
|
|
|
339
341
|
}
|
|
340
342
|
}
|
|
341
343
|
function useDelayedStateUntilHydration(state) {
|
|
342
|
-
const [isPending, startTransition] = useTransition();
|
|
343
|
-
const [delayedState, setDelayedState] = useState(state);
|
|
344
|
-
const firstTimePending = useRef(false);
|
|
344
|
+
const [isPending, startTransition] = require$$0.useTransition();
|
|
345
|
+
const [delayedState, setDelayedState] = require$$0.useState(state);
|
|
346
|
+
const firstTimePending = require$$0.useRef(false);
|
|
345
347
|
if (isPending) {
|
|
346
348
|
firstTimePending.current = true;
|
|
347
349
|
}
|
|
348
|
-
const firstTimePendingFinished = useRef(false);
|
|
350
|
+
const firstTimePendingFinished = require$$0.useRef(false);
|
|
349
351
|
if (!isPending && firstTimePending.current) {
|
|
350
352
|
firstTimePendingFinished.current = true;
|
|
351
353
|
}
|
|
352
|
-
useEffect(() => {
|
|
354
|
+
require$$0.useEffect(() => {
|
|
353
355
|
startTransition(() => {
|
|
354
356
|
if (!firstTimePendingFinished.current) {
|
|
355
357
|
setDelayedState(state);
|
|
@@ -475,11 +477,9 @@ fragment ImageFragment on Image {
|
|
|
475
477
|
height
|
|
476
478
|
}
|
|
477
479
|
`;
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
useCart
|
|
484
|
-
};
|
|
480
|
+
exports.CartContext = CartContext;
|
|
481
|
+
exports.CartProvider = CartProvider;
|
|
482
|
+
exports.defaultCartFragment = defaultCartFragment;
|
|
483
|
+
exports.storageAvailable = storageAvailable;
|
|
484
|
+
exports.useCart = useCart;
|
|
485
485
|
//# sourceMappingURL=CartProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CartProvider.js","sources":["../../src/CartProvider.tsx"],"sourcesContent":["import {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n useTransition,\n createContext,\n useContext,\n} from 'react';\nimport {\n AttributeInput,\n CartBuyerIdentityInput,\n CartInput,\n CartLineInput,\n CartLineUpdateInput,\n CountryCode,\n Cart as CartType,\n MutationCartNoteUpdateArgs,\n} from './storefront-api-types.js';\nimport {\n BuyerIdentityUpdateEvent,\n CartMachineContext,\n CartMachineEvent,\n CartMachineTypeState,\n CartWithActions,\n} from './cart-types.js';\nimport {useCartAPIStateMachine} from './useCartAPIStateMachine.js';\nimport {CART_ID_STORAGE_KEY} from './cart-constants.js';\nimport {PartialDeep} from 'type-fest';\n\nexport const CartContext = createContext<CartWithActions | null>(null);\n\n/**\n * The `useCart` hook provides access to the cart object. It must be a descendent of a `CartProvider` component.\n */\nexport function useCart() {\n const context = useContext(CartContext);\n\n if (!context) {\n throw new Error('Expected a Cart Context, but no Cart Context was found');\n }\n\n return context;\n}\n\nexport function CartProvider({\n children,\n numCartLines,\n onCreate,\n onLineAdd,\n onLineRemove,\n onLineUpdate,\n onNoteUpdate,\n onBuyerIdentityUpdate,\n onAttributesUpdate,\n onDiscountCodesUpdate,\n onCreateComplete,\n onLineAddComplete,\n onLineRemoveComplete,\n onLineUpdateComplete,\n onNoteUpdateComplete,\n onBuyerIdentityUpdateComplete,\n onAttributesUpdateComplete,\n onDiscountCodesUpdateComplete,\n data: cart,\n cartFragment = defaultCartFragment,\n customerAccessToken,\n countryCode = 'US',\n}: {\n /** Any `ReactNode` elements. */\n children: React.ReactNode;\n /** Maximum number of cart lines to fetch. Defaults to 250 cart lines. */\n numCartLines?: number;\n /** A callback that is invoked when the process to create a cart begins, but before the cart is created in the Storefront API. */\n onCreate?: () => void;\n /** A callback that is invoked when the process to add a line item to the cart begins, but before the line item is added to the Storefront API. */\n onLineAdd?: () => void;\n /** A callback that is invoked when the process to remove a line item to the cart begins, but before the line item is removed from the Storefront API. */\n onLineRemove?: () => void;\n /** A callback that is invoked when the process to update a line item in the cart begins, but before the line item is updated in the Storefront API. */\n onLineUpdate?: () => void;\n /** A callback that is invoked when the process to add or update a note in the cart begins, but before the note is added or updated in the Storefront API. */\n onNoteUpdate?: () => void;\n /** A callback that is invoked when the process to update the buyer identity begins, but before the buyer identity is updated in the Storefront API. */\n onBuyerIdentityUpdate?: () => void;\n /** A callback that is invoked when the process to update the cart attributes begins, but before the attributes are updated in the Storefront API. */\n onAttributesUpdate?: () => void;\n /** A callback that is invoked when the process to update the cart discount codes begins, but before the discount codes are updated in the Storefront API. */\n onDiscountCodesUpdate?: () => void;\n /** A callback that is invoked when the process to create a cart completes */\n onCreateComplete?: () => void;\n /** A callback that is invoked when the process to add a line item to the cart completes */\n onLineAddComplete?: () => void;\n /** A callback that is invoked when the process to remove a line item to the cart completes */\n onLineRemoveComplete?: () => void;\n /** A callback that is invoked when the process to update a line item in the cart completes */\n onLineUpdateComplete?: () => void;\n /** A callback that is invoked when the process to add or update a note in the cart completes */\n onNoteUpdateComplete?: () => void;\n /** A callback that is invoked when the process to update the buyer identity completes */\n onBuyerIdentityUpdateComplete?: () => void;\n /** A callback that is invoked when the process to update the cart attributes completes */\n onAttributesUpdateComplete?: () => void;\n /** A callback that is invoked when the process to update the cart discount codes completes */\n onDiscountCodesUpdateComplete?: () => void;\n /** An object with fields that correspond to the Storefront API's [Cart object](https://shopify.dev/api/storefront/latest/objects/cart). */\n data?: PartialDeep<CartType, {recurseIntoArrays: true}>;\n /** A fragment used to query the Storefront API's [Cart object](https://shopify.dev/api/storefront/latest/objects/cart) for all queries and mutations. A default value is used if no argument is provided. */\n cartFragment?: string;\n /** A customer access token that's accessible on the server if there's a customer login. */\n customerAccessToken?: CartBuyerIdentityInput['customerAccessToken'];\n /** The ISO country code for i18n. */\n countryCode?: CountryCode;\n}) {\n if (countryCode) countryCode = countryCode.toUpperCase() as CountryCode;\n const [prevCountryCode, setPrevCountryCode] = useState(countryCode);\n const [prevCustomerAccessToken, setPrevCustomerAccessToken] =\n useState(customerAccessToken);\n const customerOverridesCountryCode = useRef(false);\n\n if (\n prevCountryCode !== countryCode ||\n prevCustomerAccessToken !== customerAccessToken\n ) {\n setPrevCountryCode(countryCode);\n setPrevCustomerAccessToken(customerAccessToken);\n customerOverridesCountryCode.current = false;\n }\n\n const [cartState, cartSend] = useCartAPIStateMachine({\n numCartLines,\n data: cart,\n cartFragment,\n countryCode,\n onCartActionEntry(context, event) {\n try {\n switch (event.type) {\n case 'CART_CREATE':\n return onCreate?.();\n case 'CARTLINE_ADD':\n return onLineAdd?.();\n case 'CARTLINE_REMOVE':\n return onLineRemove?.();\n case 'CARTLINE_UPDATE':\n return onLineUpdate?.();\n case 'NOTE_UPDATE':\n return onNoteUpdate?.();\n case 'BUYER_IDENTITY_UPDATE':\n return onBuyerIdentityUpdate?.();\n case 'CART_ATTRIBUTES_UPDATE':\n return onAttributesUpdate?.();\n case 'DISCOUNT_CODES_UPDATE':\n return onDiscountCodesUpdate?.();\n }\n } catch (error) {\n console.error('Cart entry action failed', error);\n }\n },\n onCartActionOptimisticUI(context, event) {\n if (!context?.cart) return {cart: undefined};\n switch (event.type) {\n case 'CARTLINE_REMOVE':\n return {\n ...context,\n lastValidCart: context.cart,\n cart: {\n ...context.cart,\n lines: context?.cart?.lines?.filter(\n (line) => line?.id && !event.payload.lines.includes(line?.id)\n ),\n },\n };\n case 'CARTLINE_UPDATE':\n return {\n ...context,\n lastValidCart: context.cart,\n cart: {\n ...context.cart,\n lines: context?.cart?.lines?.map((line) => {\n const updatedLine = event.payload.lines.find(\n ({id}) => id === line?.id\n );\n\n if (updatedLine && updatedLine.quantity) {\n return {\n ...line,\n quantity: updatedLine.quantity,\n };\n }\n\n return line;\n }),\n },\n };\n }\n return {cart: context.cart ? {...context.cart} : undefined};\n },\n onCartActionComplete(context, event) {\n const cartActionEvent = event.payload.cartActionEvent;\n try {\n switch (event.type) {\n case 'RESOLVE':\n switch (cartActionEvent.type) {\n case 'CART_CREATE':\n return onCreateComplete?.();\n case 'CARTLINE_ADD':\n return onLineAddComplete?.();\n case 'CARTLINE_REMOVE':\n return onLineRemoveComplete?.();\n case 'CARTLINE_UPDATE':\n return onLineUpdateComplete?.();\n case 'NOTE_UPDATE':\n return onNoteUpdateComplete?.();\n case 'BUYER_IDENTITY_UPDATE':\n if (countryCodeNotUpdated(context, cartActionEvent)) {\n customerOverridesCountryCode.current = true;\n }\n return onBuyerIdentityUpdateComplete?.();\n case 'CART_ATTRIBUTES_UPDATE':\n return onAttributesUpdateComplete?.();\n case 'DISCOUNT_CODES_UPDATE':\n return onDiscountCodesUpdateComplete?.();\n }\n }\n } catch (error) {\n console.error('onCartActionComplete failed', error);\n }\n },\n });\n\n const cartReady = useRef(false);\n const cartCompleted = cartState.matches('cartCompleted');\n\n const countryChanged =\n (cartState.value === 'idle' ||\n cartState.value === 'error' ||\n cartState.value === 'cartCompleted') &&\n countryCode !== cartState?.context?.cart?.buyerIdentity?.countryCode &&\n !cartState.context.errors;\n\n const fetchingFromStorage = useRef(false);\n\n /**\n * Initializes cart with priority in this order:\n * 1. cart props\n * 2. localStorage cartId\n */\n useEffect(() => {\n if (!cartReady.current && !fetchingFromStorage.current) {\n if (!cart && storageAvailable('localStorage')) {\n fetchingFromStorage.current = true;\n try {\n const cartId = window.localStorage.getItem(CART_ID_STORAGE_KEY);\n if (cartId) {\n cartSend({type: 'CART_FETCH', payload: {cartId}});\n }\n } catch (error) {\n console.warn('error fetching cartId');\n console.warn(error);\n }\n }\n cartReady.current = true;\n }\n }, [cart, cartReady, cartSend]);\n\n // Update cart country code if cart and props countryCode's as different\n useEffect(() => {\n if (!countryChanged || customerOverridesCountryCode.current) return;\n cartSend({\n type: 'BUYER_IDENTITY_UPDATE',\n payload: {buyerIdentity: {countryCode, customerAccessToken}},\n });\n }, [\n countryCode,\n customerAccessToken,\n countryChanged,\n customerOverridesCountryCode,\n cartSend,\n ]);\n\n // send cart events when ready\n const onCartReadySend = useCallback(\n (cartEvent: CartMachineEvent) => {\n if (!cartReady.current) {\n return console.warn(\"Cart isn't ready yet\");\n }\n cartSend(cartEvent);\n },\n [cartSend]\n );\n\n // save cart id to local storage\n useEffect(() => {\n if (cartState?.context?.cart?.id && storageAvailable('localStorage')) {\n try {\n window.localStorage.setItem(\n CART_ID_STORAGE_KEY,\n cartState.context.cart?.id\n );\n } catch (error) {\n console.warn('Failed to save cartId to localStorage', error);\n }\n }\n }, [cartState?.context?.cart?.id]);\n\n // delete cart from local storage if cart fetched has been completed\n useEffect(() => {\n if (cartCompleted && storageAvailable('localStorage')) {\n try {\n window.localStorage.removeItem(CART_ID_STORAGE_KEY);\n } catch (error) {\n console.warn('Failed to delete cartId from localStorage', error);\n }\n }\n }, [cartCompleted]);\n\n const cartCreate = useCallback(\n (cartInput: CartInput) => {\n if (countryCode && !cartInput.buyerIdentity?.countryCode) {\n if (cartInput.buyerIdentity == null) {\n cartInput.buyerIdentity = {};\n }\n cartInput.buyerIdentity.countryCode = countryCode;\n }\n\n if (\n customerAccessToken &&\n !cartInput.buyerIdentity?.customerAccessToken\n ) {\n if (cartInput.buyerIdentity == null) {\n cartInput.buyerIdentity = {};\n }\n cartInput.buyerIdentity.customerAccessToken = customerAccessToken;\n }\n onCartReadySend({\n type: 'CART_CREATE',\n payload: cartInput,\n });\n },\n [countryCode, customerAccessToken, onCartReadySend]\n );\n\n // Delays the cart state in the context if the page is hydrating\n // preventing suspense boundary errors.\n const cartDisplayState = useDelayedStateUntilHydration(cartState);\n\n const cartContextValue = useMemo<CartWithActions>(() => {\n return {\n ...(cartDisplayState?.context?.cart ?? {lines: [], attributes: []}),\n status: transposeStatus(cartDisplayState.value),\n error: cartDisplayState?.context?.errors,\n totalQuantity: cartDisplayState?.context?.cart?.totalQuantity ?? 0,\n cartCreate,\n linesAdd(lines: CartLineInput[]) {\n if (cartDisplayState?.context?.cart?.id) {\n onCartReadySend({\n type: 'CARTLINE_ADD',\n payload: {lines},\n });\n } else {\n cartCreate({lines});\n }\n },\n linesRemove(lines: string[]) {\n onCartReadySend({\n type: 'CARTLINE_REMOVE',\n payload: {\n lines,\n },\n });\n },\n linesUpdate(lines: CartLineUpdateInput[]) {\n onCartReadySend({\n type: 'CARTLINE_UPDATE',\n payload: {\n lines,\n },\n });\n },\n noteUpdate(note: MutationCartNoteUpdateArgs['note']) {\n onCartReadySend({\n type: 'NOTE_UPDATE',\n payload: {\n note,\n },\n });\n },\n buyerIdentityUpdate(buyerIdentity: CartBuyerIdentityInput) {\n onCartReadySend({\n type: 'BUYER_IDENTITY_UPDATE',\n payload: {\n buyerIdentity,\n },\n });\n },\n cartAttributesUpdate(attributes: AttributeInput[]) {\n onCartReadySend({\n type: 'CART_ATTRIBUTES_UPDATE',\n payload: {\n attributes,\n },\n });\n },\n discountCodesUpdate(discountCodes: string[]) {\n onCartReadySend({\n type: 'DISCOUNT_CODES_UPDATE',\n payload: {\n discountCodes,\n },\n });\n },\n cartFragment,\n };\n }, [\n cartCreate,\n cartDisplayState?.context?.cart,\n cartDisplayState?.context?.errors,\n cartDisplayState.value,\n cartFragment,\n onCartReadySend,\n ]);\n\n return (\n <CartContext.Provider value={cartContextValue}>\n {children}\n </CartContext.Provider>\n );\n}\n\nfunction transposeStatus(\n status: CartMachineTypeState['value']\n): CartWithActions['status'] {\n switch (status) {\n case 'uninitialized':\n case 'initializationError':\n return 'uninitialized';\n case 'idle':\n case 'cartCompleted':\n case 'error':\n return 'idle';\n case 'cartFetching':\n return 'fetching';\n case 'cartCreating':\n return 'creating';\n case 'cartLineAdding':\n case 'cartLineRemoving':\n case 'cartLineUpdating':\n case 'noteUpdating':\n case 'buyerIdentityUpdating':\n case 'cartAttributesUpdating':\n case 'discountCodesUpdating':\n return 'updating';\n }\n}\n\n/**\n * Delays a state update until hydration finishes. Useful for preventing suspense boundaries errors when updating a context\n * @remarks this uses startTransition and waits for it to finish.\n */\nfunction useDelayedStateUntilHydration<T>(state: T) {\n const [isPending, startTransition] = useTransition();\n const [delayedState, setDelayedState] = useState(state);\n\n const firstTimePending = useRef(false);\n if (isPending) {\n firstTimePending.current = true;\n }\n\n const firstTimePendingFinished = useRef(false);\n if (!isPending && firstTimePending.current) {\n firstTimePendingFinished.current = true;\n }\n\n useEffect(() => {\n startTransition(() => {\n if (!firstTimePendingFinished.current) {\n setDelayedState(state);\n }\n });\n }, [state]);\n\n const displayState = firstTimePendingFinished.current ? state : delayedState;\n\n return displayState;\n}\n\n/** Check for storage availability funciton obtained from\n * https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API\n */\nexport function storageAvailable(type: 'localStorage' | 'sessionStorage') {\n let storage;\n try {\n storage = window[type];\n const x = '__storage_test__';\n storage.setItem(x, x);\n storage.removeItem(x);\n return true;\n } catch (e) {\n return (\n e instanceof DOMException &&\n // everything except Firefox\n (e.code === 22 ||\n // Firefox\n e.code === 1014 ||\n // test name field too, because code might not be present\n // everything except Firefox\n e.name === 'QuotaExceededError' ||\n // Firefox\n e.name === 'NS_ERROR_DOM_QUOTA_REACHED') &&\n // acknowledge QuotaExceededError only if there's something already stored\n storage &&\n storage.length !== 0\n );\n }\n}\n\nfunction countryCodeNotUpdated(\n context: CartMachineContext,\n event: BuyerIdentityUpdateEvent\n) {\n return (\n event.payload.buyerIdentity.countryCode &&\n context.cart?.buyerIdentity?.countryCode !==\n event.payload.buyerIdentity.countryCode\n );\n}\n\nexport const defaultCartFragment = `\nfragment CartFragment on Cart {\n id\n checkoutUrl\n totalQuantity\n buyerIdentity {\n countryCode\n customer {\n id\n email\n firstName\n lastName\n displayName\n }\n email\n phone\n }\n lines(first: $numCartLines) {\n edges {\n node {\n id\n quantity\n attributes {\n key\n value\n }\n cost {\n totalAmount {\n amount\n currencyCode\n }\n compareAtAmountPerQuantity {\n amount\n currencyCode\n }\n }\n merchandise {\n ... on ProductVariant {\n id\n availableForSale\n compareAtPriceV2 {\n ...MoneyFragment\n }\n priceV2 {\n ...MoneyFragment\n }\n requiresShipping\n title\n image {\n ...ImageFragment\n }\n product {\n handle\n title\n }\n selectedOptions {\n name\n value\n }\n }\n }\n }\n }\n }\n cost {\n subtotalAmount {\n ...MoneyFragment\n }\n totalAmount {\n ...MoneyFragment\n }\n totalDutyAmount {\n ...MoneyFragment\n }\n totalTaxAmount {\n ...MoneyFragment\n }\n }\n note\n attributes {\n key\n value\n }\n discountCodes {\n code\n }\n}\n\nfragment MoneyFragment on MoneyV2 {\n currencyCode\n amount\n}\nfragment ImageFragment on Image {\n id\n url\n altText\n width\n height\n}\n`;\n"],"names":["CartContext","createContext","useCart","context","useContext","Error","CartProvider","children","numCartLines","onCreate","onLineAdd","onLineRemove","onLineUpdate","onNoteUpdate","onBuyerIdentityUpdate","onAttributesUpdate","onDiscountCodesUpdate","onCreateComplete","onLineAddComplete","onLineRemoveComplete","onLineUpdateComplete","onNoteUpdateComplete","onBuyerIdentityUpdateComplete","onAttributesUpdateComplete","onDiscountCodesUpdateComplete","data","cart","cartFragment","defaultCartFragment","customerAccessToken","countryCode","toUpperCase","prevCountryCode","setPrevCountryCode","useState","prevCustomerAccessToken","setPrevCustomerAccessToken","customerOverridesCountryCode","useRef","current","cartState","cartSend","useCartAPIStateMachine","onCartActionEntry","event","type","error","onCartActionOptimisticUI","undefined","lastValidCart","lines","filter","line","id","payload","includes","map","updatedLine","find","quantity","onCartActionComplete","cartActionEvent","countryCodeNotUpdated","cartReady","cartCompleted","matches","countryChanged","value","buyerIdentity","errors","fetchingFromStorage","useEffect","storageAvailable","cartId","window","localStorage","getItem","CART_ID_STORAGE_KEY","console","warn","onCartReadySend","useCallback","cartEvent","setItem","removeItem","cartCreate","cartInput","cartDisplayState","useDelayedStateUntilHydration","cartContextValue","useMemo","attributes","status","transposeStatus","totalQuantity","linesAdd","linesRemove","linesUpdate","noteUpdate","note","buyerIdentityUpdate","cartAttributesUpdate","discountCodesUpdate","discountCodes","_jsx","state","isPending","startTransition","useTransition","delayedState","setDelayedState","firstTimePending","firstTimePendingFinished","displayState","storage","x","e","DOMException","code","name","length"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CartProvider.js","sources":["../../src/CartProvider.tsx"],"sourcesContent":["import {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n useTransition,\n createContext,\n useContext,\n} from 'react';\nimport {\n AttributeInput,\n CartBuyerIdentityInput,\n CartInput,\n CartLineInput,\n CartLineUpdateInput,\n CountryCode,\n Cart as CartType,\n MutationCartNoteUpdateArgs,\n} from './storefront-api-types.js';\nimport {\n BuyerIdentityUpdateEvent,\n CartMachineContext,\n CartMachineEvent,\n CartMachineTypeState,\n CartWithActions,\n} from './cart-types.js';\nimport {useCartAPIStateMachine} from './useCartAPIStateMachine.js';\nimport {CART_ID_STORAGE_KEY} from './cart-constants.js';\nimport {PartialDeep} from 'type-fest';\n\nexport const CartContext = createContext<CartWithActions | null>(null);\n\n/**\n * The `useCart` hook provides access to the cart object. It must be a descendent of a `CartProvider` component.\n */\nexport function useCart() {\n const context = useContext(CartContext);\n\n if (!context) {\n throw new Error('Expected a Cart Context, but no Cart Context was found');\n }\n\n return context;\n}\n\nexport function CartProvider({\n children,\n numCartLines,\n onCreate,\n onLineAdd,\n onLineRemove,\n onLineUpdate,\n onNoteUpdate,\n onBuyerIdentityUpdate,\n onAttributesUpdate,\n onDiscountCodesUpdate,\n onCreateComplete,\n onLineAddComplete,\n onLineRemoveComplete,\n onLineUpdateComplete,\n onNoteUpdateComplete,\n onBuyerIdentityUpdateComplete,\n onAttributesUpdateComplete,\n onDiscountCodesUpdateComplete,\n data: cart,\n cartFragment = defaultCartFragment,\n customerAccessToken,\n countryCode = 'US',\n}: {\n /** Any `ReactNode` elements. */\n children: React.ReactNode;\n /** Maximum number of cart lines to fetch. Defaults to 250 cart lines. */\n numCartLines?: number;\n /** A callback that is invoked when the process to create a cart begins, but before the cart is created in the Storefront API. */\n onCreate?: () => void;\n /** A callback that is invoked when the process to add a line item to the cart begins, but before the line item is added to the Storefront API. */\n onLineAdd?: () => void;\n /** A callback that is invoked when the process to remove a line item to the cart begins, but before the line item is removed from the Storefront API. */\n onLineRemove?: () => void;\n /** A callback that is invoked when the process to update a line item in the cart begins, but before the line item is updated in the Storefront API. */\n onLineUpdate?: () => void;\n /** A callback that is invoked when the process to add or update a note in the cart begins, but before the note is added or updated in the Storefront API. */\n onNoteUpdate?: () => void;\n /** A callback that is invoked when the process to update the buyer identity begins, but before the buyer identity is updated in the Storefront API. */\n onBuyerIdentityUpdate?: () => void;\n /** A callback that is invoked when the process to update the cart attributes begins, but before the attributes are updated in the Storefront API. */\n onAttributesUpdate?: () => void;\n /** A callback that is invoked when the process to update the cart discount codes begins, but before the discount codes are updated in the Storefront API. */\n onDiscountCodesUpdate?: () => void;\n /** A callback that is invoked when the process to create a cart completes */\n onCreateComplete?: () => void;\n /** A callback that is invoked when the process to add a line item to the cart completes */\n onLineAddComplete?: () => void;\n /** A callback that is invoked when the process to remove a line item to the cart completes */\n onLineRemoveComplete?: () => void;\n /** A callback that is invoked when the process to update a line item in the cart completes */\n onLineUpdateComplete?: () => void;\n /** A callback that is invoked when the process to add or update a note in the cart completes */\n onNoteUpdateComplete?: () => void;\n /** A callback that is invoked when the process to update the buyer identity completes */\n onBuyerIdentityUpdateComplete?: () => void;\n /** A callback that is invoked when the process to update the cart attributes completes */\n onAttributesUpdateComplete?: () => void;\n /** A callback that is invoked when the process to update the cart discount codes completes */\n onDiscountCodesUpdateComplete?: () => void;\n /** An object with fields that correspond to the Storefront API's [Cart object](https://shopify.dev/api/storefront/latest/objects/cart). */\n data?: PartialDeep<CartType, {recurseIntoArrays: true}>;\n /** A fragment used to query the Storefront API's [Cart object](https://shopify.dev/api/storefront/latest/objects/cart) for all queries and mutations. A default value is used if no argument is provided. */\n cartFragment?: string;\n /** A customer access token that's accessible on the server if there's a customer login. */\n customerAccessToken?: CartBuyerIdentityInput['customerAccessToken'];\n /** The ISO country code for i18n. */\n countryCode?: CountryCode;\n}) {\n if (countryCode) countryCode = countryCode.toUpperCase() as CountryCode;\n const [prevCountryCode, setPrevCountryCode] = useState(countryCode);\n const [prevCustomerAccessToken, setPrevCustomerAccessToken] =\n useState(customerAccessToken);\n const customerOverridesCountryCode = useRef(false);\n\n if (\n prevCountryCode !== countryCode ||\n prevCustomerAccessToken !== customerAccessToken\n ) {\n setPrevCountryCode(countryCode);\n setPrevCustomerAccessToken(customerAccessToken);\n customerOverridesCountryCode.current = false;\n }\n\n const [cartState, cartSend] = useCartAPIStateMachine({\n numCartLines,\n data: cart,\n cartFragment,\n countryCode,\n onCartActionEntry(context, event) {\n try {\n switch (event.type) {\n case 'CART_CREATE':\n return onCreate?.();\n case 'CARTLINE_ADD':\n return onLineAdd?.();\n case 'CARTLINE_REMOVE':\n return onLineRemove?.();\n case 'CARTLINE_UPDATE':\n return onLineUpdate?.();\n case 'NOTE_UPDATE':\n return onNoteUpdate?.();\n case 'BUYER_IDENTITY_UPDATE':\n return onBuyerIdentityUpdate?.();\n case 'CART_ATTRIBUTES_UPDATE':\n return onAttributesUpdate?.();\n case 'DISCOUNT_CODES_UPDATE':\n return onDiscountCodesUpdate?.();\n }\n } catch (error) {\n console.error('Cart entry action failed', error);\n }\n },\n onCartActionOptimisticUI(context, event) {\n if (!context?.cart) return {cart: undefined};\n switch (event.type) {\n case 'CARTLINE_REMOVE':\n return {\n ...context,\n lastValidCart: context.cart,\n cart: {\n ...context.cart,\n lines: context?.cart?.lines?.filter(\n (line) => line?.id && !event.payload.lines.includes(line?.id)\n ),\n },\n };\n case 'CARTLINE_UPDATE':\n return {\n ...context,\n lastValidCart: context.cart,\n cart: {\n ...context.cart,\n lines: context?.cart?.lines?.map((line) => {\n const updatedLine = event.payload.lines.find(\n ({id}) => id === line?.id\n );\n\n if (updatedLine && updatedLine.quantity) {\n return {\n ...line,\n quantity: updatedLine.quantity,\n };\n }\n\n return line;\n }),\n },\n };\n }\n return {cart: context.cart ? {...context.cart} : undefined};\n },\n onCartActionComplete(context, event) {\n const cartActionEvent = event.payload.cartActionEvent;\n try {\n switch (event.type) {\n case 'RESOLVE':\n switch (cartActionEvent.type) {\n case 'CART_CREATE':\n return onCreateComplete?.();\n case 'CARTLINE_ADD':\n return onLineAddComplete?.();\n case 'CARTLINE_REMOVE':\n return onLineRemoveComplete?.();\n case 'CARTLINE_UPDATE':\n return onLineUpdateComplete?.();\n case 'NOTE_UPDATE':\n return onNoteUpdateComplete?.();\n case 'BUYER_IDENTITY_UPDATE':\n if (countryCodeNotUpdated(context, cartActionEvent)) {\n customerOverridesCountryCode.current = true;\n }\n return onBuyerIdentityUpdateComplete?.();\n case 'CART_ATTRIBUTES_UPDATE':\n return onAttributesUpdateComplete?.();\n case 'DISCOUNT_CODES_UPDATE':\n return onDiscountCodesUpdateComplete?.();\n }\n }\n } catch (error) {\n console.error('onCartActionComplete failed', error);\n }\n },\n });\n\n const cartReady = useRef(false);\n const cartCompleted = cartState.matches('cartCompleted');\n\n const countryChanged =\n (cartState.value === 'idle' ||\n cartState.value === 'error' ||\n cartState.value === 'cartCompleted') &&\n countryCode !== cartState?.context?.cart?.buyerIdentity?.countryCode &&\n !cartState.context.errors;\n\n const fetchingFromStorage = useRef(false);\n\n /**\n * Initializes cart with priority in this order:\n * 1. cart props\n * 2. localStorage cartId\n */\n useEffect(() => {\n if (!cartReady.current && !fetchingFromStorage.current) {\n if (!cart && storageAvailable('localStorage')) {\n fetchingFromStorage.current = true;\n try {\n const cartId = window.localStorage.getItem(CART_ID_STORAGE_KEY);\n if (cartId) {\n cartSend({type: 'CART_FETCH', payload: {cartId}});\n }\n } catch (error) {\n console.warn('error fetching cartId');\n console.warn(error);\n }\n }\n cartReady.current = true;\n }\n }, [cart, cartReady, cartSend]);\n\n // Update cart country code if cart and props countryCode's as different\n useEffect(() => {\n if (!countryChanged || customerOverridesCountryCode.current) return;\n cartSend({\n type: 'BUYER_IDENTITY_UPDATE',\n payload: {buyerIdentity: {countryCode, customerAccessToken}},\n });\n }, [\n countryCode,\n customerAccessToken,\n countryChanged,\n customerOverridesCountryCode,\n cartSend,\n ]);\n\n // send cart events when ready\n const onCartReadySend = useCallback(\n (cartEvent: CartMachineEvent) => {\n if (!cartReady.current) {\n return console.warn(\"Cart isn't ready yet\");\n }\n cartSend(cartEvent);\n },\n [cartSend]\n );\n\n // save cart id to local storage\n useEffect(() => {\n if (cartState?.context?.cart?.id && storageAvailable('localStorage')) {\n try {\n window.localStorage.setItem(\n CART_ID_STORAGE_KEY,\n cartState.context.cart?.id\n );\n } catch (error) {\n console.warn('Failed to save cartId to localStorage', error);\n }\n }\n }, [cartState?.context?.cart?.id]);\n\n // delete cart from local storage if cart fetched has been completed\n useEffect(() => {\n if (cartCompleted && storageAvailable('localStorage')) {\n try {\n window.localStorage.removeItem(CART_ID_STORAGE_KEY);\n } catch (error) {\n console.warn('Failed to delete cartId from localStorage', error);\n }\n }\n }, [cartCompleted]);\n\n const cartCreate = useCallback(\n (cartInput: CartInput) => {\n if (countryCode && !cartInput.buyerIdentity?.countryCode) {\n if (cartInput.buyerIdentity == null) {\n cartInput.buyerIdentity = {};\n }\n cartInput.buyerIdentity.countryCode = countryCode;\n }\n\n if (\n customerAccessToken &&\n !cartInput.buyerIdentity?.customerAccessToken\n ) {\n if (cartInput.buyerIdentity == null) {\n cartInput.buyerIdentity = {};\n }\n cartInput.buyerIdentity.customerAccessToken = customerAccessToken;\n }\n onCartReadySend({\n type: 'CART_CREATE',\n payload: cartInput,\n });\n },\n [countryCode, customerAccessToken, onCartReadySend]\n );\n\n // Delays the cart state in the context if the page is hydrating\n // preventing suspense boundary errors.\n const cartDisplayState = useDelayedStateUntilHydration(cartState);\n\n const cartContextValue = useMemo<CartWithActions>(() => {\n return {\n ...(cartDisplayState?.context?.cart ?? {lines: [], attributes: []}),\n status: transposeStatus(cartDisplayState.value),\n error: cartDisplayState?.context?.errors,\n totalQuantity: cartDisplayState?.context?.cart?.totalQuantity ?? 0,\n cartCreate,\n linesAdd(lines: CartLineInput[]) {\n if (cartDisplayState?.context?.cart?.id) {\n onCartReadySend({\n type: 'CARTLINE_ADD',\n payload: {lines},\n });\n } else {\n cartCreate({lines});\n }\n },\n linesRemove(lines: string[]) {\n onCartReadySend({\n type: 'CARTLINE_REMOVE',\n payload: {\n lines,\n },\n });\n },\n linesUpdate(lines: CartLineUpdateInput[]) {\n onCartReadySend({\n type: 'CARTLINE_UPDATE',\n payload: {\n lines,\n },\n });\n },\n noteUpdate(note: MutationCartNoteUpdateArgs['note']) {\n onCartReadySend({\n type: 'NOTE_UPDATE',\n payload: {\n note,\n },\n });\n },\n buyerIdentityUpdate(buyerIdentity: CartBuyerIdentityInput) {\n onCartReadySend({\n type: 'BUYER_IDENTITY_UPDATE',\n payload: {\n buyerIdentity,\n },\n });\n },\n cartAttributesUpdate(attributes: AttributeInput[]) {\n onCartReadySend({\n type: 'CART_ATTRIBUTES_UPDATE',\n payload: {\n attributes,\n },\n });\n },\n discountCodesUpdate(discountCodes: string[]) {\n onCartReadySend({\n type: 'DISCOUNT_CODES_UPDATE',\n payload: {\n discountCodes,\n },\n });\n },\n cartFragment,\n };\n }, [\n cartCreate,\n cartDisplayState?.context?.cart,\n cartDisplayState?.context?.errors,\n cartDisplayState.value,\n cartFragment,\n onCartReadySend,\n ]);\n\n return (\n <CartContext.Provider value={cartContextValue}>\n {children}\n </CartContext.Provider>\n );\n}\n\nfunction transposeStatus(\n status: CartMachineTypeState['value']\n): CartWithActions['status'] {\n switch (status) {\n case 'uninitialized':\n case 'initializationError':\n return 'uninitialized';\n case 'idle':\n case 'cartCompleted':\n case 'error':\n return 'idle';\n case 'cartFetching':\n return 'fetching';\n case 'cartCreating':\n return 'creating';\n case 'cartLineAdding':\n case 'cartLineRemoving':\n case 'cartLineUpdating':\n case 'noteUpdating':\n case 'buyerIdentityUpdating':\n case 'cartAttributesUpdating':\n case 'discountCodesUpdating':\n return 'updating';\n }\n}\n\n/**\n * Delays a state update until hydration finishes. Useful for preventing suspense boundaries errors when updating a context\n * @remarks this uses startTransition and waits for it to finish.\n */\nfunction useDelayedStateUntilHydration<T>(state: T) {\n const [isPending, startTransition] = useTransition();\n const [delayedState, setDelayedState] = useState(state);\n\n const firstTimePending = useRef(false);\n if (isPending) {\n firstTimePending.current = true;\n }\n\n const firstTimePendingFinished = useRef(false);\n if (!isPending && firstTimePending.current) {\n firstTimePendingFinished.current = true;\n }\n\n useEffect(() => {\n startTransition(() => {\n if (!firstTimePendingFinished.current) {\n setDelayedState(state);\n }\n });\n }, [state]);\n\n const displayState = firstTimePendingFinished.current ? state : delayedState;\n\n return displayState;\n}\n\n/** Check for storage availability funciton obtained from\n * https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API\n */\nexport function storageAvailable(type: 'localStorage' | 'sessionStorage') {\n let storage;\n try {\n storage = window[type];\n const x = '__storage_test__';\n storage.setItem(x, x);\n storage.removeItem(x);\n return true;\n } catch (e) {\n return (\n e instanceof DOMException &&\n // everything except Firefox\n (e.code === 22 ||\n // Firefox\n e.code === 1014 ||\n // test name field too, because code might not be present\n // everything except Firefox\n e.name === 'QuotaExceededError' ||\n // Firefox\n e.name === 'NS_ERROR_DOM_QUOTA_REACHED') &&\n // acknowledge QuotaExceededError only if there's something already stored\n storage &&\n storage.length !== 0\n );\n }\n}\n\nfunction countryCodeNotUpdated(\n context: CartMachineContext,\n event: BuyerIdentityUpdateEvent\n) {\n return (\n event.payload.buyerIdentity.countryCode &&\n context.cart?.buyerIdentity?.countryCode !==\n event.payload.buyerIdentity.countryCode\n );\n}\n\nexport const defaultCartFragment = `\nfragment CartFragment on Cart {\n id\n checkoutUrl\n totalQuantity\n buyerIdentity {\n countryCode\n customer {\n id\n email\n firstName\n lastName\n displayName\n }\n email\n phone\n }\n lines(first: $numCartLines) {\n edges {\n node {\n id\n quantity\n attributes {\n key\n value\n }\n cost {\n totalAmount {\n amount\n currencyCode\n }\n compareAtAmountPerQuantity {\n amount\n currencyCode\n }\n }\n merchandise {\n ... on ProductVariant {\n id\n availableForSale\n compareAtPriceV2 {\n ...MoneyFragment\n }\n priceV2 {\n ...MoneyFragment\n }\n requiresShipping\n title\n image {\n ...ImageFragment\n }\n product {\n handle\n title\n }\n selectedOptions {\n name\n value\n }\n }\n }\n }\n }\n }\n cost {\n subtotalAmount {\n ...MoneyFragment\n }\n totalAmount {\n ...MoneyFragment\n }\n totalDutyAmount {\n ...MoneyFragment\n }\n totalTaxAmount {\n ...MoneyFragment\n }\n }\n note\n attributes {\n key\n value\n }\n discountCodes {\n code\n }\n}\n\nfragment MoneyFragment on MoneyV2 {\n currencyCode\n amount\n}\nfragment ImageFragment on Image {\n id\n url\n altText\n width\n height\n}\n`;\n"],"names":["CartContext","createContext","useCart","context","useContext","Error","CartProvider","children","numCartLines","onCreate","onLineAdd","onLineRemove","onLineUpdate","onNoteUpdate","onBuyerIdentityUpdate","onAttributesUpdate","onDiscountCodesUpdate","onCreateComplete","onLineAddComplete","onLineRemoveComplete","onLineUpdateComplete","onNoteUpdateComplete","onBuyerIdentityUpdateComplete","onAttributesUpdateComplete","onDiscountCodesUpdateComplete","data","cart","cartFragment","defaultCartFragment","customerAccessToken","countryCode","toUpperCase","prevCountryCode","setPrevCountryCode","useState","prevCustomerAccessToken","setPrevCustomerAccessToken","customerOverridesCountryCode","useRef","current","cartState","cartSend","useCartAPIStateMachine","onCartActionEntry","event","type","error","onCartActionOptimisticUI","undefined","lastValidCart","lines","filter","line","id","payload","includes","map","updatedLine","find","quantity","onCartActionComplete","cartActionEvent","countryCodeNotUpdated","cartReady","cartCompleted","matches","countryChanged","value","buyerIdentity","errors","fetchingFromStorage","useEffect","storageAvailable","cartId","window","localStorage","getItem","CART_ID_STORAGE_KEY","console","warn","onCartReadySend","useCallback","cartEvent","setItem","removeItem","cartCreate","cartInput","cartDisplayState","useDelayedStateUntilHydration","cartContextValue","useMemo","attributes","status","transposeStatus","totalQuantity","linesAdd","linesRemove","linesUpdate","noteUpdate","note","buyerIdentityUpdate","cartAttributesUpdate","discountCodesUpdate","discountCodes","_jsx","state","isPending","startTransition","useTransition","delayedState","setDelayedState","firstTimePending","firstTimePendingFinished","displayState","storage","x","e","DOMException","code","name","length"],"mappings":"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"}
|