@gfed-medusa/sf-lib-common 1.1.0 → 2.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/dist/components/breadcrumbs/index.d.ts +4 -6
- package/dist/components/breadcrumbs/index.d.ts.map +1 -1
- package/dist/components/breadcrumbs/index.js.map +1 -1
- package/dist/components/cart-button/index.d.ts +2 -2
- package/dist/components/cart-button/index.d.ts.map +1 -1
- package/dist/components/cart-button/index.js +11 -17
- package/dist/components/cart-button/index.js.map +1 -0
- package/dist/components/cart-dropdown/index.d.ts +3 -3
- package/dist/components/cart-dropdown/index.d.ts.map +1 -1
- package/dist/components/cart-dropdown/index.js +193 -16
- package/dist/components/cart-dropdown/index.js.map +1 -0
- package/dist/components/cart-mismatch-banner/index.d.ts +3 -3
- package/dist/components/cart-mismatch-banner/index.d.ts.map +1 -1
- package/dist/components/cart-mismatch-banner/index.js +1 -8
- package/dist/components/cart-mismatch-banner/index.js.map +1 -1
- package/dist/components/country-select/index.d.ts +1 -1
- package/dist/components/delete-button/index.d.ts +2 -2
- package/dist/components/delete-button/index.js +27 -11
- package/dist/components/delete-button/index.js.map +1 -0
- package/dist/components/error-message/index.d.ts +2 -2
- package/dist/components/error-message/index.d.ts.map +1 -1
- package/dist/components/footer/index.d.ts +2 -2
- package/dist/components/footer/index.d.ts.map +1 -1
- package/dist/components/footer/index.js +5 -10
- package/dist/components/footer/index.js.map +1 -1
- package/dist/components/free-shipping-price-nudge/index.d.ts +3 -3
- package/dist/components/free-shipping-price-nudge/index.d.ts.map +1 -1
- package/dist/components/free-shipping-price-nudge/index.js +2 -2
- package/dist/components/interactive-link/index.d.ts +2 -2
- package/dist/components/interactive-link/index.js +1 -1
- package/dist/components/layout-country-select/index.d.ts +4 -4
- package/dist/components/layout-country-select/index.js +89 -11
- package/dist/components/layout-country-select/index.js.map +1 -0
- package/dist/components/line-item-options/index.d.ts +3 -3
- package/dist/components/line-item-options/index.js +15 -2
- package/dist/components/line-item-options/index.js.map +1 -0
- package/dist/components/line-item-price/index.d.ts +3 -3
- package/dist/components/line-item-price/index.d.ts.map +1 -1
- package/dist/components/line-item-price/index.js +46 -2
- package/dist/components/line-item-price/index.js.map +1 -0
- package/dist/components/localized-client-link/index.d.ts +5 -12
- package/dist/components/localized-client-link/index.d.ts.map +1 -1
- package/dist/components/localized-client-link/index.js +19 -2
- package/dist/components/localized-client-link/index.js.map +1 -0
- package/dist/components/modal/index.d.ts +2 -2
- package/dist/components/modal/index.js +101 -3
- package/dist/components/modal/index.js.map +1 -0
- package/dist/components/nav/index.d.ts +2 -2
- package/dist/components/nav/index.js +6 -25
- package/dist/components/nav/index.js.map +1 -1
- package/dist/components/portable-text/index.d.ts +3 -3
- package/dist/components/portable-text/index.js +329 -2
- package/dist/components/portable-text/index.js.map +1 -0
- package/dist/components/preview-price/index.d.ts +1 -1
- package/dist/components/preview-price/index.js +19 -2
- package/dist/components/preview-price/index.js.map +1 -0
- package/dist/components/product-card/index.d.ts +2 -2
- package/dist/components/product-card/index.d.ts.map +1 -1
- package/dist/components/product-card/index.js +3 -4
- package/dist/components/product-card/index.js.map +1 -1
- package/dist/components/product-preview/index.d.ts +3 -3
- package/dist/components/product-preview/index.d.ts.map +1 -1
- package/dist/components/product-preview/index.js +4 -4
- package/dist/components/search-modal/index.d.ts +2 -2
- package/dist/components/search-modal/index.d.ts.map +1 -1
- package/dist/components/search-modal/index.js +135 -9
- package/dist/components/search-modal/index.js.map +1 -0
- package/dist/components/side-menu/index.d.ts +3 -3
- package/dist/components/side-menu/index.js +96 -13
- package/dist/components/side-menu/index.js.map +1 -0
- package/dist/components/thumbnail/index.js +43 -2
- package/dist/components/thumbnail/index.js.map +1 -0
- package/dist/lib/config/medusa.js +11 -2
- package/dist/lib/config/medusa.js.map +1 -0
- package/dist/lib/context/apollo-context.js +1 -2
- package/dist/lib/context/apollo-context.js.map +1 -1
- package/dist/lib/context/modal-context.d.ts +2 -2
- package/dist/lib/context/modal-context.js +19 -2
- package/dist/lib/context/modal-context.js.map +1 -0
- package/dist/lib/data/cart.d.ts +1 -1
- package/dist/lib/data/cart.d.ts.map +1 -1
- package/dist/lib/data/cart.js +102 -10
- package/dist/lib/data/cart.js.map +1 -0
- package/dist/lib/data/categories.d.ts +1 -1
- package/dist/lib/data/categories.js +15 -5
- package/dist/lib/data/categories.js.map +1 -0
- package/dist/lib/data/collections.d.ts +1 -1
- package/dist/lib/data/collections.js +21 -5
- package/dist/lib/data/collections.js.map +1 -0
- package/dist/lib/data/cookies.d.ts +2 -1
- package/dist/lib/data/cookies.d.ts.map +1 -1
- package/dist/lib/data/cookies.js +45 -2
- package/dist/lib/data/cookies.js.map +1 -0
- package/dist/lib/data/customer.d.ts +1 -1
- package/dist/lib/data/customer.d.ts.map +1 -1
- package/dist/lib/data/customer.js +39 -9
- package/dist/lib/data/customer.js.map +1 -0
- package/dist/lib/data/footer.js +15 -4
- package/dist/lib/data/footer.js.map +1 -0
- package/dist/lib/data/orders.d.ts +1 -1
- package/dist/lib/data/orders.js +4 -4
- package/dist/lib/data/regions.d.ts +1 -1
- package/dist/lib/data/regions.js +33 -4
- package/dist/lib/data/regions.js.map +1 -0
- package/dist/lib/data/search.d.ts +1 -1
- package/dist/lib/data/search.js +20 -5
- package/dist/lib/data/search.js.map +1 -0
- package/dist/lib/gql/apollo-client.js +66 -2
- package/dist/lib/gql/apollo-client.js.map +1 -0
- package/dist/lib/gql/fragments/cart.d.ts +9 -9
- package/dist/lib/gql/fragments/cart.d.ts.map +1 -1
- package/dist/lib/gql/fragments/cart.js +141 -3
- package/dist/{cart-BNoIGQmw.js.map → lib/gql/fragments/cart.js.map} +1 -1
- package/dist/lib/gql/fragments/customer.d.ts +3 -3
- package/dist/lib/gql/fragments/customer.js +41 -2
- package/dist/{customer-CgN4zI00.js.map → lib/gql/fragments/customer.js.map} +1 -1
- package/dist/lib/gql/fragments/product.d.ts +8 -8
- package/dist/lib/gql/fragments/product.js +89 -2
- package/dist/{product-COu5D1mS.js.map → lib/gql/fragments/product.js.map} +1 -1
- package/dist/lib/gql/mutations/cart.d.ts +4 -4
- package/dist/lib/gql/mutations/cart.d.ts.map +1 -1
- package/dist/lib/gql/mutations/cart.js +41 -4
- package/dist/{cart-IHaLnQC4.js.map → lib/gql/mutations/cart.js.map} +1 -1
- package/dist/lib/gql/mutations/customer.js +0 -1
- package/dist/lib/gql/queries/cart.d.ts +2 -2
- package/dist/lib/gql/queries/cart.d.ts.map +1 -1
- package/dist/lib/gql/queries/cart.js +15 -4
- package/dist/{cart-DH8urwwT.js.map → lib/gql/queries/cart.js.map} +1 -1
- package/dist/lib/gql/queries/collections.d.ts +2 -2
- package/dist/lib/gql/queries/collections.d.ts.map +1 -1
- package/dist/lib/gql/queries/collections.js +19 -3
- package/dist/{collections-DMv3UYgC.js.map → lib/gql/queries/collections.js.map} +1 -1
- package/dist/lib/gql/queries/customer.d.ts +2 -2
- package/dist/lib/gql/queries/customer.d.ts.map +1 -1
- package/dist/lib/gql/queries/customer.js +15 -3
- package/dist/{customer-DIJz6m7L.js.map → lib/gql/queries/customer.js.map} +1 -1
- package/dist/lib/gql/queries/footer.d.ts +2 -2
- package/dist/lib/gql/queries/footer.d.ts.map +1 -1
- package/dist/lib/gql/queries/footer.js +21 -2
- package/dist/lib/gql/queries/footer.js.map +1 -0
- package/dist/lib/gql/queries/product.d.ts +3 -3
- package/dist/lib/gql/queries/product.d.ts.map +1 -1
- package/dist/lib/gql/queries/product.js +46 -3
- package/dist/{product-C3HQUIgX.js.map → lib/gql/queries/product.js.map} +1 -1
- package/dist/lib/hooks/use-apollo.d.ts +2 -2
- package/dist/lib/hooks/use-apollo.js +10 -3
- package/dist/lib/hooks/use-apollo.js.map +1 -0
- package/dist/lib/hooks/use-search.d.ts +1 -1
- package/dist/lib/hooks/use-search.js +66 -6
- package/dist/lib/hooks/use-search.js.map +1 -0
- package/dist/lib/hooks/use-toggle-state.d.ts +23 -2
- package/dist/lib/hooks/use-toggle-state.d.ts.map +1 -0
- package/dist/lib/utils/data-types.js +9 -2
- package/dist/lib/utils/data-types.js.map +1 -0
- package/dist/lib/utils/env.js +1 -1
- package/dist/lib/utils/env.js.map +1 -1
- package/dist/lib/utils/get-percentage-diff.js +7 -2
- package/dist/lib/utils/get-percentage-diff.js.map +1 -0
- package/dist/lib/utils/get-product-price.d.ts +1 -1
- package/dist/lib/utils/get-product-price.js +46 -2
- package/dist/lib/utils/get-product-price.js.map +1 -0
- package/dist/lib/utils/medusa-error.js +16 -2
- package/dist/lib/utils/medusa-error.js.map +1 -0
- package/dist/lib/utils/money.js +14 -2
- package/dist/lib/utils/money.js.map +1 -0
- package/dist/lib/utils/normalize-functions.d.ts +1 -1
- package/dist/lib/utils/normalize-functions.js +69 -2
- package/dist/lib/utils/normalize-functions.js.map +1 -0
- package/dist/types/graphql.d.ts +1368 -2
- package/dist/types/graphql.d.ts.map +1 -0
- package/dist/types/prices.d.ts +20 -2
- package/dist/types/prices.d.ts.map +1 -0
- package/dist/types/prices.js +0 -1
- package/package.json +12 -12
- package/dist/apollo-client-Bw50r80c.js +0 -66
- package/dist/apollo-client-Bw50r80c.js.map +0 -1
- package/dist/cart-BNoIGQmw.js +0 -142
- package/dist/cart-DH8urwwT.js +0 -16
- package/dist/cart-IHaLnQC4.js +0 -42
- package/dist/cart-button-Dj_zRxop.js +0 -12
- package/dist/cart-button-Dj_zRxop.js.map +0 -1
- package/dist/cart-dropdown-D_PUJarp.js +0 -195
- package/dist/cart-dropdown-D_PUJarp.js.map +0 -1
- package/dist/cart-xkcyWLfU.js +0 -103
- package/dist/cart-xkcyWLfU.js.map +0 -1
- package/dist/categories-B-RYCIZ3.js +0 -16
- package/dist/categories-B-RYCIZ3.js.map +0 -1
- package/dist/collections-BgyvhW2p.js +0 -22
- package/dist/collections-BgyvhW2p.js.map +0 -1
- package/dist/collections-DMv3UYgC.js +0 -20
- package/dist/cookies-lksVIe4_.js +0 -38
- package/dist/cookies-lksVIe4_.js.map +0 -1
- package/dist/customer-CgN4zI00.js +0 -42
- package/dist/customer-ClewjBBr.js +0 -38
- package/dist/customer-ClewjBBr.js.map +0 -1
- package/dist/customer-DIJz6m7L.js +0 -16
- package/dist/data-types-CTPJXmJH.js +0 -10
- package/dist/data-types-CTPJXmJH.js.map +0 -1
- package/dist/delete-button-Bnm5bof2.js +0 -28
- package/dist/delete-button-Bnm5bof2.js.map +0 -1
- package/dist/footer-BvNV-R9D.js +0 -16
- package/dist/footer-BvNV-R9D.js.map +0 -1
- package/dist/footer-DCtgtjKS.js +0 -76
- package/dist/footer-DCtgtjKS.js.map +0 -1
- package/dist/get-percentage-diff-B_UVOFgE.js +0 -8
- package/dist/get-percentage-diff-B_UVOFgE.js.map +0 -1
- package/dist/get-product-price-DKWc76ev.js +0 -47
- package/dist/get-product-price-DKWc76ev.js.map +0 -1
- package/dist/graphql-CdTGi4Pp.d.ts +0 -1368
- package/dist/graphql-CdTGi4Pp.d.ts.map +0 -1
- package/dist/layout-country-select-C7Ra-opl.js +0 -90
- package/dist/layout-country-select-C7Ra-opl.js.map +0 -1
- package/dist/line-item-options-l_eRZIIq.js +0 -16
- package/dist/line-item-options-l_eRZIIq.js.map +0 -1
- package/dist/line-item-price-BlTwskFC.js +0 -47
- package/dist/line-item-price-BlTwskFC.js.map +0 -1
- package/dist/localized-client-link-CthmRcvb.js +0 -22
- package/dist/localized-client-link-CthmRcvb.js.map +0 -1
- package/dist/medusa-TumrpCF2.js +0 -12
- package/dist/medusa-TumrpCF2.js.map +0 -1
- package/dist/medusa-error-DDhA6RGC.js +0 -17
- package/dist/medusa-error-DDhA6RGC.js.map +0 -1
- package/dist/modal-BASYY-YM.js +0 -102
- package/dist/modal-BASYY-YM.js.map +0 -1
- package/dist/modal-context-02cA-7jy.js +0 -20
- package/dist/modal-context-02cA-7jy.js.map +0 -1
- package/dist/money-DVQGzXns.js +0 -15
- package/dist/money-DVQGzXns.js.map +0 -1
- package/dist/normalize-functions-Bqr-JkYn.js +0 -70
- package/dist/normalize-functions-Bqr-JkYn.js.map +0 -1
- package/dist/portable-text-CuI022GH.js +0 -330
- package/dist/portable-text-CuI022GH.js.map +0 -1
- package/dist/preview-price-_4sxkXQs.js +0 -20
- package/dist/preview-price-_4sxkXQs.js.map +0 -1
- package/dist/prices-eO1YBciD.d.ts +0 -20
- package/dist/prices-eO1YBciD.d.ts.map +0 -1
- package/dist/product-C3HQUIgX.js +0 -47
- package/dist/product-COu5D1mS.js +0 -90
- package/dist/regions-r1AvxfT8.js +0 -34
- package/dist/regions-r1AvxfT8.js.map +0 -1
- package/dist/search-D7Gw7jAk.js +0 -21
- package/dist/search-D7Gw7jAk.js.map +0 -1
- package/dist/search-modal-DaXadYWM.js +0 -137
- package/dist/search-modal-DaXadYWM.js.map +0 -1
- package/dist/side-menu-B6IjTd5M.js +0 -97
- package/dist/side-menu-B6IjTd5M.js.map +0 -1
- package/dist/thumbnail-C0TU3rh-.js +0 -44
- package/dist/thumbnail-C0TU3rh-.js.map +0 -1
- package/dist/use-apollo-BxAFd1Y5.js +0 -11
- package/dist/use-apollo-BxAFd1Y5.js.map +0 -1
- package/dist/use-search-VX-u8o1D.js +0 -67
- package/dist/use-search-VX-u8o1D.js.map +0 -1
- package/dist/use-toggle-state-DI4Gwlfj.d.ts +0 -23
- package/dist/use-toggle-state-DI4Gwlfj.d.ts.map +0 -1
|
@@ -1,330 +0,0 @@
|
|
|
1
|
-
import { Fragment } from "react";
|
|
2
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { Heading, Text } from "@medusajs/ui";
|
|
4
|
-
import { ArrowUpRightMini } from "@medusajs/icons";
|
|
5
|
-
import Image from "next/image";
|
|
6
|
-
import { PlaceholderImage } from "@gfed-medusa/sf-lib-ui/icons/placeholder-image";
|
|
7
|
-
import { Back } from "@gfed-medusa/sf-lib-ui/icons/back";
|
|
8
|
-
import { Bancontact } from "@gfed-medusa/sf-lib-ui/icons/bancontact";
|
|
9
|
-
import { ChevronDown } from "@gfed-medusa/sf-lib-ui/icons/chevron-down";
|
|
10
|
-
import { Eye } from "@gfed-medusa/sf-lib-ui/icons/eye";
|
|
11
|
-
import { EyeOff } from "@gfed-medusa/sf-lib-ui/icons/eye-off";
|
|
12
|
-
import { FastDelivery } from "@gfed-medusa/sf-lib-ui/icons/fast-delivery";
|
|
13
|
-
import { Ideal } from "@gfed-medusa/sf-lib-ui/icons/ideal";
|
|
14
|
-
import { MapPin } from "@gfed-medusa/sf-lib-ui/icons/map-pin";
|
|
15
|
-
import { Medusa } from "@gfed-medusa/sf-lib-ui/icons/medusa";
|
|
16
|
-
import { NextJs } from "@gfed-medusa/sf-lib-ui/icons/nextjs";
|
|
17
|
-
import { Package } from "@gfed-medusa/sf-lib-ui/icons/package";
|
|
18
|
-
import { PayPal } from "@gfed-medusa/sf-lib-ui/icons/paypal";
|
|
19
|
-
import { Refresh } from "@gfed-medusa/sf-lib-ui/icons/refresh";
|
|
20
|
-
import { Spinner as Spinner$1 } from "@gfed-medusa/sf-lib-ui/icons/spinner";
|
|
21
|
-
import { Trash as Trash$1 } from "@gfed-medusa/sf-lib-ui/icons/trash";
|
|
22
|
-
import { User } from "@gfed-medusa/sf-lib-ui/icons/user";
|
|
23
|
-
import { X } from "@gfed-medusa/sf-lib-ui/icons/x";
|
|
24
|
-
|
|
25
|
-
//#region src/components/portable-text/index.tsx
|
|
26
|
-
const PortableText = ({ value }) => {
|
|
27
|
-
if (!value || !Array.isArray(value)) return null;
|
|
28
|
-
const getBlockType = (block) => {
|
|
29
|
-
if (block.__typename) {
|
|
30
|
-
const typename = block.__typename.toLowerCase();
|
|
31
|
-
if (typename === "textblock") return "block";
|
|
32
|
-
return typename.replace("block", "");
|
|
33
|
-
}
|
|
34
|
-
return "unknown";
|
|
35
|
-
};
|
|
36
|
-
const renderSpan = (span, markDefs) => {
|
|
37
|
-
if (!span.text) return null;
|
|
38
|
-
let content = span.text;
|
|
39
|
-
const marks = span.marks || [];
|
|
40
|
-
marks.forEach((mark) => {
|
|
41
|
-
if (typeof mark === "string") switch (mark) {
|
|
42
|
-
case "strong":
|
|
43
|
-
content = /* @__PURE__ */ jsx("strong", { children: content });
|
|
44
|
-
break;
|
|
45
|
-
case "em":
|
|
46
|
-
content = /* @__PURE__ */ jsx("em", { children: content });
|
|
47
|
-
break;
|
|
48
|
-
case "code":
|
|
49
|
-
content = /* @__PURE__ */ jsx("code", {
|
|
50
|
-
className: "bg-ui-bg-subtle rounded px-1 py-0.5 font-mono text-sm",
|
|
51
|
-
children: content
|
|
52
|
-
});
|
|
53
|
-
break;
|
|
54
|
-
case "underline":
|
|
55
|
-
content = /* @__PURE__ */ jsx("u", { children: content });
|
|
56
|
-
break;
|
|
57
|
-
case "superscript":
|
|
58
|
-
content = /* @__PURE__ */ jsx("sup", { children: content });
|
|
59
|
-
break;
|
|
60
|
-
case "subscript":
|
|
61
|
-
content = /* @__PURE__ */ jsx("sub", { children: content });
|
|
62
|
-
break;
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
const getMarkByKey = (key) => {
|
|
66
|
-
return markDefs?.find((def) => def._key === key);
|
|
67
|
-
};
|
|
68
|
-
const linkMark = marks.find((mark) => {
|
|
69
|
-
if (typeof mark === "object") return mark;
|
|
70
|
-
if (typeof mark === "string") {
|
|
71
|
-
const markDef = getMarkByKey(mark);
|
|
72
|
-
return markDef && (markDef._type === "link" || markDef.__typename === "LinkMark");
|
|
73
|
-
}
|
|
74
|
-
return false;
|
|
75
|
-
});
|
|
76
|
-
const iconLinkMark = marks.find((mark) => {
|
|
77
|
-
if (typeof mark === "object") return mark;
|
|
78
|
-
if (typeof mark === "string") {
|
|
79
|
-
const markDef = getMarkByKey(mark);
|
|
80
|
-
return markDef && (markDef._type === "iconlink" || markDef.__typename === "IconLinkMark");
|
|
81
|
-
}
|
|
82
|
-
return false;
|
|
83
|
-
});
|
|
84
|
-
const resolvedIconLinkMark = typeof iconLinkMark === "string" ? (() => {
|
|
85
|
-
const mark = getMarkByKey(iconLinkMark);
|
|
86
|
-
return mark && (mark.__typename === "IconLinkMark" || mark._type === "iconlink") ? mark : void 0;
|
|
87
|
-
})() : iconLinkMark ? iconLinkMark : void 0;
|
|
88
|
-
const resolvedLinkMark = typeof linkMark === "string" ? getMarkByKey(linkMark) : linkMark;
|
|
89
|
-
if (resolvedIconLinkMark) return renderIconLink(resolvedIconLinkMark, content);
|
|
90
|
-
if (resolvedLinkMark) return /* @__PURE__ */ jsx("a", {
|
|
91
|
-
href: resolvedLinkMark.href,
|
|
92
|
-
target: resolvedLinkMark.target ?? "",
|
|
93
|
-
className: "text-ui-fg-interactive hover:underline",
|
|
94
|
-
children: content
|
|
95
|
-
});
|
|
96
|
-
return content;
|
|
97
|
-
};
|
|
98
|
-
const renderIconLink = (mark, children) => {
|
|
99
|
-
const renderIcon = () => {
|
|
100
|
-
switch (mark.iconType) {
|
|
101
|
-
case "class": return mark.iconClass ? /* @__PURE__ */ jsx("i", { className: mark.iconClass }) : null;
|
|
102
|
-
case "component": switch (mark.iconComponent) {
|
|
103
|
-
case "ArrowUpRightMini": return /* @__PURE__ */ jsx(ArrowUpRightMini, {
|
|
104
|
-
fill: mark.iconFill ?? "",
|
|
105
|
-
className: "h-4 w-4"
|
|
106
|
-
});
|
|
107
|
-
case "Back": return /* @__PURE__ */ jsx(Back, {
|
|
108
|
-
size: 16,
|
|
109
|
-
fill: mark.iconFill ?? ""
|
|
110
|
-
});
|
|
111
|
-
case "Bancontact": return /* @__PURE__ */ jsx(Bancontact, {
|
|
112
|
-
size: 16,
|
|
113
|
-
fill: mark.iconFill ?? ""
|
|
114
|
-
});
|
|
115
|
-
case "ChevronDown": return /* @__PURE__ */ jsx(ChevronDown, {
|
|
116
|
-
size: 16,
|
|
117
|
-
fill: mark.iconFill ?? ""
|
|
118
|
-
});
|
|
119
|
-
case "Eye": return /* @__PURE__ */ jsx(Eye, {
|
|
120
|
-
size: 16,
|
|
121
|
-
fill: mark.iconFill ?? ""
|
|
122
|
-
});
|
|
123
|
-
case "EyeOff": return /* @__PURE__ */ jsx(EyeOff, {
|
|
124
|
-
size: 16,
|
|
125
|
-
fill: mark.iconFill ?? ""
|
|
126
|
-
});
|
|
127
|
-
case "FastDelivery": return /* @__PURE__ */ jsx(FastDelivery, {
|
|
128
|
-
size: 16,
|
|
129
|
-
fill: mark.iconFill ?? ""
|
|
130
|
-
});
|
|
131
|
-
case "Ideal": return /* @__PURE__ */ jsx(Ideal, {
|
|
132
|
-
size: 16,
|
|
133
|
-
fill: mark.iconFill ?? ""
|
|
134
|
-
});
|
|
135
|
-
case "MapPin": return /* @__PURE__ */ jsx(MapPin, {
|
|
136
|
-
size: 16,
|
|
137
|
-
fill: mark.iconFill ?? ""
|
|
138
|
-
});
|
|
139
|
-
case "Medusa": return /* @__PURE__ */ jsx(Medusa, {
|
|
140
|
-
size: 16,
|
|
141
|
-
fill: mark.iconFill ?? ""
|
|
142
|
-
});
|
|
143
|
-
case "NextJs": return /* @__PURE__ */ jsx(NextJs, {
|
|
144
|
-
size: 16,
|
|
145
|
-
fill: mark.iconFill ?? ""
|
|
146
|
-
});
|
|
147
|
-
case "Package": return /* @__PURE__ */ jsx(Package, {
|
|
148
|
-
size: 16,
|
|
149
|
-
fill: mark.iconFill ?? ""
|
|
150
|
-
});
|
|
151
|
-
case "PayPal": return /* @__PURE__ */ jsx(PayPal, {});
|
|
152
|
-
case "PlaceholderImage": return /* @__PURE__ */ jsx(PlaceholderImage, {
|
|
153
|
-
size: 16,
|
|
154
|
-
fill: mark.iconFill ?? ""
|
|
155
|
-
});
|
|
156
|
-
case "Refresh": return /* @__PURE__ */ jsx(Refresh, {
|
|
157
|
-
size: 16,
|
|
158
|
-
fill: mark.iconFill ?? ""
|
|
159
|
-
});
|
|
160
|
-
case "Spinner": return /* @__PURE__ */ jsx(Spinner$1, {
|
|
161
|
-
size: 16,
|
|
162
|
-
fill: mark.iconFill ?? ""
|
|
163
|
-
});
|
|
164
|
-
case "Trash": return /* @__PURE__ */ jsx(Trash$1, {
|
|
165
|
-
size: 16,
|
|
166
|
-
fill: mark.iconFill ?? ""
|
|
167
|
-
});
|
|
168
|
-
case "User": return /* @__PURE__ */ jsx(User, {
|
|
169
|
-
size: 16,
|
|
170
|
-
fill: mark.iconFill ?? ""
|
|
171
|
-
});
|
|
172
|
-
case "X": return /* @__PURE__ */ jsx(X, {
|
|
173
|
-
size: 16,
|
|
174
|
-
fill: mark.iconFill ?? ""
|
|
175
|
-
});
|
|
176
|
-
default: return null;
|
|
177
|
-
}
|
|
178
|
-
case "sanity": return mark.iconImage?.asset?.url ? /* @__PURE__ */ jsx(Image, {
|
|
179
|
-
src: mark.iconImage.asset.url,
|
|
180
|
-
alt: mark.iconImage.alt || "Icon",
|
|
181
|
-
width: 16,
|
|
182
|
-
height: 16,
|
|
183
|
-
className: "h-4 w-4"
|
|
184
|
-
}) : null;
|
|
185
|
-
case "url": return mark.iconUrl ? /* @__PURE__ */ jsx(Image, {
|
|
186
|
-
src: mark.iconUrl,
|
|
187
|
-
alt: "Icon",
|
|
188
|
-
width: 16,
|
|
189
|
-
height: 16,
|
|
190
|
-
className: "h-4 w-4"
|
|
191
|
-
}) : null;
|
|
192
|
-
default: return null;
|
|
193
|
-
}
|
|
194
|
-
};
|
|
195
|
-
return /* @__PURE__ */ jsxs("a", {
|
|
196
|
-
href: mark.href,
|
|
197
|
-
target: mark.target ?? "",
|
|
198
|
-
className: "text-ui-fg-interactive inline-flex items-center gap-1 hover:underline",
|
|
199
|
-
children: [children, renderIcon()]
|
|
200
|
-
});
|
|
201
|
-
};
|
|
202
|
-
const renderTextBlock = (block) => {
|
|
203
|
-
const style = block.style || "normal";
|
|
204
|
-
const children = block.children || [];
|
|
205
|
-
const markDefs = block.markDefs || [];
|
|
206
|
-
const content = children.map((child, index) => /* @__PURE__ */ jsx(Fragment, { children: renderSpan(child, markDefs) }, child._key || index));
|
|
207
|
-
switch (style) {
|
|
208
|
-
case "h1": return /* @__PURE__ */ jsx("h1", {
|
|
209
|
-
className: "mt-8 mb-6 text-4xl font-bold",
|
|
210
|
-
children: content
|
|
211
|
-
});
|
|
212
|
-
case "h2": return /* @__PURE__ */ jsx(Heading, {
|
|
213
|
-
level: "h2",
|
|
214
|
-
className: "mt-6 mb-4 text-3xl font-semibold",
|
|
215
|
-
children: content
|
|
216
|
-
});
|
|
217
|
-
case "h3": return /* @__PURE__ */ jsx(Heading, {
|
|
218
|
-
level: "h3",
|
|
219
|
-
className: "mt-6 mb-4 text-2xl font-semibold",
|
|
220
|
-
children: content
|
|
221
|
-
});
|
|
222
|
-
case "h4": return /* @__PURE__ */ jsx("h4", {
|
|
223
|
-
className: "mt-4 mb-3 text-xl font-semibold",
|
|
224
|
-
children: content
|
|
225
|
-
});
|
|
226
|
-
case "h5": return /* @__PURE__ */ jsx("h5", {
|
|
227
|
-
className: "mt-4 mb-3 text-lg font-semibold",
|
|
228
|
-
children: content
|
|
229
|
-
});
|
|
230
|
-
case "h6": return /* @__PURE__ */ jsx("h6", {
|
|
231
|
-
className: "mt-4 mb-2 text-base font-semibold",
|
|
232
|
-
children: content
|
|
233
|
-
});
|
|
234
|
-
case "blockquote": return /* @__PURE__ */ jsx("blockquote", {
|
|
235
|
-
className: "border-ui-border-base my-4 border-l-4 py-2 pl-4 italic",
|
|
236
|
-
children: /* @__PURE__ */ jsx(Text, { children: content })
|
|
237
|
-
});
|
|
238
|
-
default: return /* @__PURE__ */ jsx(Text, {
|
|
239
|
-
className: "mb-4 leading-relaxed",
|
|
240
|
-
children: content
|
|
241
|
-
});
|
|
242
|
-
}
|
|
243
|
-
};
|
|
244
|
-
const renderImage = (image) => {
|
|
245
|
-
if (!image.asset?.url) return null;
|
|
246
|
-
return /* @__PURE__ */ jsx("div", {
|
|
247
|
-
className: "my-6",
|
|
248
|
-
children: /* @__PURE__ */ jsx(Image, {
|
|
249
|
-
src: image.asset.url,
|
|
250
|
-
alt: image.alt || "",
|
|
251
|
-
width: 800,
|
|
252
|
-
height: 400,
|
|
253
|
-
className: "h-auto w-full rounded-lg"
|
|
254
|
-
})
|
|
255
|
-
});
|
|
256
|
-
};
|
|
257
|
-
const renderFileBlock = (file) => {
|
|
258
|
-
if (!file.asset?.url) return null;
|
|
259
|
-
return /* @__PURE__ */ jsx("div", {
|
|
260
|
-
className: "my-6",
|
|
261
|
-
children: /* @__PURE__ */ jsxs("a", {
|
|
262
|
-
href: file.asset.url,
|
|
263
|
-
target: "_blank",
|
|
264
|
-
rel: "noopener noreferrer",
|
|
265
|
-
className: "border-ui-border-base text-ui-fg-interactive hover:bg-ui-bg-subtle inline-flex items-center gap-2 rounded-lg border p-4",
|
|
266
|
-
children: [
|
|
267
|
-
/* @__PURE__ */ jsx("span", { children: "📎" }),
|
|
268
|
-
/* @__PURE__ */ jsx("span", { children: file.asset.originalFilename || "Download file" }),
|
|
269
|
-
file.asset.size && /* @__PURE__ */ jsxs("span", {
|
|
270
|
-
className: "text-ui-fg-muted text-sm",
|
|
271
|
-
children: [
|
|
272
|
-
"(",
|
|
273
|
-
Math.round(file.asset.size / 1024),
|
|
274
|
-
" KB)"
|
|
275
|
-
]
|
|
276
|
-
})
|
|
277
|
-
]
|
|
278
|
-
})
|
|
279
|
-
});
|
|
280
|
-
};
|
|
281
|
-
const renderList = (items, listType) => {
|
|
282
|
-
return /* @__PURE__ */ jsx(listType === "bullet" ? "ul" : "ol", {
|
|
283
|
-
className: listType === "bullet" ? "list-disc pl-6 mb-4 space-y-1" : "list-decimal pl-6 mb-4 space-y-1",
|
|
284
|
-
children: items.map((item) => {
|
|
285
|
-
const markDefs = item.markDefs || [];
|
|
286
|
-
return /* @__PURE__ */ jsx("li", {
|
|
287
|
-
className: "leading-relaxed",
|
|
288
|
-
children: item.children?.map((child, childIndex) => /* @__PURE__ */ jsx(Fragment, { children: renderSpan(child, markDefs) }, child._key || childIndex))
|
|
289
|
-
}, item._key);
|
|
290
|
-
})
|
|
291
|
-
});
|
|
292
|
-
};
|
|
293
|
-
const renderBlock = (block) => {
|
|
294
|
-
const blockType = getBlockType(block);
|
|
295
|
-
if (blockType === "block" || blockType === "textblock" || blockType === "text") return renderTextBlock(block);
|
|
296
|
-
if (blockType === "image" || blockType === "imageblock") return renderImage(block);
|
|
297
|
-
if (blockType === "file" || blockType === "fileblock") return renderFileBlock(block);
|
|
298
|
-
return null;
|
|
299
|
-
};
|
|
300
|
-
const processedContent = [];
|
|
301
|
-
let currentListItems = [];
|
|
302
|
-
let currentListType = null;
|
|
303
|
-
value.forEach((block, index) => {
|
|
304
|
-
if (getBlockType(block) === "block" && block.listItem) {
|
|
305
|
-
const textBlock = block;
|
|
306
|
-
const listItem = textBlock.listItem || null;
|
|
307
|
-
if (currentListType !== listItem) {
|
|
308
|
-
if (currentListItems.length > 0 && currentListType) processedContent.push(/* @__PURE__ */ jsx(Fragment, { children: renderList(currentListItems, currentListType) }, `list-${index}`));
|
|
309
|
-
currentListItems = [textBlock];
|
|
310
|
-
currentListType = listItem;
|
|
311
|
-
} else currentListItems.push(textBlock);
|
|
312
|
-
} else {
|
|
313
|
-
if (currentListItems.length > 0 && currentListType) {
|
|
314
|
-
processedContent.push(/* @__PURE__ */ jsx(Fragment, { children: renderList(currentListItems, currentListType) }, `list-${index}`));
|
|
315
|
-
currentListItems = [];
|
|
316
|
-
currentListType = null;
|
|
317
|
-
}
|
|
318
|
-
processedContent.push(/* @__PURE__ */ jsx(Fragment, { children: renderBlock(block) }, block._key || index));
|
|
319
|
-
}
|
|
320
|
-
});
|
|
321
|
-
if (currentListItems.length > 0 && currentListType) processedContent.push(/* @__PURE__ */ jsx(Fragment, { children: renderList(currentListItems, currentListType) }, "final-list"));
|
|
322
|
-
return /* @__PURE__ */ jsx("div", {
|
|
323
|
-
className: "prose prose-ui max-w-none",
|
|
324
|
-
children: processedContent
|
|
325
|
-
});
|
|
326
|
-
};
|
|
327
|
-
|
|
328
|
-
//#endregion
|
|
329
|
-
export { PortableText as t };
|
|
330
|
-
//# sourceMappingURL=portable-text-CuI022GH.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"portable-text-CuI022GH.js","names":["content: ReactNode","resolvedIconLinkMark: IconLinkMark | undefined","Spinner","Trash","processedContent: ReactNode[]","currentListItems: TextBlock[]","currentListType: string | null"],"sources":["../src/components/portable-text/index.tsx"],"sourcesContent":["import { Fragment, ReactNode } from 'react';\n\nimport Image from 'next/image';\n\nimport { Back } from '@gfed-medusa/sf-lib-ui/icons/back';\nimport { Bancontact } from '@gfed-medusa/sf-lib-ui/icons/bancontact';\nimport { ChevronDown } from '@gfed-medusa/sf-lib-ui/icons/chevron-down';\nimport { Eye } from '@gfed-medusa/sf-lib-ui/icons/eye';\nimport { EyeOff } from '@gfed-medusa/sf-lib-ui/icons/eye-off';\nimport { FastDelivery } from '@gfed-medusa/sf-lib-ui/icons/fast-delivery';\nimport { Ideal } from '@gfed-medusa/sf-lib-ui/icons/ideal';\nimport { MapPin } from '@gfed-medusa/sf-lib-ui/icons/map-pin';\nimport { Medusa } from '@gfed-medusa/sf-lib-ui/icons/medusa';\nimport { NextJs } from '@gfed-medusa/sf-lib-ui/icons/nextjs';\nimport { Package } from '@gfed-medusa/sf-lib-ui/icons/package';\nimport { PayPal } from '@gfed-medusa/sf-lib-ui/icons/paypal';\nimport { PlaceholderImage } from '@gfed-medusa/sf-lib-ui/icons/placeholder-image';\nimport { Refresh } from '@gfed-medusa/sf-lib-ui/icons/refresh';\nimport { Spinner } from '@gfed-medusa/sf-lib-ui/icons/spinner';\nimport { Trash } from '@gfed-medusa/sf-lib-ui/icons/trash';\nimport { User } from '@gfed-medusa/sf-lib-ui/icons/user';\nimport { X } from '@gfed-medusa/sf-lib-ui/icons/x';\nimport { ArrowUpRightMini } from '@medusajs/icons';\nimport { Heading, Text } from '@medusajs/ui';\n\nimport {\n FileBlock,\n IconLinkMark,\n ImageBlock,\n RichTextBlock,\n Span,\n TextBlock,\n} from '@/types/graphql';\n\ntype PortableTextProps = {\n value: RichTextBlock[];\n};\n\nconst PortableText = ({ value }: PortableTextProps) => {\n if (!value || !Array.isArray(value)) {\n return null;\n }\n\n const getBlockType = (block: RichTextBlock): string => {\n if (block.__typename) {\n const typename = block.__typename.toLowerCase();\n if (typename === 'textblock') return 'block';\n return typename.replace('block', '');\n }\n return 'unknown';\n };\n\n const renderSpan = (\n span: Span,\n markDefs: TextBlock['markDefs']\n ): ReactNode => {\n if (!span.text) return null;\n\n let content: ReactNode = span.text;\n const marks = span.marks || [];\n\n marks.forEach((mark) => {\n if (typeof mark === 'string') {\n switch (mark) {\n case 'strong':\n content = <strong>{content}</strong>;\n break;\n case 'em':\n content = <em>{content}</em>;\n break;\n case 'code':\n content = (\n <code className=\"bg-ui-bg-subtle rounded px-1 py-0.5 font-mono text-sm\">\n {content}\n </code>\n );\n break;\n case 'underline':\n content = <u>{content}</u>;\n break;\n case 'superscript':\n content = <sup>{content}</sup>;\n break;\n case 'subscript':\n content = <sub>{content}</sub>;\n break;\n }\n }\n });\n\n // Handle marks that reference markDefs by _key\n const getMarkByKey = (key: string) => {\n return markDefs?.find((def) => def._key === key);\n };\n\n // Find link marks (both direct objects and references)\n const linkMark = marks.find((mark) => {\n if (typeof mark === 'object') {\n return mark;\n }\n if (typeof mark === 'string') {\n const markDef = getMarkByKey(mark);\n return (\n markDef &&\n (markDef._type === 'link' || markDef.__typename === 'LinkMark')\n );\n }\n return false;\n });\n\n // Find icon link marks (both direct objects and references)\n const iconLinkMark = marks.find((mark) => {\n if (typeof mark === 'object') {\n return mark;\n }\n if (typeof mark === 'string') {\n const markDef = getMarkByKey(mark);\n return (\n markDef &&\n (markDef._type === 'iconlink' ||\n markDef.__typename === 'IconLinkMark')\n );\n }\n return false;\n });\n\n // Get the actual mark object (either direct or from markDefs)\n const resolvedIconLinkMark: IconLinkMark | undefined =\n typeof iconLinkMark === 'string'\n ? (() => {\n const mark = getMarkByKey(iconLinkMark);\n return mark &&\n (mark.__typename === 'IconLinkMark' || mark._type === 'iconlink')\n ? (mark as IconLinkMark)\n : undefined;\n })()\n : iconLinkMark\n ? (iconLinkMark as IconLinkMark)\n : undefined;\n const resolvedLinkMark =\n typeof linkMark === 'string' ? getMarkByKey(linkMark) : linkMark;\n\n if (resolvedIconLinkMark) {\n return renderIconLink(resolvedIconLinkMark, content);\n }\n\n if (resolvedLinkMark) {\n return (\n <a\n href={resolvedLinkMark.href}\n target={resolvedLinkMark.target ?? ''}\n className=\"text-ui-fg-interactive hover:underline\"\n >\n {content}\n </a>\n );\n }\n\n return content;\n };\n\n const renderIconLink = (\n mark: IconLinkMark,\n children: ReactNode\n ): ReactNode => {\n const renderIcon = () => {\n switch (mark.iconType) {\n case 'class':\n return mark.iconClass ? <i className={mark.iconClass} /> : null;\n case 'component':\n switch (mark.iconComponent) {\n case 'ArrowUpRightMini':\n return (\n <ArrowUpRightMini\n fill={mark.iconFill ?? ''}\n className=\"h-4 w-4\"\n />\n );\n case 'Back':\n return <Back size={16} fill={mark.iconFill ?? ''} />;\n case 'Bancontact':\n return <Bancontact size={16} fill={mark.iconFill ?? ''} />;\n case 'ChevronDown':\n return <ChevronDown size={16} fill={mark.iconFill ?? ''} />;\n case 'Eye':\n return <Eye size={16} fill={mark.iconFill ?? ''} />;\n case 'EyeOff':\n return <EyeOff size={16} fill={mark.iconFill ?? ''} />;\n case 'FastDelivery':\n return <FastDelivery size={16} fill={mark.iconFill ?? ''} />;\n case 'Ideal':\n return <Ideal size={16} fill={mark.iconFill ?? ''} />;\n case 'MapPin':\n return <MapPin size={16} fill={mark.iconFill ?? ''} />;\n case 'Medusa':\n return <Medusa size={16} fill={mark.iconFill ?? ''} />;\n case 'NextJs':\n return <NextJs size={16} fill={mark.iconFill ?? ''} />;\n case 'Package':\n return <Package size={16} fill={mark.iconFill ?? ''} />;\n case 'PayPal':\n return <PayPal />;\n case 'PlaceholderImage':\n return <PlaceholderImage size={16} fill={mark.iconFill ?? ''} />;\n case 'Refresh':\n return <Refresh size={16} fill={mark.iconFill ?? ''} />;\n case 'Spinner':\n return <Spinner size={16} fill={mark.iconFill ?? ''} />;\n case 'Trash':\n return <Trash size={16} fill={mark.iconFill ?? ''} />;\n case 'User':\n return <User size={16} fill={mark.iconFill ?? ''} />;\n case 'X':\n return <X size={16} fill={mark.iconFill ?? ''} />;\n default:\n return null;\n }\n case 'sanity':\n return mark.iconImage?.asset?.url ? (\n <Image\n src={mark.iconImage.asset.url}\n alt={mark.iconImage.alt || 'Icon'}\n width={16}\n height={16}\n className=\"h-4 w-4\"\n />\n ) : null;\n case 'url':\n return mark.iconUrl ? (\n <Image\n src={mark.iconUrl}\n alt=\"Icon\"\n width={16}\n height={16}\n className=\"h-4 w-4\"\n />\n ) : null;\n default:\n return null;\n }\n };\n\n return (\n <a\n href={mark.href}\n target={mark.target ?? ''}\n className=\"text-ui-fg-interactive inline-flex items-center gap-1 hover:underline\"\n >\n {children}\n {renderIcon()}\n </a>\n );\n };\n\n const renderTextBlock = (block: TextBlock): ReactNode => {\n const style = block.style || 'normal';\n const children = block.children || [];\n const markDefs = block.markDefs || [];\n\n const content = children.map((child, index) => (\n <Fragment key={child._key || index}>\n {renderSpan(child, markDefs)}\n </Fragment>\n ));\n\n switch (style) {\n case 'h1':\n return <h1 className=\"mt-8 mb-6 text-4xl font-bold\">{content}</h1>;\n case 'h2':\n return (\n <Heading level=\"h2\" className=\"mt-6 mb-4 text-3xl font-semibold\">\n {content}\n </Heading>\n );\n case 'h3':\n return (\n <Heading level=\"h3\" className=\"mt-6 mb-4 text-2xl font-semibold\">\n {content}\n </Heading>\n );\n case 'h4':\n return <h4 className=\"mt-4 mb-3 text-xl font-semibold\">{content}</h4>;\n case 'h5':\n return <h5 className=\"mt-4 mb-3 text-lg font-semibold\">{content}</h5>;\n case 'h6':\n return <h6 className=\"mt-4 mb-2 text-base font-semibold\">{content}</h6>;\n case 'blockquote':\n return (\n <blockquote className=\"border-ui-border-base my-4 border-l-4 py-2 pl-4 italic\">\n <Text>{content}</Text>\n </blockquote>\n );\n default:\n return <Text className=\"mb-4 leading-relaxed\">{content}</Text>;\n }\n };\n\n const renderImage = (image: ImageBlock): ReactNode => {\n if (!image.asset?.url) return null;\n\n return (\n <div className=\"my-6\">\n <Image\n src={image.asset.url}\n alt={image.alt || ''}\n width={800}\n height={400}\n className=\"h-auto w-full rounded-lg\"\n />\n </div>\n );\n };\n\n const renderFileBlock = (file: FileBlock): ReactNode => {\n if (!file.asset?.url) return null;\n\n return (\n <div className=\"my-6\">\n <a\n href={file.asset.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"border-ui-border-base text-ui-fg-interactive hover:bg-ui-bg-subtle inline-flex items-center gap-2 rounded-lg border p-4\"\n >\n <span>📎</span>\n <span>{file.asset.originalFilename || 'Download file'}</span>\n {file.asset.size && (\n <span className=\"text-ui-fg-muted text-sm\">\n ({Math.round(file.asset.size / 1024)} KB)\n </span>\n )}\n </a>\n </div>\n );\n };\n\n const renderList = (items: TextBlock[], listType: string): ReactNode => {\n const ListComponent = listType === 'bullet' ? 'ul' : 'ol';\n const listClass =\n listType === 'bullet'\n ? 'list-disc pl-6 mb-4 space-y-1'\n : 'list-decimal pl-6 mb-4 space-y-1';\n\n return (\n <ListComponent className={listClass}>\n {items.map((item) => {\n const markDefs = item.markDefs || [];\n return (\n <li key={item._key} className=\"leading-relaxed\">\n {item.children?.map((child, childIndex) => (\n <Fragment key={child._key || childIndex}>\n {renderSpan(child, markDefs)}\n </Fragment>\n ))}\n </li>\n );\n })}\n </ListComponent>\n );\n };\n\n const renderBlock = (block: RichTextBlock): ReactNode => {\n const blockType = getBlockType(block);\n\n if (\n blockType === 'block' ||\n blockType === 'textblock' ||\n blockType === 'text'\n ) {\n return renderTextBlock(block as TextBlock);\n }\n\n if (blockType === 'image' || blockType === 'imageblock') {\n return renderImage(block as ImageBlock);\n }\n\n if (blockType === 'file' || blockType === 'fileblock') {\n return renderFileBlock(block as FileBlock);\n }\n\n return null;\n };\n\n // Process blocks and group consecutive list items\n const processedContent: ReactNode[] = [];\n let currentListItems: TextBlock[] = [];\n let currentListType: string | null = null;\n\n value.forEach((block: RichTextBlock, index: number) => {\n const blockType = getBlockType(block);\n\n if (blockType === 'block' && (block as TextBlock).listItem) {\n const textBlock = block as TextBlock;\n const listItem = textBlock.listItem || null;\n if (currentListType !== listItem) {\n if (currentListItems.length > 0 && currentListType) {\n processedContent.push(\n <Fragment key={`list-${index}`}>\n {renderList(currentListItems, currentListType)}\n </Fragment>\n );\n }\n currentListItems = [textBlock];\n currentListType = listItem;\n } else {\n currentListItems.push(textBlock);\n }\n } else {\n if (currentListItems.length > 0 && currentListType) {\n processedContent.push(\n <Fragment key={`list-${index}`}>\n {renderList(currentListItems, currentListType)}\n </Fragment>\n );\n currentListItems = [];\n currentListType = null;\n }\n processedContent.push(\n <Fragment key={block._key || index}>{renderBlock(block)}</Fragment>\n );\n }\n });\n\n if (currentListItems.length > 0 && currentListType) {\n processedContent.push(\n <Fragment key=\"final-list\">\n {renderList(currentListItems, currentListType)}\n </Fragment>\n );\n }\n\n return <div className=\"prose prose-ui max-w-none\">{processedContent}</div>;\n};\n\nexport { PortableText };\n"],"mappings":"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"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Text, clx } from "@medusajs/ui";
|
|
3
|
-
|
|
4
|
-
//#region src/components/preview-price/index.tsx
|
|
5
|
-
function PreviewPrice({ price }) {
|
|
6
|
-
if (!price) return null;
|
|
7
|
-
return /* @__PURE__ */ jsxs(Fragment, { children: [price.price_type === "sale" && /* @__PURE__ */ jsx(Text, {
|
|
8
|
-
className: "text-ui-fg-muted line-through",
|
|
9
|
-
"data-testid": "original-price",
|
|
10
|
-
children: price.original_price
|
|
11
|
-
}), /* @__PURE__ */ jsx(Text, {
|
|
12
|
-
className: clx("text-ui-fg-muted", { "text-ui-fg-interactive": price.price_type === "sale" }),
|
|
13
|
-
"data-testid": "price",
|
|
14
|
-
children: price.calculated_price
|
|
15
|
-
})] });
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
//#endregion
|
|
19
|
-
export { PreviewPrice as t };
|
|
20
|
-
//# sourceMappingURL=preview-price-_4sxkXQs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"preview-price-_4sxkXQs.js","names":[],"sources":["../src/components/preview-price/index.tsx"],"sourcesContent":["import { Text, clx } from '@medusajs/ui';\n\nimport { VariantPrice } from '@/types/prices';\n\nfunction PreviewPrice({ price }: { price: VariantPrice }) {\n if (!price) {\n return null;\n }\n\n return (\n <>\n {price.price_type === 'sale' && (\n <Text\n className=\"text-ui-fg-muted line-through\"\n data-testid=\"original-price\"\n >\n {price.original_price}\n </Text>\n )}\n <Text\n className={clx('text-ui-fg-muted', {\n 'text-ui-fg-interactive': price.price_type === 'sale',\n })}\n data-testid=\"price\"\n >\n {price.calculated_price}\n </Text>\n </>\n );\n}\n\nexport { PreviewPrice };\n"],"mappings":";;;;AAIA,SAAS,aAAa,EAAE,SAAkC;AACxD,KAAI,CAAC,MACH,QAAO;AAGT,QACE,4CACG,MAAM,eAAe,UACpB,oBAAC;EACC,WAAU;EACV,eAAY;YAEX,MAAM;GACF,EAET,oBAAC;EACC,WAAW,IAAI,oBAAoB,EACjC,0BAA0B,MAAM,eAAe,QAChD,CAAC;EACF,eAAY;YAEX,MAAM;GACF,IACN"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { StorePrice } from "@medusajs/types";
|
|
2
|
-
|
|
3
|
-
//#region src/types/prices.d.ts
|
|
4
|
-
type VariantPrice = {
|
|
5
|
-
calculated_price_number: number;
|
|
6
|
-
calculated_price: string;
|
|
7
|
-
original_price_number: number;
|
|
8
|
-
original_price: string;
|
|
9
|
-
currency_code: string;
|
|
10
|
-
price_type: string;
|
|
11
|
-
percentage_diff: string;
|
|
12
|
-
};
|
|
13
|
-
type StoreFreeShippingPrice = StorePrice & {
|
|
14
|
-
target_reached: boolean;
|
|
15
|
-
target_remaining: number;
|
|
16
|
-
remaining_percentage: number;
|
|
17
|
-
};
|
|
18
|
-
//#endregion
|
|
19
|
-
export { VariantPrice as n, StoreFreeShippingPrice as t };
|
|
20
|
-
//# sourceMappingURL=prices-eO1YBciD.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prices-eO1YBciD.d.ts","names":[],"sources":["../src/types/prices.ts"],"sourcesContent":[],"mappings":";;;KAEY,YAAA;;EAAA,gBAAY,EAAA,MAAA;EAUZ,qBAAA,EAAA,MAAsB;;;;;;KAAtB,sBAAA,GAAyB"}
|
package/dist/product-C3HQUIgX.js
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { a as PRODUCT_HIT_FRAGMENT, r as PRODUCT_CATEGORY_FRAGMENT } from "./product-COu5D1mS.js";
|
|
2
|
-
import { gql } from "@apollo/client";
|
|
3
|
-
|
|
4
|
-
//#region src/lib/gql/queries/product.ts
|
|
5
|
-
const SEARCH_SUGGESTIONS_QUERY = gql`
|
|
6
|
-
query SearchSuggestions($query: String!) {
|
|
7
|
-
searchProducts(query: $query) {
|
|
8
|
-
items {
|
|
9
|
-
...ProductHit
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
${PRODUCT_HIT_FRAGMENT}
|
|
14
|
-
`;
|
|
15
|
-
const GET_PRODUCT_CATEGORIES_QUERY = gql`
|
|
16
|
-
query GetProductCategories(
|
|
17
|
-
$limit: Int
|
|
18
|
-
$offset: Int
|
|
19
|
-
$q: String
|
|
20
|
-
$handle: String
|
|
21
|
-
$parent_category_id: String
|
|
22
|
-
) {
|
|
23
|
-
productCategories(
|
|
24
|
-
limit: $limit
|
|
25
|
-
offset: $offset
|
|
26
|
-
q: $q
|
|
27
|
-
handle: $handle
|
|
28
|
-
parent_category_id: $parent_category_id
|
|
29
|
-
) {
|
|
30
|
-
...ProductCategory
|
|
31
|
-
parentCategory {
|
|
32
|
-
...ProductCategory
|
|
33
|
-
}
|
|
34
|
-
categoryChildren {
|
|
35
|
-
...ProductCategory
|
|
36
|
-
}
|
|
37
|
-
products {
|
|
38
|
-
count
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
${PRODUCT_CATEGORY_FRAGMENT}
|
|
43
|
-
`;
|
|
44
|
-
|
|
45
|
-
//#endregion
|
|
46
|
-
export { SEARCH_SUGGESTIONS_QUERY as n, GET_PRODUCT_CATEGORIES_QUERY as t };
|
|
47
|
-
//# sourceMappingURL=product-C3HQUIgX.js.map
|
package/dist/product-COu5D1mS.js
DELETED
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import { gql } from "@apollo/client";
|
|
2
|
-
|
|
3
|
-
//#region src/lib/gql/fragments/product.ts
|
|
4
|
-
const PRICE_FRAGMENT = gql`
|
|
5
|
-
fragment Price on Price {
|
|
6
|
-
amount
|
|
7
|
-
currencyCode
|
|
8
|
-
priceType
|
|
9
|
-
}
|
|
10
|
-
`;
|
|
11
|
-
const PRODUCT_VARIANT_FRAGMENT = gql`
|
|
12
|
-
fragment ProductVariant on ProductVariant {
|
|
13
|
-
id
|
|
14
|
-
sku
|
|
15
|
-
inventoryQuantity
|
|
16
|
-
allowBackorder
|
|
17
|
-
manageInventory
|
|
18
|
-
title
|
|
19
|
-
options {
|
|
20
|
-
id
|
|
21
|
-
optionId
|
|
22
|
-
value
|
|
23
|
-
}
|
|
24
|
-
price {
|
|
25
|
-
...Price
|
|
26
|
-
}
|
|
27
|
-
originalPrice {
|
|
28
|
-
...Price
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
${PRICE_FRAGMENT}
|
|
32
|
-
`;
|
|
33
|
-
const PRODUCT_HIT_FRAGMENT = gql`
|
|
34
|
-
fragment ProductHit on ProductHit {
|
|
35
|
-
id
|
|
36
|
-
title
|
|
37
|
-
description
|
|
38
|
-
handle
|
|
39
|
-
thumbnail
|
|
40
|
-
}
|
|
41
|
-
`;
|
|
42
|
-
const PRODUCT_CATEGORY_FRAGMENT = gql`
|
|
43
|
-
fragment ProductCategory on ProductCategory {
|
|
44
|
-
id
|
|
45
|
-
name
|
|
46
|
-
description
|
|
47
|
-
handle
|
|
48
|
-
}
|
|
49
|
-
`;
|
|
50
|
-
const PRODUCT_COLLECTION_FRAGMENT = gql`
|
|
51
|
-
fragment ProductCollection on Collection {
|
|
52
|
-
id
|
|
53
|
-
title
|
|
54
|
-
handle
|
|
55
|
-
}
|
|
56
|
-
`;
|
|
57
|
-
const PRODUCT_IMAGE_FRAGMENT = gql`
|
|
58
|
-
fragment ProductImage on ProductImage {
|
|
59
|
-
id
|
|
60
|
-
url
|
|
61
|
-
}
|
|
62
|
-
`;
|
|
63
|
-
const COLLECTION_PRODUCTS_FRAGMENT = gql`
|
|
64
|
-
fragment CollectionProducts on ProductList {
|
|
65
|
-
count
|
|
66
|
-
items {
|
|
67
|
-
id
|
|
68
|
-
title
|
|
69
|
-
handle
|
|
70
|
-
thumbnail
|
|
71
|
-
images {
|
|
72
|
-
...ProductImage
|
|
73
|
-
}
|
|
74
|
-
variants {
|
|
75
|
-
price {
|
|
76
|
-
...Price
|
|
77
|
-
}
|
|
78
|
-
originalPrice {
|
|
79
|
-
...Price
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
${PRODUCT_IMAGE_FRAGMENT}
|
|
85
|
-
${PRICE_FRAGMENT}
|
|
86
|
-
`;
|
|
87
|
-
|
|
88
|
-
//#endregion
|
|
89
|
-
export { PRODUCT_HIT_FRAGMENT as a, PRODUCT_COLLECTION_FRAGMENT as i, PRICE_FRAGMENT as n, PRODUCT_IMAGE_FRAGMENT as o, PRODUCT_CATEGORY_FRAGMENT as r, PRODUCT_VARIANT_FRAGMENT as s, COLLECTION_PRODUCTS_FRAGMENT as t };
|
|
90
|
-
//# sourceMappingURL=product-COu5D1mS.js.map
|
package/dist/regions-r1AvxfT8.js
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { t as sdk } from "./medusa-TumrpCF2.js";
|
|
2
|
-
import { t as medusaError } from "./medusa-error-DDhA6RGC.js";
|
|
3
|
-
import { n as getCacheOptions } from "./cookies-lksVIe4_.js";
|
|
4
|
-
import { n as normalizeRegion } from "./normalize-functions-Bqr-JkYn.js";
|
|
5
|
-
|
|
6
|
-
//#region src/lib/data/regions.ts
|
|
7
|
-
const regionMap = /* @__PURE__ */ new Map();
|
|
8
|
-
const listRegions = async () => {
|
|
9
|
-
const next = { ...await getCacheOptions("regions") };
|
|
10
|
-
return sdk.client.fetch(`/store/regions`, {
|
|
11
|
-
method: "GET",
|
|
12
|
-
next,
|
|
13
|
-
cache: "force-cache"
|
|
14
|
-
}).then(({ regions }) => regions.map(normalizeRegion)).catch(medusaError);
|
|
15
|
-
};
|
|
16
|
-
const getRegion = async (countryCode) => {
|
|
17
|
-
try {
|
|
18
|
-
if (regionMap.has(countryCode)) return regionMap.get(countryCode) ?? null;
|
|
19
|
-
const regions = await listRegions();
|
|
20
|
-
if (!regions) return null;
|
|
21
|
-
regions.forEach((region) => {
|
|
22
|
-
region.countries?.forEach((c) => {
|
|
23
|
-
regionMap.set(c?.iso2 ?? "", region);
|
|
24
|
-
});
|
|
25
|
-
});
|
|
26
|
-
return countryCode ? regionMap.get(countryCode) ?? null : regionMap.get("us") ?? null;
|
|
27
|
-
} catch (e) {
|
|
28
|
-
return null;
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
//#endregion
|
|
33
|
-
export { listRegions as n, getRegion as t };
|
|
34
|
-
//# sourceMappingURL=regions-r1AvxfT8.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"regions-r1AvxfT8.js","names":["e: any"],"sources":["../src/lib/data/regions.ts"],"sourcesContent":["import { HttpTypes } from '@medusajs/types';\n\nimport { sdk } from '@/lib/config/medusa';\nimport { medusaError } from '@/lib/utils/medusa-error';\nimport { normalizeRegion } from '@/lib/utils/normalize-functions';\nimport { Region } from '@/types/graphql';\n\nimport { getCacheOptions } from './cookies';\n\nconst regionMap = new Map<string, Region>();\n\nexport const listRegions = async () => {\n const next = {\n ...(await getCacheOptions('regions')),\n };\n\n return sdk.client\n .fetch<{ regions: HttpTypes.StoreRegion[] }>(`/store/regions`, {\n method: 'GET',\n next,\n cache: 'force-cache',\n })\n .then(({ regions }) => regions.map(normalizeRegion))\n .catch(medusaError);\n};\n\nexport const getRegion = async (\n countryCode: string\n): Promise<Region | null> => {\n try {\n if (regionMap.has(countryCode)) {\n return regionMap.get(countryCode) ?? null;\n }\n\n const regions = await listRegions();\n\n if (!regions) return null;\n\n regions.forEach((region) => {\n region.countries?.forEach((c) => {\n regionMap.set(c?.iso2 ?? '', region);\n });\n });\n\n const region = countryCode\n ? (regionMap.get(countryCode) ?? null)\n : (regionMap.get('us') ?? null);\n\n return region;\n } catch (e: any) {\n return null;\n }\n};\n"],"mappings":";;;;;;AASA,MAAM,4BAAY,IAAI,KAAqB;AAE3C,MAAa,cAAc,YAAY;CACrC,MAAM,OAAO,EACX,GAAI,MAAM,gBAAgB,UAAU,EACrC;AAED,QAAO,IAAI,OACR,MAA4C,kBAAkB;EAC7D,QAAQ;EACR;EACA,OAAO;EACR,CAAC,CACD,MAAM,EAAE,cAAc,QAAQ,IAAI,gBAAgB,CAAC,CACnD,MAAM,YAAY;;AAGvB,MAAa,YAAY,OACvB,gBAC2B;AAC3B,KAAI;AACF,MAAI,UAAU,IAAI,YAAY,CAC5B,QAAO,UAAU,IAAI,YAAY,IAAI;EAGvC,MAAM,UAAU,MAAM,aAAa;AAEnC,MAAI,CAAC,QAAS,QAAO;AAErB,UAAQ,SAAS,WAAW;AAC1B,UAAO,WAAW,SAAS,MAAM;AAC/B,cAAU,IAAI,GAAG,QAAQ,IAAI,OAAO;KACpC;IACF;AAMF,SAJe,cACV,UAAU,IAAI,YAAY,IAAI,OAC9B,UAAU,IAAI,KAAK,IAAI;UAGrBA,GAAQ;AACf,SAAO"}
|
package/dist/search-D7Gw7jAk.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { r as graphqlFetch } from "./apollo-client-Bw50r80c.js";
|
|
2
|
-
import { n as SEARCH_SUGGESTIONS_QUERY } from "./product-C3HQUIgX.js";
|
|
3
|
-
|
|
4
|
-
//#region src/lib/data/search.ts
|
|
5
|
-
const searchSuggestions = async (params) => {
|
|
6
|
-
try {
|
|
7
|
-
const response = await graphqlFetch({
|
|
8
|
-
query: SEARCH_SUGGESTIONS_QUERY,
|
|
9
|
-
variables: { query: params.query }
|
|
10
|
-
});
|
|
11
|
-
if (!response?.searchProducts) throw new Error("No search results returned");
|
|
12
|
-
return response.searchProducts;
|
|
13
|
-
} catch (error) {
|
|
14
|
-
console.error("Search error:", error);
|
|
15
|
-
throw new Error(`Failed to search suggestions: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
16
|
-
}
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
//#endregion
|
|
20
|
-
export { searchSuggestions as t };
|
|
21
|
-
//# sourceMappingURL=search-D7Gw7jAk.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"search-D7Gw7jAk.js","names":[],"sources":["../src/lib/data/search.ts"],"sourcesContent":["'use server';\n\nimport { graphqlFetch } from '@/lib/gql/apollo-client';\nimport { SEARCH_SUGGESTIONS_QUERY } from '@/lib/gql/queries/product';\nimport {\n ProductHit,\n SearchSuggestionsQuery,\n SearchSuggestionsQueryVariables,\n} from '@/types/graphql';\n\nexport const searchSuggestions = async (\n params: SearchSuggestionsQueryVariables\n): Promise<{ items: ProductHit[] }> => {\n try {\n const response = await graphqlFetch<\n SearchSuggestionsQuery,\n SearchSuggestionsQueryVariables\n >({\n query: SEARCH_SUGGESTIONS_QUERY,\n variables: {\n query: params.query,\n },\n });\n\n if (!response?.searchProducts) {\n throw new Error('No search results returned');\n }\n\n return response.searchProducts;\n } catch (error) {\n console.error('Search error:', error);\n throw new Error(\n `Failed to search suggestions: ${error instanceof Error ? error.message : 'Unknown error'}`\n );\n }\n};\n"],"mappings":";;;;AAUA,MAAa,oBAAoB,OAC/B,WACqC;AACrC,KAAI;EACF,MAAM,WAAW,MAAM,aAGrB;GACA,OAAO;GACP,WAAW,EACT,OAAO,OAAO,OACf;GACF,CAAC;AAEF,MAAI,CAAC,UAAU,eACb,OAAM,IAAI,MAAM,6BAA6B;AAG/C,SAAO,SAAS;UACT,OAAO;AACd,UAAQ,MAAM,iBAAiB,MAAM;AACrC,QAAM,IAAI,MACR,iCAAiC,iBAAiB,QAAQ,MAAM,UAAU,kBAC3E"}
|