From 5c926924e6bd4304d8401cb98522da9062ea3df2 Mon Sep 17 00:00:00 2001 From: hta218 Date: Tue, 21 May 2024 14:22:07 +0700 Subject: [PATCH 1/5] Format code --- .eslintrc.cjs | 4 +- app/styles/app.css | 7 +- customer-accountapi.generated.d.ts | 308 +++++++------ package.json | 2 +- storefrontapi.generated.d.ts | 714 ++++++++++++++--------------- 5 files changed, 521 insertions(+), 514 deletions(-) diff --git a/.eslintrc.cjs b/.eslintrc.cjs index f53ed8c9..e517ed9e 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -2,9 +2,7 @@ * @type {import("@types/eslint").Linter.BaseConfig} */ module.exports = { - extends: [ - "@remix-run/eslint-config", - ], + extends: ["@remix-run/eslint-config"], rules: { "@typescript-eslint/ban-ts-comment": "off", "@typescript-eslint/naming-convention": "off", diff --git a/app/styles/app.css b/app/styles/app.css index 0e5f8d07..e169fa66 100644 --- a/app/styles/app.css +++ b/app/styles/app.css @@ -42,7 +42,12 @@ scroll-padding-top: 10rem; } - h1, h2, h3, h4, h5, h6 { + h1, + h2, + h3, + h4, + h5, + h6 { @apply font-sans; } diff --git a/customer-accountapi.generated.d.ts b/customer-accountapi.generated.d.ts index 0b111f4e..71536131 100644 --- a/customer-accountapi.generated.d.ts +++ b/customer-accountapi.generated.d.ts @@ -1,13 +1,13 @@ /* eslint-disable eslint-comments/disable-enable-pair */ /* eslint-disable eslint-comments/no-unlimited-disable */ /* eslint-disable */ -import type * as CustomerAccountAPI from '@shopify/hydrogen/customer-account-api-types'; +import type * as CustomerAccountAPI from "@shopify/hydrogen/customer-account-api-types"; export type CustomerAddressUpdateMutationVariables = CustomerAccountAPI.Exact<{ address: CustomerAccountAPI.CustomerAddressInput; - addressId: CustomerAccountAPI.Scalars['ID']['input']; + addressId: CustomerAccountAPI.Scalars["ID"]["input"]; defaultAddress?: CustomerAccountAPI.InputMaybe< - CustomerAccountAPI.Scalars['Boolean']['input'] + CustomerAccountAPI.Scalars["Boolean"]["input"] >; }>; @@ -16,26 +16,26 @@ export type CustomerAddressUpdateMutation = { userErrors: Array< Pick< CustomerAccountAPI.UserErrorsCustomerAddressUserErrors, - 'code' | 'field' | 'message' + "code" | "field" | "message" > >; }>; }; export type CustomerAddressDeleteMutationVariables = CustomerAccountAPI.Exact<{ - addressId: CustomerAccountAPI.Scalars['ID']['input']; + addressId: CustomerAccountAPI.Scalars["ID"]["input"]; }>; export type CustomerAddressDeleteMutation = { customerAddressDelete?: CustomerAccountAPI.Maybe< Pick< CustomerAccountAPI.CustomerAddressDeletePayload, - 'deletedAddressId' + "deletedAddressId" > & { userErrors: Array< Pick< CustomerAccountAPI.UserErrorsCustomerAddressUserErrors, - 'code' | 'field' | 'message' + "code" | "field" | "message" > >; } @@ -45,19 +45,19 @@ export type CustomerAddressDeleteMutation = { export type CustomerAddressCreateMutationVariables = CustomerAccountAPI.Exact<{ address: CustomerAccountAPI.CustomerAddressInput; defaultAddress?: CustomerAccountAPI.InputMaybe< - CustomerAccountAPI.Scalars['Boolean']['input'] + CustomerAccountAPI.Scalars["Boolean"]["input"] >; }>; export type CustomerAddressCreateMutation = { customerAddressCreate?: CustomerAccountAPI.Maybe<{ customerAddress?: CustomerAccountAPI.Maybe< - Pick + Pick >; userErrors: Array< Pick< CustomerAccountAPI.UserErrorsCustomerAddressUserErrors, - 'code' | 'field' | 'message' + "code" | "field" | "message" > >; }>; @@ -65,15 +65,17 @@ export type CustomerAddressCreateMutation = { export type OrderCardFragment = Pick< CustomerAccountAPI.Order, - 'id' | 'number' | 'processedAt' | 'financialStatus' + "id" | "number" | "processedAt" | "financialStatus" > & { - fulfillments: {nodes: Array>}; - totalPrice: Pick; + fulfillments: { + nodes: Array>; + }; + totalPrice: Pick; lineItems: { edges: Array<{ - node: Pick & { + node: Pick & { image?: CustomerAccountAPI.Maybe< - Pick + Pick >; }; }>; @@ -82,63 +84,63 @@ export type OrderCardFragment = Pick< export type AddressPartialFragment = Pick< CustomerAccountAPI.CustomerAddress, - | 'id' - | 'formatted' - | 'firstName' - | 'lastName' - | 'company' - | 'address1' - | 'address2' - | 'territoryCode' - | 'zoneCode' - | 'city' - | 'zip' - | 'phoneNumber' + | "id" + | "formatted" + | "firstName" + | "lastName" + | "company" + | "address1" + | "address2" + | "territoryCode" + | "zoneCode" + | "city" + | "zip" + | "phoneNumber" >; export type CustomerDetailsFragment = Pick< CustomerAccountAPI.Customer, - 'firstName' | 'lastName' + "firstName" | "lastName" > & { phoneNumber?: CustomerAccountAPI.Maybe< - Pick + Pick >; emailAddress?: CustomerAccountAPI.Maybe< - Pick + Pick >; defaultAddress?: CustomerAccountAPI.Maybe< Pick< CustomerAccountAPI.CustomerAddress, - | 'id' - | 'formatted' - | 'firstName' - | 'lastName' - | 'company' - | 'address1' - | 'address2' - | 'territoryCode' - | 'zoneCode' - | 'city' - | 'zip' - | 'phoneNumber' + | "id" + | "formatted" + | "firstName" + | "lastName" + | "company" + | "address1" + | "address2" + | "territoryCode" + | "zoneCode" + | "city" + | "zip" + | "phoneNumber" > >; addresses: { edges: Array<{ node: Pick< CustomerAccountAPI.CustomerAddress, - | 'id' - | 'formatted' - | 'firstName' - | 'lastName' - | 'company' - | 'address1' - | 'address2' - | 'territoryCode' - | 'zoneCode' - | 'city' - | 'zip' - | 'phoneNumber' + | "id" + | "formatted" + | "firstName" + | "lastName" + | "company" + | "address1" + | "address2" + | "territoryCode" + | "zoneCode" + | "city" + | "zip" + | "phoneNumber" >; }>; }; @@ -146,19 +148,19 @@ export type CustomerDetailsFragment = Pick< edges: Array<{ node: Pick< CustomerAccountAPI.Order, - 'id' | 'number' | 'processedAt' | 'financialStatus' + "id" | "number" | "processedAt" | "financialStatus" > & { fulfillments: { - nodes: Array>; + nodes: Array>; }; - totalPrice: Pick; + totalPrice: Pick; lineItems: { edges: Array<{ - node: Pick & { + node: Pick & { image?: CustomerAccountAPI.Maybe< Pick< CustomerAccountAPI.Image, - 'altText' | 'height' | 'url' | 'width' + "altText" | "height" | "url" | "width" > >; }; @@ -174,46 +176,46 @@ export type CustomerDetailsQueryVariables = CustomerAccountAPI.Exact<{ }>; export type CustomerDetailsQuery = { - customer: Pick & { + customer: Pick & { phoneNumber?: CustomerAccountAPI.Maybe< - Pick + Pick >; emailAddress?: CustomerAccountAPI.Maybe< - Pick + Pick >; defaultAddress?: CustomerAccountAPI.Maybe< Pick< CustomerAccountAPI.CustomerAddress, - | 'id' - | 'formatted' - | 'firstName' - | 'lastName' - | 'company' - | 'address1' - | 'address2' - | 'territoryCode' - | 'zoneCode' - | 'city' - | 'zip' - | 'phoneNumber' + | "id" + | "formatted" + | "firstName" + | "lastName" + | "company" + | "address1" + | "address2" + | "territoryCode" + | "zoneCode" + | "city" + | "zip" + | "phoneNumber" > >; addresses: { edges: Array<{ node: Pick< CustomerAccountAPI.CustomerAddress, - | 'id' - | 'formatted' - | 'firstName' - | 'lastName' - | 'company' - | 'address1' - | 'address2' - | 'territoryCode' - | 'zoneCode' - | 'city' - | 'zip' - | 'phoneNumber' + | "id" + | "formatted" + | "firstName" + | "lastName" + | "company" + | "address1" + | "address2" + | "territoryCode" + | "zoneCode" + | "city" + | "zip" + | "phoneNumber" >; }>; }; @@ -221,22 +223,22 @@ export type CustomerDetailsQuery = { edges: Array<{ node: Pick< CustomerAccountAPI.Order, - 'id' | 'number' | 'processedAt' | 'financialStatus' + "id" | "number" | "processedAt" | "financialStatus" > & { fulfillments: { - nodes: Array>; + nodes: Array>; }; totalPrice: Pick< CustomerAccountAPI.MoneyV2, - 'amount' | 'currencyCode' + "amount" | "currencyCode" >; lineItems: { edges: Array<{ - node: Pick & { + node: Pick & { image?: CustomerAccountAPI.Maybe< Pick< CustomerAccountAPI.Image, - 'altText' | 'height' | 'url' | 'width' + "altText" | "height" | "url" | "width" > >; }; @@ -250,82 +252,84 @@ export type CustomerDetailsQuery = { export type OrderMoneyFragment = Pick< CustomerAccountAPI.MoneyV2, - 'amount' | 'currencyCode' + "amount" | "currencyCode" >; export type DiscountApplicationFragment = { value: - | ({__typename: 'MoneyV2'} & Pick< + | ({ __typename: "MoneyV2" } & Pick< CustomerAccountAPI.MoneyV2, - 'amount' | 'currencyCode' + "amount" | "currencyCode" >) - | ({__typename: 'PricingPercentageValue'} & Pick< + | ({ __typename: "PricingPercentageValue" } & Pick< CustomerAccountAPI.PricingPercentageValue, - 'percentage' + "percentage" >); }; export type OrderLineItemFullFragment = Pick< CustomerAccountAPI.LineItem, - 'id' | 'title' | 'quantity' | 'variantTitle' + "id" | "title" | "quantity" | "variantTitle" > & { price?: CustomerAccountAPI.Maybe< - Pick + Pick >; discountAllocations: Array<{ allocatedAmount: Pick< CustomerAccountAPI.MoneyV2, - 'amount' | 'currencyCode' + "amount" | "currencyCode" >; discountApplication: { value: - | ({__typename: 'MoneyV2'} & Pick< + | ({ __typename: "MoneyV2" } & Pick< CustomerAccountAPI.MoneyV2, - 'amount' | 'currencyCode' + "amount" | "currencyCode" >) - | ({__typename: 'PricingPercentageValue'} & Pick< + | ({ __typename: "PricingPercentageValue" } & Pick< CustomerAccountAPI.PricingPercentageValue, - 'percentage' + "percentage" >); }; }>; - totalDiscount: Pick; + totalDiscount: Pick; image?: CustomerAccountAPI.Maybe< Pick< CustomerAccountAPI.Image, - 'altText' | 'height' | 'url' | 'id' | 'width' + "altText" | "height" | "url" | "id" | "width" > >; }; export type OrderFragment = Pick< CustomerAccountAPI.Order, - 'id' | 'name' | 'statusPageUrl' | 'processedAt' + "id" | "name" | "statusPageUrl" | "processedAt" > & { - fulfillments: {nodes: Array>}; + fulfillments: { + nodes: Array>; + }; totalTax?: CustomerAccountAPI.Maybe< - Pick + Pick >; - totalPrice: Pick; + totalPrice: Pick; subtotal?: CustomerAccountAPI.Maybe< - Pick + Pick >; shippingAddress?: CustomerAccountAPI.Maybe< Pick< CustomerAccountAPI.CustomerAddress, - 'name' | 'formatted' | 'formattedArea' + "name" | "formatted" | "formattedArea" > >; discountApplications: { nodes: Array<{ value: - | ({__typename: 'MoneyV2'} & Pick< + | ({ __typename: "MoneyV2" } & Pick< CustomerAccountAPI.MoneyV2, - 'amount' | 'currencyCode' + "amount" | "currencyCode" >) - | ({__typename: 'PricingPercentageValue'} & Pick< + | ({ __typename: "PricingPercentageValue" } & Pick< CustomerAccountAPI.PricingPercentageValue, - 'percentage' + "percentage" >); }>; }; @@ -333,36 +337,36 @@ export type OrderFragment = Pick< nodes: Array< Pick< CustomerAccountAPI.LineItem, - 'id' | 'title' | 'quantity' | 'variantTitle' + "id" | "title" | "quantity" | "variantTitle" > & { price?: CustomerAccountAPI.Maybe< - Pick + Pick >; discountAllocations: Array<{ allocatedAmount: Pick< CustomerAccountAPI.MoneyV2, - 'amount' | 'currencyCode' + "amount" | "currencyCode" >; discountApplication: { value: - | ({__typename: 'MoneyV2'} & Pick< + | ({ __typename: "MoneyV2" } & Pick< CustomerAccountAPI.MoneyV2, - 'amount' | 'currencyCode' + "amount" | "currencyCode" >) - | ({__typename: 'PricingPercentageValue'} & Pick< + | ({ __typename: "PricingPercentageValue" } & Pick< CustomerAccountAPI.PricingPercentageValue, - 'percentage' + "percentage" >); }; }>; totalDiscount: Pick< CustomerAccountAPI.MoneyV2, - 'amount' | 'currencyCode' + "amount" | "currencyCode" >; image?: CustomerAccountAPI.Maybe< Pick< CustomerAccountAPI.Image, - 'altText' | 'height' | 'url' | 'id' | 'width' + "altText" | "height" | "url" | "id" | "width" > >; } @@ -371,41 +375,41 @@ export type OrderFragment = Pick< }; export type OrderQueryVariables = CustomerAccountAPI.Exact<{ - orderId: CustomerAccountAPI.Scalars['ID']['input']; + orderId: CustomerAccountAPI.Scalars["ID"]["input"]; }>; export type OrderQuery = { order?: CustomerAccountAPI.Maybe< Pick< CustomerAccountAPI.Order, - 'id' | 'name' | 'statusPageUrl' | 'processedAt' + "id" | "name" | "statusPageUrl" | "processedAt" > & { fulfillments: { - nodes: Array>; + nodes: Array>; }; totalTax?: CustomerAccountAPI.Maybe< - Pick + Pick >; - totalPrice: Pick; + totalPrice: Pick; subtotal?: CustomerAccountAPI.Maybe< - Pick + Pick >; shippingAddress?: CustomerAccountAPI.Maybe< Pick< CustomerAccountAPI.CustomerAddress, - 'name' | 'formatted' | 'formattedArea' + "name" | "formatted" | "formattedArea" > >; discountApplications: { nodes: Array<{ value: - | ({__typename: 'MoneyV2'} & Pick< + | ({ __typename: "MoneyV2" } & Pick< CustomerAccountAPI.MoneyV2, - 'amount' | 'currencyCode' + "amount" | "currencyCode" >) - | ({__typename: 'PricingPercentageValue'} & Pick< + | ({ __typename: "PricingPercentageValue" } & Pick< CustomerAccountAPI.PricingPercentageValue, - 'percentage' + "percentage" >); }>; }; @@ -413,36 +417,36 @@ export type OrderQuery = { nodes: Array< Pick< CustomerAccountAPI.LineItem, - 'id' | 'title' | 'quantity' | 'variantTitle' + "id" | "title" | "quantity" | "variantTitle" > & { price?: CustomerAccountAPI.Maybe< - Pick + Pick >; discountAllocations: Array<{ allocatedAmount: Pick< CustomerAccountAPI.MoneyV2, - 'amount' | 'currencyCode' + "amount" | "currencyCode" >; discountApplication: { value: - | ({__typename: 'MoneyV2'} & Pick< + | ({ __typename: "MoneyV2" } & Pick< CustomerAccountAPI.MoneyV2, - 'amount' | 'currencyCode' + "amount" | "currencyCode" >) - | ({__typename: 'PricingPercentageValue'} & Pick< + | ({ __typename: "PricingPercentageValue" } & Pick< CustomerAccountAPI.PricingPercentageValue, - 'percentage' + "percentage" >); }; }>; totalDiscount: Pick< CustomerAccountAPI.MoneyV2, - 'amount' | 'currencyCode' + "amount" | "currencyCode" >; image?: CustomerAccountAPI.Maybe< Pick< CustomerAccountAPI.Image, - 'altText' | 'height' | 'url' | 'id' | 'width' + "altText" | "height" | "url" | "id" | "width" > >; } @@ -461,43 +465,43 @@ export type CustomerUpdateMutation = { userErrors: Array< Pick< CustomerAccountAPI.UserErrorsCustomerUserErrors, - 'code' | 'field' | 'message' + "code" | "field" | "message" > >; }>; }; interface GeneratedQueryTypes { - '#graphql\n query CustomerDetails {\n customer {\n ...CustomerDetails\n }\n }\n #graphql\n fragment OrderCard on Order {\n id\n number\n processedAt\n financialStatus\n fulfillments(first: 1) {\n nodes {\n status\n }\n }\n totalPrice {\n amount\n currencyCode\n }\n lineItems(first: 2) {\n edges {\n node {\n title\n image {\n altText\n height\n url\n width\n }\n }\n }\n }\n }\n\n fragment AddressPartial on CustomerAddress {\n id\n formatted\n firstName\n lastName\n company\n address1\n address2\n territoryCode\n zoneCode\n city\n zip\n phoneNumber\n }\n\n fragment CustomerDetails on Customer {\n firstName\n lastName\n phoneNumber {\n phoneNumber\n }\n emailAddress {\n emailAddress\n }\n defaultAddress {\n ...AddressPartial\n }\n addresses(first: 6) {\n edges {\n node {\n ...AddressPartial\n }\n }\n }\n orders(first: 250, sortKey: PROCESSED_AT, reverse: true) {\n edges {\n node {\n ...OrderCard\n }\n }\n }\n }\n\n': { + "#graphql\n query CustomerDetails {\n customer {\n ...CustomerDetails\n }\n }\n #graphql\n fragment OrderCard on Order {\n id\n number\n processedAt\n financialStatus\n fulfillments(first: 1) {\n nodes {\n status\n }\n }\n totalPrice {\n amount\n currencyCode\n }\n lineItems(first: 2) {\n edges {\n node {\n title\n image {\n altText\n height\n url\n width\n }\n }\n }\n }\n }\n\n fragment AddressPartial on CustomerAddress {\n id\n formatted\n firstName\n lastName\n company\n address1\n address2\n territoryCode\n zoneCode\n city\n zip\n phoneNumber\n }\n\n fragment CustomerDetails on Customer {\n firstName\n lastName\n phoneNumber {\n phoneNumber\n }\n emailAddress {\n emailAddress\n }\n defaultAddress {\n ...AddressPartial\n }\n addresses(first: 6) {\n edges {\n node {\n ...AddressPartial\n }\n }\n }\n orders(first: 250, sortKey: PROCESSED_AT, reverse: true) {\n edges {\n node {\n ...OrderCard\n }\n }\n }\n }\n\n": { return: CustomerDetailsQuery; variables: CustomerDetailsQueryVariables; }; - '#graphql\n fragment OrderMoney on MoneyV2 {\n amount\n currencyCode\n }\n fragment DiscountApplication on DiscountApplication {\n value {\n __typename\n ... on MoneyV2 {\n ...OrderMoney\n }\n ... on PricingPercentageValue {\n percentage\n }\n }\n }\n fragment OrderLineItemFull on LineItem {\n id\n title\n quantity\n price {\n ...OrderMoney\n }\n discountAllocations {\n allocatedAmount {\n ...OrderMoney\n }\n discountApplication {\n ...DiscountApplication\n }\n }\n totalDiscount {\n ...OrderMoney\n }\n image {\n altText\n height\n url\n id\n width\n }\n variantTitle\n }\n fragment Order on Order {\n id\n name\n statusPageUrl\n processedAt\n fulfillments(first: 1) {\n nodes {\n status\n }\n }\n totalTax {\n ...OrderMoney\n }\n totalPrice {\n ...OrderMoney\n }\n subtotal {\n ...OrderMoney\n }\n shippingAddress {\n name\n formatted(withName: true)\n formattedArea\n }\n discountApplications(first: 100) {\n nodes {\n ...DiscountApplication\n }\n }\n lineItems(first: 100) {\n nodes {\n ...OrderLineItemFull\n }\n }\n }\n query Order($orderId: ID!) {\n order(id: $orderId) {\n ... on Order {\n ...Order\n }\n }\n }\n': { + "#graphql\n fragment OrderMoney on MoneyV2 {\n amount\n currencyCode\n }\n fragment DiscountApplication on DiscountApplication {\n value {\n __typename\n ... on MoneyV2 {\n ...OrderMoney\n }\n ... on PricingPercentageValue {\n percentage\n }\n }\n }\n fragment OrderLineItemFull on LineItem {\n id\n title\n quantity\n price {\n ...OrderMoney\n }\n discountAllocations {\n allocatedAmount {\n ...OrderMoney\n }\n discountApplication {\n ...DiscountApplication\n }\n }\n totalDiscount {\n ...OrderMoney\n }\n image {\n altText\n height\n url\n id\n width\n }\n variantTitle\n }\n fragment Order on Order {\n id\n name\n statusPageUrl\n processedAt\n fulfillments(first: 1) {\n nodes {\n status\n }\n }\n totalTax {\n ...OrderMoney\n }\n totalPrice {\n ...OrderMoney\n }\n subtotal {\n ...OrderMoney\n }\n shippingAddress {\n name\n formatted(withName: true)\n formattedArea\n }\n discountApplications(first: 100) {\n nodes {\n ...DiscountApplication\n }\n }\n lineItems(first: 100) {\n nodes {\n ...OrderLineItemFull\n }\n }\n }\n query Order($orderId: ID!) {\n order(id: $orderId) {\n ... on Order {\n ...Order\n }\n }\n }\n": { return: OrderQuery; variables: OrderQueryVariables; }; } interface GeneratedMutationTypes { - '#graphql\n mutation customerAddressUpdate(\n $address: CustomerAddressInput!\n $addressId: ID!\n $defaultAddress: Boolean\n ) {\n customerAddressUpdate(\n address: $address\n addressId: $addressId\n defaultAddress: $defaultAddress\n ) {\n userErrors {\n code\n field\n message\n }\n }\n }\n': { + "#graphql\n mutation customerAddressUpdate(\n $address: CustomerAddressInput!\n $addressId: ID!\n $defaultAddress: Boolean\n ) {\n customerAddressUpdate(\n address: $address\n addressId: $addressId\n defaultAddress: $defaultAddress\n ) {\n userErrors {\n code\n field\n message\n }\n }\n }\n": { return: CustomerAddressUpdateMutation; variables: CustomerAddressUpdateMutationVariables; }; - '#graphql\n mutation customerAddressDelete(\n $addressId: ID!,\n ) {\n customerAddressDelete(addressId: $addressId) {\n deletedAddressId\n userErrors {\n code\n field\n message\n }\n }\n }\n': { + "#graphql\n mutation customerAddressDelete(\n $addressId: ID!,\n ) {\n customerAddressDelete(addressId: $addressId) {\n deletedAddressId\n userErrors {\n code\n field\n message\n }\n }\n }\n": { return: CustomerAddressDeleteMutation; variables: CustomerAddressDeleteMutationVariables; }; - '#graphql\n mutation customerAddressCreate(\n $address: CustomerAddressInput!\n $defaultAddress: Boolean\n ) {\n customerAddressCreate(\n address: $address\n defaultAddress: $defaultAddress\n ) {\n customerAddress {\n id\n }\n userErrors {\n code\n field\n message\n }\n }\n }\n': { + "#graphql\n mutation customerAddressCreate(\n $address: CustomerAddressInput!\n $defaultAddress: Boolean\n ) {\n customerAddressCreate(\n address: $address\n defaultAddress: $defaultAddress\n ) {\n customerAddress {\n id\n }\n userErrors {\n code\n field\n message\n }\n }\n }\n": { return: CustomerAddressCreateMutation; variables: CustomerAddressCreateMutationVariables; }; - '#graphql\nmutation customerUpdate($customer: CustomerUpdateInput!) {\n customerUpdate(input: $customer) {\n userErrors {\n code\n field\n message\n }\n }\n}\n': { + "#graphql\nmutation customerUpdate($customer: CustomerUpdateInput!) {\n customerUpdate(input: $customer) {\n userErrors {\n code\n field\n message\n }\n }\n}\n": { return: CustomerUpdateMutation; variables: CustomerUpdateMutationVariables; }; } -declare module '@shopify/hydrogen' { +declare module "@shopify/hydrogen" { interface CustomerAccountQueries extends GeneratedQueryTypes {} interface CustomerAccountMutations extends GeneratedMutationTypes {} } diff --git a/package.json b/package.json index 0d40325f..8ef99b4a 100644 --- a/package.json +++ b/package.json @@ -82,4 +82,4 @@ "engines": { "node": ">=18.0.0" } -} \ No newline at end of file +} diff --git a/storefrontapi.generated.d.ts b/storefrontapi.generated.d.ts index 652d4d75..6796d783 100644 --- a/storefrontapi.generated.d.ts +++ b/storefrontapi.generated.d.ts @@ -1,19 +1,19 @@ /* eslint-disable eslint-comments/disable-enable-pair */ /* eslint-disable eslint-comments/no-unlimited-disable */ /* eslint-disable */ -import type * as StorefrontAPI from '@shopify/hydrogen/storefront-api-types'; +import type * as StorefrontAPI from "@shopify/hydrogen/storefront-api-types"; export type OrderCardFragment = Pick< StorefrontAPI.Order, - 'id' | 'orderNumber' | 'processedAt' | 'financialStatus' | 'fulfillmentStatus' + "id" | "orderNumber" | "processedAt" | "financialStatus" | "fulfillmentStatus" > & { - currentTotalPrice: Pick; + currentTotalPrice: Pick; lineItems: { edges: Array<{ - node: Pick & { + node: Pick & { variant?: StorefrontAPI.Maybe<{ image?: StorefrontAPI.Maybe< - Pick + Pick >; }>; }; @@ -21,35 +21,35 @@ export type OrderCardFragment = Pick< }; }; -type Media_ExternalVideo_Fragment = {__typename: 'ExternalVideo'} & Pick< +type Media_ExternalVideo_Fragment = { __typename: "ExternalVideo" } & Pick< StorefrontAPI.ExternalVideo, - 'id' | 'embedUrl' | 'host' | 'mediaContentType' | 'alt' -> & {previewImage?: StorefrontAPI.Maybe>}; + "id" | "embedUrl" | "host" | "mediaContentType" | "alt" +> & { previewImage?: StorefrontAPI.Maybe> }; -type Media_MediaImage_Fragment = {__typename: 'MediaImage'} & Pick< +type Media_MediaImage_Fragment = { __typename: "MediaImage" } & Pick< StorefrontAPI.MediaImage, - 'id' | 'mediaContentType' | 'alt' + "id" | "mediaContentType" | "alt" > & { image?: StorefrontAPI.Maybe< - Pick + Pick >; - previewImage?: StorefrontAPI.Maybe>; + previewImage?: StorefrontAPI.Maybe>; }; -type Media_Model3d_Fragment = {__typename: 'Model3d'} & Pick< +type Media_Model3d_Fragment = { __typename: "Model3d" } & Pick< StorefrontAPI.Model3d, - 'id' | 'mediaContentType' | 'alt' + "id" | "mediaContentType" | "alt" > & { - sources: Array>; - previewImage?: StorefrontAPI.Maybe>; + sources: Array>; + previewImage?: StorefrontAPI.Maybe>; }; -type Media_Video_Fragment = {__typename: 'Video'} & Pick< +type Media_Video_Fragment = { __typename: "Video" } & Pick< StorefrontAPI.Video, - 'id' | 'mediaContentType' | 'alt' + "id" | "mediaContentType" | "alt" > & { - sources: Array>; - previewImage?: StorefrontAPI.Maybe>; + sources: Array>; + previewImage?: StorefrontAPI.Maybe>; }; export type MediaFragment = @@ -60,22 +60,22 @@ export type MediaFragment = export type ProductCardFragment = Pick< StorefrontAPI.Product, - 'id' | 'title' | 'publishedAt' | 'handle' | 'vendor' + "id" | "title" | "publishedAt" | "handle" | "vendor" > & { variants: { nodes: Array< - Pick & { + Pick & { image?: StorefrontAPI.Maybe< - Pick + Pick >; - price: Pick; + price: Pick; compareAtPrice?: StorefrontAPI.Maybe< - Pick + Pick >; selectedOptions: Array< - Pick + Pick >; - product: Pick; + product: Pick; } >; }; @@ -83,86 +83,86 @@ export type ProductCardFragment = Pick< export type FeaturedCollectionDetailsFragment = Pick< StorefrontAPI.Collection, - 'id' | 'title' | 'handle' + "id" | "title" | "handle" > & { image?: StorefrontAPI.Maybe< - Pick + Pick >; }; export type CollectionContentFragment = Pick< StorefrontAPI.Collection, - 'id' | 'handle' | 'title' | 'descriptionHtml' + "id" | "handle" | "title" | "descriptionHtml" > & { - heading?: StorefrontAPI.Maybe>; - byline?: StorefrontAPI.Maybe>; - cta?: StorefrontAPI.Maybe>; + heading?: StorefrontAPI.Maybe>; + byline?: StorefrontAPI.Maybe>; + cta?: StorefrontAPI.Maybe>; spread?: StorefrontAPI.Maybe<{ reference?: StorefrontAPI.Maybe< - | ({__typename: 'MediaImage'} & Pick< + | ({ __typename: "MediaImage" } & Pick< StorefrontAPI.MediaImage, - 'id' | 'mediaContentType' | 'alt' + "id" | "mediaContentType" | "alt" > & { image?: StorefrontAPI.Maybe< - Pick + Pick >; previewImage?: StorefrontAPI.Maybe< - Pick + Pick >; }) - | ({__typename: 'Model3d'} & Pick< + | ({ __typename: "Model3d" } & Pick< StorefrontAPI.Model3d, - 'id' | 'mediaContentType' | 'alt' + "id" | "mediaContentType" | "alt" > & { sources: Array< - Pick + Pick >; previewImage?: StorefrontAPI.Maybe< - Pick + Pick >; }) - | ({__typename: 'Video'} & Pick< + | ({ __typename: "Video" } & Pick< StorefrontAPI.Video, - 'id' | 'mediaContentType' | 'alt' + "id" | "mediaContentType" | "alt" > & { - sources: Array>; + sources: Array>; previewImage?: StorefrontAPI.Maybe< - Pick + Pick >; }) >; }>; spreadSecondary?: StorefrontAPI.Maybe<{ reference?: StorefrontAPI.Maybe< - | ({__typename: 'MediaImage'} & Pick< + | ({ __typename: "MediaImage" } & Pick< StorefrontAPI.MediaImage, - 'id' | 'mediaContentType' | 'alt' + "id" | "mediaContentType" | "alt" > & { image?: StorefrontAPI.Maybe< - Pick + Pick >; previewImage?: StorefrontAPI.Maybe< - Pick + Pick >; }) - | ({__typename: 'Model3d'} & Pick< + | ({ __typename: "Model3d" } & Pick< StorefrontAPI.Model3d, - 'id' | 'mediaContentType' | 'alt' + "id" | "mediaContentType" | "alt" > & { sources: Array< - Pick + Pick >; previewImage?: StorefrontAPI.Maybe< - Pick + Pick >; }) - | ({__typename: 'Video'} & Pick< + | ({ __typename: "Video" } & Pick< StorefrontAPI.Video, - 'id' | 'mediaContentType' | 'alt' + "id" | "mediaContentType" | "alt" > & { - sources: Array>; + sources: Array>; previewImage?: StorefrontAPI.Maybe< - Pick + Pick >; }) >; @@ -171,20 +171,20 @@ export type CollectionContentFragment = Pick< export type ProductVariantFragmentFragment = Pick< StorefrontAPI.ProductVariant, - 'id' | 'availableForSale' | 'quantityAvailable' | 'sku' | 'title' + "id" | "availableForSale" | "quantityAvailable" | "sku" | "title" > & { - selectedOptions: Array>; + selectedOptions: Array>; image?: StorefrontAPI.Maybe< - Pick + Pick >; - price: Pick; + price: Pick; compareAtPrice?: StorefrontAPI.Maybe< - Pick + Pick >; unitPrice?: StorefrontAPI.Maybe< - Pick + Pick >; - product: Pick; + product: Pick; }; export type ShopQueryQueryVariables = StorefrontAPI.Exact<{ @@ -193,11 +193,11 @@ export type ShopQueryQueryVariables = StorefrontAPI.Exact<{ }>; export type ShopQueryQuery = { - shop: Pick; + shop: Pick; }; export type SeoCollectionContentQueryVariables = StorefrontAPI.Exact<{ - handle?: StorefrontAPI.InputMaybe; + handle?: StorefrontAPI.InputMaybe; country?: StorefrontAPI.InputMaybe; language?: StorefrontAPI.InputMaybe; }>; @@ -206,88 +206,88 @@ export type SeoCollectionContentQuery = { hero?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Collection, - 'id' | 'handle' | 'title' | 'descriptionHtml' + "id" | "handle" | "title" | "descriptionHtml" > & { - heading?: StorefrontAPI.Maybe>; - byline?: StorefrontAPI.Maybe>; - cta?: StorefrontAPI.Maybe>; + heading?: StorefrontAPI.Maybe>; + byline?: StorefrontAPI.Maybe>; + cta?: StorefrontAPI.Maybe>; spread?: StorefrontAPI.Maybe<{ reference?: StorefrontAPI.Maybe< - | ({__typename: 'MediaImage'} & Pick< + | ({ __typename: "MediaImage" } & Pick< StorefrontAPI.MediaImage, - 'id' | 'mediaContentType' | 'alt' + "id" | "mediaContentType" | "alt" > & { image?: StorefrontAPI.Maybe< - Pick + Pick >; previewImage?: StorefrontAPI.Maybe< - Pick + Pick >; }) - | ({__typename: 'Model3d'} & Pick< + | ({ __typename: "Model3d" } & Pick< StorefrontAPI.Model3d, - 'id' | 'mediaContentType' | 'alt' + "id" | "mediaContentType" | "alt" > & { sources: Array< - Pick + Pick >; previewImage?: StorefrontAPI.Maybe< - Pick + Pick >; }) - | ({__typename: 'Video'} & Pick< + | ({ __typename: "Video" } & Pick< StorefrontAPI.Video, - 'id' | 'mediaContentType' | 'alt' + "id" | "mediaContentType" | "alt" > & { sources: Array< - Pick + Pick >; previewImage?: StorefrontAPI.Maybe< - Pick + Pick >; }) >; }>; spreadSecondary?: StorefrontAPI.Maybe<{ reference?: StorefrontAPI.Maybe< - | ({__typename: 'MediaImage'} & Pick< + | ({ __typename: "MediaImage" } & Pick< StorefrontAPI.MediaImage, - 'id' | 'mediaContentType' | 'alt' + "id" | "mediaContentType" | "alt" > & { image?: StorefrontAPI.Maybe< - Pick + Pick >; previewImage?: StorefrontAPI.Maybe< - Pick + Pick >; }) - | ({__typename: 'Model3d'} & Pick< + | ({ __typename: "Model3d" } & Pick< StorefrontAPI.Model3d, - 'id' | 'mediaContentType' | 'alt' + "id" | "mediaContentType" | "alt" > & { sources: Array< - Pick + Pick >; previewImage?: StorefrontAPI.Maybe< - Pick + Pick >; }) - | ({__typename: 'Video'} & Pick< + | ({ __typename: "Video" } & Pick< StorefrontAPI.Video, - 'id' | 'mediaContentType' | 'alt' + "id" | "mediaContentType" | "alt" > & { sources: Array< - Pick + Pick >; previewImage?: StorefrontAPI.Maybe< - Pick + Pick >; }) >; }>; } >; - shop: Pick; + shop: Pick; }; export type HomepageFeaturedProductsQueryVariables = StorefrontAPI.Exact<{ @@ -300,28 +300,28 @@ export type HomepageFeaturedProductsQuery = { nodes: Array< Pick< StorefrontAPI.Product, - 'id' | 'title' | 'publishedAt' | 'handle' | 'vendor' + "id" | "title" | "publishedAt" | "handle" | "vendor" > & { variants: { nodes: Array< Pick< StorefrontAPI.ProductVariant, - 'id' | 'availableForSale' | 'sku' + "id" | "availableForSale" | "sku" > & { image?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Image, - 'url' | 'altText' | 'width' | 'height' + "url" | "altText" | "width" | "height" > >; - price: Pick; + price: Pick; compareAtPrice?: StorefrontAPI.Maybe< - Pick + Pick >; selectedOptions: Array< - Pick + Pick >; - product: Pick; + product: Pick; } >; }; @@ -338,9 +338,9 @@ export type HomepageFeaturedCollectionsQueryVariables = StorefrontAPI.Exact<{ export type HomepageFeaturedCollectionsQuery = { collections: { nodes: Array< - Pick & { + Pick & { image?: StorefrontAPI.Maybe< - Pick + Pick >; } >; @@ -350,19 +350,19 @@ export type HomepageFeaturedCollectionsQuery = { export type ProductInfoQueryVariables = StorefrontAPI.Exact<{ country?: StorefrontAPI.InputMaybe; language?: StorefrontAPI.InputMaybe; - handle: StorefrontAPI.Scalars['String']['input']; + handle: StorefrontAPI.Scalars["String"]["input"]; }>; export type ProductInfoQuery = { product?: StorefrontAPI.Maybe< - Pick + Pick >; }; export type ProductQueryVariables = StorefrontAPI.Exact<{ country?: StorefrontAPI.InputMaybe; language?: StorefrontAPI.InputMaybe; - handle: StorefrontAPI.Scalars['String']['input']; + handle: StorefrontAPI.Scalars["String"]["input"]; selectedOptions: | Array | StorefrontAPI.SelectedOptionInput; @@ -372,74 +372,74 @@ export type ProductQuery = { product?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Product, - 'id' | 'title' | 'vendor' | 'handle' | 'descriptionHtml' | 'description' + "id" | "title" | "vendor" | "handle" | "descriptionHtml" | "description" > & { - options: Array>; + options: Array>; selectedVariant?: StorefrontAPI.Maybe< Pick< StorefrontAPI.ProductVariant, - 'id' | 'availableForSale' | 'quantityAvailable' | 'sku' | 'title' + "id" | "availableForSale" | "quantityAvailable" | "sku" | "title" > & { selectedOptions: Array< - Pick + Pick >; image?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Image, - 'id' | 'url' | 'altText' | 'width' | 'height' + "id" | "url" | "altText" | "width" | "height" > >; - price: Pick; + price: Pick; compareAtPrice?: StorefrontAPI.Maybe< - Pick + Pick >; unitPrice?: StorefrontAPI.Maybe< - Pick + Pick >; - product: Pick; + product: Pick; } >; media: { nodes: Array< - | ({__typename: 'ExternalVideo'} & Pick< + | ({ __typename: "ExternalVideo" } & Pick< StorefrontAPI.ExternalVideo, - 'id' | 'embedUrl' | 'host' | 'mediaContentType' | 'alt' + "id" | "embedUrl" | "host" | "mediaContentType" | "alt" > & { previewImage?: StorefrontAPI.Maybe< - Pick + Pick >; }) - | ({__typename: 'MediaImage'} & Pick< + | ({ __typename: "MediaImage" } & Pick< StorefrontAPI.MediaImage, - 'id' | 'mediaContentType' | 'alt' + "id" | "mediaContentType" | "alt" > & { image?: StorefrontAPI.Maybe< - Pick + Pick >; previewImage?: StorefrontAPI.Maybe< - Pick + Pick >; }) - | ({__typename: 'Model3d'} & Pick< + | ({ __typename: "Model3d" } & Pick< StorefrontAPI.Model3d, - 'id' | 'mediaContentType' | 'alt' + "id" | "mediaContentType" | "alt" > & { sources: Array< - Pick + Pick >; previewImage?: StorefrontAPI.Maybe< - Pick + Pick >; }) - | ({__typename: 'Video'} & Pick< + | ({ __typename: "Video" } & Pick< StorefrontAPI.Video, - 'id' | 'mediaContentType' | 'alt' + "id" | "mediaContentType" | "alt" > & { sources: Array< - Pick + Pick >; previewImage?: StorefrontAPI.Maybe< - Pick + Pick >; }) >; @@ -448,45 +448,45 @@ export type ProductQuery = { nodes: Array< Pick< StorefrontAPI.ProductVariant, - 'id' | 'availableForSale' | 'quantityAvailable' | 'sku' | 'title' + "id" | "availableForSale" | "quantityAvailable" | "sku" | "title" > & { selectedOptions: Array< - Pick + Pick >; image?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Image, - 'id' | 'url' | 'altText' | 'width' | 'height' + "id" | "url" | "altText" | "width" | "height" > >; - price: Pick; + price: Pick; compareAtPrice?: StorefrontAPI.Maybe< - Pick + Pick >; unitPrice?: StorefrontAPI.Maybe< - Pick + Pick >; - product: Pick; + product: Pick; } >; }; - seo: Pick; + seo: Pick; } >; - shop: Pick & { - primaryDomain: Pick; + shop: Pick & { + primaryDomain: Pick; shippingPolicy?: StorefrontAPI.Maybe< - Pick + Pick >; refundPolicy?: StorefrontAPI.Maybe< - Pick + Pick >; }; }; export type ProductRecommendationsQueryVariables = StorefrontAPI.Exact<{ - productId: StorefrontAPI.Scalars['ID']['input']; - count?: StorefrontAPI.InputMaybe; + productId: StorefrontAPI.Scalars["ID"]["input"]; + count?: StorefrontAPI.InputMaybe; country?: StorefrontAPI.InputMaybe; language?: StorefrontAPI.InputMaybe; }>; @@ -496,28 +496,28 @@ export type ProductRecommendationsQuery = { Array< Pick< StorefrontAPI.Product, - 'id' | 'title' | 'publishedAt' | 'handle' | 'vendor' + "id" | "title" | "publishedAt" | "handle" | "vendor" > & { variants: { nodes: Array< Pick< StorefrontAPI.ProductVariant, - 'id' | 'availableForSale' | 'sku' + "id" | "availableForSale" | "sku" > & { image?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Image, - 'url' | 'altText' | 'width' | 'height' + "url" | "altText" | "width" | "height" > >; - price: Pick; + price: Pick; compareAtPrice?: StorefrontAPI.Maybe< - Pick + Pick >; selectedOptions: Array< - Pick + Pick >; - product: Pick; + product: Pick; } >; }; @@ -528,28 +528,28 @@ export type ProductRecommendationsQuery = { nodes: Array< Pick< StorefrontAPI.Product, - 'id' | 'title' | 'publishedAt' | 'handle' | 'vendor' + "id" | "title" | "publishedAt" | "handle" | "vendor" > & { variants: { nodes: Array< Pick< StorefrontAPI.ProductVariant, - 'id' | 'availableForSale' | 'sku' + "id" | "availableForSale" | "sku" > & { image?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Image, - 'url' | 'altText' | 'width' | 'height' + "url" | "altText" | "width" | "height" > >; - price: Pick; + price: Pick; compareAtPrice?: StorefrontAPI.Maybe< - Pick + Pick >; selectedOptions: Array< - Pick + Pick >; - product: Pick; + product: Pick; } >; }; @@ -559,7 +559,7 @@ export type ProductRecommendationsQuery = { }; export type CollectionInfoQueryVariables = StorefrontAPI.Exact<{ - handle: StorefrontAPI.Scalars['String']['input']; + handle: StorefrontAPI.Scalars["String"]["input"]; country?: StorefrontAPI.InputMaybe; language?: StorefrontAPI.InputMaybe; }>; @@ -568,32 +568,32 @@ export type CollectionInfoQuery = { collection?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Collection, - 'id' | 'handle' | 'title' | 'description' + "id" | "handle" | "title" | "description" > & { - seo: Pick; + seo: Pick; image?: StorefrontAPI.Maybe< - Pick + Pick >; } >; }; export type CollectionDetailsQueryVariables = StorefrontAPI.Exact<{ - handle: StorefrontAPI.Scalars['String']['input']; + handle: StorefrontAPI.Scalars["String"]["input"]; country?: StorefrontAPI.InputMaybe; language?: StorefrontAPI.InputMaybe; filters?: StorefrontAPI.InputMaybe< Array | StorefrontAPI.ProductFilter >; sortKey: StorefrontAPI.ProductCollectionSortKeys; - reverse?: StorefrontAPI.InputMaybe; - first?: StorefrontAPI.InputMaybe; - last?: StorefrontAPI.InputMaybe; + reverse?: StorefrontAPI.InputMaybe; + first?: StorefrontAPI.InputMaybe; + last?: StorefrontAPI.InputMaybe; startCursor?: StorefrontAPI.InputMaybe< - StorefrontAPI.Scalars['String']['input'] + StorefrontAPI.Scalars["String"]["input"] >; endCursor?: StorefrontAPI.InputMaybe< - StorefrontAPI.Scalars['String']['input'] + StorefrontAPI.Scalars["String"]["input"] >; }>; @@ -601,19 +601,19 @@ export type CollectionDetailsQuery = { collection?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Collection, - 'id' | 'handle' | 'title' | 'description' + "id" | "handle" | "title" | "description" > & { - seo: Pick; + seo: Pick; image?: StorefrontAPI.Maybe< - Pick + Pick >; products: { filters: Array< - Pick & { + Pick & { values: Array< Pick< StorefrontAPI.FilterValue, - 'id' | 'label' | 'count' | 'input' + "id" | "label" | "count" | "input" > >; } @@ -621,28 +621,28 @@ export type CollectionDetailsQuery = { nodes: Array< Pick< StorefrontAPI.Product, - 'id' | 'title' | 'publishedAt' | 'handle' | 'vendor' + "id" | "title" | "publishedAt" | "handle" | "vendor" > & { variants: { nodes: Array< Pick< StorefrontAPI.ProductVariant, - 'id' | 'availableForSale' | 'sku' + "id" | "availableForSale" | "sku" > & { image?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Image, - 'url' | 'altText' | 'width' | 'height' + "url" | "altText" | "width" | "height" > >; - price: Pick; + price: Pick; compareAtPrice?: StorefrontAPI.Maybe< - Pick + Pick >; selectedOptions: Array< - Pick + Pick >; - product: Pick; + product: Pick; } >; }; @@ -650,26 +650,26 @@ export type CollectionDetailsQuery = { >; pageInfo: Pick< StorefrontAPI.PageInfo, - 'hasPreviousPage' | 'hasNextPage' | 'endCursor' | 'startCursor' + "hasPreviousPage" | "hasNextPage" | "endCursor" | "startCursor" >; }; } >; collections: { - edges: Array<{node: Pick}>; + edges: Array<{ node: Pick }>; }; }; export type CollectionsQueryVariables = StorefrontAPI.Exact<{ country?: StorefrontAPI.InputMaybe; language?: StorefrontAPI.InputMaybe; - first?: StorefrontAPI.InputMaybe; - last?: StorefrontAPI.InputMaybe; + first?: StorefrontAPI.InputMaybe; + last?: StorefrontAPI.InputMaybe; startCursor?: StorefrontAPI.InputMaybe< - StorefrontAPI.Scalars['String']['input'] + StorefrontAPI.Scalars["String"]["input"] >; endCursor?: StorefrontAPI.InputMaybe< - StorefrontAPI.Scalars['String']['input'] + StorefrontAPI.Scalars["String"]["input"] >; }>; @@ -678,20 +678,20 @@ export type CollectionsQuery = { nodes: Array< Pick< StorefrontAPI.Collection, - 'id' | 'title' | 'description' | 'handle' + "id" | "title" | "description" | "handle" > & { - seo: Pick; + seo: Pick; image?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Image, - 'id' | 'url' | 'width' | 'height' | 'altText' + "id" | "url" | "width" | "height" | "altText" > >; } >; pageInfo: Pick< StorefrontAPI.PageInfo, - 'hasPreviousPage' | 'hasNextPage' | 'startCursor' | 'endCursor' + "hasPreviousPage" | "hasNextPage" | "startCursor" | "endCursor" >; }; }; @@ -699,16 +699,16 @@ export type CollectionsQuery = { export type PaginatedProductsSearchQueryVariables = StorefrontAPI.Exact<{ country?: StorefrontAPI.InputMaybe; endCursor?: StorefrontAPI.InputMaybe< - StorefrontAPI.Scalars['String']['input'] + StorefrontAPI.Scalars["String"]["input"] >; - first?: StorefrontAPI.InputMaybe; + first?: StorefrontAPI.InputMaybe; language?: StorefrontAPI.InputMaybe; - last?: StorefrontAPI.InputMaybe; + last?: StorefrontAPI.InputMaybe; searchTerm?: StorefrontAPI.InputMaybe< - StorefrontAPI.Scalars['String']['input'] + StorefrontAPI.Scalars["String"]["input"] >; startCursor?: StorefrontAPI.InputMaybe< - StorefrontAPI.Scalars['String']['input'] + StorefrontAPI.Scalars["String"]["input"] >; }>; @@ -717,28 +717,28 @@ export type PaginatedProductsSearchQuery = { nodes: Array< Pick< StorefrontAPI.Product, - 'id' | 'title' | 'publishedAt' | 'handle' | 'vendor' + "id" | "title" | "publishedAt" | "handle" | "vendor" > & { variants: { nodes: Array< Pick< StorefrontAPI.ProductVariant, - 'id' | 'availableForSale' | 'sku' + "id" | "availableForSale" | "sku" > & { image?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Image, - 'url' | 'altText' | 'width' | 'height' + "url" | "altText" | "width" | "height" > >; - price: Pick; + price: Pick; compareAtPrice?: StorefrontAPI.Maybe< - Pick + Pick >; selectedOptions: Array< - Pick + Pick >; - product: Pick; + product: Pick; } >; }; @@ -746,43 +746,43 @@ export type PaginatedProductsSearchQuery = { >; pageInfo: Pick< StorefrontAPI.PageInfo, - 'startCursor' | 'endCursor' | 'hasNextPage' | 'hasPreviousPage' + "startCursor" | "endCursor" | "hasNextPage" | "hasPreviousPage" >; }; }; export type BlogQueryVariables = StorefrontAPI.Exact<{ language?: StorefrontAPI.InputMaybe; - blogHandle: StorefrontAPI.Scalars['String']['input']; - pageBy: StorefrontAPI.Scalars['Int']['input']; - cursor?: StorefrontAPI.InputMaybe; + blogHandle: StorefrontAPI.Scalars["String"]["input"]; + pageBy: StorefrontAPI.Scalars["Int"]["input"]; + cursor?: StorefrontAPI.InputMaybe; }>; export type BlogQuery = { blog?: StorefrontAPI.Maybe< - Pick & { + Pick & { seo?: StorefrontAPI.Maybe< - Pick + Pick >; articles: { edges: Array<{ node: Pick< StorefrontAPI.Article, - | 'contentHtml' - | 'excerpt' - | 'excerptHtml' - | 'handle' - | 'id' - | 'publishedAt' - | 'title' + | "contentHtml" + | "excerpt" + | "excerptHtml" + | "handle" + | "id" + | "publishedAt" + | "title" > & { author?: StorefrontAPI.Maybe< - Pick + Pick >; image?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Image, - 'id' | 'altText' | 'url' | 'width' | 'height' + "id" | "altText" | "url" | "width" | "height" > >; }; @@ -794,24 +794,24 @@ export type BlogQuery = { export type ArticleFragment = Pick< StorefrontAPI.Article, - | 'contentHtml' - | 'excerpt' - | 'excerptHtml' - | 'handle' - | 'id' - | 'publishedAt' - | 'title' + | "contentHtml" + | "excerpt" + | "excerptHtml" + | "handle" + | "id" + | "publishedAt" + | "title" > & { - author?: StorefrontAPI.Maybe>; + author?: StorefrontAPI.Maybe>; image?: StorefrontAPI.Maybe< - Pick + Pick >; }; export type ArticleDetailsQueryVariables = StorefrontAPI.Exact<{ language?: StorefrontAPI.InputMaybe; - blogHandle: StorefrontAPI.Scalars['String']['input']; - articleHandle: StorefrontAPI.Scalars['String']['input']; + blogHandle: StorefrontAPI.Scalars["String"]["input"]; + articleHandle: StorefrontAPI.Scalars["String"]["input"]; }>; export type ArticleDetailsQuery = { @@ -819,17 +819,17 @@ export type ArticleDetailsQuery = { articleByHandle?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Article, - 'title' | 'contentHtml' | 'publishedAt' | 'tags' + "title" | "contentHtml" | "publishedAt" | "tags" > & { - author?: StorefrontAPI.Maybe>; + author?: StorefrontAPI.Maybe>; image?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Image, - 'id' | 'altText' | 'url' | 'width' | 'height' + "id" | "altText" | "url" | "width" | "height" > >; seo?: StorefrontAPI.Maybe< - Pick + Pick >; } >; @@ -837,21 +837,21 @@ export type ArticleDetailsQuery = { nodes: Array< Pick< StorefrontAPI.Article, - | 'contentHtml' - | 'excerpt' - | 'excerptHtml' - | 'handle' - | 'id' - | 'publishedAt' - | 'title' + | "contentHtml" + | "excerpt" + | "excerptHtml" + | "handle" + | "id" + | "publishedAt" + | "title" > & { author?: StorefrontAPI.Maybe< - Pick + Pick >; image?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Image, - 'id' | 'altText' | 'url' | 'width' | 'height' + "id" | "altText" | "url" | "width" | "height" > >; } @@ -863,13 +863,13 @@ export type ArticleDetailsQuery = { export type AllProductsQueryVariables = StorefrontAPI.Exact<{ country?: StorefrontAPI.InputMaybe; language?: StorefrontAPI.InputMaybe; - first?: StorefrontAPI.InputMaybe; - last?: StorefrontAPI.InputMaybe; + first?: StorefrontAPI.InputMaybe; + last?: StorefrontAPI.InputMaybe; startCursor?: StorefrontAPI.InputMaybe< - StorefrontAPI.Scalars['String']['input'] + StorefrontAPI.Scalars["String"]["input"] >; endCursor?: StorefrontAPI.InputMaybe< - StorefrontAPI.Scalars['String']['input'] + StorefrontAPI.Scalars["String"]["input"] >; }>; @@ -878,28 +878,28 @@ export type AllProductsQuery = { nodes: Array< Pick< StorefrontAPI.Product, - 'id' | 'title' | 'publishedAt' | 'handle' | 'vendor' + "id" | "title" | "publishedAt" | "handle" | "vendor" > & { variants: { nodes: Array< Pick< StorefrontAPI.ProductVariant, - 'id' | 'availableForSale' | 'sku' + "id" | "availableForSale" | "sku" > & { image?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Image, - 'url' | 'altText' | 'width' | 'height' + "url" | "altText" | "width" | "height" > >; - price: Pick; + price: Pick; compareAtPrice?: StorefrontAPI.Maybe< - Pick + Pick >; selectedOptions: Array< - Pick + Pick >; - product: Pick; + product: Pick; } >; }; @@ -907,7 +907,7 @@ export type AllProductsQuery = { >; pageInfo: Pick< StorefrontAPI.PageInfo, - 'hasPreviousPage' | 'hasNextPage' | 'startCursor' | 'endCursor' + "hasPreviousPage" | "hasNextPage" | "startCursor" | "endCursor" >; }; }; @@ -915,7 +915,7 @@ export type AllProductsQuery = { export type VariantsQueryVariables = StorefrontAPI.Exact<{ country?: StorefrontAPI.InputMaybe; language?: StorefrontAPI.InputMaybe; - handle: StorefrontAPI.Scalars['String']['input']; + handle: StorefrontAPI.Scalars["String"]["input"]; }>; export type VariantsQuery = { @@ -924,25 +924,25 @@ export type VariantsQuery = { nodes: Array< Pick< StorefrontAPI.ProductVariant, - 'id' | 'availableForSale' | 'quantityAvailable' | 'sku' | 'title' + "id" | "availableForSale" | "quantityAvailable" | "sku" | "title" > & { selectedOptions: Array< - Pick + Pick >; image?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Image, - 'id' | 'url' | 'altText' | 'width' | 'height' + "id" | "url" | "altText" | "width" | "height" > >; - price: Pick; + price: Pick; compareAtPrice?: StorefrontAPI.Maybe< - Pick + Pick >; unitPrice?: StorefrontAPI.Maybe< - Pick + Pick >; - product: Pick; + product: Pick; } >; }; @@ -950,22 +950,22 @@ export type VariantsQuery = { }; export type MetaObjectsQueryVariables = StorefrontAPI.Exact<{ - type: StorefrontAPI.Scalars['String']['input']; - first?: StorefrontAPI.InputMaybe; + type: StorefrontAPI.Scalars["String"]["input"]; + first?: StorefrontAPI.InputMaybe; }>; export type MetaObjectsQuery = { metaobjects: { nodes: Array< - Pick & { + Pick & { fields: Array< - Pick & { + Pick & { reference?: StorefrontAPI.Maybe< - Pick & { + Pick & { image?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Image, - 'altText' | 'url' | 'width' | 'height' + "altText" | "url" | "width" | "height" > >; } @@ -979,30 +979,30 @@ export type MetaObjectsQuery = { export type LayoutQueryVariables = StorefrontAPI.Exact<{ language?: StorefrontAPI.InputMaybe; - headerMenuHandle: StorefrontAPI.Scalars['String']['input']; - footerMenuHandle: StorefrontAPI.Scalars['String']['input']; + headerMenuHandle: StorefrontAPI.Scalars["String"]["input"]; + footerMenuHandle: StorefrontAPI.Scalars["String"]["input"]; }>; export type LayoutQuery = { - shop: Pick & { - primaryDomain: Pick; + shop: Pick & { + primaryDomain: Pick; brand?: StorefrontAPI.Maybe<{ logo?: StorefrontAPI.Maybe<{ - image?: StorefrontAPI.Maybe>; + image?: StorefrontAPI.Maybe>; }>; }>; }; headerMenu?: StorefrontAPI.Maybe< - Pick & { + Pick & { items: Array< Pick< StorefrontAPI.MenuItem, - 'id' | 'resourceId' | 'tags' | 'title' | 'type' | 'url' + "id" | "resourceId" | "tags" | "title" | "type" | "url" > & { items: Array< Pick< StorefrontAPI.MenuItem, - 'id' | 'resourceId' | 'tags' | 'title' | 'type' | 'url' + "id" | "resourceId" | "tags" | "title" | "type" | "url" > >; } @@ -1010,16 +1010,16 @@ export type LayoutQuery = { } >; footerMenu?: StorefrontAPI.Maybe< - Pick & { + Pick & { items: Array< Pick< StorefrontAPI.MenuItem, - 'id' | 'resourceId' | 'tags' | 'title' | 'type' | 'url' + "id" | "resourceId" | "tags" | "title" | "type" | "url" > & { items: Array< Pick< StorefrontAPI.MenuItem, - 'id' | 'resourceId' | 'tags' | 'title' | 'type' | 'url' + "id" | "resourceId" | "tags" | "title" | "type" | "url" > >; } @@ -1030,48 +1030,48 @@ export type LayoutQuery = { export type ShopFragment = Pick< StorefrontAPI.Shop, - 'id' | 'name' | 'description' + "id" | "name" | "description" > & { - primaryDomain: Pick; + primaryDomain: Pick; brand?: StorefrontAPI.Maybe<{ logo?: StorefrontAPI.Maybe<{ - image?: StorefrontAPI.Maybe>; + image?: StorefrontAPI.Maybe>; }>; }>; }; export type MenuItemFragment = Pick< StorefrontAPI.MenuItem, - 'id' | 'resourceId' | 'tags' | 'title' | 'type' | 'url' + "id" | "resourceId" | "tags" | "title" | "type" | "url" >; export type ChildMenuItemFragment = Pick< StorefrontAPI.MenuItem, - 'id' | 'resourceId' | 'tags' | 'title' | 'type' | 'url' + "id" | "resourceId" | "tags" | "title" | "type" | "url" >; export type ParentMenuItemFragment = Pick< StorefrontAPI.MenuItem, - 'id' | 'resourceId' | 'tags' | 'title' | 'type' | 'url' + "id" | "resourceId" | "tags" | "title" | "type" | "url" > & { items: Array< Pick< StorefrontAPI.MenuItem, - 'id' | 'resourceId' | 'tags' | 'title' | 'type' | 'url' + "id" | "resourceId" | "tags" | "title" | "type" | "url" > >; }; -export type MenuFragment = Pick & { +export type MenuFragment = Pick & { items: Array< Pick< StorefrontAPI.MenuItem, - 'id' | 'resourceId' | 'tags' | 'title' | 'type' | 'url' + "id" | "resourceId" | "tags" | "title" | "type" | "url" > & { items: Array< Pick< StorefrontAPI.MenuItem, - 'id' | 'resourceId' | 'tags' | 'title' | 'type' | 'url' + "id" | "resourceId" | "tags" | "title" | "type" | "url" > >; } @@ -1083,13 +1083,13 @@ export type GetShopPrimaryDomainQueryVariables = StorefrontAPI.Exact<{ }>; export type GetShopPrimaryDomainQuery = { - shop: {primaryDomain: Pick}; + shop: { primaryDomain: Pick }; }; export type ApiAllProductsQueryVariables = StorefrontAPI.Exact<{ - query?: StorefrontAPI.InputMaybe; - count?: StorefrontAPI.InputMaybe; - reverse?: StorefrontAPI.InputMaybe; + query?: StorefrontAPI.InputMaybe; + count?: StorefrontAPI.InputMaybe; + reverse?: StorefrontAPI.InputMaybe; country?: StorefrontAPI.InputMaybe; language?: StorefrontAPI.InputMaybe; sortKey?: StorefrontAPI.InputMaybe; @@ -1100,28 +1100,28 @@ export type ApiAllProductsQuery = { nodes: Array< Pick< StorefrontAPI.Product, - 'id' | 'title' | 'publishedAt' | 'handle' | 'vendor' + "id" | "title" | "publishedAt" | "handle" | "vendor" > & { variants: { nodes: Array< Pick< StorefrontAPI.ProductVariant, - 'id' | 'availableForSale' | 'sku' + "id" | "availableForSale" | "sku" > & { image?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Image, - 'url' | 'altText' | 'width' | 'height' + "url" | "altText" | "width" | "height" > >; - price: Pick; + price: Pick; compareAtPrice?: StorefrontAPI.Maybe< - Pick + Pick >; selectedOptions: Array< - Pick + Pick >; - product: Pick; + product: Pick; } >; }; @@ -1133,15 +1133,15 @@ export type ApiAllProductsQuery = { export type FeaturedItemsQueryVariables = StorefrontAPI.Exact<{ country?: StorefrontAPI.InputMaybe; language?: StorefrontAPI.InputMaybe; - pageBy?: StorefrontAPI.InputMaybe; + pageBy?: StorefrontAPI.InputMaybe; }>; export type FeaturedItemsQuery = { featuredCollections: { nodes: Array< - Pick & { + Pick & { image?: StorefrontAPI.Maybe< - Pick + Pick >; } >; @@ -1150,28 +1150,28 @@ export type FeaturedItemsQuery = { nodes: Array< Pick< StorefrontAPI.Product, - 'id' | 'title' | 'publishedAt' | 'handle' | 'vendor' + "id" | "title" | "publishedAt" | "handle" | "vendor" > & { variants: { nodes: Array< Pick< StorefrontAPI.ProductVariant, - 'id' | 'availableForSale' | 'sku' + "id" | "availableForSale" | "sku" > & { image?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Image, - 'url' | 'altText' | 'width' | 'height' + "url" | "altText" | "width" | "height" > >; - price: Pick; + price: Pick; compareAtPrice?: StorefrontAPI.Maybe< - Pick + Pick >; selectedOptions: Array< - Pick + Pick >; - product: Pick; + product: Pick; } >; }; @@ -1182,14 +1182,14 @@ export type FeaturedItemsQuery = { export type PageDetailsQueryVariables = StorefrontAPI.Exact<{ language?: StorefrontAPI.InputMaybe; - handle: StorefrontAPI.Scalars['String']['input']; + handle: StorefrontAPI.Scalars["String"]["input"]; }>; export type PageDetailsQuery = { page?: StorefrontAPI.Maybe< - Pick & { + Pick & { seo?: StorefrontAPI.Maybe< - Pick + Pick >; } >; @@ -1197,37 +1197,37 @@ export type PageDetailsQuery = { export type PolicyHandleFragment = Pick< StorefrontAPI.ShopPolicy, - 'body' | 'handle' | 'id' | 'title' | 'url' + "body" | "handle" | "id" | "title" | "url" >; export type PoliciesHandleQueryVariables = StorefrontAPI.Exact<{ language?: StorefrontAPI.InputMaybe; - privacyPolicy: StorefrontAPI.Scalars['Boolean']['input']; - shippingPolicy: StorefrontAPI.Scalars['Boolean']['input']; - termsOfService: StorefrontAPI.Scalars['Boolean']['input']; - refundPolicy: StorefrontAPI.Scalars['Boolean']['input']; + privacyPolicy: StorefrontAPI.Scalars["Boolean"]["input"]; + shippingPolicy: StorefrontAPI.Scalars["Boolean"]["input"]; + termsOfService: StorefrontAPI.Scalars["Boolean"]["input"]; + refundPolicy: StorefrontAPI.Scalars["Boolean"]["input"]; }>; export type PoliciesHandleQuery = { shop: { privacyPolicy?: StorefrontAPI.Maybe< - Pick + Pick >; shippingPolicy?: StorefrontAPI.Maybe< - Pick + Pick >; termsOfService?: StorefrontAPI.Maybe< - Pick + Pick >; refundPolicy?: StorefrontAPI.Maybe< - Pick + Pick >; }; }; export type PolicyIndexFragment = Pick< StorefrontAPI.ShopPolicy, - 'id' | 'title' | 'handle' + "id" | "title" | "handle" >; export type PoliciesIndexQueryVariables = StorefrontAPI.Exact<{ @@ -1237,25 +1237,25 @@ export type PoliciesIndexQueryVariables = StorefrontAPI.Exact<{ export type PoliciesIndexQuery = { shop: { privacyPolicy?: StorefrontAPI.Maybe< - Pick + Pick >; shippingPolicy?: StorefrontAPI.Maybe< - Pick + Pick >; termsOfService?: StorefrontAPI.Maybe< - Pick + Pick >; refundPolicy?: StorefrontAPI.Maybe< - Pick + Pick >; subscriptionPolicy?: StorefrontAPI.Maybe< - Pick + Pick >; }; }; export type SitemapsQueryVariables = StorefrontAPI.Exact<{ - urlLimits?: StorefrontAPI.InputMaybe; + urlLimits?: StorefrontAPI.InputMaybe; language?: StorefrontAPI.InputMaybe; }>; @@ -1264,28 +1264,28 @@ export type SitemapsQuery = { nodes: Array< Pick< StorefrontAPI.Product, - 'updatedAt' | 'handle' | 'onlineStoreUrl' | 'title' + "updatedAt" | "handle" | "onlineStoreUrl" | "title" > & { featuredImage?: StorefrontAPI.Maybe< - Pick + Pick >; } >; }; collections: { nodes: Array< - Pick + Pick >; }; pages: { nodes: Array< - Pick + Pick >; }; }; interface GeneratedQueryTypes { - '#graphql\n query shopQuery($country: CountryCode, $language: LanguageCode)\n @inContext(country: $country, language: $language) {\n shop {\n name\n description\n }\n }\n': { + "#graphql\n query shopQuery($country: CountryCode, $language: LanguageCode)\n @inContext(country: $country, language: $language) {\n shop {\n name\n description\n }\n }\n": { return: ShopQueryQuery; variables: ShopQueryQueryVariables; }; @@ -1293,91 +1293,91 @@ interface GeneratedQueryTypes { return: SeoCollectionContentQuery; variables: SeoCollectionContentQueryVariables; }; - '#graphql\n query homepageFeaturedProducts($country: CountryCode, $language: LanguageCode)\n @inContext(country: $country, language: $language) {\n products(first: 8) {\n nodes {\n ...ProductCard\n }\n }\n }\n #graphql\n fragment ProductCard on Product {\n id\n title\n publishedAt\n handle\n vendor\n variants(first: 1) {\n nodes {\n id\n availableForSale\n image {\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n selectedOptions {\n name\n value\n }\n product {\n handle\n title\n }\n sku\n }\n }\n }\n\n': { + "#graphql\n query homepageFeaturedProducts($country: CountryCode, $language: LanguageCode)\n @inContext(country: $country, language: $language) {\n products(first: 8) {\n nodes {\n ...ProductCard\n }\n }\n }\n #graphql\n fragment ProductCard on Product {\n id\n title\n publishedAt\n handle\n vendor\n variants(first: 1) {\n nodes {\n id\n availableForSale\n image {\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n selectedOptions {\n name\n value\n }\n product {\n handle\n title\n }\n sku\n }\n }\n }\n\n": { return: HomepageFeaturedProductsQuery; variables: HomepageFeaturedProductsQueryVariables; }; - '#graphql\n query homepageFeaturedCollections($country: CountryCode, $language: LanguageCode)\n @inContext(country: $country, language: $language) {\n collections(\n first: 4,\n sortKey: UPDATED_AT\n ) {\n nodes {\n id\n title\n handle\n image {\n altText\n width\n height\n url\n }\n }\n }\n }\n': { + "#graphql\n query homepageFeaturedCollections($country: CountryCode, $language: LanguageCode)\n @inContext(country: $country, language: $language) {\n collections(\n first: 4,\n sortKey: UPDATED_AT\n ) {\n nodes {\n id\n title\n handle\n image {\n altText\n width\n height\n url\n }\n }\n }\n }\n": { return: HomepageFeaturedCollectionsQuery; variables: HomepageFeaturedCollectionsQueryVariables; }; - '#graphql\n query ProductInfo(\n $country: CountryCode\n $language: LanguageCode\n $handle: String!\n ) @inContext(country: $country, language: $language) {\n product(handle: $handle) {\n id\n title\n vendor\n handle\n }\n }\n': { + "#graphql\n query ProductInfo(\n $country: CountryCode\n $language: LanguageCode\n $handle: String!\n ) @inContext(country: $country, language: $language) {\n product(handle: $handle) {\n id\n title\n vendor\n handle\n }\n }\n": { return: ProductInfoQuery; variables: ProductInfoQueryVariables; }; - '#graphql\n query Product(\n $country: CountryCode\n $language: LanguageCode\n $handle: String!\n $selectedOptions: [SelectedOptionInput!]!\n ) @inContext(country: $country, language: $language) {\n product(handle: $handle) {\n id\n title\n vendor\n handle\n descriptionHtml\n description\n options {\n name\n values\n }\n selectedVariant: variantBySelectedOptions(selectedOptions: $selectedOptions, ignoreUnknownOptions: true, caseInsensitiveMatch: true) {\n ...ProductVariantFragment\n }\n media(first: 7) {\n nodes {\n ...Media\n }\n }\n variants(first: 1) {\n nodes {\n ...ProductVariantFragment\n }\n }\n seo {\n description\n title\n }\n }\n shop {\n name\n primaryDomain {\n url\n }\n shippingPolicy {\n body\n handle\n }\n refundPolicy {\n body\n handle\n }\n }\n }\n #graphql\n fragment Media on Media {\n __typename\n mediaContentType\n alt\n previewImage {\n url\n }\n ... on MediaImage {\n id\n image {\n id\n url\n width\n height\n }\n }\n ... on Video {\n id\n sources {\n mimeType\n url\n }\n }\n ... on Model3d {\n id\n sources {\n mimeType\n url\n }\n }\n ... on ExternalVideo {\n id\n embedUrl\n host\n }\n }\n\n #graphql\n fragment ProductVariantFragment on ProductVariant {\n id\n availableForSale\n quantityAvailable\n selectedOptions {\n name\n value\n }\n image {\n id\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n sku\n title\n unitPrice {\n amount\n currencyCode\n }\n product {\n title\n handle\n }\n }\n\n': { + "#graphql\n query Product(\n $country: CountryCode\n $language: LanguageCode\n $handle: String!\n $selectedOptions: [SelectedOptionInput!]!\n ) @inContext(country: $country, language: $language) {\n product(handle: $handle) {\n id\n title\n vendor\n handle\n descriptionHtml\n description\n options {\n name\n values\n }\n selectedVariant: variantBySelectedOptions(selectedOptions: $selectedOptions, ignoreUnknownOptions: true, caseInsensitiveMatch: true) {\n ...ProductVariantFragment\n }\n media(first: 7) {\n nodes {\n ...Media\n }\n }\n variants(first: 1) {\n nodes {\n ...ProductVariantFragment\n }\n }\n seo {\n description\n title\n }\n }\n shop {\n name\n primaryDomain {\n url\n }\n shippingPolicy {\n body\n handle\n }\n refundPolicy {\n body\n handle\n }\n }\n }\n #graphql\n fragment Media on Media {\n __typename\n mediaContentType\n alt\n previewImage {\n url\n }\n ... on MediaImage {\n id\n image {\n id\n url\n width\n height\n }\n }\n ... on Video {\n id\n sources {\n mimeType\n url\n }\n }\n ... on Model3d {\n id\n sources {\n mimeType\n url\n }\n }\n ... on ExternalVideo {\n id\n embedUrl\n host\n }\n }\n\n #graphql\n fragment ProductVariantFragment on ProductVariant {\n id\n availableForSale\n quantityAvailable\n selectedOptions {\n name\n value\n }\n image {\n id\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n sku\n title\n unitPrice {\n amount\n currencyCode\n }\n product {\n title\n handle\n }\n }\n\n": { return: ProductQuery; variables: ProductQueryVariables; }; - '#graphql\n query productRecommendations(\n $productId: ID!\n $count: Int\n $country: CountryCode\n $language: LanguageCode\n ) @inContext(country: $country, language: $language) {\n recommended: productRecommendations(productId: $productId) {\n ...ProductCard\n }\n additional: products(first: $count, sortKey: BEST_SELLING) {\n nodes {\n ...ProductCard\n }\n }\n }\n #graphql\n fragment ProductCard on Product {\n id\n title\n publishedAt\n handle\n vendor\n variants(first: 1) {\n nodes {\n id\n availableForSale\n image {\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n selectedOptions {\n name\n value\n }\n product {\n handle\n title\n }\n sku\n }\n }\n }\n\n': { + "#graphql\n query productRecommendations(\n $productId: ID!\n $count: Int\n $country: CountryCode\n $language: LanguageCode\n ) @inContext(country: $country, language: $language) {\n recommended: productRecommendations(productId: $productId) {\n ...ProductCard\n }\n additional: products(first: $count, sortKey: BEST_SELLING) {\n nodes {\n ...ProductCard\n }\n }\n }\n #graphql\n fragment ProductCard on Product {\n id\n title\n publishedAt\n handle\n vendor\n variants(first: 1) {\n nodes {\n id\n availableForSale\n image {\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n selectedOptions {\n name\n value\n }\n product {\n handle\n title\n }\n sku\n }\n }\n }\n\n": { return: ProductRecommendationsQuery; variables: ProductRecommendationsQueryVariables; }; - '#graphql\n query CollectionInfo(\n $handle: String!,\n $country: CountryCode,\n $language: LanguageCode\n ) @inContext(country: $country, language: $language) {\n collection(handle: $handle) {\n id\n handle\n title\n description\n seo {\n description\n title\n }\n image {\n id\n url\n width\n height\n altText\n }\n }\n }\n': { + "#graphql\n query CollectionInfo(\n $handle: String!,\n $country: CountryCode,\n $language: LanguageCode\n ) @inContext(country: $country, language: $language) {\n collection(handle: $handle) {\n id\n handle\n title\n description\n seo {\n description\n title\n }\n image {\n id\n url\n width\n height\n altText\n }\n }\n }\n": { return: CollectionInfoQuery; variables: CollectionInfoQueryVariables; }; - '#graphql\n query CollectionDetails(\n $handle: String!\n $country: CountryCode\n $language: LanguageCode\n $filters: [ProductFilter!]\n $sortKey: ProductCollectionSortKeys!\n $reverse: Boolean\n $first: Int\n $last: Int\n $startCursor: String\n $endCursor: String\n ) @inContext(country: $country, language: $language) {\n collection(handle: $handle) {\n id\n handle\n title\n description\n seo {\n description\n title\n }\n image {\n id\n url\n width\n height\n altText\n }\n products(\n first: $first,\n last: $last,\n before: $startCursor,\n after: $endCursor,\n filters: $filters,\n sortKey: $sortKey,\n reverse: $reverse\n ) {\n filters {\n id\n label\n type\n values {\n id\n label\n count\n input\n }\n }\n nodes {\n ...ProductCard\n }\n pageInfo {\n hasPreviousPage\n hasNextPage\n endCursor\n startCursor\n }\n }\n }\n collections(first: 100) {\n edges {\n node {\n title\n handle\n }\n }\n }\n }\n #graphql\n fragment ProductCard on Product {\n id\n title\n publishedAt\n handle\n vendor\n variants(first: 1) {\n nodes {\n id\n availableForSale\n image {\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n selectedOptions {\n name\n value\n }\n product {\n handle\n title\n }\n sku\n }\n }\n }\n\n': { + "#graphql\n query CollectionDetails(\n $handle: String!\n $country: CountryCode\n $language: LanguageCode\n $filters: [ProductFilter!]\n $sortKey: ProductCollectionSortKeys!\n $reverse: Boolean\n $first: Int\n $last: Int\n $startCursor: String\n $endCursor: String\n ) @inContext(country: $country, language: $language) {\n collection(handle: $handle) {\n id\n handle\n title\n description\n seo {\n description\n title\n }\n image {\n id\n url\n width\n height\n altText\n }\n products(\n first: $first,\n last: $last,\n before: $startCursor,\n after: $endCursor,\n filters: $filters,\n sortKey: $sortKey,\n reverse: $reverse\n ) {\n filters {\n id\n label\n type\n values {\n id\n label\n count\n input\n }\n }\n nodes {\n ...ProductCard\n }\n pageInfo {\n hasPreviousPage\n hasNextPage\n endCursor\n startCursor\n }\n }\n }\n collections(first: 100) {\n edges {\n node {\n title\n handle\n }\n }\n }\n }\n #graphql\n fragment ProductCard on Product {\n id\n title\n publishedAt\n handle\n vendor\n variants(first: 1) {\n nodes {\n id\n availableForSale\n image {\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n selectedOptions {\n name\n value\n }\n product {\n handle\n title\n }\n sku\n }\n }\n }\n\n": { return: CollectionDetailsQuery; variables: CollectionDetailsQueryVariables; }; - '#graphql\n query Collections(\n $country: CountryCode\n $language: LanguageCode\n $first: Int\n $last: Int\n $startCursor: String\n $endCursor: String\n ) @inContext(country: $country, language: $language) {\n collections(first: $first, last: $last, before: $startCursor, after: $endCursor) {\n nodes {\n id\n title\n description\n handle\n seo {\n description\n title\n }\n image {\n id\n url\n width\n height\n altText\n }\n }\n pageInfo {\n hasPreviousPage\n hasNextPage\n startCursor\n endCursor\n }\n }\n }\n': { + "#graphql\n query Collections(\n $country: CountryCode\n $language: LanguageCode\n $first: Int\n $last: Int\n $startCursor: String\n $endCursor: String\n ) @inContext(country: $country, language: $language) {\n collections(first: $first, last: $last, before: $startCursor, after: $endCursor) {\n nodes {\n id\n title\n description\n handle\n seo {\n description\n title\n }\n image {\n id\n url\n width\n height\n altText\n }\n }\n pageInfo {\n hasPreviousPage\n hasNextPage\n startCursor\n endCursor\n }\n }\n }\n": { return: CollectionsQuery; variables: CollectionsQueryVariables; }; - '#graphql\n query PaginatedProductsSearch(\n $country: CountryCode\n $endCursor: String\n $first: Int\n $language: LanguageCode\n $last: Int\n $searchTerm: String\n $startCursor: String\n ) @inContext(country: $country, language: $language) {\n products(\n first: $first,\n last: $last,\n before: $startCursor,\n after: $endCursor,\n sortKey: RELEVANCE,\n query: $searchTerm\n ) {\n nodes {\n ...ProductCard\n }\n pageInfo {\n startCursor\n endCursor\n hasNextPage\n hasPreviousPage\n }\n }\n }\n\n #graphql\n fragment ProductCard on Product {\n id\n title\n publishedAt\n handle\n vendor\n variants(first: 1) {\n nodes {\n id\n availableForSale\n image {\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n selectedOptions {\n name\n value\n }\n product {\n handle\n title\n }\n sku\n }\n }\n }\n\n': { + "#graphql\n query PaginatedProductsSearch(\n $country: CountryCode\n $endCursor: String\n $first: Int\n $language: LanguageCode\n $last: Int\n $searchTerm: String\n $startCursor: String\n ) @inContext(country: $country, language: $language) {\n products(\n first: $first,\n last: $last,\n before: $startCursor,\n after: $endCursor,\n sortKey: RELEVANCE,\n query: $searchTerm\n ) {\n nodes {\n ...ProductCard\n }\n pageInfo {\n startCursor\n endCursor\n hasNextPage\n hasPreviousPage\n }\n }\n }\n\n #graphql\n fragment ProductCard on Product {\n id\n title\n publishedAt\n handle\n vendor\n variants(first: 1) {\n nodes {\n id\n availableForSale\n image {\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n selectedOptions {\n name\n value\n }\n product {\n handle\n title\n }\n sku\n }\n }\n }\n\n": { return: PaginatedProductsSearchQuery; variables: PaginatedProductsSearchQueryVariables; }; - '#graphql\n query Blog(\n $language: LanguageCode\n $blogHandle: String!\n $pageBy: Int!\n $cursor: String\n ) @inContext(language: $language) {\n blog(handle: $blogHandle) {\n title\n handle\n seo {\n title\n description\n }\n articles(first: $pageBy, after: $cursor) {\n edges {\n node {\n ...Article\n }\n }\n }\n }\n }\n\n fragment Article on Article {\n author: authorV2 {\n name\n }\n contentHtml\n excerpt\n excerptHtml\n handle\n id\n image {\n id\n altText\n url\n width\n height\n }\n publishedAt\n title\n }\n': { + "#graphql\n query Blog(\n $language: LanguageCode\n $blogHandle: String!\n $pageBy: Int!\n $cursor: String\n ) @inContext(language: $language) {\n blog(handle: $blogHandle) {\n title\n handle\n seo {\n title\n description\n }\n articles(first: $pageBy, after: $cursor) {\n edges {\n node {\n ...Article\n }\n }\n }\n }\n }\n\n fragment Article on Article {\n author: authorV2 {\n name\n }\n contentHtml\n excerpt\n excerptHtml\n handle\n id\n image {\n id\n altText\n url\n width\n height\n }\n publishedAt\n title\n }\n": { return: BlogQuery; variables: BlogQueryVariables; }; - '#graphql\n query ArticleDetails(\n $language: LanguageCode\n $blogHandle: String!\n $articleHandle: String!\n ) @inContext(language: $language) {\n blog(handle: $blogHandle) {\n articleByHandle(handle: $articleHandle) {\n title\n contentHtml\n publishedAt\n tags\n author: authorV2 {\n name\n }\n image {\n id\n altText\n url\n width\n height\n }\n seo {\n description\n title\n }\n }\n articles (first: 20) {\n nodes {\n ...Article\n }\n }\n }\n }\n fragment Article on Article {\n author: authorV2 {\n name\n }\n contentHtml\n excerpt\n excerptHtml\n handle\n id\n image {\n id\n altText\n url\n width\n height\n }\n publishedAt\n title\n }\n': { + "#graphql\n query ArticleDetails(\n $language: LanguageCode\n $blogHandle: String!\n $articleHandle: String!\n ) @inContext(language: $language) {\n blog(handle: $blogHandle) {\n articleByHandle(handle: $articleHandle) {\n title\n contentHtml\n publishedAt\n tags\n author: authorV2 {\n name\n }\n image {\n id\n altText\n url\n width\n height\n }\n seo {\n description\n title\n }\n }\n articles (first: 20) {\n nodes {\n ...Article\n }\n }\n }\n }\n fragment Article on Article {\n author: authorV2 {\n name\n }\n contentHtml\n excerpt\n excerptHtml\n handle\n id\n image {\n id\n altText\n url\n width\n height\n }\n publishedAt\n title\n }\n": { return: ArticleDetailsQuery; variables: ArticleDetailsQueryVariables; }; - '#graphql\n query AllProducts(\n $country: CountryCode\n $language: LanguageCode\n $first: Int\n $last: Int\n $startCursor: String\n $endCursor: String\n ) @inContext(country: $country, language: $language) {\n products(first: $first, last: $last, before: $startCursor, after: $endCursor) {\n nodes {\n ...ProductCard\n }\n pageInfo {\n hasPreviousPage\n hasNextPage\n startCursor\n endCursor\n }\n }\n }\n #graphql\n fragment ProductCard on Product {\n id\n title\n publishedAt\n handle\n vendor\n variants(first: 1) {\n nodes {\n id\n availableForSale\n image {\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n selectedOptions {\n name\n value\n }\n product {\n handle\n title\n }\n sku\n }\n }\n }\n\n': { + "#graphql\n query AllProducts(\n $country: CountryCode\n $language: LanguageCode\n $first: Int\n $last: Int\n $startCursor: String\n $endCursor: String\n ) @inContext(country: $country, language: $language) {\n products(first: $first, last: $last, before: $startCursor, after: $endCursor) {\n nodes {\n ...ProductCard\n }\n pageInfo {\n hasPreviousPage\n hasNextPage\n startCursor\n endCursor\n }\n }\n }\n #graphql\n fragment ProductCard on Product {\n id\n title\n publishedAt\n handle\n vendor\n variants(first: 1) {\n nodes {\n id\n availableForSale\n image {\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n selectedOptions {\n name\n value\n }\n product {\n handle\n title\n }\n sku\n }\n }\n }\n\n": { return: AllProductsQuery; variables: AllProductsQueryVariables; }; - '#graphql\n query variants(\n $country: CountryCode\n $language: LanguageCode\n $handle: String!\n ) @inContext(country: $country, language: $language) {\n product(handle: $handle) {\n variants(first: 250) {\n nodes {\n ...ProductVariantFragment\n }\n }\n }\n }\n #graphql\n fragment ProductVariantFragment on ProductVariant {\n id\n availableForSale\n quantityAvailable\n selectedOptions {\n name\n value\n }\n image {\n id\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n sku\n title\n unitPrice {\n amount\n currencyCode\n }\n product {\n title\n handle\n }\n }\n\n': { + "#graphql\n query variants(\n $country: CountryCode\n $language: LanguageCode\n $handle: String!\n ) @inContext(country: $country, language: $language) {\n product(handle: $handle) {\n variants(first: 250) {\n nodes {\n ...ProductVariantFragment\n }\n }\n }\n }\n #graphql\n fragment ProductVariantFragment on ProductVariant {\n id\n availableForSale\n quantityAvailable\n selectedOptions {\n name\n value\n }\n image {\n id\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n sku\n title\n unitPrice {\n amount\n currencyCode\n }\n product {\n title\n handle\n }\n }\n\n": { return: VariantsQuery; variables: VariantsQueryVariables; }; - '#graphql\n query MetaObjects ($type: String!, $first: Int)\n {\n metaobjects(type: $type, first: $first) {\n nodes {\n fields {\n key\n type\n value\n reference {\n ... on MediaImage {\n alt\n image {\n altText\n url\n width\n height\n }\n }\n }\n }\n handle\n id\n type\n }\n }\n }\n ': { + "#graphql\n query MetaObjects ($type: String!, $first: Int)\n {\n metaobjects(type: $type, first: $first) {\n nodes {\n fields {\n key\n type\n value\n reference {\n ... on MediaImage {\n alt\n image {\n altText\n url\n width\n height\n }\n }\n }\n }\n handle\n id\n type\n }\n }\n }\n ": { return: MetaObjectsQuery; variables: MetaObjectsQueryVariables; }; - '#graphql\n query layout(\n $language: LanguageCode\n $headerMenuHandle: String!\n $footerMenuHandle: String!\n ) @inContext(language: $language) {\n shop {\n ...Shop\n }\n headerMenu: menu(handle: $headerMenuHandle) {\n ...Menu\n }\n footerMenu: menu(handle: $footerMenuHandle) {\n ...Menu\n }\n }\n fragment Shop on Shop {\n id\n name\n description\n primaryDomain {\n url\n }\n brand {\n logo {\n image {\n url\n }\n }\n }\n }\n fragment MenuItem on MenuItem {\n id\n resourceId\n tags\n title\n type\n url\n }\n fragment ChildMenuItem on MenuItem {\n ...MenuItem\n }\n fragment ParentMenuItem on MenuItem {\n ...MenuItem\n items {\n ...ChildMenuItem\n }\n }\n fragment Menu on Menu {\n id\n items {\n ...ParentMenuItem\n }\n }\n': { + "#graphql\n query layout(\n $language: LanguageCode\n $headerMenuHandle: String!\n $footerMenuHandle: String!\n ) @inContext(language: $language) {\n shop {\n ...Shop\n }\n headerMenu: menu(handle: $headerMenuHandle) {\n ...Menu\n }\n footerMenu: menu(handle: $footerMenuHandle) {\n ...Menu\n }\n }\n fragment Shop on Shop {\n id\n name\n description\n primaryDomain {\n url\n }\n brand {\n logo {\n image {\n url\n }\n }\n }\n }\n fragment MenuItem on MenuItem {\n id\n resourceId\n tags\n title\n type\n url\n }\n fragment ChildMenuItem on MenuItem {\n ...MenuItem\n }\n fragment ParentMenuItem on MenuItem {\n ...MenuItem\n items {\n ...ChildMenuItem\n }\n }\n fragment Menu on Menu {\n id\n items {\n ...ParentMenuItem\n }\n }\n": { return: LayoutQuery; variables: LayoutQueryVariables; }; - '#graphql\n query getShopPrimaryDomain { shop { primaryDomain { url } } }\n ': { + "#graphql\n query getShopPrimaryDomain { shop { primaryDomain { url } } }\n ": { return: GetShopPrimaryDomainQuery; variables: GetShopPrimaryDomainQueryVariables; }; - '#graphql\n query ApiAllProducts(\n $query: String\n $count: Int\n $reverse: Boolean\n $country: CountryCode\n $language: LanguageCode\n $sortKey: ProductSortKeys\n ) @inContext(country: $country, language: $language) {\n products(first: $count, sortKey: $sortKey, reverse: $reverse, query: $query) {\n nodes {\n ...ProductCard\n }\n }\n }\n #graphql\n fragment ProductCard on Product {\n id\n title\n publishedAt\n handle\n vendor\n variants(first: 1) {\n nodes {\n id\n availableForSale\n image {\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n selectedOptions {\n name\n value\n }\n product {\n handle\n title\n }\n sku\n }\n }\n }\n\n': { + "#graphql\n query ApiAllProducts(\n $query: String\n $count: Int\n $reverse: Boolean\n $country: CountryCode\n $language: LanguageCode\n $sortKey: ProductSortKeys\n ) @inContext(country: $country, language: $language) {\n products(first: $count, sortKey: $sortKey, reverse: $reverse, query: $query) {\n nodes {\n ...ProductCard\n }\n }\n }\n #graphql\n fragment ProductCard on Product {\n id\n title\n publishedAt\n handle\n vendor\n variants(first: 1) {\n nodes {\n id\n availableForSale\n image {\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n selectedOptions {\n name\n value\n }\n product {\n handle\n title\n }\n sku\n }\n }\n }\n\n": { return: ApiAllProductsQuery; variables: ApiAllProductsQueryVariables; }; - '#graphql\n query FeaturedItems(\n $country: CountryCode\n $language: LanguageCode\n $pageBy: Int = 12\n ) @inContext(country: $country, language: $language) {\n featuredCollections: collections(first: 3, sortKey: UPDATED_AT) {\n nodes {\n ...FeaturedCollectionDetails\n }\n }\n featuredProducts: products(first: $pageBy) {\n nodes {\n ...ProductCard\n }\n }\n }\n\n #graphql\n fragment ProductCard on Product {\n id\n title\n publishedAt\n handle\n vendor\n variants(first: 1) {\n nodes {\n id\n availableForSale\n image {\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n selectedOptions {\n name\n value\n }\n product {\n handle\n title\n }\n sku\n }\n }\n }\n\n #graphql\n fragment FeaturedCollectionDetails on Collection {\n id\n title\n handle\n image {\n altText\n width\n height\n url\n }\n }\n\n': { + "#graphql\n query FeaturedItems(\n $country: CountryCode\n $language: LanguageCode\n $pageBy: Int = 12\n ) @inContext(country: $country, language: $language) {\n featuredCollections: collections(first: 3, sortKey: UPDATED_AT) {\n nodes {\n ...FeaturedCollectionDetails\n }\n }\n featuredProducts: products(first: $pageBy) {\n nodes {\n ...ProductCard\n }\n }\n }\n\n #graphql\n fragment ProductCard on Product {\n id\n title\n publishedAt\n handle\n vendor\n variants(first: 1) {\n nodes {\n id\n availableForSale\n image {\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n selectedOptions {\n name\n value\n }\n product {\n handle\n title\n }\n sku\n }\n }\n }\n\n #graphql\n fragment FeaturedCollectionDetails on Collection {\n id\n title\n handle\n image {\n altText\n width\n height\n url\n }\n }\n\n": { return: FeaturedItemsQuery; variables: FeaturedItemsQueryVariables; }; - '#graphql\n query PageDetails($language: LanguageCode, $handle: String!)\n @inContext(language: $language) {\n page(handle: $handle) {\n id\n title\n body\n seo {\n description\n title\n }\n }\n }\n': { + "#graphql\n query PageDetails($language: LanguageCode, $handle: String!)\n @inContext(language: $language) {\n page(handle: $handle) {\n id\n title\n body\n seo {\n description\n title\n }\n }\n }\n": { return: PageDetailsQuery; variables: PageDetailsQueryVariables; }; - '#graphql\n fragment PolicyHandle on ShopPolicy {\n body\n handle\n id\n title\n url\n }\n\n query PoliciesHandle(\n $language: LanguageCode\n $privacyPolicy: Boolean!\n $shippingPolicy: Boolean!\n $termsOfService: Boolean!\n $refundPolicy: Boolean!\n ) @inContext(language: $language) {\n shop {\n privacyPolicy @include(if: $privacyPolicy) {\n ...PolicyHandle\n }\n shippingPolicy @include(if: $shippingPolicy) {\n ...PolicyHandle\n }\n termsOfService @include(if: $termsOfService) {\n ...PolicyHandle\n }\n refundPolicy @include(if: $refundPolicy) {\n ...PolicyHandle\n }\n }\n }\n': { + "#graphql\n fragment PolicyHandle on ShopPolicy {\n body\n handle\n id\n title\n url\n }\n\n query PoliciesHandle(\n $language: LanguageCode\n $privacyPolicy: Boolean!\n $shippingPolicy: Boolean!\n $termsOfService: Boolean!\n $refundPolicy: Boolean!\n ) @inContext(language: $language) {\n shop {\n privacyPolicy @include(if: $privacyPolicy) {\n ...PolicyHandle\n }\n shippingPolicy @include(if: $shippingPolicy) {\n ...PolicyHandle\n }\n termsOfService @include(if: $termsOfService) {\n ...PolicyHandle\n }\n refundPolicy @include(if: $refundPolicy) {\n ...PolicyHandle\n }\n }\n }\n": { return: PoliciesHandleQuery; variables: PoliciesHandleQueryVariables; }; - '#graphql\n fragment PolicyIndex on ShopPolicy {\n id\n title\n handle\n }\n\n query PoliciesIndex {\n shop {\n privacyPolicy {\n ...PolicyIndex\n }\n shippingPolicy {\n ...PolicyIndex\n }\n termsOfService {\n ...PolicyIndex\n }\n refundPolicy {\n ...PolicyIndex\n }\n subscriptionPolicy {\n id\n title\n handle\n }\n }\n }\n': { + "#graphql\n fragment PolicyIndex on ShopPolicy {\n id\n title\n handle\n }\n\n query PoliciesIndex {\n shop {\n privacyPolicy {\n ...PolicyIndex\n }\n shippingPolicy {\n ...PolicyIndex\n }\n termsOfService {\n ...PolicyIndex\n }\n refundPolicy {\n ...PolicyIndex\n }\n subscriptionPolicy {\n id\n title\n handle\n }\n }\n }\n": { return: PoliciesIndexQuery; variables: PoliciesIndexQueryVariables; }; - '#graphql\n query sitemaps($urlLimits: Int, $language: LanguageCode)\n @inContext(language: $language) {\n products(\n first: $urlLimits\n query: "published_status:\'online_store:visible\'"\n ) {\n nodes {\n updatedAt\n handle\n onlineStoreUrl\n title\n featuredImage {\n url\n altText\n }\n }\n }\n collections(\n first: $urlLimits\n query: "published_status:\'online_store:visible\'"\n ) {\n nodes {\n updatedAt\n handle\n onlineStoreUrl\n }\n }\n pages(first: $urlLimits, query: "published_status:\'published\'") {\n nodes {\n updatedAt\n handle\n onlineStoreUrl\n }\n }\n }\n': { + "#graphql\n query sitemaps($urlLimits: Int, $language: LanguageCode)\n @inContext(language: $language) {\n products(\n first: $urlLimits\n query: \"published_status:'online_store:visible'\"\n ) {\n nodes {\n updatedAt\n handle\n onlineStoreUrl\n title\n featuredImage {\n url\n altText\n }\n }\n }\n collections(\n first: $urlLimits\n query: \"published_status:'online_store:visible'\"\n ) {\n nodes {\n updatedAt\n handle\n onlineStoreUrl\n }\n }\n pages(first: $urlLimits, query: \"published_status:'published'\") {\n nodes {\n updatedAt\n handle\n onlineStoreUrl\n }\n }\n }\n": { return: SitemapsQuery; variables: SitemapsQueryVariables; }; @@ -1385,7 +1385,7 @@ interface GeneratedQueryTypes { interface GeneratedMutationTypes {} -declare module '@shopify/hydrogen' { +declare module "@shopify/hydrogen" { interface StorefrontQueries extends GeneratedQueryTypes {} interface StorefrontMutations extends GeneratedMutationTypes {} } From 02b9991cf7af4458ba968982ff1ca0029d771f6e Mon Sep 17 00:00:00 2001 From: hta218 Date: Tue, 21 May 2024 14:31:43 +0700 Subject: [PATCH 2/5] Remove eslint's `import/order` rule --- .eslintrc.cjs | 28 ---------------------------- 1 file changed, 28 deletions(-) diff --git a/.eslintrc.cjs b/.eslintrc.cjs index e517ed9e..93ef3bd9 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -13,35 +13,7 @@ module.exports = { // TODO: Remove jest plugin from hydrogen/eslint-plugin "jest/no-deprecated-functions": "off", "react/display-name": "off", - "import/order": [ - "warn", - { - /** - * @description - * - * This keeps imports separate from one another, ensuring that imports are separated - * by their relative groups. As you move through the groups, imports become closer - * to the current file. - * - * @example - * ``` - * import fs from 'fs'; - * - * import package from 'npm-package'; - * - * import xyz from '~/project-file'; - * - * import index from '../'; - * - * import sibling from './foo'; - * ``` - */ - groups: ["builtin", "external", "internal", "parent", "sibling"], - "newlines-between": "always", - }, - ], "prefer-const": "off", - "jsx-a11y/click-events-have-key-events": "warn", "jsx-a11y/no-static-element-interactions": "warn", "jsx-a11y/label-has-associated-control": "warn", }, From 2d30a38cb0151eab4023e6bfb0c4a48fca916610 Mon Sep 17 00:00:00 2001 From: hta218 Date: Tue, 21 May 2024 14:31:52 +0700 Subject: [PATCH 3/5] Lint fix --- app/components/CountrySelector.tsx | 1 + app/components/CustomAnalytics.tsx | 3 ++- app/components/product-form/options.tsx | 1 + app/components/product-form/product-media.tsx | 1 + app/components/product-form/variants.tsx | 3 --- app/routes/($locale).cart.tsx | 2 +- .../($locale).collections.$collectionHandle.tsx | 3 ++- app/routes/($locale).search.tsx | 5 +++-- app/sections/SlideShow/SlideShow.tsx | 9 +++++---- app/sections/columns-with-images/column.tsx | 3 ++- app/sections/contact-form.tsx | 4 +++- app/sections/countdown/index.tsx | 3 ++- app/sections/shared/Button.tsx | 15 ++++++++------- 13 files changed, 31 insertions(+), 22 deletions(-) diff --git a/app/components/CountrySelector.tsx b/app/components/CountrySelector.tsx index 3854d05b..29da36ea 100644 --- a/app/components/CountrySelector.tsx +++ b/app/components/CountrySelector.tsx @@ -52,6 +52,7 @@ export function CountrySelector() { ref={observerRef} className="grid w-full gap-4" onMouseLeave={closeDropdown} + role="listbox" > Country diff --git a/app/components/CustomAnalytics.tsx b/app/components/CustomAnalytics.tsx index d4ffa0f4..f85ad322 100644 --- a/app/components/CustomAnalytics.tsx +++ b/app/components/CustomAnalytics.tsx @@ -4,7 +4,7 @@ import { } from "@shopify/hydrogen"; import { useEffect } from "react"; import { useLoaderData } from "@remix-run/react"; -import { loader } from "~/root"; +import type { loader } from "~/root"; export function CustomAnalytics() { const { subscribe, canTrack } = useAnalytics(); @@ -36,6 +36,7 @@ export function CustomAnalytics() { subscribe("custom_sidecart_viewed", (data) => { console.log("CustomAnalytics - Custom sidecart opened:", data); }); + // eslint-disable-next-line react-hooks/exhaustive-deps }, []); let id = data.googleGtmID; diff --git a/app/components/product-form/options.tsx b/app/components/product-form/options.tsx index 990d5908..677375f8 100644 --- a/app/components/product-form/options.tsx +++ b/app/components/product-form/options.tsx @@ -209,6 +209,7 @@ export function VariantOption(props: VariantOptionProps) { !value.isAvailable && "opacity-50", )} onClick={() => onSelectOptionValue(value.value)} + role="listitem" > {value.value} diff --git a/app/components/product-form/product-media.tsx b/app/components/product-form/product-media.tsx index 3f166dbb..dc481461 100644 --- a/app/components/product-form/product-media.tsx +++ b/app/components/product-form/product-media.tsx @@ -119,6 +119,7 @@ export function ProductMedia(props: ProductMediaProps) { i === activeInd ? "border-bar/70" : "", )} onClick={() => handleClickThumbnail(i)} + role="listitem" > ((props, ref) => { index === activeIndex ? "bg-gray-700" : "bg-gray-300", )} onClick={() => handleClickNavigation(index)} - > + role="listitem" + /> )); } return null; diff --git a/app/sections/columns-with-images/column.tsx b/app/sections/columns-with-images/column.tsx index f6bb9e05..a5fd4e0b 100644 --- a/app/sections/columns-with-images/column.tsx +++ b/app/sections/columns-with-images/column.tsx @@ -7,7 +7,8 @@ import { } from "@weaverse/hydrogen"; import clsx from "clsx"; import { forwardRef } from "react"; -import Button, { ButtonProps, buttonInputs } from "../shared/Button"; +import type { ButtonProps} from "../shared/Button"; +import Button, { buttonInputs } from "../shared/Button"; interface ColumnWithImageItemProps extends ButtonProps, HydrogenComponentProps { imageSrc: WeaverseImage; diff --git a/app/sections/contact-form.tsx b/app/sections/contact-form.tsx index bca993dc..3abd5e07 100644 --- a/app/sections/contact-form.tsx +++ b/app/sections/contact-form.tsx @@ -15,7 +15,9 @@ let ContactForm = forwardRef((props, ref) => { className="w-80 mx-auto p-4 text-center" >
- +

Let us know if you have any question

diff --git a/app/sections/countdown/index.tsx b/app/sections/countdown/index.tsx index d78243a3..a7a5c8ac 100644 --- a/app/sections/countdown/index.tsx +++ b/app/sections/countdown/index.tsx @@ -1,6 +1,7 @@ import type { HydrogenComponentSchema } from "@weaverse/hydrogen"; import { forwardRef } from "react"; -import { Section, SectionProps, sectionInspector } from "../shared/Section"; +import type { SectionProps} from "../shared/Section"; +import { Section, sectionInspector } from "../shared/Section"; type CountdownProps = SectionProps; diff --git a/app/sections/shared/Button.tsx b/app/sections/shared/Button.tsx index 4313ea78..64c43c18 100644 --- a/app/sections/shared/Button.tsx +++ b/app/sections/shared/Button.tsx @@ -1,9 +1,10 @@ -import { +import type { InspectorGroup, - type HydrogenComponentProps, - type HydrogenComponentSchema, + HydrogenComponentProps, + HydrogenComponentSchema, } from "@weaverse/hydrogen"; -import { VariantProps, cva } from "class-variance-authority"; +import type { VariantProps } from "class-variance-authority"; +import { cva } from "class-variance-authority"; import { clsx } from "clsx"; import { forwardRef } from "react"; import { Link } from "~/components"; @@ -48,10 +49,10 @@ interface Props extends ButtonProps, Partial {} let Button = forwardRef((props, ref) => { let { - as = "button", + // as = "button", variant, - shape = "rounded", - weight = "medium", + // shape = "rounded", + // weight = "medium", text, link, openInNewTab, From a862174166c72fdb31b138cb82a1db612330ec67 Mon Sep 17 00:00:00 2001 From: hta218 Date: Tue, 21 May 2024 16:12:40 +0700 Subject: [PATCH 4/5] Refactor components & modules --- .../shared => components}/BackgroundImage.tsx | 0 app/components/Button.tsx | 183 +++++++++++++----- .../shared => components}/Description.tsx | 0 .../shared => components}/Heading.tsx | 0 .../shared => components}/Overlay.tsx | 0 .../shared => components}/Section.tsx | 0 .../shared => components}/SubHeading.tsx | 0 app/components/index.ts | 37 ++-- .../AccountAddressBook.tsx | 2 +- .../AccountDetails.tsx | 2 +- .../AddToCartButton.tsx | 2 +- app/modules/Button.tsx | 61 ++++++ app/{components => modules}/Cart.tsx | 2 +- app/{components => modules}/CartLoading.tsx | 0 app/{components => modules}/Checkbox.tsx | 0 .../CountrySelector.tsx | 2 +- .../CustomAnalytics.tsx | 0 app/{components => modules}/Drawer.tsx | 2 +- .../FeaturedCollections.tsx | 2 +- .../FeaturedProducts.tsx | 2 +- .../FeaturedSection.tsx | 0 app/{components => modules}/GenericError.tsx | 0 app/{components => modules}/Grid.tsx | 0 app/{components => modules}/Hero.tsx | 2 +- app/{components => modules}/Icon.tsx | 0 app/{components => modules}/Input.tsx | 0 app/{components => modules}/Layout.tsx | 2 +- app/{components => modules}/Link.tsx | 0 app/{components => modules}/Logo.tsx | 0 app/{components => modules}/Modal.tsx | 2 +- app/{components => modules}/NotFound.tsx | 0 app/{components => modules}/OrderCard.tsx | 2 +- app/{components => modules}/ProductCard.tsx | 2 +- .../ProductGallery.tsx | 0 .../ProductSwimlane.tsx | 2 +- app/{components => modules}/Skeleton.tsx | 0 app/{components => modules}/SortFilter.tsx | 2 +- app/{components => modules}/StarRating.tsx | 0 app/{components => modules}/Text.tsx | 0 .../global-loading.tsx | 0 app/modules/index.ts | 24 +++ .../product-form/judgeme-review.tsx | 0 .../product-form/options.tsx | 0 .../product-form/placeholder.tsx | 0 .../product-form/product-media.tsx | 0 .../product-form/quantity.tsx | 0 .../product-form/variants.tsx | 0 app/root.tsx | 10 +- ...le).$shopid.orders.$token.authenticate.tsx | 2 +- app/routes/($locale).account.address.$id.tsx | 2 +- app/routes/($locale).account.edit.tsx | 2 +- app/routes/($locale).account.orders.$id.tsx | 2 +- app/routes/($locale).account.tsx | 4 +- app/routes/($locale).cart.tsx | 2 +- ...$locale).collections.$collectionHandle.tsx | 8 +- .../($locale).policies.$policyHandle.tsx | 2 +- app/routes/($locale).policies._index.tsx | 2 +- app/routes/($locale).search.tsx | 10 +- app/sections/SlideShow/SlideItems.tsx | 2 +- app/sections/all-products.tsx | 2 +- app/sections/blog-post.tsx | 2 +- app/sections/blogs.tsx | 2 +- app/sections/collection-filters/index.tsx | 4 +- .../products-loaded-on-scroll.tsx | 2 +- .../collection-list/collection-card.tsx | 2 +- app/sections/collection-list/index.tsx | 2 +- app/sections/columns-with-images/column.tsx | 4 +- app/sections/columns-with-images/index.tsx | 4 +- app/sections/contact-form.tsx | 2 +- app/sections/countdown/index.tsx | 4 +- app/sections/featured-collections.tsx | 2 +- app/sections/featured-products.tsx | 2 +- .../{image-banner => hero-image}/index.tsx | 14 +- app/sections/hero.tsx | 2 +- app/sections/image-gallery/index.tsx | 4 +- app/sections/image-hotspots/image-hotspot.tsx | 2 +- app/sections/image-hotspots/items.tsx | 2 +- app/sections/image-with-text/image.tsx | 2 +- app/sections/map.tsx | 2 +- app/sections/newsletter.tsx | 2 +- app/sections/page.tsx | 2 +- app/sections/product-information/index.tsx | 10 +- .../product-information/product-detail.tsx | 2 +- app/sections/product-list.tsx | 4 +- app/sections/promotion-grid/item.tsx | 2 +- app/sections/related-articles.tsx | 2 +- app/sections/related-products.tsx | 2 +- app/sections/shared/Button.tsx | 138 ------------- app/sections/shared/atoms.ts | 13 -- app/sections/single-product/index.tsx | 14 +- app/sections/testimonials/index.tsx | 4 +- app/sections/user-profiles/index.tsx | 2 +- app/sections/video-embed/index.tsx | 4 +- app/sections/video-hero/index.tsx | 4 +- app/weaverse/components.ts | 10 +- app/weaverse/index.tsx | 2 +- 96 files changed, 328 insertions(+), 334 deletions(-) rename app/{sections/shared => components}/BackgroundImage.tsx (100%) rename app/{sections/shared => components}/Description.tsx (100%) rename app/{sections/shared => components}/Heading.tsx (100%) rename app/{sections/shared => components}/Overlay.tsx (100%) rename app/{sections/shared => components}/Section.tsx (100%) rename app/{sections/shared => components}/SubHeading.tsx (100%) rename app/{components => modules}/AccountAddressBook.tsx (98%) rename app/{components => modules}/AccountDetails.tsx (97%) rename app/{components => modules}/AddToCartButton.tsx (98%) create mode 100644 app/modules/Button.tsx rename app/{components => modules}/Cart.tsx (99%) rename app/{components => modules}/CartLoading.tsx (100%) rename app/{components => modules}/Checkbox.tsx (100%) rename app/{components => modules}/CountrySelector.tsx (98%) rename app/{components => modules}/CustomAnalytics.tsx (100%) rename app/{components => modules}/Drawer.tsx (98%) rename app/{components => modules}/FeaturedCollections.tsx (95%) rename app/{components => modules}/FeaturedProducts.tsx (97%) rename app/{components => modules}/FeaturedSection.tsx (100%) rename app/{components => modules}/GenericError.tsx (100%) rename app/{components => modules}/Grid.tsx (100%) rename app/{components => modules}/Hero.tsx (98%) rename app/{components => modules}/Icon.tsx (100%) rename app/{components => modules}/Input.tsx (100%) rename app/{components => modules}/Layout.tsx (99%) rename app/{components => modules}/Link.tsx (100%) rename app/{components => modules}/Logo.tsx (100%) rename app/{components => modules}/Modal.tsx (96%) rename app/{components => modules}/NotFound.tsx (100%) rename app/{components => modules}/OrderCard.tsx (98%) rename app/{components => modules}/ProductCard.tsx (98%) rename app/{components => modules}/ProductGallery.tsx (100%) rename app/{components => modules}/ProductSwimlane.tsx (93%) rename app/{components => modules}/Skeleton.tsx (100%) rename app/{components => modules}/SortFilter.tsx (99%) rename app/{components => modules}/StarRating.tsx (100%) rename app/{components => modules}/Text.tsx (100%) rename app/{components => modules}/global-loading.tsx (100%) create mode 100644 app/modules/index.ts rename app/{components => modules}/product-form/judgeme-review.tsx (100%) rename app/{components => modules}/product-form/options.tsx (100%) rename app/{components => modules}/product-form/placeholder.tsx (100%) rename app/{components => modules}/product-form/product-media.tsx (100%) rename app/{components => modules}/product-form/quantity.tsx (100%) rename app/{components => modules}/product-form/variants.tsx (100%) rename app/sections/{image-banner => hero-image}/index.tsx (94%) delete mode 100644 app/sections/shared/Button.tsx delete mode 100644 app/sections/shared/atoms.ts diff --git a/app/sections/shared/BackgroundImage.tsx b/app/components/BackgroundImage.tsx similarity index 100% rename from app/sections/shared/BackgroundImage.tsx rename to app/components/BackgroundImage.tsx diff --git a/app/components/Button.tsx b/app/components/Button.tsx index 8cfc5995..fd072d96 100644 --- a/app/components/Button.tsx +++ b/app/components/Button.tsx @@ -1,61 +1,138 @@ +import type { + InspectorGroup, + HydrogenComponentProps, + HydrogenComponentSchema, +} from "@weaverse/hydrogen"; +import type { VariantProps } from "class-variance-authority"; +import { cva } from "class-variance-authority"; +import { clsx } from "clsx"; import { forwardRef } from "react"; -import { Link } from "@remix-run/react"; -import clsx from "clsx"; +import { Link } from "~/modules"; -import { missingClass } from "~/lib/utils"; +export interface ButtonProps extends VariantProps { + as?: keyof HTMLElementTagNameMap; + className?: string; + text: string; + link?: string; + openInNewTab?: boolean; +} -export const Button = forwardRef( - ( - { - as = "button", - className = "", - variant = "primary", - width = "auto", - ...props - }: { - as?: React.ElementType; - className?: string; - variant?: "primary" | "secondary" | "inline" | "secondary-white"; - width?: "auto" | "full"; - [key: string]: any; +let variants = cva( + "inline-flex items-center justify-center whitespace-nowrap text-base font-medium transition-colors focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50", + { + variants: { + variant: { + primary: "btn-primary border-2 px-5 py-3", + secondary: "btn-secondary border-2 px-5 py-3", + link: "btn-link bg-transparent py-2 border-b-2", + }, + shape: { + square: "", + rounded: "rounded-md", + pill: "rounded-full", + }, + weight: { + medium: "font-medium", + semibold: "font-semibold", + bold: "font-bold", + }, }, - ref, - ) => { - const Component = props?.to ? Link : as; - - const baseButtonClasses = - "inline-block rounded font-medium text-center py-3 px-4 text-sm font-medium"; - - const disabledClasses = - "disabled:opacity-50 disabled:cursor-not-allowed disabled:select-none disabled:hover:bg-btn disabled:hover:text-btn-content"; - - const variants = { - primary: `${baseButtonClasses} border-2 border-btn hover:bg-inv-btn hover:text-inv-btn-content bg-btn text-btn-content`, - secondary: `${baseButtonClasses} border-2 border-btn text-btnTextInverse hover:bg-btn hover:text-btn-content`, - "secondary-white": `${baseButtonClasses} border-2 border-inv-btn text-btn hover:bg-inv-btn hover:text-inv-btn-content`, - inline: "border-b border-bar/10 leading-none pb-1", - }; - - const widths = { - auto: "w-auto", - full: "w-full", - }; - - const styles = clsx( - missingClass(className, "bg-") && variants[variant], - missingClass(className, "w-") && widths[width], - disabledClasses, - className, - ); + defaultVariants: { + variant: "primary", + shape: "rounded", + weight: "medium", + }, + }, +); +interface Props extends ButtonProps, Partial {} + +let Button = forwardRef((props, ref) => { + let { + // as = "button", + variant, + // shape = "rounded", + // weight = "medium", + text, + link, + openInNewTab, + className, + ...rest + } = props; + + if (link) { return ( - + } + {...rest} + className={clsx(variants({ variant: variant, className }))} + to={link || "/"} + target={openInNewTab ? "_blank" : "_self"} + rel="noreferrer" + > + {text} + ); + } + return ( + + ); +}); + +export default Button; + +export let buttonInputs: InspectorGroup["inputs"] = [ + { + type: "text", + name: "text", + label: "Text content", + defaultValue: "Shop now", + placeholder: "Shop now", }, -); + { + type: "url", + name: "link", + label: "Link to", + defaultValue: "/products", + placeholder: "/products", + }, + { + type: "switch", + name: "openInNewTab", + label: "Open in new tab", + defaultValue: false, + condition: "buttonLink.ne.nil", + }, + { + type: "select", + name: "variant", + label: "Variant", + configs: { + options: [ + { label: "Primary", value: "primary" }, + { label: "Secondary", value: "secondary" }, + { label: "Link", value: "link" }, + ], + }, + defaultValue: "primary", + }, +]; + +export let schema: HydrogenComponentSchema = { + type: "button", + title: "Button", + inspector: [ + { + group: "Button", + inputs: buttonInputs, + }, + ], + toolbar: ["general-settings", ["duplicate", "delete"]], +}; diff --git a/app/sections/shared/Description.tsx b/app/components/Description.tsx similarity index 100% rename from app/sections/shared/Description.tsx rename to app/components/Description.tsx diff --git a/app/sections/shared/Heading.tsx b/app/components/Heading.tsx similarity index 100% rename from app/sections/shared/Heading.tsx rename to app/components/Heading.tsx diff --git a/app/sections/shared/Overlay.tsx b/app/components/Overlay.tsx similarity index 100% rename from app/sections/shared/Overlay.tsx rename to app/components/Overlay.tsx diff --git a/app/sections/shared/Section.tsx b/app/components/Section.tsx similarity index 100% rename from app/sections/shared/Section.tsx rename to app/components/Section.tsx diff --git a/app/sections/shared/SubHeading.tsx b/app/components/SubHeading.tsx similarity index 100% rename from app/sections/shared/SubHeading.tsx rename to app/components/SubHeading.tsx diff --git a/app/components/index.ts b/app/components/index.ts index 8d7030a1..14c45d01 100644 --- a/app/components/index.ts +++ b/app/components/index.ts @@ -1,24 +1,13 @@ -export { Layout } from "./Layout"; -export { Drawer, useDrawer } from "./Drawer"; -export { Heading, Section, Text, PageHeader } from "./Text"; -export { Input } from "./Input"; -export { ProductGallery } from "./ProductGallery"; -export { ProductCard } from "./ProductCard"; -export { ProductSwimlane } from "./ProductSwimlane"; -export { Skeleton } from "./Skeleton"; -export { Button } from "./Button"; -export { CountrySelector } from "./CountrySelector"; -export { Cart } from "./Cart"; -export { CartLoading } from "./CartLoading"; -export { OrderCard } from "./OrderCard"; -export { AccountDetails } from "./AccountDetails"; -export { AccountAddressBook } from "./AccountAddressBook"; -export { Modal } from "./Modal"; -export { Link } from "./Link"; -export { FeaturedCollections } from "./FeaturedCollections"; -export { Hero } from "./Hero"; -export { SortFilter } from "./SortFilter"; -export { Grid } from "./Grid"; -export { FeaturedProducts } from "./FeaturedProducts"; -export { AddToCartButton } from "./AddToCartButton"; -export * from "./Icon"; +import type { HydrogenComponent } from "@weaverse/hydrogen"; + +import * as Heading from "./Heading"; +import * as SubHeading from "./SubHeading"; +import * as Description from "./Description"; +import * as Button from "./Button"; + +export let sharedComponents: HydrogenComponent[] = [ + SubHeading, + Heading, + Description, + Button, +]; diff --git a/app/components/AccountAddressBook.tsx b/app/modules/AccountAddressBook.tsx similarity index 98% rename from app/components/AccountAddressBook.tsx rename to app/modules/AccountAddressBook.tsx index eeabd303..5d0fe61d 100644 --- a/app/components/AccountAddressBook.tsx +++ b/app/modules/AccountAddressBook.tsx @@ -2,7 +2,7 @@ import { Form } from "@remix-run/react"; import type { CustomerAddress } from "@shopify/hydrogen/customer-account-api-types"; import type { CustomerDetailsFragment } from "customer-accountapi.generated"; -import { Button, Link, Text } from "~/components"; +import { Button, Link, Text } from "~/modules"; export function AccountAddressBook({ customer, diff --git a/app/components/AccountDetails.tsx b/app/modules/AccountDetails.tsx similarity index 97% rename from app/components/AccountDetails.tsx rename to app/modules/AccountDetails.tsx index 6594867e..93bdf9f6 100644 --- a/app/components/AccountDetails.tsx +++ b/app/modules/AccountDetails.tsx @@ -1,5 +1,5 @@ import type { CustomerDetailsFragment } from "customer-accountapi.generated"; -import { Link } from "~/components"; +import { Link } from "~/modules"; export function AccountDetails({ customer, diff --git a/app/components/AddToCartButton.tsx b/app/modules/AddToCartButton.tsx similarity index 98% rename from app/components/AddToCartButton.tsx rename to app/modules/AddToCartButton.tsx index 7ce400d5..285b43d1 100644 --- a/app/components/AddToCartButton.tsx +++ b/app/modules/AddToCartButton.tsx @@ -9,7 +9,7 @@ import { import type { FetcherWithComponents } from "@remix-run/react"; import { useEffect } from "react"; -import { Button } from "~/components"; +import { Button } from "~/modules"; import { usePageAnalytics } from "~/hooks/usePageAnalytics"; export function AddToCartButton({ diff --git a/app/modules/Button.tsx b/app/modules/Button.tsx new file mode 100644 index 00000000..8cfc5995 --- /dev/null +++ b/app/modules/Button.tsx @@ -0,0 +1,61 @@ +import { forwardRef } from "react"; +import { Link } from "@remix-run/react"; +import clsx from "clsx"; + +import { missingClass } from "~/lib/utils"; + +export const Button = forwardRef( + ( + { + as = "button", + className = "", + variant = "primary", + width = "auto", + ...props + }: { + as?: React.ElementType; + className?: string; + variant?: "primary" | "secondary" | "inline" | "secondary-white"; + width?: "auto" | "full"; + [key: string]: any; + }, + ref, + ) => { + const Component = props?.to ? Link : as; + + const baseButtonClasses = + "inline-block rounded font-medium text-center py-3 px-4 text-sm font-medium"; + + const disabledClasses = + "disabled:opacity-50 disabled:cursor-not-allowed disabled:select-none disabled:hover:bg-btn disabled:hover:text-btn-content"; + + const variants = { + primary: `${baseButtonClasses} border-2 border-btn hover:bg-inv-btn hover:text-inv-btn-content bg-btn text-btn-content`, + secondary: `${baseButtonClasses} border-2 border-btn text-btnTextInverse hover:bg-btn hover:text-btn-content`, + "secondary-white": `${baseButtonClasses} border-2 border-inv-btn text-btn hover:bg-inv-btn hover:text-inv-btn-content`, + inline: "border-b border-bar/10 leading-none pb-1", + }; + + const widths = { + auto: "w-auto", + full: "w-full", + }; + + const styles = clsx( + missingClass(className, "bg-") && variants[variant], + missingClass(className, "w-") && widths[width], + disabledClasses, + className, + ); + + return ( + + ); + }, +); diff --git a/app/components/Cart.tsx b/app/modules/Cart.tsx similarity index 99% rename from app/components/Cart.tsx rename to app/modules/Cart.tsx index b86e78d6..1a7eeab1 100644 --- a/app/components/Cart.tsx +++ b/app/modules/Cart.tsx @@ -24,7 +24,7 @@ import { Text, Link, FeaturedProducts, -} from "~/components"; +} from "~/modules"; import { getInputStyleClasses } from "~/lib/utils"; type Layouts = "page" | "drawer"; diff --git a/app/components/CartLoading.tsx b/app/modules/CartLoading.tsx similarity index 100% rename from app/components/CartLoading.tsx rename to app/modules/CartLoading.tsx diff --git a/app/components/Checkbox.tsx b/app/modules/Checkbox.tsx similarity index 100% rename from app/components/Checkbox.tsx rename to app/modules/Checkbox.tsx diff --git a/app/components/CountrySelector.tsx b/app/modules/CountrySelector.tsx similarity index 98% rename from app/components/CountrySelector.tsx rename to app/modules/CountrySelector.tsx index 29da36ea..871ac318 100644 --- a/app/components/CountrySelector.tsx +++ b/app/modules/CountrySelector.tsx @@ -5,7 +5,7 @@ import clsx from "clsx"; import type { CartBuyerIdentityInput } from "@shopify/hydrogen/storefront-api-types"; import { CartForm } from "@shopify/hydrogen"; -import { Heading, Button, IconCheck } from "~/components"; +import { Heading, Button, IconCheck } from "~/modules"; import type { Localizations, Locale } from "~/lib/type"; import { DEFAULT_LOCALE } from "~/lib/utils"; import { useRootLoaderData } from "~/root"; diff --git a/app/components/CustomAnalytics.tsx b/app/modules/CustomAnalytics.tsx similarity index 100% rename from app/components/CustomAnalytics.tsx rename to app/modules/CustomAnalytics.tsx diff --git a/app/components/Drawer.tsx b/app/modules/Drawer.tsx similarity index 98% rename from app/components/Drawer.tsx rename to app/modules/Drawer.tsx index e4b30fb2..292b6d4c 100644 --- a/app/components/Drawer.tsx +++ b/app/modules/Drawer.tsx @@ -1,7 +1,7 @@ import { Fragment, useState } from "react"; import { Dialog, Transition } from "@headlessui/react"; -import { Heading, IconClose } from "~/components"; +import { Heading, IconClose } from "~/modules"; /** * Drawer component that opens on user click. diff --git a/app/components/FeaturedCollections.tsx b/app/modules/FeaturedCollections.tsx similarity index 95% rename from app/components/FeaturedCollections.tsx rename to app/modules/FeaturedCollections.tsx index 318a808c..3c0ce9fe 100644 --- a/app/components/FeaturedCollections.tsx +++ b/app/modules/FeaturedCollections.tsx @@ -1,7 +1,7 @@ import { Image } from "@shopify/hydrogen"; import type { HomepageFeaturedCollectionsQuery } from "storefrontapi.generated"; -import { Heading, Section, Grid, Link } from "~/components"; +import { Heading, Section, Grid, Link } from "~/modules"; type FeaturedCollectionsProps = HomepageFeaturedCollectionsQuery & { title?: string; diff --git a/app/components/FeaturedProducts.tsx b/app/modules/FeaturedProducts.tsx similarity index 97% rename from app/components/FeaturedProducts.tsx rename to app/modules/FeaturedProducts.tsx index 88348a3c..e93f6d40 100644 --- a/app/components/FeaturedProducts.tsx +++ b/app/modules/FeaturedProducts.tsx @@ -6,7 +6,7 @@ import type { ProductSortKeys, } from "@shopify/hydrogen/storefront-api-types"; -import { Heading, ProductCard, Skeleton, Text } from "~/components"; +import { Heading, ProductCard, Skeleton, Text } from "~/modules"; import { usePrefixPathWithLocale } from "~/lib/utils"; interface FeaturedProductsProps { diff --git a/app/components/FeaturedSection.tsx b/app/modules/FeaturedSection.tsx similarity index 100% rename from app/components/FeaturedSection.tsx rename to app/modules/FeaturedSection.tsx diff --git a/app/components/GenericError.tsx b/app/modules/GenericError.tsx similarity index 100% rename from app/components/GenericError.tsx rename to app/modules/GenericError.tsx diff --git a/app/components/Grid.tsx b/app/modules/Grid.tsx similarity index 100% rename from app/components/Grid.tsx rename to app/modules/Grid.tsx diff --git a/app/components/Hero.tsx b/app/modules/Hero.tsx similarity index 98% rename from app/components/Hero.tsx rename to app/modules/Hero.tsx index a77eba9a..519b1cd3 100644 --- a/app/components/Hero.tsx +++ b/app/modules/Hero.tsx @@ -7,7 +7,7 @@ import type { } from "@shopify/hydrogen/storefront-api-types"; import type { CollectionContentFragment } from "storefrontapi.generated"; -import { Heading, Text, Link } from "~/components"; +import { Heading, Text, Link } from "~/modules"; type HeroProps = CollectionContentFragment & { height?: "full"; diff --git a/app/components/Icon.tsx b/app/modules/Icon.tsx similarity index 100% rename from app/components/Icon.tsx rename to app/modules/Icon.tsx diff --git a/app/components/Input.tsx b/app/modules/Input.tsx similarity index 100% rename from app/components/Input.tsx rename to app/modules/Input.tsx diff --git a/app/components/Layout.tsx b/app/modules/Layout.tsx similarity index 99% rename from app/components/Layout.tsx rename to app/modules/Layout.tsx index 2490df06..871b7a7a 100644 --- a/app/components/Layout.tsx +++ b/app/modules/Layout.tsx @@ -25,7 +25,7 @@ import { Section, Text, useDrawer, -} from "~/components"; +} from "~/modules"; import { useCartFetchers } from "~/hooks/useCartFetchers"; import { useIsHydrated } from "~/hooks/useIsHydrated"; import { diff --git a/app/components/Link.tsx b/app/modules/Link.tsx similarity index 100% rename from app/components/Link.tsx rename to app/modules/Link.tsx diff --git a/app/components/Logo.tsx b/app/modules/Logo.tsx similarity index 100% rename from app/components/Logo.tsx rename to app/modules/Logo.tsx diff --git a/app/components/Modal.tsx b/app/modules/Modal.tsx similarity index 96% rename from app/components/Modal.tsx rename to app/modules/Modal.tsx index 1f131390..48154ae7 100644 --- a/app/components/Modal.tsx +++ b/app/modules/Modal.tsx @@ -1,4 +1,4 @@ -import { IconClose, Link } from "~/components"; +import { IconClose, Link } from "~/modules"; export function Modal({ children, diff --git a/app/components/NotFound.tsx b/app/modules/NotFound.tsx similarity index 100% rename from app/components/NotFound.tsx rename to app/modules/NotFound.tsx diff --git a/app/components/OrderCard.tsx b/app/modules/OrderCard.tsx similarity index 98% rename from app/components/OrderCard.tsx rename to app/modules/OrderCard.tsx index a4727811..50503d50 100644 --- a/app/components/OrderCard.tsx +++ b/app/modules/OrderCard.tsx @@ -1,7 +1,7 @@ import { flattenConnection, Image } from "@shopify/hydrogen"; import type { OrderCardFragment } from "customer-accountapi.generated"; -import { Heading, Text, Link } from "~/components"; +import { Heading, Text, Link } from "~/modules"; import { statusMessage } from "~/lib/utils"; export function OrderCard({ order }: { order: OrderCardFragment }) { diff --git a/app/components/ProductCard.tsx b/app/modules/ProductCard.tsx similarity index 98% rename from app/components/ProductCard.tsx rename to app/modules/ProductCard.tsx index cb94f7c7..490276d0 100644 --- a/app/components/ProductCard.tsx +++ b/app/modules/ProductCard.tsx @@ -4,7 +4,7 @@ import { flattenConnection, Image, Money, useMoney } from "@shopify/hydrogen"; import type { MoneyV2, Product } from "@shopify/hydrogen/storefront-api-types"; import type { ProductCardFragment } from "storefrontapi.generated"; -import { Text, Link, AddToCartButton, Button } from "~/components"; +import { Text, Link, AddToCartButton, Button } from "~/modules"; import { isDiscounted, isNewArrival } from "~/lib/utils"; import { getProductPlaceholder } from "~/lib/placeholders"; diff --git a/app/components/ProductGallery.tsx b/app/modules/ProductGallery.tsx similarity index 100% rename from app/components/ProductGallery.tsx rename to app/modules/ProductGallery.tsx diff --git a/app/components/ProductSwimlane.tsx b/app/modules/ProductSwimlane.tsx similarity index 93% rename from app/components/ProductSwimlane.tsx rename to app/modules/ProductSwimlane.tsx index a69ccf6a..f920cb65 100644 --- a/app/components/ProductSwimlane.tsx +++ b/app/modules/ProductSwimlane.tsx @@ -1,5 +1,5 @@ import type { HomepageFeaturedProductsQuery } from "storefrontapi.generated"; -import { ProductCard, Section } from "~/components"; +import { ProductCard, Section } from "~/modules"; const mockProducts = { nodes: new Array(12).fill(""), diff --git a/app/components/Skeleton.tsx b/app/modules/Skeleton.tsx similarity index 100% rename from app/components/Skeleton.tsx rename to app/modules/Skeleton.tsx diff --git a/app/components/SortFilter.tsx b/app/modules/SortFilter.tsx similarity index 99% rename from app/components/SortFilter.tsx rename to app/modules/SortFilter.tsx index dfd92f45..e63217b9 100644 --- a/app/components/SortFilter.tsx +++ b/app/modules/SortFilter.tsx @@ -14,7 +14,7 @@ import type { ProductFilter, } from "@shopify/hydrogen/storefront-api-types"; -import { Heading, IconFilters, IconCaret, IconXMark, Text } from "~/components"; +import { Heading, IconFilters, IconCaret, IconXMark, Text } from "~/modules"; export type AppliedFilter = { label: string; diff --git a/app/components/StarRating.tsx b/app/modules/StarRating.tsx similarity index 100% rename from app/components/StarRating.tsx rename to app/modules/StarRating.tsx diff --git a/app/components/Text.tsx b/app/modules/Text.tsx similarity index 100% rename from app/components/Text.tsx rename to app/modules/Text.tsx diff --git a/app/components/global-loading.tsx b/app/modules/global-loading.tsx similarity index 100% rename from app/components/global-loading.tsx rename to app/modules/global-loading.tsx diff --git a/app/modules/index.ts b/app/modules/index.ts new file mode 100644 index 00000000..8d7030a1 --- /dev/null +++ b/app/modules/index.ts @@ -0,0 +1,24 @@ +export { Layout } from "./Layout"; +export { Drawer, useDrawer } from "./Drawer"; +export { Heading, Section, Text, PageHeader } from "./Text"; +export { Input } from "./Input"; +export { ProductGallery } from "./ProductGallery"; +export { ProductCard } from "./ProductCard"; +export { ProductSwimlane } from "./ProductSwimlane"; +export { Skeleton } from "./Skeleton"; +export { Button } from "./Button"; +export { CountrySelector } from "./CountrySelector"; +export { Cart } from "./Cart"; +export { CartLoading } from "./CartLoading"; +export { OrderCard } from "./OrderCard"; +export { AccountDetails } from "./AccountDetails"; +export { AccountAddressBook } from "./AccountAddressBook"; +export { Modal } from "./Modal"; +export { Link } from "./Link"; +export { FeaturedCollections } from "./FeaturedCollections"; +export { Hero } from "./Hero"; +export { SortFilter } from "./SortFilter"; +export { Grid } from "./Grid"; +export { FeaturedProducts } from "./FeaturedProducts"; +export { AddToCartButton } from "./AddToCartButton"; +export * from "./Icon"; diff --git a/app/components/product-form/judgeme-review.tsx b/app/modules/product-form/judgeme-review.tsx similarity index 100% rename from app/components/product-form/judgeme-review.tsx rename to app/modules/product-form/judgeme-review.tsx diff --git a/app/components/product-form/options.tsx b/app/modules/product-form/options.tsx similarity index 100% rename from app/components/product-form/options.tsx rename to app/modules/product-form/options.tsx diff --git a/app/components/product-form/placeholder.tsx b/app/modules/product-form/placeholder.tsx similarity index 100% rename from app/components/product-form/placeholder.tsx rename to app/modules/product-form/placeholder.tsx diff --git a/app/components/product-form/product-media.tsx b/app/modules/product-form/product-media.tsx similarity index 100% rename from app/components/product-form/product-media.tsx rename to app/modules/product-form/product-media.tsx diff --git a/app/components/product-form/quantity.tsx b/app/modules/product-form/quantity.tsx similarity index 100% rename from app/components/product-form/quantity.tsx rename to app/modules/product-form/quantity.tsx diff --git a/app/components/product-form/variants.tsx b/app/modules/product-form/variants.tsx similarity index 100% rename from app/components/product-form/variants.tsx rename to app/modules/product-form/variants.tsx diff --git a/app/root.tsx b/app/root.tsx index 1666b6d3..c58c19b0 100644 --- a/app/root.tsx +++ b/app/root.tsx @@ -32,13 +32,13 @@ import { defer } from "@shopify/remix-oxygen"; import { withWeaverse } from "@weaverse/hydrogen"; import invariant from "tiny-invariant"; -import { Layout } from "~/components"; -import { CustomAnalytics } from "~/components/CustomAnalytics"; -import { GlobalLoading } from "~/components/global-loading"; +import { Layout } from "~/modules"; +import { CustomAnalytics } from "~/modules/CustomAnalytics"; +import { GlobalLoading } from "~/modules/global-loading"; import { seoPayload } from "~/lib/seo.server"; -import { GenericError } from "./components/GenericError"; -import { NotFound } from "./components/NotFound"; +import { GenericError } from "./modules/GenericError"; +import { NotFound } from "./modules/NotFound"; import { DEFAULT_LOCALE, parseMenu } from "./lib/utils"; import styles from "./styles/app.css?url"; import { GlobalStyle } from "./weaverse/style"; diff --git a/app/routes/($locale).$shopid.orders.$token.authenticate.tsx b/app/routes/($locale).$shopid.orders.$token.authenticate.tsx index ca1d8843..a5d6bf25 100644 --- a/app/routes/($locale).$shopid.orders.$token.authenticate.tsx +++ b/app/routes/($locale).$shopid.orders.$token.authenticate.tsx @@ -1,7 +1,7 @@ import { redirect, type LoaderFunctionArgs } from "@shopify/remix-oxygen"; import invariant from "tiny-invariant"; -import { Button, PageHeader } from "~/components"; +import { Button, PageHeader } from "~/modules"; /* If your online store had active orders before you launched your Hydrogen storefront, diff --git a/app/routes/($locale).account.address.$id.tsx b/app/routes/($locale).account.address.$id.tsx index fc69925a..90832242 100644 --- a/app/routes/($locale).account.address.$id.tsx +++ b/app/routes/($locale).account.address.$id.tsx @@ -10,7 +10,7 @@ import { flattenConnection } from "@shopify/hydrogen"; import type { CustomerAddressInput } from "@shopify/hydrogen/customer-account-api-types"; import invariant from "tiny-invariant"; -import { Button, Text } from "~/components"; +import { Button, Text } from "~/modules"; import { getInputStyleClasses } from "~/lib/utils"; import { CREATE_ADDRESS_MUTATION, diff --git a/app/routes/($locale).account.edit.tsx b/app/routes/($locale).account.edit.tsx index 78a62eed..7d969c65 100644 --- a/app/routes/($locale).account.edit.tsx +++ b/app/routes/($locale).account.edit.tsx @@ -11,7 +11,7 @@ import type { } from "@shopify/hydrogen/customer-account-api-types"; import invariant from "tiny-invariant"; -import { Button, Text } from "~/components"; +import { Button, Text } from "~/modules"; import { getInputStyleClasses } from "~/lib/utils"; import { CUSTOMER_UPDATE_MUTATION } from "~/graphql/customer-account/CustomerUpdateMutation"; diff --git a/app/routes/($locale).account.orders.$id.tsx b/app/routes/($locale).account.orders.$id.tsx index 1a9741b5..eccf6b7c 100644 --- a/app/routes/($locale).account.orders.$id.tsx +++ b/app/routes/($locale).account.orders.$id.tsx @@ -6,7 +6,7 @@ import { Money, Image, flattenConnection } from "@shopify/hydrogen"; import type { OrderFragment } from "customer-accountapi.generated"; import { statusMessage } from "~/lib/utils"; -import { Link, Heading, PageHeader, Text } from "~/components"; +import { Link, Heading, PageHeader, Text } from "~/modules"; import { CUSTOMER_ORDER_QUERY } from "~/graphql/customer-account/CustomerOrderQuery"; export const meta: MetaFunction = ({ data }) => { diff --git a/app/routes/($locale).account.tsx b/app/routes/($locale).account.tsx index a5d25894..f4144921 100644 --- a/app/routes/($locale).account.tsx +++ b/app/routes/($locale).account.tsx @@ -23,8 +23,8 @@ import { PageHeader, ProductSwimlane, Text, -} from "~/components"; -import { FeaturedCollections } from "~/components/FeaturedCollections"; +} from "~/modules"; +import { FeaturedCollections } from "~/modules/FeaturedCollections"; import { CACHE_NONE, routeHeaders } from "~/data/cache"; import { CUSTOMER_DETAILS_QUERY } from "~/graphql/customer-account/CustomerDetailsQuery"; import { usePrefixPathWithLocale } from "~/lib/utils"; diff --git a/app/routes/($locale).cart.tsx b/app/routes/($locale).cart.tsx index 3969f376..15cad430 100644 --- a/app/routes/($locale).cart.tsx +++ b/app/routes/($locale).cart.tsx @@ -12,7 +12,7 @@ import { } from "@shopify/hydrogen"; import { isLocalPath } from "~/lib/utils"; -import { Cart } from "~/components/Cart"; +import { Cart } from "~/modules/Cart"; import { useRootLoaderData } from "~/root"; export async function action({ request, context }: ActionFunctionArgs) { diff --git a/app/routes/($locale).collections.$collectionHandle.tsx b/app/routes/($locale).collections.$collectionHandle.tsx index 4076d023..7f165ec7 100644 --- a/app/routes/($locale).collections.$collectionHandle.tsx +++ b/app/routes/($locale).collections.$collectionHandle.tsx @@ -8,13 +8,13 @@ import type { ProductCollectionSortKeys, ProductFilter, } from "@shopify/hydrogen/storefront-api-types"; -import { json} from "@shopify/remix-oxygen"; -import type { MetaArgs , type LoaderFunctionArgs } from "@shopify/remix-oxygen"; +import { json } from "@shopify/remix-oxygen"; +import type { MetaArgs, type LoaderFunctionArgs } from "@shopify/remix-oxygen"; import invariant from "tiny-invariant"; import { useLoaderData } from "@remix-run/react"; -import type { SortParam } from "~/components/SortFilter"; -import { FILTER_URL_PREFIX } from "~/components/SortFilter"; +import type { SortParam } from "~/modules/SortFilter"; +import { FILTER_URL_PREFIX } from "~/modules/SortFilter"; import { routeHeaders } from "~/data/cache"; import { COLLECTION_QUERY } from "~/data/queries"; import { PAGINATION_SIZE } from "~/lib/const"; diff --git a/app/routes/($locale).policies.$policyHandle.tsx b/app/routes/($locale).policies.$policyHandle.tsx index 247a41d7..2b3e9f18 100644 --- a/app/routes/($locale).policies.$policyHandle.tsx +++ b/app/routes/($locale).policies.$policyHandle.tsx @@ -2,7 +2,7 @@ import { json, type LoaderFunctionArgs } from "@shopify/remix-oxygen"; import { useLoaderData } from "@remix-run/react"; import invariant from "tiny-invariant"; -import { PageHeader, Section, Button } from "~/components"; +import { PageHeader, Section, Button } from "~/modules"; import { routeHeaders } from "~/data/cache"; import { seoPayload } from "~/lib/seo.server"; diff --git a/app/routes/($locale).policies._index.tsx b/app/routes/($locale).policies._index.tsx index ca307863..20a21604 100644 --- a/app/routes/($locale).policies._index.tsx +++ b/app/routes/($locale).policies._index.tsx @@ -5,7 +5,7 @@ import invariant from "tiny-invariant"; import type { SeoConfig } from "@shopify/hydrogen"; import { getSeoMeta } from "@shopify/hydrogen"; -import { PageHeader, Section, Heading, Link } from "~/components"; +import { PageHeader, Section, Heading, Link } from "~/modules"; import { routeHeaders } from "~/data/cache"; import { seoPayload } from "~/lib/seo.server"; import type { NonNullableFields } from "~/lib/type"; diff --git a/app/routes/($locale).search.tsx b/app/routes/($locale).search.tsx index 51578f05..e53bc74c 100644 --- a/app/routes/($locale).search.tsx +++ b/app/routes/($locale).search.tsx @@ -5,12 +5,8 @@ import { Pagination, UNSTABLE_Analytics as Analytics, } from "@shopify/hydrogen"; -import { - defer} from "@shopify/remix-oxygen"; -import type { - MetaArgs, - type LoaderFunctionArgs -} from "@shopify/remix-oxygen"; +import { defer } from "@shopify/remix-oxygen"; +import type { MetaArgs, type LoaderFunctionArgs } from "@shopify/remix-oxygen"; import { Suspense } from "react"; import { @@ -23,7 +19,7 @@ import { ProductSwimlane, Section, Text, -} from "~/components"; +} from "~/modules"; import { PRODUCT_CARD_FRAGMENT } from "~/data/fragments"; import { getImageLoadingPriority, PAGINATION_SIZE } from "~/lib/const"; import { seoPayload } from "~/lib/seo.server"; diff --git a/app/sections/SlideShow/SlideItems.tsx b/app/sections/SlideShow/SlideItems.tsx index dce32f5b..1150b95d 100644 --- a/app/sections/SlideShow/SlideItems.tsx +++ b/app/sections/SlideShow/SlideItems.tsx @@ -8,7 +8,7 @@ import { forwardRef } from "react"; import { Image } from "@shopify/hydrogen"; import clsx from "clsx"; -import { IconImageBlank } from "~/components"; +import { IconImageBlank } from "~/modules"; interface CountDownProps extends HydrogenComponentProps { backgroundImage: WeaverseImage; diff --git a/app/sections/all-products.tsx b/app/sections/all-products.tsx index b4f6a09d..fd17be2b 100644 --- a/app/sections/all-products.tsx +++ b/app/sections/all-products.tsx @@ -7,7 +7,7 @@ import type { import { forwardRef } from "react"; import type { AllProductsQuery } from "storefrontapi.generated"; -import { Grid, PageHeader, ProductCard, Section } from "~/components"; +import { Grid, PageHeader, ProductCard, Section } from "~/modules"; import { getImageLoadingPriority } from "~/lib/const"; interface AllProductsProps extends HydrogenComponentProps { diff --git a/app/sections/blog-post.tsx b/app/sections/blog-post.tsx index 236355f8..f2b061f6 100644 --- a/app/sections/blog-post.tsx +++ b/app/sections/blog-post.tsx @@ -7,7 +7,7 @@ import type { } from "@weaverse/hydrogen"; import { forwardRef } from "react"; -import { IconFacebook, IconPinterest, Section } from "~/components"; +import { IconFacebook, IconPinterest, Section } from "~/modules"; interface BlogPostProps extends HydrogenComponentProps { paddingTop: number; diff --git a/app/sections/blogs.tsx b/app/sections/blogs.tsx index c9dab0e1..b1203350 100644 --- a/app/sections/blogs.tsx +++ b/app/sections/blogs.tsx @@ -7,7 +7,7 @@ import type { import { forwardRef } from "react"; import type { ArticleFragment, BlogQuery } from "storefrontapi.generated"; -import { Grid, Link, PageHeader, Section } from "~/components"; +import { Grid, Link, PageHeader, Section } from "~/modules"; import { getImageLoadingPriority } from "~/lib/const"; interface BlogsProps extends HydrogenComponentProps { diff --git a/app/sections/collection-filters/index.tsx b/app/sections/collection-filters/index.tsx index 6e4837d8..41c7e712 100644 --- a/app/sections/collection-filters/index.tsx +++ b/app/sections/collection-filters/index.tsx @@ -9,8 +9,8 @@ import { forwardRef } from "react"; import { useInView } from "react-intersection-observer"; import type { CollectionDetailsQuery } from "storefrontapi.generated"; -import { Button, PageHeader, Section, SortFilter, Text } from "~/components"; -import type { AppliedFilter } from "~/components/SortFilter"; +import { Button, PageHeader, Section, SortFilter, Text } from "~/modules"; +import type { AppliedFilter } from "~/modules/SortFilter"; import { ProductsLoadedOnScroll } from "./products-loaded-on-scroll"; diff --git a/app/sections/collection-filters/products-loaded-on-scroll.tsx b/app/sections/collection-filters/products-loaded-on-scroll.tsx index 765ad482..73bfe52f 100644 --- a/app/sections/collection-filters/products-loaded-on-scroll.tsx +++ b/app/sections/collection-filters/products-loaded-on-scroll.tsx @@ -1,7 +1,7 @@ import { useNavigate } from "@remix-run/react"; import { useEffect } from "react"; -import { Grid, ProductCard } from "~/components"; +import { Grid, ProductCard } from "~/modules"; import { getImageLoadingPriority } from "~/lib/const"; type ProductsLoadedOnScrollProps = { diff --git a/app/sections/collection-list/collection-card.tsx b/app/sections/collection-list/collection-card.tsx index 62b8113b..fd1f225a 100644 --- a/app/sections/collection-list/collection-card.tsx +++ b/app/sections/collection-list/collection-card.tsx @@ -1,7 +1,7 @@ import { Image } from "@shopify/hydrogen"; import type { Collection } from "@shopify/hydrogen/storefront-api-types"; -import { Heading, Link } from "~/components"; +import { Heading, Link } from "~/modules"; export function CollectionCard({ collection, diff --git a/app/sections/collection-list/index.tsx b/app/sections/collection-list/index.tsx index bf7f775d..86c6d717 100644 --- a/app/sections/collection-list/index.tsx +++ b/app/sections/collection-list/index.tsx @@ -8,7 +8,7 @@ import type { import { forwardRef } from "react"; import type { CollectionsQuery } from "storefrontapi.generated"; -import { Button, Grid, PageHeader, Section } from "~/components"; +import { Button, Grid, PageHeader, Section } from "~/modules"; import { getImageLoadingPriority } from "~/lib/const"; import { CollectionCard } from "./collection-card"; diff --git a/app/sections/columns-with-images/column.tsx b/app/sections/columns-with-images/column.tsx index a5fd4e0b..47b17d60 100644 --- a/app/sections/columns-with-images/column.tsx +++ b/app/sections/columns-with-images/column.tsx @@ -7,8 +7,8 @@ import { } from "@weaverse/hydrogen"; import clsx from "clsx"; import { forwardRef } from "react"; -import type { ButtonProps} from "../shared/Button"; -import Button, { buttonInputs } from "../shared/Button"; +import type { ButtonProps } from "~/components/Button"; +import Button, { buttonInputs } from "~/components/Button"; interface ColumnWithImageItemProps extends ButtonProps, HydrogenComponentProps { imageSrc: WeaverseImage; diff --git a/app/sections/columns-with-images/index.tsx b/app/sections/columns-with-images/index.tsx index 0f6b8e80..b30a6fd5 100644 --- a/app/sections/columns-with-images/index.tsx +++ b/app/sections/columns-with-images/index.tsx @@ -1,7 +1,7 @@ import type { HydrogenComponentSchema } from "@weaverse/hydrogen"; import { forwardRef } from "react"; -import type { SectionProps } from "~/sections/shared/Section"; -import { Section, sectionInspector } from "~/sections/shared/Section"; +import type { SectionProps } from "~/components/Section"; +import { Section, sectionInspector } from "~/components/Section"; type ColumnsWithImagesProps = SectionProps; diff --git a/app/sections/contact-form.tsx b/app/sections/contact-form.tsx index 3abd5e07..d13f5d6e 100644 --- a/app/sections/contact-form.tsx +++ b/app/sections/contact-form.tsx @@ -2,7 +2,7 @@ import type { HydrogenComponentSchema } from "@weaverse/hydrogen"; import { forwardRef } from "react"; import { Form } from "@remix-run/react"; -import { Button, Input } from "~/components"; +import { Button, Input } from "~/modules"; let ContactForm = forwardRef((props, ref) => { return ( diff --git a/app/sections/countdown/index.tsx b/app/sections/countdown/index.tsx index a7a5c8ac..ef9c98a5 100644 --- a/app/sections/countdown/index.tsx +++ b/app/sections/countdown/index.tsx @@ -1,7 +1,7 @@ import type { HydrogenComponentSchema } from "@weaverse/hydrogen"; import { forwardRef } from "react"; -import type { SectionProps} from "../shared/Section"; -import { Section, sectionInspector } from "../shared/Section"; +import type { SectionProps } from "~/components/Section"; +import { Section, sectionInspector } from "~/components/Section"; type CountdownProps = SectionProps; diff --git a/app/sections/featured-collections.tsx b/app/sections/featured-collections.tsx index 8f4b4bc9..69e4558a 100644 --- a/app/sections/featured-collections.tsx +++ b/app/sections/featured-collections.tsx @@ -6,7 +6,7 @@ import type { import { forwardRef } from "react"; import type { HomepageFeaturedCollectionsQuery } from "storefrontapi.generated"; -import { FeaturedCollections as HomeFeaturedCollections } from "~/components"; +import { FeaturedCollections as HomeFeaturedCollections } from "~/modules"; import { FEATURED_COLLECTIONS_QUERY } from "~/data/queries"; interface FeaturedCollectionsProps diff --git a/app/sections/featured-products.tsx b/app/sections/featured-products.tsx index 3b4f84d1..d46d72fe 100644 --- a/app/sections/featured-products.tsx +++ b/app/sections/featured-products.tsx @@ -6,7 +6,7 @@ import type { import { forwardRef } from "react"; import type { HomepageFeaturedProductsQuery } from "storefrontapi.generated"; -import { ProductSwimlane } from "~/components"; +import { ProductSwimlane } from "~/modules"; import { HOMEPAGE_FEATURED_PRODUCTS_QUERY } from "~/data/queries"; interface FeaturedProductsProps diff --git a/app/sections/image-banner/index.tsx b/app/sections/hero-image/index.tsx similarity index 94% rename from app/sections/image-banner/index.tsx rename to app/sections/hero-image/index.tsx index 8a15c1bf..efd03d4f 100644 --- a/app/sections/image-banner/index.tsx +++ b/app/sections/hero-image/index.tsx @@ -8,9 +8,9 @@ import { forwardRef } from "react"; import clsx from "clsx"; import { Image } from "@shopify/hydrogen"; -import { IconImageBlank } from "~/components"; +import { IconImageBlank } from "~/modules"; -interface HeaderImageProps extends HydrogenComponentProps { +type HeroImageProps = HydrogenComponentProps & { backgroundImage: WeaverseImage; contentAlignment: string; enableOverlay: boolean; @@ -18,9 +18,9 @@ interface HeaderImageProps extends HydrogenComponentProps { overlayOpacity: number; sectionHeightDesktop: number; sectionHeightMobile: number; -} +}; -let HeaderImage = forwardRef((props, ref) => { +let HeroImage = forwardRef((props, ref) => { let { backgroundImage, contentAlignment, @@ -76,11 +76,11 @@ let HeaderImage = forwardRef((props, ref) => { ); }); -export default HeaderImage; +export default HeroImage; export let schema: HydrogenComponentSchema = { - type: "image-banner", - title: "Image banner", + type: "hero-image", + title: "Hero image", toolbar: ["general-settings", ["duplicate", "delete"]], inspector: [ { diff --git a/app/sections/hero.tsx b/app/sections/hero.tsx index addd2c48..f412fccd 100644 --- a/app/sections/hero.tsx +++ b/app/sections/hero.tsx @@ -6,7 +6,7 @@ import type { import { forwardRef } from "react"; import type { SeoCollectionContentQuery } from "storefrontapi.generated"; -import { Hero } from "~/components/Hero"; +import { Hero } from "~/modules/Hero"; import { HOMEPAGE_SEO_QUERY } from "~/data/queries"; type HeroSectionData = { diff --git a/app/sections/image-gallery/index.tsx b/app/sections/image-gallery/index.tsx index 0441da50..53b9693f 100644 --- a/app/sections/image-gallery/index.tsx +++ b/app/sections/image-gallery/index.tsx @@ -1,8 +1,8 @@ import type { HydrogenComponentSchema } from "@weaverse/hydrogen"; import { forwardRef } from "react"; -import type { SectionProps } from "~/sections/shared/Section"; -import { Section, sectionInspector } from "~/sections/shared/Section"; +import type { SectionProps } from "~/components/Section"; +import { Section, sectionInspector } from "~/components/Section"; type ImageGalleryProps = SectionProps; diff --git a/app/sections/image-hotspots/image-hotspot.tsx b/app/sections/image-hotspots/image-hotspot.tsx index 30690ff3..0285237d 100644 --- a/app/sections/image-hotspots/image-hotspot.tsx +++ b/app/sections/image-hotspots/image-hotspot.tsx @@ -7,7 +7,7 @@ import type { CSSProperties } from "react"; import { forwardRef } from "react"; import { Image } from "@shopify/hydrogen"; -import { IconImageBlank } from "~/components"; +import { IconImageBlank } from "~/modules"; interface ImageHotspotProps extends HydrogenComponentProps { imageHostpots: WeaverseImage; diff --git a/app/sections/image-hotspots/items.tsx b/app/sections/image-hotspots/items.tsx index 454d58f4..71590480 100644 --- a/app/sections/image-hotspots/items.tsx +++ b/app/sections/image-hotspots/items.tsx @@ -12,7 +12,7 @@ import clsx from "clsx"; import type { ProductQuery } from "storefrontapi.generated"; import { PRODUCT_QUERY } from "~/data/queries"; -import { IconImageBlank, Link } from "~/components"; +import { IconImageBlank, Link } from "~/modules"; type ProductData = { verticalPosition: number; diff --git a/app/sections/image-with-text/image.tsx b/app/sections/image-with-text/image.tsx index c542d5d9..5e72b98e 100644 --- a/app/sections/image-with-text/image.tsx +++ b/app/sections/image-with-text/image.tsx @@ -6,7 +6,7 @@ import type { import { forwardRef } from "react"; import { Image } from "@shopify/hydrogen"; -import { IconImageBlank } from "~/components"; +import { IconImageBlank } from "~/modules"; interface ImageItemsProps extends HydrogenComponentProps { image: WeaverseImage; diff --git a/app/sections/map.tsx b/app/sections/map.tsx index 6a8f1041..0b837896 100644 --- a/app/sections/map.tsx +++ b/app/sections/map.tsx @@ -6,7 +6,7 @@ import type { CSSProperties } from "react"; import { forwardRef } from "react"; import clsx from "clsx"; -import { IconMapBlank } from "~/components"; +import { IconMapBlank } from "~/modules"; interface MapProps extends HydrogenComponentProps { heading: string; diff --git a/app/sections/newsletter.tsx b/app/sections/newsletter.tsx index b9966d9b..329fe52c 100644 --- a/app/sections/newsletter.tsx +++ b/app/sections/newsletter.tsx @@ -6,7 +6,7 @@ import type { CSSProperties } from "react"; import React, { forwardRef, useState } from "react"; import clsx from "clsx"; -import { IconArrowInput } from "~/components"; +import { IconArrowInput } from "~/modules"; type NewsLetterData = { contentAlignment: string; diff --git a/app/sections/page.tsx b/app/sections/page.tsx index 4e74c60e..7a103479 100644 --- a/app/sections/page.tsx +++ b/app/sections/page.tsx @@ -6,7 +6,7 @@ import type { import { forwardRef } from "react"; import type { PageDetailsQuery } from "storefrontapi.generated"; -import { PageHeader } from "~/components"; +import { PageHeader } from "~/modules"; interface PageProps extends HydrogenComponentProps { paddingTop: number; diff --git a/app/sections/product-information/index.tsx b/app/sections/product-information/index.tsx index a9ef8165..4602ee9c 100644 --- a/app/sections/product-information/index.tsx +++ b/app/sections/product-information/index.tsx @@ -7,12 +7,12 @@ import { } from "@weaverse/hydrogen"; import { forwardRef, useEffect, useState } from "react"; import type { ProductQuery, VariantsQuery } from "storefrontapi.generated"; -import { AddToCartButton, Text } from "~/components"; import { getExcerpt } from "~/lib/utils"; -import { ProductPlaceholder } from "../../components/product-form/placeholder"; -import { ProductMedia } from "../../components/product-form/product-media"; -import { Quantity } from "../../components/product-form/quantity"; -import { ProductVariants } from "../../components/product-form/variants"; +import { AddToCartButton, Text } from "~/modules"; +import { ProductPlaceholder } from "~/modules/product-form/placeholder"; +import { ProductMedia } from "~/modules/product-form/product-media"; +import { Quantity } from "~/modules/product-form/quantity"; +import { ProductVariants } from "~/modules/product-form/variants"; import { ProductDetail } from "./product-detail"; interface ProductInformationProps extends HydrogenComponentProps { addToCartText: string; diff --git a/app/sections/product-information/product-detail.tsx b/app/sections/product-information/product-detail.tsx index ef1d4fdb..a5cda9b7 100644 --- a/app/sections/product-information/product-detail.tsx +++ b/app/sections/product-information/product-detail.tsx @@ -1,7 +1,7 @@ import { Disclosure } from "@headlessui/react"; import clsx from "clsx"; -import { IconClose, Link, Text } from "~/components"; +import { IconClose, Link, Text } from "~/modules"; export function ProductDetail({ title, diff --git a/app/sections/product-list.tsx b/app/sections/product-list.tsx index 0bea4706..a1565263 100644 --- a/app/sections/product-list.tsx +++ b/app/sections/product-list.tsx @@ -6,9 +6,9 @@ import type { import { getPaginationVariables } from "@shopify/hydrogen"; import { forwardRef } from "react"; -import { ProductSwimlane } from "~/components"; +import { ProductSwimlane } from "~/modules"; import { COLLECTION_QUERY } from "~/data/queries"; -import type { SortParam } from "~/components/SortFilter"; +import type { SortParam } from "~/modules/SortFilter"; import { getSortValuesFromParam } from "~/routes/($locale).collections.$collectionHandle"; import { PAGINATION_SIZE } from "~/lib/const"; diff --git a/app/sections/promotion-grid/item.tsx b/app/sections/promotion-grid/item.tsx index 157d6e04..eba88b0e 100644 --- a/app/sections/promotion-grid/item.tsx +++ b/app/sections/promotion-grid/item.tsx @@ -6,7 +6,7 @@ import type { import { forwardRef } from "react"; import { Image } from "@shopify/hydrogen"; -import { IconImageBlank } from "~/components"; +import { IconImageBlank } from "~/modules"; interface PromotionItemProps extends HydrogenComponentProps { backgroundImage: WeaverseImage; diff --git a/app/sections/related-articles.tsx b/app/sections/related-articles.tsx index 7ab2d6ab..1107da29 100644 --- a/app/sections/related-articles.tsx +++ b/app/sections/related-articles.tsx @@ -7,7 +7,7 @@ import type { import { Suspense, forwardRef } from "react"; import type { ArticleFragment } from "storefrontapi.generated"; -import { Skeleton } from "~/components"; +import { Skeleton } from "~/modules"; import { getImageLoadingPriority } from "~/lib/const"; interface RelatedArticlesProps extends HydrogenComponentProps { diff --git a/app/sections/related-products.tsx b/app/sections/related-products.tsx index 02d8e668..6a1d8da2 100644 --- a/app/sections/related-products.tsx +++ b/app/sections/related-products.tsx @@ -6,7 +6,7 @@ import type { import { Suspense, forwardRef } from "react"; import type { ProductCardFragment } from "storefrontapi.generated"; -import { ProductSwimlane, Skeleton } from "~/components"; +import { ProductSwimlane, Skeleton } from "~/modules"; interface RelatedProductsProps extends HydrogenComponentProps { heading: string; diff --git a/app/sections/shared/Button.tsx b/app/sections/shared/Button.tsx deleted file mode 100644 index 64c43c18..00000000 --- a/app/sections/shared/Button.tsx +++ /dev/null @@ -1,138 +0,0 @@ -import type { - InspectorGroup, - HydrogenComponentProps, - HydrogenComponentSchema, -} from "@weaverse/hydrogen"; -import type { VariantProps } from "class-variance-authority"; -import { cva } from "class-variance-authority"; -import { clsx } from "clsx"; -import { forwardRef } from "react"; -import { Link } from "~/components"; - -export interface ButtonProps extends VariantProps { - as?: keyof HTMLElementTagNameMap; - className?: string; - text: string; - link?: string; - openInNewTab?: boolean; -} - -let variants = cva( - "inline-flex items-center justify-center whitespace-nowrap text-base font-medium transition-colors focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50", - { - variants: { - variant: { - primary: "btn-primary border-2 px-5 py-3", - secondary: "btn-secondary border-2 px-5 py-3", - link: "btn-link bg-transparent py-2 border-b-2", - }, - shape: { - square: "", - rounded: "rounded-md", - pill: "rounded-full", - }, - weight: { - medium: "font-medium", - semibold: "font-semibold", - bold: "font-bold", - }, - }, - defaultVariants: { - variant: "primary", - shape: "rounded", - weight: "medium", - }, - }, -); - -interface Props extends ButtonProps, Partial {} - -let Button = forwardRef((props, ref) => { - let { - // as = "button", - variant, - // shape = "rounded", - // weight = "medium", - text, - link, - openInNewTab, - className, - ...rest - } = props; - - if (link) { - return ( - } - {...rest} - className={clsx(variants({ variant: variant, className }))} - to={link || "/"} - target={openInNewTab ? "_blank" : "_self"} - rel="noreferrer" - > - {text} - - ); - } - return ( - - ); -}); - -export default Button; - -export let buttonInputs: InspectorGroup["inputs"] = [ - { - type: "text", - name: "text", - label: "Text content", - defaultValue: "Shop now", - placeholder: "Shop now", - }, - { - type: "url", - name: "link", - label: "Link to", - defaultValue: "/products", - placeholder: "/products", - }, - { - type: "switch", - name: "openInNewTab", - label: "Open in new tab", - defaultValue: false, - condition: "buttonLink.ne.nil", - }, - { - type: "select", - name: "variant", - label: "Variant", - configs: { - options: [ - { label: "Primary", value: "primary" }, - { label: "Secondary", value: "secondary" }, - { label: "Link", value: "link" }, - ], - }, - defaultValue: "primary", - }, -]; - -export let schema: HydrogenComponentSchema = { - type: "button", - title: "Button", - inspector: [ - { - group: "Button", - inputs: buttonInputs, - }, - ], - toolbar: ["general-settings", ["duplicate", "delete"]], -}; diff --git a/app/sections/shared/atoms.ts b/app/sections/shared/atoms.ts deleted file mode 100644 index 16a21fd8..00000000 --- a/app/sections/shared/atoms.ts +++ /dev/null @@ -1,13 +0,0 @@ -import type { HydrogenComponent } from "@weaverse/hydrogen"; - -import * as Heading from "./Heading"; -import * as SubHeading from "./SubHeading"; -import * as Description from "./Description"; -import * as Button from "./Button"; - -export let commonComponents: HydrogenComponent[] = [ - SubHeading, - Heading, - Description, - Button, -]; diff --git a/app/sections/single-product/index.tsx b/app/sections/single-product/index.tsx index 04a9b90d..0a8aef7a 100644 --- a/app/sections/single-product/index.tsx +++ b/app/sections/single-product/index.tsx @@ -1,21 +1,19 @@ import { Money, ShopPayButton } from "@shopify/hydrogen"; import { + useThemeSettings, type ComponentLoaderArgs, type HydrogenComponentProps, type HydrogenComponentSchema, - useThemeSettings, type WeaverseProduct, } from "@weaverse/hydrogen"; import { forwardRef, useEffect, useState } from "react"; - import type { ProductQuery } from "storefrontapi.generated"; -import { AddToCartButton } from "~/components"; import { PRODUCT_QUERY, VARIANTS_QUERY } from "~/data/queries"; - -import { Quantity } from "../../components/product-form/quantity"; -import { ProductVariants } from "../../components/product-form/variants"; -import { ProductPlaceholder } from "../../components/product-form/placeholder"; -import { ProductMedia } from "../../components/product-form/product-media"; +import { AddToCartButton } from "~/modules"; +import { ProductPlaceholder } from "~/modules/product-form/placeholder"; +import { ProductMedia } from "~/modules/product-form/product-media"; +import { Quantity } from "~/modules/product-form/quantity"; +import { ProductVariants } from "~/modules/product-form/variants"; type SingleProductData = { productsCount: number; diff --git a/app/sections/testimonials/index.tsx b/app/sections/testimonials/index.tsx index be1fba0d..0627774f 100644 --- a/app/sections/testimonials/index.tsx +++ b/app/sections/testimonials/index.tsx @@ -1,8 +1,8 @@ import { type HydrogenComponentSchema } from "@weaverse/hydrogen"; import { forwardRef } from "react"; -import type { SectionProps } from "~/sections/shared/Section"; -import { Section, sectionInspector } from "~/sections/shared/Section"; +import type { SectionProps } from "~/components/Section"; +import { Section, sectionInspector } from "~/components/Section"; type TestimonialsProps = SectionProps & { heading: string; diff --git a/app/sections/user-profiles/index.tsx b/app/sections/user-profiles/index.tsx index 0f9b8fbe..2cd918a0 100644 --- a/app/sections/user-profiles/index.tsx +++ b/app/sections/user-profiles/index.tsx @@ -8,7 +8,7 @@ import clsx from "clsx"; import { Image } from "@shopify/hydrogen"; import { METAOBJECTS_QUERY } from "~/data/queries"; -import { Button } from "~/components"; +import { Button } from "~/modules"; const UserCard = ({ user }: { user: any }) => { let { fields } = user; diff --git a/app/sections/video-embed/index.tsx b/app/sections/video-embed/index.tsx index edfd6ad5..50480f10 100644 --- a/app/sections/video-embed/index.tsx +++ b/app/sections/video-embed/index.tsx @@ -1,8 +1,8 @@ import type { HydrogenComponentSchema } from "@weaverse/hydrogen"; import { forwardRef } from "react"; -import type { SectionProps } from "~/sections/shared/Section"; -import { Section, sectionInspector } from "~/sections/shared/Section"; +import type { SectionProps } from "~/components/Section"; +import { Section, sectionInspector } from "~/components/Section"; type VideoEmbedProps = SectionProps & { heading: string; diff --git a/app/sections/video-hero/index.tsx b/app/sections/video-hero/index.tsx index 4f3adb9b..bb7e4663 100644 --- a/app/sections/video-hero/index.tsx +++ b/app/sections/video-hero/index.tsx @@ -3,8 +3,8 @@ import clsx from "clsx"; import type { CSSProperties } from "react"; import { forwardRef, lazy, Suspense } from "react"; -import { overlayInputs } from "~/sections/shared/Overlay"; -import { gapClasses } from "~/sections/shared/Section"; +import { overlayInputs } from "~/components/Overlay"; +import { gapClasses } from "~/components/Section"; type VideoHeroProps = { videoURL: string; diff --git a/app/weaverse/components.ts b/app/weaverse/components.ts index 3461f0bf..6a486b44 100644 --- a/app/weaverse/components.ts +++ b/app/weaverse/components.ts @@ -13,7 +13,7 @@ import * as Countdown from "~/sections/countdown"; import * as CountDownTimer from "~/sections/countdown/timer"; import * as FeaturedCollections from "~/sections/featured-collections"; import * as FeaturedProducts from "~/sections/featured-products"; -import * as ImageBanner from "~/sections/image-banner"; +import * as HeroImage from "~/sections/hero-image"; import * as ImageGallery from "~/sections/image-gallery"; import * as ImageGalleryItem from "~/sections/image-gallery/image"; import * as ImageGalleryItems from "~/sections/image-gallery/items"; @@ -28,9 +28,9 @@ import * as PromotionGridButtons from "~/sections/promotion-grid/buttons"; import * as PromotionGridItem from "~/sections/promotion-grid/item"; import * as RelatedArticles from "~/sections/related-articles"; import * as RelatedProducts from "~/sections/related-products"; -import { commonComponents } from "~/sections/shared/atoms"; +import { sharedComponents } from "~/components"; import * as SingleProduct from "~/sections/single-product"; -import * as Judgeme from "~/components/product-form/judgeme-review"; +import * as Judgeme from "~/modules/product-form/judgeme-review"; import * as Testimonial from "~/sections/testimonials"; import * as TestimonialItem from "~/sections/testimonials/item"; import * as TestimonialItems from "~/sections/testimonials/items"; @@ -48,7 +48,7 @@ import * as ContactForm from "~/sections/contact-form"; import * as UserProfiles from "~/sections/user-profiles"; export let components: HydrogenComponent[] = [ - ...commonComponents, + ...sharedComponents, AllProducts, BlogPost, Blogs, @@ -56,7 +56,7 @@ export let components: HydrogenComponent[] = [ Page, VideoEmbed, VideoEmbedItem, - ImageBanner, + HeroImage, ImageWithText, ImageWithTextContent, ImageWithTextImage, diff --git a/app/weaverse/index.tsx b/app/weaverse/index.tsx index c537551f..e3682e6b 100644 --- a/app/weaverse/index.tsx +++ b/app/weaverse/index.tsx @@ -1,5 +1,5 @@ import { WeaverseHydrogenRoot } from "@weaverse/hydrogen"; -import { GenericError } from "~/components/GenericError"; +import { GenericError } from "~/modules/GenericError"; import { components } from "./components"; export function WeaverseContent() { From 8393607d9b8b52ecb1b84a67a9c26109601732a2 Mon Sep 17 00:00:00 2001 From: Paul Date: Thu, 23 May 2024 22:37:22 +0700 Subject: [PATCH 5/5] chore: refactor, update weaverse package to 3.1.9 --- CHANGELOG.md | 13 + app/sections/hero.tsx | 4 +- app/sections/image-with-text/index.tsx | 4 +- customer-accountapi.generated.d.ts | 308 +++++----- package-lock.json | 501 ++++++++++------- package.json | 4 +- storefrontapi.generated.d.ts | 742 ++++++++++++------------- 7 files changed, 839 insertions(+), 737 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 03ad6bf1..b834e36a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # @weaverse/pilot +## 2.6.8 + +### Patch Changes + +- Updated dependencies + - @weaverse/hydrogen@3.1.9 + +## 2.6.7 + +### Patch Changes + +- @weaverse/hydrogen@3.1.8 + ## 2.6.6 ### Patch Changes diff --git a/app/sections/hero.tsx b/app/sections/hero.tsx index f412fccd..042111af 100644 --- a/app/sections/hero.tsx +++ b/app/sections/hero.tsx @@ -64,11 +64,11 @@ export let schema: HydrogenComponentSchema = { defaultValue: "eager", configs: { options: [ - { label: "Eager", value: "eager", icon: "Lightning" }, + { label: "Eager", value: "eager", icon: "zap" }, { label: "Lazy", value: "lazy", - icon: "SpinnerGap", + icon: "loader", weight: "light", }, ], diff --git a/app/sections/image-with-text/index.tsx b/app/sections/image-with-text/index.tsx index ffc87100..39082498 100644 --- a/app/sections/image-with-text/index.tsx +++ b/app/sections/image-with-text/index.tsx @@ -65,8 +65,8 @@ export let schema: HydrogenComponentSchema = { name: "imageAlignment", configs: { options: [ - { label: "Left", value: "left", icon: "AlignLeft" }, - { label: "Right", value: "right", icon: "AlignRight" }, + { label: "Left", value: "left", icon: "align-left" }, + { label: "Right", value: "right", icon: "align-right" }, ], }, defaultValue: "left", diff --git a/customer-accountapi.generated.d.ts b/customer-accountapi.generated.d.ts index 71536131..0b111f4e 100644 --- a/customer-accountapi.generated.d.ts +++ b/customer-accountapi.generated.d.ts @@ -1,13 +1,13 @@ /* eslint-disable eslint-comments/disable-enable-pair */ /* eslint-disable eslint-comments/no-unlimited-disable */ /* eslint-disable */ -import type * as CustomerAccountAPI from "@shopify/hydrogen/customer-account-api-types"; +import type * as CustomerAccountAPI from '@shopify/hydrogen/customer-account-api-types'; export type CustomerAddressUpdateMutationVariables = CustomerAccountAPI.Exact<{ address: CustomerAccountAPI.CustomerAddressInput; - addressId: CustomerAccountAPI.Scalars["ID"]["input"]; + addressId: CustomerAccountAPI.Scalars['ID']['input']; defaultAddress?: CustomerAccountAPI.InputMaybe< - CustomerAccountAPI.Scalars["Boolean"]["input"] + CustomerAccountAPI.Scalars['Boolean']['input'] >; }>; @@ -16,26 +16,26 @@ export type CustomerAddressUpdateMutation = { userErrors: Array< Pick< CustomerAccountAPI.UserErrorsCustomerAddressUserErrors, - "code" | "field" | "message" + 'code' | 'field' | 'message' > >; }>; }; export type CustomerAddressDeleteMutationVariables = CustomerAccountAPI.Exact<{ - addressId: CustomerAccountAPI.Scalars["ID"]["input"]; + addressId: CustomerAccountAPI.Scalars['ID']['input']; }>; export type CustomerAddressDeleteMutation = { customerAddressDelete?: CustomerAccountAPI.Maybe< Pick< CustomerAccountAPI.CustomerAddressDeletePayload, - "deletedAddressId" + 'deletedAddressId' > & { userErrors: Array< Pick< CustomerAccountAPI.UserErrorsCustomerAddressUserErrors, - "code" | "field" | "message" + 'code' | 'field' | 'message' > >; } @@ -45,19 +45,19 @@ export type CustomerAddressDeleteMutation = { export type CustomerAddressCreateMutationVariables = CustomerAccountAPI.Exact<{ address: CustomerAccountAPI.CustomerAddressInput; defaultAddress?: CustomerAccountAPI.InputMaybe< - CustomerAccountAPI.Scalars["Boolean"]["input"] + CustomerAccountAPI.Scalars['Boolean']['input'] >; }>; export type CustomerAddressCreateMutation = { customerAddressCreate?: CustomerAccountAPI.Maybe<{ customerAddress?: CustomerAccountAPI.Maybe< - Pick + Pick >; userErrors: Array< Pick< CustomerAccountAPI.UserErrorsCustomerAddressUserErrors, - "code" | "field" | "message" + 'code' | 'field' | 'message' > >; }>; @@ -65,17 +65,15 @@ export type CustomerAddressCreateMutation = { export type OrderCardFragment = Pick< CustomerAccountAPI.Order, - "id" | "number" | "processedAt" | "financialStatus" + 'id' | 'number' | 'processedAt' | 'financialStatus' > & { - fulfillments: { - nodes: Array>; - }; - totalPrice: Pick; + fulfillments: {nodes: Array>}; + totalPrice: Pick; lineItems: { edges: Array<{ - node: Pick & { + node: Pick & { image?: CustomerAccountAPI.Maybe< - Pick + Pick >; }; }>; @@ -84,63 +82,63 @@ export type OrderCardFragment = Pick< export type AddressPartialFragment = Pick< CustomerAccountAPI.CustomerAddress, - | "id" - | "formatted" - | "firstName" - | "lastName" - | "company" - | "address1" - | "address2" - | "territoryCode" - | "zoneCode" - | "city" - | "zip" - | "phoneNumber" + | 'id' + | 'formatted' + | 'firstName' + | 'lastName' + | 'company' + | 'address1' + | 'address2' + | 'territoryCode' + | 'zoneCode' + | 'city' + | 'zip' + | 'phoneNumber' >; export type CustomerDetailsFragment = Pick< CustomerAccountAPI.Customer, - "firstName" | "lastName" + 'firstName' | 'lastName' > & { phoneNumber?: CustomerAccountAPI.Maybe< - Pick + Pick >; emailAddress?: CustomerAccountAPI.Maybe< - Pick + Pick >; defaultAddress?: CustomerAccountAPI.Maybe< Pick< CustomerAccountAPI.CustomerAddress, - | "id" - | "formatted" - | "firstName" - | "lastName" - | "company" - | "address1" - | "address2" - | "territoryCode" - | "zoneCode" - | "city" - | "zip" - | "phoneNumber" + | 'id' + | 'formatted' + | 'firstName' + | 'lastName' + | 'company' + | 'address1' + | 'address2' + | 'territoryCode' + | 'zoneCode' + | 'city' + | 'zip' + | 'phoneNumber' > >; addresses: { edges: Array<{ node: Pick< CustomerAccountAPI.CustomerAddress, - | "id" - | "formatted" - | "firstName" - | "lastName" - | "company" - | "address1" - | "address2" - | "territoryCode" - | "zoneCode" - | "city" - | "zip" - | "phoneNumber" + | 'id' + | 'formatted' + | 'firstName' + | 'lastName' + | 'company' + | 'address1' + | 'address2' + | 'territoryCode' + | 'zoneCode' + | 'city' + | 'zip' + | 'phoneNumber' >; }>; }; @@ -148,19 +146,19 @@ export type CustomerDetailsFragment = Pick< edges: Array<{ node: Pick< CustomerAccountAPI.Order, - "id" | "number" | "processedAt" | "financialStatus" + 'id' | 'number' | 'processedAt' | 'financialStatus' > & { fulfillments: { - nodes: Array>; + nodes: Array>; }; - totalPrice: Pick; + totalPrice: Pick; lineItems: { edges: Array<{ - node: Pick & { + node: Pick & { image?: CustomerAccountAPI.Maybe< Pick< CustomerAccountAPI.Image, - "altText" | "height" | "url" | "width" + 'altText' | 'height' | 'url' | 'width' > >; }; @@ -176,46 +174,46 @@ export type CustomerDetailsQueryVariables = CustomerAccountAPI.Exact<{ }>; export type CustomerDetailsQuery = { - customer: Pick & { + customer: Pick & { phoneNumber?: CustomerAccountAPI.Maybe< - Pick + Pick >; emailAddress?: CustomerAccountAPI.Maybe< - Pick + Pick >; defaultAddress?: CustomerAccountAPI.Maybe< Pick< CustomerAccountAPI.CustomerAddress, - | "id" - | "formatted" - | "firstName" - | "lastName" - | "company" - | "address1" - | "address2" - | "territoryCode" - | "zoneCode" - | "city" - | "zip" - | "phoneNumber" + | 'id' + | 'formatted' + | 'firstName' + | 'lastName' + | 'company' + | 'address1' + | 'address2' + | 'territoryCode' + | 'zoneCode' + | 'city' + | 'zip' + | 'phoneNumber' > >; addresses: { edges: Array<{ node: Pick< CustomerAccountAPI.CustomerAddress, - | "id" - | "formatted" - | "firstName" - | "lastName" - | "company" - | "address1" - | "address2" - | "territoryCode" - | "zoneCode" - | "city" - | "zip" - | "phoneNumber" + | 'id' + | 'formatted' + | 'firstName' + | 'lastName' + | 'company' + | 'address1' + | 'address2' + | 'territoryCode' + | 'zoneCode' + | 'city' + | 'zip' + | 'phoneNumber' >; }>; }; @@ -223,22 +221,22 @@ export type CustomerDetailsQuery = { edges: Array<{ node: Pick< CustomerAccountAPI.Order, - "id" | "number" | "processedAt" | "financialStatus" + 'id' | 'number' | 'processedAt' | 'financialStatus' > & { fulfillments: { - nodes: Array>; + nodes: Array>; }; totalPrice: Pick< CustomerAccountAPI.MoneyV2, - "amount" | "currencyCode" + 'amount' | 'currencyCode' >; lineItems: { edges: Array<{ - node: Pick & { + node: Pick & { image?: CustomerAccountAPI.Maybe< Pick< CustomerAccountAPI.Image, - "altText" | "height" | "url" | "width" + 'altText' | 'height' | 'url' | 'width' > >; }; @@ -252,84 +250,82 @@ export type CustomerDetailsQuery = { export type OrderMoneyFragment = Pick< CustomerAccountAPI.MoneyV2, - "amount" | "currencyCode" + 'amount' | 'currencyCode' >; export type DiscountApplicationFragment = { value: - | ({ __typename: "MoneyV2" } & Pick< + | ({__typename: 'MoneyV2'} & Pick< CustomerAccountAPI.MoneyV2, - "amount" | "currencyCode" + 'amount' | 'currencyCode' >) - | ({ __typename: "PricingPercentageValue" } & Pick< + | ({__typename: 'PricingPercentageValue'} & Pick< CustomerAccountAPI.PricingPercentageValue, - "percentage" + 'percentage' >); }; export type OrderLineItemFullFragment = Pick< CustomerAccountAPI.LineItem, - "id" | "title" | "quantity" | "variantTitle" + 'id' | 'title' | 'quantity' | 'variantTitle' > & { price?: CustomerAccountAPI.Maybe< - Pick + Pick >; discountAllocations: Array<{ allocatedAmount: Pick< CustomerAccountAPI.MoneyV2, - "amount" | "currencyCode" + 'amount' | 'currencyCode' >; discountApplication: { value: - | ({ __typename: "MoneyV2" } & Pick< + | ({__typename: 'MoneyV2'} & Pick< CustomerAccountAPI.MoneyV2, - "amount" | "currencyCode" + 'amount' | 'currencyCode' >) - | ({ __typename: "PricingPercentageValue" } & Pick< + | ({__typename: 'PricingPercentageValue'} & Pick< CustomerAccountAPI.PricingPercentageValue, - "percentage" + 'percentage' >); }; }>; - totalDiscount: Pick; + totalDiscount: Pick; image?: CustomerAccountAPI.Maybe< Pick< CustomerAccountAPI.Image, - "altText" | "height" | "url" | "id" | "width" + 'altText' | 'height' | 'url' | 'id' | 'width' > >; }; export type OrderFragment = Pick< CustomerAccountAPI.Order, - "id" | "name" | "statusPageUrl" | "processedAt" + 'id' | 'name' | 'statusPageUrl' | 'processedAt' > & { - fulfillments: { - nodes: Array>; - }; + fulfillments: {nodes: Array>}; totalTax?: CustomerAccountAPI.Maybe< - Pick + Pick >; - totalPrice: Pick; + totalPrice: Pick; subtotal?: CustomerAccountAPI.Maybe< - Pick + Pick >; shippingAddress?: CustomerAccountAPI.Maybe< Pick< CustomerAccountAPI.CustomerAddress, - "name" | "formatted" | "formattedArea" + 'name' | 'formatted' | 'formattedArea' > >; discountApplications: { nodes: Array<{ value: - | ({ __typename: "MoneyV2" } & Pick< + | ({__typename: 'MoneyV2'} & Pick< CustomerAccountAPI.MoneyV2, - "amount" | "currencyCode" + 'amount' | 'currencyCode' >) - | ({ __typename: "PricingPercentageValue" } & Pick< + | ({__typename: 'PricingPercentageValue'} & Pick< CustomerAccountAPI.PricingPercentageValue, - "percentage" + 'percentage' >); }>; }; @@ -337,36 +333,36 @@ export type OrderFragment = Pick< nodes: Array< Pick< CustomerAccountAPI.LineItem, - "id" | "title" | "quantity" | "variantTitle" + 'id' | 'title' | 'quantity' | 'variantTitle' > & { price?: CustomerAccountAPI.Maybe< - Pick + Pick >; discountAllocations: Array<{ allocatedAmount: Pick< CustomerAccountAPI.MoneyV2, - "amount" | "currencyCode" + 'amount' | 'currencyCode' >; discountApplication: { value: - | ({ __typename: "MoneyV2" } & Pick< + | ({__typename: 'MoneyV2'} & Pick< CustomerAccountAPI.MoneyV2, - "amount" | "currencyCode" + 'amount' | 'currencyCode' >) - | ({ __typename: "PricingPercentageValue" } & Pick< + | ({__typename: 'PricingPercentageValue'} & Pick< CustomerAccountAPI.PricingPercentageValue, - "percentage" + 'percentage' >); }; }>; totalDiscount: Pick< CustomerAccountAPI.MoneyV2, - "amount" | "currencyCode" + 'amount' | 'currencyCode' >; image?: CustomerAccountAPI.Maybe< Pick< CustomerAccountAPI.Image, - "altText" | "height" | "url" | "id" | "width" + 'altText' | 'height' | 'url' | 'id' | 'width' > >; } @@ -375,41 +371,41 @@ export type OrderFragment = Pick< }; export type OrderQueryVariables = CustomerAccountAPI.Exact<{ - orderId: CustomerAccountAPI.Scalars["ID"]["input"]; + orderId: CustomerAccountAPI.Scalars['ID']['input']; }>; export type OrderQuery = { order?: CustomerAccountAPI.Maybe< Pick< CustomerAccountAPI.Order, - "id" | "name" | "statusPageUrl" | "processedAt" + 'id' | 'name' | 'statusPageUrl' | 'processedAt' > & { fulfillments: { - nodes: Array>; + nodes: Array>; }; totalTax?: CustomerAccountAPI.Maybe< - Pick + Pick >; - totalPrice: Pick; + totalPrice: Pick; subtotal?: CustomerAccountAPI.Maybe< - Pick + Pick >; shippingAddress?: CustomerAccountAPI.Maybe< Pick< CustomerAccountAPI.CustomerAddress, - "name" | "formatted" | "formattedArea" + 'name' | 'formatted' | 'formattedArea' > >; discountApplications: { nodes: Array<{ value: - | ({ __typename: "MoneyV2" } & Pick< + | ({__typename: 'MoneyV2'} & Pick< CustomerAccountAPI.MoneyV2, - "amount" | "currencyCode" + 'amount' | 'currencyCode' >) - | ({ __typename: "PricingPercentageValue" } & Pick< + | ({__typename: 'PricingPercentageValue'} & Pick< CustomerAccountAPI.PricingPercentageValue, - "percentage" + 'percentage' >); }>; }; @@ -417,36 +413,36 @@ export type OrderQuery = { nodes: Array< Pick< CustomerAccountAPI.LineItem, - "id" | "title" | "quantity" | "variantTitle" + 'id' | 'title' | 'quantity' | 'variantTitle' > & { price?: CustomerAccountAPI.Maybe< - Pick + Pick >; discountAllocations: Array<{ allocatedAmount: Pick< CustomerAccountAPI.MoneyV2, - "amount" | "currencyCode" + 'amount' | 'currencyCode' >; discountApplication: { value: - | ({ __typename: "MoneyV2" } & Pick< + | ({__typename: 'MoneyV2'} & Pick< CustomerAccountAPI.MoneyV2, - "amount" | "currencyCode" + 'amount' | 'currencyCode' >) - | ({ __typename: "PricingPercentageValue" } & Pick< + | ({__typename: 'PricingPercentageValue'} & Pick< CustomerAccountAPI.PricingPercentageValue, - "percentage" + 'percentage' >); }; }>; totalDiscount: Pick< CustomerAccountAPI.MoneyV2, - "amount" | "currencyCode" + 'amount' | 'currencyCode' >; image?: CustomerAccountAPI.Maybe< Pick< CustomerAccountAPI.Image, - "altText" | "height" | "url" | "id" | "width" + 'altText' | 'height' | 'url' | 'id' | 'width' > >; } @@ -465,43 +461,43 @@ export type CustomerUpdateMutation = { userErrors: Array< Pick< CustomerAccountAPI.UserErrorsCustomerUserErrors, - "code" | "field" | "message" + 'code' | 'field' | 'message' > >; }>; }; interface GeneratedQueryTypes { - "#graphql\n query CustomerDetails {\n customer {\n ...CustomerDetails\n }\n }\n #graphql\n fragment OrderCard on Order {\n id\n number\n processedAt\n financialStatus\n fulfillments(first: 1) {\n nodes {\n status\n }\n }\n totalPrice {\n amount\n currencyCode\n }\n lineItems(first: 2) {\n edges {\n node {\n title\n image {\n altText\n height\n url\n width\n }\n }\n }\n }\n }\n\n fragment AddressPartial on CustomerAddress {\n id\n formatted\n firstName\n lastName\n company\n address1\n address2\n territoryCode\n zoneCode\n city\n zip\n phoneNumber\n }\n\n fragment CustomerDetails on Customer {\n firstName\n lastName\n phoneNumber {\n phoneNumber\n }\n emailAddress {\n emailAddress\n }\n defaultAddress {\n ...AddressPartial\n }\n addresses(first: 6) {\n edges {\n node {\n ...AddressPartial\n }\n }\n }\n orders(first: 250, sortKey: PROCESSED_AT, reverse: true) {\n edges {\n node {\n ...OrderCard\n }\n }\n }\n }\n\n": { + '#graphql\n query CustomerDetails {\n customer {\n ...CustomerDetails\n }\n }\n #graphql\n fragment OrderCard on Order {\n id\n number\n processedAt\n financialStatus\n fulfillments(first: 1) {\n nodes {\n status\n }\n }\n totalPrice {\n amount\n currencyCode\n }\n lineItems(first: 2) {\n edges {\n node {\n title\n image {\n altText\n height\n url\n width\n }\n }\n }\n }\n }\n\n fragment AddressPartial on CustomerAddress {\n id\n formatted\n firstName\n lastName\n company\n address1\n address2\n territoryCode\n zoneCode\n city\n zip\n phoneNumber\n }\n\n fragment CustomerDetails on Customer {\n firstName\n lastName\n phoneNumber {\n phoneNumber\n }\n emailAddress {\n emailAddress\n }\n defaultAddress {\n ...AddressPartial\n }\n addresses(first: 6) {\n edges {\n node {\n ...AddressPartial\n }\n }\n }\n orders(first: 250, sortKey: PROCESSED_AT, reverse: true) {\n edges {\n node {\n ...OrderCard\n }\n }\n }\n }\n\n': { return: CustomerDetailsQuery; variables: CustomerDetailsQueryVariables; }; - "#graphql\n fragment OrderMoney on MoneyV2 {\n amount\n currencyCode\n }\n fragment DiscountApplication on DiscountApplication {\n value {\n __typename\n ... on MoneyV2 {\n ...OrderMoney\n }\n ... on PricingPercentageValue {\n percentage\n }\n }\n }\n fragment OrderLineItemFull on LineItem {\n id\n title\n quantity\n price {\n ...OrderMoney\n }\n discountAllocations {\n allocatedAmount {\n ...OrderMoney\n }\n discountApplication {\n ...DiscountApplication\n }\n }\n totalDiscount {\n ...OrderMoney\n }\n image {\n altText\n height\n url\n id\n width\n }\n variantTitle\n }\n fragment Order on Order {\n id\n name\n statusPageUrl\n processedAt\n fulfillments(first: 1) {\n nodes {\n status\n }\n }\n totalTax {\n ...OrderMoney\n }\n totalPrice {\n ...OrderMoney\n }\n subtotal {\n ...OrderMoney\n }\n shippingAddress {\n name\n formatted(withName: true)\n formattedArea\n }\n discountApplications(first: 100) {\n nodes {\n ...DiscountApplication\n }\n }\n lineItems(first: 100) {\n nodes {\n ...OrderLineItemFull\n }\n }\n }\n query Order($orderId: ID!) {\n order(id: $orderId) {\n ... on Order {\n ...Order\n }\n }\n }\n": { + '#graphql\n fragment OrderMoney on MoneyV2 {\n amount\n currencyCode\n }\n fragment DiscountApplication on DiscountApplication {\n value {\n __typename\n ... on MoneyV2 {\n ...OrderMoney\n }\n ... on PricingPercentageValue {\n percentage\n }\n }\n }\n fragment OrderLineItemFull on LineItem {\n id\n title\n quantity\n price {\n ...OrderMoney\n }\n discountAllocations {\n allocatedAmount {\n ...OrderMoney\n }\n discountApplication {\n ...DiscountApplication\n }\n }\n totalDiscount {\n ...OrderMoney\n }\n image {\n altText\n height\n url\n id\n width\n }\n variantTitle\n }\n fragment Order on Order {\n id\n name\n statusPageUrl\n processedAt\n fulfillments(first: 1) {\n nodes {\n status\n }\n }\n totalTax {\n ...OrderMoney\n }\n totalPrice {\n ...OrderMoney\n }\n subtotal {\n ...OrderMoney\n }\n shippingAddress {\n name\n formatted(withName: true)\n formattedArea\n }\n discountApplications(first: 100) {\n nodes {\n ...DiscountApplication\n }\n }\n lineItems(first: 100) {\n nodes {\n ...OrderLineItemFull\n }\n }\n }\n query Order($orderId: ID!) {\n order(id: $orderId) {\n ... on Order {\n ...Order\n }\n }\n }\n': { return: OrderQuery; variables: OrderQueryVariables; }; } interface GeneratedMutationTypes { - "#graphql\n mutation customerAddressUpdate(\n $address: CustomerAddressInput!\n $addressId: ID!\n $defaultAddress: Boolean\n ) {\n customerAddressUpdate(\n address: $address\n addressId: $addressId\n defaultAddress: $defaultAddress\n ) {\n userErrors {\n code\n field\n message\n }\n }\n }\n": { + '#graphql\n mutation customerAddressUpdate(\n $address: CustomerAddressInput!\n $addressId: ID!\n $defaultAddress: Boolean\n ) {\n customerAddressUpdate(\n address: $address\n addressId: $addressId\n defaultAddress: $defaultAddress\n ) {\n userErrors {\n code\n field\n message\n }\n }\n }\n': { return: CustomerAddressUpdateMutation; variables: CustomerAddressUpdateMutationVariables; }; - "#graphql\n mutation customerAddressDelete(\n $addressId: ID!,\n ) {\n customerAddressDelete(addressId: $addressId) {\n deletedAddressId\n userErrors {\n code\n field\n message\n }\n }\n }\n": { + '#graphql\n mutation customerAddressDelete(\n $addressId: ID!,\n ) {\n customerAddressDelete(addressId: $addressId) {\n deletedAddressId\n userErrors {\n code\n field\n message\n }\n }\n }\n': { return: CustomerAddressDeleteMutation; variables: CustomerAddressDeleteMutationVariables; }; - "#graphql\n mutation customerAddressCreate(\n $address: CustomerAddressInput!\n $defaultAddress: Boolean\n ) {\n customerAddressCreate(\n address: $address\n defaultAddress: $defaultAddress\n ) {\n customerAddress {\n id\n }\n userErrors {\n code\n field\n message\n }\n }\n }\n": { + '#graphql\n mutation customerAddressCreate(\n $address: CustomerAddressInput!\n $defaultAddress: Boolean\n ) {\n customerAddressCreate(\n address: $address\n defaultAddress: $defaultAddress\n ) {\n customerAddress {\n id\n }\n userErrors {\n code\n field\n message\n }\n }\n }\n': { return: CustomerAddressCreateMutation; variables: CustomerAddressCreateMutationVariables; }; - "#graphql\nmutation customerUpdate($customer: CustomerUpdateInput!) {\n customerUpdate(input: $customer) {\n userErrors {\n code\n field\n message\n }\n }\n}\n": { + '#graphql\nmutation customerUpdate($customer: CustomerUpdateInput!) {\n customerUpdate(input: $customer) {\n userErrors {\n code\n field\n message\n }\n }\n}\n': { return: CustomerUpdateMutation; variables: CustomerUpdateMutationVariables; }; } -declare module "@shopify/hydrogen" { +declare module '@shopify/hydrogen' { interface CustomerAccountQueries extends GeneratedQueryTypes {} interface CustomerAccountMutations extends GeneratedMutationTypes {} } diff --git a/package-lock.json b/package-lock.json index 40714a29..1b88a0c4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@weaverse/pilot", - "version": "2.6.6", + "version": "2.6.8", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@weaverse/pilot", - "version": "2.6.6", + "version": "2.6.8", "dependencies": { "@fontsource/poppins": "^5.0.14", "@graphql-codegen/cli": "^5.0.2", @@ -17,7 +17,7 @@ "@shopify/cli-hydrogen": "^8.0.4", "@shopify/hydrogen": "2024.4.2", "@shopify/remix-oxygen": "^2.0.4", - "@weaverse/hydrogen": "3.1.7", + "@weaverse/hydrogen": "^3.1.9", "class-variance-authority": "^0.7.0", "clsx": "2.1.1", "cross-env": "7.0.3", @@ -1708,9 +1708,9 @@ } }, "node_modules/@csstools/postcss-cascade-layers/node_modules/postcss-selector-parser": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", - "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", + "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -2014,9 +2014,9 @@ } }, "node_modules/@csstools/postcss-is-pseudo-class/node_modules/postcss-selector-parser": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", - "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", + "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -2386,9 +2386,9 @@ } }, "node_modules/@csstools/postcss-scope-pseudo-class/node_modules/postcss-selector-parser": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", - "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", + "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -4053,6 +4053,7 @@ "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "devOptional": true, "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -4069,6 +4070,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "devOptional": true, "engines": { "node": ">=12" }, @@ -4080,6 +4082,7 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "devOptional": true, "engines": { "node": ">=12" }, @@ -4091,6 +4094,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "devOptional": true, "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -4107,6 +4111,7 @@ "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "devOptional": true, "dependencies": { "ansi-regex": "^6.0.1" }, @@ -4121,6 +4126,7 @@ "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "devOptional": true, "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -4451,6 +4457,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.1.tgz", "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", + "devOptional": true, "dependencies": { "semver": "^7.3.5" }, @@ -4462,6 +4469,7 @@ "version": "7.6.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "devOptional": true, "bin": { "semver": "bin/semver.js" }, @@ -4473,6 +4481,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-4.1.0.tgz", "integrity": "sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ==", + "devOptional": true, "dependencies": { "@npmcli/promise-spawn": "^6.0.0", "lru-cache": "^7.4.4", @@ -4491,6 +4500,7 @@ "version": "7.18.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "devOptional": true, "engines": { "node": ">=12" } @@ -4499,6 +4509,7 @@ "version": "7.6.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "devOptional": true, "bin": { "semver": "bin/semver.js" }, @@ -4510,6 +4521,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/@npmcli/package-json/-/package-json-4.0.1.tgz", "integrity": "sha512-lRCEGdHZomFsURroh522YvA/2cVb9oPIJrjHanCJZkiasz1BzcnLr3tBJhlV7S86MBJBuAQ33is2D60YitZL2Q==", + "devOptional": true, "dependencies": { "@npmcli/git": "^4.1.0", "glob": "^10.2.2", @@ -4524,12 +4536,13 @@ } }, "node_modules/@npmcli/package-json/node_modules/glob": { - "version": "10.3.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz", - "integrity": "sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==", + "version": "10.3.16", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.16.tgz", + "integrity": "sha512-JDKXl1DiuuHJ6fVS2FXjownaavciiHNUU4mOvV/B793RLh05vZL1rcPnCSaOgv1hDT6RDlY7AB7ZUvFYAtPgAw==", + "devOptional": true, "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", + "jackspeak": "^3.1.2", "minimatch": "^9.0.1", "minipass": "^7.0.4", "path-scurry": "^1.11.0" @@ -4548,6 +4561,7 @@ "version": "7.6.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "devOptional": true, "bin": { "semver": "bin/semver.js" }, @@ -4559,6 +4573,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-6.0.2.tgz", "integrity": "sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg==", + "devOptional": true, "dependencies": { "which": "^3.0.0" }, @@ -5307,18 +5322,19 @@ "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, "optional": true, "engines": { "node": ">=14" } }, "node_modules/@playwright/test": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.44.0.tgz", - "integrity": "sha512-rNX5lbNidamSUorBhB4XZ9SQTjAqfe5M+p37Z8ic0jPFBMo5iCtQz1kRWkEMg+rYOKSlVycpQmpqjSFq7LXOfg==", + "version": "1.44.1", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.44.1.tgz", + "integrity": "sha512-1hZ4TNvD5z9VuhNJ/walIjvMVvYkZKf71axoF/uiAqpntQJXpG64dlXhoDXE3OczPuTuvjf/M5KWFg5VAVUS3Q==", "dev": true, "dependencies": { - "playwright": "1.44.0" + "playwright": "1.44.1" }, "bin": { "playwright": "cli.js" @@ -5772,9 +5788,9 @@ "integrity": "sha512-Javneu5lsuhwNCryN+pXH93VPQ8g0dBX7wItHFgYiwQmzE1sVdg5tWHiOgHywzL2W21XQopa7IwIEnNbmeUJYA==" }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.17.2.tgz", - "integrity": "sha512-NM0jFxY8bB8QLkoKxIQeObCaDlJKewVlIEkuyYKm5An1tdVZ966w2+MPQ2l8LBZLjR+SgyV+nRkTIunzOYBMLQ==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", + "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", "cpu": [ "arm" ], @@ -5785,9 +5801,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.17.2.tgz", - "integrity": "sha512-yeX/Usk7daNIVwkq2uGoq2BYJKZY1JfyLTaHO/jaiSwi/lsf8fTFoQW/n6IdAsx5tx+iotu2zCJwz8MxI6D/Bw==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", + "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", "cpu": [ "arm64" ], @@ -5798,9 +5814,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.17.2.tgz", - "integrity": "sha512-kcMLpE6uCwls023+kknm71ug7MZOrtXo+y5p/tsg6jltpDtgQY1Eq5sGfHcQfb+lfuKwhBmEURDga9N0ol4YPw==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", + "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", "cpu": [ "arm64" ], @@ -5811,9 +5827,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.17.2.tgz", - "integrity": "sha512-AtKwD0VEx0zWkL0ZjixEkp5tbNLzX+FCqGG1SvOu993HnSz4qDI6S4kGzubrEJAljpVkhRSlg5bzpV//E6ysTQ==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", + "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", "cpu": [ "x64" ], @@ -5824,9 +5840,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.17.2.tgz", - "integrity": "sha512-3reX2fUHqN7sffBNqmEyMQVj/CKhIHZd4y631duy0hZqI8Qoqf6lTtmAKvJFYa6bhU95B1D0WgzHkmTg33In0A==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", + "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", "cpu": [ "arm" ], @@ -5837,9 +5853,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.17.2.tgz", - "integrity": "sha512-uSqpsp91mheRgw96xtyAGP9FW5ChctTFEoXP0r5FAzj/3ZRv3Uxjtc7taRQSaQM/q85KEKjKsZuiZM3GyUivRg==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", + "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", "cpu": [ "arm" ], @@ -5850,9 +5866,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.17.2.tgz", - "integrity": "sha512-EMMPHkiCRtE8Wdk3Qhtciq6BndLtstqZIroHiiGzB3C5LDJmIZcSzVtLRbwuXuUft1Cnv+9fxuDtDxz3k3EW2A==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", + "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", "cpu": [ "arm64" ], @@ -5863,9 +5879,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.17.2.tgz", - "integrity": "sha512-NMPylUUZ1i0z/xJUIx6VUhISZDRT+uTWpBcjdv0/zkp7b/bQDF+NfnfdzuTiB1G6HTodgoFa93hp0O1xl+/UbA==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", + "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", "cpu": [ "arm64" ], @@ -5876,9 +5892,9 @@ ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.17.2.tgz", - "integrity": "sha512-T19My13y8uYXPw/L/k0JYaX1fJKFT/PWdXiHr8mTbXWxjVF1t+8Xl31DgBBvEKclw+1b00Chg0hxE2O7bTG7GQ==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", + "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", "cpu": [ "ppc64" ], @@ -5889,9 +5905,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.17.2.tgz", - "integrity": "sha512-BOaNfthf3X3fOWAB+IJ9kxTgPmMqPPH5f5k2DcCsRrBIbWnaJCgX2ll77dV1TdSy9SaXTR5iDXRL8n7AnoP5cg==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", + "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", "cpu": [ "riscv64" ], @@ -5902,9 +5918,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.17.2.tgz", - "integrity": "sha512-W0UP/x7bnn3xN2eYMql2T/+wpASLE5SjObXILTMPUBDB/Fg/FxC+gX4nvCfPBCbNhz51C+HcqQp2qQ4u25ok6g==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", + "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", "cpu": [ "s390x" ], @@ -5915,9 +5931,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.17.2.tgz", - "integrity": "sha512-Hy7pLwByUOuyaFC6mAr7m+oMC+V7qyifzs/nW2OJfC8H4hbCzOX07Ov0VFk/zP3kBsELWNFi7rJtgbKYsav9QQ==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", + "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", "cpu": [ "x64" ], @@ -5928,9 +5944,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.17.2.tgz", - "integrity": "sha512-h1+yTWeYbRdAyJ/jMiVw0l6fOOm/0D1vNLui9iPuqgRGnXA0u21gAqOyB5iHjlM9MMfNOm9RHCQ7zLIzT0x11Q==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", + "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", "cpu": [ "x64" ], @@ -5941,9 +5957,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.17.2.tgz", - "integrity": "sha512-tmdtXMfKAjy5+IQsVtDiCfqbynAQE/TQRpWdVataHmhMb9DCoJxp9vLcCBjEQWMiUYxO1QprH/HbY9ragCEFLA==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", + "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", "cpu": [ "arm64" ], @@ -5954,9 +5970,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.17.2.tgz", - "integrity": "sha512-7II/QCSTAHuE5vdZaQEwJq2ZACkBpQDOmQsE6D6XUbnBHW8IAhm4eTufL6msLJorzrHDFv3CF8oCA/hSIRuZeQ==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", + "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", "cpu": [ "ia32" ], @@ -5967,9 +5983,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.17.2.tgz", - "integrity": "sha512-TGGO7v7qOq4CYmSBVEYpI1Y5xDuCEnbVC5Vth8mOsW0gDSzxNrVERPc790IGHsrT2dQSimgMr9Ub3Y1Jci5/8w==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", + "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", "cpu": [ "x64" ], @@ -6981,9 +6997,9 @@ } }, "node_modules/@shopify/oxygen-cli": { - "version": "4.4.6", - "resolved": "https://registry.npmjs.org/@shopify/oxygen-cli/-/oxygen-cli-4.4.6.tgz", - "integrity": "sha512-GCsp0l/VQxsezNoH7ItUuYBL4DB4yolYSe8z2FY6EyJ9vD7NPxBoBsVF4ZqPqVThjLXC/9hpokLUY0lH1MpPZg==", + "version": "4.4.7", + "resolved": "https://registry.npmjs.org/@shopify/oxygen-cli/-/oxygen-cli-4.4.7.tgz", + "integrity": "sha512-bh9deBzXYs3wa45o+87kD3MZPQcDbEHgfb76jOiOtf0oz1p1YOZzWXehg2UlaYP4h/uJjkmriXivPlwNRVoAVg==", "os": [ "darwin", "linux", @@ -7697,26 +7713,26 @@ "dev": true }, "node_modules/@vanilla-extract/babel-plugin-debug-ids": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@vanilla-extract/babel-plugin-debug-ids/-/babel-plugin-debug-ids-1.0.5.tgz", - "integrity": "sha512-Rc9A6ylsw7EBErmpgqCMvc/Z/eEZxI5k1xfLQHw7f5HHh3oc5YfzsAsYU/PdmSNjF1dp3sGEViBdDltvwnfVaA==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@vanilla-extract/babel-plugin-debug-ids/-/babel-plugin-debug-ids-1.0.6.tgz", + "integrity": "sha512-C188vUEYmw41yxg3QooTs8r1IdbDQQ2mH7L5RkORBnHx74QlmsNfqVmKwAVTgrlYt8JoRaWMtPfGm/Ql0BNQrA==", "devOptional": true, "dependencies": { "@babel/core": "^7.23.9" } }, "node_modules/@vanilla-extract/css": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/@vanilla-extract/css/-/css-1.15.1.tgz", - "integrity": "sha512-puAfTKAUtsMr2+D+grQNjU5umsdw9zdVgQflUlbzS/tGORaAHdgaYz7jfKPmz1c4ZcpJ6uFNOiI50NDOAzzhyg==", + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/@vanilla-extract/css/-/css-1.15.2.tgz", + "integrity": "sha512-Bi61iCAtojCuqvV+FYaF5i69vBjuMQJpHPdpgKYyQvx+e2Hp79V0ELglyYOdcyg9Wh0k0MFwgCDipVd7EloTXQ==", "devOptional": true, "dependencies": { "@emotion/hash": "^0.9.0", - "@vanilla-extract/private": "^1.0.4", + "@vanilla-extract/private": "^1.0.5", "css-what": "^6.1.0", "cssesc": "^3.0.0", "csstype": "^3.0.7", - "dedent": "^1.5.1", + "dedent": "^1.5.3", "deep-object-diff": "^1.1.9", "deepmerge": "^4.2.2", "media-query-parser": "^2.0.2", @@ -7801,15 +7817,15 @@ } }, "node_modules/@vanilla-extract/private": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@vanilla-extract/private/-/private-1.0.4.tgz", - "integrity": "sha512-8FGD6AejeC/nXcblgNCM5rnZb9KXa4WNkR03HCWtdJBpANjTgjHEglNLFnhuvdQ78tC6afaxBPI+g7F2NX3tgg==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@vanilla-extract/private/-/private-1.0.5.tgz", + "integrity": "sha512-6YXeOEKYTA3UV+RC8DeAjFk+/okoNz/h88R+McnzA2zpaVqTR/Ep+vszkWYlGBcMNO7vEkqbq5nT/JMMvhi+tw==", "devOptional": true }, "node_modules/@weaverse/core": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/@weaverse/core/-/core-3.1.7.tgz", - "integrity": "sha512-uNQtNZvFKBsiKdevj9uSLA8XAyPIPI54MHjBrZPKrPVbzToKtIULA65uyoeooTXx0vDTwSphr3quir9ZvjI+1g==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@weaverse/core/-/core-3.1.9.tgz", + "integrity": "sha512-XRSXLdniw7WbLKVChmvkXRdmpFuPgFI2m25m1vDIxhLe6fkx0m9MbNi4JgsB4HSggkMNHGLryRf8DETzxTifUg==", "dependencies": { "@stitches/core": "^1.2.8" }, @@ -7818,11 +7834,11 @@ } }, "node_modules/@weaverse/hydrogen": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/@weaverse/hydrogen/-/hydrogen-3.1.7.tgz", - "integrity": "sha512-zxREYWYg5Vup8+AEgI4AWOn5Bvlm3Svy5wL6tZaju+UhMvdAe3sVzIxKqApFkVLpw6mKeh1nxNDQ/tTH7nQrxQ==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@weaverse/hydrogen/-/hydrogen-3.1.9.tgz", + "integrity": "sha512-Tt8G5vlrwKlznMEmt5c0NE456lM0YA9cAHw03zJvXQSSF/F/8S+KbAA2OcJTVYhlAU5H150G1C152aboLWRqIw==", "dependencies": { - "@weaverse/react": "3.1.7", + "@weaverse/react": "3.1.9", "react-error-boundary": "^4.0.13" }, "engines": { @@ -7836,11 +7852,11 @@ } }, "node_modules/@weaverse/react": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/@weaverse/react/-/react-3.1.7.tgz", - "integrity": "sha512-J/otYVDEW2P9LPSl++lPhTQdIxMAnrn5PzIbC5DCQLy6KEiPfpMj/HM9n9wq81UDl6CKhygCbI0vVC7p/ZOT1g==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@weaverse/react/-/react-3.1.9.tgz", + "integrity": "sha512-HlQlB6d9osgudzmTr8nORJ8516MLXyzBnuLFin2Did6597xohGMhaOJfUyDvDXvM33XbiDw3uEQtKFb+MqtokA==", "dependencies": { - "@weaverse/core": "3.1.7", + "@weaverse/core": "3.1.9", "clsx": "^2.1.0" }, "engines": { @@ -8665,11 +8681,11 @@ } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -8820,6 +8836,7 @@ "version": "17.1.4", "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.1.4.tgz", "integrity": "sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==", + "devOptional": true, "dependencies": { "@npmcli/fs": "^3.1.0", "fs-minipass": "^3.0.0", @@ -8839,12 +8856,13 @@ } }, "node_modules/cacache/node_modules/glob": { - "version": "10.3.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz", - "integrity": "sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==", + "version": "10.3.16", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.16.tgz", + "integrity": "sha512-JDKXl1DiuuHJ6fVS2FXjownaavciiHNUU4mOvV/B793RLh05vZL1rcPnCSaOgv1hDT6RDlY7AB7ZUvFYAtPgAw==", + "devOptional": true, "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", + "jackspeak": "^3.1.2", "minimatch": "^9.0.1", "minipass": "^7.0.4", "path-scurry": "^1.11.0" @@ -8863,6 +8881,7 @@ "version": "7.18.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "devOptional": true, "engines": { "node": ">=12" } @@ -8946,9 +8965,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001620", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001620.tgz", - "integrity": "sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==", + "version": "1.0.30001621", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001621.tgz", + "integrity": "sha512-+NLXZiviFFKX0fk8Piwv3PfLPGtRqJeq2TiNoUff/qB5KJgwecJTvCXDpmlyP/eCI/GUEmp/h/y5j0yckiiZrA==", "funding": [ { "type": "opencollective", @@ -9141,6 +9160,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "devOptional": true, "engines": { "node": ">=10" } @@ -9818,9 +9838,9 @@ } }, "node_modules/css-blank-pseudo/node_modules/postcss-selector-parser": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", - "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", + "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -9880,9 +9900,9 @@ } }, "node_modules/css-has-pseudo/node_modules/postcss-selector-parser": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", - "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", + "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -10544,9 +10564,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.775", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.775.tgz", - "integrity": "sha512-JpOfl1aNAiZ88wFzjPczTLwYIoPIsij8S9/XQH9lqMpiJOf23kxea68B8wje4f68t4rOIq4Bh+vP4I65njiJBw==" + "version": "1.4.779", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.779.tgz", + "integrity": "sha512-oaTiIcszNfySXVJzKcjxd2YjPxziAd+GmXyb2HbidCeFo6Z88ygOT7EimlrEQhM2U08VhSrbKhLOXP0kKUCZ6g==" }, "node_modules/emoji-regex": { "version": "9.2.2", @@ -10597,7 +10617,8 @@ "node_modules/err-code": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "devOptional": true }, "node_modules/error-ex": { "version": "1.3.2", @@ -12275,9 +12296,9 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -12415,6 +12436,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "devOptional": true, "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" @@ -12430,6 +12452,7 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "devOptional": true, "engines": { "node": ">=14" }, @@ -12532,6 +12555,7 @@ "version": "3.0.3", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", + "devOptional": true, "dependencies": { "minipass": "^7.0.3" }, @@ -12562,6 +12586,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "devOptional": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -12992,6 +13017,9 @@ "version": "5.16.0", "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.16.0.tgz", "integrity": "sha512-Ju2RCU2dQMgSKtArPbEtsK5gNLnsQyTNIo/T7cZNp96niC1x0KdJNZV0TIoilceBPQwfb5itrGl8pkFeOUMl4A==", + "workspaces": [ + "website" + ], "engines": { "node": ">=10" }, @@ -13087,6 +13115,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "devOptional": true, "dependencies": { "function-bind": "^1.1.2" }, @@ -13144,6 +13173,7 @@ "version": "6.1.1", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz", "integrity": "sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w==", + "devOptional": true, "dependencies": { "lru-cache": "^7.5.1" }, @@ -13155,6 +13185,7 @@ "version": "7.18.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "devOptional": true, "engines": { "node": ">=12" } @@ -13334,6 +13365,7 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "devOptional": true, "engines": { "node": ">=0.8.19" } @@ -13350,6 +13382,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -13916,6 +13949,7 @@ "version": "2.13.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "devOptional": true, "dependencies": { "hasown": "^2.0.0" }, @@ -14406,9 +14440,10 @@ } }, "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.1.2.tgz", + "integrity": "sha512-kWmLKn2tRtfYMF/BakihVVRzBKOxz4gJMiL2Rj91WnAB5TPZumSH99R/Yf1qE1u4uRimvCSJfm6hnxohXeEXjQ==", + "devOptional": true, "dependencies": { "@isaacs/cliui": "^8.0.2" }, @@ -14522,6 +14557,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", + "devOptional": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } @@ -14629,9 +14665,9 @@ } }, "node_modules/language-subtag-registry": { - "version": "0.3.22", - "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", - "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==", + "version": "0.3.23", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.23.tgz", + "integrity": "sha512-0K65Lea881pHotoGEa5gDlMxt3pctLi2RplBb7Ezh4rRdLEOtgi7n4EwK9lamnUCkKBqaeKRVebTq6BAxSkpXQ==", "dev": true }, "node_modules/language-tags": { @@ -16038,11 +16074,11 @@ ] }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", + "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -16175,6 +16211,7 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.1.tgz", "integrity": "sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==", + "devOptional": true, "engines": { "node": ">=16 || 14 >=14.17" } @@ -16183,6 +16220,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "devOptional": true, "dependencies": { "minipass": "^3.0.0" }, @@ -16194,6 +16232,7 @@ "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "devOptional": true, "dependencies": { "yallist": "^4.0.0" }, @@ -16204,12 +16243,14 @@ "node_modules/minipass-collect/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "devOptional": true }, "node_modules/minipass-flush": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "devOptional": true, "dependencies": { "minipass": "^3.0.0" }, @@ -16221,6 +16262,7 @@ "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "devOptional": true, "dependencies": { "yallist": "^4.0.0" }, @@ -16231,12 +16273,14 @@ "node_modules/minipass-flush/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "devOptional": true }, "node_modules/minipass-pipeline": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "devOptional": true, "dependencies": { "minipass": "^3.0.0" }, @@ -16248,6 +16292,7 @@ "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "devOptional": true, "dependencies": { "yallist": "^4.0.0" }, @@ -16258,12 +16303,14 @@ "node_modules/minipass-pipeline/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "devOptional": true }, "node_modules/minizlib": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "devOptional": true, "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" @@ -16276,6 +16323,7 @@ "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "devOptional": true, "dependencies": { "yallist": "^4.0.0" }, @@ -16286,12 +16334,14 @@ "node_modules/minizlib/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "devOptional": true }, "node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "devOptional": true, "bin": { "mkdirp": "bin/cmd.js" }, @@ -16515,6 +16565,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-5.0.0.tgz", "integrity": "sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q==", + "devOptional": true, "dependencies": { "hosted-git-info": "^6.0.0", "is-core-module": "^2.8.1", @@ -16529,6 +16580,7 @@ "version": "7.6.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "devOptional": true, "bin": { "semver": "bin/semver.js" }, @@ -16638,6 +16690,13 @@ "which", "write-file-atomic" ], + "workspaces": [ + "docs", + "smoke-tests", + "mock-globals", + "mock-registry", + "workspaces/*" + ], "dependencies": { "@isaacs/string-locale-compare": "^1.1.0", "@npmcli/arborist": "^7.2.1", @@ -16720,6 +16779,7 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz", "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", + "devOptional": true, "dependencies": { "semver": "^7.1.1" }, @@ -16731,6 +16791,7 @@ "version": "7.6.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "devOptional": true, "bin": { "semver": "bin/semver.js" }, @@ -16742,6 +16803,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", + "devOptional": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } @@ -16750,6 +16812,7 @@ "version": "10.1.0", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-10.1.0.tgz", "integrity": "sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA==", + "devOptional": true, "dependencies": { "hosted-git-info": "^6.0.0", "proc-log": "^3.0.0", @@ -16764,6 +16827,7 @@ "version": "7.6.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "devOptional": true, "bin": { "semver": "bin/semver.js" }, @@ -16775,6 +16839,7 @@ "version": "8.0.2", "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-8.0.2.tgz", "integrity": "sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg==", + "devOptional": true, "dependencies": { "npm-install-checks": "^6.0.0", "npm-normalize-package-bin": "^3.0.0", @@ -16789,6 +16854,7 @@ "version": "7.6.2", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "devOptional": true, "bin": { "semver": "bin/semver.js" }, @@ -19862,6 +19928,7 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "devOptional": true, "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" @@ -19877,6 +19944,7 @@ "version": "10.2.2", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", + "devOptional": true, "engines": { "node": "14 || >=16.14" } @@ -20102,12 +20170,12 @@ "devOptional": true }, "node_modules/playwright": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.44.0.tgz", - "integrity": "sha512-F9b3GUCLQ3Nffrfb6dunPOkE5Mh68tR7zN32L4jCk4FjQamgesGay7/dAAe1WaMEGV04DkdJfcJzjoCKygUaRQ==", + "version": "1.44.1", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.44.1.tgz", + "integrity": "sha512-qr/0UJ5CFAtloI3avF95Y0L1xQo6r3LQArLIg/z/PoGJ6xa+EwzrwO5lpNr/09STxdHuUoP2mvuELJS+hLdtgg==", "dev": true, "dependencies": { - "playwright-core": "1.44.0" + "playwright-core": "1.44.1" }, "bin": { "playwright": "cli.js" @@ -20120,9 +20188,9 @@ } }, "node_modules/playwright-core": { - "version": "1.44.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.44.0.tgz", - "integrity": "sha512-ZTbkNpFfYcGWohvTTl+xewITm7EOuqIqex0c7dNZ+aXsbrLj0qI8XlGKfPpipjm0Wny/4Lt4CJsWJk1stVS5qQ==", + "version": "1.44.1", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.44.1.tgz", + "integrity": "sha512-wh0JWtYTrhv1+OSsLPgFzGzt67Y7BE/ZS3jEqgGBlp2ppp1ZDj8c+9IARNW4dwf1poq5MgHreEM2KV/GuR4cFA==", "dev": true, "bin": { "playwright-core": "cli.js" @@ -20208,9 +20276,9 @@ } }, "node_modules/postcss-attribute-case-insensitive/node_modules/postcss-selector-parser": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", - "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", + "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -20402,9 +20470,9 @@ } }, "node_modules/postcss-custom-selectors/node_modules/postcss-selector-parser": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", - "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", + "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -20440,9 +20508,9 @@ } }, "node_modules/postcss-dir-pseudo-class/node_modules/postcss-selector-parser": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", - "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", + "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -20517,9 +20585,9 @@ } }, "node_modules/postcss-focus-visible/node_modules/postcss-selector-parser": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", - "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", + "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -20555,9 +20623,9 @@ } }, "node_modules/postcss-focus-within/node_modules/postcss-selector-parser": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", - "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", + "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -20847,9 +20915,9 @@ } }, "node_modules/postcss-nested/node_modules/postcss-selector-parser": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", - "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", + "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -20931,9 +20999,9 @@ } }, "node_modules/postcss-nesting/node_modules/postcss-selector-parser": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", - "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", + "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -21134,9 +21202,9 @@ } }, "node_modules/postcss-pseudo-class-any-link/node_modules/postcss-selector-parser": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", - "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", + "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -21181,9 +21249,9 @@ } }, "node_modules/postcss-selector-not/node_modules/postcss-selector-parser": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", - "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", + "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -21298,6 +21366,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", + "devOptional": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } @@ -21318,12 +21387,14 @@ "node_modules/promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==" + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "devOptional": true }, "node_modules/promise-retry": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "devOptional": true, "dependencies": { "err-code": "^2.0.2", "retry": "^0.12.0" @@ -22071,6 +22142,7 @@ "version": "0.12.0", "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "devOptional": true, "engines": { "node": ">= 4" } @@ -22108,13 +22180,13 @@ } }, "node_modules/rimraf/node_modules/glob": { - "version": "10.3.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz", - "integrity": "sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==", + "version": "10.3.16", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.16.tgz", + "integrity": "sha512-JDKXl1DiuuHJ6fVS2FXjownaavciiHNUU4mOvV/B793RLh05vZL1rcPnCSaOgv1hDT6RDlY7AB7ZUvFYAtPgAw==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", + "jackspeak": "^3.1.2", "minimatch": "^9.0.1", "minipass": "^7.0.4", "path-scurry": "^1.11.0" @@ -22130,9 +22202,9 @@ } }, "node_modules/rollup": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.17.2.tgz", - "integrity": "sha512-/9ClTJPByC0U4zNLowV1tMBe8yMEAxewtR3cUNX5BoEpGH3dQEWpJLr6CLp0fPdYRF/fzVOgvDb1zXuakwF5kQ==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz", + "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", "devOptional": true, "dependencies": { "@types/estree": "1.0.5" @@ -22145,22 +22217,22 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.17.2", - "@rollup/rollup-android-arm64": "4.17.2", - "@rollup/rollup-darwin-arm64": "4.17.2", - "@rollup/rollup-darwin-x64": "4.17.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.17.2", - "@rollup/rollup-linux-arm-musleabihf": "4.17.2", - "@rollup/rollup-linux-arm64-gnu": "4.17.2", - "@rollup/rollup-linux-arm64-musl": "4.17.2", - "@rollup/rollup-linux-powerpc64le-gnu": "4.17.2", - "@rollup/rollup-linux-riscv64-gnu": "4.17.2", - "@rollup/rollup-linux-s390x-gnu": "4.17.2", - "@rollup/rollup-linux-x64-gnu": "4.17.2", - "@rollup/rollup-linux-x64-musl": "4.17.2", - "@rollup/rollup-win32-arm64-msvc": "4.17.2", - "@rollup/rollup-win32-ia32-msvc": "4.17.2", - "@rollup/rollup-win32-x64-msvc": "4.17.2", + "@rollup/rollup-android-arm-eabi": "4.18.0", + "@rollup/rollup-android-arm64": "4.18.0", + "@rollup/rollup-darwin-arm64": "4.18.0", + "@rollup/rollup-darwin-x64": "4.18.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", + "@rollup/rollup-linux-arm-musleabihf": "4.18.0", + "@rollup/rollup-linux-arm64-gnu": "4.18.0", + "@rollup/rollup-linux-arm64-musl": "4.18.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", + "@rollup/rollup-linux-riscv64-gnu": "4.18.0", + "@rollup/rollup-linux-s390x-gnu": "4.18.0", + "@rollup/rollup-linux-x64-gnu": "4.18.0", + "@rollup/rollup-linux-x64-musl": "4.18.0", + "@rollup/rollup-win32-arm64-msvc": "4.18.0", + "@rollup/rollup-win32-ia32-msvc": "4.18.0", + "@rollup/rollup-win32-x64-msvc": "4.18.0", "fsevents": "~2.3.2" } }, @@ -22623,6 +22695,7 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "devOptional": true, "dependencies": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" @@ -22631,12 +22704,14 @@ "node_modules/spdx-exceptions": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", - "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==" + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "devOptional": true }, "node_modules/spdx-expression-parse": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "devOptional": true, "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" @@ -22645,7 +22720,8 @@ "node_modules/spdx-license-ids": { "version": "3.0.17", "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", - "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==" + "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", + "devOptional": true }, "node_modules/sponge-case": { "version": "1.0.1", @@ -22664,6 +22740,7 @@ "version": "10.0.6", "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.6.tgz", "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", + "devOptional": true, "dependencies": { "minipass": "^7.0.3" }, @@ -22835,6 +22912,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "devOptional": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -22847,12 +22925,14 @@ "node_modules/string-width-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "devOptional": true }, "node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "devOptional": true, "engines": { "node": ">=8" } @@ -22975,6 +23055,7 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "devOptional": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -23071,13 +23152,13 @@ } }, "node_modules/sucrase/node_modules/glob": { - "version": "10.3.15", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.15.tgz", - "integrity": "sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==", + "version": "10.3.16", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.16.tgz", + "integrity": "sha512-JDKXl1DiuuHJ6fVS2FXjownaavciiHNUU4mOvV/B793RLh05vZL1rcPnCSaOgv1hDT6RDlY7AB7ZUvFYAtPgAw==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", + "jackspeak": "^3.1.2", "minimatch": "^9.0.1", "minipass": "^7.0.4", "path-scurry": "^1.11.0" @@ -23230,9 +23311,9 @@ } }, "node_modules/tailwindcss/node_modules/postcss-selector-parser": { - "version": "6.0.16", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", - "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", + "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -23255,6 +23336,7 @@ "version": "6.2.1", "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.1.tgz", "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "devOptional": true, "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -23302,6 +23384,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "devOptional": true, "dependencies": { "minipass": "^3.0.0" }, @@ -23313,6 +23396,7 @@ "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "devOptional": true, "dependencies": { "yallist": "^4.0.0" }, @@ -23324,6 +23408,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "devOptional": true, "engines": { "node": ">=8" } @@ -23331,7 +23416,8 @@ "node_modules/tar/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "devOptional": true }, "node_modules/temp-dir": { "version": "2.0.0", @@ -23423,7 +23509,8 @@ "node_modules/text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==" + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true }, "node_modules/textr": { "version": "0.3.0", @@ -24040,9 +24127,9 @@ } }, "node_modules/undici": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/undici/-/undici-6.18.0.tgz", - "integrity": "sha512-nT8jjv/fE9Et1ilR6QoW8ingRTY2Pp4l2RUrdzV5Yz35RJDrtPc1DXvuNqcpsJSGIRHFdt3YKKktTzJA6r0fTA==", + "version": "6.18.1", + "resolved": "https://registry.npmjs.org/undici/-/undici-6.18.1.tgz", + "integrity": "sha512-/0BWqR8rJNRysS5lqVmfc7eeOErcOP4tZpATVjJOojjHZ71gSYVAtFhEmadcIjwMIUehh5NFyKGsXCnXIajtbA==", "devOptional": true, "engines": { "node": ">=18.17" @@ -24088,6 +24175,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "devOptional": true, "dependencies": { "unique-slug": "^4.0.0" }, @@ -24099,6 +24187,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "devOptional": true, "dependencies": { "imurmurhash": "^0.1.4" }, @@ -24419,6 +24508,7 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "devOptional": true, "dependencies": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" @@ -24428,6 +24518,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", + "devOptional": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } @@ -25028,6 +25119,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/which/-/which-3.0.1.tgz", "integrity": "sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg==", + "devOptional": true, "dependencies": { "isexe": "^2.0.0" }, @@ -25199,6 +25291,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "devOptional": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", diff --git a/package.json b/package.json index 8ef99b4a..bdf93c2d 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "@weaverse/pilot", "private": true, "sideEffects": false, - "version": "2.6.6", + "version": "2.6.8", "type": "module", "author": "Weaverse", "scripts": { @@ -30,7 +30,7 @@ "@shopify/cli-hydrogen": "^8.0.4", "@shopify/hydrogen": "2024.4.2", "@shopify/remix-oxygen": "^2.0.4", - "@weaverse/hydrogen": "3.1.7", + "@weaverse/hydrogen": "^3.1.9", "class-variance-authority": "^0.7.0", "clsx": "2.1.1", "cross-env": "7.0.3", diff --git a/storefrontapi.generated.d.ts b/storefrontapi.generated.d.ts index 6796d783..b98c041d 100644 --- a/storefrontapi.generated.d.ts +++ b/storefrontapi.generated.d.ts @@ -1,55 +1,37 @@ /* eslint-disable eslint-comments/disable-enable-pair */ /* eslint-disable eslint-comments/no-unlimited-disable */ /* eslint-disable */ -import type * as StorefrontAPI from "@shopify/hydrogen/storefront-api-types"; +import type * as StorefrontAPI from '@shopify/hydrogen/storefront-api-types'; -export type OrderCardFragment = Pick< - StorefrontAPI.Order, - "id" | "orderNumber" | "processedAt" | "financialStatus" | "fulfillmentStatus" -> & { - currentTotalPrice: Pick; - lineItems: { - edges: Array<{ - node: Pick & { - variant?: StorefrontAPI.Maybe<{ - image?: StorefrontAPI.Maybe< - Pick - >; - }>; - }; - }>; - }; -}; - -type Media_ExternalVideo_Fragment = { __typename: "ExternalVideo" } & Pick< +type Media_ExternalVideo_Fragment = {__typename: 'ExternalVideo'} & Pick< StorefrontAPI.ExternalVideo, - "id" | "embedUrl" | "host" | "mediaContentType" | "alt" -> & { previewImage?: StorefrontAPI.Maybe> }; + 'id' | 'embedUrl' | 'host' | 'mediaContentType' | 'alt' +> & {previewImage?: StorefrontAPI.Maybe>}; -type Media_MediaImage_Fragment = { __typename: "MediaImage" } & Pick< +type Media_MediaImage_Fragment = {__typename: 'MediaImage'} & Pick< StorefrontAPI.MediaImage, - "id" | "mediaContentType" | "alt" + 'id' | 'mediaContentType' | 'alt' > & { image?: StorefrontAPI.Maybe< - Pick + Pick >; - previewImage?: StorefrontAPI.Maybe>; + previewImage?: StorefrontAPI.Maybe>; }; -type Media_Model3d_Fragment = { __typename: "Model3d" } & Pick< +type Media_Model3d_Fragment = {__typename: 'Model3d'} & Pick< StorefrontAPI.Model3d, - "id" | "mediaContentType" | "alt" + 'id' | 'mediaContentType' | 'alt' > & { - sources: Array>; - previewImage?: StorefrontAPI.Maybe>; + sources: Array>; + previewImage?: StorefrontAPI.Maybe>; }; -type Media_Video_Fragment = { __typename: "Video" } & Pick< +type Media_Video_Fragment = {__typename: 'Video'} & Pick< StorefrontAPI.Video, - "id" | "mediaContentType" | "alt" + 'id' | 'mediaContentType' | 'alt' > & { - sources: Array>; - previewImage?: StorefrontAPI.Maybe>; + sources: Array>; + previewImage?: StorefrontAPI.Maybe>; }; export type MediaFragment = @@ -60,22 +42,22 @@ export type MediaFragment = export type ProductCardFragment = Pick< StorefrontAPI.Product, - "id" | "title" | "publishedAt" | "handle" | "vendor" + 'id' | 'title' | 'publishedAt' | 'handle' | 'vendor' > & { variants: { nodes: Array< - Pick & { + Pick & { image?: StorefrontAPI.Maybe< - Pick + Pick >; - price: Pick; + price: Pick; compareAtPrice?: StorefrontAPI.Maybe< - Pick + Pick >; selectedOptions: Array< - Pick + Pick >; - product: Pick; + product: Pick; } >; }; @@ -83,86 +65,86 @@ export type ProductCardFragment = Pick< export type FeaturedCollectionDetailsFragment = Pick< StorefrontAPI.Collection, - "id" | "title" | "handle" + 'id' | 'title' | 'handle' > & { image?: StorefrontAPI.Maybe< - Pick + Pick >; }; export type CollectionContentFragment = Pick< StorefrontAPI.Collection, - "id" | "handle" | "title" | "descriptionHtml" + 'id' | 'handle' | 'title' | 'descriptionHtml' > & { - heading?: StorefrontAPI.Maybe>; - byline?: StorefrontAPI.Maybe>; - cta?: StorefrontAPI.Maybe>; + heading?: StorefrontAPI.Maybe>; + byline?: StorefrontAPI.Maybe>; + cta?: StorefrontAPI.Maybe>; spread?: StorefrontAPI.Maybe<{ reference?: StorefrontAPI.Maybe< - | ({ __typename: "MediaImage" } & Pick< + | ({__typename: 'MediaImage'} & Pick< StorefrontAPI.MediaImage, - "id" | "mediaContentType" | "alt" + 'id' | 'mediaContentType' | 'alt' > & { image?: StorefrontAPI.Maybe< - Pick + Pick >; previewImage?: StorefrontAPI.Maybe< - Pick + Pick >; }) - | ({ __typename: "Model3d" } & Pick< + | ({__typename: 'Model3d'} & Pick< StorefrontAPI.Model3d, - "id" | "mediaContentType" | "alt" + 'id' | 'mediaContentType' | 'alt' > & { sources: Array< - Pick + Pick >; previewImage?: StorefrontAPI.Maybe< - Pick + Pick >; }) - | ({ __typename: "Video" } & Pick< + | ({__typename: 'Video'} & Pick< StorefrontAPI.Video, - "id" | "mediaContentType" | "alt" + 'id' | 'mediaContentType' | 'alt' > & { - sources: Array>; + sources: Array>; previewImage?: StorefrontAPI.Maybe< - Pick + Pick >; }) >; }>; spreadSecondary?: StorefrontAPI.Maybe<{ reference?: StorefrontAPI.Maybe< - | ({ __typename: "MediaImage" } & Pick< + | ({__typename: 'MediaImage'} & Pick< StorefrontAPI.MediaImage, - "id" | "mediaContentType" | "alt" + 'id' | 'mediaContentType' | 'alt' > & { image?: StorefrontAPI.Maybe< - Pick + Pick >; previewImage?: StorefrontAPI.Maybe< - Pick + Pick >; }) - | ({ __typename: "Model3d" } & Pick< + | ({__typename: 'Model3d'} & Pick< StorefrontAPI.Model3d, - "id" | "mediaContentType" | "alt" + 'id' | 'mediaContentType' | 'alt' > & { sources: Array< - Pick + Pick >; previewImage?: StorefrontAPI.Maybe< - Pick + Pick >; }) - | ({ __typename: "Video" } & Pick< + | ({__typename: 'Video'} & Pick< StorefrontAPI.Video, - "id" | "mediaContentType" | "alt" + 'id' | 'mediaContentType' | 'alt' > & { - sources: Array>; + sources: Array>; previewImage?: StorefrontAPI.Maybe< - Pick + Pick >; }) >; @@ -171,20 +153,20 @@ export type CollectionContentFragment = Pick< export type ProductVariantFragmentFragment = Pick< StorefrontAPI.ProductVariant, - "id" | "availableForSale" | "quantityAvailable" | "sku" | "title" + 'id' | 'availableForSale' | 'quantityAvailable' | 'sku' | 'title' > & { - selectedOptions: Array>; + selectedOptions: Array>; image?: StorefrontAPI.Maybe< - Pick + Pick >; - price: Pick; + price: Pick; compareAtPrice?: StorefrontAPI.Maybe< - Pick + Pick >; unitPrice?: StorefrontAPI.Maybe< - Pick + Pick >; - product: Pick; + product: Pick; }; export type ShopQueryQueryVariables = StorefrontAPI.Exact<{ @@ -193,11 +175,11 @@ export type ShopQueryQueryVariables = StorefrontAPI.Exact<{ }>; export type ShopQueryQuery = { - shop: Pick; + shop: Pick; }; export type SeoCollectionContentQueryVariables = StorefrontAPI.Exact<{ - handle?: StorefrontAPI.InputMaybe; + handle?: StorefrontAPI.InputMaybe; country?: StorefrontAPI.InputMaybe; language?: StorefrontAPI.InputMaybe; }>; @@ -206,88 +188,88 @@ export type SeoCollectionContentQuery = { hero?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Collection, - "id" | "handle" | "title" | "descriptionHtml" + 'id' | 'handle' | 'title' | 'descriptionHtml' > & { - heading?: StorefrontAPI.Maybe>; - byline?: StorefrontAPI.Maybe>; - cta?: StorefrontAPI.Maybe>; + heading?: StorefrontAPI.Maybe>; + byline?: StorefrontAPI.Maybe>; + cta?: StorefrontAPI.Maybe>; spread?: StorefrontAPI.Maybe<{ reference?: StorefrontAPI.Maybe< - | ({ __typename: "MediaImage" } & Pick< + | ({__typename: 'MediaImage'} & Pick< StorefrontAPI.MediaImage, - "id" | "mediaContentType" | "alt" + 'id' | 'mediaContentType' | 'alt' > & { image?: StorefrontAPI.Maybe< - Pick + Pick >; previewImage?: StorefrontAPI.Maybe< - Pick + Pick >; }) - | ({ __typename: "Model3d" } & Pick< + | ({__typename: 'Model3d'} & Pick< StorefrontAPI.Model3d, - "id" | "mediaContentType" | "alt" + 'id' | 'mediaContentType' | 'alt' > & { sources: Array< - Pick + Pick >; previewImage?: StorefrontAPI.Maybe< - Pick + Pick >; }) - | ({ __typename: "Video" } & Pick< + | ({__typename: 'Video'} & Pick< StorefrontAPI.Video, - "id" | "mediaContentType" | "alt" + 'id' | 'mediaContentType' | 'alt' > & { sources: Array< - Pick + Pick >; previewImage?: StorefrontAPI.Maybe< - Pick + Pick >; }) >; }>; spreadSecondary?: StorefrontAPI.Maybe<{ reference?: StorefrontAPI.Maybe< - | ({ __typename: "MediaImage" } & Pick< + | ({__typename: 'MediaImage'} & Pick< StorefrontAPI.MediaImage, - "id" | "mediaContentType" | "alt" + 'id' | 'mediaContentType' | 'alt' > & { image?: StorefrontAPI.Maybe< - Pick + Pick >; previewImage?: StorefrontAPI.Maybe< - Pick + Pick >; }) - | ({ __typename: "Model3d" } & Pick< + | ({__typename: 'Model3d'} & Pick< StorefrontAPI.Model3d, - "id" | "mediaContentType" | "alt" + 'id' | 'mediaContentType' | 'alt' > & { sources: Array< - Pick + Pick >; previewImage?: StorefrontAPI.Maybe< - Pick + Pick >; }) - | ({ __typename: "Video" } & Pick< + | ({__typename: 'Video'} & Pick< StorefrontAPI.Video, - "id" | "mediaContentType" | "alt" + 'id' | 'mediaContentType' | 'alt' > & { sources: Array< - Pick + Pick >; previewImage?: StorefrontAPI.Maybe< - Pick + Pick >; }) >; }>; } >; - shop: Pick; + shop: Pick; }; export type HomepageFeaturedProductsQueryVariables = StorefrontAPI.Exact<{ @@ -300,28 +282,28 @@ export type HomepageFeaturedProductsQuery = { nodes: Array< Pick< StorefrontAPI.Product, - "id" | "title" | "publishedAt" | "handle" | "vendor" + 'id' | 'title' | 'publishedAt' | 'handle' | 'vendor' > & { variants: { nodes: Array< Pick< StorefrontAPI.ProductVariant, - "id" | "availableForSale" | "sku" + 'id' | 'availableForSale' | 'sku' > & { image?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Image, - "url" | "altText" | "width" | "height" + 'url' | 'altText' | 'width' | 'height' > >; - price: Pick; + price: Pick; compareAtPrice?: StorefrontAPI.Maybe< - Pick + Pick >; selectedOptions: Array< - Pick + Pick >; - product: Pick; + product: Pick; } >; }; @@ -338,9 +320,9 @@ export type HomepageFeaturedCollectionsQueryVariables = StorefrontAPI.Exact<{ export type HomepageFeaturedCollectionsQuery = { collections: { nodes: Array< - Pick & { + Pick & { image?: StorefrontAPI.Maybe< - Pick + Pick >; } >; @@ -350,19 +332,19 @@ export type HomepageFeaturedCollectionsQuery = { export type ProductInfoQueryVariables = StorefrontAPI.Exact<{ country?: StorefrontAPI.InputMaybe; language?: StorefrontAPI.InputMaybe; - handle: StorefrontAPI.Scalars["String"]["input"]; + handle: StorefrontAPI.Scalars['String']['input']; }>; export type ProductInfoQuery = { product?: StorefrontAPI.Maybe< - Pick + Pick >; }; export type ProductQueryVariables = StorefrontAPI.Exact<{ country?: StorefrontAPI.InputMaybe; language?: StorefrontAPI.InputMaybe; - handle: StorefrontAPI.Scalars["String"]["input"]; + handle: StorefrontAPI.Scalars['String']['input']; selectedOptions: | Array | StorefrontAPI.SelectedOptionInput; @@ -372,74 +354,74 @@ export type ProductQuery = { product?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Product, - "id" | "title" | "vendor" | "handle" | "descriptionHtml" | "description" + 'id' | 'title' | 'vendor' | 'handle' | 'descriptionHtml' | 'description' > & { - options: Array>; + options: Array>; selectedVariant?: StorefrontAPI.Maybe< Pick< StorefrontAPI.ProductVariant, - "id" | "availableForSale" | "quantityAvailable" | "sku" | "title" + 'id' | 'availableForSale' | 'quantityAvailable' | 'sku' | 'title' > & { selectedOptions: Array< - Pick + Pick >; image?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Image, - "id" | "url" | "altText" | "width" | "height" + 'id' | 'url' | 'altText' | 'width' | 'height' > >; - price: Pick; + price: Pick; compareAtPrice?: StorefrontAPI.Maybe< - Pick + Pick >; unitPrice?: StorefrontAPI.Maybe< - Pick + Pick >; - product: Pick; + product: Pick; } >; media: { nodes: Array< - | ({ __typename: "ExternalVideo" } & Pick< + | ({__typename: 'ExternalVideo'} & Pick< StorefrontAPI.ExternalVideo, - "id" | "embedUrl" | "host" | "mediaContentType" | "alt" + 'id' | 'embedUrl' | 'host' | 'mediaContentType' | 'alt' > & { previewImage?: StorefrontAPI.Maybe< - Pick + Pick >; }) - | ({ __typename: "MediaImage" } & Pick< + | ({__typename: 'MediaImage'} & Pick< StorefrontAPI.MediaImage, - "id" | "mediaContentType" | "alt" + 'id' | 'mediaContentType' | 'alt' > & { image?: StorefrontAPI.Maybe< - Pick + Pick >; previewImage?: StorefrontAPI.Maybe< - Pick + Pick >; }) - | ({ __typename: "Model3d" } & Pick< + | ({__typename: 'Model3d'} & Pick< StorefrontAPI.Model3d, - "id" | "mediaContentType" | "alt" + 'id' | 'mediaContentType' | 'alt' > & { sources: Array< - Pick + Pick >; previewImage?: StorefrontAPI.Maybe< - Pick + Pick >; }) - | ({ __typename: "Video" } & Pick< + | ({__typename: 'Video'} & Pick< StorefrontAPI.Video, - "id" | "mediaContentType" | "alt" + 'id' | 'mediaContentType' | 'alt' > & { sources: Array< - Pick + Pick >; previewImage?: StorefrontAPI.Maybe< - Pick + Pick >; }) >; @@ -448,45 +430,45 @@ export type ProductQuery = { nodes: Array< Pick< StorefrontAPI.ProductVariant, - "id" | "availableForSale" | "quantityAvailable" | "sku" | "title" + 'id' | 'availableForSale' | 'quantityAvailable' | 'sku' | 'title' > & { selectedOptions: Array< - Pick + Pick >; image?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Image, - "id" | "url" | "altText" | "width" | "height" + 'id' | 'url' | 'altText' | 'width' | 'height' > >; - price: Pick; + price: Pick; compareAtPrice?: StorefrontAPI.Maybe< - Pick + Pick >; unitPrice?: StorefrontAPI.Maybe< - Pick + Pick >; - product: Pick; + product: Pick; } >; }; - seo: Pick; + seo: Pick; } >; - shop: Pick & { - primaryDomain: Pick; + shop: Pick & { + primaryDomain: Pick; shippingPolicy?: StorefrontAPI.Maybe< - Pick + Pick >; refundPolicy?: StorefrontAPI.Maybe< - Pick + Pick >; }; }; export type ProductRecommendationsQueryVariables = StorefrontAPI.Exact<{ - productId: StorefrontAPI.Scalars["ID"]["input"]; - count?: StorefrontAPI.InputMaybe; + productId: StorefrontAPI.Scalars['ID']['input']; + count?: StorefrontAPI.InputMaybe; country?: StorefrontAPI.InputMaybe; language?: StorefrontAPI.InputMaybe; }>; @@ -496,28 +478,28 @@ export type ProductRecommendationsQuery = { Array< Pick< StorefrontAPI.Product, - "id" | "title" | "publishedAt" | "handle" | "vendor" + 'id' | 'title' | 'publishedAt' | 'handle' | 'vendor' > & { variants: { nodes: Array< Pick< StorefrontAPI.ProductVariant, - "id" | "availableForSale" | "sku" + 'id' | 'availableForSale' | 'sku' > & { image?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Image, - "url" | "altText" | "width" | "height" + 'url' | 'altText' | 'width' | 'height' > >; - price: Pick; + price: Pick; compareAtPrice?: StorefrontAPI.Maybe< - Pick + Pick >; selectedOptions: Array< - Pick + Pick >; - product: Pick; + product: Pick; } >; }; @@ -528,28 +510,28 @@ export type ProductRecommendationsQuery = { nodes: Array< Pick< StorefrontAPI.Product, - "id" | "title" | "publishedAt" | "handle" | "vendor" + 'id' | 'title' | 'publishedAt' | 'handle' | 'vendor' > & { variants: { nodes: Array< Pick< StorefrontAPI.ProductVariant, - "id" | "availableForSale" | "sku" + 'id' | 'availableForSale' | 'sku' > & { image?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Image, - "url" | "altText" | "width" | "height" + 'url' | 'altText' | 'width' | 'height' > >; - price: Pick; + price: Pick; compareAtPrice?: StorefrontAPI.Maybe< - Pick + Pick >; selectedOptions: Array< - Pick + Pick >; - product: Pick; + product: Pick; } >; }; @@ -559,7 +541,7 @@ export type ProductRecommendationsQuery = { }; export type CollectionInfoQueryVariables = StorefrontAPI.Exact<{ - handle: StorefrontAPI.Scalars["String"]["input"]; + handle: StorefrontAPI.Scalars['String']['input']; country?: StorefrontAPI.InputMaybe; language?: StorefrontAPI.InputMaybe; }>; @@ -568,32 +550,32 @@ export type CollectionInfoQuery = { collection?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Collection, - "id" | "handle" | "title" | "description" + 'id' | 'handle' | 'title' | 'description' > & { - seo: Pick; + seo: Pick; image?: StorefrontAPI.Maybe< - Pick + Pick >; } >; }; export type CollectionDetailsQueryVariables = StorefrontAPI.Exact<{ - handle: StorefrontAPI.Scalars["String"]["input"]; + handle: StorefrontAPI.Scalars['String']['input']; country?: StorefrontAPI.InputMaybe; language?: StorefrontAPI.InputMaybe; filters?: StorefrontAPI.InputMaybe< Array | StorefrontAPI.ProductFilter >; sortKey: StorefrontAPI.ProductCollectionSortKeys; - reverse?: StorefrontAPI.InputMaybe; - first?: StorefrontAPI.InputMaybe; - last?: StorefrontAPI.InputMaybe; + reverse?: StorefrontAPI.InputMaybe; + first?: StorefrontAPI.InputMaybe; + last?: StorefrontAPI.InputMaybe; startCursor?: StorefrontAPI.InputMaybe< - StorefrontAPI.Scalars["String"]["input"] + StorefrontAPI.Scalars['String']['input'] >; endCursor?: StorefrontAPI.InputMaybe< - StorefrontAPI.Scalars["String"]["input"] + StorefrontAPI.Scalars['String']['input'] >; }>; @@ -601,19 +583,19 @@ export type CollectionDetailsQuery = { collection?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Collection, - "id" | "handle" | "title" | "description" + 'id' | 'handle' | 'title' | 'description' > & { - seo: Pick; + seo: Pick; image?: StorefrontAPI.Maybe< - Pick + Pick >; products: { filters: Array< - Pick & { + Pick & { values: Array< Pick< StorefrontAPI.FilterValue, - "id" | "label" | "count" | "input" + 'id' | 'label' | 'count' | 'input' > >; } @@ -621,28 +603,28 @@ export type CollectionDetailsQuery = { nodes: Array< Pick< StorefrontAPI.Product, - "id" | "title" | "publishedAt" | "handle" | "vendor" + 'id' | 'title' | 'publishedAt' | 'handle' | 'vendor' > & { variants: { nodes: Array< Pick< StorefrontAPI.ProductVariant, - "id" | "availableForSale" | "sku" + 'id' | 'availableForSale' | 'sku' > & { image?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Image, - "url" | "altText" | "width" | "height" + 'url' | 'altText' | 'width' | 'height' > >; - price: Pick; + price: Pick; compareAtPrice?: StorefrontAPI.Maybe< - Pick + Pick >; selectedOptions: Array< - Pick + Pick >; - product: Pick; + product: Pick; } >; }; @@ -650,26 +632,26 @@ export type CollectionDetailsQuery = { >; pageInfo: Pick< StorefrontAPI.PageInfo, - "hasPreviousPage" | "hasNextPage" | "endCursor" | "startCursor" + 'hasPreviousPage' | 'hasNextPage' | 'endCursor' | 'startCursor' >; }; } >; collections: { - edges: Array<{ node: Pick }>; + edges: Array<{node: Pick}>; }; }; export type CollectionsQueryVariables = StorefrontAPI.Exact<{ country?: StorefrontAPI.InputMaybe; language?: StorefrontAPI.InputMaybe; - first?: StorefrontAPI.InputMaybe; - last?: StorefrontAPI.InputMaybe; + first?: StorefrontAPI.InputMaybe; + last?: StorefrontAPI.InputMaybe; startCursor?: StorefrontAPI.InputMaybe< - StorefrontAPI.Scalars["String"]["input"] + StorefrontAPI.Scalars['String']['input'] >; endCursor?: StorefrontAPI.InputMaybe< - StorefrontAPI.Scalars["String"]["input"] + StorefrontAPI.Scalars['String']['input'] >; }>; @@ -678,20 +660,20 @@ export type CollectionsQuery = { nodes: Array< Pick< StorefrontAPI.Collection, - "id" | "title" | "description" | "handle" + 'id' | 'title' | 'description' | 'handle' > & { - seo: Pick; + seo: Pick; image?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Image, - "id" | "url" | "width" | "height" | "altText" + 'id' | 'url' | 'width' | 'height' | 'altText' > >; } >; pageInfo: Pick< StorefrontAPI.PageInfo, - "hasPreviousPage" | "hasNextPage" | "startCursor" | "endCursor" + 'hasPreviousPage' | 'hasNextPage' | 'startCursor' | 'endCursor' >; }; }; @@ -699,16 +681,16 @@ export type CollectionsQuery = { export type PaginatedProductsSearchQueryVariables = StorefrontAPI.Exact<{ country?: StorefrontAPI.InputMaybe; endCursor?: StorefrontAPI.InputMaybe< - StorefrontAPI.Scalars["String"]["input"] + StorefrontAPI.Scalars['String']['input'] >; - first?: StorefrontAPI.InputMaybe; + first?: StorefrontAPI.InputMaybe; language?: StorefrontAPI.InputMaybe; - last?: StorefrontAPI.InputMaybe; + last?: StorefrontAPI.InputMaybe; searchTerm?: StorefrontAPI.InputMaybe< - StorefrontAPI.Scalars["String"]["input"] + StorefrontAPI.Scalars['String']['input'] >; startCursor?: StorefrontAPI.InputMaybe< - StorefrontAPI.Scalars["String"]["input"] + StorefrontAPI.Scalars['String']['input'] >; }>; @@ -717,28 +699,28 @@ export type PaginatedProductsSearchQuery = { nodes: Array< Pick< StorefrontAPI.Product, - "id" | "title" | "publishedAt" | "handle" | "vendor" + 'id' | 'title' | 'publishedAt' | 'handle' | 'vendor' > & { variants: { nodes: Array< Pick< StorefrontAPI.ProductVariant, - "id" | "availableForSale" | "sku" + 'id' | 'availableForSale' | 'sku' > & { image?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Image, - "url" | "altText" | "width" | "height" + 'url' | 'altText' | 'width' | 'height' > >; - price: Pick; + price: Pick; compareAtPrice?: StorefrontAPI.Maybe< - Pick + Pick >; selectedOptions: Array< - Pick + Pick >; - product: Pick; + product: Pick; } >; }; @@ -746,43 +728,43 @@ export type PaginatedProductsSearchQuery = { >; pageInfo: Pick< StorefrontAPI.PageInfo, - "startCursor" | "endCursor" | "hasNextPage" | "hasPreviousPage" + 'startCursor' | 'endCursor' | 'hasNextPage' | 'hasPreviousPage' >; }; }; export type BlogQueryVariables = StorefrontAPI.Exact<{ language?: StorefrontAPI.InputMaybe; - blogHandle: StorefrontAPI.Scalars["String"]["input"]; - pageBy: StorefrontAPI.Scalars["Int"]["input"]; - cursor?: StorefrontAPI.InputMaybe; + blogHandle: StorefrontAPI.Scalars['String']['input']; + pageBy: StorefrontAPI.Scalars['Int']['input']; + cursor?: StorefrontAPI.InputMaybe; }>; export type BlogQuery = { blog?: StorefrontAPI.Maybe< - Pick & { + Pick & { seo?: StorefrontAPI.Maybe< - Pick + Pick >; articles: { edges: Array<{ node: Pick< StorefrontAPI.Article, - | "contentHtml" - | "excerpt" - | "excerptHtml" - | "handle" - | "id" - | "publishedAt" - | "title" + | 'contentHtml' + | 'excerpt' + | 'excerptHtml' + | 'handle' + | 'id' + | 'publishedAt' + | 'title' > & { author?: StorefrontAPI.Maybe< - Pick + Pick >; image?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Image, - "id" | "altText" | "url" | "width" | "height" + 'id' | 'altText' | 'url' | 'width' | 'height' > >; }; @@ -794,24 +776,24 @@ export type BlogQuery = { export type ArticleFragment = Pick< StorefrontAPI.Article, - | "contentHtml" - | "excerpt" - | "excerptHtml" - | "handle" - | "id" - | "publishedAt" - | "title" + | 'contentHtml' + | 'excerpt' + | 'excerptHtml' + | 'handle' + | 'id' + | 'publishedAt' + | 'title' > & { - author?: StorefrontAPI.Maybe>; + author?: StorefrontAPI.Maybe>; image?: StorefrontAPI.Maybe< - Pick + Pick >; }; export type ArticleDetailsQueryVariables = StorefrontAPI.Exact<{ language?: StorefrontAPI.InputMaybe; - blogHandle: StorefrontAPI.Scalars["String"]["input"]; - articleHandle: StorefrontAPI.Scalars["String"]["input"]; + blogHandle: StorefrontAPI.Scalars['String']['input']; + articleHandle: StorefrontAPI.Scalars['String']['input']; }>; export type ArticleDetailsQuery = { @@ -819,17 +801,17 @@ export type ArticleDetailsQuery = { articleByHandle?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Article, - "title" | "contentHtml" | "publishedAt" | "tags" + 'title' | 'contentHtml' | 'publishedAt' | 'tags' > & { - author?: StorefrontAPI.Maybe>; + author?: StorefrontAPI.Maybe>; image?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Image, - "id" | "altText" | "url" | "width" | "height" + 'id' | 'altText' | 'url' | 'width' | 'height' > >; seo?: StorefrontAPI.Maybe< - Pick + Pick >; } >; @@ -837,21 +819,21 @@ export type ArticleDetailsQuery = { nodes: Array< Pick< StorefrontAPI.Article, - | "contentHtml" - | "excerpt" - | "excerptHtml" - | "handle" - | "id" - | "publishedAt" - | "title" + | 'contentHtml' + | 'excerpt' + | 'excerptHtml' + | 'handle' + | 'id' + | 'publishedAt' + | 'title' > & { author?: StorefrontAPI.Maybe< - Pick + Pick >; image?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Image, - "id" | "altText" | "url" | "width" | "height" + 'id' | 'altText' | 'url' | 'width' | 'height' > >; } @@ -863,13 +845,13 @@ export type ArticleDetailsQuery = { export type AllProductsQueryVariables = StorefrontAPI.Exact<{ country?: StorefrontAPI.InputMaybe; language?: StorefrontAPI.InputMaybe; - first?: StorefrontAPI.InputMaybe; - last?: StorefrontAPI.InputMaybe; + first?: StorefrontAPI.InputMaybe; + last?: StorefrontAPI.InputMaybe; startCursor?: StorefrontAPI.InputMaybe< - StorefrontAPI.Scalars["String"]["input"] + StorefrontAPI.Scalars['String']['input'] >; endCursor?: StorefrontAPI.InputMaybe< - StorefrontAPI.Scalars["String"]["input"] + StorefrontAPI.Scalars['String']['input'] >; }>; @@ -878,28 +860,28 @@ export type AllProductsQuery = { nodes: Array< Pick< StorefrontAPI.Product, - "id" | "title" | "publishedAt" | "handle" | "vendor" + 'id' | 'title' | 'publishedAt' | 'handle' | 'vendor' > & { variants: { nodes: Array< Pick< StorefrontAPI.ProductVariant, - "id" | "availableForSale" | "sku" + 'id' | 'availableForSale' | 'sku' > & { image?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Image, - "url" | "altText" | "width" | "height" + 'url' | 'altText' | 'width' | 'height' > >; - price: Pick; + price: Pick; compareAtPrice?: StorefrontAPI.Maybe< - Pick + Pick >; selectedOptions: Array< - Pick + Pick >; - product: Pick; + product: Pick; } >; }; @@ -907,7 +889,7 @@ export type AllProductsQuery = { >; pageInfo: Pick< StorefrontAPI.PageInfo, - "hasPreviousPage" | "hasNextPage" | "startCursor" | "endCursor" + 'hasPreviousPage' | 'hasNextPage' | 'startCursor' | 'endCursor' >; }; }; @@ -915,7 +897,7 @@ export type AllProductsQuery = { export type VariantsQueryVariables = StorefrontAPI.Exact<{ country?: StorefrontAPI.InputMaybe; language?: StorefrontAPI.InputMaybe; - handle: StorefrontAPI.Scalars["String"]["input"]; + handle: StorefrontAPI.Scalars['String']['input']; }>; export type VariantsQuery = { @@ -924,25 +906,25 @@ export type VariantsQuery = { nodes: Array< Pick< StorefrontAPI.ProductVariant, - "id" | "availableForSale" | "quantityAvailable" | "sku" | "title" + 'id' | 'availableForSale' | 'quantityAvailable' | 'sku' | 'title' > & { selectedOptions: Array< - Pick + Pick >; image?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Image, - "id" | "url" | "altText" | "width" | "height" + 'id' | 'url' | 'altText' | 'width' | 'height' > >; - price: Pick; + price: Pick; compareAtPrice?: StorefrontAPI.Maybe< - Pick + Pick >; unitPrice?: StorefrontAPI.Maybe< - Pick + Pick >; - product: Pick; + product: Pick; } >; }; @@ -950,22 +932,22 @@ export type VariantsQuery = { }; export type MetaObjectsQueryVariables = StorefrontAPI.Exact<{ - type: StorefrontAPI.Scalars["String"]["input"]; - first?: StorefrontAPI.InputMaybe; + type: StorefrontAPI.Scalars['String']['input']; + first?: StorefrontAPI.InputMaybe; }>; export type MetaObjectsQuery = { metaobjects: { nodes: Array< - Pick & { + Pick & { fields: Array< - Pick & { + Pick & { reference?: StorefrontAPI.Maybe< - Pick & { + Pick & { image?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Image, - "altText" | "url" | "width" | "height" + 'altText' | 'url' | 'width' | 'height' > >; } @@ -977,32 +959,50 @@ export type MetaObjectsQuery = { }; }; +export type OrderCardFragment = Pick< + StorefrontAPI.Order, + 'id' | 'orderNumber' | 'processedAt' | 'financialStatus' | 'fulfillmentStatus' +> & { + currentTotalPrice: Pick; + lineItems: { + edges: Array<{ + node: Pick & { + variant?: StorefrontAPI.Maybe<{ + image?: StorefrontAPI.Maybe< + Pick + >; + }>; + }; + }>; + }; +}; + export type LayoutQueryVariables = StorefrontAPI.Exact<{ language?: StorefrontAPI.InputMaybe; - headerMenuHandle: StorefrontAPI.Scalars["String"]["input"]; - footerMenuHandle: StorefrontAPI.Scalars["String"]["input"]; + headerMenuHandle: StorefrontAPI.Scalars['String']['input']; + footerMenuHandle: StorefrontAPI.Scalars['String']['input']; }>; export type LayoutQuery = { - shop: Pick & { - primaryDomain: Pick; + shop: Pick & { + primaryDomain: Pick; brand?: StorefrontAPI.Maybe<{ logo?: StorefrontAPI.Maybe<{ - image?: StorefrontAPI.Maybe>; + image?: StorefrontAPI.Maybe>; }>; }>; }; headerMenu?: StorefrontAPI.Maybe< - Pick & { + Pick & { items: Array< Pick< StorefrontAPI.MenuItem, - "id" | "resourceId" | "tags" | "title" | "type" | "url" + 'id' | 'resourceId' | 'tags' | 'title' | 'type' | 'url' > & { items: Array< Pick< StorefrontAPI.MenuItem, - "id" | "resourceId" | "tags" | "title" | "type" | "url" + 'id' | 'resourceId' | 'tags' | 'title' | 'type' | 'url' > >; } @@ -1010,16 +1010,16 @@ export type LayoutQuery = { } >; footerMenu?: StorefrontAPI.Maybe< - Pick & { + Pick & { items: Array< Pick< StorefrontAPI.MenuItem, - "id" | "resourceId" | "tags" | "title" | "type" | "url" + 'id' | 'resourceId' | 'tags' | 'title' | 'type' | 'url' > & { items: Array< Pick< StorefrontAPI.MenuItem, - "id" | "resourceId" | "tags" | "title" | "type" | "url" + 'id' | 'resourceId' | 'tags' | 'title' | 'type' | 'url' > >; } @@ -1030,48 +1030,48 @@ export type LayoutQuery = { export type ShopFragment = Pick< StorefrontAPI.Shop, - "id" | "name" | "description" + 'id' | 'name' | 'description' > & { - primaryDomain: Pick; + primaryDomain: Pick; brand?: StorefrontAPI.Maybe<{ logo?: StorefrontAPI.Maybe<{ - image?: StorefrontAPI.Maybe>; + image?: StorefrontAPI.Maybe>; }>; }>; }; export type MenuItemFragment = Pick< StorefrontAPI.MenuItem, - "id" | "resourceId" | "tags" | "title" | "type" | "url" + 'id' | 'resourceId' | 'tags' | 'title' | 'type' | 'url' >; export type ChildMenuItemFragment = Pick< StorefrontAPI.MenuItem, - "id" | "resourceId" | "tags" | "title" | "type" | "url" + 'id' | 'resourceId' | 'tags' | 'title' | 'type' | 'url' >; export type ParentMenuItemFragment = Pick< StorefrontAPI.MenuItem, - "id" | "resourceId" | "tags" | "title" | "type" | "url" + 'id' | 'resourceId' | 'tags' | 'title' | 'type' | 'url' > & { items: Array< Pick< StorefrontAPI.MenuItem, - "id" | "resourceId" | "tags" | "title" | "type" | "url" + 'id' | 'resourceId' | 'tags' | 'title' | 'type' | 'url' > >; }; -export type MenuFragment = Pick & { +export type MenuFragment = Pick & { items: Array< Pick< StorefrontAPI.MenuItem, - "id" | "resourceId" | "tags" | "title" | "type" | "url" + 'id' | 'resourceId' | 'tags' | 'title' | 'type' | 'url' > & { items: Array< Pick< StorefrontAPI.MenuItem, - "id" | "resourceId" | "tags" | "title" | "type" | "url" + 'id' | 'resourceId' | 'tags' | 'title' | 'type' | 'url' > >; } @@ -1083,13 +1083,13 @@ export type GetShopPrimaryDomainQueryVariables = StorefrontAPI.Exact<{ }>; export type GetShopPrimaryDomainQuery = { - shop: { primaryDomain: Pick }; + shop: {primaryDomain: Pick}; }; export type ApiAllProductsQueryVariables = StorefrontAPI.Exact<{ - query?: StorefrontAPI.InputMaybe; - count?: StorefrontAPI.InputMaybe; - reverse?: StorefrontAPI.InputMaybe; + query?: StorefrontAPI.InputMaybe; + count?: StorefrontAPI.InputMaybe; + reverse?: StorefrontAPI.InputMaybe; country?: StorefrontAPI.InputMaybe; language?: StorefrontAPI.InputMaybe; sortKey?: StorefrontAPI.InputMaybe; @@ -1100,28 +1100,28 @@ export type ApiAllProductsQuery = { nodes: Array< Pick< StorefrontAPI.Product, - "id" | "title" | "publishedAt" | "handle" | "vendor" + 'id' | 'title' | 'publishedAt' | 'handle' | 'vendor' > & { variants: { nodes: Array< Pick< StorefrontAPI.ProductVariant, - "id" | "availableForSale" | "sku" + 'id' | 'availableForSale' | 'sku' > & { image?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Image, - "url" | "altText" | "width" | "height" + 'url' | 'altText' | 'width' | 'height' > >; - price: Pick; + price: Pick; compareAtPrice?: StorefrontAPI.Maybe< - Pick + Pick >; selectedOptions: Array< - Pick + Pick >; - product: Pick; + product: Pick; } >; }; @@ -1133,15 +1133,15 @@ export type ApiAllProductsQuery = { export type FeaturedItemsQueryVariables = StorefrontAPI.Exact<{ country?: StorefrontAPI.InputMaybe; language?: StorefrontAPI.InputMaybe; - pageBy?: StorefrontAPI.InputMaybe; + pageBy?: StorefrontAPI.InputMaybe; }>; export type FeaturedItemsQuery = { featuredCollections: { nodes: Array< - Pick & { + Pick & { image?: StorefrontAPI.Maybe< - Pick + Pick >; } >; @@ -1150,28 +1150,28 @@ export type FeaturedItemsQuery = { nodes: Array< Pick< StorefrontAPI.Product, - "id" | "title" | "publishedAt" | "handle" | "vendor" + 'id' | 'title' | 'publishedAt' | 'handle' | 'vendor' > & { variants: { nodes: Array< Pick< StorefrontAPI.ProductVariant, - "id" | "availableForSale" | "sku" + 'id' | 'availableForSale' | 'sku' > & { image?: StorefrontAPI.Maybe< Pick< StorefrontAPI.Image, - "url" | "altText" | "width" | "height" + 'url' | 'altText' | 'width' | 'height' > >; - price: Pick; + price: Pick; compareAtPrice?: StorefrontAPI.Maybe< - Pick + Pick >; selectedOptions: Array< - Pick + Pick >; - product: Pick; + product: Pick; } >; }; @@ -1182,14 +1182,14 @@ export type FeaturedItemsQuery = { export type PageDetailsQueryVariables = StorefrontAPI.Exact<{ language?: StorefrontAPI.InputMaybe; - handle: StorefrontAPI.Scalars["String"]["input"]; + handle: StorefrontAPI.Scalars['String']['input']; }>; export type PageDetailsQuery = { page?: StorefrontAPI.Maybe< - Pick & { + Pick & { seo?: StorefrontAPI.Maybe< - Pick + Pick >; } >; @@ -1197,37 +1197,37 @@ export type PageDetailsQuery = { export type PolicyHandleFragment = Pick< StorefrontAPI.ShopPolicy, - "body" | "handle" | "id" | "title" | "url" + 'body' | 'handle' | 'id' | 'title' | 'url' >; export type PoliciesHandleQueryVariables = StorefrontAPI.Exact<{ language?: StorefrontAPI.InputMaybe; - privacyPolicy: StorefrontAPI.Scalars["Boolean"]["input"]; - shippingPolicy: StorefrontAPI.Scalars["Boolean"]["input"]; - termsOfService: StorefrontAPI.Scalars["Boolean"]["input"]; - refundPolicy: StorefrontAPI.Scalars["Boolean"]["input"]; + privacyPolicy: StorefrontAPI.Scalars['Boolean']['input']; + shippingPolicy: StorefrontAPI.Scalars['Boolean']['input']; + termsOfService: StorefrontAPI.Scalars['Boolean']['input']; + refundPolicy: StorefrontAPI.Scalars['Boolean']['input']; }>; export type PoliciesHandleQuery = { shop: { privacyPolicy?: StorefrontAPI.Maybe< - Pick + Pick >; shippingPolicy?: StorefrontAPI.Maybe< - Pick + Pick >; termsOfService?: StorefrontAPI.Maybe< - Pick + Pick >; refundPolicy?: StorefrontAPI.Maybe< - Pick + Pick >; }; }; export type PolicyIndexFragment = Pick< StorefrontAPI.ShopPolicy, - "id" | "title" | "handle" + 'id' | 'title' | 'handle' >; export type PoliciesIndexQueryVariables = StorefrontAPI.Exact<{ @@ -1237,25 +1237,25 @@ export type PoliciesIndexQueryVariables = StorefrontAPI.Exact<{ export type PoliciesIndexQuery = { shop: { privacyPolicy?: StorefrontAPI.Maybe< - Pick + Pick >; shippingPolicy?: StorefrontAPI.Maybe< - Pick + Pick >; termsOfService?: StorefrontAPI.Maybe< - Pick + Pick >; refundPolicy?: StorefrontAPI.Maybe< - Pick + Pick >; subscriptionPolicy?: StorefrontAPI.Maybe< - Pick + Pick >; }; }; export type SitemapsQueryVariables = StorefrontAPI.Exact<{ - urlLimits?: StorefrontAPI.InputMaybe; + urlLimits?: StorefrontAPI.InputMaybe; language?: StorefrontAPI.InputMaybe; }>; @@ -1264,28 +1264,28 @@ export type SitemapsQuery = { nodes: Array< Pick< StorefrontAPI.Product, - "updatedAt" | "handle" | "onlineStoreUrl" | "title" + 'updatedAt' | 'handle' | 'onlineStoreUrl' | 'title' > & { featuredImage?: StorefrontAPI.Maybe< - Pick + Pick >; } >; }; collections: { nodes: Array< - Pick + Pick >; }; pages: { nodes: Array< - Pick + Pick >; }; }; interface GeneratedQueryTypes { - "#graphql\n query shopQuery($country: CountryCode, $language: LanguageCode)\n @inContext(country: $country, language: $language) {\n shop {\n name\n description\n }\n }\n": { + '#graphql\n query shopQuery($country: CountryCode, $language: LanguageCode)\n @inContext(country: $country, language: $language) {\n shop {\n name\n description\n }\n }\n': { return: ShopQueryQuery; variables: ShopQueryQueryVariables; }; @@ -1293,91 +1293,91 @@ interface GeneratedQueryTypes { return: SeoCollectionContentQuery; variables: SeoCollectionContentQueryVariables; }; - "#graphql\n query homepageFeaturedProducts($country: CountryCode, $language: LanguageCode)\n @inContext(country: $country, language: $language) {\n products(first: 8) {\n nodes {\n ...ProductCard\n }\n }\n }\n #graphql\n fragment ProductCard on Product {\n id\n title\n publishedAt\n handle\n vendor\n variants(first: 1) {\n nodes {\n id\n availableForSale\n image {\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n selectedOptions {\n name\n value\n }\n product {\n handle\n title\n }\n sku\n }\n }\n }\n\n": { + '#graphql\n query homepageFeaturedProducts($country: CountryCode, $language: LanguageCode)\n @inContext(country: $country, language: $language) {\n products(first: 8) {\n nodes {\n ...ProductCard\n }\n }\n }\n #graphql\n fragment ProductCard on Product {\n id\n title\n publishedAt\n handle\n vendor\n variants(first: 1) {\n nodes {\n id\n availableForSale\n image {\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n selectedOptions {\n name\n value\n }\n product {\n handle\n title\n }\n sku\n }\n }\n }\n\n': { return: HomepageFeaturedProductsQuery; variables: HomepageFeaturedProductsQueryVariables; }; - "#graphql\n query homepageFeaturedCollections($country: CountryCode, $language: LanguageCode)\n @inContext(country: $country, language: $language) {\n collections(\n first: 4,\n sortKey: UPDATED_AT\n ) {\n nodes {\n id\n title\n handle\n image {\n altText\n width\n height\n url\n }\n }\n }\n }\n": { + '#graphql\n query homepageFeaturedCollections($country: CountryCode, $language: LanguageCode)\n @inContext(country: $country, language: $language) {\n collections(\n first: 4,\n sortKey: UPDATED_AT\n ) {\n nodes {\n id\n title\n handle\n image {\n altText\n width\n height\n url\n }\n }\n }\n }\n': { return: HomepageFeaturedCollectionsQuery; variables: HomepageFeaturedCollectionsQueryVariables; }; - "#graphql\n query ProductInfo(\n $country: CountryCode\n $language: LanguageCode\n $handle: String!\n ) @inContext(country: $country, language: $language) {\n product(handle: $handle) {\n id\n title\n vendor\n handle\n }\n }\n": { + '#graphql\n query ProductInfo(\n $country: CountryCode\n $language: LanguageCode\n $handle: String!\n ) @inContext(country: $country, language: $language) {\n product(handle: $handle) {\n id\n title\n vendor\n handle\n }\n }\n': { return: ProductInfoQuery; variables: ProductInfoQueryVariables; }; - "#graphql\n query Product(\n $country: CountryCode\n $language: LanguageCode\n $handle: String!\n $selectedOptions: [SelectedOptionInput!]!\n ) @inContext(country: $country, language: $language) {\n product(handle: $handle) {\n id\n title\n vendor\n handle\n descriptionHtml\n description\n options {\n name\n values\n }\n selectedVariant: variantBySelectedOptions(selectedOptions: $selectedOptions, ignoreUnknownOptions: true, caseInsensitiveMatch: true) {\n ...ProductVariantFragment\n }\n media(first: 7) {\n nodes {\n ...Media\n }\n }\n variants(first: 1) {\n nodes {\n ...ProductVariantFragment\n }\n }\n seo {\n description\n title\n }\n }\n shop {\n name\n primaryDomain {\n url\n }\n shippingPolicy {\n body\n handle\n }\n refundPolicy {\n body\n handle\n }\n }\n }\n #graphql\n fragment Media on Media {\n __typename\n mediaContentType\n alt\n previewImage {\n url\n }\n ... on MediaImage {\n id\n image {\n id\n url\n width\n height\n }\n }\n ... on Video {\n id\n sources {\n mimeType\n url\n }\n }\n ... on Model3d {\n id\n sources {\n mimeType\n url\n }\n }\n ... on ExternalVideo {\n id\n embedUrl\n host\n }\n }\n\n #graphql\n fragment ProductVariantFragment on ProductVariant {\n id\n availableForSale\n quantityAvailable\n selectedOptions {\n name\n value\n }\n image {\n id\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n sku\n title\n unitPrice {\n amount\n currencyCode\n }\n product {\n title\n handle\n }\n }\n\n": { + '#graphql\n query Product(\n $country: CountryCode\n $language: LanguageCode\n $handle: String!\n $selectedOptions: [SelectedOptionInput!]!\n ) @inContext(country: $country, language: $language) {\n product(handle: $handle) {\n id\n title\n vendor\n handle\n descriptionHtml\n description\n options {\n name\n values\n }\n selectedVariant: variantBySelectedOptions(selectedOptions: $selectedOptions, ignoreUnknownOptions: true, caseInsensitiveMatch: true) {\n ...ProductVariantFragment\n }\n media(first: 7) {\n nodes {\n ...Media\n }\n }\n variants(first: 1) {\n nodes {\n ...ProductVariantFragment\n }\n }\n seo {\n description\n title\n }\n }\n shop {\n name\n primaryDomain {\n url\n }\n shippingPolicy {\n body\n handle\n }\n refundPolicy {\n body\n handle\n }\n }\n }\n #graphql\n fragment Media on Media {\n __typename\n mediaContentType\n alt\n previewImage {\n url\n }\n ... on MediaImage {\n id\n image {\n id\n url\n width\n height\n }\n }\n ... on Video {\n id\n sources {\n mimeType\n url\n }\n }\n ... on Model3d {\n id\n sources {\n mimeType\n url\n }\n }\n ... on ExternalVideo {\n id\n embedUrl\n host\n }\n }\n\n #graphql\n fragment ProductVariantFragment on ProductVariant {\n id\n availableForSale\n quantityAvailable\n selectedOptions {\n name\n value\n }\n image {\n id\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n sku\n title\n unitPrice {\n amount\n currencyCode\n }\n product {\n title\n handle\n }\n }\n\n': { return: ProductQuery; variables: ProductQueryVariables; }; - "#graphql\n query productRecommendations(\n $productId: ID!\n $count: Int\n $country: CountryCode\n $language: LanguageCode\n ) @inContext(country: $country, language: $language) {\n recommended: productRecommendations(productId: $productId) {\n ...ProductCard\n }\n additional: products(first: $count, sortKey: BEST_SELLING) {\n nodes {\n ...ProductCard\n }\n }\n }\n #graphql\n fragment ProductCard on Product {\n id\n title\n publishedAt\n handle\n vendor\n variants(first: 1) {\n nodes {\n id\n availableForSale\n image {\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n selectedOptions {\n name\n value\n }\n product {\n handle\n title\n }\n sku\n }\n }\n }\n\n": { + '#graphql\n query productRecommendations(\n $productId: ID!\n $count: Int\n $country: CountryCode\n $language: LanguageCode\n ) @inContext(country: $country, language: $language) {\n recommended: productRecommendations(productId: $productId) {\n ...ProductCard\n }\n additional: products(first: $count, sortKey: BEST_SELLING) {\n nodes {\n ...ProductCard\n }\n }\n }\n #graphql\n fragment ProductCard on Product {\n id\n title\n publishedAt\n handle\n vendor\n variants(first: 1) {\n nodes {\n id\n availableForSale\n image {\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n selectedOptions {\n name\n value\n }\n product {\n handle\n title\n }\n sku\n }\n }\n }\n\n': { return: ProductRecommendationsQuery; variables: ProductRecommendationsQueryVariables; }; - "#graphql\n query CollectionInfo(\n $handle: String!,\n $country: CountryCode,\n $language: LanguageCode\n ) @inContext(country: $country, language: $language) {\n collection(handle: $handle) {\n id\n handle\n title\n description\n seo {\n description\n title\n }\n image {\n id\n url\n width\n height\n altText\n }\n }\n }\n": { + '#graphql\n query CollectionInfo(\n $handle: String!,\n $country: CountryCode,\n $language: LanguageCode\n ) @inContext(country: $country, language: $language) {\n collection(handle: $handle) {\n id\n handle\n title\n description\n seo {\n description\n title\n }\n image {\n id\n url\n width\n height\n altText\n }\n }\n }\n': { return: CollectionInfoQuery; variables: CollectionInfoQueryVariables; }; - "#graphql\n query CollectionDetails(\n $handle: String!\n $country: CountryCode\n $language: LanguageCode\n $filters: [ProductFilter!]\n $sortKey: ProductCollectionSortKeys!\n $reverse: Boolean\n $first: Int\n $last: Int\n $startCursor: String\n $endCursor: String\n ) @inContext(country: $country, language: $language) {\n collection(handle: $handle) {\n id\n handle\n title\n description\n seo {\n description\n title\n }\n image {\n id\n url\n width\n height\n altText\n }\n products(\n first: $first,\n last: $last,\n before: $startCursor,\n after: $endCursor,\n filters: $filters,\n sortKey: $sortKey,\n reverse: $reverse\n ) {\n filters {\n id\n label\n type\n values {\n id\n label\n count\n input\n }\n }\n nodes {\n ...ProductCard\n }\n pageInfo {\n hasPreviousPage\n hasNextPage\n endCursor\n startCursor\n }\n }\n }\n collections(first: 100) {\n edges {\n node {\n title\n handle\n }\n }\n }\n }\n #graphql\n fragment ProductCard on Product {\n id\n title\n publishedAt\n handle\n vendor\n variants(first: 1) {\n nodes {\n id\n availableForSale\n image {\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n selectedOptions {\n name\n value\n }\n product {\n handle\n title\n }\n sku\n }\n }\n }\n\n": { + '#graphql\n query CollectionDetails(\n $handle: String!\n $country: CountryCode\n $language: LanguageCode\n $filters: [ProductFilter!]\n $sortKey: ProductCollectionSortKeys!\n $reverse: Boolean\n $first: Int\n $last: Int\n $startCursor: String\n $endCursor: String\n ) @inContext(country: $country, language: $language) {\n collection(handle: $handle) {\n id\n handle\n title\n description\n seo {\n description\n title\n }\n image {\n id\n url\n width\n height\n altText\n }\n products(\n first: $first,\n last: $last,\n before: $startCursor,\n after: $endCursor,\n filters: $filters,\n sortKey: $sortKey,\n reverse: $reverse\n ) {\n filters {\n id\n label\n type\n values {\n id\n label\n count\n input\n }\n }\n nodes {\n ...ProductCard\n }\n pageInfo {\n hasPreviousPage\n hasNextPage\n endCursor\n startCursor\n }\n }\n }\n collections(first: 100) {\n edges {\n node {\n title\n handle\n }\n }\n }\n }\n #graphql\n fragment ProductCard on Product {\n id\n title\n publishedAt\n handle\n vendor\n variants(first: 1) {\n nodes {\n id\n availableForSale\n image {\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n selectedOptions {\n name\n value\n }\n product {\n handle\n title\n }\n sku\n }\n }\n }\n\n': { return: CollectionDetailsQuery; variables: CollectionDetailsQueryVariables; }; - "#graphql\n query Collections(\n $country: CountryCode\n $language: LanguageCode\n $first: Int\n $last: Int\n $startCursor: String\n $endCursor: String\n ) @inContext(country: $country, language: $language) {\n collections(first: $first, last: $last, before: $startCursor, after: $endCursor) {\n nodes {\n id\n title\n description\n handle\n seo {\n description\n title\n }\n image {\n id\n url\n width\n height\n altText\n }\n }\n pageInfo {\n hasPreviousPage\n hasNextPage\n startCursor\n endCursor\n }\n }\n }\n": { + '#graphql\n query Collections(\n $country: CountryCode\n $language: LanguageCode\n $first: Int\n $last: Int\n $startCursor: String\n $endCursor: String\n ) @inContext(country: $country, language: $language) {\n collections(first: $first, last: $last, before: $startCursor, after: $endCursor) {\n nodes {\n id\n title\n description\n handle\n seo {\n description\n title\n }\n image {\n id\n url\n width\n height\n altText\n }\n }\n pageInfo {\n hasPreviousPage\n hasNextPage\n startCursor\n endCursor\n }\n }\n }\n': { return: CollectionsQuery; variables: CollectionsQueryVariables; }; - "#graphql\n query PaginatedProductsSearch(\n $country: CountryCode\n $endCursor: String\n $first: Int\n $language: LanguageCode\n $last: Int\n $searchTerm: String\n $startCursor: String\n ) @inContext(country: $country, language: $language) {\n products(\n first: $first,\n last: $last,\n before: $startCursor,\n after: $endCursor,\n sortKey: RELEVANCE,\n query: $searchTerm\n ) {\n nodes {\n ...ProductCard\n }\n pageInfo {\n startCursor\n endCursor\n hasNextPage\n hasPreviousPage\n }\n }\n }\n\n #graphql\n fragment ProductCard on Product {\n id\n title\n publishedAt\n handle\n vendor\n variants(first: 1) {\n nodes {\n id\n availableForSale\n image {\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n selectedOptions {\n name\n value\n }\n product {\n handle\n title\n }\n sku\n }\n }\n }\n\n": { + '#graphql\n query PaginatedProductsSearch(\n $country: CountryCode\n $endCursor: String\n $first: Int\n $language: LanguageCode\n $last: Int\n $searchTerm: String\n $startCursor: String\n ) @inContext(country: $country, language: $language) {\n products(\n first: $first,\n last: $last,\n before: $startCursor,\n after: $endCursor,\n sortKey: RELEVANCE,\n query: $searchTerm\n ) {\n nodes {\n ...ProductCard\n }\n pageInfo {\n startCursor\n endCursor\n hasNextPage\n hasPreviousPage\n }\n }\n }\n\n #graphql\n fragment ProductCard on Product {\n id\n title\n publishedAt\n handle\n vendor\n variants(first: 1) {\n nodes {\n id\n availableForSale\n image {\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n selectedOptions {\n name\n value\n }\n product {\n handle\n title\n }\n sku\n }\n }\n }\n\n': { return: PaginatedProductsSearchQuery; variables: PaginatedProductsSearchQueryVariables; }; - "#graphql\n query Blog(\n $language: LanguageCode\n $blogHandle: String!\n $pageBy: Int!\n $cursor: String\n ) @inContext(language: $language) {\n blog(handle: $blogHandle) {\n title\n handle\n seo {\n title\n description\n }\n articles(first: $pageBy, after: $cursor) {\n edges {\n node {\n ...Article\n }\n }\n }\n }\n }\n\n fragment Article on Article {\n author: authorV2 {\n name\n }\n contentHtml\n excerpt\n excerptHtml\n handle\n id\n image {\n id\n altText\n url\n width\n height\n }\n publishedAt\n title\n }\n": { + '#graphql\n query Blog(\n $language: LanguageCode\n $blogHandle: String!\n $pageBy: Int!\n $cursor: String\n ) @inContext(language: $language) {\n blog(handle: $blogHandle) {\n title\n handle\n seo {\n title\n description\n }\n articles(first: $pageBy, after: $cursor) {\n edges {\n node {\n ...Article\n }\n }\n }\n }\n }\n\n fragment Article on Article {\n author: authorV2 {\n name\n }\n contentHtml\n excerpt\n excerptHtml\n handle\n id\n image {\n id\n altText\n url\n width\n height\n }\n publishedAt\n title\n }\n': { return: BlogQuery; variables: BlogQueryVariables; }; - "#graphql\n query ArticleDetails(\n $language: LanguageCode\n $blogHandle: String!\n $articleHandle: String!\n ) @inContext(language: $language) {\n blog(handle: $blogHandle) {\n articleByHandle(handle: $articleHandle) {\n title\n contentHtml\n publishedAt\n tags\n author: authorV2 {\n name\n }\n image {\n id\n altText\n url\n width\n height\n }\n seo {\n description\n title\n }\n }\n articles (first: 20) {\n nodes {\n ...Article\n }\n }\n }\n }\n fragment Article on Article {\n author: authorV2 {\n name\n }\n contentHtml\n excerpt\n excerptHtml\n handle\n id\n image {\n id\n altText\n url\n width\n height\n }\n publishedAt\n title\n }\n": { + '#graphql\n query ArticleDetails(\n $language: LanguageCode\n $blogHandle: String!\n $articleHandle: String!\n ) @inContext(language: $language) {\n blog(handle: $blogHandle) {\n articleByHandle(handle: $articleHandle) {\n title\n contentHtml\n publishedAt\n tags\n author: authorV2 {\n name\n }\n image {\n id\n altText\n url\n width\n height\n }\n seo {\n description\n title\n }\n }\n articles (first: 20) {\n nodes {\n ...Article\n }\n }\n }\n }\n fragment Article on Article {\n author: authorV2 {\n name\n }\n contentHtml\n excerpt\n excerptHtml\n handle\n id\n image {\n id\n altText\n url\n width\n height\n }\n publishedAt\n title\n }\n': { return: ArticleDetailsQuery; variables: ArticleDetailsQueryVariables; }; - "#graphql\n query AllProducts(\n $country: CountryCode\n $language: LanguageCode\n $first: Int\n $last: Int\n $startCursor: String\n $endCursor: String\n ) @inContext(country: $country, language: $language) {\n products(first: $first, last: $last, before: $startCursor, after: $endCursor) {\n nodes {\n ...ProductCard\n }\n pageInfo {\n hasPreviousPage\n hasNextPage\n startCursor\n endCursor\n }\n }\n }\n #graphql\n fragment ProductCard on Product {\n id\n title\n publishedAt\n handle\n vendor\n variants(first: 1) {\n nodes {\n id\n availableForSale\n image {\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n selectedOptions {\n name\n value\n }\n product {\n handle\n title\n }\n sku\n }\n }\n }\n\n": { + '#graphql\n query AllProducts(\n $country: CountryCode\n $language: LanguageCode\n $first: Int\n $last: Int\n $startCursor: String\n $endCursor: String\n ) @inContext(country: $country, language: $language) {\n products(first: $first, last: $last, before: $startCursor, after: $endCursor) {\n nodes {\n ...ProductCard\n }\n pageInfo {\n hasPreviousPage\n hasNextPage\n startCursor\n endCursor\n }\n }\n }\n #graphql\n fragment ProductCard on Product {\n id\n title\n publishedAt\n handle\n vendor\n variants(first: 1) {\n nodes {\n id\n availableForSale\n image {\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n selectedOptions {\n name\n value\n }\n product {\n handle\n title\n }\n sku\n }\n }\n }\n\n': { return: AllProductsQuery; variables: AllProductsQueryVariables; }; - "#graphql\n query variants(\n $country: CountryCode\n $language: LanguageCode\n $handle: String!\n ) @inContext(country: $country, language: $language) {\n product(handle: $handle) {\n variants(first: 250) {\n nodes {\n ...ProductVariantFragment\n }\n }\n }\n }\n #graphql\n fragment ProductVariantFragment on ProductVariant {\n id\n availableForSale\n quantityAvailable\n selectedOptions {\n name\n value\n }\n image {\n id\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n sku\n title\n unitPrice {\n amount\n currencyCode\n }\n product {\n title\n handle\n }\n }\n\n": { + '#graphql\n query variants(\n $country: CountryCode\n $language: LanguageCode\n $handle: String!\n ) @inContext(country: $country, language: $language) {\n product(handle: $handle) {\n variants(first: 250) {\n nodes {\n ...ProductVariantFragment\n }\n }\n }\n }\n #graphql\n fragment ProductVariantFragment on ProductVariant {\n id\n availableForSale\n quantityAvailable\n selectedOptions {\n name\n value\n }\n image {\n id\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n sku\n title\n unitPrice {\n amount\n currencyCode\n }\n product {\n title\n handle\n }\n }\n\n': { return: VariantsQuery; variables: VariantsQueryVariables; }; - "#graphql\n query MetaObjects ($type: String!, $first: Int)\n {\n metaobjects(type: $type, first: $first) {\n nodes {\n fields {\n key\n type\n value\n reference {\n ... on MediaImage {\n alt\n image {\n altText\n url\n width\n height\n }\n }\n }\n }\n handle\n id\n type\n }\n }\n }\n ": { + '#graphql\n query MetaObjects ($type: String!, $first: Int)\n {\n metaobjects(type: $type, first: $first) {\n nodes {\n fields {\n key\n type\n value\n reference {\n ... on MediaImage {\n alt\n image {\n altText\n url\n width\n height\n }\n }\n }\n }\n handle\n id\n type\n }\n }\n }\n ': { return: MetaObjectsQuery; variables: MetaObjectsQueryVariables; }; - "#graphql\n query layout(\n $language: LanguageCode\n $headerMenuHandle: String!\n $footerMenuHandle: String!\n ) @inContext(language: $language) {\n shop {\n ...Shop\n }\n headerMenu: menu(handle: $headerMenuHandle) {\n ...Menu\n }\n footerMenu: menu(handle: $footerMenuHandle) {\n ...Menu\n }\n }\n fragment Shop on Shop {\n id\n name\n description\n primaryDomain {\n url\n }\n brand {\n logo {\n image {\n url\n }\n }\n }\n }\n fragment MenuItem on MenuItem {\n id\n resourceId\n tags\n title\n type\n url\n }\n fragment ChildMenuItem on MenuItem {\n ...MenuItem\n }\n fragment ParentMenuItem on MenuItem {\n ...MenuItem\n items {\n ...ChildMenuItem\n }\n }\n fragment Menu on Menu {\n id\n items {\n ...ParentMenuItem\n }\n }\n": { + '#graphql\n query layout(\n $language: LanguageCode\n $headerMenuHandle: String!\n $footerMenuHandle: String!\n ) @inContext(language: $language) {\n shop {\n ...Shop\n }\n headerMenu: menu(handle: $headerMenuHandle) {\n ...Menu\n }\n footerMenu: menu(handle: $footerMenuHandle) {\n ...Menu\n }\n }\n fragment Shop on Shop {\n id\n name\n description\n primaryDomain {\n url\n }\n brand {\n logo {\n image {\n url\n }\n }\n }\n }\n fragment MenuItem on MenuItem {\n id\n resourceId\n tags\n title\n type\n url\n }\n fragment ChildMenuItem on MenuItem {\n ...MenuItem\n }\n fragment ParentMenuItem on MenuItem {\n ...MenuItem\n items {\n ...ChildMenuItem\n }\n }\n fragment Menu on Menu {\n id\n items {\n ...ParentMenuItem\n }\n }\n': { return: LayoutQuery; variables: LayoutQueryVariables; }; - "#graphql\n query getShopPrimaryDomain { shop { primaryDomain { url } } }\n ": { + '#graphql\n query getShopPrimaryDomain { shop { primaryDomain { url } } }\n ': { return: GetShopPrimaryDomainQuery; variables: GetShopPrimaryDomainQueryVariables; }; - "#graphql\n query ApiAllProducts(\n $query: String\n $count: Int\n $reverse: Boolean\n $country: CountryCode\n $language: LanguageCode\n $sortKey: ProductSortKeys\n ) @inContext(country: $country, language: $language) {\n products(first: $count, sortKey: $sortKey, reverse: $reverse, query: $query) {\n nodes {\n ...ProductCard\n }\n }\n }\n #graphql\n fragment ProductCard on Product {\n id\n title\n publishedAt\n handle\n vendor\n variants(first: 1) {\n nodes {\n id\n availableForSale\n image {\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n selectedOptions {\n name\n value\n }\n product {\n handle\n title\n }\n sku\n }\n }\n }\n\n": { + '#graphql\n query ApiAllProducts(\n $query: String\n $count: Int\n $reverse: Boolean\n $country: CountryCode\n $language: LanguageCode\n $sortKey: ProductSortKeys\n ) @inContext(country: $country, language: $language) {\n products(first: $count, sortKey: $sortKey, reverse: $reverse, query: $query) {\n nodes {\n ...ProductCard\n }\n }\n }\n #graphql\n fragment ProductCard on Product {\n id\n title\n publishedAt\n handle\n vendor\n variants(first: 1) {\n nodes {\n id\n availableForSale\n image {\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n selectedOptions {\n name\n value\n }\n product {\n handle\n title\n }\n sku\n }\n }\n }\n\n': { return: ApiAllProductsQuery; variables: ApiAllProductsQueryVariables; }; - "#graphql\n query FeaturedItems(\n $country: CountryCode\n $language: LanguageCode\n $pageBy: Int = 12\n ) @inContext(country: $country, language: $language) {\n featuredCollections: collections(first: 3, sortKey: UPDATED_AT) {\n nodes {\n ...FeaturedCollectionDetails\n }\n }\n featuredProducts: products(first: $pageBy) {\n nodes {\n ...ProductCard\n }\n }\n }\n\n #graphql\n fragment ProductCard on Product {\n id\n title\n publishedAt\n handle\n vendor\n variants(first: 1) {\n nodes {\n id\n availableForSale\n image {\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n selectedOptions {\n name\n value\n }\n product {\n handle\n title\n }\n sku\n }\n }\n }\n\n #graphql\n fragment FeaturedCollectionDetails on Collection {\n id\n title\n handle\n image {\n altText\n width\n height\n url\n }\n }\n\n": { + '#graphql\n query FeaturedItems(\n $country: CountryCode\n $language: LanguageCode\n $pageBy: Int = 12\n ) @inContext(country: $country, language: $language) {\n featuredCollections: collections(first: 3, sortKey: UPDATED_AT) {\n nodes {\n ...FeaturedCollectionDetails\n }\n }\n featuredProducts: products(first: $pageBy) {\n nodes {\n ...ProductCard\n }\n }\n }\n\n #graphql\n fragment ProductCard on Product {\n id\n title\n publishedAt\n handle\n vendor\n variants(first: 1) {\n nodes {\n id\n availableForSale\n image {\n url\n altText\n width\n height\n }\n price {\n amount\n currencyCode\n }\n compareAtPrice {\n amount\n currencyCode\n }\n selectedOptions {\n name\n value\n }\n product {\n handle\n title\n }\n sku\n }\n }\n }\n\n #graphql\n fragment FeaturedCollectionDetails on Collection {\n id\n title\n handle\n image {\n altText\n width\n height\n url\n }\n }\n\n': { return: FeaturedItemsQuery; variables: FeaturedItemsQueryVariables; }; - "#graphql\n query PageDetails($language: LanguageCode, $handle: String!)\n @inContext(language: $language) {\n page(handle: $handle) {\n id\n title\n body\n seo {\n description\n title\n }\n }\n }\n": { + '#graphql\n query PageDetails($language: LanguageCode, $handle: String!)\n @inContext(language: $language) {\n page(handle: $handle) {\n id\n title\n body\n seo {\n description\n title\n }\n }\n }\n': { return: PageDetailsQuery; variables: PageDetailsQueryVariables; }; - "#graphql\n fragment PolicyHandle on ShopPolicy {\n body\n handle\n id\n title\n url\n }\n\n query PoliciesHandle(\n $language: LanguageCode\n $privacyPolicy: Boolean!\n $shippingPolicy: Boolean!\n $termsOfService: Boolean!\n $refundPolicy: Boolean!\n ) @inContext(language: $language) {\n shop {\n privacyPolicy @include(if: $privacyPolicy) {\n ...PolicyHandle\n }\n shippingPolicy @include(if: $shippingPolicy) {\n ...PolicyHandle\n }\n termsOfService @include(if: $termsOfService) {\n ...PolicyHandle\n }\n refundPolicy @include(if: $refundPolicy) {\n ...PolicyHandle\n }\n }\n }\n": { + '#graphql\n fragment PolicyHandle on ShopPolicy {\n body\n handle\n id\n title\n url\n }\n\n query PoliciesHandle(\n $language: LanguageCode\n $privacyPolicy: Boolean!\n $shippingPolicy: Boolean!\n $termsOfService: Boolean!\n $refundPolicy: Boolean!\n ) @inContext(language: $language) {\n shop {\n privacyPolicy @include(if: $privacyPolicy) {\n ...PolicyHandle\n }\n shippingPolicy @include(if: $shippingPolicy) {\n ...PolicyHandle\n }\n termsOfService @include(if: $termsOfService) {\n ...PolicyHandle\n }\n refundPolicy @include(if: $refundPolicy) {\n ...PolicyHandle\n }\n }\n }\n': { return: PoliciesHandleQuery; variables: PoliciesHandleQueryVariables; }; - "#graphql\n fragment PolicyIndex on ShopPolicy {\n id\n title\n handle\n }\n\n query PoliciesIndex {\n shop {\n privacyPolicy {\n ...PolicyIndex\n }\n shippingPolicy {\n ...PolicyIndex\n }\n termsOfService {\n ...PolicyIndex\n }\n refundPolicy {\n ...PolicyIndex\n }\n subscriptionPolicy {\n id\n title\n handle\n }\n }\n }\n": { + '#graphql\n fragment PolicyIndex on ShopPolicy {\n id\n title\n handle\n }\n\n query PoliciesIndex {\n shop {\n privacyPolicy {\n ...PolicyIndex\n }\n shippingPolicy {\n ...PolicyIndex\n }\n termsOfService {\n ...PolicyIndex\n }\n refundPolicy {\n ...PolicyIndex\n }\n subscriptionPolicy {\n id\n title\n handle\n }\n }\n }\n': { return: PoliciesIndexQuery; variables: PoliciesIndexQueryVariables; }; - "#graphql\n query sitemaps($urlLimits: Int, $language: LanguageCode)\n @inContext(language: $language) {\n products(\n first: $urlLimits\n query: \"published_status:'online_store:visible'\"\n ) {\n nodes {\n updatedAt\n handle\n onlineStoreUrl\n title\n featuredImage {\n url\n altText\n }\n }\n }\n collections(\n first: $urlLimits\n query: \"published_status:'online_store:visible'\"\n ) {\n nodes {\n updatedAt\n handle\n onlineStoreUrl\n }\n }\n pages(first: $urlLimits, query: \"published_status:'published'\") {\n nodes {\n updatedAt\n handle\n onlineStoreUrl\n }\n }\n }\n": { + '#graphql\n query sitemaps($urlLimits: Int, $language: LanguageCode)\n @inContext(language: $language) {\n products(\n first: $urlLimits\n query: "published_status:\'online_store:visible\'"\n ) {\n nodes {\n updatedAt\n handle\n onlineStoreUrl\n title\n featuredImage {\n url\n altText\n }\n }\n }\n collections(\n first: $urlLimits\n query: "published_status:\'online_store:visible\'"\n ) {\n nodes {\n updatedAt\n handle\n onlineStoreUrl\n }\n }\n pages(first: $urlLimits, query: "published_status:\'published\'") {\n nodes {\n updatedAt\n handle\n onlineStoreUrl\n }\n }\n }\n': { return: SitemapsQuery; variables: SitemapsQueryVariables; }; @@ -1385,7 +1385,7 @@ interface GeneratedQueryTypes { interface GeneratedMutationTypes {} -declare module "@shopify/hydrogen" { +declare module '@shopify/hydrogen' { interface StorefrontQueries extends GeneratedQueryTypes {} interface StorefrontMutations extends GeneratedMutationTypes {} }