@tapcart/mobile-components 0.11.7 → 0.11.9

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 (36) hide show
  1. package/dist/components/hooks/use-block-conditional-rendering.d.ts +2 -2
  2. package/dist/components/hooks/use-block-conditional-rendering.d.ts.map +1 -1
  3. package/dist/components/hooks/use-block-conditional-rendering.js +25 -14
  4. package/dist/components/hooks/use-infinite-scroll.d.ts +2 -1
  5. package/dist/components/hooks/use-infinite-scroll.d.ts.map +1 -1
  6. package/dist/components/hooks/use-infinite-scroll.js +7 -3
  7. package/dist/components/hooks/use-product-options.js +3 -2
  8. package/dist/components/hooks/use-products.d.ts.map +1 -1
  9. package/dist/components/hooks/use-products.js +3 -1
  10. package/dist/components/hooks/use-reviews.d.ts.map +1 -1
  11. package/dist/components/hooks/use-reviews.js +8 -1
  12. package/dist/components/hooks/use-sort-filter.d.ts.map +1 -1
  13. package/dist/components/hooks/use-sort-filter.js +27 -5
  14. package/dist/components/libs/cache/ProductsLocalStorage.js +1 -1
  15. package/dist/components/libs/sort-filter/custom-search.js +1 -1
  16. package/dist/components/ui/badge.d.ts +7 -1
  17. package/dist/components/ui/badge.d.ts.map +1 -1
  18. package/dist/components/ui/badge.js +9 -4
  19. package/dist/components/ui/carousel.d.ts.map +1 -1
  20. package/dist/components/ui/carousel.js +49 -7
  21. package/dist/components/ui/drawer.js +2 -2
  22. package/dist/components/ui/product-card.d.ts +6 -0
  23. package/dist/components/ui/product-card.d.ts.map +1 -1
  24. package/dist/components/ui/product-card.js +3 -3
  25. package/dist/components/ui/text.d.ts +5 -1
  26. package/dist/components/ui/text.d.ts.map +1 -1
  27. package/dist/components/ui/text.js +8 -2
  28. package/dist/index.d.ts +1 -0
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +1 -0
  31. package/dist/lib/price.d.ts.map +1 -1
  32. package/dist/lib/utils.d.ts +13 -1
  33. package/dist/lib/utils.d.ts.map +1 -1
  34. package/dist/lib/utils.js +58 -11
  35. package/dist/tests/utils.test.js +200 -1
  36. package/package.json +1 -1
@@ -4,8 +4,8 @@ export declare const useBlockConditionalRendering: (_props: {
4
4
  apiUrl: string;
5
5
  deviceVariables: any;
6
6
  customerVariables: any;
7
- }, _block: PhoenixBlock) => {
7
+ }, _block: PhoenixBlock, mobileComponentOverrides?: any) => {
8
8
  shouldShow: boolean;
9
- isLoading: boolean;
9
+ isLoading: any;
10
10
  };
11
11
  //# sourceMappingURL=use-block-conditional-rendering.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-block-conditional-rendering.d.ts","sourceRoot":"","sources":["../../../components/hooks/use-block-conditional-rendering.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,YAAY,EAGb,MAAM,kBAAkB,CAAA;AAczB,eAAO,MAAM,4BAA4B,WAC/B;IACN,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,eAAe,EAAE,GAAG,CAAA;IACpB,iBAAiB,EAAE,GAAG,CAAA;CACvB,UACO,YAAY;;;CAqPrB,CAAA"}
1
+ {"version":3,"file":"use-block-conditional-rendering.d.ts","sourceRoot":"","sources":["../../../components/hooks/use-block-conditional-rendering.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,YAAY,EAGb,MAAM,kBAAkB,CAAA;AAezB,eAAO,MAAM,4BAA4B,WAC/B;IACN,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,eAAe,EAAE,GAAG,CAAA;IACpB,iBAAiB,EAAE,GAAG,CAAA;CACvB,UACO,YAAY,6BACO,GAAG;;;CAqQ/B,CAAA"}
@@ -11,23 +11,22 @@ var __rest = (this && this.__rest) || function (s, e) {
11
11
  return t;
12
12
  };
13
13
  import { useMemo } from "react";
14
- import { useProducts } from "./use-products";
15
- import { useCollection } from "./use-collection";
14
+ import { useProducts as mclUseProducts } from "./use-products";
15
+ import { useCollection as mclUseCollection } from "./use-collection";
16
16
  import { useSearchParams } from "next/navigation";
17
- import { gidFromId, countNumberOfTagsInState, getEnvState, shouldShowBlock, evaluateConditions, } from "../../lib/utils";
18
- export const useBlockConditionalRendering = (_props, _block) => {
19
- var _a, _b, _c, _d, _e, _f;
20
- const _g = ((_a = _block === null || _block === void 0 ? void 0 : _block.visibilityConditions) === null || _a === void 0 ? void 0 : _a.conditions) || {}, { enabled: conditionalsV1IsEnabled = false, exclude: isInverse = false } = _g, restOfProps = __rest(_g, ["enabled", "exclude"]);
17
+ import { gidFromId, countNumberOfTagsInState, getEnvState, shouldShowBlock, evaluateConditions, parseBCP47Locale, } from "../../lib/utils";
18
+ export const useBlockConditionalRendering = (_props, _block, mobileComponentOverrides) => {
19
+ var _a, _b, _c, _d, _e;
20
+ const _f = ((_a = _block === null || _block === void 0 ? void 0 : _block.visibilityConditions) === null || _a === void 0 ? void 0 : _a.conditions) || {}, { enabled: conditionalsV1IsEnabled = false, exclude: isInverse = false } = _f, restOfProps = __rest(_f, ["enabled", "exclude"]);
21
21
  const { _version = 1, conditions, enabled: conditionalsV2IsEnabled = false, } = (_block === null || _block === void 0 ? void 0 : _block.visibilityConditions) || {};
22
22
  const isConditionalsEnabled = conditionalsV1IsEnabled || conditionalsV2IsEnabled;
23
23
  const blockState = restOfProps;
24
24
  const { appId = "", apiUrl = "", deviceVariables, customerVariables } = _props;
25
25
  const searchParams = useSearchParams();
26
- // locale is provided in this form en_US
27
- const [language = "en", country = "US"] = ((_b = deviceVariables === null || deviceVariables === void 0 ? void 0 : deviceVariables.locale) === null || _b === void 0 ? void 0 : _b.split("_")) || [];
26
+ const [language = "en", country = "US"] = parseBCP47Locale(deviceVariables === null || deviceVariables === void 0 ? void 0 : deviceVariables.locale);
28
27
  const { id: deviceId = "" } = deviceVariables || {};
29
- const productId = (_c = searchParams === null || searchParams === void 0 ? void 0 : searchParams.get("productId")) !== null && _c !== void 0 ? _c : undefined;
30
- const productHandle = (_d = searchParams === null || searchParams === void 0 ? void 0 : searchParams.get("productHandle")) !== null && _d !== void 0 ? _d : undefined;
28
+ const productId = (_b = searchParams === null || searchParams === void 0 ? void 0 : searchParams.get("productId")) !== null && _b !== void 0 ? _b : undefined;
29
+ const productHandle = (_c = searchParams === null || searchParams === void 0 ? void 0 : searchParams.get("productHandle")) !== null && _c !== void 0 ? _c : undefined;
31
30
  const location = {
32
31
  country,
33
32
  language,
@@ -65,8 +64,14 @@ export const useBlockConditionalRendering = (_props, _block) => {
65
64
  isConditionalsEnabled,
66
65
  ]);
67
66
  const shouldFetchProduct = isConditionalsEnabled && (productId || productHandle);
68
- const { products, error: useProductsError, isLoading: isProductsLoading, } = useProducts(shouldFetchProduct
67
+ const useProducts = (mobileComponentOverrides === null || mobileComponentOverrides === void 0 ? void 0 : mobileComponentOverrides.useProducts) || mclUseProducts;
68
+ const useProductsArguments = (mobileComponentOverrides === null || mobileComponentOverrides === void 0 ? void 0 : mobileComponentOverrides.useProducts)
69
69
  ? {
70
+ productIds: productId ? [gidFromId(productId)] : [],
71
+ productHandles: productHandle ? [productHandle] : [],
72
+ metafields: productMetafieldsQuery,
73
+ }
74
+ : {
70
75
  productIds: productId ? [gidFromId(productId)] : [],
71
76
  baseURL: apiUrl,
72
77
  productHandles: productHandle ? [productHandle] : [],
@@ -75,8 +80,13 @@ export const useBlockConditionalRendering = (_props, _block) => {
75
80
  language,
76
81
  country,
77
82
  },
83
+ };
84
+ const useProductsSkipArguments = (mobileComponentOverrides === null || mobileComponentOverrides === void 0 ? void 0 : mobileComponentOverrides.useProducts)
85
+ ? {
86
+ skip: true,
78
87
  }
79
- : null);
88
+ : null;
89
+ const { products, error: useProductsError, isLoading: isProductsLoading, } = useProducts(shouldFetchProduct ? useProductsArguments : useProductsSkipArguments);
80
90
  const blockCollectionMetafields = useMemo(() => {
81
91
  var _a;
82
92
  if (!isConditionalsEnabled) {
@@ -128,9 +138,10 @@ export const useBlockConditionalRendering = (_props, _block) => {
128
138
  .map((m) => `${m.namespace}.${m.key}`)
129
139
  .join(",");
130
140
  }, [collectionMetafieldsQuery, isConditionalsEnabled]);
131
- const collectionId = (_e = searchParams === null || searchParams === void 0 ? void 0 : searchParams.get("collectionId")) !== null && _e !== void 0 ? _e : undefined;
132
- const collectionHandle = (_f = searchParams === null || searchParams === void 0 ? void 0 : searchParams.get("collectionHandle")) !== null && _f !== void 0 ? _f : undefined;
141
+ const collectionId = (_d = searchParams === null || searchParams === void 0 ? void 0 : searchParams.get("collectionId")) !== null && _d !== void 0 ? _d : undefined;
142
+ const collectionHandle = (_e = searchParams === null || searchParams === void 0 ? void 0 : searchParams.get("collectionHandle")) !== null && _e !== void 0 ? _e : undefined;
133
143
  const shouldFetchCollection = isConditionalsEnabled && (collectionId || collectionHandle);
144
+ const useCollection = (mobileComponentOverrides === null || mobileComponentOverrides === void 0 ? void 0 : mobileComponentOverrides.useCollection) || mclUseCollection;
134
145
  const { specificCollection = {}, error: useCollectionError, loading: isCollectionLoading, } = useCollection({
135
146
  appId,
136
147
  apiUrl,
@@ -19,6 +19,7 @@ interface UseInfiniteScrollProps {
19
19
  interval?: number;
20
20
  customFetcher?: (...args: any[]) => Promise<any>;
21
21
  customGetKey?: (pageIndex: number, previousPageData: any | null, ...args: any[]) => any;
22
+ shouldSkipFetch?: boolean;
22
23
  }
23
24
  interface UseInfiniteScrollReturn {
24
25
  data: PageData[] | undefined;
@@ -35,6 +36,6 @@ interface UseInfiniteScrollReturn {
35
36
  }
36
37
  export declare const formatSearchParamsAsNextQueryVariables: (searchParams: ReadonlyURLSearchParams) => {};
37
38
  declare const constructURL: (apiURL: string) => string;
38
- declare const useInfiniteScroll: ({ searchClient, initialData, queryVariables: queryVariableProps, direction, productLimit, threshold, interval, customFetcher, customGetKey, }: UseInfiniteScrollProps) => UseInfiniteScrollReturn;
39
+ declare const useInfiniteScroll: ({ searchClient, initialData, queryVariables: queryVariableProps, direction, productLimit, threshold, interval, customFetcher, customGetKey, shouldSkipFetch: shouldSkipFetchProp, }: UseInfiniteScrollProps) => UseInfiniteScrollReturn;
39
40
  export { useInfiniteScroll, constructURL };
40
41
  //# sourceMappingURL=use-infinite-scroll.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-infinite-scroll.d.ts","sourceRoot":"","sources":["../../../components/hooks/use-infinite-scroll.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,uBAAuB,EAAmB,MAAM,iBAAiB,CAAA;AAE1E,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAE5D,UAAU,QAAQ;IAChB,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,GAAG,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAA;CACxC;AAED,UAAU,sBAAsB;IAE9B,YAAY,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAGxC,WAAW,CAAC,EAAE,QAAQ,CAAA;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAGpC,SAAS,CAAC,EAAE,UAAU,GAAG,YAAY,CAAA;IACrC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IAChD,YAAY,CAAC,EAAE,CACb,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,GAAG,GAAG,IAAI,EAC5B,GAAG,IAAI,EAAE,GAAG,EAAE,KACX,GAAG,CAAA;CACT;AAED,UAAU,uBAAuB;IAC/B,IAAI,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAA;IAC5B,KAAK,EAAE,GAAG,CAAA;IACV,oBAAoB,EAAE,OAAO,CAAA;IAC7B,aAAa,EAAE,OAAO,GAAG,SAAS,CAAA;IAClC,OAAO,EAAE,OAAO,CAAA;IAChB,aAAa,EAAE,OAAO,CAAA;IACtB,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,KAAK,IAAI,CAAA;IAChD,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,oBAAoB,EAAE,GAAG,EAAE,CAAA;IAC3B,SAAS,EAAE,OAAO,CAAA;IAClB,YAAY,EAAE,OAAO,CAAA;CACtB;AAED,eAAO,MAAM,sCAAsC,iBACnC,uBAAuB,OAsBtC,CAAA;AAED,QAAA,MAAM,YAAY,WAAY,MAAM,WAGnC,CAAA;AAED,QAAA,MAAM,iBAAiB,kJAepB,sBAAsB,KAAG,uBAuR3B,CAAA;AAED,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,CAAA"}
1
+ {"version":3,"file":"use-infinite-scroll.d.ts","sourceRoot":"","sources":["../../../components/hooks/use-infinite-scroll.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,uBAAuB,EAAmB,MAAM,iBAAiB,CAAA;AAE1E,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAE5D,UAAU,QAAQ;IAChB,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,GAAG,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAA;CACxC;AAED,UAAU,sBAAsB;IAE9B,YAAY,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAGxC,WAAW,CAAC,EAAE,QAAQ,CAAA;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAGpC,SAAS,CAAC,EAAE,UAAU,GAAG,YAAY,CAAA;IACrC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IAChD,YAAY,CAAC,EAAE,CACb,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,GAAG,GAAG,IAAI,EAC5B,GAAG,IAAI,EAAE,GAAG,EAAE,KACX,GAAG,CAAA;IACR,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAED,UAAU,uBAAuB;IAC/B,IAAI,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAA;IAC5B,KAAK,EAAE,GAAG,CAAA;IACV,oBAAoB,EAAE,OAAO,CAAA;IAC7B,aAAa,EAAE,OAAO,GAAG,SAAS,CAAA;IAClC,OAAO,EAAE,OAAO,CAAA;IAChB,aAAa,EAAE,OAAO,CAAA;IACtB,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG,SAAS,KAAK,IAAI,CAAA;IAChD,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,oBAAoB,EAAE,GAAG,EAAE,CAAA;IAC3B,SAAS,EAAE,OAAO,CAAA;IAClB,YAAY,EAAE,OAAO,CAAA;CACtB;AAED,eAAO,MAAM,sCAAsC,iBACnC,uBAAuB,OAsBtC,CAAA;AAED,QAAA,MAAM,YAAY,WAAY,MAAM,WAGnC,CAAA;AAED,QAAA,MAAM,iBAAiB,wLAgBpB,sBAAsB,KAAG,uBAwR3B,CAAA;AAED,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,CAAA"}
@@ -48,7 +48,7 @@ searchClient,
48
48
  initialData, queryVariables: queryVariableProps,
49
49
  // Common props
50
50
  direction = "vertical", productLimit = Infinity, threshold = 0.01, interval = 33, // ~2 frames
51
- customFetcher, customGetKey, }) => {
51
+ customFetcher, customGetKey, shouldSkipFetch: shouldSkipFetchProp, }) => {
52
52
  var _a, _b, _c, _d, _e;
53
53
  const searchParams = useSearchParams();
54
54
  const productCount = useRef(0);
@@ -79,7 +79,9 @@ customFetcher, customGetKey, }) => {
79
79
  const hasQuery = useMemo(() => {
80
80
  return Boolean(currentSearchQuery);
81
81
  }, [currentSearchQuery]);
82
- const shouldSkipFetch = !hasCollection && !hasQuery;
82
+ const shouldSkipFetch = shouldSkipFetchProp !== undefined
83
+ ? shouldSkipFetchProp
84
+ : !hasCollection && !hasQuery;
83
85
  // Search client approach - getKey and fetcher
84
86
  const searchClientGetKey = useMemo(() => customGetKey || (searchClient === null || searchClient === void 0 ? void 0 : searchClient.getKey), [customGetKey, searchClient === null || searchClient === void 0 ? void 0 : searchClient.getKey]);
85
87
  const searchClientFetcher = useMemo(() => customFetcher || (searchClient === null || searchClient === void 0 ? void 0 : searchClient.fetcher), [customFetcher, searchClient === null || searchClient === void 0 ? void 0 : searchClient.fetcher]);
@@ -124,9 +126,11 @@ customFetcher, customGetKey, }) => {
124
126
  return searchClientGetKey(pageIndex, previousPageData);
125
127
  }
126
128
  : (pageIndex, previousPageData) => {
129
+ if (customGetKey)
130
+ return customGetKey(pageIndex, previousPageData, queryVariables !== null && queryVariables !== void 0 ? queryVariables : {});
127
131
  if (shouldSkipFetch)
128
132
  return null;
129
- return (customGetKey || apiGetKey)(pageIndex, previousPageData, queryVariables !== null && queryVariables !== void 0 ? queryVariables : {});
133
+ return apiGetKey(pageIndex, previousPageData, queryVariables !== null && queryVariables !== void 0 ? queryVariables : {});
130
134
  };
131
135
  const fetcher = usingSearchClient
132
136
  ? (...args) => __awaiter(void 0, void 0, void 0, function* () {
@@ -20,8 +20,9 @@ export function useProductOptions(variants, selectedVariantId) {
20
20
  }, [safeVariants]);
21
21
  const getSelectedOptions = useMemo(() => {
22
22
  return (variant) => {
23
+ var _a;
23
24
  const selectedOptions = {};
24
- variant.selectedOptions.forEach((option) => {
25
+ (_a = variant.selectedOptions) === null || _a === void 0 ? void 0 : _a.forEach((option) => {
25
26
  selectedOptions[option.name] = option.value;
26
27
  });
27
28
  return selectedOptions;
@@ -52,7 +53,7 @@ export function useProductOptions(variants, selectedVariantId) {
52
53
  useEffect(() => {
53
54
  setSelectedOptions(initializeSelectedOptions(selectedVariantId));
54
55
  }, [safeVariants, initializeSelectedOptions, selectedVariantId]);
55
- const selectedVariant = useMemo(() => safeVariants.find((v) => v.selectedOptions.every((o) => selectedOptions[o.name] === o.value)), [safeVariants, selectedOptions]);
56
+ const selectedVariant = useMemo(() => safeVariants.find((v) => { var _a; return (_a = v.selectedOptions) === null || _a === void 0 ? void 0 : _a.every((o) => selectedOptions[o.name] === o.value); }), [safeVariants, selectedOptions]);
56
57
  return {
57
58
  selectedOptions,
58
59
  handleSelect,
@@ -1 +1 @@
1
- {"version":3,"file":"use-products.d.ts","sourceRoot":"","sources":["../../../components/hooks/use-products.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAK1C,KAAK,GAAG,GAAG,MAAM,CAAA;AACjB,KAAK,cAAc,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAA;AACxD,KAAK,gBAAgB,GAAG;IACtB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,OAAO,EAAE,GAAG,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACpC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IAC1E,UAAU,CAAC,EAAE,cAAc,EAAE,CAAA;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AACD,KAAK,iBAAiB,GAAG;IACvB,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,KAAK,EAAE,GAAG,CAAA;IACV,SAAS,EAAE,OAAO,CAAA;IAClB,YAAY,EAAE,OAAO,CAAA;IACrB,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,KAC3B;QACE,EAAE,EAAE,MAAM,CAAA;QACV,MAAM,EAAE,MAAM,CAAA;KACf,GACD,SAAS,CAAA;CACd,CAAA;AAqDD,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,GAAG,iBAAiB,CAwJ7E"}
1
+ {"version":3,"file":"use-products.d.ts","sourceRoot":"","sources":["../../../components/hooks/use-products.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAK1C,KAAK,GAAG,GAAG,MAAM,CAAA;AACjB,KAAK,cAAc,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAA;AACxD,KAAK,gBAAgB,GAAG;IACtB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,OAAO,EAAE,GAAG,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACpC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IAC1E,UAAU,CAAC,EAAE,cAAc,EAAE,CAAA;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,qBAAqB,CAAC,EAAE,OAAO,CAAA;CAChC,CAAA;AACD,KAAK,iBAAiB,GAAG;IACvB,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,KAAK,EAAE,GAAG,CAAA;IACV,SAAS,EAAE,OAAO,CAAA;IAClB,YAAY,EAAE,OAAO,CAAA;IACrB,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,KAC3B;QACE,EAAE,EAAE,MAAM,CAAA;QACV,MAAM,EAAE,MAAM,CAAA;KACf,GACD,SAAS,CAAA;CACd,CAAA;AAqDD,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,GAAG,iBAAiB,CA0J7E"}
@@ -106,7 +106,9 @@ export function useProducts(props) {
106
106
  const data = yield res.json();
107
107
  // Check if data is an object with a products property or an array
108
108
  const productsArray = Array.isArray(data) ? data : data.products || [];
109
- const cachedProducts = productsArray.map((product) => {
109
+ const cachedProducts = productsArray
110
+ .filter((product) => !!product)
111
+ .map((product) => {
110
112
  productsLocalStorage.setCacheItem(product);
111
113
  return product;
112
114
  });
@@ -1 +1 @@
1
- {"version":3,"file":"use-reviews.d.ts","sourceRoot":"","sources":["../../../components/hooks/use-reviews.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EACjB,MAAM,kBAAkB,CAAA;AAGzB,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IACvC,QAAQ,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAA;IAC3C,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,CAAC,MAAM,CAAC,CAAA;IACjB,MAAM,EAAE,CAAC,MAAM,CAAC,CAAA;IAChB,MAAM,EACF,MAAM,GACN,UAAU,GACV,YAAY,GACZ,MAAM,GACN,QAAQ,GACR,eAAe,CAAA;IACnB,SAAS,EAAE,OAAO,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,KAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,iBAAiB,GAAG,cAAc,GAAG,gBAAgB,GAAG,IAAI,CAAA;IAClE,KAAK,EAAE,GAAG,CAAA;IACV,SAAS,EAAE,OAAO,CAAA;IAClB,eAAe,CAAC,EAAE,GAAG,CAAA;IACrB,oBAAoB,CAAC,EAAE,GAAG,CAAA;IAC1B,eAAe,CAAC,EAAE;QAChB,YAAY,EAAE,MAAM,CAAA;QACpB,gBAAgB,EAAE,MAAM,CAAA;KACzB,CAAA;CACF,CAAA;AAqED,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,GAAG,gBAAgB,CAyE1E;AAED,KAAK,wBAAwB,GAAG,gBAAgB,GAAG;IACjD,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,CAAA;CACrC,CAAA;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,eAAe,GAAG,IAAI,GAC5B,wBAAwB,CAmK1B"}
1
+ {"version":3,"file":"use-reviews.d.ts","sourceRoot":"","sources":["../../../components/hooks/use-reviews.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EACjB,MAAM,kBAAkB,CAAA;AAGzB,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IACvC,QAAQ,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAA;IAC3C,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,CAAC,MAAM,CAAC,CAAA;IACjB,MAAM,EAAE,CAAC,MAAM,CAAC,CAAA;IAChB,MAAM,EACF,MAAM,GACN,UAAU,GACV,YAAY,GACZ,MAAM,GACN,QAAQ,GACR,eAAe,CAAA;IACnB,SAAS,EAAE,OAAO,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,KAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,iBAAiB,GAAG,cAAc,GAAG,gBAAgB,GAAG,IAAI,CAAA;IAClE,KAAK,EAAE,GAAG,CAAA;IACV,SAAS,EAAE,OAAO,CAAA;IAClB,eAAe,CAAC,EAAE,GAAG,CAAA;IACrB,oBAAoB,CAAC,EAAE,GAAG,CAAA;IAC1B,eAAe,CAAC,EAAE;QAChB,YAAY,EAAE,MAAM,CAAA;QACpB,gBAAgB,EAAE,MAAM,CAAA;KACzB,CAAA;CACF,CAAA;AA2ED,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,GAAG,gBAAgB,CA8E1E;AAED,KAAK,wBAAwB,GAAG,gBAAgB,GAAG;IACjD,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,CAAA;CACrC,CAAA;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,eAAe,GAAG,IAAI,GAC5B,wBAAwB,CAmK1B"}
@@ -3,6 +3,10 @@ import { useCallback, useEffect, useRef } from "react";
3
3
  import useSWR from "swr";
4
4
  import useSWRInfinite from "swr/infinite";
5
5
  import { useInView } from "react-intersection-observer";
6
+ const YOTPO = "yotpo";
7
+ const OKENDO = "okendo";
8
+ const STAMPED = "stamped";
9
+ const SUPPORTED_PROVIDERS = [YOTPO, OKENDO, STAMPED];
6
10
  const reviewsMockData = [
7
11
  {
8
12
  id: "dabbba8a-1188-4423-8aa2-1789dca7d67c",
@@ -91,7 +95,10 @@ export function useReviews(props) {
91
95
  if (limit) {
92
96
  queryParams.set("limit", String(limit));
93
97
  }
94
- if (dataType === null || productId === null || productId.length === 0) {
98
+ if (dataType === null ||
99
+ productId === null ||
100
+ productId.length === 0 ||
101
+ !SUPPORTED_PROVIDERS.includes(provider)) {
95
102
  url = null;
96
103
  }
97
104
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"use-sort-filter.d.ts","sourceRoot":"","sources":["../../../components/hooks/use-sort-filter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAExE,OAAO,EACL,cAAc,EACd,2BAA2B,EAC3B,WAAW,EACX,mBAAmB,EACpB,MAAM,wCAAwC,CAAA;AAI/C,UAAU,kBAAkB;IAC1B,WAAW,EAAE,QAAQ,CAAA;IACrB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACnC,UAAU,CAAC,EAAE,CAAC,cAAc,EAAE,GAAG,KAAK,MAAM,GAAG,CAAA;IAC/C,YAAY,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;CACzC;AAED,UAAU,QAAQ;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,cAAc,EAAE,CAAA;IAC/B,cAAc,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAA;CACxC;AAED,UAAU,mBAAmB;IAC3B,cAAc,EAAE,cAAc,CAAA;IAC9B,IAAI,EAAE,GAAG,EAAE,CAAA;IACX,MAAM,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAA;IAC1B,SAAS,EAAE,OAAO,CAAA;IAClB,eAAe,EAAE,OAAO,CAAA;CACzB;AAED,UAAU,cAAc;IACtB,UAAU,EAAE,UAAU,CAAA;IACtB,2BAA2B,EAAE,2BAA2B,CAAA;IACxD,WAAW,EAAE,mBAAmB,EAAE,CAAA;IAClC,qBAAqB,EAAE,OAAO,CAAA;IAC9B,YAAY,EAAE,WAAW,EAAE,CAAA;CAC5B;AAeD,QAAA,MAAM,aAAa,+DAKhB,kBAAkB,KAAG,mBA2EvB,CAAA;AAED,OAAO,EAAE,aAAa,EAAE,CAAA"}
1
+ {"version":3,"file":"use-sort-filter.d.ts","sourceRoot":"","sources":["../../../components/hooks/use-sort-filter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAExE,OAAO,EACL,cAAc,EACd,2BAA2B,EAC3B,WAAW,EACX,mBAAmB,EACpB,MAAM,wCAAwC,CAAA;AAI/C,UAAU,kBAAkB;IAC1B,WAAW,EAAE,QAAQ,CAAA;IACrB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACnC,UAAU,CAAC,EAAE,CAAC,cAAc,EAAE,GAAG,KAAK,MAAM,GAAG,CAAA;IAC/C,YAAY,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAA;CACzC;AAED,UAAU,QAAQ;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,cAAc,EAAE,CAAA;IAC/B,cAAc,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAA;CACxC;AAED,UAAU,mBAAmB;IAC3B,cAAc,EAAE,cAAc,CAAA;IAC9B,IAAI,EAAE,GAAG,EAAE,CAAA;IACX,MAAM,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAA;IAC1B,SAAS,EAAE,OAAO,CAAA;IAClB,eAAe,EAAE,OAAO,CAAA;CACzB;AAED,UAAU,cAAc;IACtB,UAAU,EAAE,UAAU,CAAA;IACtB,2BAA2B,EAAE,2BAA2B,CAAA;IACxD,WAAW,EAAE,mBAAmB,EAAE,CAAA;IAClC,qBAAqB,EAAE,OAAO,CAAA;IAC9B,YAAY,EAAE,WAAW,EAAE,CAAA;CAC5B;AAeD,QAAA,MAAM,aAAa,+DAKhB,kBAAkB,KAAG,mBAmGvB,CAAA;AAED,OAAO,EAAE,aAAa,EAAE,CAAA"}
@@ -22,27 +22,49 @@ const fetcher = ({ apiURL, body }) => fetch(constructURL(apiURL), {
22
22
  .then((res) => res.json())
23
23
  .catch((error) => console.error(error));
24
24
  const useSortFilter = ({ initialData, queryVariables, dynamicKey, searchClient, }) => {
25
- const shouldFetch = queryVariables && Object.keys(queryVariables).length > 0 && !searchClient;
25
+ var _a;
26
+ // Extract current critical params
27
+ const currentCollectionId = queryVariables === null || queryVariables === void 0 ? void 0 : queryVariables.collectionId;
28
+ const currentCollectionHandle = queryVariables === null || queryVariables === void 0 ? void 0 : queryVariables.collectionHandle;
29
+ const currentSearchQuery = (_a = queryVariables === null || queryVariables === void 0 ? void 0 : queryVariables.searchParams) === null || _a === void 0 ? void 0 : _a.searchQuery;
30
+ // Determine whether we should skip fetching
31
+ // Always skip if searchClient is provided (it handles fetching)
32
+ // Otherwise, skip if there's no collection and no query
33
+ const hasCollection = useMemo(() => {
34
+ return Boolean(currentCollectionId || currentCollectionHandle);
35
+ }, [currentCollectionId, currentCollectionHandle]);
36
+ const hasQuery = useMemo(() => {
37
+ return Boolean(currentSearchQuery);
38
+ }, [currentSearchQuery]);
39
+ const shouldSkipFetch = Boolean(searchClient) || (!hasCollection && !hasQuery);
40
+ const shouldFetch = queryVariables && Object.keys(queryVariables).length > 0 && !shouldSkipFetch;
26
41
  const { data: sortFilterData, isLoading } = useSWR(shouldFetch
27
42
  ? { apiUrl: initialData.sortFilterURL, body: Object.assign({}, queryVariables) }
28
43
  : null, ({ apiUrl, body }) => fetcher({ apiURL: apiUrl, body }), { revalidateOnFocus: false });
29
44
  const getKey = () => {
30
- if (!sortFilterData ||
31
- !sortFilterData.dynamicFiltersEnabled ||
32
- searchClient)
45
+ if (shouldSkipFetch ||
46
+ !sortFilterData ||
47
+ !sortFilterData.dynamicFiltersEnabled)
33
48
  return null;
34
49
  return Object.assign(Object.assign({}, sortFilterData.queryVariables), (initialData.uiFilterState && {
35
50
  filterCategories: initialData.uiFilterState,
36
51
  }));
37
52
  };
38
53
  const memoizedDynamicKey = useCallback(() => {
54
+ if (shouldSkipFetch)
55
+ return null;
39
56
  if (dynamicKey && !searchClient) {
40
57
  return dynamicKey(sortFilterData === null || sortFilterData === void 0 ? void 0 : sortFilterData.queryVariables);
41
58
  }
42
59
  else {
43
60
  return null;
44
61
  }
45
- }, [dynamicKey, sortFilterData === null || sortFilterData === void 0 ? void 0 : sortFilterData.queryVariables, searchClient]);
62
+ }, [
63
+ shouldSkipFetch,
64
+ dynamicKey,
65
+ sortFilterData === null || sortFilterData === void 0 ? void 0 : sortFilterData.queryVariables,
66
+ searchClient,
67
+ ]);
46
68
  const memoizedFetch = useMemo(() => {
47
69
  return (body) => fetcher({ apiURL: initialData.filtersURL, body });
48
70
  }, [initialData.filtersURL]);
@@ -57,7 +57,7 @@ export default class ProductsLocalStorage extends AppStudioCache {
57
57
  }
58
58
  setCacheItem(product, cache, shouldExpire = true) {
59
59
  var _a, _b;
60
- if (!((_a = product.handle) === null || _a === void 0 ? void 0 : _a.length) || !((_b = product.id) === null || _b === void 0 ? void 0 : _b.length))
60
+ if (!((_a = product === null || product === void 0 ? void 0 : product.handle) === null || _a === void 0 ? void 0 : _a.length) || !((_b = product === null || product === void 0 ? void 0 : product.id) === null || _b === void 0 ? void 0 : _b.length))
61
61
  return;
62
62
  if (shouldExpire) {
63
63
  this.expireCacheData();
@@ -6,7 +6,7 @@ export class CustomSearch extends KMP {
6
6
  const filtersToApply = filters.reduce((acc, it) => {
7
7
  const inner = it.filters.reduce((innerAcc, f) => {
8
8
  if (f.isSelected) {
9
- innerAcc.push(`${it.id}-${f.tag}`);
9
+ innerAcc.push(`${it.id}::${f.tag}`);
10
10
  }
11
11
  return innerAcc;
12
12
  }, []);
@@ -11,7 +11,13 @@ export interface BadgeProps extends React.HTMLAttributes<HTMLDivElement>, Varian
11
11
  type?: "icon-and-text" | "icon-only" | "text-only";
12
12
  backgroundColor?: string | null;
13
13
  fontColor?: string | null;
14
+ fontFamily?: string | null;
15
+ fontWeight?: number | null;
16
+ fontSize?: number | null;
17
+ textAlignment?: string | null;
18
+ badgeHeight?: number | null;
19
+ badgeWidth?: number | null;
14
20
  }
15
- declare function Badge({ className, icon, iconUrl, alignment, cornerRadius, type, size, backgroundColor, fontColor, ...props }: BadgeProps): import("react/jsx-runtime").JSX.Element;
21
+ declare function Badge({ className, icon, iconUrl, alignment, cornerRadius, type, size, backgroundColor, fontColor, fontFamily, fontWeight, fontSize, textAlignment, badgeHeight, badgeWidth, children, style, ...props }: BadgeProps): import("react/jsx-runtime").JSX.Element;
16
22
  export { Badge, badgeVariants };
17
23
  //# sourceMappingURL=badge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"badge.d.ts","sourceRoot":"","sources":["../../../components/ui/badge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAMjE,QAAA,MAAM,aAAa;;;mFAoDlB,CAAA;AAED,MAAM,WAAW,UACf,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAC1C,YAAY,CAAC,OAAO,aAAa,CAAC;IACpC,IAAI,EAAE,YAAY,GAAG,WAAW,GAAG,kBAAkB,CAAA;IACrD,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,IAAI,CAAC,EAAE,eAAe,GAAG,WAAW,GAAG,WAAW,CAAA;IAClD,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1B;AAED,iBAAS,KAAK,CAAC,EACb,SAAS,EACT,IAAI,EACJ,OAAO,EACP,SAAS,EACT,YAAwB,EACxB,IAAsB,EACtB,IAAmB,EACnB,eAAe,EACf,SAAS,EACT,GAAG,KAAK,EACT,EAAE,UAAU,2CAiDZ;AAED,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA"}
1
+ {"version":3,"file":"badge.d.ts","sourceRoot":"","sources":["../../../components/ui/badge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAMjE,QAAA,MAAM,aAAa;;;mFAoDlB,CAAA;AAED,MAAM,WAAW,UACf,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAC1C,YAAY,CAAC,OAAO,aAAa,CAAC;IACpC,IAAI,EAAE,YAAY,GAAG,WAAW,GAAG,kBAAkB,CAAA;IACrD,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,IAAI,CAAC,EAAE,eAAe,GAAG,WAAW,GAAG,WAAW,CAAA;IAClD,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B;AAED,iBAAS,KAAK,CAAC,EACb,SAAS,EACT,IAAI,EACJ,OAAO,EACP,SAAS,EACT,YAAwB,EACxB,IAAsB,EACtB,IAAmB,EACnB,eAAe,EACf,SAAS,EACT,UAAU,EACV,UAAU,EACV,QAAQ,EACR,aAAa,EACb,WAAW,EACX,UAAU,EACV,QAAQ,EACR,KAAK,EACL,GAAG,KAAK,EACT,EAAE,UAAU,2CAiEZ;AAED,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA"}
@@ -19,7 +19,7 @@ const badgeVariants = cva("inline-flex items-center justify-center gap-1 py-1 px
19
19
  alignment: {
20
20
  start: "",
21
21
  end: "",
22
- center: "w-full",
22
+ center: "",
23
23
  },
24
24
  cornerRadius: {
25
25
  rounded: "",
@@ -65,10 +65,15 @@ const badgeVariants = cva("inline-flex items-center justify-center gap-1 py-1 px
65
65
  ],
66
66
  });
67
67
  function Badge(_a) {
68
- var { className, icon, iconUrl, alignment, cornerRadius = "rounded", type = "icon-and-text", size = "plp-layout", backgroundColor, fontColor } = _a, props = __rest(_a, ["className", "icon", "iconUrl", "alignment", "cornerRadius", "type", "size", "backgroundColor", "fontColor"]);
68
+ var { className, icon, iconUrl, alignment, cornerRadius = "rounded", type = "icon-and-text", size = "plp-layout", backgroundColor, fontColor, fontFamily, fontWeight, fontSize, textAlignment, badgeHeight, badgeWidth, children, style } = _a, props = __rest(_a, ["className", "icon", "iconUrl", "alignment", "cornerRadius", "type", "size", "backgroundColor", "fontColor", "fontFamily", "fontWeight", "fontSize", "textAlignment", "badgeHeight", "badgeWidth", "children", "style"]);
69
69
  const backgroundColorOverride = backgroundColor ? { backgroundColor } : {};
70
- const BadgeText = () => (_jsx(Text, Object.assign({ type: size === "plp-layout" ? "body-primary" : "body-secondary", className: "text-productBadging-text", fontColor: fontColor }, { children: props.children })));
71
- return (_jsx("div", Object.assign({ className: cn(badgeVariants({ alignment, cornerRadius }), className) }, props, { style: Object.assign(Object.assign({}, props.style), backgroundColorOverride) }, { children: type === "icon-and-text" ? (_jsxs(_Fragment, { children: [(icon || iconUrl) && (_jsx(Icon, { name: icon, url: iconUrl, color: fontColor, size: size === "carousels" || size === "plp-layout-small"
70
+ const badgeHeightOverride = badgeHeight
71
+ ? { height: badgeHeight, minHeight: badgeHeight }
72
+ : {};
73
+ const badgeWidthOverride = badgeWidth ? { minWidth: badgeWidth } : {};
74
+ const BadgeText = () => (_jsx(Text, Object.assign({ type: size === "plp-layout" ? "body-primary" : "body-secondary", className: cn("text-productBadging-text", textAlignment && "flex-1" // Take full width when alignment is specified
75
+ ), fontColor: fontColor, fontFamily: fontFamily, fontWeight: fontWeight, fontSize: fontSize, textAlignment: textAlignment }, { children: children })));
76
+ return (_jsx("div", Object.assign({ className: cn(badgeVariants({ alignment, cornerRadius }), className) }, props, { style: Object.assign(Object.assign(Object.assign(Object.assign({}, style), backgroundColorOverride), badgeHeightOverride), badgeWidthOverride) }, { children: type === "icon-and-text" ? (_jsxs(_Fragment, { children: [(icon || iconUrl) && (_jsx(Icon, { name: icon, url: iconUrl, color: fontColor, size: size === "carousels" || size === "plp-layout-small"
72
77
  ? "xs"
73
78
  : "sm" })), _jsx(BadgeText, {})] })) : type === "icon-only" && icon ? (_jsx(Icon, { name: icon, url: iconUrl, style: fontColor ? { color: fontColor } : {}, size: size === "carousels" || size === "plp-layout-small" ? "xs" : "sm" })) : (_jsx(BadgeText, {})) })));
74
79
  }
@@ -1 +1 @@
1
- {"version":3,"file":"carousel.d.ts","sourceRoot":"","sources":["../../../components/ui/carousel.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,gBAAgB,EAAE,EACvB,KAAK,oBAAoB,EAC1B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,iBAAiB,EAAkB,MAAM,gBAAgB,CAAA;AAClE,KAAK,eAAe,GAAG;IACrB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,cAAc,EAAE,MAAM,IAAI,CAAA;IAC1B,qBAAqB,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAA;CACtD,CAAA;AAED,OAAO,QAAQ,MAAM,yBAAyB,CAAA;AAC9C,OAAO,IAAI,MAAM,qBAAqB,CAAA;AAItC,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAInD,KAAK,WAAW,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAA;AAC1C,KAAK,qBAAqB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAChE,KAAK,eAAe,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAA;AAC/C,KAAK,cAAc,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAA;AAE9C,KAAK,aAAa,GAAG;IACnB,IAAI,CAAC,EAAE,eAAe,CAAA;IACtB,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAA;IACvC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAA;IACnC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,CAAA;CAC/C,CAAA;AA0BD,QAAA,MAAM,QAAQ,6HA+Ib,CAAA;AAGD,QAAA,MAAM,eAAe;;wCAsBnB,CAAA;AAGF,QAAA,MAAM,YAAY,6GAmBhB,CAAA;AAGF,QAAA,MAAM,gBAAgB;6CAKnB,MAAM,cAAc,CAAC,aAAa,CAAC;;CAsBrC,CAAA;AAGD,QAAA,MAAM,YAAY;6CAKf,MAAM,cAAc,CAAC,aAAa,CAAC;;CAsBrC,CAAA;AAGD,KAAK,iBAAiB,GAAG;IACvB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAA;CACzB,CAAA;AAED,QAAA,MAAM,YAAY,iIA+DjB,CAAA;AA8DD,QAAA,MAAM,WAAW,aACL,iBAAiB,GAAG,SAAS,KACtC,eA2CF,CAAA;AAED,OAAO,EACL,KAAK,WAAW,EAChB,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,IAAI,EACJ,WAAW,GACZ,CAAA"}
1
+ {"version":3,"file":"carousel.d.ts","sourceRoot":"","sources":["../../../components/ui/carousel.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,gBAAgB,EAAE,EACvB,KAAK,oBAAoB,EAC1B,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,iBAAiB,EAAkB,MAAM,gBAAgB,CAAA;AAClE,KAAK,eAAe,GAAG;IACrB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,cAAc,EAAE,MAAM,IAAI,CAAA;IAC1B,qBAAqB,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAA;CACtD,CAAA;AAED,OAAO,QAAQ,MAAM,yBAAyB,CAAA;AAC9C,OAAO,IAAI,MAAM,qBAAqB,CAAA;AAItC,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAInD,KAAK,WAAW,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAA;AAC1C,KAAK,qBAAqB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAChE,KAAK,eAAe,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAA;AAC/C,KAAK,cAAc,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAA;AAE9C,KAAK,aAAa,GAAG;IACnB,IAAI,CAAC,EAAE,eAAe,CAAA;IACtB,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAA;IACvC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAA;IACnC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,CAAA;CAC/C,CAAA;AA4BD,QAAA,MAAM,QAAQ,6HAyJb,CAAA;AAGD,QAAA,MAAM,eAAe;;wCAsBnB,CAAA;AAGF,QAAA,MAAM,YAAY,6GA6DhB,CAAA;AAGF,QAAA,MAAM,gBAAgB;6CAKnB,MAAM,cAAc,CAAC,aAAa,CAAC;;CAsBrC,CAAA;AAGD,QAAA,MAAM,YAAY;6CAKf,MAAM,cAAc,CAAC,aAAa,CAAC;;CAsBrC,CAAA;AAGD,KAAK,iBAAiB,GAAG;IACvB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAA;CACzB,CAAA;AAED,QAAA,MAAM,YAAY,iIAiEjB,CAAA;AA8DD,QAAA,MAAM,WAAW,aACL,iBAAiB,GAAG,SAAS,KACtC,eA2CF,CAAA;AAED,OAAO,EACL,KAAK,WAAW,EAChB,QAAQ,EACR,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,IAAI,EACJ,WAAW,GACZ,CAAA"}
@@ -34,18 +34,23 @@ const Carousel = React.forwardRef((_a, ref) => {
34
34
  const { setTweenNodes, setTweenFactor, tweenScale } = useTween();
35
35
  const [canScrollPrev, setCanScrollPrev] = React.useState(false);
36
36
  const [canScrollNext, setCanScrollNext] = React.useState(false);
37
+ const [visibleSlides, setVisibleSlides] = React.useState([]);
38
+ const [selectedIndex, setSelectedIndex] = React.useState(0);
37
39
  const onSelect = React.useCallback((api) => {
38
40
  if (!api) {
39
41
  return;
40
42
  }
41
43
  setCanScrollPrev(api.canScrollPrev());
42
44
  setCanScrollNext(api.canScrollNext());
45
+ setSelectedIndex(api.selectedScrollSnap());
43
46
  }, []);
44
47
  const onSlidesInView = React.useCallback((api) => {
45
48
  if (!api) {
46
49
  return;
47
50
  }
48
- slidesInView === null || slidesInView === void 0 ? void 0 : slidesInView(api.slidesInView());
51
+ const inView = api.slidesInView();
52
+ setVisibleSlides(inView);
53
+ slidesInView === null || slidesInView === void 0 ? void 0 : slidesInView(inView);
49
54
  }, [slidesInView]);
50
55
  const scrollPrev = React.useCallback(() => {
51
56
  api === null || api === void 0 ? void 0 : api.scrollPrev();
@@ -70,17 +75,20 @@ const Carousel = React.forwardRef((_a, ref) => {
70
75
  setApi(api);
71
76
  }, [api, setApi]);
72
77
  React.useEffect(() => {
73
- if (!api || tween) {
78
+ if (!api) {
74
79
  return;
75
80
  }
76
81
  onSelect(api);
82
+ onSlidesInView(api);
77
83
  api.on("reInit", onSelect);
78
84
  api.on("select", onSelect);
79
85
  api.on("slidesInView", onSlidesInView);
80
86
  return () => {
81
87
  api === null || api === void 0 ? void 0 : api.off("select", onSelect);
88
+ api === null || api === void 0 ? void 0 : api.off("reInit", onSelect);
89
+ api === null || api === void 0 ? void 0 : api.off("slidesInView", onSlidesInView);
82
90
  };
83
- }, [api, onSelect]);
91
+ }, [api, onSelect, onSlidesInView, tween]);
84
92
  React.useEffect(() => {
85
93
  if (!api || !tween)
86
94
  return;
@@ -94,7 +102,7 @@ const Carousel = React.forwardRef((_a, ref) => {
94
102
  .on("scroll", tweenScale)
95
103
  // @ts-ignore
96
104
  .on("slideFocus", tweenScale);
97
- }, [api, tweenScale]);
105
+ }, [api, setTweenFactor, setTweenNodes, tween, tweenScale]);
98
106
  const hasFade = plugins === null || plugins === void 0 ? void 0 : plugins.some((plugin) => plugin.name === "fade");
99
107
  const carouselStyle = Object.assign({ transform: hasFade ? "translateZ(0)" : undefined }, (props.style || {}));
100
108
  return (_jsx(CarouselContext.Provider, Object.assign({ value: {
@@ -106,6 +114,8 @@ const Carousel = React.forwardRef((_a, ref) => {
106
114
  scrollNext,
107
115
  canScrollPrev,
108
116
  canScrollNext,
117
+ visibleSlides,
118
+ selectedIndex,
109
119
  } }, { children: _jsx("div", Object.assign({ ref: ref, onKeyDownCapture: handleKeyDown, className: cn("relative", className), role: "region", "aria-roledescription": "carousel" }, props, { style: carouselStyle }, { children: children })) })));
110
120
  });
111
121
  Carousel.displayName = "Carousel";
@@ -117,8 +127,40 @@ const CarouselContent = React.forwardRef((_a, ref) => {
117
127
  CarouselContent.displayName = "CarouselContent";
118
128
  const CarouselItem = React.forwardRef((_a, ref) => {
119
129
  var { className } = _a, props = __rest(_a, ["className"]);
120
- const { orientation } = useCarousel();
121
- return (_jsx("div", Object.assign({ ref: ref, role: "group", "aria-roledescription": "slide", className: cn("min-w-0 shrink-0 grow-0 basis-full", orientation === "horizontal" ? "pl-4" : "pt-4", className) }, props)));
130
+ const { orientation, visibleSlides, selectedIndex, api } = useCarousel();
131
+ const internalRef = React.useRef(null);
132
+ const [domIndex, setDomIndex] = React.useState(-1);
133
+ // Merge forwarded ref with internal ref
134
+ const combinedRef = React.useCallback((node) => {
135
+ internalRef.current = node;
136
+ if (typeof ref === "function") {
137
+ ref(node);
138
+ }
139
+ else if (ref) {
140
+ ref.current = node;
141
+ }
142
+ }, [ref]);
143
+ // Calculate DOM position
144
+ React.useLayoutEffect(() => {
145
+ if (!api || !internalRef.current)
146
+ return;
147
+ const updatePosition = () => {
148
+ const slideNodes = api.slideNodes();
149
+ const position = slideNodes.indexOf(internalRef.current);
150
+ if (position !== -1) {
151
+ setDomIndex(position);
152
+ }
153
+ };
154
+ updatePosition();
155
+ api.on("reInit", updatePosition);
156
+ return () => {
157
+ api.off("reInit", updatePosition);
158
+ };
159
+ }, [api]);
160
+ const isInView = domIndex !== -1 &&
161
+ visibleSlides.includes(domIndex) &&
162
+ domIndex === selectedIndex;
163
+ return (_jsx("div", Object.assign({ ref: combinedRef, role: "group", "aria-roledescription": "slide", "aria-hidden": !isInView, className: cn("min-w-0 shrink-0 grow-0 basis-full", orientation === "horizontal" ? "pl-4" : "pt-4", className) }, props)));
122
164
  });
123
165
  CarouselItem.displayName = "CarouselItem";
124
166
  const CarouselPrevious = (_a) => {
@@ -157,7 +199,7 @@ const CarouselDots = React.forwardRef((_a, ref) => {
157
199
  const numberOfSlides = Math.min((api === null || api === void 0 ? void 0 : api.scrollSnapList().length) || 0, maxDots);
158
200
  const currentSlide = Math.min((api === null || api === void 0 ? void 0 : api.selectedScrollSnap()) || 0, maxDots - 1);
159
201
  if (numberOfSlides > 1) {
160
- return (_jsx("div", Object.assign({ ref: ref, className: `flex ${props.className} ${!((_b = props.className) === null || _b === void 0 ? void 0 : _b.includes("justify-")) ? "justify-center" : ""}`, style: props.style }, { children: Array.from({ length: numberOfSlides }, (_, i) => (_jsx(Button, { className: `mx-1 p-0 border-none ${dotClass}`, style: {
202
+ return (_jsx("div", Object.assign({ ref: ref, role: "navigation", "aria-label": "Slide pagination controls", className: `flex ${props.className} ${!((_b = props.className) === null || _b === void 0 ? void 0 : _b.includes("justify-")) ? "justify-center" : ""}`, style: props.style }, { children: Array.from({ length: numberOfSlides }, (_, i) => (_jsx(Button, { className: `mx-1 p-0 border-none ${dotClass}`, style: {
161
203
  backgroundColor: dotColor,
162
204
  opacity: i === currentSlide ? 1 : 0.5,
163
205
  }, "aria-label": `Go to slide ${i + 1}`, onClick: () => api === null || api === void 0 ? void 0 : api.scrollTo(i) }, i))) })));
@@ -51,7 +51,7 @@ const DrawerContentBase = React.forwardRef((_a, ref) => {
51
51
  const baseStyles = isSheet
52
52
  ? { height: "calc(100dvh - 112px)" }
53
53
  : { maxHeight: maxHeight || "calc(100dvh - 112px)" };
54
- return (_jsxs(DrawerPortal, Object.assign({ containerRef: containerRef }, { children: [hideBackdrop ? null : (_jsx(DrawerOverlay, { backdropHexColor: backdropHexColor })), _jsxs(DrawerPrimitive.Content, Object.assign({ ref: ref, style: Object.assign(Object.assign({}, baseStyles), style), className: cn("fixed inset-x-0 bottom-0 z-50 flex h-auto flex-col rounded-t-2xl bg-coreColors-modalBackground", className) }, props, { "data-testid": "drawer-content" }, { children: [_jsx("div", { className: "mx-auto mb-2 mt-2 h-[4px] w-[40px] rounded-full bg-coreColors-dividingLines" }), children] }))] })));
54
+ return (_jsxs(DrawerPortal, Object.assign({ containerRef: containerRef }, { children: [hideBackdrop ? null : (_jsx(DrawerOverlay, { backdropHexColor: backdropHexColor })), _jsxs(DrawerPrimitive.Content, Object.assign({ ref: ref, style: Object.assign(Object.assign({}, baseStyles), style), className: cn("fixed inset-x-0 bottom-0 z-50 flex h-auto flex-col rounded-t-2xl bg-coreColors-modalBackground pb-safe", className) }, props, { "data-testid": "drawer-content" }, { children: [_jsx("div", { className: "mx-auto mb-2 mt-2 h-[4px] w-[40px] rounded-full bg-coreColors-dividingLines" }), children] }))] })));
55
55
  });
56
56
  DrawerContentBase.displayName = "DrawerContentBase";
57
57
  const DrawerHeaderBase = (_a) => {
@@ -66,7 +66,7 @@ const DrawerTitle = React.forwardRef((_a, ref) => {
66
66
  DrawerTitle.displayName = DrawerPrimitive.Title.displayName;
67
67
  const DrawerFooter = (_a) => {
68
68
  var { className } = _a, props = __rest(_a, ["className"]);
69
- return (_jsx("div", Object.assign({ className: cn("mt-auto flex flex-row gap-2 pb-8 pt-4 pl-4 pr-4 border-t border-coreColors-dividingLines", className) }, props)));
69
+ return (_jsx("div", Object.assign({ className: cn("mt-auto flex flex-row gap-2 pb-2 pt-4 pl-4 pr-4 border-t border-coreColors-dividingLines", className) }, props)));
70
70
  };
71
71
  DrawerFooter.displayName = "DrawerFooter";
72
72
  const DrawerDescription = React.forwardRef((_a, ref) => {
@@ -56,6 +56,12 @@ type BadgeData = {
56
56
  text: string;
57
57
  priority: number;
58
58
  image?: string | null;
59
+ fontFamily?: string | null;
60
+ fontWeight?: number | null;
61
+ fontSize?: number | null;
62
+ textAlignment?: string | null;
63
+ badgeHeight?: number | null;
64
+ badgeWidth?: number | null;
59
65
  };
60
66
  type TapcartData = {
61
67
  currency: {
@@ -1 +1 @@
1
- {"version":3,"file":"product-card.d.ts","sourceRoot":"","sources":["../../../components/ui/product-card.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"product-card.d.ts","sourceRoot":"","sources":["../../../components/ui/product-card.tsx"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ import { cn } from "../../lib/utils";
12
12
  import { cva } from "class-variance-authority";
13
13
  import { Image } from "./image";
14
14
  import { Carousel, CarouselContent, CarouselDots, CarouselItem, } from "./carousel";
15
- const productCardBadgeVariants = cva("absolute truncate", {
15
+ const productCardBadgeVariants = cva("absolute", {
16
16
  variants: {
17
17
  horizontalPosition: {
18
18
  start: "left-0",
@@ -214,7 +214,7 @@ const ProductCard = ({ config, tapcartData, product, isLoading, favorited, onFav
214
214
  })), style: {
215
215
  color: aboveBadge.fontColor,
216
216
  backgroundColor: aboveBadge.backgroundColor,
217
- }, alignment: aboveBadge.horizontalPosition, cornerRadius: aboveBadge.cornerRadius, icon: aboveBadge.image }, { children: aboveBadge.text }))), showSoldOutBadge && (_jsx(Badge, Object.assign({ size: "plp-layout", className: cn(productCardBadgeVariants({
217
+ }, alignment: aboveBadge.horizontalPosition, cornerRadius: aboveBadge.cornerRadius, icon: aboveBadge.image, fontColor: aboveBadge.fontColor, backgroundColor: aboveBadge.backgroundColor, fontFamily: aboveBadge.fontFamily, fontWeight: aboveBadge.fontWeight, fontSize: aboveBadge.fontSize, textAlignment: aboveBadge.textAlignment, badgeHeight: aboveBadge.badgeHeight, badgeWidth: aboveBadge.badgeWidth }, { children: aboveBadge.text }))), showSoldOutBadge && (_jsx(Badge, Object.assign({ size: "plp-layout", className: cn(productCardBadgeVariants({
218
218
  verticalPosition: "bottom",
219
219
  horizontalPosition: "start",
220
220
  imageSwipeEnabled,
@@ -258,7 +258,7 @@ const ProductCard = ({ config, tapcartData, product, isLoading, favorited, onFav
258
258
  ? config.quickAdd.defaultText || "Quick Add"
259
259
  : config.quickAdd.soldOutText || "Sold Out"] })) }))), _jsxs("div", Object.assign({ className: "w-full flex-col justify-start items-start gap-0 inline-flex" }, { children: [belowBadge && (_jsx("div", Object.assign({ className: cn("mt-2 w-full flex justify-start", {
260
260
  "justify-end": belowBadge.horizontalPosition === "end",
261
- }) }, { children: _jsx(Badge, Object.assign({ size: "plp-layout", alignment: belowBadge.horizontalPosition, icon: belowBadge.image, className: cn("truncate", { rounded: belowBadge.cornerRadius === "rounded" }, { "rounded-none": belowBadge.cornerRadius === "square" }) }, { children: belowBadge.text })) }))), ((_0 = config.productTitle) === null || _0 === void 0 ? void 0 : _0.enabled) && (_jsx("div", Object.assign({ className: "mt-2 w-full" }, { children: _jsx(Text, Object.assign({ type: "body-secondary", className: cn({ uppercase: (_1 = config.productTitle) === null || _1 === void 0 ? void 0 : _1.uppercase }, {
261
+ }) }, { children: _jsx(Badge, Object.assign({ size: "plp-layout", alignment: belowBadge.horizontalPosition, icon: belowBadge.image, className: cn({ rounded: belowBadge.cornerRadius === "rounded" }, { "rounded-none": belowBadge.cornerRadius === "square" }), fontColor: belowBadge.fontColor, backgroundColor: belowBadge.backgroundColor, fontFamily: belowBadge.fontFamily, fontWeight: belowBadge.fontWeight, fontSize: belowBadge.fontSize, textAlignment: belowBadge.textAlignment, badgeHeight: belowBadge.badgeHeight, badgeWidth: belowBadge.badgeWidth }, { children: belowBadge.text })) }))), ((_0 = config.productTitle) === null || _0 === void 0 ? void 0 : _0.enabled) && (_jsx("div", Object.assign({ className: "mt-2 w-full" }, { children: _jsx(Text, Object.assign({ type: "body-secondary", className: cn({ uppercase: (_1 = config.productTitle) === null || _1 === void 0 ? void 0 : _1.uppercase }, {
262
262
  "text-left": ((_2 = config.productTitle) === null || _2 === void 0 ? void 0 : _2.textAlignment) === "left",
263
263
  }, {
264
264
  "text-right": ((_3 = config.productTitle) === null || _3 === void 0 ? void 0 : _3.textAlignment) === "right",
@@ -12,9 +12,13 @@ declare const textVariants: (props?: ({
12
12
  } & import("class-variance-authority/dist/types").ClassProp) | undefined) => string;
13
13
  export interface TextProps extends React.HTMLAttributes<HTMLParagraphElement>, VariantProps<typeof textVariants> {
14
14
  fontColor?: string | null;
15
+ fontFamily?: string | null;
16
+ fontWeight?: number | null;
17
+ fontSize?: number | null;
18
+ textAlignment?: string | null;
15
19
  injections?: Injections;
16
20
  children?: React.ReactNode;
17
21
  }
18
- declare function Text({ className, type, fontColor, injections, children, ...props }: TextProps): import("react/jsx-runtime").JSX.Element;
22
+ declare function Text({ className, type, fontColor, fontFamily, fontWeight, fontSize, textAlignment, injections, children, style, ...props }: TextProps): import("react/jsx-runtime").JSX.Element;
19
23
  export { Text, textVariants };
20
24
  //# sourceMappingURL=text.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../components/ui/text.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAQjE,KAAK,UAAU,GAAG,MAAM,CACtB,MAAM,EACN;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAC7E,CAAA;AAmDD,QAAA,MAAM,YAAY;;mFAgBhB,CAAA;AAEF,MAAM,WAAW,SACf,SAAQ,KAAK,CAAC,cAAc,CAAC,oBAAoB,CAAC,EAChD,YAAY,CAAC,OAAO,YAAY,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC3B;AAED,iBAAS,IAAI,CAAC,EACZ,SAAS,EACT,IAAI,EACJ,SAAS,EACT,UAAU,EACV,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,SAAS,2CAoBX;AAED,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAA"}
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../components/ui/text.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAQjE,KAAK,UAAU,GAAG,MAAM,CACtB,MAAM,EACN;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,gBAAgB,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAC7E,CAAA;AAmDD,QAAA,MAAM,YAAY;;mFAgBhB,CAAA;AAEF,MAAM,WAAW,SACf,SAAQ,KAAK,CAAC,cAAc,CAAC,oBAAoB,CAAC,EAChD,YAAY,CAAC,OAAO,YAAY,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC3B;AAED,iBAAS,IAAI,CAAC,EACZ,SAAS,EACT,IAAI,EACJ,SAAS,EACT,UAAU,EACV,UAAU,EACV,QAAQ,EACR,aAAa,EACb,UAAU,EACV,QAAQ,EACR,KAAK,EACL,GAAG,KAAK,EACT,EAAE,SAAS,2CAkCX;AAED,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,CAAA"}
@@ -63,8 +63,14 @@ const textVariants = cva("", {
63
63
  },
64
64
  });
65
65
  function Text(_a) {
66
- var { className, type, fontColor, injections, children } = _a, props = __rest(_a, ["className", "type", "fontColor", "injections", "children"]);
66
+ var { className, type, fontColor, fontFamily, fontWeight, fontSize, textAlignment, injections, children, style } = _a, props = __rest(_a, ["className", "type", "fontColor", "fontFamily", "fontWeight", "fontSize", "textAlignment", "injections", "children", "style"]);
67
67
  const fontColorOverride = fontColor ? { color: fontColor } : {};
68
+ const fontFamilyOverride = fontFamily ? { fontFamily } : {};
69
+ const fontWeightOverride = fontWeight ? { fontWeight } : {};
70
+ const fontSizeOverride = fontSize ? { fontSize } : {};
71
+ const textAlignmentOverride = textAlignment
72
+ ? { textAlign: textAlignment }
73
+ : {};
68
74
  const translations = useTranslation();
69
75
  const stringContents = React.Children.toArray(children).join("");
70
76
  const textContents = getTextTranslation({
@@ -73,6 +79,6 @@ function Text(_a) {
73
79
  });
74
80
  const injectContents = injectString(stringContents, injections);
75
81
  const content = injectContents || textContents || children;
76
- return (_jsx("p", Object.assign({ className: cn(textVariants({ type }), className), style: Object.assign(Object.assign({}, props.style), fontColorOverride) }, props, { children: content })));
82
+ return (_jsx("p", Object.assign({ className: cn(textVariants({ type }), className), style: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, style), fontColorOverride), fontFamilyOverride), fontWeightOverride), fontSizeOverride), textAlignmentOverride) }, props, { children: content })));
77
83
  }
78
84
  export { Text, textVariants };
package/dist/index.d.ts CHANGED
@@ -87,4 +87,5 @@ export * from "./components/ui/circular-progress";
87
87
  export * from "./components/ui/swipeable-list-item";
88
88
  export * from "./components/ui/dialog";
89
89
  export * from "./components/ui/input-otp";
90
+ export { default as ProductsLocalStorage } from "./components/libs/cache/ProductsLocalStorage";
90
91
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -88,3 +88,4 @@ export * from "./components/ui/circular-progress";
88
88
  export * from "./components/ui/swipeable-list-item";
89
89
  export * from "./components/ui/dialog";
90
90
  export * from "./components/ui/input-otp";
91
+ export { default as ProductsLocalStorage } from "./components/libs/cache/ProductsLocalStorage";
@@ -1 +1 @@
1
- {"version":3,"file":"price.d.ts","sourceRoot":"","sources":["../../lib/price.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAoB1D,eAAO,MAAM,gCAAgC,oBAC1B,cAAc,EAAE,mBAelC,CAAA;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO;WAsBtC,MAAM;YACL,OAAO;;;;EAclB;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO;;;;EAQ1C"}
1
+ {"version":3,"file":"price.d.ts","sourceRoot":"","sources":["../../lib/price.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AA0B1D,eAAO,MAAM,gCAAgC,oBAC1B,cAAc,EAAE,mBAelC,CAAA;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO;WAsBtC,MAAM;YACL,OAAO;;;;EAclB;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO;;;;EAQ1C"}
@@ -1119,7 +1119,7 @@ export declare const createCollectionImageMap: (collections: {
1119
1119
  export declare const isFavoriteIntegrationEnabled: (integrations: Integrations) => boolean;
1120
1120
  export declare const getEnabledWishlistIntegration: (integrations: Integrations) => Integration | null;
1121
1121
  export declare const supportsMultipleWishlists: (integration: Integration | null | undefined) => boolean;
1122
- export declare const getWishlistAddItemNavigation: (productId: string, isAuthenticated?: boolean) => {
1122
+ export declare const getWishlistAddItemNavigation: (productId: string, variantCount: number, isAuthenticated?: boolean) => {
1123
1123
  destination: {
1124
1124
  type: "internal";
1125
1125
  url: string;
@@ -1165,6 +1165,7 @@ export declare const addItemToWishlist: ({ Tapcart, integrations, product, selec
1165
1165
  product: {
1166
1166
  id: string;
1167
1167
  variants?: any[] | undefined;
1168
+ options?: any[] | undefined;
1168
1169
  };
1169
1170
  selectedVariantId?: string | undefined;
1170
1171
  }) => Promise<boolean>;
@@ -1199,6 +1200,12 @@ export type Badge = {
1199
1200
  url: string;
1200
1201
  } | null;
1201
1202
  verticalPosition: string;
1203
+ fontFamily?: string;
1204
+ fontWeight?: number;
1205
+ fontSize?: number;
1206
+ textAlignment?: string;
1207
+ badgeHeight?: number;
1208
+ badgeWidth?: number;
1202
1209
  };
1203
1210
  export declare const getBadgesForProductFn: (badgeConfig?: Record<string, Badge[]>, productTags?: string[]) => Badge[];
1204
1211
  export declare function gidFromId(id: string): string;
@@ -1251,4 +1258,9 @@ type LogicGroup = {
1251
1258
  conditions: (Condition | LogicGroup)[];
1252
1259
  };
1253
1260
  export declare const evaluateConditions: (group: LogicGroup, context: any) => boolean;
1261
+ /**
1262
+ * Parse BCP 47 language tag (e.g., en-US, en_US, zh-Hans-CN, en-US-POSIX)
1263
+ * Returns [language, country] tuple
1264
+ */
1265
+ export declare const parseBCP47Locale: (locale: string | undefined) => [string, string];
1254
1266
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../lib/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../lib/utils.ts"],"names":[],"mappings":"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"}
package/dist/lib/utils.js CHANGED
@@ -123,7 +123,7 @@ export const getBorderStyle = (borderStyle, borderWidth = 1) => {
123
123
  };
124
124
  export const getBackgroundAndPaddingStyle = (backgroundAndPadding, { omitBorder = false } = {}) => {
125
125
  const { backgroundColor, borderSides, borderColor, cornerRadius, padding, borderRadius, } = backgroundAndPadding;
126
- const radius = cornerRadius || borderRadius;
126
+ const radius = cornerRadius !== null && cornerRadius !== void 0 ? cornerRadius : borderRadius;
127
127
  const backgroundAndPaddingStyle = Object.assign(Object.assign({}, getPaddingStyle(padding)), { backgroundColor: getColor(backgroundColor), borderRadius: radius !== undefined ? `${radius}px` : undefined });
128
128
  if (omitBorder)
129
129
  return backgroundAndPaddingStyle;
@@ -346,7 +346,7 @@ export const supportsMultipleWishlists = (integration) => {
346
346
  return false;
347
347
  }
348
348
  };
349
- export const getWishlistAddItemNavigation = (productId, isAuthenticated = false) => {
349
+ export const getWishlistAddItemNavigation = (productId, variantCount, isAuthenticated = false) => {
350
350
  return {
351
351
  destination: {
352
352
  type: "internal",
@@ -355,7 +355,15 @@ export const getWishlistAddItemNavigation = (productId, isAuthenticated = false)
355
355
  presentation: {
356
356
  transition: "popover",
357
357
  style: "default",
358
- snapPoints: isAuthenticated ? [0.5, 0.75] : [0.3, 0.5, 0.75],
358
+ snapPoints: isAuthenticated
359
+ ? variantCount === 1
360
+ ? [0.5, 0.75]
361
+ : variantCount === 2
362
+ ? [0.6, 0.75]
363
+ : variantCount === 3
364
+ ? [0.7, 0.75]
365
+ : [0.8, 0.9] // 4+ variants
366
+ : [0.3, 0.5, 0.75],
359
367
  },
360
368
  header: {
361
369
  visible: false,
@@ -425,7 +433,7 @@ export const getInputPlaceholderTextProps = (placeholderText) => {
425
433
  * @param selectedVariantId
426
434
  */
427
435
  export const addItemToWishlist = ({ Tapcart, integrations, product, selectedVariantId, }) => __awaiter(void 0, void 0, void 0, function* () {
428
- var _a, _b, _c, _d, _e, _f, _g, _h;
436
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
429
437
  const isAuthenticated = !!((_b = (_a = Tapcart === null || Tapcart === void 0 ? void 0 : Tapcart.variables) === null || _a === void 0 ? void 0 : _a.customer) === null || _b === void 0 ? void 0 : _b.id);
430
438
  const defaultWishListId = ((_e = (_d = (_c = Tapcart === null || Tapcart === void 0 ? void 0 : Tapcart.variables) === null || _c === void 0 ? void 0 : _c.wishlists) === null || _d === void 0 ? void 0 : _d[0]) === null || _e === void 0 ? void 0 : _e.id) || "Default Wishlist";
431
439
  const wishlistIntegration = getEnabledWishlistIntegration(integrations);
@@ -447,10 +455,10 @@ export const addItemToWishlist = ({ Tapcart, integrations, product, selectedVari
447
455
  ((product === null || product === void 0 ? void 0 : product.variants) && ((_f = product === null || product === void 0 ? void 0 : product.variants) === null || _f === void 0 ? void 0 : _f.length) > 1) ||
448
456
  !isAuthenticated;
449
457
  if (shouldOpenDrawer) {
450
- Tapcart === null || Tapcart === void 0 ? void 0 : Tapcart.action("screen/open", getWishlistAddItemNavigation(getIdFromGid(product === null || product === void 0 ? void 0 : product.id), isAuthenticated));
458
+ Tapcart === null || Tapcart === void 0 ? void 0 : Tapcart.action("screen/open", getWishlistAddItemNavigation(getIdFromGid(product === null || product === void 0 ? void 0 : product.id), ((_g = product === null || product === void 0 ? void 0 : product.options) === null || _g === void 0 ? void 0 : _g.length) || 1, isAuthenticated));
451
459
  return false;
452
460
  }
453
- const variantId = selectedVariantId || ((_h = (_g = product === null || product === void 0 ? void 0 : product.variants) === null || _g === void 0 ? void 0 : _g[0]) === null || _h === void 0 ? void 0 : _h.id);
461
+ const variantId = selectedVariantId || ((_j = (_h = product === null || product === void 0 ? void 0 : product.variants) === null || _h === void 0 ? void 0 : _h[0]) === null || _j === void 0 ? void 0 : _j.id);
454
462
  if (!variantId) {
455
463
  console.error("Missing variant id for wishlist add");
456
464
  return false;
@@ -476,17 +484,17 @@ export const addItemToWishlist = ({ Tapcart, integrations, product, selectedVari
476
484
  * @returns {Promise<{ id: string; variantId: string; productId: string }[]>} - An array of removed wishlist entries.
477
485
  */
478
486
  export const removeItemFromWishlists = ({ Tapcart, productId, }) => __awaiter(void 0, void 0, void 0, function* () {
479
- var _j, _k, _l, _m;
487
+ var _k, _l, _m, _o;
480
488
  if (!Tapcart) {
481
489
  console.error("Tapcart instance is missing");
482
490
  return [];
483
491
  }
484
492
  const removedWishlistEntries = [];
485
493
  try {
486
- const wishlistEntries = findWishlistEntries((_j = Tapcart === null || Tapcart === void 0 ? void 0 : Tapcart.variables) === null || _j === void 0 ? void 0 : _j.wishlists, productId);
494
+ const wishlistEntries = findWishlistEntries((_k = Tapcart === null || Tapcart === void 0 ? void 0 : Tapcart.variables) === null || _k === void 0 ? void 0 : _k.wishlists, productId);
487
495
  // Remove all wishlist entries for the product
488
496
  for (const wishlistEntry of wishlistEntries) {
489
- if (!((_k = wishlistEntry === null || wishlistEntry === void 0 ? void 0 : wishlistEntry.item) === null || _k === void 0 ? void 0 : _k.variantId)) {
497
+ if (!((_l = wishlistEntry === null || wishlistEntry === void 0 ? void 0 : wishlistEntry.item) === null || _l === void 0 ? void 0 : _l.variantId)) {
490
498
  console.error("Missing variant id for wishlist removal");
491
499
  continue;
492
500
  }
@@ -496,13 +504,13 @@ export const removeItemFromWishlists = ({ Tapcart, productId, }) => __awaiter(vo
496
504
  }
497
505
  const result = yield Tapcart.action("wishlist/item/remove", {
498
506
  productId,
499
- variantId: getIdFromGid((_l = wishlistEntry === null || wishlistEntry === void 0 ? void 0 : wishlistEntry.item) === null || _l === void 0 ? void 0 : _l.variantId),
507
+ variantId: getIdFromGid((_m = wishlistEntry === null || wishlistEntry === void 0 ? void 0 : wishlistEntry.item) === null || _m === void 0 ? void 0 : _m.variantId),
500
508
  wishlistId: getIdFromGid(wishlistEntry === null || wishlistEntry === void 0 ? void 0 : wishlistEntry.wishlistId),
501
509
  });
502
510
  if (result) {
503
511
  removedWishlistEntries.push({
504
512
  id: getIdFromGid(wishlistEntry === null || wishlistEntry === void 0 ? void 0 : wishlistEntry.wishlistId),
505
- variantId: getIdFromGid((_m = wishlistEntry === null || wishlistEntry === void 0 ? void 0 : wishlistEntry.item) === null || _m === void 0 ? void 0 : _m.variantId),
513
+ variantId: getIdFromGid((_o = wishlistEntry === null || wishlistEntry === void 0 ? void 0 : wishlistEntry.item) === null || _o === void 0 ? void 0 : _o.variantId),
506
514
  productId,
507
515
  });
508
516
  }
@@ -806,4 +814,43 @@ export const evaluateConditions = (group, context) => {
806
814
  return true;
807
815
  }
808
816
  };
817
+ /**
818
+ * Parse BCP 47 language tag (e.g., en-US, en_US, zh-Hans-CN, en-US-POSIX)
819
+ * Returns [language, country] tuple
820
+ */
821
+ export const parseBCP47Locale = (locale) => {
822
+ var _a;
823
+ if (!locale)
824
+ return ["en", "US"];
825
+ // Normalize underscores to hyphens
826
+ const normalized = locale.replace(/_/g, "-");
827
+ const parts = normalized.split("-");
828
+ if (parts.length === 0)
829
+ return ["en", "US"];
830
+ // First part is always the language (lowercase)
831
+ const language = ((_a = parts[0]) === null || _a === void 0 ? void 0 : _a.toLowerCase()) || "en";
832
+ // Look for country/region subtag:
833
+ // - 2 uppercase letters (e.g., US, GB, FR)
834
+ // - 3 digits (e.g., 001, 419)
835
+ // Script subtags are 4 letters, so we skip those
836
+ let country = "US"; // default
837
+ for (let i = 1; i < parts.length; i++) {
838
+ const part = parts[i];
839
+ if (!part)
840
+ continue;
841
+ // Check if it's a 2-letter country code (uppercase or lowercase)
842
+ if (/^[A-Za-z]{2}$/.test(part)) {
843
+ country = part.toUpperCase();
844
+ break;
845
+ }
846
+ // Check if it's a 3-digit region code
847
+ if (/^\d{3}$/.test(part)) {
848
+ country = part;
849
+ break;
850
+ }
851
+ // If it's a 4-letter script subtag (e.g., Hans, Latn), continue looking
852
+ // Otherwise, if it's not a script, it might be a variant - we'll use the first valid country we find
853
+ }
854
+ return [language, country];
855
+ };
809
856
  // --- End (Block conditional rendering util functions) ----
@@ -1,4 +1,4 @@
1
- import { getDestinationHandler, getTextStyle } from "../lib/utils";
1
+ import { getDestinationHandler, getTextStyle, parseBCP47Locale, } from "../lib/utils";
2
2
  describe("DESTINATION_HANDLERS", () => {
3
3
  describe("url handler", () => {
4
4
  const mockActions = {
@@ -609,3 +609,202 @@ describe("getTextStyle", () => {
609
609
  });
610
610
  });
611
611
  });
612
+ describe("parseBCP47Locale", () => {
613
+ describe("basic formats", () => {
614
+ it("should parse hyphen-separated locale (en-US)", () => {
615
+ const result = parseBCP47Locale("en-US");
616
+ expect(result).toEqual(["en", "US"]);
617
+ });
618
+ it("should parse underscore-separated locale (en_US)", () => {
619
+ const result = parseBCP47Locale("en_US");
620
+ expect(result).toEqual(["en", "US"]);
621
+ });
622
+ it("should parse lowercase country code (en-us)", () => {
623
+ const result = parseBCP47Locale("en-us");
624
+ expect(result).toEqual(["en", "US"]);
625
+ });
626
+ it("should parse mixed case country code (en-Uy)", () => {
627
+ const result = parseBCP47Locale("en-Uy");
628
+ expect(result).toEqual(["en", "UY"]);
629
+ });
630
+ it("should parse uppercase language code (EN-US)", () => {
631
+ const result = parseBCP47Locale("EN-US");
632
+ expect(result).toEqual(["en", "US"]);
633
+ });
634
+ it("should parse various country codes", () => {
635
+ const testCases = [
636
+ ["en-GB", ["en", "GB"]],
637
+ ["en-FR", ["en", "FR"]],
638
+ ["en-CA", ["en", "CA"]],
639
+ ["en-AU", ["en", "AU"]],
640
+ ["en-MX", ["en", "MX"]],
641
+ ["es-ES", ["es", "ES"]],
642
+ ["fr-FR", ["fr", "FR"]],
643
+ ["de-DE", ["de", "DE"]],
644
+ ["ja-JP", ["ja", "JP"]],
645
+ ["zh-CN", ["zh", "CN"]],
646
+ ];
647
+ testCases.forEach(([input, expected]) => {
648
+ const result = parseBCP47Locale(input);
649
+ expect(result).toEqual(expected);
650
+ });
651
+ });
652
+ });
653
+ describe("language only", () => {
654
+ it("should default to US when only language is provided (en)", () => {
655
+ const result = parseBCP47Locale("en");
656
+ expect(result).toEqual(["en", "US"]);
657
+ });
658
+ it("should default to US when only language is provided (fr)", () => {
659
+ const result = parseBCP47Locale("fr");
660
+ expect(result).toEqual(["fr", "US"]);
661
+ });
662
+ it("should handle lowercase language code", () => {
663
+ const result = parseBCP47Locale("es");
664
+ expect(result).toEqual(["es", "US"]);
665
+ });
666
+ it("should handle uppercase language code", () => {
667
+ const result = parseBCP47Locale("DE");
668
+ expect(result).toEqual(["de", "US"]);
669
+ });
670
+ });
671
+ describe("BCP 47 with script subtag", () => {
672
+ it("should parse locale with script subtag (zh-Hans-CN)", () => {
673
+ const result = parseBCP47Locale("zh-Hans-CN");
674
+ expect(result).toEqual(["zh", "CN"]);
675
+ });
676
+ it("should parse locale with script subtag (zh-Hant-TW)", () => {
677
+ const result = parseBCP47Locale("zh-Hant-TW");
678
+ expect(result).toEqual(["zh", "TW"]);
679
+ });
680
+ it("should parse locale with script subtag (sr-Latn-RS)", () => {
681
+ const result = parseBCP47Locale("sr-Latn-RS");
682
+ expect(result).toEqual(["sr", "RS"]);
683
+ });
684
+ it("should parse locale with script subtag using underscore (zh_Hans_CN)", () => {
685
+ const result = parseBCP47Locale("zh_Hans_CN");
686
+ expect(result).toEqual(["zh", "CN"]);
687
+ });
688
+ });
689
+ describe("BCP 47 with variant subtag", () => {
690
+ it("should parse locale with variant (en-US-POSIX)", () => {
691
+ const result = parseBCP47Locale("en-US-POSIX");
692
+ expect(result).toEqual(["en", "US"]);
693
+ });
694
+ it("should parse locale with variant (en-GB-OED)", () => {
695
+ const result = parseBCP47Locale("en-GB-OED");
696
+ expect(result).toEqual(["en", "GB"]);
697
+ });
698
+ it("should parse locale with multiple variants", () => {
699
+ const result = parseBCP47Locale("en-US-x-private");
700
+ expect(result).toEqual(["en", "US"]);
701
+ });
702
+ });
703
+ describe("numeric region codes", () => {
704
+ it("should parse 3-digit region code (en-001)", () => {
705
+ const result = parseBCP47Locale("en-001");
706
+ expect(result).toEqual(["en", "001"]);
707
+ });
708
+ it("should parse 3-digit region code (en-419)", () => {
709
+ const result = parseBCP47Locale("en-419");
710
+ expect(result).toEqual(["en", "419"]);
711
+ });
712
+ it("should parse 3-digit region code with script (zh-Hans-001)", () => {
713
+ const result = parseBCP47Locale("zh-Hans-001");
714
+ expect(result).toEqual(["zh", "001"]);
715
+ });
716
+ });
717
+ describe("edge cases", () => {
718
+ it("should return default values for undefined", () => {
719
+ const result = parseBCP47Locale(undefined);
720
+ expect(result).toEqual(["en", "US"]);
721
+ });
722
+ it("should return default values for empty string", () => {
723
+ const result = parseBCP47Locale("");
724
+ expect(result).toEqual(["en", "US"]);
725
+ });
726
+ it("should handle locale with only country code (US)", () => {
727
+ const result = parseBCP47Locale("US");
728
+ expect(result).toEqual(["us", "US"]);
729
+ });
730
+ it("should handle locale with only country code lowercase (us)", () => {
731
+ const result = parseBCP47Locale("us");
732
+ expect(result).toEqual(["us", "US"]);
733
+ });
734
+ it("should handle complex BCP 47 tag with script and variant", () => {
735
+ const result = parseBCP47Locale("zh-Hans-CN-x-private");
736
+ expect(result).toEqual(["zh", "CN"]);
737
+ });
738
+ it("should handle locale with multiple hyphens", () => {
739
+ const result = parseBCP47Locale("en-US-POSIX-x-private");
740
+ expect(result).toEqual(["en", "US"]);
741
+ });
742
+ it("should handle locale with underscores and hyphens mixed", () => {
743
+ const result = parseBCP47Locale("en_US-POSIX");
744
+ expect(result).toEqual(["en", "US"]);
745
+ });
746
+ });
747
+ describe("real-world examples", () => {
748
+ it("should parse common locale formats", () => {
749
+ const testCases = [
750
+ ["en-US", ["en", "US"]],
751
+ ["en_US", ["en", "US"]],
752
+ ["en-us", ["en", "US"]],
753
+ ["pt-BR", ["pt", "BR"]],
754
+ ["pt_BR", ["pt", "BR"]],
755
+ ["es-MX", ["es", "MX"]],
756
+ ["fr-CA", ["fr", "CA"]],
757
+ ["de-AT", ["de", "AT"]],
758
+ ["it-IT", ["it", "IT"]],
759
+ ["nl-NL", ["nl", "NL"]],
760
+ ["sv-SE", ["sv", "SE"]],
761
+ ["no-NO", ["no", "NO"]],
762
+ ["da-DK", ["da", "DK"]],
763
+ ["fi-FI", ["fi", "FI"]],
764
+ ["pl-PL", ["pl", "PL"]],
765
+ ["ru-RU", ["ru", "RU"]],
766
+ ["ko-KR", ["ko", "KR"]],
767
+ ["ar-SA", ["ar", "SA"]],
768
+ ["he-IL", ["he", "IL"]],
769
+ ["th-TH", ["th", "TH"]],
770
+ ["vi-VN", ["vi", "VN"]],
771
+ ["id-ID", ["id", "ID"]],
772
+ ["tr-TR", ["tr", "TR"]],
773
+ ];
774
+ testCases.forEach(([input, expected]) => {
775
+ const result = parseBCP47Locale(input);
776
+ expect(result).toEqual(expected);
777
+ });
778
+ });
779
+ it("should parse extended language tags", () => {
780
+ const result = parseBCP47Locale("zh-Hans-CN");
781
+ expect(result).toEqual(["zh", "CN"]);
782
+ });
783
+ it("should parse locale with private use subtag", () => {
784
+ const result = parseBCP47Locale("en-US-x-private");
785
+ expect(result).toEqual(["en", "US"]);
786
+ });
787
+ });
788
+ describe("case normalization", () => {
789
+ it("should normalize language to lowercase", () => {
790
+ const result = parseBCP47Locale("EN-US");
791
+ expect(result[0]).toBe("en");
792
+ });
793
+ it("should normalize country to uppercase", () => {
794
+ const result = parseBCP47Locale("en-us");
795
+ expect(result[1]).toBe("US");
796
+ });
797
+ it("should handle mixed case input", () => {
798
+ const result = parseBCP47Locale("En-Us");
799
+ expect(result).toEqual(["en", "US"]);
800
+ });
801
+ it("should handle all lowercase input", () => {
802
+ const result = parseBCP47Locale("en-gb");
803
+ expect(result).toEqual(["en", "GB"]);
804
+ });
805
+ it("should handle all uppercase input", () => {
806
+ const result = parseBCP47Locale("EN-GB");
807
+ expect(result).toEqual(["en", "GB"]);
808
+ });
809
+ });
810
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tapcart/mobile-components",
3
- "version": "0.11.7",
3
+ "version": "0.11.9",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "style": "dist/styles.css",