@shopify/hydrogen 0.0.0-unstable-20220314172608
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/CHANGELOG.md +869 -0
- package/README.md +29 -0
- package/client.d.ts +1 -0
- package/client.js +1 -0
- package/dist/esnext/client.d.ts +9 -0
- package/dist/esnext/client.js +9 -0
- package/dist/esnext/components/AddToCartButton/AddToCartButton.client.d.ts +23 -0
- package/dist/esnext/components/AddToCartButton/AddToCartButton.client.js +47 -0
- package/dist/esnext/components/AddToCartButton/index.d.ts +1 -0
- package/dist/esnext/components/AddToCartButton/index.js +1 -0
- package/dist/esnext/components/BuyNowButton/BuyNowButton.client.d.ts +18 -0
- package/dist/esnext/components/BuyNowButton/BuyNowButton.client.js +26 -0
- package/dist/esnext/components/BuyNowButton/index.d.ts +1 -0
- package/dist/esnext/components/BuyNowButton/index.js +1 -0
- package/dist/esnext/components/CartCheckoutButton/CartCheckoutButton.client.d.ts +11 -0
- package/dist/esnext/components/CartCheckoutButton/CartCheckoutButton.client.js +17 -0
- package/dist/esnext/components/CartCheckoutButton/index.d.ts +1 -0
- package/dist/esnext/components/CartCheckoutButton/index.js +1 -0
- package/dist/esnext/components/CartEstimatedCost/CartEstimatedCost.client.d.ts +14 -0
- package/dist/esnext/components/CartEstimatedCost/CartEstimatedCost.client.js +29 -0
- package/dist/esnext/components/CartEstimatedCost/index.d.ts +1 -0
- package/dist/esnext/components/CartEstimatedCost/index.js +1 -0
- package/dist/esnext/components/CartLineImage/CartLineImage.client.d.ts +12 -0
- package/dist/esnext/components/CartLineImage/CartLineImage.client.js +12 -0
- package/dist/esnext/components/CartLineImage/index.d.ts +1 -0
- package/dist/esnext/components/CartLineImage/index.js +1 -0
- package/dist/esnext/components/CartLinePrice/CartLinePrice.client.d.ts +12 -0
- package/dist/esnext/components/CartLinePrice/CartLinePrice.client.js +21 -0
- package/dist/esnext/components/CartLinePrice/index.d.ts +1 -0
- package/dist/esnext/components/CartLinePrice/index.js +1 -0
- package/dist/esnext/components/CartLineProductTitle/CartLineProductTitle.client.d.ts +8 -0
- package/dist/esnext/components/CartLineProductTitle/CartLineProductTitle.client.js +12 -0
- package/dist/esnext/components/CartLineProductTitle/index.d.ts +1 -0
- package/dist/esnext/components/CartLineProductTitle/index.js +1 -0
- package/dist/esnext/components/CartLineProvider/CartLineProvider.client.d.ts +11 -0
- package/dist/esnext/components/CartLineProvider/CartLineProvider.client.js +8 -0
- package/dist/esnext/components/CartLineProvider/context.d.ts +26 -0
- package/dist/esnext/components/CartLineProvider/context.js +2 -0
- package/dist/esnext/components/CartLineProvider/index.d.ts +2 -0
- package/dist/esnext/components/CartLineProvider/index.js +2 -0
- package/dist/esnext/components/CartLineQuantity/CartLineQuantity.client.d.ts +8 -0
- package/dist/esnext/components/CartLineQuantity/CartLineQuantity.client.js +12 -0
- package/dist/esnext/components/CartLineQuantity/index.d.ts +1 -0
- package/dist/esnext/components/CartLineQuantity/index.js +1 -0
- package/dist/esnext/components/CartLineQuantityAdjustButton/CartLineQuantityAdjustButton.d.ts +14 -0
- package/dist/esnext/components/CartLineQuantityAdjustButton/CartLineQuantityAdjustButton.js +24 -0
- package/dist/esnext/components/CartLineQuantityAdjustButton/index.d.ts +1 -0
- package/dist/esnext/components/CartLineQuantityAdjustButton/index.js +1 -0
- package/dist/esnext/components/CartLines/CartLines.d.ts +15 -0
- package/dist/esnext/components/CartLines/CartLines.js +17 -0
- package/dist/esnext/components/CartLines/index.d.ts +1 -0
- package/dist/esnext/components/CartLines/index.js +1 -0
- package/dist/esnext/components/CartProvider/CartProvider.client.d.ts +36 -0
- package/dist/esnext/components/CartProvider/CartProvider.client.js +486 -0
- package/dist/esnext/components/CartProvider/constants.d.ts +2 -0
- package/dist/esnext/components/CartProvider/constants.js +2 -0
- package/dist/esnext/components/CartProvider/context.d.ts +2 -0
- package/dist/esnext/components/CartProvider/context.js +2 -0
- package/dist/esnext/components/CartProvider/graphql/CartAttributesUpdateMutation.d.ts +86 -0
- package/dist/esnext/components/CartProvider/graphql/CartAttributesUpdateMutation.js +1 -0
- package/dist/esnext/components/CartProvider/graphql/CartBuyerIdentityUpdateMutation.d.ts +86 -0
- package/dist/esnext/components/CartProvider/graphql/CartBuyerIdentityUpdateMutation.js +1 -0
- package/dist/esnext/components/CartProvider/graphql/CartCreateMutation.d.ts +85 -0
- package/dist/esnext/components/CartProvider/graphql/CartCreateMutation.js +1 -0
- package/dist/esnext/components/CartProvider/graphql/CartDiscountCodesUpdateMutation.d.ts +86 -0
- package/dist/esnext/components/CartProvider/graphql/CartDiscountCodesUpdateMutation.js +1 -0
- package/dist/esnext/components/CartProvider/graphql/CartFragment.d.ts +72 -0
- package/dist/esnext/components/CartProvider/graphql/CartFragment.js +1 -0
- package/dist/esnext/components/CartProvider/graphql/CartLineAddMutation.d.ts +86 -0
- package/dist/esnext/components/CartProvider/graphql/CartLineAddMutation.js +1 -0
- package/dist/esnext/components/CartProvider/graphql/CartLineRemoveMutation.d.ts +86 -0
- package/dist/esnext/components/CartProvider/graphql/CartLineRemoveMutation.js +1 -0
- package/dist/esnext/components/CartProvider/graphql/CartLineUpdateMutation.d.ts +86 -0
- package/dist/esnext/components/CartProvider/graphql/CartLineUpdateMutation.js +1 -0
- package/dist/esnext/components/CartProvider/graphql/CartNoteUpdateMutation.d.ts +86 -0
- package/dist/esnext/components/CartProvider/graphql/CartNoteUpdateMutation.js +1 -0
- package/dist/esnext/components/CartProvider/graphql/CartQuery.d.ts +81 -0
- package/dist/esnext/components/CartProvider/graphql/CartQuery.js +1 -0
- package/dist/esnext/components/CartProvider/hooks.d.ts +15 -0
- package/dist/esnext/components/CartProvider/hooks.js +57 -0
- package/dist/esnext/components/CartProvider/index.d.ts +4 -0
- package/dist/esnext/components/CartProvider/index.js +3 -0
- package/dist/esnext/components/CartProvider/types.d.ts +100 -0
- package/dist/esnext/components/CartProvider/types.js +1 -0
- package/dist/esnext/components/CartShopPayButton/CartShopPayButton.client.d.ts +9 -0
- package/dist/esnext/components/CartShopPayButton/CartShopPayButton.client.js +19 -0
- package/dist/esnext/components/CartShopPayButton/index.d.ts +1 -0
- package/dist/esnext/components/CartShopPayButton/index.js +1 -0
- package/dist/esnext/components/ExternalVideo/ExternalVideo.d.ts +20 -0
- package/dist/esnext/components/ExternalVideo/ExternalVideo.js +11 -0
- package/dist/esnext/components/ExternalVideo/ExternalVideoFragment.d.ts +8 -0
- package/dist/esnext/components/ExternalVideo/ExternalVideoFragment.js +1 -0
- package/dist/esnext/components/ExternalVideo/index.d.ts +1 -0
- package/dist/esnext/components/ExternalVideo/index.js +1 -0
- package/dist/esnext/components/Image/Image.d.ts +38 -0
- package/dist/esnext/components/Image/Image.js +51 -0
- package/dist/esnext/components/Image/ImageFragment.d.ts +8 -0
- package/dist/esnext/components/Image/ImageFragment.js +1 -0
- package/dist/esnext/components/Image/index.d.ts +1 -0
- package/dist/esnext/components/Image/index.js +1 -0
- package/dist/esnext/components/Link/Link.client.d.ts +18 -0
- package/dist/esnext/components/Link/Link.client.js +43 -0
- package/dist/esnext/components/Link/index.d.ts +1 -0
- package/dist/esnext/components/Link/index.js +1 -0
- package/dist/esnext/components/LocalizationProvider/LocalizationClientProvider.client.d.ts +6 -0
- package/dist/esnext/components/LocalizationProvider/LocalizationClientProvider.client.js +20 -0
- package/dist/esnext/components/LocalizationProvider/LocalizationContext.client.d.ts +8 -0
- package/dist/esnext/components/LocalizationProvider/LocalizationContext.client.js +2 -0
- package/dist/esnext/components/LocalizationProvider/LocalizationProvider.server.d.ts +21 -0
- package/dist/esnext/components/LocalizationProvider/LocalizationProvider.server.js +22 -0
- package/dist/esnext/components/LocalizationProvider/LocalizationQuery.d.ts +30 -0
- package/dist/esnext/components/LocalizationProvider/LocalizationQuery.js +1 -0
- package/dist/esnext/components/LocalizationProvider/index.d.ts +3 -0
- package/dist/esnext/components/LocalizationProvider/index.js +3 -0
- package/dist/esnext/components/MediaFile/MediaFile.d.ts +18 -0
- package/dist/esnext/components/MediaFile/MediaFile.js +31 -0
- package/dist/esnext/components/MediaFile/MediaFileFragment.d.ts +36 -0
- package/dist/esnext/components/MediaFile/MediaFileFragment.js +1 -0
- package/dist/esnext/components/MediaFile/index.d.ts +1 -0
- package/dist/esnext/components/MediaFile/index.js +1 -0
- package/dist/esnext/components/Metafield/Metafield.client.d.ts +17 -0
- package/dist/esnext/components/Metafield/Metafield.client.js +65 -0
- package/dist/esnext/components/Metafield/MetafieldFragment.d.ts +22 -0
- package/dist/esnext/components/Metafield/MetafieldFragment.js +1 -0
- package/dist/esnext/components/Metafield/components/StarRating/StarRating.d.ts +12 -0
- package/dist/esnext/components/Metafield/components/StarRating/StarRating.js +48 -0
- package/dist/esnext/components/Metafield/components/StarRating/index.d.ts +1 -0
- package/dist/esnext/components/Metafield/components/StarRating/index.js +1 -0
- package/dist/esnext/components/Metafield/components/index.d.ts +1 -0
- package/dist/esnext/components/Metafield/components/index.js +1 -0
- package/dist/esnext/components/Metafield/index.d.ts +2 -0
- package/dist/esnext/components/Metafield/index.js +1 -0
- package/dist/esnext/components/Metafield/types.d.ts +4 -0
- package/dist/esnext/components/Metafield/types.js +1 -0
- package/dist/esnext/components/ModelViewer/Model3DFragment.d.ts +15 -0
- package/dist/esnext/components/ModelViewer/Model3DFragment.js +1 -0
- package/dist/esnext/components/ModelViewer/ModelViewer.client.d.ts +127 -0
- package/dist/esnext/components/ModelViewer/ModelViewer.client.js +99 -0
- package/dist/esnext/components/ModelViewer/index.d.ts +1 -0
- package/dist/esnext/components/ModelViewer/index.js +1 -0
- package/dist/esnext/components/Money/Money.client.d.ts +14 -0
- package/dist/esnext/components/Money/Money.client.js +13 -0
- package/dist/esnext/components/Money/MoneyFragment.d.ts +8 -0
- package/dist/esnext/components/Money/MoneyFragment.js +1 -0
- package/dist/esnext/components/Money/index.d.ts +1 -0
- package/dist/esnext/components/Money/index.js +1 -0
- package/dist/esnext/components/ProductDescription/ProductDescription.client.d.ts +13 -0
- package/dist/esnext/components/ProductDescription/ProductDescription.client.js +16 -0
- package/dist/esnext/components/ProductDescription/index.d.ts +1 -0
- package/dist/esnext/components/ProductDescription/index.js +1 -0
- package/dist/esnext/components/ProductMetafield/ProductMetafield.client.d.ts +21 -0
- package/dist/esnext/components/ProductMetafield/ProductMetafield.client.js +42 -0
- package/dist/esnext/components/ProductMetafield/index.d.ts +2 -0
- package/dist/esnext/components/ProductMetafield/index.js +1 -0
- package/dist/esnext/components/ProductPrice/ProductPrice.client.d.ts +16 -0
- package/dist/esnext/components/ProductPrice/ProductPrice.client.js +57 -0
- package/dist/esnext/components/ProductPrice/index.d.ts +1 -0
- package/dist/esnext/components/ProductPrice/index.js +1 -0
- package/dist/esnext/components/ProductProvider/ProductOptionsProvider.client.d.ts +8 -0
- package/dist/esnext/components/ProductProvider/ProductOptionsProvider.client.js +12 -0
- package/dist/esnext/components/ProductProvider/ProductProvider.client.d.ts +19 -0
- package/dist/esnext/components/ProductProvider/ProductProvider.client.js +33 -0
- package/dist/esnext/components/ProductProvider/ProductProviderFragment.d.ts +247 -0
- package/dist/esnext/components/ProductProvider/ProductProviderFragment.js +1 -0
- package/dist/esnext/components/ProductProvider/context.d.ts +20 -0
- package/dist/esnext/components/ProductProvider/context.js +3 -0
- package/dist/esnext/components/ProductProvider/index.d.ts +2 -0
- package/dist/esnext/components/ProductProvider/index.js +2 -0
- package/dist/esnext/components/ProductProvider/types.d.ts +19 -0
- package/dist/esnext/components/ProductProvider/types.js +1 -0
- package/dist/esnext/components/ProductTitle/ProductTitle.client.d.ts +13 -0
- package/dist/esnext/components/ProductTitle/ProductTitle.client.js +16 -0
- package/dist/esnext/components/ProductTitle/index.d.ts +1 -0
- package/dist/esnext/components/ProductTitle/index.js +1 -0
- package/dist/esnext/components/Seo/CollectionSeo.client.d.ts +2 -0
- package/dist/esnext/components/Seo/CollectionSeo.client.js +15 -0
- package/dist/esnext/components/Seo/DefaultPageSeo.client.d.ts +2 -0
- package/dist/esnext/components/Seo/DefaultPageSeo.client.js +19 -0
- package/dist/esnext/components/Seo/DescriptionSeo.client.d.ts +4 -0
- package/dist/esnext/components/Seo/DescriptionSeo.client.js +10 -0
- package/dist/esnext/components/Seo/HomePageSeo.client.d.ts +2 -0
- package/dist/esnext/components/Seo/HomePageSeo.client.js +25 -0
- package/dist/esnext/components/Seo/ImageSeo.client.d.ts +2 -0
- package/dist/esnext/components/Seo/ImageSeo.client.js +10 -0
- package/dist/esnext/components/Seo/PageSeo.client.d.ts +2 -0
- package/dist/esnext/components/Seo/PageSeo.client.js +13 -0
- package/dist/esnext/components/Seo/ProductSeo.client.d.ts +5 -0
- package/dist/esnext/components/Seo/ProductSeo.client.js +58 -0
- package/dist/esnext/components/Seo/Seo.client.d.ts +23 -0
- package/dist/esnext/components/Seo/Seo.client.js +28 -0
- package/dist/esnext/components/Seo/SeoFragment.d.ts +66 -0
- package/dist/esnext/components/Seo/SeoFragment.js +1 -0
- package/dist/esnext/components/Seo/TitleSeo.client.d.ts +4 -0
- package/dist/esnext/components/Seo/TitleSeo.client.js +10 -0
- package/dist/esnext/components/Seo/TwitterSeo.client.d.ts +2 -0
- package/dist/esnext/components/Seo/TwitterSeo.client.js +9 -0
- package/dist/esnext/components/Seo/index.d.ts +1 -0
- package/dist/esnext/components/Seo/index.js +1 -0
- package/dist/esnext/components/Seo/types.d.ts +15 -0
- package/dist/esnext/components/Seo/types.js +1 -0
- package/dist/esnext/components/ShopPayButton/ShopPayButton.client.d.ts +38 -0
- package/dist/esnext/components/ShopPayButton/ShopPayButton.client.js +48 -0
- package/dist/esnext/components/ShopPayButton/index.d.ts +1 -0
- package/dist/esnext/components/ShopPayButton/index.js +1 -0
- package/dist/esnext/components/UnitPrice/UnitPrice.client.d.ts +14 -0
- package/dist/esnext/components/UnitPrice/UnitPrice.client.js +22 -0
- package/dist/esnext/components/UnitPrice/UnitPriceFragment.d.ts +15 -0
- package/dist/esnext/components/UnitPrice/UnitPriceFragment.js +1 -0
- package/dist/esnext/components/UnitPrice/index.d.ts +1 -0
- package/dist/esnext/components/UnitPrice/index.js +1 -0
- package/dist/esnext/components/Video/Video.d.ts +13 -0
- package/dist/esnext/components/Video/Video.js +11 -0
- package/dist/esnext/components/Video/VideoFragment.d.ts +15 -0
- package/dist/esnext/components/Video/VideoFragment.js +1 -0
- package/dist/esnext/components/Video/index.d.ts +1 -0
- package/dist/esnext/components/Video/index.js +1 -0
- package/dist/esnext/components/index.d.ts +32 -0
- package/dist/esnext/components/index.js +30 -0
- package/dist/esnext/components/types.d.ts +71 -0
- package/dist/esnext/components/types.js +10 -0
- package/dist/esnext/constants.d.ts +1 -0
- package/dist/esnext/constants.js +1 -0
- package/dist/esnext/entry-client.d.ts +3 -0
- package/dist/esnext/entry-client.js +48 -0
- package/dist/esnext/entry-server.d.ts +22 -0
- package/dist/esnext/entry-server.js +511 -0
- package/dist/esnext/foundation/Boomerang/Boomerang.client.d.ts +9 -0
- package/dist/esnext/foundation/Boomerang/Boomerang.client.js +64 -0
- package/dist/esnext/foundation/FileRoutes/FileRoutes.server.d.ts +23 -0
- package/dist/esnext/foundation/FileRoutes/FileRoutes.server.js +78 -0
- package/dist/esnext/foundation/Head/Head.client.d.ts +5 -0
- package/dist/esnext/foundation/Head/Head.client.js +10 -0
- package/dist/esnext/foundation/Head/index.d.ts +1 -0
- package/dist/esnext/foundation/Head/index.js +1 -0
- package/dist/esnext/foundation/Route/Route.server.d.ts +13 -0
- package/dist/esnext/foundation/Route/Route.server.js +34 -0
- package/dist/esnext/foundation/Router/BrowserRouter.client.d.ts +13 -0
- package/dist/esnext/foundation/Router/BrowserRouter.client.js +48 -0
- package/dist/esnext/foundation/Router/Router.server.d.ts +11 -0
- package/dist/esnext/foundation/Router/Router.server.js +10 -0
- package/dist/esnext/foundation/ServerRequestProvider/ServerRequestProvider.d.ts +23 -0
- package/dist/esnext/foundation/ServerRequestProvider/ServerRequestProvider.js +113 -0
- package/dist/esnext/foundation/ServerRequestProvider/index.d.ts +1 -0
- package/dist/esnext/foundation/ServerRequestProvider/index.js +1 -0
- package/dist/esnext/foundation/ServerStateProvider/ServerStateProvider.d.ts +25 -0
- package/dist/esnext/foundation/ServerStateProvider/ServerStateProvider.js +47 -0
- package/dist/esnext/foundation/ServerStateProvider/index.d.ts +2 -0
- package/dist/esnext/foundation/ServerStateProvider/index.js +1 -0
- package/dist/esnext/foundation/ShopifyProvider/ShopifyProvider.client.d.ts +7 -0
- package/dist/esnext/foundation/ShopifyProvider/ShopifyProvider.client.js +8 -0
- package/dist/esnext/foundation/ShopifyProvider/ShopifyProvider.server.d.ts +9 -0
- package/dist/esnext/foundation/ShopifyProvider/ShopifyProvider.server.js +29 -0
- package/dist/esnext/foundation/ShopifyProvider/index.d.ts +1 -0
- package/dist/esnext/foundation/ShopifyProvider/index.js +1 -0
- package/dist/esnext/foundation/ShopifyProvider/types.d.ts +15 -0
- package/dist/esnext/foundation/ShopifyProvider/types.js +1 -0
- package/dist/esnext/foundation/constants.d.ts +1 -0
- package/dist/esnext/foundation/constants.js +3 -0
- package/dist/esnext/foundation/index.d.ts +3 -0
- package/dist/esnext/foundation/index.js +3 -0
- package/dist/esnext/foundation/ssr-interop.d.ts +29 -0
- package/dist/esnext/foundation/ssr-interop.js +35 -0
- package/dist/esnext/foundation/useNavigate/useNavigate.d.ts +13 -0
- package/dist/esnext/foundation/useNavigate/useNavigate.js +14 -0
- package/dist/esnext/foundation/useQuery/hooks.d.ts +31 -0
- package/dist/esnext/foundation/useQuery/hooks.js +85 -0
- package/dist/esnext/foundation/useQuery/index.d.ts +1 -0
- package/dist/esnext/foundation/useQuery/index.js +1 -0
- package/dist/esnext/foundation/useRouteParams/RouteParamsProvider.client.d.ts +9 -0
- package/dist/esnext/foundation/useRouteParams/RouteParamsProvider.client.js +7 -0
- package/dist/esnext/foundation/useRouteParams/useRouteParams.d.ts +4 -0
- package/dist/esnext/foundation/useRouteParams/useRouteParams.js +9 -0
- package/dist/esnext/foundation/useServerState/index.d.ts +1 -0
- package/dist/esnext/foundation/useServerState/index.js +1 -0
- package/dist/esnext/foundation/useServerState/use-server-state.d.ts +16 -0
- package/dist/esnext/foundation/useServerState/use-server-state.js +20 -0
- package/dist/esnext/foundation/useShop/index.d.ts +1 -0
- package/dist/esnext/foundation/useShop/index.js +1 -0
- package/dist/esnext/foundation/useShop/use-shop.d.ts +4 -0
- package/dist/esnext/foundation/useShop/use-shop.js +12 -0
- package/dist/esnext/foundation/useUrl/index.d.ts +1 -0
- package/dist/esnext/foundation/useUrl/index.js +1 -0
- package/dist/esnext/foundation/useUrl/useUrl.d.ts +4 -0
- package/dist/esnext/foundation/useUrl/useUrl.js +18 -0
- package/dist/esnext/fragments.d.ts +20 -0
- package/dist/esnext/fragments.js +10 -0
- package/dist/esnext/framework/CachingStrategy/index.d.ts +10 -0
- package/dist/esnext/framework/CachingStrategy/index.js +96 -0
- package/dist/esnext/framework/Hydration/Html.d.ts +11 -0
- package/dist/esnext/framework/Hydration/Html.js +84 -0
- package/dist/esnext/framework/Hydration/ServerComponentRequest.server.d.ts +47 -0
- package/dist/esnext/framework/Hydration/ServerComponentRequest.server.js +114 -0
- package/dist/esnext/framework/Hydration/ServerComponentResponse.server.d.ts +32 -0
- package/dist/esnext/framework/Hydration/ServerComponentResponse.server.js +55 -0
- package/dist/esnext/framework/Hydration/rsc.d.ts +11 -0
- package/dist/esnext/framework/Hydration/rsc.js +72 -0
- package/dist/esnext/framework/cache/in-memory.d.ts +11 -0
- package/dist/esnext/framework/cache/in-memory.js +48 -0
- package/dist/esnext/framework/cache.d.ts +26 -0
- package/dist/esnext/framework/cache.js +87 -0
- package/dist/esnext/framework/config.d.ts +6 -0
- package/dist/esnext/framework/config.js +6 -0
- package/dist/esnext/framework/graphiql.d.ts +1 -0
- package/dist/esnext/framework/graphiql.js +38 -0
- package/dist/esnext/framework/middleware.d.ts +22 -0
- package/dist/esnext/framework/middleware.js +107 -0
- package/dist/esnext/framework/plugin.d.ts +4 -0
- package/dist/esnext/framework/plugin.js +41 -0
- package/dist/esnext/framework/plugins/vite-plugin-hydration-auto-import.d.ts +3 -0
- package/dist/esnext/framework/plugins/vite-plugin-hydration-auto-import.js +38 -0
- package/dist/esnext/framework/plugins/vite-plugin-hydrogen-client-middleware.d.ts +9 -0
- package/dist/esnext/framework/plugins/vite-plugin-hydrogen-client-middleware.js +37 -0
- package/dist/esnext/framework/plugins/vite-plugin-hydrogen-config.d.ts +3 -0
- package/dist/esnext/framework/plugins/vite-plugin-hydrogen-config.js +84 -0
- package/dist/esnext/framework/plugins/vite-plugin-hydrogen-middleware.d.ts +11 -0
- package/dist/esnext/framework/plugins/vite-plugin-hydrogen-middleware.js +56 -0
- package/dist/esnext/framework/plugins/vite-plugin-platform-entry.d.ts +3 -0
- package/dist/esnext/framework/plugins/vite-plugin-platform-entry.js +70 -0
- package/dist/esnext/framework/plugins/vite-plugin-purge-query-cache.d.ts +3 -0
- package/dist/esnext/framework/plugins/vite-plugin-purge-query-cache.js +11 -0
- package/dist/esnext/framework/plugins/vite-plugin-ssr-interop.d.ts +3 -0
- package/dist/esnext/framework/plugins/vite-plugin-ssr-interop.js +13 -0
- package/dist/esnext/framework/runtime.d.ts +13 -0
- package/dist/esnext/framework/runtime.js +27 -0
- package/dist/esnext/graphql/graphql-constants.d.ts +1756 -0
- package/dist/esnext/graphql/graphql-constants.js +3447 -0
- package/dist/esnext/hooks/index.d.ts +6 -0
- package/dist/esnext/hooks/index.js +6 -0
- package/dist/esnext/hooks/useAvailableCountries/index.d.ts +1 -0
- package/dist/esnext/hooks/useAvailableCountries/index.js +1 -0
- package/dist/esnext/hooks/useAvailableCountries/useAvailableCountries.d.ts +11 -0
- package/dist/esnext/hooks/useAvailableCountries/useAvailableCountries.js +17 -0
- package/dist/esnext/hooks/useCart/index.d.ts +1 -0
- package/dist/esnext/hooks/useCart/index.js +1 -0
- package/dist/esnext/hooks/useCart/useCart.d.ts +4 -0
- package/dist/esnext/hooks/useCart/useCart.js +12 -0
- package/dist/esnext/hooks/useCartLine/index.d.ts +1 -0
- package/dist/esnext/hooks/useCartLine/index.js +1 -0
- package/dist/esnext/hooks/useCartLine/useCartLine.d.ts +29 -0
- package/dist/esnext/hooks/useCartLine/useCartLine.js +12 -0
- package/dist/esnext/hooks/useCountry/index.d.ts +1 -0
- package/dist/esnext/hooks/useCountry/index.js +1 -0
- package/dist/esnext/hooks/useCountry/useCountry.d.ts +17 -0
- package/dist/esnext/hooks/useCountry/useCountry.js +17 -0
- package/dist/esnext/hooks/useLoadScript/index.d.ts +1 -0
- package/dist/esnext/hooks/useLoadScript/index.js +1 -0
- package/dist/esnext/hooks/useLoadScript/useLoadScript.d.ts +8 -0
- package/dist/esnext/hooks/useLoadScript/useLoadScript.js +22 -0
- package/dist/esnext/hooks/useMeasurement/hooks.d.ts +9 -0
- package/dist/esnext/hooks/useMeasurement/hooks.js +13 -0
- package/dist/esnext/hooks/useMeasurement/index.d.ts +1 -0
- package/dist/esnext/hooks/useMeasurement/index.js +1 -0
- package/dist/esnext/hooks/useMoney/hooks.d.ts +42 -0
- package/dist/esnext/hooks/useMoney/hooks.js +42 -0
- package/dist/esnext/hooks/useMoney/index.d.ts +1 -0
- package/dist/esnext/hooks/useMoney/index.js +1 -0
- package/dist/esnext/hooks/useParsedMetafields/index.d.ts +1 -0
- package/dist/esnext/hooks/useParsedMetafields/index.js +1 -0
- package/dist/esnext/hooks/useParsedMetafields/useParsedMetafields.d.ts +6 -0
- package/dist/esnext/hooks/useParsedMetafields/useParsedMetafields.js +19 -0
- package/dist/esnext/hooks/useProduct/index.d.ts +1 -0
- package/dist/esnext/hooks/useProduct/index.js +1 -0
- package/dist/esnext/hooks/useProduct/useProduct.d.ts +114 -0
- package/dist/esnext/hooks/useProduct/useProduct.js +43 -0
- package/dist/esnext/hooks/useProductOptions/SellingPlanFragment.d.ts +31 -0
- package/dist/esnext/hooks/useProductOptions/SellingPlanFragment.js +1 -0
- package/dist/esnext/hooks/useProductOptions/SellingPlanGroupsFragment.d.ts +46 -0
- package/dist/esnext/hooks/useProductOptions/SellingPlanGroupsFragment.js +1 -0
- package/dist/esnext/hooks/useProductOptions/VariantFragment.d.ts +106 -0
- package/dist/esnext/hooks/useProductOptions/VariantFragment.js +1 -0
- package/dist/esnext/hooks/useProductOptions/helpers.d.ts +4 -0
- package/dist/esnext/hooks/useProductOptions/helpers.js +33 -0
- package/dist/esnext/hooks/useProductOptions/index.d.ts +2 -0
- package/dist/esnext/hooks/useProductOptions/index.js +2 -0
- package/dist/esnext/hooks/useProductOptions/types.d.ts +62 -0
- package/dist/esnext/hooks/useProductOptions/types.js +1 -0
- package/dist/esnext/hooks/useProductOptions/useProductOptions.d.ts +14 -0
- package/dist/esnext/hooks/useProductOptions/useProductOptions.js +115 -0
- package/dist/esnext/hooks/useShopQuery/hooks.d.ts +29 -0
- package/dist/esnext/hooks/useShopQuery/hooks.js +83 -0
- package/dist/esnext/hooks/useShopQuery/index.d.ts +1 -0
- package/dist/esnext/hooks/useShopQuery/index.js +1 -0
- package/dist/esnext/index.d.ts +15 -0
- package/dist/esnext/index.js +19 -0
- package/dist/esnext/platforms/node.d.ts +10 -0
- package/dist/esnext/platforms/node.js +38 -0
- package/dist/esnext/platforms/worker-event.d.ts +9 -0
- package/dist/esnext/platforms/worker-event.js +24 -0
- package/dist/esnext/storefront-api-types.d.ts +6121 -0
- package/dist/esnext/storefront-api-types.js +1709 -0
- package/dist/esnext/streaming.server.d.ts +20 -0
- package/dist/esnext/streaming.server.js +49 -0
- package/dist/esnext/types.d.ts +98 -0
- package/dist/esnext/types.js +1 -0
- package/dist/esnext/utilities/apiRoutes.d.ts +36 -0
- package/dist/esnext/utilities/apiRoutes.js +109 -0
- package/dist/esnext/utilities/bot-ua.d.ts +4 -0
- package/dist/esnext/utilities/bot-ua.js +54 -0
- package/dist/esnext/utilities/defer.d.ts +6 -0
- package/dist/esnext/utilities/defer.js +14 -0
- package/dist/esnext/utilities/error.d.ts +1 -0
- package/dist/esnext/utilities/error.js +6 -0
- package/dist/esnext/utilities/fetch.d.ts +4 -0
- package/dist/esnext/utilities/fetch.js +34 -0
- package/dist/esnext/utilities/flattenConnection/flattenConnection.d.ts +5 -0
- package/dist/esnext/utilities/flattenConnection/flattenConnection.js +7 -0
- package/dist/esnext/utilities/flattenConnection/index.d.ts +1 -0
- package/dist/esnext/utilities/flattenConnection/index.js +1 -0
- package/dist/esnext/utilities/image_size.d.ts +29 -0
- package/dist/esnext/utilities/image_size.js +80 -0
- package/dist/esnext/utilities/index.d.ts +11 -0
- package/dist/esnext/utilities/index.js +11 -0
- package/dist/esnext/utilities/isClient/index.d.ts +1 -0
- package/dist/esnext/utilities/isClient/index.js +1 -0
- package/dist/esnext/utilities/isClient/isClient.d.ts +4 -0
- package/dist/esnext/utilities/isClient/isClient.js +6 -0
- package/dist/esnext/utilities/isServer/index.d.ts +1 -0
- package/dist/esnext/utilities/isServer/index.js +1 -0
- package/dist/esnext/utilities/isServer/isServer.d.ts +4 -0
- package/dist/esnext/utilities/isServer/isServer.js +7 -0
- package/dist/esnext/utilities/load_script.d.ts +3 -0
- package/dist/esnext/utilities/load_script.js +23 -0
- package/dist/esnext/utilities/log/index.d.ts +4 -0
- package/dist/esnext/utilities/log/index.js +4 -0
- package/dist/esnext/utilities/log/log-cache-api-status.d.ts +1 -0
- package/dist/esnext/utilities/log/log-cache-api-status.js +9 -0
- package/dist/esnext/utilities/log/log-cache-header.d.ts +10 -0
- package/dist/esnext/utilities/log/log-cache-header.js +30 -0
- package/dist/esnext/utilities/log/log-query-timeline.d.ts +12 -0
- package/dist/esnext/utilities/log/log-query-timeline.js +84 -0
- package/dist/esnext/utilities/log/log.d.ts +21 -0
- package/dist/esnext/utilities/log/log.js +66 -0
- package/dist/esnext/utilities/log/utils.d.ts +3 -0
- package/dist/esnext/utilities/log/utils.js +13 -0
- package/dist/esnext/utilities/matchPath.d.ts +10 -0
- package/dist/esnext/utilities/matchPath.js +54 -0
- package/dist/esnext/utilities/measurement.d.ts +3 -0
- package/dist/esnext/utilities/measurement.js +98 -0
- package/dist/esnext/utilities/object.d.ts +5 -0
- package/dist/esnext/utilities/object.js +7 -0
- package/dist/esnext/utilities/parseMetafieldValue/index.d.ts +1 -0
- package/dist/esnext/utilities/parseMetafieldValue/index.js +1 -0
- package/dist/esnext/utilities/parseMetafieldValue/parseMetafieldValue.d.ts +5 -0
- package/dist/esnext/utilities/parseMetafieldValue/parseMetafieldValue.js +35 -0
- package/dist/esnext/utilities/suspense.d.ts +7 -0
- package/dist/esnext/utilities/suspense.js +26 -0
- package/dist/esnext/utilities/template.d.ts +9 -0
- package/dist/esnext/utilities/template.js +23 -0
- package/dist/esnext/utilities/timing.d.ts +7 -0
- package/dist/esnext/utilities/timing.js +14 -0
- package/dist/esnext/utilities/video_parameters.d.ts +47 -0
- package/dist/esnext/utilities/video_parameters.js +22 -0
- package/dist/esnext/utilities/web-api-polyfill.d.ts +1 -0
- package/dist/esnext/utilities/web-api-polyfill.js +19 -0
- package/dist/esnext/version.d.ts +1 -0
- package/dist/esnext/version.js +1 -0
- package/dist/node/constants.d.ts +1 -0
- package/dist/node/constants.js +4 -0
- package/dist/node/entry-server.d.ts +22 -0
- package/dist/node/entry-server.js +541 -0
- package/dist/node/foundation/ServerRequestProvider/ServerRequestProvider.d.ts +23 -0
- package/dist/node/foundation/ServerRequestProvider/ServerRequestProvider.js +143 -0
- package/dist/node/foundation/ServerRequestProvider/index.d.ts +1 -0
- package/dist/node/foundation/ServerRequestProvider/index.js +17 -0
- package/dist/node/foundation/ServerStateProvider/ServerStateProvider.d.ts +25 -0
- package/dist/node/foundation/ServerStateProvider/ServerStateProvider.js +72 -0
- package/dist/node/foundation/ServerStateProvider/index.d.ts +2 -0
- package/dist/node/foundation/ServerStateProvider/index.js +6 -0
- package/dist/node/foundation/ShopifyProvider/types.d.ts +15 -0
- package/dist/node/foundation/ShopifyProvider/types.js +2 -0
- package/dist/node/framework/CachingStrategy/index.d.ts +10 -0
- package/dist/node/framework/CachingStrategy/index.js +108 -0
- package/dist/node/framework/Hydration/Html.d.ts +11 -0
- package/dist/node/framework/Hydration/Html.js +92 -0
- package/dist/node/framework/Hydration/ServerComponentRequest.server.d.ts +47 -0
- package/dist/node/framework/Hydration/ServerComponentRequest.server.js +118 -0
- package/dist/node/framework/Hydration/ServerComponentResponse.server.d.ts +32 -0
- package/dist/node/framework/Hydration/ServerComponentResponse.server.js +59 -0
- package/dist/node/framework/Hydration/rsc.d.ts +11 -0
- package/dist/node/framework/Hydration/rsc.js +75 -0
- package/dist/node/framework/cache/in-memory.d.ts +11 -0
- package/dist/node/framework/cache/in-memory.js +52 -0
- package/dist/node/framework/cache.d.ts +26 -0
- package/dist/node/framework/cache.js +97 -0
- package/dist/node/framework/config.d.ts +6 -0
- package/dist/node/framework/config.js +11 -0
- package/dist/node/framework/graphiql.d.ts +1 -0
- package/dist/node/framework/graphiql.js +42 -0
- package/dist/node/framework/middleware.d.ts +22 -0
- package/dist/node/framework/middleware.js +134 -0
- package/dist/node/framework/plugin.d.ts +4 -0
- package/dist/node/framework/plugin.js +69 -0
- package/dist/node/framework/plugins/vite-plugin-hydration-auto-import.d.ts +3 -0
- package/dist/node/framework/plugins/vite-plugin-hydration-auto-import.js +43 -0
- package/dist/node/framework/plugins/vite-plugin-hydrogen-client-middleware.d.ts +9 -0
- package/dist/node/framework/plugins/vite-plugin-hydrogen-client-middleware.js +39 -0
- package/dist/node/framework/plugins/vite-plugin-hydrogen-config.d.ts +3 -0
- package/dist/node/framework/plugins/vite-plugin-hydrogen-config.js +86 -0
- package/dist/node/framework/plugins/vite-plugin-hydrogen-middleware.d.ts +11 -0
- package/dist/node/framework/plugins/vite-plugin-hydrogen-middleware.js +62 -0
- package/dist/node/framework/plugins/vite-plugin-platform-entry.d.ts +3 -0
- package/dist/node/framework/plugins/vite-plugin-platform-entry.js +75 -0
- package/dist/node/framework/plugins/vite-plugin-purge-query-cache.d.ts +3 -0
- package/dist/node/framework/plugins/vite-plugin-purge-query-cache.js +16 -0
- package/dist/node/framework/plugins/vite-plugin-ssr-interop.d.ts +3 -0
- package/dist/node/framework/plugins/vite-plugin-ssr-interop.js +15 -0
- package/dist/node/framework/runtime.d.ts +13 -0
- package/dist/node/framework/runtime.js +35 -0
- package/dist/node/storefront-api-types.d.ts +6121 -0
- package/dist/node/storefront-api-types.js +1712 -0
- package/dist/node/streaming.server.d.ts +20 -0
- package/dist/node/streaming.server.js +49 -0
- package/dist/node/types.d.ts +98 -0
- package/dist/node/types.js +2 -0
- package/dist/node/utilities/apiRoutes.d.ts +36 -0
- package/dist/node/utilities/apiRoutes.js +115 -0
- package/dist/node/utilities/bot-ua.d.ts +4 -0
- package/dist/node/utilities/bot-ua.js +58 -0
- package/dist/node/utilities/defer.d.ts +6 -0
- package/dist/node/utilities/defer.js +18 -0
- package/dist/node/utilities/error.d.ts +1 -0
- package/dist/node/utilities/error.js +10 -0
- package/dist/node/utilities/fetch.d.ts +4 -0
- package/dist/node/utilities/fetch.js +40 -0
- package/dist/node/utilities/log/index.d.ts +4 -0
- package/dist/node/utilities/log/index.js +18 -0
- package/dist/node/utilities/log/log-cache-api-status.d.ts +1 -0
- package/dist/node/utilities/log/log-cache-api-status.js +13 -0
- package/dist/node/utilities/log/log-cache-header.d.ts +10 -0
- package/dist/node/utilities/log/log-cache-header.js +35 -0
- package/dist/node/utilities/log/log-query-timeline.d.ts +12 -0
- package/dist/node/utilities/log/log-query-timeline.js +89 -0
- package/dist/node/utilities/log/log.d.ts +21 -0
- package/dist/node/utilities/log/log.js +74 -0
- package/dist/node/utilities/log/utils.d.ts +3 -0
- package/dist/node/utilities/log/utils.js +18 -0
- package/dist/node/utilities/matchPath.d.ts +10 -0
- package/dist/node/utilities/matchPath.js +58 -0
- package/dist/node/utilities/template.d.ts +9 -0
- package/dist/node/utilities/template.js +27 -0
- package/dist/node/utilities/timing.d.ts +7 -0
- package/dist/node/utilities/timing.js +18 -0
- package/dist/node/utilities/web-api-polyfill.d.ts +1 -0
- package/dist/node/utilities/web-api-polyfill.js +47 -0
- package/dist/node/version.d.ts +1 -0
- package/dist/node/version.js +4 -0
- package/entry-client.d.ts +1 -0
- package/entry-client.js +1 -0
- package/entry-server.d.ts +1 -0
- package/entry-server.js +1 -0
- package/fragments.d.ts +1 -0
- package/fragments.js +1 -0
- package/middleware.d.ts +1 -0
- package/middleware.js +1 -0
- package/package.json +121 -0
- package/plugin.d.ts +1 -0
- package/plugin.js +1 -0
- package/vendor/react-server-dom-vite/LICENSE +21 -0
- package/vendor/react-server-dom-vite/README.md +5 -0
- package/vendor/react-server-dom-vite/cjs/react-server-dom-vite-plugin.js +243 -0
- package/vendor/react-server-dom-vite/cjs/react-server-dom-vite-writer.browser.development.server.js +1031 -0
- package/vendor/react-server-dom-vite/cjs/react-server-dom-vite-writer.browser.production.min.server.js +430 -0
- package/vendor/react-server-dom-vite/cjs/react-server-dom-vite-writer.node.development.server.js +1053 -0
- package/vendor/react-server-dom-vite/cjs/react-server-dom-vite-writer.node.production.min.server.js +446 -0
- package/vendor/react-server-dom-vite/cjs/react-server-dom-vite.development.js +623 -0
- package/vendor/react-server-dom-vite/cjs/react-server-dom-vite.production.min.js +255 -0
- package/vendor/react-server-dom-vite/esm/package.json +3 -0
- package/vendor/react-server-dom-vite/esm/react-server-dom-vite-client-proxy.js +83 -0
- package/vendor/react-server-dom-vite/esm/react-server-dom-vite-plugin.js +239 -0
- package/vendor/react-server-dom-vite/esm/react-server-dom-vite-writer.browser.server.js +1014 -0
- package/vendor/react-server-dom-vite/esm/react-server-dom-vite-writer.node.server.js +1032 -0
- package/vendor/react-server-dom-vite/esm/react-server-dom-vite.js +613 -0
- package/vendor/react-server-dom-vite/index.js +7 -0
- package/vendor/react-server-dom-vite/package.json +68 -0
- package/vendor/react-server-dom-vite/plugin.js +3 -0
- package/vendor/react-server-dom-vite/writer.browser.server.js +7 -0
- package/vendor/react-server-dom-vite/writer.node.server.js +7 -0
- package/web-polyfills.js +1 -0
package/README.md
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Hydrogen
|
|
2
|
+
|
|
3
|
+
Hydrogen is a React framework and SDK that you can use to build fast and dynamic Shopify custom storefronts.
|
|
4
|
+
|
|
5
|
+
[Check out the docs](https://shopify.dev/custom-storefronts/hydrogen)
|
|
6
|
+
|
|
7
|
+
## Getting started
|
|
8
|
+
|
|
9
|
+
**Requirements:**
|
|
10
|
+
|
|
11
|
+
- Node.js version 16.5.0 or higher
|
|
12
|
+
- Yarn
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
yarn
|
|
16
|
+
yarn dev
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Building for production
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
yarn build
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Then, you can run a local `server.js` using the production build with:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
yarn serve
|
|
29
|
+
```
|
package/client.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './dist/esnext/client';
|
package/client.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './dist/esnext/client';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './components';
|
|
2
|
+
export * from './hooks';
|
|
3
|
+
export * from './foundation/useServerState';
|
|
4
|
+
export * from './foundation/useShop';
|
|
5
|
+
export * from './foundation/ServerStateProvider';
|
|
6
|
+
export { Head } from './foundation/Head';
|
|
7
|
+
export * from './utilities';
|
|
8
|
+
export { useRouteParams } from './foundation/useRouteParams/useRouteParams';
|
|
9
|
+
export { useNavigate } from './foundation/useNavigate/useNavigate';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './components';
|
|
2
|
+
export * from './hooks';
|
|
3
|
+
export * from './foundation/useServerState';
|
|
4
|
+
export * from './foundation/useShop';
|
|
5
|
+
export * from './foundation/ServerStateProvider';
|
|
6
|
+
export { Head } from './foundation/Head';
|
|
7
|
+
export * from './utilities';
|
|
8
|
+
export { useRouteParams } from './foundation/useRouteParams/useRouteParams';
|
|
9
|
+
export { useNavigate } from './foundation/useNavigate/useNavigate';
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
interface AddToCartButtonProps {
|
|
3
|
+
/** An array of cart line attributes that belong to the item being added to the cart. */
|
|
4
|
+
attributes?: {
|
|
5
|
+
key: string;
|
|
6
|
+
value: string;
|
|
7
|
+
}[];
|
|
8
|
+
/** The ID of the variant. */
|
|
9
|
+
variantId?: string | null;
|
|
10
|
+
/** The item quantity. */
|
|
11
|
+
quantity?: number;
|
|
12
|
+
/** Any ReactNode elements. */
|
|
13
|
+
children: ReactNode;
|
|
14
|
+
/** The text that is announced by the screen reader when the item is being added to the cart. Used for accessibility purposes only and not displayed on the page. */
|
|
15
|
+
accessibleAddingToCartLabel?: string;
|
|
16
|
+
}
|
|
17
|
+
declare type PropsWeControl = 'onClick';
|
|
18
|
+
/**
|
|
19
|
+
* The `AddToCartButton` component renders a button that adds an item to the cart when pressed.
|
|
20
|
+
* It must be a descendent of the `CartProvider` component.
|
|
21
|
+
*/
|
|
22
|
+
export declare function AddToCartButton(props: Omit<JSX.IntrinsicElements['button'], PropsWeControl> & AddToCartButtonProps): JSX.Element;
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import React, { useEffect, useState } from 'react';
|
|
2
|
+
import { useCart } from '../CartProvider';
|
|
3
|
+
import { useProduct } from '../ProductProvider';
|
|
4
|
+
/**
|
|
5
|
+
* The `AddToCartButton` component renders a button that adds an item to the cart when pressed.
|
|
6
|
+
* It must be a descendent of the `CartProvider` component.
|
|
7
|
+
*/
|
|
8
|
+
export function AddToCartButton(props) {
|
|
9
|
+
var _a, _b;
|
|
10
|
+
const [addingItem, setAddingItem] = useState(false);
|
|
11
|
+
const { variantId: explicitVariantId, quantity = 1, attributes, children, accessibleAddingToCartLabel, ...passthroughProps } = props;
|
|
12
|
+
const { status, linesAdd } = useCart();
|
|
13
|
+
const product = useProduct();
|
|
14
|
+
const variantId = (_b = explicitVariantId !== null && explicitVariantId !== void 0 ? explicitVariantId : (_a = product === null || product === void 0 ? void 0 : product.selectedVariant) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : '';
|
|
15
|
+
const disabled = explicitVariantId === null ||
|
|
16
|
+
variantId === '' ||
|
|
17
|
+
(product === null || product === void 0 ? void 0 : product.selectedVariant) === null ||
|
|
18
|
+
addingItem ||
|
|
19
|
+
passthroughProps.disabled;
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
if (addingItem && status === 'idle') {
|
|
22
|
+
setAddingItem(false);
|
|
23
|
+
}
|
|
24
|
+
}, [status, addingItem]);
|
|
25
|
+
return (React.createElement(React.Fragment, null,
|
|
26
|
+
React.createElement("button", { ...passthroughProps, disabled: disabled, onClick: () => {
|
|
27
|
+
setAddingItem(true);
|
|
28
|
+
linesAdd([
|
|
29
|
+
{
|
|
30
|
+
quantity: quantity,
|
|
31
|
+
merchandiseId: variantId,
|
|
32
|
+
attributes: attributes,
|
|
33
|
+
},
|
|
34
|
+
]);
|
|
35
|
+
} }, children),
|
|
36
|
+
accessibleAddingToCartLabel ? (React.createElement("p", { style: {
|
|
37
|
+
position: 'absolute',
|
|
38
|
+
width: '1px',
|
|
39
|
+
height: '1px',
|
|
40
|
+
padding: '0',
|
|
41
|
+
margin: '-1px',
|
|
42
|
+
overflow: 'hidden',
|
|
43
|
+
clip: 'rect(0, 0, 0, 0)',
|
|
44
|
+
whiteSpace: 'nowrap',
|
|
45
|
+
borderWidth: '0',
|
|
46
|
+
}, role: "alert", "aria-live": "assertive" }, addingItem ? accessibleAddingToCartLabel : null)) : null));
|
|
47
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { AddToCartButton } from './AddToCartButton.client';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { AddToCartButton } from './AddToCartButton.client';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
interface BuyNowButtonProps {
|
|
3
|
+
/** The item quantity. Defaults to 1. */
|
|
4
|
+
quantity?: number;
|
|
5
|
+
/** The ID of the variant. */
|
|
6
|
+
variantId: string;
|
|
7
|
+
/** An array of cart line attributes that belong to the item being added to the cart. */
|
|
8
|
+
attributes?: {
|
|
9
|
+
key: string;
|
|
10
|
+
value: string;
|
|
11
|
+
}[];
|
|
12
|
+
/** Any `ReactNode` elements. */
|
|
13
|
+
children: ReactNode;
|
|
14
|
+
}
|
|
15
|
+
declare type PropsWeControl = 'onClick';
|
|
16
|
+
/** The `BuyNowButton` component renders a button that adds an item to the cart and redirects the customer to checkout. */
|
|
17
|
+
export declare function BuyNowButton(props: Omit<JSX.IntrinsicElements['button'], PropsWeControl> & BuyNowButtonProps): JSX.Element;
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import React, { useEffect, useState, useCallback } from 'react';
|
|
2
|
+
import { useInstantCheckout } from '../CartProvider';
|
|
3
|
+
/** The `BuyNowButton` component renders a button that adds an item to the cart and redirects the customer to checkout. */
|
|
4
|
+
export function BuyNowButton(props) {
|
|
5
|
+
const { createInstantCheckout, checkoutUrl } = useInstantCheckout();
|
|
6
|
+
const [loading, setLoading] = useState(false);
|
|
7
|
+
const { quantity, variantId, attributes, children, ...passthroughProps } = props;
|
|
8
|
+
useEffect(() => {
|
|
9
|
+
if (checkoutUrl) {
|
|
10
|
+
window.location.href = checkoutUrl;
|
|
11
|
+
}
|
|
12
|
+
}, [checkoutUrl]);
|
|
13
|
+
const handleBuyNow = useCallback(() => {
|
|
14
|
+
setLoading(true);
|
|
15
|
+
createInstantCheckout({
|
|
16
|
+
lines: [
|
|
17
|
+
{
|
|
18
|
+
quantity: quantity !== null && quantity !== void 0 ? quantity : 1,
|
|
19
|
+
merchandiseId: variantId,
|
|
20
|
+
attributes,
|
|
21
|
+
},
|
|
22
|
+
],
|
|
23
|
+
});
|
|
24
|
+
}, [setLoading, createInstantCheckout, quantity, variantId, attributes]);
|
|
25
|
+
return (React.createElement("button", { disabled: loading !== null && loading !== void 0 ? loading : passthroughProps.disabled, ...passthroughProps, onClick: handleBuyNow }, children));
|
|
26
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { BuyNowButton } from './BuyNowButton.client';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { BuyNowButton } from './BuyNowButton.client';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
declare type PropsWeControl = 'onClick';
|
|
3
|
+
/**
|
|
4
|
+
* The `CartCheckoutButton` component renders a button that redirects to the checkout URL for the cart.
|
|
5
|
+
* It must be a descendent of a `CartProvider` component.
|
|
6
|
+
*/
|
|
7
|
+
export declare function CartCheckoutButton(props: Omit<JSX.IntrinsicElements['button'], PropsWeControl> & {
|
|
8
|
+
/** A `ReactNode` element. */
|
|
9
|
+
children: ReactNode;
|
|
10
|
+
}): JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React, { useEffect, useState } from 'react';
|
|
2
|
+
import { useCart } from '../CartProvider';
|
|
3
|
+
/**
|
|
4
|
+
* The `CartCheckoutButton` component renders a button that redirects to the checkout URL for the cart.
|
|
5
|
+
* It must be a descendent of a `CartProvider` component.
|
|
6
|
+
*/
|
|
7
|
+
export function CartCheckoutButton(props) {
|
|
8
|
+
const [requestedCheckout, setRequestedCheckout] = useState(false);
|
|
9
|
+
const { status, checkoutUrl } = useCart();
|
|
10
|
+
const { children, ...passthroughProps } = props;
|
|
11
|
+
useEffect(() => {
|
|
12
|
+
if (requestedCheckout && checkoutUrl && status === 'idle') {
|
|
13
|
+
window.location.href = checkoutUrl;
|
|
14
|
+
}
|
|
15
|
+
}, [requestedCheckout, status, checkoutUrl]);
|
|
16
|
+
return (React.createElement("button", { ...passthroughProps, disabled: requestedCheckout || passthroughProps.disabled, onClick: () => setRequestedCheckout(true) }, children));
|
|
17
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { CartCheckoutButton } from './CartCheckoutButton.client';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { CartCheckoutButton } from './CartCheckoutButton.client';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Money } from '../Money';
|
|
3
|
+
export interface CartEstimatedCostProps {
|
|
4
|
+
/** A string type that defines the type of cost needed. Valid values: `total`, `subtotal`, `tax`, or `duty`. */
|
|
5
|
+
amountType?: 'total' | 'subtotal' | 'tax' | 'duty';
|
|
6
|
+
/** A function that takes an object return by the `useMoney` hook and returns a `ReactNode`. */
|
|
7
|
+
children?: React.ReactNode;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* The `CartEstimatedCost` component renders a `Money` component with the
|
|
11
|
+
* cost associated with the `amountType` prop. If no `amountType` prop is specified, then it defaults to `totalAmount`.
|
|
12
|
+
* If `children` is a function, then it will pass down the render props provided by the parent component.
|
|
13
|
+
*/
|
|
14
|
+
export declare function CartEstimatedCost<TTag extends keyof JSX.IntrinsicElements>(props: Omit<React.ComponentProps<typeof Money>, 'data'> & CartEstimatedCostProps): JSX.Element | null;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { useCart } from '../CartProvider';
|
|
3
|
+
import { Money } from '../Money';
|
|
4
|
+
/**
|
|
5
|
+
* The `CartEstimatedCost` component renders a `Money` component with the
|
|
6
|
+
* cost associated with the `amountType` prop. If no `amountType` prop is specified, then it defaults to `totalAmount`.
|
|
7
|
+
* If `children` is a function, then it will pass down the render props provided by the parent component.
|
|
8
|
+
*/
|
|
9
|
+
export function CartEstimatedCost(props) {
|
|
10
|
+
const { estimatedCost } = useCart();
|
|
11
|
+
const { amountType = 'total', children, ...passthroughProps } = props;
|
|
12
|
+
let amount;
|
|
13
|
+
if (amountType == 'total') {
|
|
14
|
+
amount = estimatedCost === null || estimatedCost === void 0 ? void 0 : estimatedCost.totalAmount;
|
|
15
|
+
}
|
|
16
|
+
else if (amountType == 'subtotal') {
|
|
17
|
+
amount = estimatedCost === null || estimatedCost === void 0 ? void 0 : estimatedCost.subtotalAmount;
|
|
18
|
+
}
|
|
19
|
+
else if (amountType == 'tax') {
|
|
20
|
+
amount = estimatedCost === null || estimatedCost === void 0 ? void 0 : estimatedCost.totalTaxAmount;
|
|
21
|
+
}
|
|
22
|
+
else if (amountType == 'duty') {
|
|
23
|
+
amount = estimatedCost === null || estimatedCost === void 0 ? void 0 : estimatedCost.totalDutyAmount;
|
|
24
|
+
}
|
|
25
|
+
if (amount == null) {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
return (React.createElement(Money, { ...passthroughProps, data: amount }, children));
|
|
29
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { CartEstimatedCost } from './CartEstimatedCost.client';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { CartEstimatedCost } from './CartEstimatedCost.client';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Image } from '../Image';
|
|
3
|
+
import { ImageSizeOptions } from '../../utilities';
|
|
4
|
+
declare type PropsWeControl = 'data' | 'options';
|
|
5
|
+
/**
|
|
6
|
+
* The `CartLineImage` component renders an `Image` component for the cart line merchandise's image.
|
|
7
|
+
* It must be a descendent of a `CartLineProvider` component.
|
|
8
|
+
*/
|
|
9
|
+
export declare function CartLineImage(props: Omit<React.ComponentProps<typeof Image>, PropsWeControl> & {
|
|
10
|
+
options?: ImageSizeOptions;
|
|
11
|
+
}): JSX.Element | null;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { useCartLine } from '../CartLineProvider';
|
|
3
|
+
import { Image } from '../Image';
|
|
4
|
+
/**
|
|
5
|
+
* The `CartLineImage` component renders an `Image` component for the cart line merchandise's image.
|
|
6
|
+
* It must be a descendent of a `CartLineProvider` component.
|
|
7
|
+
*/
|
|
8
|
+
export function CartLineImage(props) {
|
|
9
|
+
const cartLine = useCartLine();
|
|
10
|
+
const { options, ...passthroughProps } = props;
|
|
11
|
+
return cartLine.merchandise.image ? (React.createElement(Image, { ...passthroughProps, data: cartLine.merchandise.image, options: options })) : null;
|
|
12
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { CartLineImage } from './CartLineImage.client';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { CartLineImage } from './CartLineImage.client';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Money } from '../Money';
|
|
3
|
+
interface CartLinePriceProps {
|
|
4
|
+
/** The type of price. Valid values:`regular` (default) or `compareAt`. */
|
|
5
|
+
priceType?: 'regular' | 'compareAt';
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* The `CartLinePrice` component renders a `Money` component for the cart line merchandise's price or
|
|
9
|
+
* compare at price. It must be a descendent of a `CartLineProvider` component.
|
|
10
|
+
*/
|
|
11
|
+
export declare function CartLinePrice<TTag extends keyof JSX.IntrinsicElements>(props: Omit<React.ComponentProps<typeof Money>, 'data'> & CartLinePriceProps): JSX.Element | null;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { useCartLine } from '../CartLineProvider';
|
|
3
|
+
import { Money } from '../Money';
|
|
4
|
+
/**
|
|
5
|
+
* The `CartLinePrice` component renders a `Money` component for the cart line merchandise's price or
|
|
6
|
+
* compare at price. It must be a descendent of a `CartLineProvider` component.
|
|
7
|
+
*/
|
|
8
|
+
export function CartLinePrice(props) {
|
|
9
|
+
const cartLine = useCartLine();
|
|
10
|
+
const { priceType = 'regular', ...passthroughProps } = props;
|
|
11
|
+
const price = priceType === 'regular'
|
|
12
|
+
? cartLine.merchandise.priceV2
|
|
13
|
+
: cartLine.merchandise.compareAtPriceV2;
|
|
14
|
+
if (price == null) {
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
return (React.createElement(Money, { ...passthroughProps, data: {
|
|
18
|
+
amount: `${parseFloat(price.amount) * cartLine.quantity}`,
|
|
19
|
+
currencyCode: price.currencyCode,
|
|
20
|
+
} }));
|
|
21
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { CartLinePrice } from './CartLinePrice.client';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { CartLinePrice } from './CartLinePrice.client';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `CartLineProductTitle` component renders a `span` element (or the type of HTML element specified by
|
|
3
|
+
* the `as` prop) with the cart line merchandise's title. It must be a descendent of a `CartLineProvider` component.
|
|
4
|
+
*/
|
|
5
|
+
export declare function CartLineProductTitle<TTag extends keyof JSX.IntrinsicElements = 'span'>(props: JSX.IntrinsicElements[TTag] & {
|
|
6
|
+
/** An HTML tag to be rendered as the base element wrapper. The default is `span`. */
|
|
7
|
+
as?: TTag;
|
|
8
|
+
}): JSX.Element;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { useCartLine } from '../CartLineProvider';
|
|
3
|
+
/**
|
|
4
|
+
* The `CartLineProductTitle` component renders a `span` element (or the type of HTML element specified by
|
|
5
|
+
* the `as` prop) with the cart line merchandise's title. It must be a descendent of a `CartLineProvider` component.
|
|
6
|
+
*/
|
|
7
|
+
export function CartLineProductTitle(props) {
|
|
8
|
+
const cartLine = useCartLine();
|
|
9
|
+
const { as, ...passthroughProps } = props;
|
|
10
|
+
const Wrapper = as ? as : 'span';
|
|
11
|
+
return (React.createElement(Wrapper, { ...passthroughProps }, cartLine.merchandise.product.title));
|
|
12
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { CartLineProductTitle } from './CartLineProductTitle.client';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { CartLineProductTitle } from './CartLineProductTitle.client';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { Cart } from '../CartProvider';
|
|
3
|
+
/**
|
|
4
|
+
* The `CartLineProvider` component creates a context for using a cart line.
|
|
5
|
+
*/
|
|
6
|
+
export declare function CartLineProvider({ children, line, }: {
|
|
7
|
+
/** Any `ReactNode` elements. */
|
|
8
|
+
children: ReactNode;
|
|
9
|
+
/** A cart line object. */
|
|
10
|
+
line: Cart['lines'][1];
|
|
11
|
+
}): JSX.Element;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { CartLineContext } from './context';
|
|
3
|
+
/**
|
|
4
|
+
* The `CartLineProvider` component creates a context for using a cart line.
|
|
5
|
+
*/
|
|
6
|
+
export function CartLineProvider({ children, line, }) {
|
|
7
|
+
return (React.createElement(CartLineContext.Provider, { value: line }, children));
|
|
8
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export declare const CartLineContext: import("react").Context<({
|
|
2
|
+
__typename?: "CartLine" | undefined;
|
|
3
|
+
} & Pick<import("../../storefront-api-types").CartLine, "id" | "quantity"> & {
|
|
4
|
+
attributes: ({
|
|
5
|
+
__typename?: "Attribute" | undefined;
|
|
6
|
+
} & Pick<import("../../storefront-api-types").Attribute, "key" | "value">)[];
|
|
7
|
+
merchandise: {
|
|
8
|
+
__typename?: "ProductVariant" | undefined;
|
|
9
|
+
} & Pick<import("../../storefront-api-types").ProductVariant, "id" | "title" | "availableForSale" | "requiresShipping"> & {
|
|
10
|
+
compareAtPriceV2?: import("../../storefront-api-types").Maybe<{
|
|
11
|
+
__typename?: "MoneyV2" | undefined;
|
|
12
|
+
} & Pick<import("../../storefront-api-types").MoneyV2, "currencyCode" | "amount">> | undefined;
|
|
13
|
+
priceV2: {
|
|
14
|
+
__typename?: "MoneyV2" | undefined;
|
|
15
|
+
} & Pick<import("../../storefront-api-types").MoneyV2, "currencyCode" | "amount">;
|
|
16
|
+
image?: import("../../storefront-api-types").Maybe<{
|
|
17
|
+
__typename?: "Image" | undefined;
|
|
18
|
+
} & Pick<import("../../storefront-api-types").Image, "id" | "height" | "width" | "url" | "altText">> | undefined;
|
|
19
|
+
product: {
|
|
20
|
+
__typename?: "Product" | undefined;
|
|
21
|
+
} & Pick<import("../../storefront-api-types").Product, "title" | "handle">;
|
|
22
|
+
selectedOptions: ({
|
|
23
|
+
__typename?: "SelectedOption" | undefined;
|
|
24
|
+
} & Pick<import("../../storefront-api-types").SelectedOption, "name" | "value">)[];
|
|
25
|
+
};
|
|
26
|
+
}) | null>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `CartLineQuantity` component renders a `span` element (or the type of HTML element
|
|
3
|
+
* specified by the `as` prop) with the cart line's quantity. It must be a descendent of a `CartLineProvider` component.
|
|
4
|
+
*/
|
|
5
|
+
export declare function CartLineQuantity<TTag extends keyof JSX.IntrinsicElements = 'span'>(props: JSX.IntrinsicElements[TTag] & {
|
|
6
|
+
/** An HTML tag to be rendered as the base element wrapper. The default is `div`. */
|
|
7
|
+
as?: TTag;
|
|
8
|
+
}): JSX.Element;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { useCartLine } from '../CartLineProvider';
|
|
3
|
+
/**
|
|
4
|
+
* The `CartLineQuantity` component renders a `span` element (or the type of HTML element
|
|
5
|
+
* specified by the `as` prop) with the cart line's quantity. It must be a descendent of a `CartLineProvider` component.
|
|
6
|
+
*/
|
|
7
|
+
export function CartLineQuantity(props) {
|
|
8
|
+
const cartLine = useCartLine();
|
|
9
|
+
const { as, ...passthroughProps } = props;
|
|
10
|
+
const Wrapper = as ? as : 'span';
|
|
11
|
+
return React.createElement(Wrapper, { ...passthroughProps }, cartLine.quantity);
|
|
12
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { CartLineQuantity } from './CartLineQuantity.client';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { CartLineQuantity } from './CartLineQuantity.client';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ReactNode, ElementType } from 'react';
|
|
2
|
+
import { Props } from '../types';
|
|
3
|
+
declare type PropsWeControl = 'onClick' | 'adjust';
|
|
4
|
+
/**
|
|
5
|
+
* The `CartLineQuantityAdjustButton` component renders a button that adjusts the cart line's quantity when pressed.
|
|
6
|
+
* It must be a descendent of a `CartLineProvider` component.
|
|
7
|
+
*/
|
|
8
|
+
export declare function CartLineQuantityAdjustButton<TTag extends ElementType = 'button'>(props: Props<TTag, PropsWeControl> & {
|
|
9
|
+
/** Any `ReactNode` elements. */
|
|
10
|
+
children: ReactNode;
|
|
11
|
+
/** The adjustment for a cart line's quantity. Valid values: `increase` (default), `decrease`, or `remove`. */
|
|
12
|
+
adjust?: 'increase' | 'decrease' | 'remove';
|
|
13
|
+
}): JSX.Element;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { useCart } from '../CartProvider';
|
|
3
|
+
import { useCartLine } from '../CartLineProvider';
|
|
4
|
+
/**
|
|
5
|
+
* The `CartLineQuantityAdjustButton` component renders a button that adjusts the cart line's quantity when pressed.
|
|
6
|
+
* It must be a descendent of a `CartLineProvider` component.
|
|
7
|
+
*/
|
|
8
|
+
export function CartLineQuantityAdjustButton(props) {
|
|
9
|
+
const { status, linesRemove, linesUpdate } = useCart();
|
|
10
|
+
const cartLine = useCartLine();
|
|
11
|
+
const { children, adjust, ...passthroughProps } = props;
|
|
12
|
+
return (React.createElement("button", { disabled: status !== 'idle', onClick: () => {
|
|
13
|
+
if (adjust === 'remove') {
|
|
14
|
+
linesRemove([cartLine.id]);
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
const quantity = adjust === 'decrease' ? cartLine.quantity - 1 : cartLine.quantity + 1;
|
|
18
|
+
if (quantity <= 0) {
|
|
19
|
+
linesRemove([cartLine.id]);
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
linesUpdate([{ id: cartLine.id, quantity }]);
|
|
23
|
+
}, ...passthroughProps }, children));
|
|
24
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { CartLineQuantityAdjustButton } from './CartLineQuantityAdjustButton';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { CartLineQuantityAdjustButton } from './CartLineQuantityAdjustButton';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ReactNode, ElementType } from 'react';
|
|
2
|
+
import { Props } from '../types';
|
|
3
|
+
export interface CartLinesProps {
|
|
4
|
+
/** A `ReactNode` element. Valid values: `ul` or `undefined`. If `ul`, then each child will
|
|
5
|
+
* be wrapped with a `li` element.
|
|
6
|
+
*/
|
|
7
|
+
as?: 'ul';
|
|
8
|
+
/** A `ReactNode` element */
|
|
9
|
+
children: ReactNode;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* The `CartLines` component iterates over each cart line and renders its `children` within
|
|
13
|
+
* a `CartLineProvider` for each cart line.
|
|
14
|
+
*/
|
|
15
|
+
export declare function CartLines<TTag extends ElementType>(props: Props<TTag> & CartLinesProps): JSX.Element;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React, { Fragment } from 'react';
|
|
2
|
+
import { useCart } from '../CartProvider';
|
|
3
|
+
import { CartLineProvider } from '../CartLineProvider';
|
|
4
|
+
/**
|
|
5
|
+
* The `CartLines` component iterates over each cart line and renders its `children` within
|
|
6
|
+
* a `CartLineProvider` for each cart line.
|
|
7
|
+
*/
|
|
8
|
+
export function CartLines(props) {
|
|
9
|
+
const { lines } = useCart();
|
|
10
|
+
const { as, children, ...passthroughProps } = props;
|
|
11
|
+
const Wrapper = as !== null && as !== void 0 ? as : Fragment;
|
|
12
|
+
const ChildWrapper = Wrapper === 'ul' ? 'li' : Fragment;
|
|
13
|
+
return (React.createElement(Wrapper, { ...passthroughProps }, lines.map((line) => {
|
|
14
|
+
return (React.createElement(ChildWrapper, { key: line.id },
|
|
15
|
+
React.createElement(CartLineProvider, { line: line }, children)));
|
|
16
|
+
})));
|
|
17
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { CartLines } from './CartLines';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { CartLines } from './CartLines';
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { CartFragmentFragment } from './graphql/CartFragment';
|
|
3
|
+
/**
|
|
4
|
+
* The `CartProvider` component creates a context for using a cart. It creates a cart object and callbacks
|
|
5
|
+
* that can be accessed by any descendent component using the `useCart` hook and related hooks. It also carries out
|
|
6
|
+
* any callback props when a relevant action is performed. For example, if a `onLineAdd` callback is provided,
|
|
7
|
+
* then the callback will be called when a new line item is successfully added to the cart.
|
|
8
|
+
*
|
|
9
|
+
* The `CartProvider` component must be a descendent of the `ShopifyProvider` component.
|
|
10
|
+
* You must use this component if you want to use the `useCart` hook or related hooks, or if you would like to use the `AddToCartButton` component.
|
|
11
|
+
*/
|
|
12
|
+
export declare function CartProvider({ children, numCartLines, onCreate, onLineAdd, onLineRemove, onLineUpdate, onNoteUpdate, onBuyerIdentityUpdate, onAttributesUpdate, onDiscountCodesUpdate, data: cart, }: {
|
|
13
|
+
/** Any `ReactNode` elements. */
|
|
14
|
+
children: React.ReactNode;
|
|
15
|
+
numCartLines?: number;
|
|
16
|
+
/** A callback that is invoked when the process to create a cart begins, but before the cart is created in the Storefront API. */
|
|
17
|
+
onCreate?: () => void;
|
|
18
|
+
/** 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. */
|
|
19
|
+
onLineAdd?: () => void;
|
|
20
|
+
/** 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. */
|
|
21
|
+
onLineRemove?: () => void;
|
|
22
|
+
/** 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. */
|
|
23
|
+
onLineUpdate?: () => void;
|
|
24
|
+
/** 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. */
|
|
25
|
+
onNoteUpdate?: () => void;
|
|
26
|
+
/** 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. */
|
|
27
|
+
onBuyerIdentityUpdate?: () => void;
|
|
28
|
+
/** A callback that is invoked when the process to update the cart attributes begins, but before the attributes are updated in the Storefront API. */
|
|
29
|
+
onAttributesUpdate?: () => void;
|
|
30
|
+
/** 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. */
|
|
31
|
+
onDiscountCodesUpdate?: () => void;
|
|
32
|
+
/**
|
|
33
|
+
* A cart object from the Storefront API to populate the initial state of the provider.
|
|
34
|
+
*/
|
|
35
|
+
data?: CartFragmentFragment;
|
|
36
|
+
}): JSX.Element;
|