@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.
- package/dist/components/hooks/use-block-conditional-rendering.d.ts +2 -2
- package/dist/components/hooks/use-block-conditional-rendering.d.ts.map +1 -1
- package/dist/components/hooks/use-block-conditional-rendering.js +25 -14
- package/dist/components/hooks/use-infinite-scroll.d.ts +2 -1
- package/dist/components/hooks/use-infinite-scroll.d.ts.map +1 -1
- package/dist/components/hooks/use-infinite-scroll.js +7 -3
- package/dist/components/hooks/use-product-options.js +3 -2
- package/dist/components/hooks/use-products.d.ts.map +1 -1
- package/dist/components/hooks/use-products.js +3 -1
- package/dist/components/hooks/use-reviews.d.ts.map +1 -1
- package/dist/components/hooks/use-reviews.js +8 -1
- package/dist/components/hooks/use-sort-filter.d.ts.map +1 -1
- package/dist/components/hooks/use-sort-filter.js +27 -5
- package/dist/components/libs/cache/ProductsLocalStorage.js +1 -1
- package/dist/components/libs/sort-filter/custom-search.js +1 -1
- package/dist/components/ui/badge.d.ts +7 -1
- package/dist/components/ui/badge.d.ts.map +1 -1
- package/dist/components/ui/badge.js +9 -4
- package/dist/components/ui/carousel.d.ts.map +1 -1
- package/dist/components/ui/carousel.js +49 -7
- package/dist/components/ui/drawer.js +2 -2
- package/dist/components/ui/product-card.d.ts +6 -0
- package/dist/components/ui/product-card.d.ts.map +1 -1
- package/dist/components/ui/product-card.js +3 -3
- package/dist/components/ui/text.d.ts +5 -1
- package/dist/components/ui/text.d.ts.map +1 -1
- package/dist/components/ui/text.js +8 -2
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/lib/price.d.ts.map +1 -1
- package/dist/lib/utils.d.ts +13 -1
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +58 -11
- package/dist/tests/utils.test.js +200 -1
- 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:
|
|
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;
|
|
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
|
|
20
|
-
const
|
|
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
|
-
|
|
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 = (
|
|
30
|
-
const productHandle = (
|
|
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
|
|
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 = (
|
|
132
|
-
const collectionHandle = (
|
|
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;
|
|
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 =
|
|
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
|
|
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,
|
|
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
|
|
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;
|
|
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 ||
|
|
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,
|
|
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
|
-
|
|
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 (
|
|
31
|
-
!sortFilterData
|
|
32
|
-
|
|
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
|
-
}, [
|
|
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}
|
|
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;
|
|
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: "
|
|
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
|
|
71
|
-
|
|
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;
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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-
|
|
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":"AAKA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAO9B,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAQ1C,KAAK,MAAM,GAAG;IACZ,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,YAAY,CAAC,EAAE;QACb,OAAO,EAAE,OAAO,CAAA;QAChB,YAAY,EAAE,MAAM,CAAA;QACpB,iBAAiB,EAAE,OAAO,CAAA;KAC3B,CAAA;IACD,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,OAAO,CAAA;QAChB,QAAQ,EAAE,MAAM,CAAA;QAChB,aAAa,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,IAAI,CAAA;KAClD,CAAA;IACD,YAAY,CAAC,EAAE;QACb,OAAO,EAAE,OAAO,CAAA;QAChB,QAAQ,EAAE,MAAM,CAAA;QAChB,SAAS,EAAE,OAAO,CAAA;QAClB,aAAa,EAAE,MAAM,CAAA;QACrB,QAAQ,EAAE,OAAO,CAAA;KAClB,CAAA;IACD,QAAQ,CAAC,EAAE;QACT,OAAO,EAAE,OAAO,CAAA;QAChB,QAAQ,EAAE,MAAM,CAAA;QAChB,SAAS,EAAE,OAAO,CAAA;QAClB,aAAa,EAAE,MAAM,CAAA;QACrB,YAAY,EAAE,MAAM,CAAA;QACpB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,gBAAgB,CAAC,EAAE,MAAM,CAAA;QACzB,sBAAsB,CAAC,EAAE,MAAM,CAAA;QAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAA;QAC3B,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,gBAAgB,CAAC,EAAE,MAAM,CAAA;QACzB,sBAAsB,CAAC,EAAE,MAAM,CAAA;QAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAA;KAC5B,CAAA;IACD,aAAa,CAAC,EAAE;QACd,OAAO,EAAE,OAAO,CAAA;QAChB,UAAU,EACN,UAAU,GACV,WAAW,GACX,aAAa,GACb,cAAc,GACd,sBAAsB,CAAA;QAC1B,cAAc,EAAE,OAAO,CAAA;QACvB,YAAY,EAAE,MAAM,CAAA;QACpB,IAAI,EAAE;YACJ,IAAI,EAAE,UAAU,CAAA;YAChB,GAAG,EAAE,QAAQ,CAAA;YACb,OAAO,CAAC,EAAE,MAAM,CAAA;SACjB,CAAA;KACF,CAAA;CACF,CAAA;AAED,KAAK,SAAS,GAAG;IACf,kBAAkB,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAA;IAC/C,YAAY,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAA;IAC7C,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;
|
|
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
|
|
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(
|
|
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,
|
|
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({},
|
|
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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":"AACA,OAAO,EACL,EAAE,EACF,GAAG,EACH,QAAQ,EACR,4BAA4B,EAC5B,cAAc,EACd,mBAAmB,EACnB,YAAY,EACZ,yBAAyB,EACzB,4BAA4B,EAC5B,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,wBAAwB,EACxB,4BAA4B,EAC5B,6BAA6B,EAC7B,yBAAyB,EACzB,4BAA4B,EAC5B,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,SAAS,EACT,4BAA4B,EAC5B,gBAAgB,EAChB,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,aAAa,CAAA;AACpB,YAAY,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AACrD,cAAc,iBAAiB,CAAA;AAC/B,cAAc,0BAA0B,CAAA;AACxC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,2CAA2C,CAAA;AACzD,cAAc,mCAAmC,CAAA;AACjD,cAAc,wCAAwC,CAAA;AACtD,cAAc,0CAA0C,CAAA;AACxD,cAAc,wCAAwC,CAAA;AACtD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,sCAAsC,CAAA;AACpD,cAAc,yCAAyC,CAAA;AACvD,cAAc,oCAAoC,CAAA;AAClD,cAAc,wCAAwC,CAAA;AACtD,cAAc,6BAA6B,CAAA;AAC3C,cAAc,sCAAsC,CAAA;AACpD,cAAc,oDAAoD,CAAA;AAClE,cAAc,kCAAkC,CAAA;AAChD,cAAc,2BAA2B,CAAA;AACzC,cAAc,mCAAmC,CAAA;AACjD,cAAc,gCAAgC,CAAA;AAC9C,cAAc,kCAAkC,CAAA;AAChD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,2BAA2B,CAAA;AACzC,cAAc,wBAAwB,CAAA;AACtC,cAAc,0BAA0B,CAAA;AACxC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,uCAAuC,CAAA;AACrD,cAAc,0BAA0B,CAAA;AACxC,cAAc,uCAAuC,CAAA;AACrD,cAAc,sBAAsB,CAAA;AACpC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,uBAAuB,CAAA;AACrC,cAAc,sCAAsC,CAAA;AACpD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,iCAAiC,CAAA;AAE/C,cAAc,oCAAoC,CAAA;AAClD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA;AACtC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,wBAAwB,CAAA;AACtC,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA;AACrC,cAAc,gCAAgC,CAAA;AAC9C,cAAc,0BAA0B,CAAA;AACxC,cAAc,iCAAiC,CAAA;AAC/C,cAAc,sBAAsB,CAAA;AACpC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,kDAAkD,CAAA;AAChE,cAAc,gCAAgC,CAAA;AAC9C,cAAc,qCAAqC,CAAA;AACnD,cAAc,oCAAoC,CAAA;AAClD,cAAc,mCAAmC,CAAA;AACjD,cAAc,aAAa,CAAA;AAC3B,cAAc,6CAA6C,CAAA;AAC3D,cAAc,kDAAkD,CAAA;AAChE,cAAc,qBAAqB,CAAA;AACnC,cAAc,mCAAmC,CAAA;AACjD,cAAc,qCAAqC,CAAA;AACnD,cAAc,wBAAwB,CAAA;AACtC,cAAc,2BAA2B,CAAA;AACzC,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,8CAA8C,CAAA"}
|
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";
|
package/dist/lib/price.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/lib/utils.d.ts
CHANGED
|
@@ -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
|
package/dist/lib/utils.d.ts.map
CHANGED
|
@@ -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
|
|
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
|
|
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 || ((
|
|
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
|
|
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((
|
|
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 (!((
|
|
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((
|
|
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((
|
|
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) ----
|
package/dist/tests/utils.test.js
CHANGED
|
@@ -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
|
+
});
|