@gfed-medusa/sf-lib-common 3.8.0 → 3.9.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.
Files changed (67) hide show
  1. package/dist/components/breadcrumbs/index.d.ts +2 -2
  2. package/dist/components/breadcrumbs/index.d.ts.map +1 -1
  3. package/dist/components/cart-mismatch-banner/index.d.ts +2 -2
  4. package/dist/components/cart-mismatch-banner/index.d.ts.map +1 -1
  5. package/dist/components/delete-button/index.d.ts +2 -2
  6. package/dist/components/error-message/index.d.ts +2 -2
  7. package/dist/components/free-shipping-price-nudge/index.d.ts +2 -2
  8. package/dist/components/free-shipping-price-nudge/index.d.ts.map +1 -1
  9. package/dist/components/interactive-link/index.d.ts +2 -2
  10. package/dist/components/interactive-link/index.d.ts.map +1 -1
  11. package/dist/components/line-item-options/index.d.ts +2 -2
  12. package/dist/components/line-item-options/index.d.ts.map +1 -1
  13. package/dist/components/line-item-price/index.d.ts +2 -2
  14. package/dist/components/line-item-price/index.d.ts.map +1 -1
  15. package/dist/components/localized-client-link/index.d.ts +2 -2
  16. package/dist/components/personalized-content/components/featured-category-rail.d.ts +22 -0
  17. package/dist/components/personalized-content/components/featured-category-rail.d.ts.map +1 -0
  18. package/dist/components/personalized-content/components/featured-category-rail.js +50 -0
  19. package/dist/components/personalized-content/components/featured-category-rail.js.map +1 -0
  20. package/dist/components/personalized-content/components/hero-banner.d.ts +2 -2
  21. package/dist/components/personalized-content/components/hero-banner.d.ts.map +1 -1
  22. package/dist/components/personalized-content/components/index.d.ts +2 -1
  23. package/dist/components/personalized-content/components/index.js +2 -1
  24. package/dist/components/preview-price/index.d.ts +2 -2
  25. package/dist/components/preview-price/index.d.ts.map +1 -1
  26. package/dist/components/product-card/index.d.ts +2 -2
  27. package/dist/components/product-card/index.d.ts.map +1 -1
  28. package/dist/components/product-preview/index.d.ts +2 -2
  29. package/dist/components/product-preview/index.d.ts.map +1 -1
  30. package/dist/components/submit-button/index.d.ts +2 -2
  31. package/dist/components/submit-button/index.d.ts.map +1 -1
  32. package/dist/lib/context/apollo-context.d.ts +2 -2
  33. package/dist/lib/gql/fragments/cart.d.ts +9 -9
  34. package/dist/lib/gql/fragments/cart.d.ts.map +1 -1
  35. package/dist/lib/gql/fragments/customer.d.ts +3 -3
  36. package/dist/lib/gql/fragments/product.d.ts +8 -8
  37. package/dist/lib/gql/mutations/cart.d.ts +6 -6
  38. package/dist/lib/gql/mutations/cart.d.ts.map +1 -1
  39. package/dist/lib/gql/queries/cart-summary.d.ts +2 -2
  40. package/dist/lib/gql/queries/cart-total.d.ts +2 -2
  41. package/dist/lib/gql/queries/cart.d.ts +2 -2
  42. package/dist/lib/gql/queries/collections.d.ts +3 -3
  43. package/dist/lib/gql/queries/customer.d.ts +2 -2
  44. package/dist/lib/gql/queries/footer.d.ts +3 -3
  45. package/dist/lib/gql/queries/order.d.ts +4 -4
  46. package/dist/lib/gql/queries/product-personalization.d.ts +2 -2
  47. package/dist/lib/gql/queries/product.d.ts +2 -2
  48. package/dist/lib/gql/queries/regions.d.ts +3 -3
  49. package/dist/lib/personalization/config.d.ts +1 -9
  50. package/dist/lib/personalization/config.d.ts.map +1 -1
  51. package/dist/lib/personalization/config.js +1 -42
  52. package/dist/lib/personalization/config.js.map +1 -1
  53. package/dist/lib/personalization/device-id.js +2 -3
  54. package/dist/lib/personalization/device-id.js.map +1 -1
  55. package/package.json +1 -1
  56. package/dist/lib/data/home-banner.d.ts +0 -11
  57. package/dist/lib/data/home-banner.d.ts.map +0 -1
  58. package/dist/lib/data/home-banner.js +0 -22
  59. package/dist/lib/data/home-banner.js.map +0 -1
  60. package/dist/lib/gql/queries/home-banner.d.ts +0 -7
  61. package/dist/lib/gql/queries/home-banner.d.ts.map +0 -1
  62. package/dist/lib/gql/queries/home-banner.js +0 -46
  63. package/dist/lib/gql/queries/home-banner.js.map +0 -1
  64. package/dist/lib/personalization/behavior-tracker.d.ts +0 -11
  65. package/dist/lib/personalization/behavior-tracker.d.ts.map +0 -1
  66. package/dist/lib/personalization/behavior-tracker.js +0 -21
  67. package/dist/lib/personalization/behavior-tracker.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime16 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
2
2
 
3
3
  //#region src/components/breadcrumbs/index.d.ts
4
4
  declare const SEPARATOR_ICONS: Record<string, React.ComponentType<{
@@ -14,7 +14,7 @@ declare function Breadcrumbs({
14
14
  iconClassName,
15
15
  iconSize,
16
16
  separatorIcon
17
- }: BreadcrumbsProps): react_jsx_runtime16.JSX.Element;
17
+ }: BreadcrumbsProps): react_jsx_runtime0.JSX.Element;
18
18
  //#endregion
19
19
  export { Breadcrumbs };
20
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/breadcrumbs/index.tsx"],"sourcesContent":[],"mappings":";;;cAiBM,iBAAiB,eAErB,KAAA,CAAM;;;AAyCW,CAAA,CAAA,CAAA;AA3CU,UAQnB,gBAAA,CAAgB;EA+BjB,aAAA,CAAW,EAAA,MAAA,OA9BW,eA8BX;EAClB,QAAA,CAAA,EAAA,MAAA;EACA,aAAA,CAAA,EAAA,MAAA;;iBAFO,WAAA,CAIN;EAAA,aAAA;EAAA,QAAA;EAAA;AAAA,CAAA,EAAA,gBAAA,CAAA,EAAgB,mBAAA,CAAA,GAAA,CAAA,OAAhB"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/breadcrumbs/index.tsx"],"sourcesContent":[],"mappings":";;;cAiBM,iBAAiB,eAErB,KAAA,CAAM;;;AAyCW,CAAA,CAAA,CAAA;AA3CU,UAQnB,gBAAA,CAAgB;EA+BjB,aAAA,CAAW,EAAA,MAAA,OA9BW,eA8BX;EAClB,QAAA,CAAA,EAAA,MAAA;EACA,aAAA,CAAA,EAAA,MAAA;;iBAFO,WAAA,CAIN;EAAA,aAAA;EAAA,QAAA;EAAA;AAAA,CAAA,EAAA,gBAAA,CAAA,EAAgB,kBAAA,CAAA,GAAA,CAAA,OAAhB"}
@@ -1,11 +1,11 @@
1
1
  import { Cart, Customer } from "../../types/graphql.js";
2
- import * as react_jsx_runtime12 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/cart-mismatch-banner/index.d.ts
5
5
  declare function CartMismatchBanner(props: {
6
6
  customer: Customer;
7
7
  cart: Cart;
8
- }): react_jsx_runtime12.JSX.Element | undefined;
8
+ }): react_jsx_runtime0.JSX.Element | undefined;
9
9
  //#endregion
10
10
  export { CartMismatchBanner };
11
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/cart-mismatch-banner/index.tsx"],"sourcesContent":[],"mappings":";;;;iBAYS,kBAAA;YAAsC;EAAtC,IAAA,EAAsD,IAAtD;CAAsC,CAAA,EAAsB,mBAAA,CAAA,GAAA,CAAA,OAAA,GAAtB,SAAA"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/cart-mismatch-banner/index.tsx"],"sourcesContent":[],"mappings":";;;;iBAYS,kBAAA;YAAsC;EAAtC,IAAA,EAAsD,IAAtD;CAAsC,CAAA,EAAsB,kBAAA,CAAA,GAAA,CAAA,OAAA,GAAtB,SAAA"}
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime13 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime11 from "react/jsx-runtime";
2
2
 
3
3
  //#region src/components/delete-button/index.d.ts
4
4
  declare const DeleteButton: ({
@@ -9,7 +9,7 @@ declare const DeleteButton: ({
9
9
  id: string;
10
10
  children?: React.ReactNode;
11
11
  className?: string;
12
- }) => react_jsx_runtime13.JSX.Element;
12
+ }) => react_jsx_runtime11.JSX.Element;
13
13
  //#endregion
14
14
  export { DeleteButton };
15
15
  //# sourceMappingURL=index.d.ts.map
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime10 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime16 from "react/jsx-runtime";
2
2
 
3
3
  //#region src/components/error-message/index.d.ts
4
4
  declare const ErrorMessage: ({
@@ -7,7 +7,7 @@ declare const ErrorMessage: ({
7
7
  }: {
8
8
  error?: string | null;
9
9
  "data-testid"?: string;
10
- }) => react_jsx_runtime10.JSX.Element | null;
10
+ }) => react_jsx_runtime16.JSX.Element | null;
11
11
  //#endregion
12
12
  export { ErrorMessage };
13
13
  //# sourceMappingURL=index.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import { Cart, ShippingOption } from "../../types/graphql.js";
2
- import * as react_jsx_runtime11 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime2 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/free-shipping-price-nudge/index.d.ts
5
5
  declare function ShippingPriceNudge({
@@ -10,7 +10,7 @@ declare function ShippingPriceNudge({
10
10
  variant?: 'popup' | 'inline';
11
11
  cart: Cart;
12
12
  shippingOptions: ShippingOption[];
13
- }): react_jsx_runtime11.JSX.Element | undefined;
13
+ }): react_jsx_runtime2.JSX.Element | undefined;
14
14
  //#endregion
15
15
  export { ShippingPriceNudge };
16
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/free-shipping-price-nudge/index.tsx"],"sourcesContent":[],"mappings":";;;;iBAqES,kBAAA;;;;;;QAMD;EANC,eAAA,EAOU,cAPQ,EAAA;CACzB,CAAA,EAOD,mBAAA,CAAA,GAAA,CAAA,OAAA,GAPC,SAAA"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/free-shipping-price-nudge/index.tsx"],"sourcesContent":[],"mappings":";;;;iBAqES,kBAAA;;;;;;QAMD;EANC,eAAA,EAOU,cAPQ,EAAA;CACzB,CAAA,EAOD,kBAAA,CAAA,GAAA,CAAA,OAAA,GAPC,SAAA"}
@@ -1,5 +1,5 @@
1
1
  import { LocalizedClientLink } from "../localized-client-link/index.js";
2
- import * as react_jsx_runtime15 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime3 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/interactive-link/index.d.ts
5
5
  type InteractiveLinkProps = React.ComponentPropsWithoutRef<typeof LocalizedClientLink> & {
@@ -14,7 +14,7 @@ declare const InteractiveLink: ({
14
14
  textClassName,
15
15
  iconClassName,
16
16
  ...props
17
- }: InteractiveLinkProps) => react_jsx_runtime15.JSX.Element;
17
+ }: InteractiveLinkProps) => react_jsx_runtime3.JSX.Element;
18
18
  //#endregion
19
19
  export { InteractiveLink };
20
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/interactive-link/index.tsx"],"sourcesContent":[],"mappings":";;;;KAKK,oBAAA,GAAuB,KAAA,CAAM,gCACzB;;;AAHsD,CAAA;AAEL,cAOpD,eA0BL,EAAA,CAAA;EAAA,IAAA;EAAA,QAAA;EAAA,OAAA;EAAA,SAAA;EAAA,aAAA;EAAA,aAAA;EAAA,GAAA;AAAA,CAAA,EAlBE,oBAkBF,EAAA,GAlBsB,mBAAA,CAAA,GAAA,CAAA,OAkBtB"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/interactive-link/index.tsx"],"sourcesContent":[],"mappings":";;;;KAKK,oBAAA,GAAuB,KAAA,CAAM,gCACzB;;;AAHsD,CAAA;AAEL,cAOpD,eA0BL,EAAA,CAAA;EAAA,IAAA;EAAA,QAAA;EAAA,OAAA;EAAA,SAAA;EAAA,aAAA;EAAA,aAAA;EAAA,GAAA;AAAA,CAAA,EAlBE,oBAkBF,EAAA,GAlBsB,kBAAA,CAAA,GAAA,CAAA,OAkBtB"}
@@ -1,5 +1,5 @@
1
1
  import { Maybe, ProductVariant } from "../../types/graphql.js";
2
- import * as react_jsx_runtime14 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime4 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/line-item-options/index.d.ts
5
5
  type LineItemOptionsProps = {
@@ -11,7 +11,7 @@ declare const LineItemOptions: ({
11
11
  variant,
12
12
  "data-testid": dataTestid,
13
13
  "data-value": dataValue
14
- }: LineItemOptionsProps) => react_jsx_runtime14.JSX.Element;
14
+ }: LineItemOptionsProps) => react_jsx_runtime4.JSX.Element;
15
15
  //#endregion
16
16
  export { LineItemOptions };
17
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +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"}
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,kBAAA,CAAA,GAAA,CAAA,OATX"}
@@ -1,5 +1,5 @@
1
1
  import { LineItem } from "../../types/graphql.js";
2
- import * as react_jsx_runtime0 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime15 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/line-item-price/index.d.ts
5
5
  type LineItemPriceProps = {
@@ -11,7 +11,7 @@ declare const LineItemPrice: ({
11
11
  item,
12
12
  style,
13
13
  currencyCode
14
- }: LineItemPriceProps) => react_jsx_runtime0.JSX.Element;
14
+ }: LineItemPriceProps) => react_jsx_runtime15.JSX.Element;
15
15
  //#endregion
16
16
  export { LineItemPrice };
17
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +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"}
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,mBAAA,CAAA,GAAA,CAAA,OAJE"}
@@ -1,5 +1,5 @@
1
1
  import { AnchorHTMLAttributes, DetailedHTMLProps } from "react";
2
- import * as react_jsx_runtime0 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime6 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/localized-client-link/index.d.ts
5
5
  type LocalizedClientLinkProps = DetailedHTMLProps<AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement> & {
@@ -10,7 +10,7 @@ declare const LocalizedClientLink: ({
10
10
  href,
11
11
  locale,
12
12
  ...props
13
- }: LocalizedClientLinkProps) => react_jsx_runtime0.JSX.Element;
13
+ }: LocalizedClientLinkProps) => react_jsx_runtime6.JSX.Element;
14
14
  //#endregion
15
15
  export { LocalizedClientLink };
16
16
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,22 @@
1
+ import * as react_jsx_runtime9 from "react/jsx-runtime";
2
+
3
+ //#region src/components/personalized-content/components/featured-category-rail.d.ts
4
+ interface ProductPreview {
5
+ id: string;
6
+ title: string;
7
+ handle: string;
8
+ thumbnail?: string | null;
9
+ }
10
+ interface FeaturedCategoryRailProps {
11
+ title: string;
12
+ handle: string;
13
+ products: ProductPreview[];
14
+ }
15
+ declare function FeaturedCategoryRail({
16
+ title,
17
+ handle,
18
+ products
19
+ }: FeaturedCategoryRailProps): react_jsx_runtime9.JSX.Element | null;
20
+ //#endregion
21
+ export { FeaturedCategoryRail };
22
+ //# sourceMappingURL=featured-category-rail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"featured-category-rail.d.ts","names":[],"sources":["../../../../src/components/personalized-content/components/featured-category-rail.tsx"],"sourcesContent":[],"mappings":";;;UAKU,cAAA;;;EAAA,MAAA,EAAA,MAAA;EAOA,SAAA,CAAA,EAAA,MAAA,GAAA,IAAA;AAMV;UANU,yBAAA,CAM6B;EAAO,KAAA,EAAA,MAAA;EAAQ,MAAA,EAAA,MAAA;EAAY,QAAA,EAHtD,cAGsD,EAAA;;AAAyB,iBAA3E,oBAAA,CAA2E;EAAA,KAAA;EAAA,MAAA;EAAA;AAAA,CAAA,EAAzB,yBAAyB,CAAA,EAAA,kBAAA,CAAA,GAAA,CAAA,OAAA,GAAA,IAAA"}
@@ -0,0 +1,50 @@
1
+ import { LocalizedClientLink } from "../../localized-client-link/index.js";
2
+ import { getImageKitUrl } from "../../../lib/utils/imagekit.js";
3
+ import { jsx, jsxs } from "react/jsx-runtime";
4
+ import { Text } from "@medusajs/ui";
5
+
6
+ //#region src/components/personalized-content/components/featured-category-rail.tsx
7
+ function FeaturedCategoryRail({ title, handle, products }) {
8
+ if (!products || products.length === 0) return null;
9
+ return /* @__PURE__ */ jsxs("div", {
10
+ className: "content-container small:py-24 py-12",
11
+ children: [/* @__PURE__ */ jsxs("div", {
12
+ className: "mb-8 flex items-center justify-between gap-4",
13
+ children: [/* @__PURE__ */ jsx(Text, {
14
+ className: "txt-xlarge",
15
+ children: title
16
+ }), /* @__PURE__ */ jsx(LocalizedClientLink, {
17
+ className: "text-ui-fg-base hover:text-ui-fg-subtle",
18
+ href: `/categories/${handle}`,
19
+ children: "View all"
20
+ })]
21
+ }), /* @__PURE__ */ jsx("ul", {
22
+ className: "no-scrollbar flex snap-x snap-mandatory gap-6 overflow-x-auto px-px pb-2 pt-px",
23
+ children: products.map((product) => /* @__PURE__ */ jsx("li", {
24
+ className: "w-[max(11rem,calc((100%-3rem)/3))] shrink-0 snap-start",
25
+ children: /* @__PURE__ */ jsxs(LocalizedClientLink, {
26
+ href: `/products/${product.handle}`,
27
+ className: "group",
28
+ children: [product.thumbnail && /* @__PURE__ */ jsx("img", {
29
+ src: getImageKitUrl(product.thumbnail, {
30
+ width: 400,
31
+ quality: 80
32
+ }),
33
+ alt: product.title,
34
+ className: "aspect-[3/4] w-full rounded-lg object-cover"
35
+ }), /* @__PURE__ */ jsx("div", {
36
+ className: "txt-compact-medium mt-4 flex flex-col items-start gap-y-1 text-left",
37
+ children: /* @__PURE__ */ jsx(Text, {
38
+ className: "text-ui-fg-subtle w-full min-w-0 overflow-hidden break-words whitespace-normal",
39
+ children: product.title
40
+ })
41
+ })]
42
+ })
43
+ }, product.id))
44
+ })]
45
+ });
46
+ }
47
+
48
+ //#endregion
49
+ export { FeaturedCategoryRail };
50
+ //# sourceMappingURL=featured-category-rail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"featured-category-rail.js","names":[],"sources":["../../../../src/components/personalized-content/components/featured-category-rail.tsx"],"sourcesContent":["import { Text } from '@medusajs/ui';\n\nimport { getImageKitUrl } from '../../../lib/utils/imagekit';\nimport { LocalizedClientLink } from '../../localized-client-link';\n\ninterface ProductPreview {\n id: string;\n title: string;\n handle: string;\n thumbnail?: string | null;\n}\n\ninterface FeaturedCategoryRailProps {\n title: string;\n handle: string;\n products: ProductPreview[];\n}\n\nexport function FeaturedCategoryRail({ title, handle, products }: FeaturedCategoryRailProps) {\n if (!products || products.length === 0) return null;\n\n return (\n <div className=\"content-container small:py-24 py-12\">\n <div className=\"mb-8 flex items-center justify-between gap-4\">\n <Text className=\"txt-xlarge\">{title}</Text>\n <LocalizedClientLink\n className=\"text-ui-fg-base hover:text-ui-fg-subtle\"\n href={`/categories/${handle}`}\n >\n View all\n </LocalizedClientLink>\n </div>\n <ul className=\"no-scrollbar flex snap-x snap-mandatory gap-6 overflow-x-auto px-px pb-2 pt-px\">\n {products.map((product) => (\n <li\n className=\"w-[max(11rem,calc((100%-3rem)/3))] shrink-0 snap-start\"\n key={product.id}\n >\n <LocalizedClientLink href={`/products/${product.handle}`} className=\"group\">\n {product.thumbnail && (\n <img\n src={getImageKitUrl(product.thumbnail, { width: 400, quality: 80 })}\n alt={product.title}\n className=\"aspect-[3/4] w-full rounded-lg object-cover\"\n />\n )}\n <div className=\"txt-compact-medium mt-4 flex flex-col items-start gap-y-1 text-left\">\n <Text className=\"text-ui-fg-subtle w-full min-w-0 overflow-hidden break-words whitespace-normal\">\n {product.title}\n </Text>\n </div>\n </LocalizedClientLink>\n </li>\n ))}\n </ul>\n </div>\n );\n}\n"],"mappings":";;;;;;AAkBA,SAAgB,qBAAqB,EAAE,OAAO,QAAQ,YAAuC;AAC3F,KAAI,CAAC,YAAY,SAAS,WAAW,EAAG,QAAO;AAE/C,QACE,qBAAC;EAAI,WAAU;aACb,qBAAC;GAAI,WAAU;cACb,oBAAC;IAAK,WAAU;cAAc;KAAa,EAC3C,oBAAC;IACC,WAAU;IACV,MAAM,eAAe;cACtB;KAEqB;IAClB,EACN,oBAAC;GAAG,WAAU;aACX,SAAS,KAAK,YACb,oBAAC;IACC,WAAU;cAGV,qBAAC;KAAoB,MAAM,aAAa,QAAQ;KAAU,WAAU;gBACjE,QAAQ,aACP,oBAAC;MACC,KAAK,eAAe,QAAQ,WAAW;OAAE,OAAO;OAAK,SAAS;OAAI,CAAC;MACnE,KAAK,QAAQ;MACb,WAAU;OACV,EAEJ,oBAAC;MAAI,WAAU;gBACb,oBAAC;OAAK,WAAU;iBACb,QAAQ;QACJ;OACH;MACc;MAfjB,QAAQ,GAgBV,CACL;IACC;GACD"}
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime9 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime10 from "react/jsx-runtime";
2
2
 
3
3
  //#region src/components/personalized-content/components/hero-banner.d.ts
4
4
  interface HeroBannerProps {
@@ -25,7 +25,7 @@ declare function HeroBanner({
25
25
  cta,
26
26
  badge,
27
27
  backgroundColor
28
- }: HeroBannerProps): react_jsx_runtime9.JSX.Element | null;
28
+ }: HeroBannerProps): react_jsx_runtime10.JSX.Element | null;
29
29
  //#endregion
30
30
  export { HeroBanner };
31
31
  //# sourceMappingURL=hero-banner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hero-banner.d.ts","names":[],"sources":["../../../../src/components/personalized-content/components/hero-banner.tsx"],"sourcesContent":[],"mappings":";;;UAOU,eAAA;;;EAAA,KAAA,CAAA,EAAA;IAmCM,KAAA,CAAA,EAAA;MAAa,GAAA,CAAA,EAAA,MAAA;IAAU,CAAA;EAAa,CAAA,GAAA,MAAA;EAAO,QAAA,CAAA,EAAA,MAAA;EAAU,GAAA,CAAA,EAAA;IAAK,KAAA,CAAA,EAAA,MAAA;IAAO,IAAA,CAAA,EAAA,MAAA;EAAmB,CAAA;EAAe,KAAA,CAAA,EAAA,MAAA;EAAA,eAAA,CAAA,EAAA,MAAA;;iBAAnG,UAAA;;;;;;;;GAAoF,kBAAe,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"hero-banner.d.ts","names":[],"sources":["../../../../src/components/personalized-content/components/hero-banner.tsx"],"sourcesContent":[],"mappings":";;;UAOU,eAAA;;;EAAA,KAAA,CAAA,EAAA;IAmCM,KAAA,CAAA,EAAA;MAAa,GAAA,CAAA,EAAA,MAAA;IAAU,CAAA;EAAa,CAAA,GAAA,MAAA;EAAO,QAAA,CAAA,EAAA,MAAA;EAAU,GAAA,CAAA,EAAA;IAAK,KAAA,CAAA,EAAA,MAAA;IAAO,IAAA,CAAA,EAAA,MAAA;EAAmB,CAAA;EAAe,KAAA,CAAA,EAAA,MAAA;EAAA,eAAA,CAAA,EAAA,MAAA;;iBAAnG,UAAA;;;;;;;;GAAoF,kBAAe,mBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -1,2 +1,3 @@
1
+ import { FeaturedCategoryRail } from "./featured-category-rail.js";
1
2
  import { HeroBanner } from "./hero-banner.js";
2
- export { HeroBanner };
3
+ export { FeaturedCategoryRail, HeroBanner };
@@ -1,3 +1,4 @@
1
+ import { FeaturedCategoryRail } from "./featured-category-rail.js";
1
2
  import { HeroBanner } from "./hero-banner.js";
2
3
 
3
- export { HeroBanner };
4
+ export { FeaturedCategoryRail, HeroBanner };
@@ -1,12 +1,12 @@
1
1
  import { VariantPrice } from "../../types/prices.js";
2
- import * as react_jsx_runtime2 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime14 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/preview-price/index.d.ts
5
5
  declare function PreviewPrice({
6
6
  price
7
7
  }: {
8
8
  price: VariantPrice;
9
- }): react_jsx_runtime2.JSX.Element | null;
9
+ }): react_jsx_runtime14.JSX.Element | null;
10
10
  //#endregion
11
11
  export { PreviewPrice };
12
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/preview-price/index.tsx"],"sourcesContent":[],"mappings":";;;;iBAIS,YAAA;;;SAAiC;IAAc,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/preview-price/index.tsx"],"sourcesContent":[],"mappings":";;;;iBAIS,YAAA;;;SAAiC;IAAc,mBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -1,4 +1,4 @@
1
- import * as react_jsx_runtime3 from "react/jsx-runtime";
1
+ import * as react_jsx_runtime17 from "react/jsx-runtime";
2
2
  import { VariantProps } from "class-variance-authority";
3
3
  import * as class_variance_authority_types0 from "class-variance-authority/types";
4
4
 
@@ -59,7 +59,7 @@ declare function ProductCard({
59
59
  variant,
60
60
  size,
61
61
  className
62
- }: ProductCardProps): react_jsx_runtime3.JSX.Element;
62
+ }: ProductCardProps): react_jsx_runtime17.JSX.Element;
63
63
  //#endregion
64
64
  export { ProductCard };
65
65
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/product-card/index.tsx"],"sourcesContent":[],"mappings":";;;;;cAYM;;;IAoBL,+BAAA,CAAA;AA5BiE,UA8BxD,KAAA,CAtBJ;EAsBI,OAAA,EAAK,MAAA;EAKL,GAAA,CAAA,EAAA,MAAO;AAYH;UAZJ,OAAA,CAe6C;EAC5C,EAAA,EAAA,MAAA;EADwB,KAAA,EAAA;IAAY,GAAA,EAAA,MAAA;IAuC/B,GAAA,CAAA,EAAA,MAAW;EACzB,CAAA;EACA,QAAA,CAAA,EAAA;IACA,QAAA,EAAA,MAAA;IACA,MAAA,EAAA,MAAA;EACA,CAAA;EACA,KAAA,EAAA,MAAA;EACA,IAAA,CAAA,EAAA,MAAA;EACC,KAAA,EAlDM,KAkDN;;UA/CO,gBAAA,SAAyB,YA+ChB,CAAA,OA/CoC,mBA+CpC,CAAA,CAAA;WA9CR;;;;;;;;;;;;;;;;;;;;;;;;;iBAsCK,WAAA;;;;;;;;GAQb,mBAAgB,kBAAA,CAAA,GAAA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/product-card/index.tsx"],"sourcesContent":[],"mappings":";;;;;cAYM;;;IAoBL,+BAAA,CAAA;AA5BiE,UA8BxD,KAAA,CAtBJ;EAsBI,OAAA,EAAK,MAAA;EAKL,GAAA,CAAA,EAAA,MAAO;AAYH;UAZJ,OAAA,CAe6C;EAC5C,EAAA,EAAA,MAAA;EADwB,KAAA,EAAA;IAAY,GAAA,EAAA,MAAA;IAuC/B,GAAA,CAAA,EAAA,MAAW;EACzB,CAAA;EACA,QAAA,CAAA,EAAA;IACA,QAAA,EAAA,MAAA;IACA,MAAA,EAAA,MAAA;EACA,CAAA;EACA,KAAA,EAAA,MAAA;EACA,IAAA,CAAA,EAAA,MAAA;EACC,KAAA,EAlDM,KAkDN;;UA/CO,gBAAA,SAAyB,YA+ChB,CAAA,OA/CoC,mBA+CpC,CAAA,CAAA;WA9CR;;;;;;;;;;;;;;;;;;;;;;;;;iBAsCK,WAAA;;;;;;;;GAQb,mBAAgB,mBAAA,CAAA,GAAA,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { Product } from "../../types/graphql.js";
2
- import * as react_jsx_runtime4 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime12 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/product-preview/index.d.ts
5
5
  type ProductPreviewProduct = Pick<Product, 'id' | 'title' | 'handle' | 'thumbnail' | 'images' | 'variants'>;
@@ -12,7 +12,7 @@ declare function ProductPreview({
12
12
  product,
13
13
  isFeatured,
14
14
  imageFetchPriority
15
- }: ProductPreviewProps): react_jsx_runtime4.JSX.Element;
15
+ }: ProductPreviewProps): react_jsx_runtime12.JSX.Element;
16
16
  //#endregion
17
17
  export { ProductPreview, ProductPreviewProduct, ProductPreviewProps };
18
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/product-preview/index.tsx"],"sourcesContent":[],"mappings":";;;;KASY,qBAAA,GAAwB,KAClC;KAIU,mBAAA;WACD;EANC,UAAA,CAAA,EAAA,OAAA;EAKA,kBAAA,CAAA,EAAA,MAAmB,GAAA,MACpB,GAAA,KAAA;AAGT,CAAA;iBAEO,cAAA,CACP;EAAA,OAAA;EAAA,UAAA;EAAA;AAAA,CAAA,EAGC,mBAHD,CAAA,EAGoB,kBAAA,CAAA,GAAA,CAAA,OAHpB"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/product-preview/index.tsx"],"sourcesContent":[],"mappings":";;;;KASY,qBAAA,GAAwB,KAClC;KAIU,mBAAA;WACD;EANC,UAAA,CAAA,EAAA,OAAA;EAKA,kBAAA,CAAA,EAAA,MAAmB,GAAA,MACpB,GAAA,KAAA;AAGT,CAAA;iBAEO,cAAA,CACP;EAAA,OAAA;EAAA,UAAA;EAAA;AAAA,CAAA,EAGC,mBAHD,CAAA,EAGoB,mBAAA,CAAA,GAAA,CAAA,OAHpB"}
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import * as react_jsx_runtime5 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime13 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/components/submit-button/index.d.ts
5
5
  declare function SubmitButton({
@@ -14,7 +14,7 @@ declare function SubmitButton({
14
14
  className?: string;
15
15
  'data-testid'?: string;
16
16
  isLoading?: boolean;
17
- }): react_jsx_runtime5.JSX.Element;
17
+ }): react_jsx_runtime13.JSX.Element;
18
18
  //#endregion
19
19
  export { SubmitButton };
20
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/submit-button/index.tsx"],"sourcesContent":[],"mappings":";;;;iBAQS,YAAA;;;;iBAIQ;;;YAGL,KAAA,CAAM;;EAPT,SAAA,CAAA,EAAA,MAAY;EACnB,aAAA,CAAA,EAAA,MAAA;EACA,SAAA,CAAA,EAAA,OAAA;CACA,CAAA,EASD,kBAAA,CAAA,GAAA,CAAA,OATC"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../../../src/components/submit-button/index.tsx"],"sourcesContent":[],"mappings":";;;;iBAQS,YAAA;;;;iBAIQ;;;YAGL,KAAA,CAAM;;EAPT,SAAA,CAAA,EAAA,MAAY;EACnB,aAAA,CAAA,EAAA,MAAA;EACA,SAAA,CAAA,EAAA,OAAA;CACA,CAAA,EASD,mBAAA,CAAA,GAAA,CAAA,OATC"}
@@ -1,10 +1,10 @@
1
1
  import { PropsWithChildren } from "react";
2
- import * as react_jsx_runtime6 from "react/jsx-runtime";
2
+ import * as react_jsx_runtime5 from "react/jsx-runtime";
3
3
 
4
4
  //#region src/lib/context/apollo-context.d.ts
5
5
  declare function ApolloClientProvider({
6
6
  children
7
- }: PropsWithChildren): react_jsx_runtime6.JSX.Element;
7
+ }: PropsWithChildren): react_jsx_runtime5.JSX.Element;
8
8
  //#endregion
9
9
  export { ApolloClientProvider };
10
10
  //# sourceMappingURL=apollo-context.d.ts.map
@@ -1,14 +1,14 @@
1
- import * as _apollo_client5 from "@apollo/client";
1
+ import * as _apollo_client10 from "@apollo/client";
2
2
 
3
3
  //#region src/lib/gql/fragments/cart.d.ts
4
- declare const LINE_ITEM_FRAGMENT: _apollo_client5.DocumentNode;
5
- declare const COUNTRY_FRAGMENT: _apollo_client5.DocumentNode;
6
- declare const REGION_FRAGMENT: _apollo_client5.DocumentNode;
7
- declare const SHIPPING_METHODS_FRAGMENT: _apollo_client5.DocumentNode;
8
- declare const PAYMENT_COLLECTION_FRAGMENT: _apollo_client5.DocumentNode;
9
- declare const ADDRESS_FRAGMENT: _apollo_client5.DocumentNode;
10
- declare const PROMOTION_FRAGMENT: _apollo_client5.DocumentNode;
11
- declare const CART_FRAGMENT: _apollo_client5.DocumentNode;
4
+ declare const LINE_ITEM_FRAGMENT: _apollo_client10.DocumentNode;
5
+ declare const COUNTRY_FRAGMENT: _apollo_client10.DocumentNode;
6
+ declare const REGION_FRAGMENT: _apollo_client10.DocumentNode;
7
+ declare const SHIPPING_METHODS_FRAGMENT: _apollo_client10.DocumentNode;
8
+ declare const PAYMENT_COLLECTION_FRAGMENT: _apollo_client10.DocumentNode;
9
+ declare const ADDRESS_FRAGMENT: _apollo_client10.DocumentNode;
10
+ declare const PROMOTION_FRAGMENT: _apollo_client10.DocumentNode;
11
+ declare const CART_FRAGMENT: _apollo_client10.DocumentNode;
12
12
  //#endregion
13
13
  export { ADDRESS_FRAGMENT, CART_FRAGMENT, COUNTRY_FRAGMENT, LINE_ITEM_FRAGMENT, PAYMENT_COLLECTION_FRAGMENT, PROMOTION_FRAGMENT, REGION_FRAGMENT, SHIPPING_METHODS_FRAGMENT };
14
14
  //# sourceMappingURL=cart.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cart.d.ts","names":[],"sources":["../../../../src/lib/gql/fragments/cart.ts"],"sourcesContent":[],"mappings":";;;cAIa,oBAiBZ,eAAA,CAjB8B;cAmBlB,kBAOZ,eAAA,CAP4B;cAShB,iBAWZ,eAAA,CAX2B;AA5Bf,cAyCA,yBAxBZ,EAkCA,eAAA,CAVqC,YAxBrC;AAEY,cAkCA,2BA3BZ,EA6CA,eAAA,CAlBuC,YA3BvC;AAEY,cA6CA,gBAlCZ,EA4CA,eAAA,CAV4B,YAlC5B;AAEY,cA4CA,kBAlCZ,EA4CA,eAAA,CAV8B,YAlC9B;AAEY,cA4CA,aA1BZ,EAqEA,eAAA,CA3CyB,YA5Cc"}
1
+ {"version":3,"file":"cart.d.ts","names":[],"sources":["../../../../src/lib/gql/fragments/cart.ts"],"sourcesContent":[],"mappings":";;;cAIa,oBAiBZ,gBAAA,CAjB8B;cAmBlB,kBAOZ,gBAAA,CAP4B;cAShB,iBAWZ,gBAAA,CAX2B;AA5Bf,cAyCA,yBAxBZ,EAkCA,gBAAA,CAVqC,YAxBrC;AAEY,cAkCA,2BA3BZ,EA6CA,gBAAA,CAlBuC,YA3BvC;AAEY,cA6CA,gBAlCZ,EA4CA,gBAAA,CAV4B,YAlC5B;AAEY,cA4CA,kBAlCZ,EA4CA,gBAAA,CAV8B,YAlC9B;AAEY,cA4CA,aA1BZ,EAqEA,gBAAA,CA3CyB,YA5Cc"}
@@ -1,8 +1,8 @@
1
- import * as _apollo_client13 from "@apollo/client";
1
+ import * as _apollo_client18 from "@apollo/client";
2
2
 
3
3
  //#region src/lib/gql/fragments/customer.d.ts
4
- declare const CUSTOMER_ADDRESS_FRAGMENT: _apollo_client13.DocumentNode;
5
- declare const CUSTOMER_FRAGMENT: _apollo_client13.DocumentNode;
4
+ declare const CUSTOMER_ADDRESS_FRAGMENT: _apollo_client18.DocumentNode;
5
+ declare const CUSTOMER_FRAGMENT: _apollo_client18.DocumentNode;
6
6
  //#endregion
7
7
  export { CUSTOMER_ADDRESS_FRAGMENT, CUSTOMER_FRAGMENT };
8
8
  //# sourceMappingURL=customer.d.ts.map
@@ -1,13 +1,13 @@
1
- import * as _apollo_client18 from "@apollo/client";
1
+ import * as _apollo_client20 from "@apollo/client";
2
2
 
3
3
  //#region src/lib/gql/fragments/product.d.ts
4
- declare const PRICE_FRAGMENT: _apollo_client18.DocumentNode;
5
- declare const PRODUCT_VARIANT_FRAGMENT: _apollo_client18.DocumentNode;
6
- declare const PRODUCT_CATEGORY_FRAGMENT: _apollo_client18.DocumentNode;
7
- declare const PRODUCT_COLLECTION_FRAGMENT: _apollo_client18.DocumentNode;
8
- declare const PRODUCT_IMAGE_FRAGMENT: _apollo_client18.DocumentNode;
9
- declare const COLLECTION_PRODUCTS_FRAGMENT: _apollo_client18.DocumentNode;
10
- declare const COLLECTION_PRODUCTS_HOME_FRAGMENT: _apollo_client18.DocumentNode;
4
+ declare const PRICE_FRAGMENT: _apollo_client20.DocumentNode;
5
+ declare const PRODUCT_VARIANT_FRAGMENT: _apollo_client20.DocumentNode;
6
+ declare const PRODUCT_CATEGORY_FRAGMENT: _apollo_client20.DocumentNode;
7
+ declare const PRODUCT_COLLECTION_FRAGMENT: _apollo_client20.DocumentNode;
8
+ declare const PRODUCT_IMAGE_FRAGMENT: _apollo_client20.DocumentNode;
9
+ declare const COLLECTION_PRODUCTS_FRAGMENT: _apollo_client20.DocumentNode;
10
+ declare const COLLECTION_PRODUCTS_HOME_FRAGMENT: _apollo_client20.DocumentNode;
11
11
  //#endregion
12
12
  export { COLLECTION_PRODUCTS_FRAGMENT, COLLECTION_PRODUCTS_HOME_FRAGMENT, PRICE_FRAGMENT, PRODUCT_CATEGORY_FRAGMENT, PRODUCT_COLLECTION_FRAGMENT, PRODUCT_IMAGE_FRAGMENT, PRODUCT_VARIANT_FRAGMENT };
13
13
  //# sourceMappingURL=product.d.ts.map
@@ -1,11 +1,11 @@
1
- import * as _apollo_client33 from "@apollo/client";
1
+ import * as _apollo_client5 from "@apollo/client";
2
2
 
3
3
  //#region src/lib/gql/mutations/cart.d.ts
4
- declare const CREATE_CART_MUTATION: _apollo_client33.DocumentNode;
5
- declare const CREATE_LINE_ITEM_MUTATION: _apollo_client33.DocumentNode;
6
- declare const UPDATE_CART_MUTATION: _apollo_client33.DocumentNode;
7
- declare const DELETE_LINE_ITEM_MUTATION: _apollo_client33.DocumentNode;
8
- declare const TRANSFER_CART_MUTATION: _apollo_client33.DocumentNode;
4
+ declare const CREATE_CART_MUTATION: _apollo_client5.DocumentNode;
5
+ declare const CREATE_LINE_ITEM_MUTATION: _apollo_client5.DocumentNode;
6
+ declare const UPDATE_CART_MUTATION: _apollo_client5.DocumentNode;
7
+ declare const DELETE_LINE_ITEM_MUTATION: _apollo_client5.DocumentNode;
8
+ declare const TRANSFER_CART_MUTATION: _apollo_client5.DocumentNode;
9
9
  //#endregion
10
10
  export { CREATE_CART_MUTATION, CREATE_LINE_ITEM_MUTATION, DELETE_LINE_ITEM_MUTATION, TRANSFER_CART_MUTATION, UPDATE_CART_MUTATION };
11
11
  //# sourceMappingURL=cart.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cart.d.ts","names":[],"sources":["../../../../src/lib/gql/mutations/cart.ts"],"sourcesContent":[],"mappings":";;;cAQa,sBAOZ,gBAAA,CAPgC;cASpB,2BAWZ,gBAAA,CAXqC;cAazB,sBAgBZ,gBAAA,CAhBgC;AAtBpB,cAwCA,yBAjCZ,EAyCA,gBAAA,CARqC,YAjCrC;AAEY,cAyCA,sBA9BZ,EAqCA,gBAAA,CAPkC,YA9BlC"}
1
+ {"version":3,"file":"cart.d.ts","names":[],"sources":["../../../../src/lib/gql/mutations/cart.ts"],"sourcesContent":[],"mappings":";;;cAQa,sBAOZ,eAAA,CAPgC;cASpB,2BAWZ,eAAA,CAXqC;cAazB,sBAgBZ,eAAA,CAhBgC;AAtBpB,cAwCA,yBAjCZ,EAyCA,eAAA,CARqC,YAjCrC;AAEY,cAyCA,sBA9BZ,EAqCA,eAAA,CAPkC,YA9BlC"}
@@ -1,7 +1,7 @@
1
- import * as _apollo_client15 from "@apollo/client";
1
+ import * as _apollo_client27 from "@apollo/client";
2
2
 
3
3
  //#region src/lib/gql/queries/cart-summary.d.ts
4
- declare const GET_CART_ITEM_COUNT_QUERY: _apollo_client15.DocumentNode;
4
+ declare const GET_CART_ITEM_COUNT_QUERY: _apollo_client27.DocumentNode;
5
5
  //#endregion
6
6
  export { GET_CART_ITEM_COUNT_QUERY };
7
7
  //# sourceMappingURL=cart-summary.d.ts.map
@@ -1,7 +1,7 @@
1
- import * as _apollo_client40 from "@apollo/client";
1
+ import * as _apollo_client28 from "@apollo/client";
2
2
 
3
3
  //#region src/lib/gql/queries/cart-total.d.ts
4
- declare const GET_CART_TOTAL_QUERY: _apollo_client40.DocumentNode;
4
+ declare const GET_CART_TOTAL_QUERY: _apollo_client28.DocumentNode;
5
5
  //#endregion
6
6
  export { GET_CART_TOTAL_QUERY };
7
7
  //# sourceMappingURL=cart-total.d.ts.map
@@ -1,7 +1,7 @@
1
- import * as _apollo_client17 from "@apollo/client";
1
+ import * as _apollo_client29 from "@apollo/client";
2
2
 
3
3
  //#region src/lib/gql/queries/cart.d.ts
4
- declare const GET_CART_QUERY: _apollo_client17.DocumentNode;
4
+ declare const GET_CART_QUERY: _apollo_client29.DocumentNode;
5
5
  //#endregion
6
6
  export { GET_CART_QUERY };
7
7
  //# sourceMappingURL=cart.d.ts.map
@@ -1,8 +1,8 @@
1
- import * as _apollo_client25 from "@apollo/client";
1
+ import * as _apollo_client30 from "@apollo/client";
2
2
 
3
3
  //#region src/lib/gql/queries/collections.d.ts
4
- declare const GET_COLLECTIONS_QUERY: _apollo_client25.DocumentNode;
5
- declare const GET_COLLECTIONS_HOME_QUERY: _apollo_client25.DocumentNode;
4
+ declare const GET_COLLECTIONS_QUERY: _apollo_client30.DocumentNode;
5
+ declare const GET_COLLECTIONS_HOME_QUERY: _apollo_client30.DocumentNode;
6
6
  //#endregion
7
7
  export { GET_COLLECTIONS_HOME_QUERY, GET_COLLECTIONS_QUERY };
8
8
  //# sourceMappingURL=collections.d.ts.map
@@ -1,7 +1,7 @@
1
- import * as _apollo_client16 from "@apollo/client";
1
+ import * as _apollo_client33 from "@apollo/client";
2
2
 
3
3
  //#region src/lib/gql/queries/customer.d.ts
4
- declare const GET_CUSTOMER_QUERY: _apollo_client16.DocumentNode;
4
+ declare const GET_CUSTOMER_QUERY: _apollo_client33.DocumentNode;
5
5
  //#endregion
6
6
  export { GET_CUSTOMER_QUERY };
7
7
  //# sourceMappingURL=customer.d.ts.map
@@ -1,8 +1,8 @@
1
- import * as _apollo_client27 from "@apollo/client";
1
+ import * as _apollo_client34 from "@apollo/client";
2
2
 
3
3
  //#region src/lib/gql/queries/footer.d.ts
4
- declare const GET_FOOTER_QUERY: _apollo_client27.DocumentNode;
5
- declare const GET_FOOTER_DATA_QUERY: _apollo_client27.DocumentNode;
4
+ declare const GET_FOOTER_QUERY: _apollo_client34.DocumentNode;
5
+ declare const GET_FOOTER_DATA_QUERY: _apollo_client34.DocumentNode;
6
6
  //#endregion
7
7
  export { GET_FOOTER_DATA_QUERY, GET_FOOTER_QUERY };
8
8
  //# sourceMappingURL=footer.d.ts.map
@@ -1,9 +1,9 @@
1
- import * as _apollo_client29 from "@apollo/client";
1
+ import * as _apollo_client36 from "@apollo/client";
2
2
 
3
3
  //#region src/lib/gql/queries/order.d.ts
4
- declare const ORDER_FRAGMENT: _apollo_client29.DocumentNode;
5
- declare const GET_ORDER_QUERY: _apollo_client29.DocumentNode;
6
- declare const GET_ORDERS_QUERY: _apollo_client29.DocumentNode;
4
+ declare const ORDER_FRAGMENT: _apollo_client36.DocumentNode;
5
+ declare const GET_ORDER_QUERY: _apollo_client36.DocumentNode;
6
+ declare const GET_ORDERS_QUERY: _apollo_client36.DocumentNode;
7
7
  //#endregion
8
8
  export { GET_ORDERS_QUERY, GET_ORDER_QUERY, ORDER_FRAGMENT };
9
9
  //# sourceMappingURL=order.d.ts.map
@@ -1,7 +1,7 @@
1
- import * as _apollo_client41 from "@apollo/client";
1
+ import * as _apollo_client32 from "@apollo/client";
2
2
 
3
3
  //#region src/lib/gql/queries/product-personalization.d.ts
4
- declare const GET_PRODUCT_BY_HANDLE_FOR_PERSONALIZATION: _apollo_client41.DocumentNode;
4
+ declare const GET_PRODUCT_BY_HANDLE_FOR_PERSONALIZATION: _apollo_client32.DocumentNode;
5
5
  //#endregion
6
6
  export { GET_PRODUCT_BY_HANDLE_FOR_PERSONALIZATION };
7
7
  //# sourceMappingURL=product-personalization.d.ts.map
@@ -1,7 +1,7 @@
1
- import * as _apollo_client42 from "@apollo/client";
1
+ import * as _apollo_client39 from "@apollo/client";
2
2
 
3
3
  //#region src/lib/gql/queries/product.d.ts
4
- declare const GET_PRODUCT_CATEGORIES_QUERY: _apollo_client42.DocumentNode;
4
+ declare const GET_PRODUCT_CATEGORIES_QUERY: _apollo_client39.DocumentNode;
5
5
  //#endregion
6
6
  export { GET_PRODUCT_CATEGORIES_QUERY };
7
7
  //# sourceMappingURL=product.d.ts.map
@@ -1,8 +1,8 @@
1
- import * as _apollo_client38 from "@apollo/client";
1
+ import * as _apollo_client40 from "@apollo/client";
2
2
 
3
3
  //#region src/lib/gql/queries/regions.d.ts
4
- declare const LIST_REGIONS_QUERY: _apollo_client38.DocumentNode;
5
- declare const GET_REGION_QUERY: _apollo_client38.DocumentNode;
4
+ declare const LIST_REGIONS_QUERY: _apollo_client40.DocumentNode;
5
+ declare const GET_REGION_QUERY: _apollo_client40.DocumentNode;
6
6
  //#endregion
7
7
  export { GET_REGION_QUERY, LIST_REGIONS_QUERY };
8
8
  //# sourceMappingURL=regions.d.ts.map
@@ -1,17 +1,10 @@
1
1
  //#region src/lib/personalization/config.d.ts
2
- interface SegmentDefinition {
3
- id: string;
4
- label: string;
5
- categoryHandles: string[];
6
- collectionHandles: string[];
7
- }
8
2
  interface SignalDefinition {
9
3
  id: string;
10
4
  description: string;
11
5
  bannerTrigger: string;
12
6
  }
13
7
  interface PersonalizationConfig {
14
- segments: SegmentDefinition[];
15
8
  signals: SignalDefinition[];
16
9
  dismissCooldownMs: number;
17
10
  bannerAutoDismissMs: number;
@@ -21,7 +14,6 @@ interface PersonalizationConfig {
21
14
  highScrollThreshold: number;
22
15
  }
23
16
  declare const PERSONALIZATION_CONFIG: PersonalizationConfig;
24
- declare function getSegmentIdFromCollection(collectionHandle: string | undefined): string | null;
25
17
  //#endregion
26
- export { PERSONALIZATION_CONFIG, PersonalizationConfig, SegmentDefinition, SignalDefinition, getSegmentIdFromCollection };
18
+ export { PERSONALIZATION_CONFIG, PersonalizationConfig, SignalDefinition };
27
19
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","names":[],"sources":["../../../src/lib/personalization/config.ts"],"sourcesContent":[],"mappings":";UAAiB,iBAAA;EAAA,EAAA,EAAA,MAAA;EAOA,KAAA,EAAA,MAAA;EAMA,eAAA,EAAA,MAAA,EAAqB;EAWzB,iBAAA,EAAA,MAiCZ,EAAA;AAED;UApDiB,gBAAA;;;;;UAMA,qBAAA;YACL;WACD;;;;;;;;cASE,wBAAwB;iBAmCrB,0BAAA"}
1
+ {"version":3,"file":"config.d.ts","names":[],"sources":["../../../src/lib/personalization/config.ts"],"sourcesContent":[],"mappings":";UAAiB,gBAAA;EAAA,EAAA,EAAA,MAAA;EAMA,WAAA,EAAA,MAAA;EAUJ,aAAA,EAAA,MAAA;;UAVI,qBAAA;WACN;;;;;;;;cASE,wBAAwB"}
@@ -1,40 +1,5 @@
1
1
  //#region src/lib/personalization/config.ts
2
2
  const PERSONALIZATION_CONFIG = {
3
- segments: [{
4
- id: "mens",
5
- label: "Men's",
6
- categoryHandles: [
7
- "mens",
8
- "men",
9
- "mens-collection",
10
- "menswear",
11
- "menstwo"
12
- ],
13
- collectionHandles: [
14
- "mens",
15
- "men",
16
- "mens-collection",
17
- "menswear",
18
- "menstwo"
19
- ]
20
- }, {
21
- id: "womens",
22
- label: "Women's",
23
- categoryHandles: [
24
- "womens",
25
- "women",
26
- "womens-collection",
27
- "womenswear",
28
- "womenstwo"
29
- ],
30
- collectionHandles: [
31
- "womens",
32
- "women",
33
- "womens-collection",
34
- "womenswear",
35
- "womenstwo"
36
- ]
37
- }],
38
3
  signals: [{
39
4
  id: "pdp-hesitation",
40
5
  description: "User on PDP > 30s with expensive product",
@@ -51,13 +16,7 @@ const PERSONALIZATION_CONFIG = {
51
16
  pdpHesitationMs: 3e4,
52
17
  highScrollThreshold: .8
53
18
  };
54
- function getSegmentIdFromCollection(collectionHandle) {
55
- if (!collectionHandle) return null;
56
- const normalized = collectionHandle.toLowerCase().replace(/[-_\s]/g, "");
57
- for (const segment of PERSONALIZATION_CONFIG.segments) if (segment.collectionHandles.includes(normalized)) return segment.id;
58
- return null;
59
- }
60
19
 
61
20
  //#endregion
62
- export { PERSONALIZATION_CONFIG, getSegmentIdFromCollection };
21
+ export { PERSONALIZATION_CONFIG };
63
22
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","names":["PERSONALIZATION_CONFIG: PersonalizationConfig"],"sources":["../../../src/lib/personalization/config.ts"],"sourcesContent":["export interface SegmentDefinition {\n id: string;\n label: string;\n categoryHandles: string[];\n collectionHandles: string[];\n}\n\nexport interface SignalDefinition {\n id: string;\n description: string;\n bannerTrigger: string;\n}\n\nexport interface PersonalizationConfig {\n segments: SegmentDefinition[];\n signals: SignalDefinition[];\n dismissCooldownMs: number;\n bannerAutoDismissMs: number;\n historyMaxLength: number;\n priceThreshold: number;\n pdpHesitationMs: number;\n highScrollThreshold: number;\n}\n\nexport const PERSONALIZATION_CONFIG: PersonalizationConfig = {\n segments: [\n {\n id: 'mens',\n label: \"Men's\",\n categoryHandles: ['mens', 'men', 'mens-collection', 'menswear', 'menstwo'],\n collectionHandles: ['mens', 'men', 'mens-collection', 'menswear', 'menstwo'],\n },\n {\n id: 'womens',\n label: \"Women's\",\n categoryHandles: ['womens', 'women', 'womens-collection', 'womenswear', 'womenstwo'],\n collectionHandles: ['womens', 'women', 'womens-collection', 'womenswear', 'womenstwo'],\n },\n ],\n signals: [\n {\n id: 'pdp-hesitation',\n description: 'User on PDP > 30s with expensive product',\n bannerTrigger: 'pdp-hesitation',\n },\n {\n id: 'high-scroll-no-action',\n description: 'User scrolled 80% without adding to cart',\n bannerTrigger: 'high-scroll-no-action',\n },\n ],\n dismissCooldownMs: 60 * 60 * 1000,\n bannerAutoDismissMs: 30_000,\n historyMaxLength: 20,\n priceThreshold: 80,\n pdpHesitationMs: 30_000,\n highScrollThreshold: 0.8,\n};\n\nexport function getSegmentIdFromCollection(collectionHandle: string | undefined): string | null {\n if (!collectionHandle) return null;\n const normalized = collectionHandle.toLowerCase().replace(/[-_\\s]/g, '');\n for (const segment of PERSONALIZATION_CONFIG.segments) {\n if (segment.collectionHandles.includes(normalized)) {\n return segment.id;\n }\n }\n return null;\n}\n\n"],"mappings":";AAwBA,MAAaA,yBAAgD;CAC3D,UAAU,CACR;EACE,IAAI;EACJ,OAAO;EACP,iBAAiB;GAAC;GAAQ;GAAO;GAAmB;GAAY;GAAU;EAC1E,mBAAmB;GAAC;GAAQ;GAAO;GAAmB;GAAY;GAAU;EAC7E,EACD;EACE,IAAI;EACJ,OAAO;EACP,iBAAiB;GAAC;GAAU;GAAS;GAAqB;GAAc;GAAY;EACpF,mBAAmB;GAAC;GAAU;GAAS;GAAqB;GAAc;GAAY;EACvF,CACF;CACD,SAAS,CACP;EACE,IAAI;EACJ,aAAa;EACb,eAAe;EAChB,EACD;EACE,IAAI;EACJ,aAAa;EACb,eAAe;EAChB,CACF;CACD,mBAAmB,OAAU;CAC7B,qBAAqB;CACrB,kBAAkB;CAClB,gBAAgB;CAChB,iBAAiB;CACjB,qBAAqB;CACtB;AAED,SAAgB,2BAA2B,kBAAqD;AAC9F,KAAI,CAAC,iBAAkB,QAAO;CAC9B,MAAM,aAAa,iBAAiB,aAAa,CAAC,QAAQ,WAAW,GAAG;AACxE,MAAK,MAAM,WAAW,uBAAuB,SAC3C,KAAI,QAAQ,kBAAkB,SAAS,WAAW,CAChD,QAAO,QAAQ;AAGnB,QAAO"}
1
+ {"version":3,"file":"config.js","names":["PERSONALIZATION_CONFIG: PersonalizationConfig"],"sources":["../../../src/lib/personalization/config.ts"],"sourcesContent":["export interface SignalDefinition {\n id: string;\n description: string;\n bannerTrigger: string;\n}\n\nexport interface PersonalizationConfig {\n signals: SignalDefinition[];\n dismissCooldownMs: number;\n bannerAutoDismissMs: number;\n historyMaxLength: number;\n priceThreshold: number;\n pdpHesitationMs: number;\n highScrollThreshold: number;\n}\n\nexport const PERSONALIZATION_CONFIG: PersonalizationConfig = {\n signals: [\n {\n id: 'pdp-hesitation',\n description: 'User on PDP > 30s with expensive product',\n bannerTrigger: 'pdp-hesitation',\n },\n {\n id: 'high-scroll-no-action',\n description: 'User scrolled 80% without adding to cart',\n bannerTrigger: 'high-scroll-no-action',\n },\n ],\n dismissCooldownMs: 60 * 60 * 1000,\n bannerAutoDismissMs: 30_000,\n historyMaxLength: 20,\n priceThreshold: 80,\n pdpHesitationMs: 30_000,\n highScrollThreshold: 0.8,\n};\n"],"mappings":";AAgBA,MAAaA,yBAAgD;CAC3D,SAAS,CACP;EACE,IAAI;EACJ,aAAa;EACb,eAAe;EAChB,EACD;EACE,IAAI;EACJ,aAAa;EACb,eAAe;EAChB,CACF;CACD,mBAAmB,OAAU;CAC7B,qBAAqB;CACrB,kBAAkB;CAClB,gBAAgB;CAChB,iBAAiB;CACjB,qBAAqB;CACtB"}
@@ -13,9 +13,8 @@ function generateUUID() {
13
13
  function getDeviceId() {
14
14
  if (typeof document === "undefined") return "";
15
15
  const match = document.cookie.match(/* @__PURE__ */ new RegExp(`${DEVICE_ID_COOKIE}=([^;]+)`));
16
- if (match && match[1]) return decodeURIComponent(match[1]);
17
- const id = generateUUID();
18
- document.cookie = `${DEVICE_ID_COOKIE}=${encodeURIComponent(id)};${buildCookieAttrs(90)}`;
16
+ const id = match?.[1] ? decodeURIComponent(match[1]) : generateUUID();
17
+ document.cookie = `${DEVICE_ID_COOKIE}=${encodeURIComponent(id)};${buildCookieAttrs(400)}`;
19
18
  return id;
20
19
  }
21
20
 
@@ -1 +1 @@
1
- {"version":3,"file":"device-id.js","names":[],"sources":["../../../src/lib/personalization/device-id.ts"],"sourcesContent":["const DEVICE_ID_COOKIE = '_jg_device_id';\n\nfunction buildCookieAttrs(maxAgeDays: number): string {\n const maxAge = maxAgeDays * 24 * 60 * 60;\n if (process.env.NODE_ENV === 'production') {\n return `path=/;max-age=${maxAge};SameSite=none;secure;domain=.justgood.win`;\n }\n return `path=/;max-age=${maxAge};SameSite=Lax`;\n}\n\nfunction generateUUID(): string {\n if (typeof crypto !== 'undefined' && crypto.randomUUID) {\n return crypto.randomUUID();\n }\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16) | 0;\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n\nexport function getDeviceId(): string {\n if (typeof document === 'undefined') return '';\n const match = document.cookie.match(new RegExp(`${DEVICE_ID_COOKIE}=([^;]+)`));\n if (match && match[1]) return decodeURIComponent(match[1]);\n const id = generateUUID();\n document.cookie = `${DEVICE_ID_COOKIE}=${encodeURIComponent(id)};${buildCookieAttrs(90)}`;\n return id;\n}\n\n\n"],"mappings":";AAAA,MAAM,mBAAmB;AAEzB,SAAS,iBAAiB,YAA4B;AAGlD,QAAO,kBAFM,aAAa,KAAK,KAAK,GAEJ;;AAKpC,SAAS,eAAuB;AAC9B,KAAI,OAAO,WAAW,eAAe,OAAO,WAC1C,QAAO,OAAO,YAAY;AAE5B,QAAO,uCAAuC,QAAQ,UAAU,MAAM;EACpE,MAAM,IAAK,KAAK,QAAQ,GAAG,KAAM;AAEjC,UADU,MAAM,MAAM,IAAK,IAAI,IAAO,GAC7B,SAAS,GAAG;GACrB;;AAGJ,SAAgB,cAAsB;AACpC,KAAI,OAAO,aAAa,YAAa,QAAO;CAC5C,MAAM,QAAQ,SAAS,OAAO,sBAAM,IAAI,OAAO,GAAG,iBAAiB,UAAU,CAAC;AAC9E,KAAI,SAAS,MAAM,GAAI,QAAO,mBAAmB,MAAM,GAAG;CAC1D,MAAM,KAAK,cAAc;AACzB,UAAS,SAAS,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,CAAC,GAAG,iBAAiB,GAAG;AACvF,QAAO"}
1
+ {"version":3,"file":"device-id.js","names":[],"sources":["../../../src/lib/personalization/device-id.ts"],"sourcesContent":["const DEVICE_ID_COOKIE = '_jg_device_id';\n\nfunction buildCookieAttrs(maxAgeDays: number): string {\n const maxAge = maxAgeDays * 24 * 60 * 60;\n if (process.env.NODE_ENV === 'production') {\n return `path=/;max-age=${maxAge};SameSite=none;secure;domain=.justgood.win`;\n }\n return `path=/;max-age=${maxAge};SameSite=Lax`;\n}\n\nfunction generateUUID(): string {\n if (typeof crypto !== 'undefined' && crypto.randomUUID) {\n return crypto.randomUUID();\n }\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n const r = (Math.random() * 16) | 0;\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n\nexport function getDeviceId(): string {\n if (typeof document === 'undefined') return '';\n const match = document.cookie.match(new RegExp(`${DEVICE_ID_COOKIE}=([^;]+)`));\n const id = match?.[1] ? decodeURIComponent(match[1]) : generateUUID();\n document.cookie = `${DEVICE_ID_COOKIE}=${encodeURIComponent(id)};${buildCookieAttrs(400)}`;\n return id;\n}\n\n\n"],"mappings":";AAAA,MAAM,mBAAmB;AAEzB,SAAS,iBAAiB,YAA4B;AAGlD,QAAO,kBAFM,aAAa,KAAK,KAAK,GAEJ;;AAKpC,SAAS,eAAuB;AAC9B,KAAI,OAAO,WAAW,eAAe,OAAO,WAC1C,QAAO,OAAO,YAAY;AAE5B,QAAO,uCAAuC,QAAQ,UAAU,MAAM;EACpE,MAAM,IAAK,KAAK,QAAQ,GAAG,KAAM;AAEjC,UADU,MAAM,MAAM,IAAK,IAAI,IAAO,GAC7B,SAAS,GAAG;GACrB;;AAGJ,SAAgB,cAAsB;AACpC,KAAI,OAAO,aAAa,YAAa,QAAO;CAC5C,MAAM,QAAQ,SAAS,OAAO,sBAAM,IAAI,OAAO,GAAG,iBAAiB,UAAU,CAAC;CAC9E,MAAM,KAAK,QAAQ,KAAK,mBAAmB,MAAM,GAAG,GAAG,cAAc;AACrE,UAAS,SAAS,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,CAAC,GAAG,iBAAiB,IAAI;AACxF,QAAO"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gfed-medusa/sf-lib-common",
3
- "version": "3.8.0",
3
+ "version": "3.9.0",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -1,11 +0,0 @@
1
- import { HomeBannerContent } from "../../types/cms.js";
2
-
3
- //#region src/lib/data/home-banner.d.ts
4
- interface HomeBannerParams {
5
- audience?: string;
6
- segment?: string;
7
- }
8
- declare const getHomeBannerContent: (params?: HomeBannerParams) => Promise<HomeBannerContent | null>;
9
- //#endregion
10
- export { HomeBannerParams, getHomeBannerContent };
11
- //# sourceMappingURL=home-banner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"home-banner.d.ts","names":[],"sources":["../../../src/lib/data/home-banner.ts"],"sourcesContent":[],"mappings":";;;UAIiB,gBAAA;;EAAA,OAAA,CAAA,EAAA,MAAA;AAcjB;AAAoD,cAAvC,oBAAuC,EAAA,CAAA,MAAA,CAAA,EAAA,gBAAA,EAAA,GAAgB,OAAhB,CAAgB,iBAAhB,GAAA,IAAA,CAAA"}
@@ -1,22 +0,0 @@
1
- import { graphqlFetch } from "../gql/apollo-client.js";
2
- import { GET_HOME_BANNER_QUERY } from "../gql/queries/home-banner.js";
3
-
4
- //#region src/lib/data/home-banner.ts
5
- const getHomeBannerContent = async (params) => {
6
- try {
7
- return (await graphqlFetch({
8
- query: GET_HOME_BANNER_QUERY,
9
- variables: {
10
- audience: params?.audience ?? null,
11
- segment: params?.segment ?? null
12
- }
13
- }))?.homeBanner || null;
14
- } catch (error) {
15
- console.error("Error fetching home banner content:", error);
16
- return null;
17
- }
18
- };
19
-
20
- //#endregion
21
- export { getHomeBannerContent };
22
- //# sourceMappingURL=home-banner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"home-banner.js","names":[],"sources":["../../../src/lib/data/home-banner.ts"],"sourcesContent":["import { graphqlFetch } from '@/lib/gql/apollo-client';\nimport { GET_HOME_BANNER_QUERY } from '@/lib/gql/queries/home-banner';\nimport { HomeBannerContent } from '@/types/cms';\n\nexport interface HomeBannerParams {\n audience?: string;\n segment?: string;\n}\n\ntype HomeBannerQueryVariables = {\n audience?: string | null;\n segment?: string | null;\n};\n\ntype HomeBannerQueryResult = {\n homeBanner?: HomeBannerContent | null;\n};\n\nexport const getHomeBannerContent = async (params?: HomeBannerParams) => {\n try {\n const data = await graphqlFetch<\n HomeBannerQueryResult,\n HomeBannerQueryVariables\n >({\n query: GET_HOME_BANNER_QUERY,\n variables: {\n audience: params?.audience ?? null,\n segment: params?.segment ?? null,\n },\n });\n\n return data?.homeBanner || null;\n } catch (error) {\n console.error('Error fetching home banner content:', error);\n return null;\n }\n};\n"],"mappings":";;;;AAkBA,MAAa,uBAAuB,OAAO,WAA8B;AACvE,KAAI;AAYF,UAXa,MAAM,aAGjB;GACA,OAAO;GACP,WAAW;IACT,UAAU,QAAQ,YAAY;IAC9B,SAAS,QAAQ,WAAW;IAC7B;GACF,CAAC,GAEW,cAAc;UACpB,OAAO;AACd,UAAQ,MAAM,uCAAuC,MAAM;AAC3D,SAAO"}
@@ -1,7 +0,0 @@
1
- import * as _apollo_client32 from "@apollo/client";
2
-
3
- //#region src/lib/gql/queries/home-banner.d.ts
4
- declare const GET_HOME_BANNER_QUERY: _apollo_client32.DocumentNode;
5
- //#endregion
6
- export { GET_HOME_BANNER_QUERY };
7
- //# sourceMappingURL=home-banner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"home-banner.d.ts","names":[],"sources":["../../../../src/lib/gql/queries/home-banner.ts"],"sourcesContent":[],"mappings":";;;cAEa,uBAsCZ,gBAAA,CAtCiC"}
@@ -1,46 +0,0 @@
1
- import { gql } from "@apollo/client";
2
-
3
- //#region src/lib/gql/queries/home-banner.ts
4
- const GET_HOME_BANNER_QUERY = gql`
5
- query GetHomeBanner($audience: String, $segment: String) {
6
- homeBanner(audience: $audience, segment: $segment) {
7
- _id
8
- _type
9
- eyebrow
10
- title
11
- description
12
- showPoweredBy
13
- buttons {
14
- label
15
- href
16
- openInNewTab
17
- }
18
- secondaryBanners {
19
- title
20
- description
21
- showPoweredBy
22
- image {
23
- alt
24
- asset {
25
- url
26
- }
27
- }
28
- button {
29
- label
30
- href
31
- openInNewTab
32
- }
33
- }
34
- image {
35
- alt
36
- asset {
37
- url
38
- }
39
- }
40
- }
41
- }
42
- `;
43
-
44
- //#endregion
45
- export { GET_HOME_BANNER_QUERY };
46
- //# sourceMappingURL=home-banner.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"home-banner.js","names":[],"sources":["../../../../src/lib/gql/queries/home-banner.ts"],"sourcesContent":["import { gql } from '@apollo/client';\n\nexport const GET_HOME_BANNER_QUERY = gql`\n query GetHomeBanner($audience: String, $segment: String) {\n homeBanner(audience: $audience, segment: $segment) {\n _id\n _type\n eyebrow\n title\n description\n showPoweredBy\n buttons {\n label\n href\n openInNewTab\n }\n secondaryBanners {\n title\n description\n showPoweredBy\n image {\n alt\n asset {\n url\n }\n }\n button {\n label\n href\n openInNewTab\n }\n }\n image {\n alt\n asset {\n url\n }\n }\n }\n }\n`;\n"],"mappings":";;;AAEA,MAAa,wBAAwB,GAAG"}
@@ -1,11 +0,0 @@
1
- //#region src/lib/personalization/behavior-tracker.d.ts
2
- interface SegmentData {
3
- interest?: string;
4
- history?: string[];
5
- signals?: Record<string, unknown>;
6
- }
7
- declare function getSegmentCookie(): SegmentData;
8
- declare function setSegmentCookie(data: SegmentData): void;
9
- //#endregion
10
- export { SegmentData, getSegmentCookie, setSegmentCookie };
11
- //# sourceMappingURL=behavior-tracker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"behavior-tracker.d.ts","names":[],"sources":["../../../src/lib/personalization/behavior-tracker.ts"],"sourcesContent":[],"mappings":";UAEiB,WAAA;EAAA,QAAA,CAAA,EAAA,MAAW;EAgBZ,OAAA,CAAA,EAAA,MAAA,EAAA;EAUA,OAAA,CAAA,EAvBJ,MAuBI,CAAA,MAAgB,EAAA,OAAO,CAAA;;iBAVvB,gBAAA,CAAA,GAAoB;iBAUpB,gBAAA,OAAuB"}
@@ -1,21 +0,0 @@
1
- //#region src/lib/personalization/behavior-tracker.ts
2
- const SIGNAL_COOKIE = "_jg_segment";
3
- function buildCookieAttrs() {
4
- return `path=/;max-age=${3600 * 24 * 7};SameSite=none;secure;domain=.justgood.win`;
5
- }
6
- function getSegmentCookie() {
7
- const match = document.cookie.match(/_jg_segment=([^;]+)/);
8
- if (!match || !match[1]) return {};
9
- try {
10
- return JSON.parse(decodeURIComponent(match[1]));
11
- } catch {
12
- return {};
13
- }
14
- }
15
- function setSegmentCookie(data) {
16
- document.cookie = `${SIGNAL_COOKIE}=${encodeURIComponent(JSON.stringify(data))};${buildCookieAttrs()}`;
17
- }
18
-
19
- //#endregion
20
- export { getSegmentCookie, setSegmentCookie };
21
- //# sourceMappingURL=behavior-tracker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"behavior-tracker.js","names":[],"sources":["../../../src/lib/personalization/behavior-tracker.ts"],"sourcesContent":["import { PERSONALIZATION_CONFIG } from './config';\n\nexport interface SegmentData {\n interest?: string;\n history?: string[];\n signals?: Record<string, unknown>;\n}\n\nconst SIGNAL_COOKIE = '_jg_segment';\n\nfunction buildCookieAttrs(): string {\n const maxAge = 60 * 60 * 24 * 7;\n if (process.env.NODE_ENV === 'production') {\n return `path=/;max-age=${maxAge};SameSite=none;secure;domain=.justgood.win`;\n }\n return `path=/;max-age=${maxAge};SameSite=Lax`;\n}\n\nexport function getSegmentCookie(): SegmentData {\n const match = document.cookie.match(/_jg_segment=([^;]+)/);\n if (!match || !match[1]) return {};\n try {\n return JSON.parse(decodeURIComponent(match[1]));\n } catch {\n return {};\n }\n}\n\nexport function setSegmentCookie(data: SegmentData) {\n document.cookie = `${SIGNAL_COOKIE}=${encodeURIComponent(JSON.stringify(data))};${buildCookieAttrs()}`;\n}\n\n\n"],"mappings":";AAQA,MAAM,gBAAgB;AAEtB,SAAS,mBAA2B;AAGhC,QAAO,kBAFM,OAAU,KAAK,EAEI;;AAKpC,SAAgB,mBAAgC;CAC9C,MAAM,QAAQ,SAAS,OAAO,MAAM,sBAAsB;AAC1D,KAAI,CAAC,SAAS,CAAC,MAAM,GAAI,QAAO,EAAE;AAClC,KAAI;AACF,SAAO,KAAK,MAAM,mBAAmB,MAAM,GAAG,CAAC;SACzC;AACN,SAAO,EAAE;;;AAIb,SAAgB,iBAAiB,MAAmB;AAClD,UAAS,SAAS,GAAG,cAAc,GAAG,mBAAmB,KAAK,UAAU,KAAK,CAAC,CAAC,GAAG,kBAAkB"}