@shopify/hydrogen 0.0.0-experimental-20220526194818
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 +1643 -0
- package/README.md +29 -0
- package/client.d.ts +1 -0
- package/client.js +1 -0
- package/config.d.ts +1 -0
- package/config.js +1 -0
- package/dist/esnext/FileSessionStorage.d.ts +1 -0
- package/dist/esnext/FileSessionStorage.js +1 -0
- package/dist/esnext/client.d.ts +16 -0
- package/dist/esnext/client.js +16 -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 +9 -0
- package/dist/esnext/components/CartLineImage/CartLineImage.client.js +11 -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 +41 -0
- package/dist/esnext/components/CartProvider/CartProvider.client.js +523 -0
- package/dist/esnext/components/CartProvider/cart-queries.d.ts +10 -0
- package/dist/esnext/components/CartProvider/cart-queries.js +191 -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.client.d.ts +15 -0
- package/dist/esnext/components/CartProvider/hooks.client.js +62 -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 +102 -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/DevTools.client.d.ts +1 -0
- package/dist/esnext/components/DevTools.client.js +129 -0
- package/dist/esnext/components/ExternalVideo/ExternalVideo.d.ts +21 -0
- package/dist/esnext/components/ExternalVideo/ExternalVideo.js +14 -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 +84 -0
- package/dist/esnext/components/Image/Image.js +59 -0
- package/dist/esnext/components/Image/index.d.ts +2 -0
- package/dist/esnext/components/Image/index.js +1 -0
- package/dist/esnext/components/Link/Link.client.d.ts +23 -0
- package/dist/esnext/components/Link/Link.client.js +135 -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 +5 -0
- package/dist/esnext/components/LocalizationProvider/LocalizationContext.client.d.ts +6 -0
- package/dist/esnext/components/LocalizationProvider/LocalizationContext.client.js +2 -0
- package/dist/esnext/components/LocalizationProvider/LocalizationProvider.server.d.ts +33 -0
- package/dist/esnext/components/LocalizationProvider/LocalizationProvider.server.js +44 -0
- package/dist/esnext/components/LocalizationProvider/index.d.ts +2 -0
- package/dist/esnext/components/LocalizationProvider/index.js +2 -0
- package/dist/esnext/components/MediaFile/MediaFile.d.ts +19 -0
- package/dist/esnext/components/MediaFile/MediaFile.js +31 -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 +21 -0
- package/dist/esnext/components/Metafield/Metafield.client.js +68 -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/ModelViewer.client.d.ts +128 -0
- package/dist/esnext/components/ModelViewer/ModelViewer.client.js +105 -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 +25 -0
- package/dist/esnext/components/Money/Money.client.js +39 -0
- package/dist/esnext/components/Money/index.d.ts +1 -0
- package/dist/esnext/components/Money/index.js +1 -0
- package/dist/esnext/components/ProductPrice/ProductPrice.client.d.ts +15 -0
- package/dist/esnext/components/ProductPrice/ProductPrice.client.js +56 -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 +24 -0
- package/dist/esnext/components/ProductProvider/ProductProvider.client.js +34 -0
- package/dist/esnext/components/ProductProvider/context.d.ts +29 -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/Seo/CollectionSeo.client.d.ts +3 -0
- package/dist/esnext/components/Seo/CollectionSeo.client.js +15 -0
- package/dist/esnext/components/Seo/DefaultPageSeo.client.d.ts +3 -0
- package/dist/esnext/components/Seo/DefaultPageSeo.client.js +18 -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 +3 -0
- package/dist/esnext/components/Seo/ImageSeo.client.js +10 -0
- package/dist/esnext/components/Seo/NoIndexSeo.client.d.ts +3 -0
- package/dist/esnext/components/Seo/NoIndexSeo.client.js +10 -0
- package/dist/esnext/components/Seo/PageSeo.client.d.ts +3 -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 +63 -0
- package/dist/esnext/components/Seo/Seo.client.d.ts +30 -0
- package/dist/esnext/components/Seo/Seo.client.js +31 -0
- package/dist/esnext/components/Seo/TitleSeo.client.d.ts +3 -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/seo-types.d.ts +17 -0
- package/dist/esnext/components/Seo/seo-types.js +1 -0
- package/dist/esnext/components/ShopPayButton/ShopPayButton.client.d.ts +38 -0
- package/dist/esnext/components/ShopPayButton/ShopPayButton.client.js +52 -0
- package/dist/esnext/components/ShopPayButton/index.d.ts +1 -0
- package/dist/esnext/components/ShopPayButton/index.js +1 -0
- package/dist/esnext/components/Video/Video.d.ts +14 -0
- package/dist/esnext/components/Video/Video.js +24 -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 +28 -0
- package/dist/esnext/components/index.js +26 -0
- package/dist/esnext/components/types.d.ts +71 -0
- package/dist/esnext/components/types.js +10 -0
- package/dist/esnext/config.d.ts +3 -0
- package/dist/esnext/config.js +1 -0
- package/dist/esnext/constants.d.ts +7 -0
- package/dist/esnext/constants.js +7 -0
- package/dist/esnext/entry-client.d.ts +3 -0
- package/dist/esnext/entry-client.js +73 -0
- package/dist/esnext/entry-server.d.ts +35 -0
- package/dist/esnext/entry-server.js +529 -0
- package/dist/esnext/foundation/Analytics/Analytics.client.d.ts +3 -0
- package/dist/esnext/foundation/Analytics/Analytics.client.js +28 -0
- package/dist/esnext/foundation/Analytics/Analytics.server.d.ts +1 -0
- package/dist/esnext/foundation/Analytics/Analytics.server.js +40 -0
- package/dist/esnext/foundation/Analytics/ClientAnalytics.d.ts +25 -0
- package/dist/esnext/foundation/Analytics/ClientAnalytics.js +97 -0
- package/dist/esnext/foundation/Analytics/ServerAnalyticsRoute.server.d.ts +2 -0
- package/dist/esnext/foundation/Analytics/ServerAnalyticsRoute.server.js +33 -0
- package/dist/esnext/foundation/Analytics/connectors/PerformanceMetrics/PerformanceMetrics.client.d.ts +7 -0
- package/dist/esnext/foundation/Analytics/connectors/PerformanceMetrics/PerformanceMetrics.client.js +64 -0
- package/dist/esnext/foundation/Analytics/connectors/PerformanceMetrics/PerformanceMetrics.server.d.ts +1 -0
- package/dist/esnext/foundation/Analytics/connectors/PerformanceMetrics/PerformanceMetrics.server.js +24 -0
- package/dist/esnext/foundation/Analytics/connectors/PerformanceMetrics/PerformanceMetricsDebug.client.d.ts +1 -0
- package/dist/esnext/foundation/Analytics/connectors/PerformanceMetrics/PerformanceMetricsDebug.client.js +23 -0
- package/dist/esnext/foundation/Analytics/const.d.ts +9 -0
- package/dist/esnext/foundation/Analytics/const.js +9 -0
- package/dist/esnext/foundation/Analytics/hook.d.ts +1 -0
- package/dist/esnext/foundation/Analytics/hook.js +7 -0
- package/dist/esnext/foundation/Analytics/index.d.ts +2 -0
- package/dist/esnext/foundation/Analytics/index.js +2 -0
- package/dist/esnext/foundation/Analytics/types.d.ts +5 -0
- package/dist/esnext/foundation/Analytics/types.js +1 -0
- package/dist/esnext/foundation/Analytics/utils.d.ts +1 -0
- package/dist/esnext/foundation/Analytics/utils.js +8 -0
- package/dist/esnext/foundation/AnalyticsErrorBoundary.client.d.ts +4 -0
- package/dist/esnext/foundation/AnalyticsErrorBoundary.client.js +8 -0
- package/dist/esnext/foundation/Cookie/Cookie.d.ts +48 -0
- package/dist/esnext/foundation/Cookie/Cookie.js +67 -0
- package/dist/esnext/foundation/CookieSessionStorage/CookieSessionStorage.d.ts +5 -0
- package/dist/esnext/foundation/CookieSessionStorage/CookieSessionStorage.js +31 -0
- package/dist/esnext/foundation/FileRoutes/FileRoutes.server.d.ts +22 -0
- package/dist/esnext/foundation/FileRoutes/FileRoutes.server.js +74 -0
- package/dist/esnext/foundation/FileSessionStorage/FileSessionStorage.d.ts +6 -0
- package/dist/esnext/foundation/FileSessionStorage/FileSessionStorage.js +149 -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/MemorySessionStorage/MemorySessionStorage.d.ts +5 -0
- package/dist/esnext/foundation/MemorySessionStorage/MemorySessionStorage.js +53 -0
- package/dist/esnext/foundation/Redirect/Redirect.client.d.ts +5 -0
- package/dist/esnext/foundation/Redirect/Redirect.client.js +15 -0
- package/dist/esnext/foundation/Route/Route.server.d.ts +12 -0
- package/dist/esnext/foundation/Route/Route.server.js +28 -0
- package/dist/esnext/foundation/Router/BrowserRouter.client.d.ts +13 -0
- package/dist/esnext/foundation/Router/BrowserRouter.client.js +130 -0
- package/dist/esnext/foundation/Router/Router.server.d.ts +10 -0
- package/dist/esnext/foundation/Router/Router.server.js +8 -0
- package/dist/esnext/foundation/ServerPropsProvider/ServerPropsProvider.d.ts +40 -0
- package/dist/esnext/foundation/ServerPropsProvider/ServerPropsProvider.js +67 -0
- package/dist/esnext/foundation/ServerPropsProvider/index.d.ts +2 -0
- package/dist/esnext/foundation/ServerPropsProvider/index.js +1 -0
- package/dist/esnext/foundation/ServerRequestProvider/ServerRequestProvider.d.ts +23 -0
- package/dist/esnext/foundation/ServerRequestProvider/ServerRequestProvider.js +128 -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 +30 -0
- package/dist/esnext/foundation/ServerStateProvider/ServerStateProvider.js +59 -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 +16 -0
- package/dist/esnext/foundation/ShopifyProvider/ShopifyProvider.server.js +58 -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 +13 -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/fetchSync/client/fetchSync.d.ts +10 -0
- package/dist/esnext/foundation/fetchSync/client/fetchSync.js +28 -0
- package/dist/esnext/foundation/fetchSync/server/fetchSync.d.ts +8 -0
- package/dist/esnext/foundation/fetchSync/server/fetchSync.js +29 -0
- package/dist/esnext/foundation/fetchSync/types.d.ts +5 -0
- package/dist/esnext/foundation/fetchSync/types.js +1 -0
- package/dist/esnext/foundation/index.d.ts +3 -0
- package/dist/esnext/foundation/index.js +3 -0
- package/dist/esnext/foundation/session/session.d.ts +27 -0
- package/dist/esnext/foundation/session/session.js +37 -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 +36 -0
- package/dist/esnext/foundation/useQuery/hooks.js +97 -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/useServerProps/index.d.ts +1 -0
- package/dist/esnext/foundation/useServerProps/index.js +1 -0
- package/dist/esnext/foundation/useServerProps/use-server-props.d.ts +21 -0
- package/dist/esnext/foundation/useServerProps/use-server-props.js +35 -0
- package/dist/esnext/foundation/useSession/useSession.d.ts +2 -0
- package/dist/esnext/foundation/useSession/useSession.js +8 -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 +6 -0
- package/dist/esnext/foundation/useShop/use-shop.js +14 -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 +28 -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 +86 -0
- package/dist/esnext/framework/Hydration/ServerComponentRequest.server.d.ts +58 -0
- package/dist/esnext/framework/Hydration/ServerComponentRequest.server.js +146 -0
- package/dist/esnext/framework/Hydration/ServerComponentResponse.server.d.ts +26 -0
- package/dist/esnext/framework/Hydration/ServerComponentResponse.server.js +42 -0
- package/dist/esnext/framework/Hydration/rsc.d.ts +8 -0
- package/dist/esnext/framework/Hydration/rsc.js +100 -0
- package/dist/esnext/framework/cache/in-memory.d.ts +12 -0
- package/dist/esnext/framework/cache/in-memory.js +52 -0
- package/dist/esnext/framework/cache-sub-request.d.ts +17 -0
- package/dist/esnext/framework/cache-sub-request.js +64 -0
- package/dist/esnext/framework/cache.d.ts +17 -0
- package/dist/esnext/framework/cache.js +127 -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 +21 -0
- package/dist/esnext/framework/middleware.js +98 -0
- package/dist/esnext/framework/plugin.d.ts +4 -0
- package/dist/esnext/framework/plugin.js +28 -0
- package/dist/esnext/framework/plugins/vite-plugin-client-imports.d.ts +2 -0
- package/dist/esnext/framework/plugins/vite-plugin-client-imports.js +25 -0
- package/dist/esnext/framework/plugins/vite-plugin-css-modules-rsc.d.ts +2 -0
- package/dist/esnext/framework/plugins/vite-plugin-css-modules-rsc.js +98 -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 +35 -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 +96 -0
- package/dist/esnext/framework/plugins/vite-plugin-hydrogen-middleware.d.ts +11 -0
- package/dist/esnext/framework/plugins/vite-plugin-hydrogen-middleware.js +110 -0
- package/dist/esnext/framework/plugins/vite-plugin-hydrogen-rsc.d.ts +1 -0
- package/dist/esnext/framework/plugins/vite-plugin-hydrogen-rsc.js +35 -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 +16 -0
- package/dist/esnext/framework/runtime.d.ts +13 -0
- package/dist/esnext/framework/runtime.js +27 -0
- package/dist/esnext/hooks/index.d.ts +6 -0
- package/dist/esnext/hooks/index.js +6 -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 +7 -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.client.d.ts +8 -0
- package/dist/esnext/hooks/useLoadScript/useLoadScript.client.js +23 -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 +54 -0
- package/dist/esnext/hooks/useMoney/hooks.js +66 -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 +21 -0
- package/dist/esnext/hooks/useParsedMetafields/useParsedMetafields.js +21 -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 +52 -0
- package/dist/esnext/hooks/useProduct/useProduct.js +43 -0
- package/dist/esnext/hooks/useProductOptions/helpers.d.ts +6 -0
- package/dist/esnext/hooks/useProductOptions/helpers.js +40 -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 +42 -0
- package/dist/esnext/hooks/useProductOptions/types.js +1 -0
- package/dist/esnext/hooks/useProductOptions/useProductOptions.client.d.ts +15 -0
- package/dist/esnext/hooks/useProductOptions/useProductOptions.client.js +108 -0
- package/dist/esnext/hooks/useShopQuery/hooks.d.ts +28 -0
- package/dist/esnext/hooks/useShopQuery/hooks.js +161 -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 +27 -0
- package/dist/esnext/index.js +31 -0
- package/dist/esnext/node.d.ts +1 -0
- package/dist/esnext/node.js +1 -0
- package/dist/esnext/platforms/node.d.ts +9 -0
- package/dist/esnext/platforms/node.js +40 -0
- package/dist/esnext/platforms/worker-event.d.ts +1 -0
- package/dist/esnext/platforms/worker-event.js +3 -0
- package/dist/esnext/platforms/worker.d.ts +14 -0
- package/dist/esnext/platforms/worker.js +25 -0
- package/dist/esnext/storefront-api-types.d.ts +6405 -0
- package/dist/esnext/storefront-api-types.js +1763 -0
- package/dist/esnext/streaming.server.d.ts +24 -0
- package/dist/esnext/streaming.server.js +33 -0
- package/dist/esnext/types.d.ts +98 -0
- package/dist/esnext/types.js +1 -0
- package/dist/esnext/utilities/apiRoutes.d.ts +37 -0
- package/dist/esnext/utilities/apiRoutes.js +156 -0
- package/dist/esnext/utilities/bot-ua.d.ts +4 -0
- package/dist/esnext/utilities/bot-ua.js +61 -0
- package/dist/esnext/utilities/defer.d.ts +6 -0
- package/dist/esnext/utilities/defer.js +14 -0
- package/dist/esnext/utilities/devtools.d.ts +11 -0
- package/dist/esnext/utilities/devtools.js +11 -0
- package/dist/esnext/utilities/empty-hydrogen-config.d.ts +2 -0
- package/dist/esnext/utilities/empty-hydrogen-config.js +2 -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 +9 -0
- package/dist/esnext/utilities/fetch.js +31 -0
- package/dist/esnext/utilities/findRoutePrefix.d.ts +1 -0
- package/dist/esnext/utilities/findRoutePrefix.js +17 -0
- package/dist/esnext/utilities/flattenConnection/flattenConnection.d.ts +6 -0
- package/dist/esnext/utilities/flattenConnection/flattenConnection.js +11 -0
- package/dist/esnext/utilities/flattenConnection/index.d.ts +1 -0
- package/dist/esnext/utilities/flattenConnection/index.js +1 -0
- package/dist/esnext/utilities/graphql-tag.d.ts +1 -0
- package/dist/esnext/utilities/graphql-tag.js +6 -0
- package/dist/esnext/utilities/graphql-tracker.d.ts +17 -0
- package/dist/esnext/utilities/graphql-tracker.js +123 -0
- package/dist/esnext/utilities/hash.d.ts +2 -0
- package/dist/esnext/utilities/hash.js +7 -0
- package/dist/esnext/utilities/html-encoding.d.ts +2 -0
- package/dist/esnext/utilities/html-encoding.js +16 -0
- package/dist/esnext/utilities/image_size.d.ts +12 -0
- package/dist/esnext/utilities/image_size.js +62 -0
- package/dist/esnext/utilities/index.d.ts +12 -0
- package/dist/esnext/utilities/index.js +12 -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 +13 -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 +83 -0
- package/dist/esnext/utilities/log/log.d.ts +22 -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 +16 -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/parse.d.ts +1 -0
- package/dist/esnext/utilities/parse.js +9 -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 +6 -0
- package/dist/esnext/utilities/parseMetafieldValue/parseMetafieldValue.js +36 -0
- package/dist/esnext/utilities/storefrontApi.d.ts +4 -0
- package/dist/esnext/utilities/storefrontApi.js +22 -0
- package/dist/esnext/utilities/suspense.d.ts +12 -0
- package/dist/esnext/utilities/suspense.js +58 -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/components/Image/Image.d.ts +84 -0
- package/dist/node/components/Image/Image.js +86 -0
- package/dist/node/components/Image/index.d.ts +2 -0
- package/dist/node/components/Image/index.js +5 -0
- package/dist/node/constants.d.ts +7 -0
- package/dist/node/constants.js +10 -0
- package/dist/node/entry-server.d.ts +35 -0
- package/dist/node/entry-server.js +556 -0
- package/dist/node/foundation/Analytics/Analytics.client.d.ts +3 -0
- package/dist/node/foundation/Analytics/Analytics.client.js +32 -0
- package/dist/node/foundation/Analytics/Analytics.server.d.ts +1 -0
- package/dist/node/foundation/Analytics/Analytics.server.js +70 -0
- package/dist/node/foundation/Analytics/ClientAnalytics.d.ts +25 -0
- package/dist/node/foundation/Analytics/ClientAnalytics.js +100 -0
- package/dist/node/foundation/Analytics/ServerAnalyticsRoute.server.d.ts +2 -0
- package/dist/node/foundation/Analytics/ServerAnalyticsRoute.server.js +37 -0
- package/dist/node/foundation/Analytics/const.d.ts +9 -0
- package/dist/node/foundation/Analytics/const.js +12 -0
- package/dist/node/foundation/Analytics/hook.d.ts +1 -0
- package/dist/node/foundation/Analytics/hook.js +11 -0
- package/dist/node/foundation/Analytics/index.d.ts +2 -0
- package/dist/node/foundation/Analytics/index.js +7 -0
- package/dist/node/foundation/Analytics/types.d.ts +5 -0
- package/dist/node/foundation/Analytics/types.js +2 -0
- package/dist/node/foundation/Analytics/utils.d.ts +1 -0
- package/dist/node/foundation/Analytics/utils.js +12 -0
- package/dist/node/foundation/AnalyticsErrorBoundary.client.d.ts +4 -0
- package/dist/node/foundation/AnalyticsErrorBoundary.client.js +14 -0
- package/dist/node/foundation/Redirect/Redirect.client.d.ts +5 -0
- package/dist/node/foundation/Redirect/Redirect.client.js +18 -0
- package/dist/node/foundation/Router/BrowserRouter.client.d.ts +13 -0
- package/dist/node/foundation/Router/BrowserRouter.client.js +159 -0
- package/dist/node/foundation/ServerPropsProvider/ServerPropsProvider.d.ts +40 -0
- package/dist/node/foundation/ServerPropsProvider/ServerPropsProvider.js +92 -0
- package/dist/node/foundation/ServerPropsProvider/index.d.ts +2 -0
- package/dist/node/foundation/ServerPropsProvider/index.js +6 -0
- package/dist/node/foundation/ServerRequestProvider/ServerRequestProvider.d.ts +23 -0
- package/dist/node/foundation/ServerRequestProvider/ServerRequestProvider.js +158 -0
- package/dist/node/foundation/ServerRequestProvider/index.d.ts +1 -0
- package/dist/node/foundation/ServerRequestProvider/index.js +17 -0
- package/dist/node/foundation/ShopifyProvider/types.d.ts +13 -0
- package/dist/node/foundation/ShopifyProvider/types.js +2 -0
- package/dist/node/foundation/session/session.d.ts +27 -0
- package/dist/node/foundation/session/session.js +43 -0
- package/dist/node/foundation/ssr-interop.d.ts +29 -0
- package/dist/node/foundation/ssr-interop.js +39 -0
- package/dist/node/foundation/useNavigate/useNavigate.d.ts +13 -0
- package/dist/node/foundation/useNavigate/useNavigate.js +18 -0
- package/dist/node/foundation/useServerProps/use-server-props.d.ts +21 -0
- package/dist/node/foundation/useServerProps/use-server-props.js +40 -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 +94 -0
- package/dist/node/framework/Hydration/ServerComponentRequest.server.d.ts +58 -0
- package/dist/node/framework/Hydration/ServerComponentRequest.server.js +150 -0
- package/dist/node/framework/Hydration/ServerComponentResponse.server.d.ts +26 -0
- package/dist/node/framework/Hydration/ServerComponentResponse.server.js +49 -0
- package/dist/node/framework/Hydration/rsc.d.ts +8 -0
- package/dist/node/framework/Hydration/rsc.js +103 -0
- package/dist/node/framework/cache/in-memory.d.ts +12 -0
- package/dist/node/framework/cache/in-memory.js +56 -0
- package/dist/node/framework/cache-sub-request.d.ts +17 -0
- package/dist/node/framework/cache-sub-request.js +95 -0
- package/dist/node/framework/cache.d.ts +17 -0
- package/dist/node/framework/cache.js +135 -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 +21 -0
- package/dist/node/framework/middleware.js +125 -0
- package/dist/node/framework/plugin.d.ts +4 -0
- package/dist/node/framework/plugin.js +33 -0
- package/dist/node/framework/plugins/vite-plugin-client-imports.d.ts +2 -0
- package/dist/node/framework/plugins/vite-plugin-client-imports.js +28 -0
- package/dist/node/framework/plugins/vite-plugin-css-modules-rsc.d.ts +2 -0
- package/dist/node/framework/plugins/vite-plugin-css-modules-rsc.js +104 -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 +40 -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 +98 -0
- package/dist/node/framework/plugins/vite-plugin-hydrogen-middleware.d.ts +11 -0
- package/dist/node/framework/plugins/vite-plugin-hydrogen-middleware.js +116 -0
- package/dist/node/framework/plugins/vite-plugin-hydrogen-rsc.d.ts +1 -0
- package/dist/node/framework/plugins/vite-plugin-hydrogen-rsc.js +41 -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 +18 -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 +6405 -0
- package/dist/node/storefront-api-types.js +1766 -0
- package/dist/node/streaming.server.d.ts +24 -0
- package/dist/node/streaming.server.js +33 -0
- package/dist/node/types.d.ts +98 -0
- package/dist/node/types.js +2 -0
- package/dist/node/utilities/apiRoutes.d.ts +37 -0
- package/dist/node/utilities/apiRoutes.js +163 -0
- package/dist/node/utilities/bot-ua.d.ts +4 -0
- package/dist/node/utilities/bot-ua.js +65 -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 +9 -0
- package/dist/node/utilities/fetch.js +37 -0
- package/dist/node/utilities/findRoutePrefix.d.ts +1 -0
- package/dist/node/utilities/findRoutePrefix.js +21 -0
- package/dist/node/utilities/flattenConnection/flattenConnection.d.ts +6 -0
- package/dist/node/utilities/flattenConnection/flattenConnection.js +15 -0
- package/dist/node/utilities/flattenConnection/index.d.ts +1 -0
- package/dist/node/utilities/flattenConnection/index.js +5 -0
- package/dist/node/utilities/hash.d.ts +2 -0
- package/dist/node/utilities/hash.js +11 -0
- package/dist/node/utilities/html-encoding.d.ts +2 -0
- package/dist/node/utilities/html-encoding.js +21 -0
- package/dist/node/utilities/image_size.d.ts +12 -0
- package/dist/node/utilities/image_size.js +68 -0
- package/dist/node/utilities/index.d.ts +12 -0
- package/dist/node/utilities/index.js +34 -0
- package/dist/node/utilities/isClient/index.d.ts +1 -0
- package/dist/node/utilities/isClient/index.js +5 -0
- package/dist/node/utilities/isClient/isClient.d.ts +4 -0
- package/dist/node/utilities/isClient/isClient.js +10 -0
- package/dist/node/utilities/isServer/index.d.ts +1 -0
- package/dist/node/utilities/isServer/index.js +5 -0
- package/dist/node/utilities/isServer/isServer.d.ts +4 -0
- package/dist/node/utilities/isServer/isServer.js +11 -0
- package/dist/node/utilities/load_script.d.ts +3 -0
- package/dist/node/utilities/load_script.js +27 -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 +17 -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 +88 -0
- package/dist/node/utilities/log/log.d.ts +22 -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 +21 -0
- package/dist/node/utilities/matchPath.d.ts +10 -0
- package/dist/node/utilities/matchPath.js +58 -0
- package/dist/node/utilities/measurement.d.ts +3 -0
- package/dist/node/utilities/measurement.js +103 -0
- package/dist/node/utilities/parse.d.ts +1 -0
- package/dist/node/utilities/parse.js +13 -0
- package/dist/node/utilities/parseMetafieldValue/index.d.ts +1 -0
- package/dist/node/utilities/parseMetafieldValue/index.js +5 -0
- package/dist/node/utilities/parseMetafieldValue/parseMetafieldValue.d.ts +6 -0
- package/dist/node/utilities/parseMetafieldValue/parseMetafieldValue.js +40 -0
- package/dist/node/utilities/storefrontApi.d.ts +4 -0
- package/dist/node/utilities/storefrontApi.js +26 -0
- package/dist/node/utilities/suspense.d.ts +12 -0
- package/dist/node/utilities/suspense.js +64 -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/video_parameters.d.ts +47 -0
- package/dist/node/utilities/video_parameters.js +27 -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/middleware.d.ts +1 -0
- package/middleware.js +1 -0
- package/package.json +125 -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 +356 -0
- package/vendor/react-server-dom-vite/cjs/react-server-dom-vite-writer.browser.development.server.js +1753 -0
- package/vendor/react-server-dom-vite/cjs/react-server-dom-vite-writer.browser.production.min.server.js +46 -0
- package/vendor/react-server-dom-vite/cjs/react-server-dom-vite-writer.node.development.server.js +1716 -0
- package/vendor/react-server-dom-vite/cjs/react-server-dom-vite-writer.node.production.min.server.js +44 -0
- package/vendor/react-server-dom-vite/cjs/react-server-dom-vite.development.js +613 -0
- package/vendor/react-server-dom-vite/cjs/react-server-dom-vite.production.min.js +19 -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 +88 -0
- package/vendor/react-server-dom-vite/esm/react-server-dom-vite-plugin.js +352 -0
- package/vendor/react-server-dom-vite/esm/react-server-dom-vite-writer.browser.server.js +1745 -0
- package/vendor/react-server-dom-vite/esm/react-server-dom-vite-writer.node.server.js +1708 -0
- package/vendor/react-server-dom-vite/esm/react-server-dom-vite.js +603 -0
- package/vendor/react-server-dom-vite/index.js +7 -0
- package/vendor/react-server-dom-vite/package.json +67 -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
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React, { useMemo } from 'react';
|
|
2
|
+
import { useCart } from '../CartProvider';
|
|
3
|
+
import { ShopPayButton } from '../ShopPayButton';
|
|
4
|
+
/**
|
|
5
|
+
* The `CartShopPayButton` component renders a `ShopPayButton` for the items in the cart.
|
|
6
|
+
* It must be a descendent of a `CartProvider` component.
|
|
7
|
+
*/
|
|
8
|
+
export function CartShopPayButton({
|
|
9
|
+
/** A string of classes to apply to the `div` that wraps the `shop-pay-button` web component. */
|
|
10
|
+
className, }) {
|
|
11
|
+
const { lines } = useCart();
|
|
12
|
+
const idsAndQuantities = useMemo(() => {
|
|
13
|
+
return lines.map((line) => ({
|
|
14
|
+
id: line.merchandise.id,
|
|
15
|
+
quantity: line.quantity,
|
|
16
|
+
}));
|
|
17
|
+
}, [lines]);
|
|
18
|
+
return (React.createElement(ShopPayButton, { className: className, variantIdsAndQuantities: idsAndQuantities }));
|
|
19
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { CartShopPayButton } from './CartShopPayButton.client';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { CartShopPayButton } from './CartShopPayButton.client';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function DevTools(): JSX.Element | null;
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import React, { useEffect, useState, useCallback } from 'react';
|
|
2
|
+
export default function DevTools() {
|
|
3
|
+
const [warnings, setWarnings] = useState(null);
|
|
4
|
+
const [open, setOpen] = useState(false);
|
|
5
|
+
const [activePanel, setActivePanel] = useState('warnings');
|
|
6
|
+
const toggleOpen = useCallback(() => setOpen((state) => !state), []);
|
|
7
|
+
const [hasMounted, setHasMounted] = React.useState(false);
|
|
8
|
+
useEffect(() => {
|
|
9
|
+
setHasMounted(true);
|
|
10
|
+
if (import.meta.hot) {
|
|
11
|
+
import.meta.hot.on('hydrogen', ({ type, data }) => {
|
|
12
|
+
if (type === 'warn') {
|
|
13
|
+
setWarnings((state) => [...(state || []), data]);
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
}, []);
|
|
18
|
+
const perfData = performance.getEntriesByType('navigation');
|
|
19
|
+
const entry = perfData[0];
|
|
20
|
+
let activePanelContent = null;
|
|
21
|
+
switch (activePanel) {
|
|
22
|
+
case 'warnings': {
|
|
23
|
+
const warningsMarkup = warnings
|
|
24
|
+
? warnings.map((war, i) => React.createElement("li", { key: war + i }, war)) // eslint-disable-line react/no-array-index-key
|
|
25
|
+
: null;
|
|
26
|
+
activePanelContent = (React.createElement(React.Fragment, null,
|
|
27
|
+
React.createElement(PanelHeading, null, "Overfetched graphQL fields"),
|
|
28
|
+
React.createElement("ul", { style: {
|
|
29
|
+
fontFamily: 'monospace',
|
|
30
|
+
paddingTop: '1em',
|
|
31
|
+
fontSize: '0.9em',
|
|
32
|
+
} }, warningsMarkup)));
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
35
|
+
case 'network':
|
|
36
|
+
activePanelContent = (React.createElement(React.Fragment, null,
|
|
37
|
+
React.createElement(PanelHeading, null, "Metrics"),
|
|
38
|
+
React.createElement("ul", { style: {
|
|
39
|
+
fontFamily: 'monospace',
|
|
40
|
+
paddingTop: '1em',
|
|
41
|
+
fontSize: '0.9em',
|
|
42
|
+
} }, Object.entries(entry.toJSON())
|
|
43
|
+
.filter(([key]) => ['duration', 'domInteractive'].includes(key))
|
|
44
|
+
.map(([key, value]) => (React.createElement("li", { key: key },
|
|
45
|
+
React.createElement("strong", null, key),
|
|
46
|
+
" ",
|
|
47
|
+
(value / 1000).toFixed(2),
|
|
48
|
+
"s"))))));
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
51
|
+
const buttonText = (React.createElement("svg", { style: {
|
|
52
|
+
height: '3em',
|
|
53
|
+
width: '3em',
|
|
54
|
+
}, width: "131", height: "130", viewBox: "0 0 131 130", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
|
|
55
|
+
React.createElement("path", { d: "M64.9548 106.281L27.1377 86.1894L40.0714 79.3723L54.6329 87.1049L66.851 80.6638L52.2895 72.9313L65.2231 66.0979L103.04 86.1894L90.1065 93.0064L76.35 85.6989L64.114 92.1563L77.8884 99.4638L64.9548 106.281Z", fill: "white" }),
|
|
56
|
+
React.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M65.2247 25L105.178 46.2267L90.105 54.1716L76.3488 46.8642L66.2525 52.1924L80.028 59.5005L64.9532 67.446L25 46.2196L40.0734 38.2748L54.6349 46.0073L64.713 40.6944L50.1533 32.9628L65.2247 25ZM54.4262 32.9673L68.9896 40.7008L54.6315 48.27L40.0699 40.5374L29.276 46.2267L64.9569 65.1833L75.7495 59.4947L61.9761 52.1878L76.3518 44.6012L90.1087 51.9088L100.902 46.2196L65.2221 27.2634L54.4262 32.9673Z", fill: "white" })));
|
|
57
|
+
if (import.meta.env.DEV && hasMounted) {
|
|
58
|
+
return (React.createElement("div", { style: {
|
|
59
|
+
position: 'fixed',
|
|
60
|
+
right: open ? 0 : '2em',
|
|
61
|
+
left: open ? 0 : '2em',
|
|
62
|
+
bottom: open ? 0 : '-2em',
|
|
63
|
+
borderRadius: open ? 0 : '2em',
|
|
64
|
+
top: '100%',
|
|
65
|
+
zIndex: 10000,
|
|
66
|
+
display: 'flex',
|
|
67
|
+
flexDirection: 'column',
|
|
68
|
+
overflow: 'hidden',
|
|
69
|
+
height: open ? '75%' : '4em',
|
|
70
|
+
transform: open ? 'translateY(-100%)' : 'translateY(-5em)',
|
|
71
|
+
} },
|
|
72
|
+
React.createElement("button", { style: {
|
|
73
|
+
position: 'absolute',
|
|
74
|
+
top: '0.35em',
|
|
75
|
+
right: '1em',
|
|
76
|
+
overflow: 'hidden',
|
|
77
|
+
zIndex: 10,
|
|
78
|
+
}, onClick: toggleOpen }, buttonText),
|
|
79
|
+
React.createElement("div", { style: {
|
|
80
|
+
overflow: 'scroll',
|
|
81
|
+
color: 'white',
|
|
82
|
+
height: '100%',
|
|
83
|
+
padding: '2em',
|
|
84
|
+
background: 'rgba(0, 0, 0, 0.95)',
|
|
85
|
+
borderRadius: open ? 0 : '2em',
|
|
86
|
+
} },
|
|
87
|
+
React.createElement("div", { style: {
|
|
88
|
+
position: 'absolute',
|
|
89
|
+
padding: '1.2em 2em',
|
|
90
|
+
top: 0,
|
|
91
|
+
left: '-0.5em',
|
|
92
|
+
right: 0,
|
|
93
|
+
background: 'rgba(0, 0, 0, 0.95)',
|
|
94
|
+
borderRadius: open ? 0 : '2em',
|
|
95
|
+
display: 'flex',
|
|
96
|
+
alignItems: 'center',
|
|
97
|
+
} },
|
|
98
|
+
warnings && warnings.length > 0 && (React.createElement("button", { onClick: () => {
|
|
99
|
+
setOpen(true);
|
|
100
|
+
setActivePanel('warnings');
|
|
101
|
+
}, style: {
|
|
102
|
+
margin: '0 0.5em',
|
|
103
|
+
textDecoration: open && activePanel === 'warnings' ? 'underline' : 'none',
|
|
104
|
+
} },
|
|
105
|
+
"Warnings",
|
|
106
|
+
' ',
|
|
107
|
+
warnings && (React.createElement("strong", { style: {
|
|
108
|
+
borderRadius: '2em',
|
|
109
|
+
padding: '.25em 0.5em',
|
|
110
|
+
background: 'white',
|
|
111
|
+
margin: '0 0.25em',
|
|
112
|
+
color: 'black',
|
|
113
|
+
textAlign: 'center',
|
|
114
|
+
} }, warnings.length)))),
|
|
115
|
+
React.createElement("button", { onClick: () => {
|
|
116
|
+
setOpen(true);
|
|
117
|
+
setActivePanel('network');
|
|
118
|
+
}, disabled: activePanel === 'network', style: {
|
|
119
|
+
margin: '0 0.5em',
|
|
120
|
+
textDecoration: open && activePanel === 'network' ? 'underline' : 'none',
|
|
121
|
+
} }, "Network")),
|
|
122
|
+
React.createElement("div", { style: { paddingTop: '2em' } }, activePanelContent))));
|
|
123
|
+
}
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
126
|
+
const PanelHeading = ({ children }) => (React.createElement("h1", { style: {
|
|
127
|
+
paddingTop: '1em',
|
|
128
|
+
fontWeight: 'bold',
|
|
129
|
+
} }, children));
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { YouTube, Vimeo } from '../../utilities';
|
|
2
|
+
import type { ExternalVideo as ExternalVideoType } from '../../storefront-api-types';
|
|
3
|
+
import type { PartialDeep } from 'type-fest';
|
|
4
|
+
interface ExternalVideoProps {
|
|
5
|
+
/**
|
|
6
|
+
* An object with fields that correspond to the Storefront API's [ExternalVideo object](https://shopify.dev/api/storefront/reference/products/externalvideo).
|
|
7
|
+
*/
|
|
8
|
+
data: PartialDeep<ExternalVideoType>;
|
|
9
|
+
/** An object containing the options available for either
|
|
10
|
+
* [YouTube](https://developers.google.com/youtube/player_parameters#Parameters) or
|
|
11
|
+
* [Vimeo](https://vimeo.zendesk.com/hc/en-us/articles/360001494447-Using-Player-Parameters).
|
|
12
|
+
*/
|
|
13
|
+
options?: YouTube | Vimeo;
|
|
14
|
+
}
|
|
15
|
+
declare type PropsWeControl = 'src';
|
|
16
|
+
/**
|
|
17
|
+
* The `ExternalVideo` component renders an embedded video for the Storefront
|
|
18
|
+
* API's [ExternalVideo object](https://shopify.dev/api/storefront/reference/products/externalvideo).
|
|
19
|
+
*/
|
|
20
|
+
export declare function ExternalVideo(props: Omit<JSX.IntrinsicElements['iframe'], PropsWeControl> & ExternalVideoProps): JSX.Element;
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { useEmbeddedVideoUrl } from '../../utilities';
|
|
3
|
+
/**
|
|
4
|
+
* The `ExternalVideo` component renders an embedded video for the Storefront
|
|
5
|
+
* API's [ExternalVideo object](https://shopify.dev/api/storefront/reference/products/externalvideo).
|
|
6
|
+
*/
|
|
7
|
+
export function ExternalVideo(props) {
|
|
8
|
+
const { data, options, id = data.id, frameBorder = '0', allow = 'accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture', allowFullScreen = true, ...passthroughProps } = props;
|
|
9
|
+
if (!data.embedUrl) {
|
|
10
|
+
throw new Error(`<ExternalVideo/> requires the 'embedUrl' property`);
|
|
11
|
+
}
|
|
12
|
+
const url = useEmbeddedVideoUrl(data.embedUrl, options);
|
|
13
|
+
return (React.createElement("iframe", { ...passthroughProps, id: id !== null && id !== void 0 ? id : data.embedUrl, frameBorder: frameBorder, allow: allow, allowFullScreen: allowFullScreen, src: url }));
|
|
14
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { ExternalVideo } from './ExternalVideo';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { ExternalVideo } from './ExternalVideo';
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { Image as ImageType } from '../../storefront-api-types';
|
|
3
|
+
import type { PartialDeep, Simplify, SetRequired } from 'type-fest';
|
|
4
|
+
declare type HtmlImageProps = React.ImgHTMLAttributes<HTMLImageElement>;
|
|
5
|
+
declare type ImageProps<GenericLoaderOpts> = Simplify<ShopifyImageProps | ExternalImageProps<GenericLoaderOpts>>;
|
|
6
|
+
export declare function Image<GenericLoaderOpts>(props: ImageProps<GenericLoaderOpts>): JSX.Element;
|
|
7
|
+
export declare type ShopifyLoaderOptions = {
|
|
8
|
+
crop?: 'top' | 'bottom' | 'left' | 'right' | 'center';
|
|
9
|
+
scale?: 2 | 3;
|
|
10
|
+
width?: HtmlImageProps['width'] | ImageType['width'];
|
|
11
|
+
height?: HtmlImageProps['height'] | ImageType['height'];
|
|
12
|
+
};
|
|
13
|
+
export declare type ShopifyLoaderParams = Simplify<ShopifyLoaderOptions & {
|
|
14
|
+
src: ImageType['url'];
|
|
15
|
+
}>;
|
|
16
|
+
export declare type ShopifyImageProps = Omit<HtmlImageProps, 'src'> & {
|
|
17
|
+
/** An object with fields that correspond to the Storefront API's
|
|
18
|
+
* [Image object](https://shopify.dev/api/storefront/reference/common-objects/image).
|
|
19
|
+
* The `data` prop is required if `src` isn't used, but both props shouldn't be used
|
|
20
|
+
* at the same time. If both `src` and `data` are passed, then `data` takes priority.
|
|
21
|
+
*/
|
|
22
|
+
data: PartialDeep<ImageType>;
|
|
23
|
+
/** A custom function that generates the image URL. Parameters passed in
|
|
24
|
+
* are either `ShopifyLoaderParams` if using the `data` prop, or the
|
|
25
|
+
* `LoaderOptions` object that you pass to `loaderOptions`.
|
|
26
|
+
*/
|
|
27
|
+
loader?: (params: ShopifyLoaderParams) => string;
|
|
28
|
+
/** An object of `loader` function options. For example, if the `loader` function
|
|
29
|
+
* requires a `scale` option, then the value can be a property of the
|
|
30
|
+
* `loaderOptions` object (for example, `{scale: 2}`). When the `data` prop
|
|
31
|
+
* is used, the object shape will be `ShopifyLoaderOptions`. When the `src`
|
|
32
|
+
* prop is used, the data shape is whatever you define it to be, and this shape
|
|
33
|
+
* will be passed to `loader`.
|
|
34
|
+
*/
|
|
35
|
+
loaderOptions?: ShopifyLoaderOptions;
|
|
36
|
+
/**
|
|
37
|
+
* 'src' shouldn't be passed when 'data' is used.
|
|
38
|
+
*/
|
|
39
|
+
src?: never;
|
|
40
|
+
};
|
|
41
|
+
declare type LoaderProps<GenericLoaderOpts> = {
|
|
42
|
+
/** A URL string. This string can be an absolute path or a relative path depending
|
|
43
|
+
* on the `loader`. The `src` prop is required if `data` isn't used, but both
|
|
44
|
+
* props shouldn't be used at the same time. If both `src` and `data` are passed,
|
|
45
|
+
* then `data` takes priority.
|
|
46
|
+
*/
|
|
47
|
+
src: HtmlImageProps['src'];
|
|
48
|
+
/** The integer or string value for the width of the image. This is a required prop
|
|
49
|
+
* when `src` is present.
|
|
50
|
+
*/
|
|
51
|
+
width: HtmlImageProps['width'];
|
|
52
|
+
/** The integer or string value for the height of the image. This is a required prop
|
|
53
|
+
* when `src` is present.
|
|
54
|
+
*/
|
|
55
|
+
height: HtmlImageProps['height'];
|
|
56
|
+
/** An object of `loader` function options. For example, if the `loader` function
|
|
57
|
+
* requires a `scale` option, then the value can be a property of the
|
|
58
|
+
* `loaderOptions` object (for example, `{scale: 2}`). When the `data` prop
|
|
59
|
+
* is used, the object shape will be `ShopifyLoaderOptions`. When the `src`
|
|
60
|
+
* prop is used, the data shape is whatever you define it to be, and this shape
|
|
61
|
+
* will be passed to `loader`.
|
|
62
|
+
*/
|
|
63
|
+
loaderOptions?: GenericLoaderOpts;
|
|
64
|
+
};
|
|
65
|
+
declare type ExternalImageProps<GenericLoaderOpts> = SetRequired<HtmlImageProps, 'src' | 'width' | 'height'> & {
|
|
66
|
+
/** A custom function that generates the image URL. Parameters passed in
|
|
67
|
+
* are either `ShopifyLoaderParams` if using the `data` prop, or the
|
|
68
|
+
* `LoaderOptions` object that you pass to `loaderOptions`.
|
|
69
|
+
*/
|
|
70
|
+
loader?: (params: LoaderProps<GenericLoaderOpts>) => string;
|
|
71
|
+
/** An object of `loader` function options. For example, if the `loader` function
|
|
72
|
+
* requires a `scale` option, then the value can be a property of the
|
|
73
|
+
* `loaderOptions` object (for example, `{scale: 2}`). When the `data` prop
|
|
74
|
+
* is used, the object shape will be `ShopifyLoaderOptions`. When the `src`
|
|
75
|
+
* prop is used, the data shape is whatever you define it to be, and this shape
|
|
76
|
+
* will be passed to `loader`.
|
|
77
|
+
*/
|
|
78
|
+
loaderOptions?: GenericLoaderOpts;
|
|
79
|
+
/**
|
|
80
|
+
* 'data' shouldn't be passed when 'src' is used.
|
|
81
|
+
*/
|
|
82
|
+
data?: never;
|
|
83
|
+
};
|
|
84
|
+
export {};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { getShopifyImageDimensions, shopifyImageLoader } from '../../utilities';
|
|
3
|
+
export function Image(props) {
|
|
4
|
+
if (!props.data && !props.src) {
|
|
5
|
+
throw new Error(`<Image/>: requires either a 'data' or 'src' prop.`);
|
|
6
|
+
}
|
|
7
|
+
if (props.data && props.src) {
|
|
8
|
+
console.warn(`<Image/>: using both 'data' and 'src' props is not supported; using the 'data' prop by default`);
|
|
9
|
+
}
|
|
10
|
+
if (props.data) {
|
|
11
|
+
return React.createElement(ShopifyImage, { ...props });
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
return React.createElement(ExternalImage, { ...props });
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function ShopifyImage({ data, width, height, loading, loader = shopifyImageLoader, loaderOptions, ...rest }) {
|
|
18
|
+
var _a, _b, _c;
|
|
19
|
+
if (!data.url) {
|
|
20
|
+
throw new Error(`<Image/>: the 'data' prop requires the 'url' property`);
|
|
21
|
+
}
|
|
22
|
+
if (!data.altText && !rest.alt) {
|
|
23
|
+
console.warn(`<Image/>: the 'data' prop should have the 'altText' property, or the 'alt' prop, and one of them should not be empty. ${data.id ? `Image ID: ${data.id}` : ''}`);
|
|
24
|
+
}
|
|
25
|
+
const { width: finalWidth, height: finalHeight } = getShopifyImageDimensions(data, loaderOptions);
|
|
26
|
+
if (!finalWidth || !finalHeight) {
|
|
27
|
+
console.warn(`<Image/>: the 'data' prop requires either 'width' or 'data.width', and 'height' or 'data.height' properties`);
|
|
28
|
+
}
|
|
29
|
+
let finalSrc = data.url;
|
|
30
|
+
if (loader) {
|
|
31
|
+
finalSrc = loader({
|
|
32
|
+
...loaderOptions,
|
|
33
|
+
src: data.url,
|
|
34
|
+
width: finalWidth,
|
|
35
|
+
height: finalHeight,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
/* eslint-disable hydrogen/prefer-image-component */
|
|
39
|
+
return (React.createElement("img", { id: (_a = data.id) !== null && _a !== void 0 ? _a : '', alt: (_c = (_b = data.altText) !== null && _b !== void 0 ? _b : rest.alt) !== null && _c !== void 0 ? _c : '', loading: loading !== null && loading !== void 0 ? loading : 'lazy', ...rest, src: finalSrc, width: finalWidth !== null && finalWidth !== void 0 ? finalWidth : undefined, height: finalHeight !== null && finalHeight !== void 0 ? finalHeight : undefined }));
|
|
40
|
+
/* eslint-enable hydrogen/prefer-image-component */
|
|
41
|
+
}
|
|
42
|
+
function ExternalImage({ src, width, height, alt, loader, loaderOptions, loading, ...rest }) {
|
|
43
|
+
if (!width || !height) {
|
|
44
|
+
throw new Error(`<Image/>: when 'src' is provided, 'width' and 'height' are required and need to be valid values (i.e. greater than zero). Provided values: 'src': ${src}, 'width': ${width}, 'height': ${height}`);
|
|
45
|
+
}
|
|
46
|
+
if (!alt) {
|
|
47
|
+
console.warn(`<Image/>: when 'src' is provided, 'alt' should also be provided`);
|
|
48
|
+
}
|
|
49
|
+
let finalSrc = src;
|
|
50
|
+
if (loader) {
|
|
51
|
+
finalSrc = loader({ src, width, height, ...loaderOptions });
|
|
52
|
+
if (typeof finalSrc !== 'string' || !finalSrc) {
|
|
53
|
+
throw new Error(`<Image/>: 'loader' did not return a valid string`);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/* eslint-disable hydrogen/prefer-image-component */
|
|
57
|
+
return (React.createElement("img", { ...rest, src: finalSrc, width: width, height: height, alt: alt !== null && alt !== void 0 ? alt : '', loading: loading !== null && loading !== void 0 ? loading : 'lazy' }));
|
|
58
|
+
/* eslint-enable hydrogen/prefer-image-component */
|
|
59
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Image } from './Image';
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface LinkProps extends Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'href'> {
|
|
3
|
+
/** The destination URL that the link points to. This is the `href` attribute of the underlying `<a>` element. */
|
|
4
|
+
to: string;
|
|
5
|
+
/** Whether to update the state object or URL of the current history entry. Refer to the [history.replaceState documentation](https://developer.mozilla.org/en-US/docs/Web/API/History/replaceState). */
|
|
6
|
+
replace?: boolean;
|
|
7
|
+
/** The custom client state with the navigation. */
|
|
8
|
+
clientState?: any;
|
|
9
|
+
/** Whether to reload the whole document on navigation. */
|
|
10
|
+
reloadDocument?: boolean;
|
|
11
|
+
/** Whether to prefetch the link source when the user signals intent. Defaults to `true`. For more information, refer to [Prefetching a link source](https://shopify.dev/custom-storefronts/hydrogen/framework/routes#prefetching-a-link-source). */
|
|
12
|
+
prefetch?: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* The `Link` component is used to navigate between routes. Because it renders an underlying `<a>` element, all
|
|
16
|
+
* properties available to the `<a>` element are also available to the `Link` component.
|
|
17
|
+
* For more information, refer to the [`<a>` element documentation](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attributes).
|
|
18
|
+
*/
|
|
19
|
+
export declare const Link: React.ForwardRefExoticComponent<LinkProps & React.RefAttributes<HTMLAnchorElement>>;
|
|
20
|
+
/**
|
|
21
|
+
* Credit: Remix's <Link> component.
|
|
22
|
+
*/
|
|
23
|
+
export declare function composeEventHandlers<EventType extends React.SyntheticEvent | Event>(theirHandler: ((event: EventType) => any) | undefined, ourHandler: (event: EventType) => any): (event: EventType) => any;
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import React, { useCallback, useEffect, useState } from 'react';
|
|
2
|
+
import { useRouter } from '../../foundation/Router/BrowserRouter.client';
|
|
3
|
+
import { createPath } from 'history';
|
|
4
|
+
import { useNavigate } from '../../foundation/useNavigate/useNavigate';
|
|
5
|
+
import { RSC_PATHNAME } from '../../constants';
|
|
6
|
+
import { useInternalServerProps } from '../../foundation/useServerProps/use-server-props';
|
|
7
|
+
/**
|
|
8
|
+
* The `Link` component is used to navigate between routes. Because it renders an underlying `<a>` element, all
|
|
9
|
+
* properties available to the `<a>` element are also available to the `Link` component.
|
|
10
|
+
* For more information, refer to the [`<a>` element documentation](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attributes).
|
|
11
|
+
*/
|
|
12
|
+
export const Link = React.forwardRef(function Link(props, ref) {
|
|
13
|
+
const navigate = useNavigate();
|
|
14
|
+
const { location } = useRouter();
|
|
15
|
+
const [_, startTransition] = React.useTransition();
|
|
16
|
+
/**
|
|
17
|
+
* Inspired by Remix's Link component
|
|
18
|
+
*/
|
|
19
|
+
const [shouldPrefetch, setShouldPrefetch] = useState(false);
|
|
20
|
+
const [maybePrefetch, setMaybePrefetch] = useState(false);
|
|
21
|
+
const { reloadDocument, target, replace: _replace, to, onClick, clientState, prefetch = true, } = props;
|
|
22
|
+
const internalClick = useCallback((e) => {
|
|
23
|
+
if (onClick)
|
|
24
|
+
onClick(e);
|
|
25
|
+
if (!reloadDocument && // do regular browser stuff
|
|
26
|
+
e.button === 0 && // Ignore everything but left clicks
|
|
27
|
+
(!target || target === '_self') && // Let browser handle "target=_blank"
|
|
28
|
+
!isModifiedEvent(e) // Ignore modifier key clicks
|
|
29
|
+
) {
|
|
30
|
+
e.preventDefault();
|
|
31
|
+
// If the URL hasn't changed, the regular <a> will do a replace
|
|
32
|
+
const replace = !!_replace || createPath(location) === createPath({ pathname: to });
|
|
33
|
+
navigate(to, {
|
|
34
|
+
replace,
|
|
35
|
+
clientState,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
}, [
|
|
39
|
+
reloadDocument,
|
|
40
|
+
target,
|
|
41
|
+
_replace,
|
|
42
|
+
to,
|
|
43
|
+
clientState,
|
|
44
|
+
onClick,
|
|
45
|
+
location,
|
|
46
|
+
navigate,
|
|
47
|
+
]);
|
|
48
|
+
const signalPrefetchIntent = () => {
|
|
49
|
+
/**
|
|
50
|
+
* startTransition to yield to more important updates
|
|
51
|
+
*/
|
|
52
|
+
startTransition(() => {
|
|
53
|
+
if (prefetch) {
|
|
54
|
+
setMaybePrefetch(true);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
};
|
|
58
|
+
const cancelPrefetchIntent = () => {
|
|
59
|
+
/**
|
|
60
|
+
* startTransition to yield to more important updates
|
|
61
|
+
*/
|
|
62
|
+
startTransition(() => {
|
|
63
|
+
if (prefetch) {
|
|
64
|
+
setMaybePrefetch(false);
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* Wrapping `maybePrefetch` inside useEffect allows the user to quickly graze over
|
|
70
|
+
* a link without triggering a prefetch.
|
|
71
|
+
*/
|
|
72
|
+
useEffect(() => {
|
|
73
|
+
if (maybePrefetch) {
|
|
74
|
+
const id = setTimeout(() => {
|
|
75
|
+
setShouldPrefetch(true);
|
|
76
|
+
}, 100);
|
|
77
|
+
return () => {
|
|
78
|
+
clearTimeout(id);
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
}, [maybePrefetch]);
|
|
82
|
+
const onMouseEnter = composeEventHandlers(props.onMouseEnter, signalPrefetchIntent);
|
|
83
|
+
const onMouseLeave = composeEventHandlers(props.onMouseLeave, cancelPrefetchIntent);
|
|
84
|
+
const onFocus = composeEventHandlers(props.onFocus, signalPrefetchIntent);
|
|
85
|
+
const onBlur = composeEventHandlers(props.onBlur, cancelPrefetchIntent);
|
|
86
|
+
const onTouchStart = composeEventHandlers(props.onTouchStart, signalPrefetchIntent);
|
|
87
|
+
return (React.createElement(React.Fragment, null,
|
|
88
|
+
React.createElement("a", { ...without(props, [
|
|
89
|
+
'to',
|
|
90
|
+
'replace',
|
|
91
|
+
'clientState',
|
|
92
|
+
'reloadDocument',
|
|
93
|
+
'prefetch',
|
|
94
|
+
]), ref: ref, onClick: internalClick, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave, onFocus: onFocus, onBlur: onBlur, onTouchStart: onTouchStart, href: props.to }, props.children),
|
|
95
|
+
shouldPrefetch && React.createElement(Prefetch, { pathname: to })));
|
|
96
|
+
});
|
|
97
|
+
function Prefetch({ pathname }) {
|
|
98
|
+
const { getProposedLocationServerProps } = useInternalServerProps();
|
|
99
|
+
const { location } = useRouter();
|
|
100
|
+
const newPath = createPath({ pathname });
|
|
101
|
+
if (pathname.startsWith('http') || newPath === createPath(location)) {
|
|
102
|
+
return null;
|
|
103
|
+
}
|
|
104
|
+
const newLocation = new URL(newPath, window.location.href);
|
|
105
|
+
const proposedServerState = getProposedLocationServerProps({
|
|
106
|
+
pathname: newLocation.pathname,
|
|
107
|
+
search: newLocation.search,
|
|
108
|
+
});
|
|
109
|
+
const href = `${RSC_PATHNAME}?state=` +
|
|
110
|
+
encodeURIComponent(JSON.stringify(proposedServerState));
|
|
111
|
+
return React.createElement("link", { rel: "prefetch", as: "fetch", href: href });
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Credit: Remix's <Link> component.
|
|
115
|
+
*/
|
|
116
|
+
export function composeEventHandlers(theirHandler, ourHandler) {
|
|
117
|
+
return (event) => {
|
|
118
|
+
theirHandler === null || theirHandler === void 0 ? void 0 : theirHandler(event);
|
|
119
|
+
if (!event.defaultPrevented) {
|
|
120
|
+
ourHandler(event);
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
function isModifiedEvent(event) {
|
|
125
|
+
return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);
|
|
126
|
+
}
|
|
127
|
+
function without(obj, props) {
|
|
128
|
+
const newObj = {};
|
|
129
|
+
for (const key of Object.keys(obj)) {
|
|
130
|
+
if (!props.includes(key)) {
|
|
131
|
+
newObj[key] = obj[key];
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return newObj;
|
|
135
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Link } from './Link.client';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Link } from './Link.client';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { LocalizationContext } from './LocalizationContext.client';
|
|
3
|
+
export default function LocalizationClientProvider({ localization, children, }) {
|
|
4
|
+
return (React.createElement(LocalizationContext.Provider, { value: localization }, children));
|
|
5
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { LocalizationQuery } from './LocalizationProvider.server';
|
|
2
|
+
export declare type Localization = LocalizationQuery['localization'];
|
|
3
|
+
export interface LocalizationContextValue {
|
|
4
|
+
country?: Localization['country'];
|
|
5
|
+
}
|
|
6
|
+
export declare const LocalizationContext: import("react").Context<LocalizationContextValue | null>;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { PreloadOptions } from '../../types';
|
|
3
|
+
import { Country } from '../../storefront-api-types';
|
|
4
|
+
export interface LocalizationProviderProps {
|
|
5
|
+
/** A `ReactNode` element. */
|
|
6
|
+
children: ReactNode;
|
|
7
|
+
/** Whether to preload the query. Defaults to `false`. Specify `true` to
|
|
8
|
+
* [preload the query](https://shopify.dev/custom-storefronts/hydrogen/framework/preloaded-queries) for the URL
|
|
9
|
+
* or `'*'` to preload the query for all requests.
|
|
10
|
+
*/
|
|
11
|
+
preload: PreloadOptions;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* The `LocalizationProvider` component automatically queries the Storefront API's
|
|
15
|
+
* [`localization`](https://shopify.dev/api/storefront/reference/common-objects/queryroot) field
|
|
16
|
+
* for the `isoCode` and `name` of the `country` and keeps this information in a context.
|
|
17
|
+
*
|
|
18
|
+
* Any descendents of this provider can use the `useCountry` hook.
|
|
19
|
+
* The `isoCode` of the `country` can be used in the Storefront API's
|
|
20
|
+
* `@inContext` directive as the `country` value.
|
|
21
|
+
*/
|
|
22
|
+
export declare function LocalizationProvider(props: LocalizationProviderProps): JSX.Element;
|
|
23
|
+
export declare type LocalizationQuery = {
|
|
24
|
+
__typename?: 'QueryRoot';
|
|
25
|
+
} & {
|
|
26
|
+
localization: {
|
|
27
|
+
__typename?: 'Localization';
|
|
28
|
+
} & {
|
|
29
|
+
country: {
|
|
30
|
+
__typename?: 'Country';
|
|
31
|
+
} & Pick<Country, 'isoCode' | 'name'>;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import LocalizationClientProvider from './LocalizationClientProvider.client';
|
|
3
|
+
import { useShop } from '../../foundation/useShop';
|
|
4
|
+
import { useShopQuery } from '../../hooks/useShopQuery';
|
|
5
|
+
import { CacheDays } from '../../framework/CachingStrategy';
|
|
6
|
+
import { useSession } from '../../foundation/useSession/useSession';
|
|
7
|
+
/**
|
|
8
|
+
* The `LocalizationProvider` component automatically queries the Storefront API's
|
|
9
|
+
* [`localization`](https://shopify.dev/api/storefront/reference/common-objects/queryroot) field
|
|
10
|
+
* for the `isoCode` and `name` of the `country` and keeps this information in a context.
|
|
11
|
+
*
|
|
12
|
+
* Any descendents of this provider can use the `useCountry` hook.
|
|
13
|
+
* The `isoCode` of the `country` can be used in the Storefront API's
|
|
14
|
+
* `@inContext` directive as the `country` value.
|
|
15
|
+
*/
|
|
16
|
+
export function LocalizationProvider(props) {
|
|
17
|
+
const { languageCode } = useShop();
|
|
18
|
+
const { countryCode, countryName } = useSession();
|
|
19
|
+
const { data: { localization }, } = useShopQuery({
|
|
20
|
+
query,
|
|
21
|
+
variables: { language: languageCode },
|
|
22
|
+
cache: CacheDays(),
|
|
23
|
+
preload: props.preload,
|
|
24
|
+
});
|
|
25
|
+
return (React.createElement(LocalizationClientProvider, { localization: countryCode
|
|
26
|
+
? {
|
|
27
|
+
country: {
|
|
28
|
+
name: countryName,
|
|
29
|
+
isoCode: countryCode,
|
|
30
|
+
},
|
|
31
|
+
}
|
|
32
|
+
: localization }, props.children));
|
|
33
|
+
}
|
|
34
|
+
const query = `
|
|
35
|
+
query Localization($language: LanguageCode)
|
|
36
|
+
@inContext(language: $language) {
|
|
37
|
+
localization {
|
|
38
|
+
country {
|
|
39
|
+
isoCode
|
|
40
|
+
name
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
`;
|