@gfed-medusa/sf-lib-common 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +38 -0
- package/dist/apollo-client-BuznVAE4.js +66 -0
- package/dist/apollo-client-BuznVAE4.js.map +1 -0
- package/dist/cart-CLJvIUQC.js +103 -0
- package/dist/cart-CLJvIUQC.js.map +1 -0
- package/dist/cart-D99u8SUJ.js +16 -0
- package/dist/cart-D99u8SUJ.js.map +1 -0
- package/dist/cart-XQIczSA1.js +42 -0
- package/dist/cart-XQIczSA1.js.map +1 -0
- package/dist/cart-button-NgoZb9LI.js +12 -0
- package/dist/cart-button-NgoZb9LI.js.map +1 -0
- package/dist/cart-dropdown-_ZpvhX--.js +195 -0
- package/dist/cart-dropdown-_ZpvhX--.js.map +1 -0
- package/dist/cart-p3ffQQ5R.js +142 -0
- package/dist/cart-p3ffQQ5R.js.map +1 -0
- package/dist/categories-BCbIwAcV.js +16 -0
- package/dist/categories-BCbIwAcV.js.map +1 -0
- package/dist/collections-Buw8B8l9.js +20 -0
- package/dist/collections-Buw8B8l9.js.map +1 -0
- package/dist/collections-Dkcq21tC.js +22 -0
- package/dist/collections-Dkcq21tC.js.map +1 -0
- package/dist/components/breadcrumbs/index.d.ts +22 -0
- package/dist/components/breadcrumbs/index.d.ts.map +1 -0
- package/dist/components/breadcrumbs/index.js +54 -0
- package/dist/components/breadcrumbs/index.js.map +1 -0
- package/dist/components/cart-button/index.d.ts +7 -0
- package/dist/components/cart-button/index.d.ts.map +1 -0
- package/dist/components/cart-button/index.js +18 -0
- package/dist/components/cart-dropdown/index.d.ts +12 -0
- package/dist/components/cart-dropdown/index.d.ts.map +1 -0
- package/dist/components/cart-dropdown/index.js +19 -0
- package/dist/components/cart-mismatch-banner/index.d.ts +11 -0
- package/dist/components/cart-mismatch-banner/index.d.ts.map +1 -0
- package/dist/components/cart-mismatch-banner/index.js +55 -0
- package/dist/components/cart-mismatch-banner/index.js.map +1 -0
- package/dist/components/country-select/index.d.ts +14 -0
- package/dist/components/country-select/index.d.ts.map +1 -0
- package/dist/components/country-select/index.js +31 -0
- package/dist/components/country-select/index.js.map +1 -0
- package/dist/components/delete-button/index.d.ts +15 -0
- package/dist/components/delete-button/index.d.ts.map +1 -0
- package/dist/components/delete-button/index.js +12 -0
- package/dist/components/error-message/index.d.ts +13 -0
- package/dist/components/error-message/index.d.ts.map +1 -0
- package/dist/components/error-message/index.js +15 -0
- package/dist/components/error-message/index.js.map +1 -0
- package/dist/components/footer/index.d.ts +7 -0
- package/dist/components/footer/index.d.ts.map +1 -0
- package/dist/components/footer/index.js +115 -0
- package/dist/components/footer/index.js.map +1 -0
- package/dist/components/free-shipping-price-nudge/index.d.ts +17 -0
- package/dist/components/free-shipping-price-nudge/index.d.ts.map +1 -0
- package/dist/components/free-shipping-price-nudge/index.js +182 -0
- package/dist/components/free-shipping-price-nudge/index.js.map +1 -0
- package/dist/components/interactive-link/index.d.ts +17 -0
- package/dist/components/interactive-link/index.d.ts.map +1 -0
- package/dist/components/interactive-link/index.js +25 -0
- package/dist/components/interactive-link/index.js.map +1 -0
- package/dist/components/layout-country-select/index.d.ts +16 -0
- package/dist/components/layout-country-select/index.d.ts.map +1 -0
- package/dist/components/layout-country-select/index.js +14 -0
- package/dist/components/line-item-options/index.d.ts +17 -0
- package/dist/components/line-item-options/index.d.ts.map +1 -0
- package/dist/components/line-item-options/index.js +3 -0
- package/dist/components/line-item-price/index.d.ts +17 -0
- package/dist/components/line-item-price/index.d.ts.map +1 -0
- package/dist/components/line-item-price/index.js +3 -0
- package/dist/components/localized-client-link/index.d.ts +24 -0
- package/dist/components/localized-client-link/index.d.ts.map +1 -0
- package/dist/components/localized-client-link/index.js +5 -0
- package/dist/components/modal/index.d.ts +39 -0
- package/dist/components/modal/index.d.ts.map +1 -0
- package/dist/components/modal/index.js +4 -0
- package/dist/components/nav/index.d.ts +7 -0
- package/dist/components/nav/index.d.ts.map +1 -0
- package/dist/components/nav/index.js +85 -0
- package/dist/components/nav/index.js.map +1 -0
- package/dist/components/portable-text/index.d.ts +13 -0
- package/dist/components/portable-text/index.d.ts.map +1 -0
- package/dist/components/portable-text/index.js +3 -0
- package/dist/components/preview-price/index.d.ts +12 -0
- package/dist/components/preview-price/index.d.ts.map +1 -0
- package/dist/components/preview-price/index.js +3 -0
- package/dist/components/product-card/index.d.ts +65 -0
- package/dist/components/product-card/index.d.ts.map +1 -0
- package/dist/components/product-card/index.js +146 -0
- package/dist/components/product-card/index.js.map +1 -0
- package/dist/components/product-preview/index.d.ts +15 -0
- package/dist/components/product-preview/index.d.ts.map +1 -0
- package/dist/components/product-preview/index.js +38 -0
- package/dist/components/product-preview/index.js.map +1 -0
- package/dist/components/search-modal/index.d.ts +12 -0
- package/dist/components/search-modal/index.d.ts.map +1 -0
- package/dist/components/search-modal/index.js +12 -0
- package/dist/components/side-menu/index.d.ts +12 -0
- package/dist/components/side-menu/index.d.ts.map +1 -0
- package/dist/components/side-menu/index.js +16 -0
- package/dist/components/submit-button/index.d.ts +20 -0
- package/dist/components/submit-button/index.d.ts.map +1 -0
- package/dist/components/submit-button/index.js +24 -0
- package/dist/components/submit-button/index.js.map +1 -0
- package/dist/components/thumbnail/index.d.ts +15 -0
- package/dist/components/thumbnail/index.d.ts.map +1 -0
- package/dist/components/thumbnail/index.js +3 -0
- package/dist/cookies-DANAjt8U.js +38 -0
- package/dist/cookies-DANAjt8U.js.map +1 -0
- package/dist/customer-GZZNI4eh.js +25 -0
- package/dist/customer-GZZNI4eh.js.map +1 -0
- package/dist/data-types-C_rGnTUp.js +10 -0
- package/dist/data-types-C_rGnTUp.js.map +1 -0
- package/dist/delete-button-Bfog7z-I.js +28 -0
- package/dist/delete-button-Bfog7z-I.js.map +1 -0
- package/dist/footer-BqaZhjlE.js +76 -0
- package/dist/footer-BqaZhjlE.js.map +1 -0
- package/dist/footer-fWFeFSUp.js +16 -0
- package/dist/footer-fWFeFSUp.js.map +1 -0
- package/dist/get-percentage-diff-CxGe_n9N.js +8 -0
- package/dist/get-percentage-diff-CxGe_n9N.js.map +1 -0
- package/dist/get-product-price-DxBbPmOZ.js +47 -0
- package/dist/get-product-price-DxBbPmOZ.js.map +1 -0
- package/dist/graphql-BWZPPI_N.d.ts +1368 -0
- package/dist/graphql-BWZPPI_N.d.ts.map +1 -0
- package/dist/layout-country-select-DrwpoVMM.js +90 -0
- package/dist/layout-country-select-DrwpoVMM.js.map +1 -0
- package/dist/lib/config/medusa.d.ts +7 -0
- package/dist/lib/config/medusa.d.ts.map +1 -0
- package/dist/lib/config/medusa.js +3 -0
- package/dist/lib/context/apollo-context.d.ts +10 -0
- package/dist/lib/context/apollo-context.d.ts.map +1 -0
- package/dist/lib/context/apollo-context.js +18 -0
- package/dist/lib/context/apollo-context.js.map +1 -0
- package/dist/lib/context/modal-context.d.ts +20 -0
- package/dist/lib/context/modal-context.d.ts.map +1 -0
- package/dist/lib/context/modal-context.js +5 -0
- package/dist/lib/data/cart.d.ts +24 -0
- package/dist/lib/data/cart.d.ts.map +1 -0
- package/dist/lib/data/cart.js +13 -0
- package/dist/lib/data/categories.d.ts +19 -0
- package/dist/lib/data/categories.d.ts.map +1 -0
- package/dist/lib/data/categories.js +6 -0
- package/dist/lib/data/collections.d.ts +14 -0
- package/dist/lib/data/collections.d.ts.map +1 -0
- package/dist/lib/data/collections.js +8 -0
- package/dist/lib/data/cookies.d.ts +15 -0
- package/dist/lib/data/cookies.d.ts.map +1 -0
- package/dist/lib/data/cookies.js +3 -0
- package/dist/lib/data/customer.d.ts +7 -0
- package/dist/lib/data/customer.d.ts.map +1 -0
- package/dist/lib/data/customer.js +8 -0
- package/dist/lib/data/footer.d.ts +75 -0
- package/dist/lib/data/footer.d.ts.map +1 -0
- package/dist/lib/data/footer.js +5 -0
- package/dist/lib/data/regions.d.ts +8 -0
- package/dist/lib/data/regions.d.ts.map +1 -0
- package/dist/lib/data/regions.js +5 -0
- package/dist/lib/data/search.d.ts +9 -0
- package/dist/lib/data/search.d.ts.map +1 -0
- package/dist/lib/data/search.js +8 -0
- package/dist/lib/gql/apollo-client.d.ts +18 -0
- package/dist/lib/gql/apollo-client.d.ts.map +1 -0
- package/dist/lib/gql/apollo-client.js +3 -0
- package/dist/lib/gql/fragments/cart.d.ts +14 -0
- package/dist/lib/gql/fragments/cart.d.ts.map +1 -0
- package/dist/lib/gql/fragments/cart.js +4 -0
- package/dist/lib/gql/fragments/product.d.ts +13 -0
- package/dist/lib/gql/fragments/product.d.ts.map +1 -0
- package/dist/lib/gql/fragments/product.js +3 -0
- package/dist/lib/gql/mutations/cart.d.ts +9 -0
- package/dist/lib/gql/mutations/cart.d.ts.map +1 -0
- package/dist/lib/gql/mutations/cart.js +5 -0
- package/dist/lib/gql/mutations/customer.d.ts +1 -0
- package/dist/lib/gql/mutations/customer.js +1 -0
- package/dist/lib/gql/queries/cart.d.ts +7 -0
- package/dist/lib/gql/queries/cart.d.ts.map +1 -0
- package/dist/lib/gql/queries/cart.js +5 -0
- package/dist/lib/gql/queries/collections.d.ts +7 -0
- package/dist/lib/gql/queries/collections.d.ts.map +1 -0
- package/dist/lib/gql/queries/collections.js +4 -0
- package/dist/lib/gql/queries/footer.d.ts +7 -0
- package/dist/lib/gql/queries/footer.d.ts.map +1 -0
- package/dist/lib/gql/queries/footer.js +3 -0
- package/dist/lib/gql/queries/product.d.ts +8 -0
- package/dist/lib/gql/queries/product.d.ts.map +1 -0
- package/dist/lib/gql/queries/product.js +4 -0
- package/dist/lib/hooks/use-apollo.d.ts +7 -0
- package/dist/lib/hooks/use-apollo.d.ts.map +1 -0
- package/dist/lib/hooks/use-apollo.js +4 -0
- package/dist/lib/hooks/use-search.d.ts +22 -0
- package/dist/lib/hooks/use-search.d.ts.map +1 -0
- package/dist/lib/hooks/use-search.js +9 -0
- package/dist/lib/hooks/use-toggle-state.d.ts +2 -0
- package/dist/lib/hooks/use-toggle-state.js +43 -0
- package/dist/lib/hooks/use-toggle-state.js.map +1 -0
- package/dist/lib/utils/data-types.d.ts +7 -0
- package/dist/lib/utils/data-types.d.ts.map +1 -0
- package/dist/lib/utils/data-types.js +3 -0
- package/dist/lib/utils/env.d.ts +5 -0
- package/dist/lib/utils/env.d.ts.map +1 -0
- package/dist/lib/utils/env.js +8 -0
- package/dist/lib/utils/env.js.map +1 -0
- package/dist/lib/utils/get-percentage-diff.d.ts +5 -0
- package/dist/lib/utils/get-percentage-diff.d.ts.map +1 -0
- package/dist/lib/utils/get-percentage-diff.js +3 -0
- package/dist/lib/utils/get-product-price.d.ts +42 -0
- package/dist/lib/utils/get-product-price.d.ts.map +1 -0
- package/dist/lib/utils/get-product-price.js +3 -0
- package/dist/lib/utils/medusa-error.d.ts +5 -0
- package/dist/lib/utils/medusa-error.d.ts.map +1 -0
- package/dist/lib/utils/medusa-error.js +3 -0
- package/dist/lib/utils/money.d.ts +18 -0
- package/dist/lib/utils/money.d.ts.map +1 -0
- package/dist/lib/utils/money.js +3 -0
- package/dist/lib/utils/normalize-functions.d.ts +8 -0
- package/dist/lib/utils/normalize-functions.d.ts.map +1 -0
- package/dist/lib/utils/normalize-functions.js +3 -0
- package/dist/line-item-options-B3rbud31.js +16 -0
- package/dist/line-item-options-B3rbud31.js.map +1 -0
- package/dist/line-item-price-BBlC_T8m.js +47 -0
- package/dist/line-item-price-BBlC_T8m.js.map +1 -0
- package/dist/localized-client-link-C3mE37Ub.js +22 -0
- package/dist/localized-client-link-C3mE37Ub.js.map +1 -0
- package/dist/medusa-C1jfAM1B.js +12 -0
- package/dist/medusa-C1jfAM1B.js.map +1 -0
- package/dist/medusa-error-Cf_eEPhR.js +17 -0
- package/dist/medusa-error-Cf_eEPhR.js.map +1 -0
- package/dist/modal-C-crvjtF.js +102 -0
- package/dist/modal-C-crvjtF.js.map +1 -0
- package/dist/modal-context-D-ugwFUM.js +20 -0
- package/dist/modal-context-D-ugwFUM.js.map +1 -0
- package/dist/money-BrwiFQUW.js +15 -0
- package/dist/money-BrwiFQUW.js.map +1 -0
- package/dist/normalize-functions-BIuKc_-k.js +15 -0
- package/dist/normalize-functions-BIuKc_-k.js.map +1 -0
- package/dist/portable-text-DSWXgovn.js +330 -0
- package/dist/portable-text-DSWXgovn.js.map +1 -0
- package/dist/preview-price-D_GqXrT4.js +20 -0
- package/dist/preview-price-D_GqXrT4.js.map +1 -0
- package/dist/prices-IWR3xm6o.d.ts +20 -0
- package/dist/prices-IWR3xm6o.d.ts.map +1 -0
- package/dist/product-Cgtch-vz.js +90 -0
- package/dist/product-Cgtch-vz.js.map +1 -0
- package/dist/product-DMWvgZkb.js +47 -0
- package/dist/product-DMWvgZkb.js.map +1 -0
- package/dist/regions-CF6DH579.js +34 -0
- package/dist/regions-CF6DH579.js.map +1 -0
- package/dist/search-CKhI5RO4.js +21 -0
- package/dist/search-CKhI5RO4.js.map +1 -0
- package/dist/search-modal-D1tgUDXQ.js +137 -0
- package/dist/search-modal-D1tgUDXQ.js.map +1 -0
- package/dist/side-menu-ByDXpZJO.js +97 -0
- package/dist/side-menu-ByDXpZJO.js.map +1 -0
- package/dist/thumbnail-CXIliWAD.js +44 -0
- package/dist/thumbnail-CXIliWAD.js.map +1 -0
- package/dist/types/graphql.d.ts +2 -0
- package/dist/types/graphql.js +14516 -0
- package/dist/types/graphql.js.map +1 -0
- package/dist/types/prices.d.ts +2 -0
- package/dist/types/prices.js +1 -0
- package/dist/use-apollo-q4uz05i-.js +11 -0
- package/dist/use-apollo-q4uz05i-.js.map +1 -0
- package/dist/use-search-BTEnFlC0.js +67 -0
- package/dist/use-search-BTEnFlC0.js.map +1 -0
- package/dist/use-toggle-state-zIAKMNfR.d.ts +23 -0
- package/dist/use-toggle-state-zIAKMNfR.d.ts.map +1 -0
- package/package.json +94 -0
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import "../../apollo-client-BuznVAE4.js";
|
|
2
|
+
import "../../product-Cgtch-vz.js";
|
|
3
|
+
import { t as LocalizedClientLink } from "../../localized-client-link-C3mE37Ub.js";
|
|
4
|
+
import "../../product-DMWvgZkb.js";
|
|
5
|
+
import { t as listCategories } from "../../categories-BCbIwAcV.js";
|
|
6
|
+
import "../../collections-Buw8B8l9.js";
|
|
7
|
+
import { t as listCollections } from "../../collections-Dkcq21tC.js";
|
|
8
|
+
import "../../footer-BqaZhjlE.js";
|
|
9
|
+
import { t as getFooterContent } from "../../footer-fWFeFSUp.js";
|
|
10
|
+
import { t as PortableText } from "../../portable-text-DSWXgovn.js";
|
|
11
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
12
|
+
import { Text, clx } from "@medusajs/ui";
|
|
13
|
+
|
|
14
|
+
//#region src/components/footer/index.tsx
|
|
15
|
+
async function Footer() {
|
|
16
|
+
const { collections } = await listCollections();
|
|
17
|
+
const productCategories = await listCategories();
|
|
18
|
+
const footerContent = await getFooterContent();
|
|
19
|
+
return /* @__PURE__ */ jsx("footer", {
|
|
20
|
+
className: "border-ui-border-base w-full border-t",
|
|
21
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
22
|
+
className: "content-container flex w-full flex-col",
|
|
23
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
24
|
+
className: "xsmall:flex-row flex flex-col items-start justify-between gap-y-6 py-40",
|
|
25
|
+
children: [/* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(LocalizedClientLink, {
|
|
26
|
+
href: "/",
|
|
27
|
+
className: "txt-compact-xlarge-plus text-ui-fg-subtle hover:text-ui-fg-base uppercase",
|
|
28
|
+
children: footerContent?.storeName || "Medusa Store"
|
|
29
|
+
}) }), /* @__PURE__ */ jsxs("div", {
|
|
30
|
+
className: "text-small-regular grid grid-cols-2 gap-10 sm:grid-cols-3 md:gap-x-16",
|
|
31
|
+
children: [
|
|
32
|
+
productCategories && productCategories?.length > 0 && /* @__PURE__ */ jsxs("div", {
|
|
33
|
+
className: "flex flex-col gap-y-2",
|
|
34
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
35
|
+
className: "txt-ui-fg-base txt-small-plus",
|
|
36
|
+
children: "Categories"
|
|
37
|
+
}), /* @__PURE__ */ jsx("ul", {
|
|
38
|
+
className: "grid grid-cols-1 gap-2",
|
|
39
|
+
"data-testid": "footer-categories",
|
|
40
|
+
children: productCategories?.slice(0, 6).map((c) => {
|
|
41
|
+
if (c.parentCategory) return;
|
|
42
|
+
const children = c.categoryChildren?.map((child) => ({
|
|
43
|
+
name: child.name,
|
|
44
|
+
handle: child.handle,
|
|
45
|
+
id: child.id
|
|
46
|
+
})) || null;
|
|
47
|
+
return /* @__PURE__ */ jsxs("li", {
|
|
48
|
+
className: "txt-small text-ui-fg-subtle flex flex-col gap-2",
|
|
49
|
+
children: [/* @__PURE__ */ jsx(LocalizedClientLink, {
|
|
50
|
+
className: clx("hover:text-ui-fg-base", children && "txt-small-plus"),
|
|
51
|
+
href: `/categories/${c.handle}`,
|
|
52
|
+
"data-testid": "category-link",
|
|
53
|
+
children: c.name
|
|
54
|
+
}), children && /* @__PURE__ */ jsx("ul", {
|
|
55
|
+
className: "ml-3 grid grid-cols-1 gap-2",
|
|
56
|
+
children: children && children.map((child) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(LocalizedClientLink, {
|
|
57
|
+
className: "hover:text-ui-fg-base",
|
|
58
|
+
href: `/categories/${child.handle}`,
|
|
59
|
+
"data-testid": "category-link",
|
|
60
|
+
children: child.name
|
|
61
|
+
}) }, child.id))
|
|
62
|
+
})]
|
|
63
|
+
}, c.id);
|
|
64
|
+
})
|
|
65
|
+
})]
|
|
66
|
+
}),
|
|
67
|
+
collections && collections.length > 0 && /* @__PURE__ */ jsxs("div", {
|
|
68
|
+
className: "flex flex-col gap-y-2",
|
|
69
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
70
|
+
className: "txt-ui-fg-base txt-small-plus",
|
|
71
|
+
children: "Collections"
|
|
72
|
+
}), /* @__PURE__ */ jsx("ul", {
|
|
73
|
+
className: clx("txt-small text-ui-fg-subtle grid grid-cols-1 gap-2", { "grid-cols-2": (collections?.length || 0) > 3 }),
|
|
74
|
+
children: collections?.slice(0, 6).map((c) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(LocalizedClientLink, {
|
|
75
|
+
className: "hover:text-ui-fg-base",
|
|
76
|
+
href: `/collections/${c.handle}`,
|
|
77
|
+
children: c.title
|
|
78
|
+
}) }, c.id))
|
|
79
|
+
})]
|
|
80
|
+
}),
|
|
81
|
+
/* @__PURE__ */ jsxs("div", {
|
|
82
|
+
className: "flex flex-col gap-y-2",
|
|
83
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
84
|
+
className: "txt-ui-fg-base txt-small-plus",
|
|
85
|
+
children: "Medusa"
|
|
86
|
+
}), /* @__PURE__ */ jsx("ul", {
|
|
87
|
+
className: "txt-small text-ui-fg-subtle grid grid-cols-1 gap-y-2",
|
|
88
|
+
children: footerContent?.social && footerContent?.social.map((social, index) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx("a", {
|
|
89
|
+
href: social.url,
|
|
90
|
+
target: "_blank",
|
|
91
|
+
rel: "noreferrer",
|
|
92
|
+
className: "hover:text-ui-fg-base capitalize",
|
|
93
|
+
children: social.text
|
|
94
|
+
}) }, index))
|
|
95
|
+
})]
|
|
96
|
+
})
|
|
97
|
+
]
|
|
98
|
+
})]
|
|
99
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
100
|
+
className: "text-ui-fg-muted mb-16 flex w-full flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",
|
|
101
|
+
children: [/* @__PURE__ */ jsxs(Text, {
|
|
102
|
+
className: "txt-compact-small",
|
|
103
|
+
children: ["©", `${(/* @__PURE__ */ new Date()).getFullYear()} ${footerContent?.copyright}`]
|
|
104
|
+
}), /* @__PURE__ */ jsx("div", {
|
|
105
|
+
className: "flex items-center gap-4",
|
|
106
|
+
children: footerContent?.poweredByCta && /* @__PURE__ */ jsx(PortableText, { value: footerContent.poweredByCta.text })
|
|
107
|
+
})]
|
|
108
|
+
})]
|
|
109
|
+
})
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
//#endregion
|
|
114
|
+
export { Footer as default };
|
|
115
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/components/footer/index.tsx"],"sourcesContent":["import { Text, clx } from '@medusajs/ui';\n\nimport { listCategories } from '@/lib/data/categories';\nimport { listCollections } from '@/lib/data/collections';\nimport { getFooterContent } from '@/lib/data/footer';\nimport { RichTextBlock } from '@/types/graphql';\n\nimport { LocalizedClientLink } from '../localized-client-link';\nimport { PortableText } from '../portable-text';\n\nexport default async function Footer() {\n const { collections } = await listCollections();\n const productCategories = await listCategories();\n const footerContent = await getFooterContent();\n\n return (\n <footer className=\"border-ui-border-base w-full border-t\">\n <div className=\"content-container flex w-full flex-col\">\n <div className=\"xsmall:flex-row flex flex-col items-start justify-between gap-y-6 py-40\">\n <div>\n <LocalizedClientLink\n href=\"/\"\n className=\"txt-compact-xlarge-plus text-ui-fg-subtle hover:text-ui-fg-base uppercase\"\n >\n {footerContent?.storeName || 'Medusa Store'}\n </LocalizedClientLink>\n </div>\n <div className=\"text-small-regular grid grid-cols-2 gap-10 sm:grid-cols-3 md:gap-x-16\">\n {productCategories && productCategories?.length > 0 && (\n <div className=\"flex flex-col gap-y-2\">\n <span className=\"txt-ui-fg-base txt-small-plus\">\n Categories\n </span>\n <ul\n className=\"grid grid-cols-1 gap-2\"\n data-testid=\"footer-categories\"\n >\n {productCategories?.slice(0, 6).map((c) => {\n if (c.parentCategory) {\n return;\n }\n\n const children =\n c.categoryChildren?.map((child) => ({\n name: child.name,\n handle: child.handle,\n id: child.id,\n })) || null;\n\n return (\n <li\n className=\"txt-small text-ui-fg-subtle flex flex-col gap-2\"\n key={c.id}\n >\n <LocalizedClientLink\n className={clx(\n 'hover:text-ui-fg-base',\n children && 'txt-small-plus'\n )}\n href={`/categories/${c.handle}`}\n data-testid=\"category-link\"\n >\n {c.name}\n </LocalizedClientLink>\n {children && (\n <ul className=\"ml-3 grid grid-cols-1 gap-2\">\n {children &&\n children.map((child) => (\n <li key={child.id}>\n <LocalizedClientLink\n className=\"hover:text-ui-fg-base\"\n href={`/categories/${child.handle}`}\n data-testid=\"category-link\"\n >\n {child.name}\n </LocalizedClientLink>\n </li>\n ))}\n </ul>\n )}\n </li>\n );\n })}\n </ul>\n </div>\n )}\n {collections && collections.length > 0 && (\n <div className=\"flex flex-col gap-y-2\">\n <span className=\"txt-ui-fg-base txt-small-plus\">\n Collections\n </span>\n <ul\n className={clx(\n 'txt-small text-ui-fg-subtle grid grid-cols-1 gap-2',\n {\n 'grid-cols-2': (collections?.length || 0) > 3,\n }\n )}\n >\n {collections?.slice(0, 6).map((c) => (\n <li key={c.id}>\n <LocalizedClientLink\n className=\"hover:text-ui-fg-base\"\n href={`/collections/${c.handle}`}\n >\n {c.title}\n </LocalizedClientLink>\n </li>\n ))}\n </ul>\n </div>\n )}\n <div className=\"flex flex-col gap-y-2\">\n <span className=\"txt-ui-fg-base txt-small-plus\">Medusa</span>\n <ul className=\"txt-small text-ui-fg-subtle grid grid-cols-1 gap-y-2\">\n {footerContent?.social &&\n footerContent?.social.map(\n (social: { text: string; url: string }, index: number) => (\n <li key={index}>\n <a\n href={social.url}\n target=\"_blank\"\n rel=\"noreferrer\"\n className=\"hover:text-ui-fg-base capitalize\"\n >\n {social.text}\n </a>\n </li>\n )\n )}\n </ul>\n </div>\n </div>\n </div>\n <div className=\"text-ui-fg-muted mb-16 flex w-full flex-col gap-4 sm:flex-row sm:items-center sm:justify-between\">\n <Text className=\"txt-compact-small\">\n ©{`${new Date().getFullYear()} ${footerContent?.copyright}`}\n </Text>\n <div className=\"flex items-center gap-4\">\n {footerContent?.poweredByCta && (\n <PortableText\n value={footerContent.poweredByCta.text as RichTextBlock[]}\n />\n )}\n </div>\n </div>\n </div>\n </footer>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;AAUA,eAA8B,SAAS;CACrC,MAAM,EAAE,gBAAgB,MAAM,iBAAiB;CAC/C,MAAM,oBAAoB,MAAM,gBAAgB;CAChD,MAAM,gBAAgB,MAAM,kBAAkB;AAE9C,QACE,oBAAC;EAAO,WAAU;YAChB,qBAAC;GAAI,WAAU;cACb,qBAAC;IAAI,WAAU;eACb,oBAAC,mBACC,oBAAC;KACC,MAAK;KACL,WAAU;eAET,eAAe,aAAa;MACT,GAClB,EACN,qBAAC;KAAI,WAAU;;MACZ,qBAAqB,mBAAmB,SAAS,KAChD,qBAAC;OAAI,WAAU;kBACb,oBAAC;QAAK,WAAU;kBAAgC;SAEzC,EACP,oBAAC;QACC,WAAU;QACV,eAAY;kBAEX,mBAAmB,MAAM,GAAG,EAAE,CAAC,KAAK,MAAM;AACzC,aAAI,EAAE,eACJ;SAGF,MAAM,WACJ,EAAE,kBAAkB,KAAK,WAAW;UAClC,MAAM,MAAM;UACZ,QAAQ,MAAM;UACd,IAAI,MAAM;UACX,EAAE,IAAI;AAET,gBACE,qBAAC;UACC,WAAU;qBAGV,oBAAC;WACC,WAAW,IACT,yBACA,YAAY,iBACb;WACD,MAAM,eAAe,EAAE;WACvB,eAAY;qBAEX,EAAE;YACiB,EACrB,YACC,oBAAC;WAAG,WAAU;qBACX,YACC,SAAS,KAAK,UACZ,oBAAC,kBACC,oBAAC;YACC,WAAU;YACV,MAAM,eAAe,MAAM;YAC3B,eAAY;sBAEX,MAAM;aACa,IAPf,MAAM,GAQV,CACL;YACD;YA1BF,EAAE,GA4BJ;UAEP;SACC;QACD;MAEP,eAAe,YAAY,SAAS,KACnC,qBAAC;OAAI,WAAU;kBACb,oBAAC;QAAK,WAAU;kBAAgC;SAEzC,EACP,oBAAC;QACC,WAAW,IACT,sDACA,EACE,gBAAgB,aAAa,UAAU,KAAK,GAC7C,CACF;kBAEA,aAAa,MAAM,GAAG,EAAE,CAAC,KAAK,MAC7B,oBAAC,kBACC,oBAAC;SACC,WAAU;SACV,MAAM,gBAAgB,EAAE;mBAEvB,EAAE;UACiB,IANf,EAAE,GAON,CACL;SACC;QACD;MAER,qBAAC;OAAI,WAAU;kBACb,oBAAC;QAAK,WAAU;kBAAgC;SAAa,EAC7D,oBAAC;QAAG,WAAU;kBACX,eAAe,UACd,eAAe,OAAO,KACnB,QAAuC,UACtC,oBAAC,kBACC,oBAAC;SACC,MAAM,OAAO;SACb,QAAO;SACP,KAAI;SACJ,WAAU;mBAET,OAAO;UACN,IARG,MASJ,CAER;SACA;QACD;;MACF;KACF,EACN,qBAAC;IAAI,WAAU;eACb,qBAAC;KAAK,WAAU;gBAAoB,KAChC,oBAAG,IAAI,MAAM,EAAC,aAAa,CAAC,GAAG,eAAe;MAC3C,EACP,oBAAC;KAAI,WAAU;eACZ,eAAe,gBACd,oBAAC,gBACC,OAAO,cAAc,aAAa,OAClC;MAEA;KACF;IACF;GACC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { p as Cart } from "../../graphql-BWZPPI_N.js";
|
|
2
|
+
import * as react_jsx_runtime6 from "react/jsx-runtime";
|
|
3
|
+
import { StoreCartShippingOption } from "@medusajs/types";
|
|
4
|
+
|
|
5
|
+
//#region src/components/free-shipping-price-nudge/index.d.ts
|
|
6
|
+
declare function ShippingPriceNudge({
|
|
7
|
+
variant,
|
|
8
|
+
cart,
|
|
9
|
+
shippingOptions
|
|
10
|
+
}: {
|
|
11
|
+
variant?: 'popup' | 'inline';
|
|
12
|
+
cart: Cart;
|
|
13
|
+
shippingOptions: StoreCartShippingOption[];
|
|
14
|
+
}): react_jsx_runtime6.JSX.Element | undefined;
|
|
15
|
+
//#endregion
|
|
16
|
+
export { ShippingPriceNudge };
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/free-shipping-price-nudge/index.tsx"],"sourcesContent":[],"mappings":";;;;;iBA0ES,kBAAA;;;;;;QAMD;EANC,eAAA,EAOU,uBAPQ,EAAA;CACzB,CAAA,EAOD,kBAAA,CAAA,GAAA,CAAA,OAAA,GAPC,SAAA"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { t as convertToLocale } from "../../money-BrwiFQUW.js";
|
|
4
|
+
import { t as LocalizedClientLink } from "../../localized-client-link-C3mE37Ub.js";
|
|
5
|
+
import { useState } from "react";
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
import { Button, clx } from "@medusajs/ui";
|
|
8
|
+
import { CheckCircleSolid, XMark } from "@medusajs/icons";
|
|
9
|
+
|
|
10
|
+
//#region src/components/free-shipping-price-nudge/index.tsx
|
|
11
|
+
const computeTarget = (cart, price) => {
|
|
12
|
+
const priceRule = (price.price_rules || []).find((pr) => pr.attribute === "item_total");
|
|
13
|
+
const currentAmount = cart.itemTotal;
|
|
14
|
+
const targetAmount = parseFloat(priceRule.value);
|
|
15
|
+
if (priceRule.operator === "gt") return {
|
|
16
|
+
current_amount: currentAmount,
|
|
17
|
+
target_amount: targetAmount,
|
|
18
|
+
target_reached: currentAmount > targetAmount,
|
|
19
|
+
target_remaining: currentAmount > targetAmount ? 0 : targetAmount + 1 - currentAmount,
|
|
20
|
+
remaining_percentage: currentAmount / targetAmount * 100
|
|
21
|
+
};
|
|
22
|
+
else if (priceRule.operator === "gte") return {
|
|
23
|
+
current_amount: currentAmount,
|
|
24
|
+
target_amount: targetAmount,
|
|
25
|
+
target_reached: currentAmount > targetAmount,
|
|
26
|
+
target_remaining: currentAmount > targetAmount ? 0 : targetAmount - currentAmount,
|
|
27
|
+
remaining_percentage: currentAmount / targetAmount * 100
|
|
28
|
+
};
|
|
29
|
+
else if (priceRule.operator === "lt") return {
|
|
30
|
+
current_amount: currentAmount,
|
|
31
|
+
target_amount: targetAmount,
|
|
32
|
+
target_reached: targetAmount > currentAmount,
|
|
33
|
+
target_remaining: targetAmount > currentAmount ? 0 : currentAmount + 1 - targetAmount,
|
|
34
|
+
remaining_percentage: currentAmount / targetAmount * 100
|
|
35
|
+
};
|
|
36
|
+
else if (priceRule.operator === "lte") return {
|
|
37
|
+
current_amount: currentAmount,
|
|
38
|
+
target_amount: targetAmount,
|
|
39
|
+
target_reached: targetAmount > currentAmount,
|
|
40
|
+
target_remaining: targetAmount > currentAmount ? 0 : currentAmount - targetAmount,
|
|
41
|
+
remaining_percentage: currentAmount / targetAmount * 100
|
|
42
|
+
};
|
|
43
|
+
else return {
|
|
44
|
+
current_amount: currentAmount,
|
|
45
|
+
target_amount: targetAmount,
|
|
46
|
+
target_reached: currentAmount === targetAmount,
|
|
47
|
+
target_remaining: targetAmount > currentAmount ? 0 : targetAmount - currentAmount,
|
|
48
|
+
remaining_percentage: currentAmount / targetAmount * 100
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
function ShippingPriceNudge({ variant = "inline", cart, shippingOptions }) {
|
|
52
|
+
if (!cart || !shippingOptions?.length) return;
|
|
53
|
+
const freeShippingPrice = shippingOptions.map((shippingOption) => {
|
|
54
|
+
if (!shippingOption.calculated_price) return;
|
|
55
|
+
return shippingOption.prices.filter((price) => price.currency_code === cart.currencyCode && (price.price_rules || []).some((priceRule) => priceRule.attribute === "item_total")).map((price) => {
|
|
56
|
+
return {
|
|
57
|
+
...price,
|
|
58
|
+
shipping_option_id: shippingOption.id,
|
|
59
|
+
...computeTarget(cart, price)
|
|
60
|
+
};
|
|
61
|
+
});
|
|
62
|
+
}).flat(1).filter(Boolean).find((price) => price?.amount === 0);
|
|
63
|
+
if (!freeShippingPrice) return;
|
|
64
|
+
if (variant === "popup") return /* @__PURE__ */ jsx(FreeShippingPopup, {
|
|
65
|
+
cart,
|
|
66
|
+
price: freeShippingPrice
|
|
67
|
+
});
|
|
68
|
+
else return /* @__PURE__ */ jsx(FreeShippingInline, {
|
|
69
|
+
cart,
|
|
70
|
+
price: freeShippingPrice
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
function FreeShippingInline({ cart, price }) {
|
|
74
|
+
return /* @__PURE__ */ jsx("div", {
|
|
75
|
+
className: "rounded-lg border bg-neutral-100 p-2",
|
|
76
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
77
|
+
className: "space-y-1.5",
|
|
78
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
79
|
+
className: "flex justify-between text-xs text-neutral-600",
|
|
80
|
+
children: [/* @__PURE__ */ jsx("div", { children: price.target_reached ? /* @__PURE__ */ jsxs("div", {
|
|
81
|
+
className: "flex items-center gap-1.5",
|
|
82
|
+
children: [
|
|
83
|
+
/* @__PURE__ */ jsx(CheckCircleSolid, { className: "inline-block text-green-500" }),
|
|
84
|
+
" ",
|
|
85
|
+
"Free Shipping unlocked!"
|
|
86
|
+
]
|
|
87
|
+
}) : `Unlock Free Shipping` }), /* @__PURE__ */ jsxs("div", {
|
|
88
|
+
className: clx("visible", { "invisible opacity-0": price.target_reached }),
|
|
89
|
+
children: [
|
|
90
|
+
"Only",
|
|
91
|
+
" ",
|
|
92
|
+
/* @__PURE__ */ jsx("span", {
|
|
93
|
+
className: "text-neutral-950",
|
|
94
|
+
children: convertToLocale({
|
|
95
|
+
amount: price.target_remaining,
|
|
96
|
+
currency_code: cart.currencyCode
|
|
97
|
+
})
|
|
98
|
+
}),
|
|
99
|
+
" ",
|
|
100
|
+
"away"
|
|
101
|
+
]
|
|
102
|
+
})]
|
|
103
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
104
|
+
className: "flex justify-between gap-1",
|
|
105
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
106
|
+
className: clx("h-1 max-w-full rounded-full bg-gradient-to-r from-zinc-400 to-zinc-500 duration-500 ease-in-out", { "from-green-400 to-green-500": price.target_reached }),
|
|
107
|
+
style: { width: `${price.remaining_percentage}%` }
|
|
108
|
+
}), /* @__PURE__ */ jsx("div", { className: "h-1 w-fit flex-grow rounded-full bg-neutral-300" })]
|
|
109
|
+
})]
|
|
110
|
+
})
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
function FreeShippingPopup({ cart, price }) {
|
|
114
|
+
const [isClosed, setIsClosed] = useState(false);
|
|
115
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
116
|
+
className: clx("fixed right-5 bottom-5 z-10 flex flex-col items-end gap-2 transition-all duration-500 ease-in-out", {
|
|
117
|
+
"invisible opacity-0 delay-1000": price.target_reached,
|
|
118
|
+
"invisible opacity-0": isClosed,
|
|
119
|
+
"visible opacity-100": !price.target_reached && !isClosed
|
|
120
|
+
}),
|
|
121
|
+
children: [/* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(Button, {
|
|
122
|
+
className: "rounded-full border-none bg-neutral-900 p-2 text-[15px] shadow-none outline-none",
|
|
123
|
+
onClick: () => setIsClosed(true),
|
|
124
|
+
children: /* @__PURE__ */ jsx(XMark, {})
|
|
125
|
+
}) }), /* @__PURE__ */ jsxs("div", {
|
|
126
|
+
className: "w-[400px] rounded-lg bg-black p-6 text-white",
|
|
127
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
128
|
+
className: "pb-4",
|
|
129
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
130
|
+
className: "space-y-3",
|
|
131
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
132
|
+
className: "flex justify-between text-[15px] text-neutral-400",
|
|
133
|
+
children: [/* @__PURE__ */ jsx("div", { children: price.target_reached ? /* @__PURE__ */ jsxs("div", {
|
|
134
|
+
className: "flex items-center gap-1.5",
|
|
135
|
+
children: [
|
|
136
|
+
/* @__PURE__ */ jsx(CheckCircleSolid, { className: "inline-block text-green-500" }),
|
|
137
|
+
" ",
|
|
138
|
+
"Free Shipping unlocked!"
|
|
139
|
+
]
|
|
140
|
+
}) : `Unlock Free Shipping` }), /* @__PURE__ */ jsxs("div", {
|
|
141
|
+
className: clx("visible", { "invisible opacity-0": price.target_reached }),
|
|
142
|
+
children: [
|
|
143
|
+
"Only",
|
|
144
|
+
" ",
|
|
145
|
+
/* @__PURE__ */ jsx("span", {
|
|
146
|
+
className: "text-white",
|
|
147
|
+
children: convertToLocale({
|
|
148
|
+
amount: price.target_remaining,
|
|
149
|
+
currency_code: cart.currencyCode
|
|
150
|
+
})
|
|
151
|
+
}),
|
|
152
|
+
" ",
|
|
153
|
+
"away"
|
|
154
|
+
]
|
|
155
|
+
})]
|
|
156
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
157
|
+
className: "flex justify-between gap-1",
|
|
158
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
159
|
+
className: clx("h-1.5 max-w-full rounded-full bg-gradient-to-r from-zinc-400 to-zinc-500 duration-500 ease-in-out", { "from-green-400 to-green-500": price.target_reached }),
|
|
160
|
+
style: { width: `${price.remaining_percentage}%` }
|
|
161
|
+
}), /* @__PURE__ */ jsx("div", { className: "h-1.5 w-fit flex-grow rounded-full bg-zinc-600" })]
|
|
162
|
+
})]
|
|
163
|
+
})
|
|
164
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
165
|
+
className: "flex gap-3",
|
|
166
|
+
children: [/* @__PURE__ */ jsx(LocalizedClientLink, {
|
|
167
|
+
className: "rounded-2xl border-[1px] border-white bg-transparent px-4 py-2.5 text-[15px] shadow-none outline-none",
|
|
168
|
+
href: "/cart",
|
|
169
|
+
children: "View cart"
|
|
170
|
+
}), /* @__PURE__ */ jsx(LocalizedClientLink, {
|
|
171
|
+
className: "flex-grow rounded-2xl border-[1px] border-white bg-white px-4 py-2.5 text-center text-[15px] text-neutral-950 shadow-none outline-none",
|
|
172
|
+
href: "/store",
|
|
173
|
+
children: "View products"
|
|
174
|
+
})]
|
|
175
|
+
})]
|
|
176
|
+
})]
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
//#endregion
|
|
181
|
+
export { ShippingPriceNudge };
|
|
182
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/components/free-shipping-price-nudge/index.tsx"],"sourcesContent":["'use client';\n\nimport { useState } from 'react';\n\nimport { CheckCircleSolid, XMark } from '@medusajs/icons';\nimport {\n HttpTypes,\n StoreCartShippingOption,\n StorePrice,\n} from '@medusajs/types';\nimport { Button, clx } from '@medusajs/ui';\n\nimport { convertToLocale } from '@/lib/utils/money';\nimport { Cart } from '@/types/graphql';\nimport { StoreFreeShippingPrice } from '@/types/prices';\n\nimport { LocalizedClientLink } from '../localized-client-link';\n\nconst computeTarget = (cart: Cart, price: HttpTypes.StorePrice) => {\n const priceRule = (price.price_rules || []).find(\n (pr) => pr.attribute === 'item_total'\n )!;\n\n const currentAmount = cart.itemTotal;\n const targetAmount = parseFloat(priceRule.value);\n\n if (priceRule.operator === 'gt') {\n return {\n current_amount: currentAmount,\n target_amount: targetAmount,\n target_reached: currentAmount > targetAmount,\n target_remaining:\n currentAmount > targetAmount ? 0 : targetAmount + 1 - currentAmount,\n remaining_percentage: (currentAmount / targetAmount) * 100,\n };\n } else if (priceRule.operator === 'gte') {\n return {\n current_amount: currentAmount,\n target_amount: targetAmount,\n target_reached: currentAmount > targetAmount,\n target_remaining:\n currentAmount > targetAmount ? 0 : targetAmount - currentAmount,\n remaining_percentage: (currentAmount / targetAmount) * 100,\n };\n } else if (priceRule.operator === 'lt') {\n return {\n current_amount: currentAmount,\n target_amount: targetAmount,\n target_reached: targetAmount > currentAmount,\n target_remaining:\n targetAmount > currentAmount ? 0 : currentAmount + 1 - targetAmount,\n remaining_percentage: (currentAmount / targetAmount) * 100,\n };\n } else if (priceRule.operator === 'lte') {\n return {\n current_amount: currentAmount,\n target_amount: targetAmount,\n target_reached: targetAmount > currentAmount,\n target_remaining:\n targetAmount > currentAmount ? 0 : currentAmount - targetAmount,\n remaining_percentage: (currentAmount / targetAmount) * 100,\n };\n } else {\n return {\n current_amount: currentAmount,\n target_amount: targetAmount,\n target_reached: currentAmount === targetAmount,\n target_remaining:\n targetAmount > currentAmount ? 0 : targetAmount - currentAmount,\n remaining_percentage: (currentAmount / targetAmount) * 100,\n };\n }\n};\n\nfunction ShippingPriceNudge({\n variant = 'inline',\n cart,\n shippingOptions,\n}: {\n variant?: 'popup' | 'inline';\n cart: Cart;\n shippingOptions: StoreCartShippingOption[];\n}) {\n if (!cart || !shippingOptions?.length) {\n return;\n }\n\n // Check if any shipping options have a conditional price based on item_total\n const freeShippingPrice = shippingOptions\n .map((shippingOption) => {\n const calculatedPrice = shippingOption.calculated_price;\n\n if (!calculatedPrice) {\n return;\n }\n\n // Get all prices that are:\n // 1. Currency code is same as the cart's\n // 2. Have a rule that is set on item_total\n const validCurrencyPrices = shippingOption.prices.filter(\n (price) =>\n price.currency_code === cart.currencyCode &&\n (price.price_rules || []).some(\n (priceRule) => priceRule.attribute === 'item_total'\n )\n );\n\n return validCurrencyPrices.map((price) => {\n return {\n ...price,\n shipping_option_id: shippingOption.id,\n ...computeTarget(cart, price),\n };\n });\n })\n .flat(1)\n .filter(Boolean)\n // We focus here entirely on free shipping, but this can be edited to handle multiple layers\n // of reduced shipping prices.\n .find((price) => price?.amount === 0);\n\n if (!freeShippingPrice) {\n return;\n }\n\n if (variant === 'popup') {\n return <FreeShippingPopup cart={cart} price={freeShippingPrice} />;\n } else {\n return <FreeShippingInline cart={cart} price={freeShippingPrice} />;\n }\n}\n\nfunction FreeShippingInline({\n cart,\n price,\n}: {\n cart: Cart;\n price: StorePrice & {\n target_reached: boolean;\n target_remaining: number;\n remaining_percentage: number;\n };\n}) {\n return (\n <div className=\"rounded-lg border bg-neutral-100 p-2\">\n <div className=\"space-y-1.5\">\n <div className=\"flex justify-between text-xs text-neutral-600\">\n <div>\n {price.target_reached ? (\n <div className=\"flex items-center gap-1.5\">\n <CheckCircleSolid className=\"inline-block text-green-500\" />{' '}\n Free Shipping unlocked!\n </div>\n ) : (\n `Unlock Free Shipping`\n )}\n </div>\n\n <div\n className={clx('visible', {\n 'invisible opacity-0': price.target_reached,\n })}\n >\n Only{' '}\n <span className=\"text-neutral-950\">\n {convertToLocale({\n amount: price.target_remaining,\n currency_code: cart.currencyCode,\n })}\n </span>{' '}\n away\n </div>\n </div>\n <div className=\"flex justify-between gap-1\">\n <div\n className={clx(\n 'h-1 max-w-full rounded-full bg-gradient-to-r from-zinc-400 to-zinc-500 duration-500 ease-in-out',\n {\n 'from-green-400 to-green-500': price.target_reached,\n }\n )}\n style={{ width: `${price.remaining_percentage}%` }}\n ></div>\n <div className=\"h-1 w-fit flex-grow rounded-full bg-neutral-300\"></div>\n </div>\n </div>\n </div>\n );\n}\n\nfunction FreeShippingPopup({\n cart,\n price,\n}: {\n cart: Cart;\n price: StoreFreeShippingPrice;\n}) {\n const [isClosed, setIsClosed] = useState(false);\n\n return (\n <div\n className={clx(\n 'fixed right-5 bottom-5 z-10 flex flex-col items-end gap-2 transition-all duration-500 ease-in-out',\n {\n 'invisible opacity-0 delay-1000': price.target_reached,\n 'invisible opacity-0': isClosed,\n 'visible opacity-100': !price.target_reached && !isClosed,\n }\n )}\n >\n <div>\n <Button\n className=\"rounded-full border-none bg-neutral-900 p-2 text-[15px] shadow-none outline-none\"\n onClick={() => setIsClosed(true)}\n >\n <XMark />\n </Button>\n </div>\n\n <div className=\"w-[400px] rounded-lg bg-black p-6 text-white\">\n <div className=\"pb-4\">\n <div className=\"space-y-3\">\n <div className=\"flex justify-between text-[15px] text-neutral-400\">\n <div>\n {price.target_reached ? (\n <div className=\"flex items-center gap-1.5\">\n <CheckCircleSolid className=\"inline-block text-green-500\" />{' '}\n Free Shipping unlocked!\n </div>\n ) : (\n `Unlock Free Shipping`\n )}\n </div>\n\n <div\n className={clx('visible', {\n 'invisible opacity-0': price.target_reached,\n })}\n >\n Only{' '}\n <span className=\"text-white\">\n {convertToLocale({\n amount: price.target_remaining,\n currency_code: cart.currencyCode,\n })}\n </span>{' '}\n away\n </div>\n </div>\n <div className=\"flex justify-between gap-1\">\n <div\n className={clx(\n 'h-1.5 max-w-full rounded-full bg-gradient-to-r from-zinc-400 to-zinc-500 duration-500 ease-in-out',\n {\n 'from-green-400 to-green-500': price.target_reached,\n }\n )}\n style={{ width: `${price.remaining_percentage}%` }}\n ></div>\n <div className=\"h-1.5 w-fit flex-grow rounded-full bg-zinc-600\"></div>\n </div>\n </div>\n </div>\n\n <div className=\"flex gap-3\">\n <LocalizedClientLink\n className=\"rounded-2xl border-[1px] border-white bg-transparent px-4 py-2.5 text-[15px] shadow-none outline-none\"\n href=\"/cart\"\n >\n View cart\n </LocalizedClientLink>\n\n <LocalizedClientLink\n className=\"flex-grow rounded-2xl border-[1px] border-white bg-white px-4 py-2.5 text-center text-[15px] text-neutral-950 shadow-none outline-none\"\n href=\"/store\"\n >\n View products\n </LocalizedClientLink>\n </div>\n </div>\n </div>\n );\n}\n\nexport { ShippingPriceNudge };\n"],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as react_jsx_runtime21 from "react/jsx-runtime";
|
|
2
|
+
|
|
3
|
+
//#region src/components/interactive-link/index.d.ts
|
|
4
|
+
type InteractiveLinkProps = {
|
|
5
|
+
href: string;
|
|
6
|
+
children?: React.ReactNode;
|
|
7
|
+
onClick?: () => void;
|
|
8
|
+
};
|
|
9
|
+
declare const InteractiveLink: ({
|
|
10
|
+
href,
|
|
11
|
+
children,
|
|
12
|
+
onClick,
|
|
13
|
+
...props
|
|
14
|
+
}: InteractiveLinkProps) => react_jsx_runtime21.JSX.Element;
|
|
15
|
+
//#endregion
|
|
16
|
+
export { InteractiveLink };
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/interactive-link/index.tsx"],"sourcesContent":[],"mappings":";;;KAKK,oBAAA;;aAEQ,KAAA,CAAM;EAFd,OAAA,CAAA,EAAA,GAAA,GAAA,IAAA;AAEuB,CAAA;cAItB,eAAmB,EAAA,CAAA;EAAA,IAAA;EAAA,QAAA;EAAA,OAAA;EAAA,GAAA;AAAA,CAAA,EAKtB,oBALsB,EAAA,GAKF,mBAAA,CAAA,GAAA,CAAA,OALE"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { t as LocalizedClientLink } from "../../localized-client-link-C3mE37Ub.js";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Text } from "@medusajs/ui";
|
|
4
|
+
import { ArrowUpRightMini } from "@medusajs/icons";
|
|
5
|
+
|
|
6
|
+
//#region src/components/interactive-link/index.tsx
|
|
7
|
+
const InteractiveLink = ({ href, children, onClick, ...props }) => {
|
|
8
|
+
return /* @__PURE__ */ jsxs(LocalizedClientLink, {
|
|
9
|
+
className: "group flex items-center gap-x-1",
|
|
10
|
+
href,
|
|
11
|
+
onClick,
|
|
12
|
+
...props,
|
|
13
|
+
children: [/* @__PURE__ */ jsx(Text, {
|
|
14
|
+
className: "text-ui-fg-interactive",
|
|
15
|
+
children
|
|
16
|
+
}), /* @__PURE__ */ jsx(ArrowUpRightMini, {
|
|
17
|
+
className: "duration-150 ease-in-out group-hover:rotate-45",
|
|
18
|
+
color: "var(--fg-interactive)"
|
|
19
|
+
})]
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
//#endregion
|
|
24
|
+
export { InteractiveLink };
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/components/interactive-link/index.tsx"],"sourcesContent":["import { ArrowUpRightMini } from '@medusajs/icons';\nimport { Text } from '@medusajs/ui';\n\nimport { LocalizedClientLink } from '../localized-client-link';\n\ntype InteractiveLinkProps = {\n href: string;\n children?: React.ReactNode;\n onClick?: () => void;\n};\n\nconst InteractiveLink = ({\n href,\n children,\n onClick,\n ...props\n}: InteractiveLinkProps) => {\n return (\n <LocalizedClientLink\n className=\"group flex items-center gap-x-1\"\n href={href}\n onClick={onClick}\n {...props}\n >\n <Text className=\"text-ui-fg-interactive\">{children}</Text>\n <ArrowUpRightMini\n className=\"duration-150 ease-in-out group-hover:rotate-45\"\n color=\"var(--fg-interactive)\"\n />\n </LocalizedClientLink>\n );\n};\n\nexport { InteractiveLink };\n"],"mappings":";;;;;;AAWA,MAAM,mBAAmB,EACvB,MACA,UACA,SACA,GAAG,YACuB;AAC1B,QACE,qBAAC;EACC,WAAU;EACJ;EACG;EACT,GAAI;aAEJ,oBAAC;GAAK,WAAU;GAA0B;IAAgB,EAC1D,oBAAC;GACC,WAAU;GACV,OAAM;IACN;GACkB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { tr as Region } from "../../graphql-BWZPPI_N.js";
|
|
2
|
+
import { t as StateType } from "../../use-toggle-state-zIAKMNfR.js";
|
|
3
|
+
import * as react_jsx_runtime8 from "react/jsx-runtime";
|
|
4
|
+
|
|
5
|
+
//#region src/components/layout-country-select/index.d.ts
|
|
6
|
+
type CountrySelectProps = {
|
|
7
|
+
toggleState: StateType;
|
|
8
|
+
regions: Region[];
|
|
9
|
+
};
|
|
10
|
+
declare const LayoutCountrySelect: ({
|
|
11
|
+
toggleState,
|
|
12
|
+
regions
|
|
13
|
+
}: CountrySelectProps) => react_jsx_runtime8.JSX.Element;
|
|
14
|
+
//#endregion
|
|
15
|
+
export { LayoutCountrySelect };
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/layout-country-select/index.tsx"],"sourcesContent":[],"mappings":";;;;;KA0BK,kBAAA;eACU;WACJ;AAV8B,CAAA;AAUxB,cAGX,mBA0GL,EAAA,CAAA;EAAA,WAAA;EAAA;AAAA,CAAA,EA1GsD,kBA0GtD,EAAA,GA1GwE,kBAAA,CAAA,GAAA,CAAA,OA0GxE"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import "../../medusa-C1jfAM1B.js";
|
|
4
|
+
import "../../apollo-client-BuznVAE4.js";
|
|
5
|
+
import "../../product-Cgtch-vz.js";
|
|
6
|
+
import "../../cart-p3ffQQ5R.js";
|
|
7
|
+
import "../../cart-XQIczSA1.js";
|
|
8
|
+
import "../../cart-D99u8SUJ.js";
|
|
9
|
+
import "../../cookies-DANAjt8U.js";
|
|
10
|
+
import "../../regions-CF6DH579.js";
|
|
11
|
+
import "../../cart-CLJvIUQC.js";
|
|
12
|
+
import { t as LayoutCountrySelect } from "../../layout-country-select-DrwpoVMM.js";
|
|
13
|
+
|
|
14
|
+
export { LayoutCountrySelect };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Kt as Maybe, zn as ProductVariant } from "../../graphql-BWZPPI_N.js";
|
|
2
|
+
import * as react_jsx_runtime19 from "react/jsx-runtime";
|
|
3
|
+
|
|
4
|
+
//#region src/components/line-item-options/index.d.ts
|
|
5
|
+
type LineItemOptionsProps = {
|
|
6
|
+
variant?: Maybe<ProductVariant>;
|
|
7
|
+
'data-testid'?: string;
|
|
8
|
+
'data-value'?: Maybe<ProductVariant>;
|
|
9
|
+
};
|
|
10
|
+
declare const LineItemOptions: ({
|
|
11
|
+
variant,
|
|
12
|
+
"data-testid": dataTestid,
|
|
13
|
+
"data-value": dataValue
|
|
14
|
+
}: LineItemOptionsProps) => react_jsx_runtime19.JSX.Element;
|
|
15
|
+
//#endregion
|
|
16
|
+
export { LineItemOptions };
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/line-item-options/index.tsx"],"sourcesContent":[],"mappings":";;;;KAIK,oBAAA;YACO,MAAM;;EADb,YAAA,CAAA,EAGY,KAHZ,CAGkB,cAHE,CAAA;CACP;cAKZ,eALM,EAAA,CAAA;EAAA,OAAA;EAAA,aAAA,EAKa,UALb;EAAA,YAAA,EAKa;AALb,CAAA,EAST,oBATS,EAAA,GASW,mBAAA,CAAA,GAAA,CAAA,OATX"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Nt as LineItem } from "../../graphql-BWZPPI_N.js";
|
|
2
|
+
import * as react_jsx_runtime9 from "react/jsx-runtime";
|
|
3
|
+
|
|
4
|
+
//#region src/components/line-item-price/index.d.ts
|
|
5
|
+
type LineItemPriceProps = {
|
|
6
|
+
item: LineItem;
|
|
7
|
+
style?: 'default' | 'tight';
|
|
8
|
+
currencyCode: string;
|
|
9
|
+
};
|
|
10
|
+
declare const LineItemPrice: ({
|
|
11
|
+
item,
|
|
12
|
+
style,
|
|
13
|
+
currencyCode
|
|
14
|
+
}: LineItemPriceProps) => react_jsx_runtime9.JSX.Element;
|
|
15
|
+
//#endregion
|
|
16
|
+
export { LineItemPrice };
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/line-item-price/index.tsx"],"sourcesContent":[],"mappings":";;;;KAMK,kBAAA;QACG;;EADH,YAAA,EAAA,MAAA;AACW,CAAA;cAKV,aAAiB,EAAA,CAAA;EAAA,IAAA;EAAA,KAAA;EAAA;AAAA,CAAA,EAIpB,kBAJoB,EAAA,GAIF,kBAAA,CAAA,GAAA,CAAA,OAJE"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import * as react_jsx_runtime20 from "react/jsx-runtime";
|
|
3
|
+
|
|
4
|
+
//#region src/components/localized-client-link/index.d.ts
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Use this component to create a Next.js `<Link />` that persists the current country code in the url,
|
|
8
|
+
* without having to explicitly pass it as a prop.
|
|
9
|
+
*/
|
|
10
|
+
declare const LocalizedClientLink: ({
|
|
11
|
+
children,
|
|
12
|
+
href,
|
|
13
|
+
...props
|
|
14
|
+
}: {
|
|
15
|
+
children?: React.ReactNode;
|
|
16
|
+
href: string;
|
|
17
|
+
className?: string;
|
|
18
|
+
onClick?: () => void;
|
|
19
|
+
passHref?: true;
|
|
20
|
+
[x: string]: any;
|
|
21
|
+
}) => react_jsx_runtime20.JSX.Element;
|
|
22
|
+
//#endregion
|
|
23
|
+
export { LocalizedClientLink };
|
|
24
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/localized-client-link/index.tsx"],"sourcesContent":[],"mappings":";;;;;;;;AAE0B;cASpB,mBAAuB,EAAA,CAAA;EAAA,QAAA;EAAA,IAAA;EAAA,GAAA;CAAA,EAAA;EAAA,QAAA,CAAA,EAKhB,KAAA,CAAM,SALU;EAKhB,IAAM,EAAA,MAAA;EAMlB,SAAA,CAAA,EAAA,MAAA;EAQA,OAAA,CAAA,EAAA,GAAA,GAAA,IAAA;;;MARA,mBAAA,CAAA,GAAA,CAAA"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import * as react_jsx_runtime2 from "react/jsx-runtime";
|
|
3
|
+
|
|
4
|
+
//#region src/components/modal/index.d.ts
|
|
5
|
+
type ModalProps = {
|
|
6
|
+
isOpen: boolean;
|
|
7
|
+
close: () => void;
|
|
8
|
+
size?: 'small' | 'medium' | 'large';
|
|
9
|
+
search?: boolean;
|
|
10
|
+
children: React.ReactNode;
|
|
11
|
+
'data-testid'?: string;
|
|
12
|
+
'aria-label'?: string;
|
|
13
|
+
};
|
|
14
|
+
declare const Modal: {
|
|
15
|
+
({
|
|
16
|
+
isOpen,
|
|
17
|
+
close,
|
|
18
|
+
size,
|
|
19
|
+
search,
|
|
20
|
+
children,
|
|
21
|
+
"data-testid": dataTestId,
|
|
22
|
+
"aria-label": ariaLabel
|
|
23
|
+
}: ModalProps): react_jsx_runtime2.JSX.Element;
|
|
24
|
+
Title: React.FC<{
|
|
25
|
+
children: React.ReactNode;
|
|
26
|
+
}>;
|
|
27
|
+
Description: React.FC<{
|
|
28
|
+
children: React.ReactNode;
|
|
29
|
+
}>;
|
|
30
|
+
Body: React.FC<{
|
|
31
|
+
children: React.ReactNode;
|
|
32
|
+
}>;
|
|
33
|
+
Footer: React.FC<{
|
|
34
|
+
children: React.ReactNode;
|
|
35
|
+
}>;
|
|
36
|
+
};
|
|
37
|
+
//#endregion
|
|
38
|
+
export { Modal };
|
|
39
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/modal/index.tsx"],"sourcesContent":[],"mappings":";;;;KAQK,UAAA;;;EAAA,IAAA,CAAA,EAAA,OAAU,GAAA,QAKH,GAAA,OAAM;EAKZ,MAAA,CAAA,EAqEL,OAAA;YA1EW,KAAA,CAAM;;;;cAKZ;;;;;;;;;KAQH,aAAU,kBAAA,CAAA,GAAA,CAAA;;IAAV,QAAA,EA+D+B,KAAA,CAAM,SA/DrC;EAAU,CAAA,CAAA;EA+DqB,WAAM,UAAA,CAAA;cAeA,KAAA,CAAM;EAAN,CAAA,CAAA;;IAQD,QAAA,EAAN,KAAA,CAAM,SAAA;;EAIJ,MAAM,UAAA,CAAA;cAAN,KAAA,CAAM"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/nav/index.tsx"],"sourcesContent":[],"mappings":";;;iBAUe,GAAA,CAAA,GAAG,QAAA,kBAAA,CAAA,GAAA,CAAA,OAAA"}
|