@tapcart/mobile-components 0.8.30 → 0.8.32
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.map +1 -1
- package/dist/components/hooks/use-block-conditional-rendering.js +14 -4
- package/dist/components/hooks/use-infinite-wishlist.d.ts +63 -0
- package/dist/components/hooks/use-infinite-wishlist.d.ts.map +1 -0
- package/dist/components/hooks/use-infinite-wishlist.js +200 -0
- package/dist/components/hooks/use-nosto-recommendation.test.js +1 -1
- package/dist/components/hooks/use-shop.d.ts.map +1 -1
- package/dist/components/hooks/use-shop.js +1 -0
- package/dist/components/ui/Input/useInput.d.ts +1 -0
- package/dist/components/ui/Input/useInput.d.ts.map +1 -1
- package/dist/components/ui/accordion.js +1 -1
- package/dist/components/ui/button.d.ts +1 -0
- package/dist/components/ui/button.d.ts.map +1 -1
- package/dist/components/ui/button.js +7 -7
- package/dist/components/ui/chip.d.ts +1 -1
- package/dist/components/ui/chip.js +1 -1
- package/dist/components/ui/empty-message.js +1 -1
- package/dist/components/ui/image.d.ts.map +1 -1
- package/dist/components/ui/image.js +2 -1
- package/dist/components/ui/product-card.js +1 -1
- package/dist/components/ui/slider.js +1 -1
- package/dist/components/ui/subscription.js +1 -1
- package/dist/components/ui/tap.d.ts +1 -1
- package/dist/components/ui/tap.js +2 -0
- package/dist/components/ui/textarea.js +1 -1
- package/dist/components/ui/toast.js +2 -2
- package/dist/components/ui/toggle.d.ts.map +1 -1
- package/dist/components/ui/toggle.js +2 -2
- package/dist/components/ui/video-enhanced.js +1 -1
- package/dist/components/ui/virtual-grid.d.ts.map +1 -1
- package/dist/components/ui/virtual-grid.js +8 -7
- package/dist/components/ui/wishlist-select.d.ts.map +1 -1
- package/dist/components/ui/wishlist-select.js +2 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/lib/utils.d.ts +2 -0
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +18 -18
- package/dist/styles.css +6 -82
- package/package.json +10 -9
|
@@ -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;;;
|
|
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;;;CA2NrB,CAAA"}
|
|
@@ -40,7 +40,7 @@ export const useBlockConditionalRendering = (_props, _block) => {
|
|
|
40
40
|
if (conditionalsV2IsEnabled && ((_a = _block === null || _block === void 0 ? void 0 : _block.visibilityConditions) === null || _a === void 0 ? void 0 : _a.conditions)) {
|
|
41
41
|
const extractProductMetafields = (conditions) => {
|
|
42
42
|
return conditions.reduce((acc, condition) => {
|
|
43
|
-
if (condition.type ===
|
|
43
|
+
if (condition.type === "productMetafield" && condition.value) {
|
|
44
44
|
acc.push(condition.value);
|
|
45
45
|
}
|
|
46
46
|
if (condition.conditions) {
|
|
@@ -53,7 +53,12 @@ export const useBlockConditionalRendering = (_props, _block) => {
|
|
|
53
53
|
return extractProductMetafields(blockState.conditions || []);
|
|
54
54
|
}
|
|
55
55
|
return [];
|
|
56
|
-
}, [
|
|
56
|
+
}, [
|
|
57
|
+
blockState,
|
|
58
|
+
conditionalsV1IsEnabled,
|
|
59
|
+
conditionalsV2IsEnabled,
|
|
60
|
+
_block === null || _block === void 0 ? void 0 : _block.visibilityConditions,
|
|
61
|
+
]);
|
|
57
62
|
// Fetch product if productId is present
|
|
58
63
|
const { products, error: useProductsError, isLoading: isProductsLoading, } = useProducts({
|
|
59
64
|
productIds: productId !== undefined ? [gidFromId(productId)] : [],
|
|
@@ -73,7 +78,7 @@ export const useBlockConditionalRendering = (_props, _block) => {
|
|
|
73
78
|
if (conditionalsV2IsEnabled && ((_a = _block === null || _block === void 0 ? void 0 : _block.visibilityConditions) === null || _a === void 0 ? void 0 : _a.conditions)) {
|
|
74
79
|
const extractCollectionMetafields = (conditions) => {
|
|
75
80
|
return conditions.reduce((acc, condition) => {
|
|
76
|
-
if (condition.type ===
|
|
81
|
+
if (condition.type === "collectionMetafield" && condition.value) {
|
|
77
82
|
acc.push(condition.value);
|
|
78
83
|
}
|
|
79
84
|
if (condition.conditions) {
|
|
@@ -86,7 +91,12 @@ export const useBlockConditionalRendering = (_props, _block) => {
|
|
|
86
91
|
return extractCollectionMetafields(blockState.conditions || []);
|
|
87
92
|
}
|
|
88
93
|
return [];
|
|
89
|
-
}, [
|
|
94
|
+
}, [
|
|
95
|
+
blockState,
|
|
96
|
+
conditionalsV1IsEnabled,
|
|
97
|
+
conditionalsV2IsEnabled,
|
|
98
|
+
_block === null || _block === void 0 ? void 0 : _block.visibilityConditions,
|
|
99
|
+
]);
|
|
90
100
|
const collectionMetafieldsQuery = useMemo(() => blockCollectionMetafields.map((item) => {
|
|
91
101
|
// these are the fields used in the query.
|
|
92
102
|
return {
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
type QueryVariables = {
|
|
2
|
+
language?: string;
|
|
3
|
+
country?: string;
|
|
4
|
+
appId?: string;
|
|
5
|
+
collectionId?: string;
|
|
6
|
+
};
|
|
7
|
+
type UseInFiniteProductsOptions = {
|
|
8
|
+
initialProductIds: string[];
|
|
9
|
+
chunkSize: number;
|
|
10
|
+
apiUrl: string;
|
|
11
|
+
shouldMock: boolean;
|
|
12
|
+
queryVariables?: QueryVariables;
|
|
13
|
+
variantIds?: string[];
|
|
14
|
+
};
|
|
15
|
+
type ProductVariant = {
|
|
16
|
+
id: string;
|
|
17
|
+
title: string;
|
|
18
|
+
price: {
|
|
19
|
+
amount: string;
|
|
20
|
+
};
|
|
21
|
+
compareAtPrice: {
|
|
22
|
+
amount: string;
|
|
23
|
+
};
|
|
24
|
+
availableForSale: boolean;
|
|
25
|
+
sku: string;
|
|
26
|
+
selectedOptions: Array<{
|
|
27
|
+
name: string;
|
|
28
|
+
value: string;
|
|
29
|
+
}>;
|
|
30
|
+
image?: {
|
|
31
|
+
url: string;
|
|
32
|
+
altText: string;
|
|
33
|
+
width: number;
|
|
34
|
+
height: number;
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
type Product = {
|
|
38
|
+
id: string;
|
|
39
|
+
handle: string;
|
|
40
|
+
title: string;
|
|
41
|
+
description: string;
|
|
42
|
+
availableForSale: boolean;
|
|
43
|
+
vendor: string;
|
|
44
|
+
variants: ProductVariant[];
|
|
45
|
+
featuredImage?: {
|
|
46
|
+
url: string;
|
|
47
|
+
altText: string;
|
|
48
|
+
width: number;
|
|
49
|
+
height: number;
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
export declare function useInfiniteWishlist({ initialProductIds, chunkSize, apiUrl, shouldMock, queryVariables, variantIds, }: UseInFiniteProductsOptions): {
|
|
53
|
+
products: Product[];
|
|
54
|
+
isLoading: boolean;
|
|
55
|
+
isLoadingMore: boolean;
|
|
56
|
+
error: Error | null;
|
|
57
|
+
hasMore: boolean;
|
|
58
|
+
loadMore: () => Promise<void>;
|
|
59
|
+
loadMoreRef: (node?: Element | null | undefined) => void;
|
|
60
|
+
reset: () => void;
|
|
61
|
+
};
|
|
62
|
+
export {};
|
|
63
|
+
//# sourceMappingURL=use-infinite-wishlist.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-infinite-wishlist.d.ts","sourceRoot":"","sources":["../../../components/hooks/use-infinite-wishlist.ts"],"names":[],"mappings":"AAOA,KAAK,cAAc,GAAG;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,KAAK,0BAA0B,GAAG;IAChC,iBAAiB,EAAE,MAAM,EAAE,CAAA;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,OAAO,CAAA;IACnB,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CACtB,CAAA;AAED,KAAK,cAAc,GAAG;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE;QACL,MAAM,EAAE,MAAM,CAAA;KACf,CAAA;IACD,cAAc,EAAE;QACd,MAAM,EAAE,MAAM,CAAA;KACf,CAAA;IACD,gBAAgB,EAAE,OAAO,CAAA;IACzB,GAAG,EAAE,MAAM,CAAA;IACX,eAAe,EAAE,KAAK,CAAC;QACrB,IAAI,EAAE,MAAM,CAAA;QACZ,KAAK,EAAE,MAAM,CAAA;KACd,CAAC,CAAA;IACF,KAAK,CAAC,EAAE;QACN,GAAG,EAAE,MAAM,CAAA;QACX,OAAO,EAAE,MAAM,CAAA;QACf,KAAK,EAAE,MAAM,CAAA;QACb,MAAM,EAAE,MAAM,CAAA;KACf,CAAA;CACF,CAAA;AAED,KAAK,OAAO,GAAG;IACb,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,gBAAgB,EAAE,OAAO,CAAA;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,cAAc,EAAE,CAAA;IAC1B,aAAa,CAAC,EAAE;QACd,GAAG,EAAE,MAAM,CAAA;QACX,OAAO,EAAE,MAAM,CAAA;QACf,KAAK,EAAE,MAAM,CAAA;QACb,MAAM,EAAE,MAAM,CAAA;KACf,CAAA;CACF,CAAA;AAKD,wBAAgB,mBAAmB,CAAC,EAClC,iBAAiB,EACjB,SAAS,EACT,MAAM,EACN,UAAkB,EAClB,cAAmB,EACnB,UAAe,GAChB,EAAE,0BAA0B;;;;;;;;;EAsN5B"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
import { useState, useEffect, useCallback, useRef } from "react";
|
|
12
|
+
import { useInView } from "react-intersection-observer";
|
|
13
|
+
import { getProductGidsFromIds } from "../../lib/utils";
|
|
14
|
+
import { useCollection } from "./use-collection";
|
|
15
|
+
const extractVariantId = (fullId) => fullId.split("/").pop() || "";
|
|
16
|
+
export function useInfiniteWishlist({ initialProductIds, chunkSize, apiUrl, shouldMock = false, queryVariables = {}, variantIds = [], }) {
|
|
17
|
+
var _a;
|
|
18
|
+
const isInitialMount = useRef(true);
|
|
19
|
+
const [allProductIds, setAllProductIds] = useState(initialProductIds);
|
|
20
|
+
const [loadedIndex, setLoadedIndex] = useState(0);
|
|
21
|
+
const [products, setProducts] = useState([]);
|
|
22
|
+
const [isLoading, setIsLoading] = useState(false);
|
|
23
|
+
const [error, setError] = useState(null);
|
|
24
|
+
const loadingRef = useRef(false);
|
|
25
|
+
//Fetching collections are necessary only for the mock data. Since we pass the collectionId to the API, it will return the products for the collection.
|
|
26
|
+
const { collections } = useCollection({
|
|
27
|
+
apiUrl: apiUrl,
|
|
28
|
+
appId: (queryVariables === null || queryVariables === void 0 ? void 0 : queryVariables.appId) || "",
|
|
29
|
+
language: (queryVariables === null || queryVariables === void 0 ? void 0 : queryVariables.language) || "en",
|
|
30
|
+
collectionId: undefined,
|
|
31
|
+
getCollections: shouldMock,
|
|
32
|
+
limit: 1,
|
|
33
|
+
});
|
|
34
|
+
const collectionToFetchID = (_a = collections[0]) === null || _a === void 0 ? void 0 : _a.id;
|
|
35
|
+
useEffect(() => {
|
|
36
|
+
if (isInitialMount.current) {
|
|
37
|
+
isInitialMount.current = false;
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
setAllProductIds(initialProductIds);
|
|
41
|
+
setLoadedIndex(0);
|
|
42
|
+
setProducts([]);
|
|
43
|
+
}
|
|
44
|
+
}, [initialProductIds]);
|
|
45
|
+
const handleFetchError = (err, context) => {
|
|
46
|
+
const error = err instanceof Error ? err : new Error(`Failed to ${context}`);
|
|
47
|
+
setError(error);
|
|
48
|
+
throw error;
|
|
49
|
+
};
|
|
50
|
+
const fetchMockedProducts = useCallback(() => __awaiter(this, void 0, void 0, function* () {
|
|
51
|
+
var _b;
|
|
52
|
+
if (!collectionToFetchID)
|
|
53
|
+
return [];
|
|
54
|
+
const queryParams = new URLSearchParams();
|
|
55
|
+
const url = `${apiUrl}/products/by-page?${queryParams.toString()}`;
|
|
56
|
+
const body = {
|
|
57
|
+
language: queryVariables === null || queryVariables === void 0 ? void 0 : queryVariables.language,
|
|
58
|
+
country: queryVariables === null || queryVariables === void 0 ? void 0 : queryVariables.country,
|
|
59
|
+
appId: queryVariables === null || queryVariables === void 0 ? void 0 : queryVariables.appId,
|
|
60
|
+
collectionId: collectionToFetchID,
|
|
61
|
+
};
|
|
62
|
+
try {
|
|
63
|
+
const response = yield fetch(url, {
|
|
64
|
+
method: "POST",
|
|
65
|
+
headers: {
|
|
66
|
+
"Content-Type": "application/json",
|
|
67
|
+
},
|
|
68
|
+
body: JSON.stringify(body),
|
|
69
|
+
});
|
|
70
|
+
if (!response.ok) {
|
|
71
|
+
throw new Error(`HTTP error: ${response.status}`);
|
|
72
|
+
}
|
|
73
|
+
const data = yield response.json();
|
|
74
|
+
return ((_b = data.products) === null || _b === void 0 ? void 0 : _b.slice(0, 2)) || [];
|
|
75
|
+
}
|
|
76
|
+
catch (err) {
|
|
77
|
+
handleFetchError(err, "fetch mocked products");
|
|
78
|
+
return [];
|
|
79
|
+
}
|
|
80
|
+
}), [apiUrl, collectionToFetchID]);
|
|
81
|
+
const fetchProducts = useCallback((ids) => __awaiter(this, void 0, void 0, function* () {
|
|
82
|
+
if (!ids.length)
|
|
83
|
+
return [];
|
|
84
|
+
if (shouldMock)
|
|
85
|
+
return fetchMockedProducts();
|
|
86
|
+
const queryParams = new URLSearchParams();
|
|
87
|
+
queryParams.set("ids", getProductGidsFromIds(ids).join(","));
|
|
88
|
+
const url = `${apiUrl}/products/by-ids?${queryParams.toString()}`;
|
|
89
|
+
try {
|
|
90
|
+
const response = yield fetch(url);
|
|
91
|
+
if (!response.ok) {
|
|
92
|
+
throw new Error(`HTTP error: ${response.status}`);
|
|
93
|
+
}
|
|
94
|
+
const products = yield response.json();
|
|
95
|
+
if (variantIds.length > 0) {
|
|
96
|
+
return variantIds
|
|
97
|
+
.map((variantId) => {
|
|
98
|
+
var _a;
|
|
99
|
+
const product = products.find((p) => {
|
|
100
|
+
var _a;
|
|
101
|
+
return (_a = p.variants) === null || _a === void 0 ? void 0 : _a.some((v) => extractVariantId(v.id) === variantId);
|
|
102
|
+
});
|
|
103
|
+
if (!product)
|
|
104
|
+
return null;
|
|
105
|
+
const matchingVariant = (_a = product.variants) === null || _a === void 0 ? void 0 : _a.find((v) => extractVariantId(v.id) === variantId);
|
|
106
|
+
if (!matchingVariant)
|
|
107
|
+
return null;
|
|
108
|
+
return Object.assign(Object.assign({}, product), { variants: [matchingVariant] });
|
|
109
|
+
})
|
|
110
|
+
.filter((p) => p !== null);
|
|
111
|
+
}
|
|
112
|
+
return products;
|
|
113
|
+
}
|
|
114
|
+
catch (err) {
|
|
115
|
+
handleFetchError(err, "fetch products");
|
|
116
|
+
return [];
|
|
117
|
+
}
|
|
118
|
+
}), [apiUrl, shouldMock, fetchMockedProducts, variantIds]);
|
|
119
|
+
const loadMore = useCallback(() => __awaiter(this, void 0, void 0, function* () {
|
|
120
|
+
if (loadingRef.current ||
|
|
121
|
+
(!shouldMock && !(allProductIds.length - loadedIndex > 0))) {
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
loadingRef.current = true;
|
|
125
|
+
setIsLoading(true);
|
|
126
|
+
try {
|
|
127
|
+
if (shouldMock) {
|
|
128
|
+
const newProducts = yield fetchMockedProducts();
|
|
129
|
+
if (newProducts.length > 0) {
|
|
130
|
+
setProducts(newProducts);
|
|
131
|
+
setLoadedIndex(2);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
const remainingItems = allProductIds.length - loadedIndex;
|
|
136
|
+
const loadCount = Math.min(remainingItems, chunkSize);
|
|
137
|
+
const nextChunkIds = allProductIds.slice(loadedIndex, loadedIndex + loadCount);
|
|
138
|
+
if (nextChunkIds.length === 0)
|
|
139
|
+
return;
|
|
140
|
+
const newProducts = yield fetchProducts(nextChunkIds);
|
|
141
|
+
setProducts((prev) => [...prev, ...newProducts]);
|
|
142
|
+
setLoadedIndex((prev) => prev + loadCount);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
catch (err) {
|
|
146
|
+
handleFetchError(err, "load more products");
|
|
147
|
+
}
|
|
148
|
+
finally {
|
|
149
|
+
loadingRef.current = false;
|
|
150
|
+
setIsLoading(false);
|
|
151
|
+
}
|
|
152
|
+
}), [
|
|
153
|
+
shouldMock,
|
|
154
|
+
allProductIds,
|
|
155
|
+
loadedIndex,
|
|
156
|
+
chunkSize,
|
|
157
|
+
fetchProducts,
|
|
158
|
+
fetchMockedProducts,
|
|
159
|
+
]);
|
|
160
|
+
useEffect(() => {
|
|
161
|
+
if (shouldMock && collectionToFetchID && products.length === 0) {
|
|
162
|
+
loadMore();
|
|
163
|
+
}
|
|
164
|
+
}, [shouldMock, collectionToFetchID, products.length, loadMore]);
|
|
165
|
+
const { ref: loadMoreRef, inView } = useInView({
|
|
166
|
+
threshold: 0,
|
|
167
|
+
triggerOnce: false,
|
|
168
|
+
});
|
|
169
|
+
useEffect(() => {
|
|
170
|
+
if (inView &&
|
|
171
|
+
!loadingRef.current &&
|
|
172
|
+
(shouldMock
|
|
173
|
+
? products.length < 2
|
|
174
|
+
: allProductIds.length - loadedIndex > 0)) {
|
|
175
|
+
loadMore();
|
|
176
|
+
}
|
|
177
|
+
}, [
|
|
178
|
+
inView,
|
|
179
|
+
shouldMock,
|
|
180
|
+
products.length,
|
|
181
|
+
allProductIds.length,
|
|
182
|
+
loadedIndex,
|
|
183
|
+
loadMore,
|
|
184
|
+
]);
|
|
185
|
+
return {
|
|
186
|
+
products,
|
|
187
|
+
isLoading: isLoading && products.length === 0,
|
|
188
|
+
isLoadingMore: isLoading && products.length > 0,
|
|
189
|
+
error,
|
|
190
|
+
hasMore: shouldMock
|
|
191
|
+
? products.length < 2
|
|
192
|
+
: allProductIds.length - loadedIndex > 0,
|
|
193
|
+
loadMore,
|
|
194
|
+
loadMoreRef,
|
|
195
|
+
reset: () => {
|
|
196
|
+
setLoadedIndex(0);
|
|
197
|
+
setProducts([]);
|
|
198
|
+
},
|
|
199
|
+
};
|
|
200
|
+
}
|
|
@@ -8,7 +8,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
import { renderHook } from "@testing-library/react";
|
|
11
|
-
import { act } from "react
|
|
11
|
+
import { act } from "react";
|
|
12
12
|
import { NostoRecommendationsType, useNostoRecommendations, } from "./use-nosto-recommendation";
|
|
13
13
|
import { useProducts } from "./use-products";
|
|
14
14
|
jest.mock("./use-products", () => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-shop.d.ts","sourceRoot":"","sources":["../../../components/hooks/use-shop.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"use-shop.d.ts","sourceRoot":"","sources":["../../../components/hooks/use-shop.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAEvC,KAAK,GAAG,GAAG,MAAM,CAAA;AACjB,KAAK,YAAY,GAAG;IAClB,OAAO,EAAE,GAAG,CAAA;IACZ,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;CACxC,CAAA;AACD,KAAK,aAAa,GAAG;IACnB,IAAI,EAAE,IAAI,GAAG;QAAE,eAAe,EAAE,MAAM,CAAA;KAAE,CAAA;IACxC,KAAK,EAAE,GAAG,CAAA;IACV,SAAS,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,GAAG,aAAa,CAkBjE"}
|
|
@@ -37,6 +37,7 @@ export declare const useInput: (props: Pick<InputProps, "asChild" | "icon" | "ic
|
|
|
37
37
|
inputBorderColorStyle: string | undefined;
|
|
38
38
|
inputActiveBorderColorStyle: string | undefined;
|
|
39
39
|
labelTextStyle: {
|
|
40
|
+
fontStyle?: string | undefined;
|
|
40
41
|
fontFamily: string | undefined;
|
|
41
42
|
fontWeight: string | number | undefined;
|
|
42
43
|
fontSize: string | number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInput.d.ts","sourceRoot":"","sources":["../../../../components/ui/Input/useInput.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAGxD,eAAO,MAAM,iBAAiB,KAAK,CAAA;AACnC,eAAO,MAAM,iBAAiB,KAAK,CAAA;AACnC,eAAO,MAAM,iBAAiB,IAAI,CAAA;AAElC,eAAO,MAAM,aAAa;;;mFAkBzB,CAAA;AAED,eAAO,MAAM,QAAQ,UACZ,KACL,UAAU,EACR,SAAS,GACT,MAAM,GACN,SAAS,GACT,cAAc,GACd,WAAW,GACX,WAAW,GACX,iBAAiB,GACjB,cAAc,GACd,kBAAkB,GAClB,wBAAwB,GACxB,aAAa,GACb,cAAc,GACd,cAAc,GACd,sBAAsB,GACtB,YAAY,CACf
|
|
1
|
+
{"version":3,"file":"useInput.d.ts","sourceRoot":"","sources":["../../../../components/ui/Input/useInput.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AAGxD,eAAO,MAAM,iBAAiB,KAAK,CAAA;AACnC,eAAO,MAAM,iBAAiB,KAAK,CAAA;AACnC,eAAO,MAAM,iBAAiB,IAAI,CAAA;AAElC,eAAO,MAAM,aAAa;;;mFAkBzB,CAAA;AAED,eAAO,MAAM,QAAQ,UACZ,KACL,UAAU,EACR,SAAS,GACT,MAAM,GACN,SAAS,GACT,cAAc,GACd,WAAW,GACX,WAAW,GACX,iBAAiB,GACjB,cAAc,GACd,kBAAkB,GAClB,wBAAwB,GACxB,aAAa,GACb,cAAc,GACd,cAAc,GACd,sBAAsB,GACtB,YAAY,CACf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6FF,CAAA"}
|
|
@@ -23,7 +23,7 @@ const AccordionItem = React.forwardRef((_a, ref) => {
|
|
|
23
23
|
AccordionItem.displayName = "AccordionItem";
|
|
24
24
|
const AccordionTrigger = React.forwardRef((_a, ref) => {
|
|
25
25
|
var { className, children, showDefaultIcon = true } = _a, props = __rest(_a, ["className", "children", "showDefaultIcon"]);
|
|
26
|
-
return (_jsx(AccordionPrimitive.Header, Object.assign({ className: "flex" }, { children: _jsxs(AccordionPrimitive.Trigger, Object.assign({ ref: ref, className: cn("px-4 flex flex-1 items-center justify-between py-4 font-medium transition-all
|
|
26
|
+
return (_jsx(AccordionPrimitive.Header, Object.assign({ className: "flex" }, { children: _jsxs(AccordionPrimitive.Trigger, Object.assign({ ref: ref, className: cn("px-4 flex flex-1 items-center justify-between py-4 font-medium transition-all active:opacity-70", { "[&[data-state=open]_svg]:rotate-180": showDefaultIcon }, className) }, props, { children: [children, showDefaultIcon && (_jsx(Icon, { name: "chevron-down", size: "sm", className: "text-coreColors-secondaryIcon shrink-0 transition-transform duration-200" }))] })) })));
|
|
27
27
|
});
|
|
28
28
|
AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName;
|
|
29
29
|
const AccordionContent = React.forwardRef((_a, ref) => {
|
|
@@ -30,6 +30,7 @@ declare const getButtonProps: (buttonConfig: TextStyle & BackgroundAndPadding &
|
|
|
30
30
|
iconColor: string | undefined;
|
|
31
31
|
labelStyle: {
|
|
32
32
|
color: string | undefined;
|
|
33
|
+
fontStyle?: string | undefined;
|
|
33
34
|
fontFamily: string | undefined;
|
|
34
35
|
fontWeight: string | number | undefined;
|
|
35
36
|
fontSize: string | number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../components/ui/button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAGL,KAAK,EAEL,SAAS,EAET,oBAAoB,EACrB,MAAM,iBAAiB,CAAA;AAMxB,QAAA,MAAM,cAAc;;;mFAgCnB,CAAA;AAwCD,MAAM,WAAW,WACf,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EACnD,YAAY,CAAC,OAAO,cAAc,CAAC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,KAAK,CAAC,aAAa,GAAG,SAAS,CAAA;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,CAAA;IACvD,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC/B,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAA;CAC9D;AAED,QAAA,MAAM,MAAM,uFA0GX,CAAA;AAGD,QAAA,MAAM,cAAc,iBACJ,SAAS,GACrB,oBAAoB,GAAG;IACrB,SAAS,EAAE,KAAK,CAAA;IAChB,WAAW,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5B,gBAAgB,EAAE,OAAO,CAAA;CAC1B
|
|
1
|
+
{"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../components/ui/button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAGL,KAAK,EAEL,SAAS,EAET,oBAAoB,EACrB,MAAM,iBAAiB,CAAA;AAMxB,QAAA,MAAM,cAAc;;;mFAgCnB,CAAA;AAwCD,MAAM,WAAW,WACf,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EACnD,YAAY,CAAC,OAAO,cAAc,CAAC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,KAAK,CAAC,aAAa,GAAG,SAAS,CAAA;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,SAAS,CAAA;IACvD,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC/B,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAA;CAC9D;AAED,QAAA,MAAM,MAAM,uFA0GX,CAAA;AAGD,QAAA,MAAM,cAAc,iBACJ,SAAS,GACrB,oBAAoB,GAAG;IACrB,SAAS,EAAE,KAAK,CAAA;IAChB,WAAW,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5B,gBAAgB,EAAE,OAAO,CAAA;CAC1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkBJ,CAAA;AAED,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,CAAA"}
|
|
@@ -30,10 +30,10 @@ const buttonVariants = cva("w-full flex rounded items-center justify-center tran
|
|
|
30
30
|
variant: {
|
|
31
31
|
default: "bg-buttonColors-primaryFill border border-buttonColors-primaryOutlineColor shadow-primary",
|
|
32
32
|
destructive: "bg-stateColors-error disabled:bg-stateColors-disabled shadow-buttonColors-primaryShadow",
|
|
33
|
-
outline: "border border-input
|
|
33
|
+
outline: "border border-input",
|
|
34
34
|
secondary: "bg-buttonColors-secondaryFill border border-buttonColors-secondaryOutlineColor disabled:bg-buttonColors-secondaryFill disabled:text-stateColors-disabled shadow-secondary",
|
|
35
|
-
ghost: "
|
|
36
|
-
link: "underline-offset-4
|
|
35
|
+
ghost: "",
|
|
36
|
+
link: "underline-offset-4 disabled:text-stateColors-disabled disabled:bg-transparent",
|
|
37
37
|
quickadd: "bg-buttonColors-primaryFill w-full rounded-none rounded-b-lg min-h-8 border border-buttonColors-primaryOutlineColor py-2",
|
|
38
38
|
applePay: "bg-white border border-black",
|
|
39
39
|
shopPay: "bg-[#612EFF]",
|
|
@@ -49,9 +49,9 @@ const iconVariants = cva("", {
|
|
|
49
49
|
variant: {
|
|
50
50
|
default: "text-buttonColors-primaryText",
|
|
51
51
|
destructive: "text-coreColors-pageColor",
|
|
52
|
-
outline: "
|
|
52
|
+
outline: "",
|
|
53
53
|
secondary: "text-buttonColors-secondaryText",
|
|
54
|
-
ghost: "
|
|
54
|
+
ghost: "",
|
|
55
55
|
link: "text-textColors-primaryColor",
|
|
56
56
|
quickadd: "text-buttonColors-primaryText",
|
|
57
57
|
applePay: "text-black",
|
|
@@ -67,9 +67,9 @@ const labelVariants = cva("truncate", {
|
|
|
67
67
|
variant: {
|
|
68
68
|
default: "text-buttonColors-primaryText",
|
|
69
69
|
destructive: "text-coreColors-pageColor",
|
|
70
|
-
outline: "
|
|
70
|
+
outline: "",
|
|
71
71
|
secondary: "text-buttonColors-secondaryText",
|
|
72
|
-
ghost: "
|
|
72
|
+
ghost: "",
|
|
73
73
|
link: "text-textColors-primaryColor",
|
|
74
74
|
quickadd: "text-buttonColors-primaryText",
|
|
75
75
|
applePay: "text-black border",
|
|
@@ -19,7 +19,7 @@ declare const Chip: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps
|
|
|
19
19
|
direction?: "vertical" | "horizontal" | null | undefined;
|
|
20
20
|
iconPosition?: "left" | "right" | "default" | null | undefined;
|
|
21
21
|
} & import("class-variance-authority/dist/types").ClassProp) | undefined) => string> & {
|
|
22
|
-
icon?: React.ElementType<any> | undefined;
|
|
22
|
+
icon?: React.ElementType<any, keyof React.JSX.IntrinsicElements> | undefined;
|
|
23
23
|
iconColor?: string | undefined;
|
|
24
24
|
iconPosition?: "left" | "right" | undefined;
|
|
25
25
|
iconUrl?: string | undefined;
|
|
@@ -16,7 +16,7 @@ import { cn } from "../../lib/utils";
|
|
|
16
16
|
import React, { useState, useEffect } from "react";
|
|
17
17
|
import { Icon } from "./icon";
|
|
18
18
|
import { LoadingDots } from "./loading-dots";
|
|
19
|
-
const chipVariants = cva("inline-flex items-center justify-center rounded border border-coreColors-dividingLines text-[12px] transition-colors h-8 active:opacity-70", {
|
|
19
|
+
const chipVariants = cva("inline-flex items-center justify-center rounded border border-coreColors-dividingLines text-[12px] transition-colors h-8 active:opacity-70 cursor-pointer", {
|
|
20
20
|
variants: {
|
|
21
21
|
variant: {
|
|
22
22
|
primary: "bg-coreColors-pageColor text-textColors-primaryColor",
|
|
@@ -70,6 +70,6 @@ function EmptyMessage({ iconName, iconUrl, title, description, className, button
|
|
|
70
70
|
});
|
|
71
71
|
}
|
|
72
72
|
};
|
|
73
|
-
return (_jsxs("div", Object.assign({ className: cn("flex-grow flex flex-col justify-center items-center gap-4 h-full", className), onClick: handlePageClick }, { children: [_jsxs("div", Object.assign({ className: "flex flex-col justify-center items-center gap-2" }, { children: [_jsx(Icon, { url: iconUrl, name: iconName, size: "md", color: "coreColors-secondaryIcon" }), _jsx(Text, Object.assign({ type: "h2", className: "text-textColors-primaryColor text-center" }, { children: title })), _jsx(Text, Object.assign({ type: "body-primary", className: "text-textColors-secondaryColor text-center" }, { children: description }))] })), buttonLabel ? (_jsx(Button, Object.assign({ variant: "default", onClick: onClick, className: "w-auto" }, { children: buttonLabel }))) : null] })));
|
|
73
|
+
return (_jsxs("div", Object.assign({ className: cn("flex-grow flex flex-col justify-center items-center gap-4 h-full cursor-pointer", className), onClick: handlePageClick }, { children: [_jsxs("div", Object.assign({ className: "flex flex-col justify-center items-center gap-2" }, { children: [_jsx(Icon, { url: iconUrl, name: iconName, size: "md", color: "coreColors-secondaryIcon" }), _jsx(Text, Object.assign({ type: "h2", className: "text-textColors-primaryColor text-center" }, { children: title })), _jsx(Text, Object.assign({ type: "body-primary", className: "text-textColors-secondaryColor text-center" }, { children: description }))] })), buttonLabel ? (_jsx(Button, Object.assign({ variant: "default", onClick: onClick, className: "w-auto" }, { children: buttonLabel }))) : null] })));
|
|
74
74
|
}
|
|
75
75
|
export { EmptyMessage };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../../components/ui/image.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../../components/ui/image.tsx"],"names":[],"mappings":"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"}
|
|
@@ -174,11 +174,12 @@ export const Image = React.forwardRef((_a, ref) => {
|
|
|
174
174
|
}, [ref]);
|
|
175
175
|
const wrapperStyle = Object.assign({ aspectRatio: (_b = normalizedProps === null || normalizedProps === void 0 ? void 0 : normalizedProps.aspectRatio) === null || _b === void 0 ? void 0 : _b.replace(":", "/") }, imageWrapperStyles);
|
|
176
176
|
const srcSet = generateSrcSet(normalizedProps.src, generateSizes(imageWidths, normalizedProps.aspectRatio, crop), loader, normalizedProps.objectFit === "contain");
|
|
177
|
+
console.log("Image alt value:", normalizedProps.alt);
|
|
177
178
|
return (_jsxs(_Fragment, { children: [loading === "eager" && (_jsx(ImagePreload, { imgAttributes: {
|
|
178
179
|
srcSet,
|
|
179
180
|
sizes,
|
|
180
181
|
fetchPriority: normalizedProps.fetchPriority,
|
|
181
|
-
src: normalizedProps.src || "",
|
|
182
|
+
src: (normalizedProps.src || ""),
|
|
182
183
|
} })), _jsxs("div", Object.assign({ className: "relative", style: Object.assign(Object.assign({ borderRadius: `${imageRadius}px` }, wrapperStyle), { overflow: "hidden" }) }, { children: [!hasError && normalizedProps.src ? (_jsx("img", Object.assign({}, passthroughProps, { fetchPriority: normalizedProps.fetchPriority, alt: normalizedProps.alt, decoding: decoding, height: normalizedProps.height, loading: loading, srcSet: srcSet, width: normalizedProps.width, onLoad: handleImageLoad, onError: handleImageError, sizes: sizes,
|
|
183
184
|
// `src` needs to come after `sizes` and `srcSet` because React updates
|
|
184
185
|
// attributes in order. If we keep `src` the first one, Safari will
|
|
@@ -188,7 +188,7 @@ const ProductCard = ({ config, tapcartData, product, isLoading, favorited, onFav
|
|
|
188
188
|
};
|
|
189
189
|
const sizes = getImageSizes(config);
|
|
190
190
|
const imageSwipeEnabled = ((_e = config.productImage) === null || _e === void 0 ? void 0 : _e.allowSwipeability) && product.images.length > 1;
|
|
191
|
-
return (_jsx("div", Object.assign({ className: cn("w-1/2", className) }, { children: _jsxs("div", Object.assign({ className: "w-full active:opacity-70", onClick: () => {
|
|
191
|
+
return (_jsx("div", Object.assign({ className: cn("w-1/2", className) }, { children: _jsxs("div", Object.assign({ className: "w-full active:opacity-70 cursor-pointer", onClick: () => {
|
|
192
192
|
_openProduct();
|
|
193
193
|
} }, { children: [((_f = config.productImage) === null || _f === void 0 ? void 0 : _f.enabled) && (_jsxs("div", Object.assign({ className: "relative w-full overflow-hidden", style: {
|
|
194
194
|
borderTopLeftRadius: `${config.productImage.cornerRadius}px`,
|
|
@@ -41,7 +41,7 @@ const Slider = React.forwardRef((_a, ref) => {
|
|
|
41
41
|
const debouncedSliderVal = useDebounce(value, 200);
|
|
42
42
|
return (_jsxs(_Fragment, { children: [_jsx("div", Object.assign({ className: "mt-3 mb-6" }, { children: _jsxs(SliderPrimitive.Root, Object.assign({ ref: ref, className: cn("flex relative h-0.5 w-auto items-center select-none", className), onValueChange: (value) => onChange(value), onValueCommit: (value) => {
|
|
43
43
|
handleCommit(value);
|
|
44
|
-
}, defaultValue: defaultValue, value: value, max: max, min: min, step: step }, props, { children: [_jsx(SliderPrimitive.Track, Object.assign({ className: "relative h-1 rounded w-full grow overflow-hidden bg-coreColors-dividingLines" }, { children: _jsx(SliderPrimitive.Range, { className: "absolute h-full bg-coreColors-brandColorPrimary" }) })), _jsx(SliderPrimitive.Thumb, { className: "block
|
|
44
|
+
}, defaultValue: defaultValue, value: value, max: max, min: min, step: step }, props, { children: [_jsx(SliderPrimitive.Track, Object.assign({ className: "relative h-1 rounded w-full grow overflow-hidden bg-coreColors-dividingLines" }, { children: _jsx(SliderPrimitive.Range, { className: "absolute h-full bg-coreColors-brandColorPrimary" }) })), _jsx(SliderPrimitive.Thumb, { className: "block h-4 w-4 rounded-full border-2 border-coreColors-brandColorPrimary bg-coreColors-modalBackground focus-visible:outline-none disabled:pointer-events-none" })] })) })), _jsxs("div", Object.assign({ className: "flex w-auto gap-4 " }, { children: [doubleValue && doubleValue == true ? (_jsxs(_Fragment, { children: [_jsx("div", Object.assign({ className: "w-full px-4 py-2 border bg-coreColors-inputBackground" }, { children: _jsxs("div", Object.assign({ className: "flex flex-col" }, { children: [_jsx("div", Object.assign({ className: "h-4 text-textColors-secondaryColor text-[10px] leading-[13px]" }, { children: "Minimum" })), _jsxs("div", Object.assign({ className: "flex text-textColors-primaryColor text-[14px]" }, { children: ["$", min] }))] })) })), _jsx("div", { className: "w-4 h-0 self-center border-2 bg-coreColors-dividingLines" })] })) : (""), _jsx("div", Object.assign({ className: "w-full px-4 py-2 outline outline-1 outline-coreColors-dividingLines rounded bg-coreColors-inputBackground" }, { children: _jsxs("div", Object.assign({ className: "flex flex-col" }, { children: [_jsx("div", Object.assign({ className: "flex items-center h-4 text-textColors-secondaryColor text-[10px] leading-[13px]" }, { children: "Maximum" })), _jsxs("div", Object.assign({ className: "flex h-6 text-textColors-primaryColor text-[14px] w-full [&>div]:w-full" }, { children: ["$", _jsx(Input, { className: "border-0 p-0 h-full w-full text-[14px]", id: "slider-maximum", value: debouncedSliderVal[0].toString(), placeholder: defaultValue[0].toString(), onChange: (value) => {
|
|
45
45
|
const inputValue = Number(value);
|
|
46
46
|
inputValue > max ? onChange([max]) : onChange([inputValue]);
|
|
47
47
|
} })] }))] })) }))] }))] }));
|
|
@@ -17,7 +17,7 @@ import { Icon } from "./icon";
|
|
|
17
17
|
const Subscription = React.forwardRef((_a, ref) => {
|
|
18
18
|
var { imgUrl, name, oldPrice, newPrice, savePercentage = true, selected = false, type = "subscription", onClick, className } = _a, props = __rest(_a, ["imgUrl", "name", "oldPrice", "newPrice", "savePercentage", "selected", "type", "onClick", "className"]);
|
|
19
19
|
return (_jsxs("button", Object.assign({ className: cn("flex flex-row p-4 gap-2 w-full border-b border-coreColors-dividingLines", selected ? "bg-stateColors-skeleton" : "", className), ref: ref, onClick: onClick }, props, { children: [type == "subscription" && (_jsx(Icon, { name: "repeat", size: "sm", color: "stateColors-subscriptions", className: "my-auto" })), _jsxs("div", Object.assign({ className: "flex flex-col w-full items-start overflow-hidden" }, { children: [_jsx(Text, Object.assign({ type: "body-primary", className: "text-textColors-primaryColor truncate w-full text-left" }, { children: name })), type == "subscription" && savePercentage && newPrice ? (_jsxs(Text, Object.assign({ type: "body-secondary", className: "text-stateColors-subscriptions" }, { children: ["Save ", 100 - (newPrice * 100) / oldPrice, "%"] }))) : null] })), _jsxs("div", Object.assign({ className: "flex flex-row items-start gap-2" }, { children: [type == "subscription" && newPrice ? (_jsx(Text, Object.assign({ type: "body-primary", className: "text-textColors-salePriceText" }, { children: `$${newPrice.toFixed(2)}` }))) : null, _jsx(Text, Object.assign({ type: "body-primary", className: `${type == "subscription"
|
|
20
|
-
? "line-through
|
|
20
|
+
? "line-through text-textColors-strikethroughPriceText"
|
|
21
21
|
: "text-textColors-priceText"}` }, { children: `$${oldPrice.toFixed(2)}` }))] }))] })));
|
|
22
22
|
});
|
|
23
23
|
Subscription.displayName = "Subscription";
|
|
@@ -2,7 +2,7 @@ import React, { ReactNode } from "react";
|
|
|
2
2
|
declare const useTap: (tapThreshold?: number) => {
|
|
3
3
|
onTap: (handler: (event: any) => void) => (event: any) => void;
|
|
4
4
|
isPressed: boolean;
|
|
5
|
-
ref: React.
|
|
5
|
+
ref: React.RefObject<null>;
|
|
6
6
|
};
|
|
7
7
|
interface TapProps {
|
|
8
8
|
children: ReactNode;
|
|
@@ -121,10 +121,12 @@ const Tap = ({ children }) => {
|
|
|
121
121
|
return React.cloneElement(element, Object.assign(Object.assign({}, props), { onClick: undefined, onTouchEnd: (event) => {
|
|
122
122
|
onTap(() => {
|
|
123
123
|
if (element.props.onTouchEnd) {
|
|
124
|
+
;
|
|
124
125
|
element.props.onTouchEnd(event);
|
|
125
126
|
return;
|
|
126
127
|
}
|
|
127
128
|
if (element.props.onClick) {
|
|
129
|
+
;
|
|
128
130
|
element.props.onClick(event);
|
|
129
131
|
return;
|
|
130
132
|
}
|
|
@@ -15,7 +15,7 @@ import * as React from "react";
|
|
|
15
15
|
import { Slot } from "@radix-ui/react-slot";
|
|
16
16
|
import { cva } from "class-variance-authority";
|
|
17
17
|
import { cn } from "../../lib/utils";
|
|
18
|
-
const textareaVariants = cva("relative pl-4 pr-4 rounded border border-coreColors-dividingLines bg-coreColors-inputBackground focus-within:border-coreColors-brandColorPrimary [&_label]:focus-within:text-coreColors-brandColorPrimary", {
|
|
18
|
+
const textareaVariants = cva("relative pl-4 pr-4 rounded border border-coreColors-dividingLines bg-coreColors-inputBackground focus-within:border-coreColors-brandColorPrimary [&_label]:focus-within:text-coreColors-brandColorPrimary cursor-text", {
|
|
19
19
|
variants: {
|
|
20
20
|
error: {
|
|
21
21
|
true: "!border-stateColors-error [&_*]:text-stateColors-error [&_*]:placeholder:text-stateColors-error focus-within:!border-stateColors-error [&+label]:text-stateColors-error [&_label]:focus-within:!text-stateColors-error",
|
|
@@ -55,12 +55,12 @@ const Toast = React.forwardRef((_a, ref) => {
|
|
|
55
55
|
Toast.displayName = ToastPrimitives.Root.displayName;
|
|
56
56
|
const ToastAction = React.forwardRef((_a, ref) => {
|
|
57
57
|
var { className } = _a, props = __rest(_a, ["className"]);
|
|
58
|
-
return (_jsx(ToastPrimitives.Action, Object.assign({ ref: ref, className: cn("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors
|
|
58
|
+
return (_jsx(ToastPrimitives.Action, Object.assign({ ref: ref, className: cn("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:focus:ring-destructive", className) }, props)));
|
|
59
59
|
});
|
|
60
60
|
ToastAction.displayName = ToastPrimitives.Action.displayName;
|
|
61
61
|
const ToastClose = React.forwardRef((_a, ref) => {
|
|
62
62
|
var { className } = _a, props = __rest(_a, ["className"]);
|
|
63
|
-
return (_jsx(ToastPrimitives.Close, Object.assign({ ref: ref, className: cn("absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity
|
|
63
|
+
return (_jsx(ToastPrimitives.Close, Object.assign({ ref: ref, className: cn("absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity focus:opacity-100 focus:outline-none focus:ring-2 group-[.destructive]:text-red-300 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600", className), "toast-close": "" }, props, { children: _jsx(X, { className: "h-4 w-4" }) })));
|
|
64
64
|
});
|
|
65
65
|
ToastClose.displayName = ToastPrimitives.Close.displayName;
|
|
66
66
|
const ToastTitle = React.forwardRef((_a, ref) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toggle.d.ts","sourceRoot":"","sources":["../../../components/ui/toggle.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAIjE,QAAA,MAAM,cAAc;;;
|
|
1
|
+
{"version":3,"file":"toggle.d.ts","sourceRoot":"","sources":["../../../components/ui/toggle.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAIjE,QAAA,MAAM,cAAc;;;mFAmBnB,CAAA;AAED,QAAA,MAAM,MAAM;;;8HAUV,CAAA;AAIF,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAA"}
|
|
@@ -15,11 +15,11 @@ import * as React from "react";
|
|
|
15
15
|
import * as TogglePrimitive from "@radix-ui/react-toggle";
|
|
16
16
|
import { cva } from "class-variance-authority";
|
|
17
17
|
import { cn } from "../../lib/utils";
|
|
18
|
-
const toggleVariants = cva("inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors
|
|
18
|
+
const toggleVariants = cva("inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground active:opacity-70", {
|
|
19
19
|
variants: {
|
|
20
20
|
variant: {
|
|
21
21
|
default: "bg-transparent",
|
|
22
|
-
outline: "border border-input bg-transparent
|
|
22
|
+
outline: "border border-input bg-transparent",
|
|
23
23
|
},
|
|
24
24
|
size: {
|
|
25
25
|
default: "h-10 px-3",
|
|
@@ -165,7 +165,7 @@ const Video = React.forwardRef((_a, ref) => {
|
|
|
165
165
|
};
|
|
166
166
|
return (_jsxs("div", Object.assign({ className: "relative w-full" }, { children: [_jsx("video", Object.assign({ ref: videoRef, className: cn(videoVariants.base, videoAttributes.videoFit === "fill"
|
|
167
167
|
? videoVariants.fit.cover
|
|
168
|
-
: videoVariants.fit.contain, className), style: videoStyle, preload: "metadata", playsInline: true, loop: videoAttributes.enabled, controls: false, src: src }, props)), isLoaded && !isPlaying && (_jsx("button", Object.assign({ onClick: handlePlayPause, className: "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 z-50\n w-16 h-16 rounded-full bg-black/75
|
|
168
|
+
: videoVariants.fit.contain, className), style: videoStyle, preload: "metadata", playsInline: true, loop: videoAttributes.enabled, controls: false, src: src }, props)), isLoaded && !isPlaying && (_jsx("button", Object.assign({ onClick: handlePlayPause, className: "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 z-50\n w-16 h-16 rounded-full bg-black/75 \n flex items-center justify-center transition-all duration-300\n focus:outline-none focus:ring-2 focus:ring-white", "aria-label": "Play video" }, { children: _jsx("div", { className: "w-0 h-0 border-y-8 border-y-transparent \n border-l-[16px] border-l-white \n translate-x-[2px]" }) })))] })));
|
|
169
169
|
});
|
|
170
170
|
Video.displayName = "Video";
|
|
171
171
|
export { Video as VideoEnhanced };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"virtual-grid.d.ts","sourceRoot":"","sources":["../../../components/ui/virtual-grid.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"virtual-grid.d.ts","sourceRoot":"","sources":["../../../components/ui/virtual-grid.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAMjE,UAAU,QAAQ;IAChB,SAAS,EAAE,GAAG,CAAA;IACd,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,aAAa,EAAE,OAAO,CAAA;IACtB,aAAa,EAAE,OAAO,CAAA;IACtB,UAAU,EAAE,KAAK,CAAC,iBAAiB,CAAA;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,EAAE;QACR,aAAa,EAAE,MAAM,CAAA;QACrB,WAAW,EAAE,MAAM,CAAA;KACpB,CAAA;IACD,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;CAC5B;AAED,QAAA,MAAM,mBAAmB;;mFAYvB,CAAA;AAEF,MAAM,WAAW,gBACf,SAAQ,QAAQ,EACd,YAAY,CAAC,OAAO,mBAAmB,CAAC;CAAG;AAE/C,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,OAAO,EACP,QAAQ,EACR,QAAY,EACZ,eAAqB,EACrB,aAAa,EACb,aAAa,EACb,UAAU,EACV,OAGC,EACD,KAAK,GACN,EAAE,gBAAgB,2CAoElB;AAED,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAA"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
3
|
import * as React from "react";
|
|
3
4
|
import { cva } from "class-variance-authority";
|
|
4
|
-
import {
|
|
5
|
+
import { useVirtualizer } from "@tanstack/react-virtual";
|
|
5
6
|
import { Container } from "./container";
|
|
6
7
|
import { cn } from "../../lib/utils";
|
|
7
8
|
const virtualGridVariants = cva("grid", {
|
|
@@ -27,18 +28,18 @@ function VirtualGrid({ className, columns, children, overscan = 4, estimatedHeig
|
|
|
27
28
|
const childrenArray = React.Children.toArray(children);
|
|
28
29
|
const rowCount = Math.ceil(childrenArray.length / col);
|
|
29
30
|
const totalItems = rowCount;
|
|
30
|
-
const rowVirtualizer =
|
|
31
|
-
|
|
32
|
-
parentRef,
|
|
31
|
+
const rowVirtualizer = useVirtualizer({
|
|
32
|
+
count: totalItems,
|
|
33
|
+
getScrollElement: () => parentRef.current,
|
|
33
34
|
estimateSize: React.useCallback(() => estimatedHeight, []),
|
|
34
35
|
overscan,
|
|
35
36
|
initialRect: { width: 0, height: estimatedHeight },
|
|
36
37
|
});
|
|
37
38
|
return (_jsx(Container, Object.assign({ style: style }, { children: _jsx("div", Object.assign({ style: {
|
|
38
39
|
width: "100%",
|
|
39
|
-
height: rowVirtualizer.
|
|
40
|
+
height: rowVirtualizer.getTotalSize(),
|
|
40
41
|
position: "relative",
|
|
41
|
-
} }, { children: rowVirtualizer.
|
|
42
|
+
} }, { children: rowVirtualizer.getVirtualItems().map((virtualRow) => {
|
|
42
43
|
const rowStartIndex = virtualRow.index * col;
|
|
43
44
|
return (_jsx("div", Object.assign({ className: cn(virtualGridVariants({ columns })), style: {
|
|
44
45
|
position: "absolute",
|
|
@@ -48,7 +49,7 @@ function VirtualGrid({ className, columns, children, overscan = 4, estimatedHeig
|
|
|
48
49
|
transform: `translateY(${virtualRow.start}px)`,
|
|
49
50
|
columnGap: `${spacing === null || spacing === void 0 ? void 0 : spacing.horizontalGap}px`,
|
|
50
51
|
paddingBottom: `${spacing === null || spacing === void 0 ? void 0 : spacing.verticalGap}px`,
|
|
51
|
-
}
|
|
52
|
+
} }, { children: Array.from({ length: col }).map((_, colIndex) => {
|
|
52
53
|
const index = rowStartIndex + colIndex;
|
|
53
54
|
if (index >= childrenArray.length && !isReachingEnd)
|
|
54
55
|
return (_jsx("div", { children: _jsx(LoaderItem, {}) }, index));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wishlist-select.d.ts","sourceRoot":"","sources":["../../../components/ui/wishlist-select.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAE/C,UAAU,WAAW,CAAC,CAAC;IACrB,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC;QAC3B,KAAK,EAAE,CAAC,CAAA;QACR,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;QACrB,SAAS,CAAC,EAAE,OAAO,CAAA;QACnB,UAAU,CAAC,EAAE,OAAO,CAAA;QACpB,YAAY,EAAE,YAAY,CAAA;QAC1B,QAAQ,EAAE,CAAC,EACT,SAAS,EACT,YAAY,GACb,EAAE;YACD,SAAS,EAAE,OAAO,CAAA;YAClB,YAAY,EAAE,YAAY,CAAA;SAC3B,KAAK,KAAK,CAAC,SAAS,CAAA;KACtB,CAAC,EAAE,CAAA;IACJ,YAAY,CAAC,EAAE,CAAC,CAAA;IAChB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAA;IAC7B,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAA;IACxC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;IACxB,YAAY,EAAE,YAAY,CAAA;CAC3B;AAED,QAAA,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"wishlist-select.d.ts","sourceRoot":"","sources":["../../../components/ui/wishlist-select.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAE/C,UAAU,WAAW,CAAC,CAAC;IACrB,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC;QAC3B,KAAK,EAAE,CAAC,CAAA;QACR,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;QACrB,SAAS,CAAC,EAAE,OAAO,CAAA;QACnB,UAAU,CAAC,EAAE,OAAO,CAAA;QACpB,YAAY,EAAE,YAAY,CAAA;QAC1B,QAAQ,EAAE,CAAC,EACT,SAAS,EACT,YAAY,GACb,EAAE;YACD,SAAS,EAAE,OAAO,CAAA;YAClB,YAAY,EAAE,YAAY,CAAA;SAC3B,KAAK,KAAK,CAAC,SAAS,CAAA;KACtB,CAAC,EAAE,CAAA;IACJ,YAAY,CAAC,EAAE,CAAC,CAAA;IAChB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAA;IAC7B,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAA;IACxC,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;IACxB,YAAY,EAAE,YAAY,CAAA;CAC3B;AAED,QAAA,MAAM,cAAc,6FA0HnB,CAAA;AAID,UAAU,kBACR,SAAQ,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC;IACrD,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B;AAED,QAAA,MAAM,qBAAqB,8FAkBzB,CAAA;AAGF,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,MAAM,EAAE,OAAO,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,QAAA,MAAM,qBAAqB,2FAkBzB,CAAA;AAGF,UAAU,eACR,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC;IAC9D,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,EACJ,KAAK,CAAC,SAAS,GACf,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,KAAK,KAAK,CAAC,SAAS,CAAC,CAAA;CACjE;AAED,QAAA,MAAM,kBAAkB,wFAmBvB,CAAA;AAGD,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,GACnB,CAAA"}
|
|
@@ -53,7 +53,8 @@ const WishlistSelect = React.forwardRef(({ children, defaultValue, onChange, onO
|
|
|
53
53
|
setIsOpen(false);
|
|
54
54
|
onOpenChange && onOpenChange(false);
|
|
55
55
|
};
|
|
56
|
-
const selectedChild = React.Children.toArray(children).find((child) => React.isValidElement(child) &&
|
|
56
|
+
const selectedChild = React.Children.toArray(children).find((child) => React.isValidElement(child) &&
|
|
57
|
+
child.props.value === selectedValue);
|
|
57
58
|
return (_jsxs("div", Object.assign({ className: "relative", ref: ref }, { children: [_jsxs(WishlistSelectTrigger, Object.assign({ ref: triggerRef, onClick: handleToggle }, { children: [_jsx(WishlistSelectItem, Object.assign({ isTrigger: true }, { children: selectedChild ? (selectedChild.props.children({ isTrigger: true, translations })) : (_jsx(Wishlist, { name: translations["wishlist-multiple-create-text-field-placeholder"], isTrigger: true, translations: translations })) })), _jsx(ChevronDown, { className: cn("h-4 w-4 opacity-50 mr-4 transition-transform duration-200 ease-in-out", isOpen && "transform rotate-180") })] })), _jsxs(WishlistSelectContent, Object.assign({ isOpen: isOpen, ref: contentRef }, { children: [React.Children.map(children, (child) => React.isValidElement(child)
|
|
58
59
|
? React.cloneElement(child, {
|
|
59
60
|
onSelect: () => handleSelect(child.props.value),
|
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export * from "./lib/cart.util";
|
|
|
3
3
|
export * from "./components/contexts/translation-context";
|
|
4
4
|
export * from "./components/hooks/use-collection";
|
|
5
5
|
export * from "./components/hooks/use-infinite-scroll";
|
|
6
|
+
export * from "./components/hooks/use-infinite-wishlist";
|
|
6
7
|
export * from "./components/hooks/use-loyalty";
|
|
7
8
|
export * from "./components/hooks/use-recommendations";
|
|
8
9
|
export * from "./components/hooks/use-products";
|
|
@@ -14,6 +15,7 @@ export * from "./components/hooks/use-shop";
|
|
|
14
15
|
export * from "./components/hooks/use-mock-products";
|
|
15
16
|
export * from "./components/hooks/use-block-conditional-rendering";
|
|
16
17
|
export * from "./components/hooks/use-mock-cart";
|
|
18
|
+
export * from "./components/hooks/use-infinite-wishlist";
|
|
17
19
|
export * from "./components/ui/accordion";
|
|
18
20
|
export * from "./components/ui/animate-container";
|
|
19
21
|
export * from "./components/ui/animate-number";
|
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":"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"}
|
package/dist/index.js
CHANGED
|
@@ -4,6 +4,7 @@ export * from "./lib/cart.util";
|
|
|
4
4
|
export * from "./components/contexts/translation-context";
|
|
5
5
|
export * from "./components/hooks/use-collection";
|
|
6
6
|
export * from "./components/hooks/use-infinite-scroll";
|
|
7
|
+
export * from "./components/hooks/use-infinite-wishlist";
|
|
7
8
|
export * from "./components/hooks/use-loyalty";
|
|
8
9
|
export * from "./components/hooks/use-recommendations";
|
|
9
10
|
export * from "./components/hooks/use-products";
|
|
@@ -15,6 +16,7 @@ export * from "./components/hooks/use-shop";
|
|
|
15
16
|
export * from "./components/hooks/use-mock-products";
|
|
16
17
|
export * from "./components/hooks/use-block-conditional-rendering";
|
|
17
18
|
export * from "./components/hooks/use-mock-cart";
|
|
19
|
+
export * from "./components/hooks/use-infinite-wishlist";
|
|
18
20
|
export * from "./components/ui/accordion";
|
|
19
21
|
export * from "./components/ui/animate-container";
|
|
20
22
|
export * from "./components/ui/animate-number";
|
package/dist/lib/utils.d.ts
CHANGED
|
@@ -142,6 +142,7 @@ export type TextStyle = {
|
|
|
142
142
|
type Headline = TextStyle;
|
|
143
143
|
type Subtext = TextStyle;
|
|
144
144
|
export declare const getTextStyle: (textStyle: Headline | Subtext) => {
|
|
145
|
+
fontStyle?: string | undefined;
|
|
145
146
|
fontFamily: string | undefined;
|
|
146
147
|
fontWeight: string | number | undefined;
|
|
147
148
|
fontSize: string | number;
|
|
@@ -300,6 +301,7 @@ export declare const getLoyaltyButtonProps: (buttonConfig: TextStyle & Backgroun
|
|
|
300
301
|
}, state: LoyaltyState) => {
|
|
301
302
|
labelStyle: {
|
|
302
303
|
color: string | undefined;
|
|
304
|
+
fontStyle?: string | undefined;
|
|
303
305
|
fontFamily: string | undefined;
|
|
304
306
|
fontWeight: string | number | undefined;
|
|
305
307
|
fontSize: string | number;
|
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
|
@@ -135,17 +135,12 @@ export const getBackgroundAndSpacingStyle = (backgroundAndSpacing) => {
|
|
|
135
135
|
};
|
|
136
136
|
export const getTextStyle = (textStyle) => {
|
|
137
137
|
const { font, size, color, uppercase, textAlignment, wrapText } = textStyle;
|
|
138
|
-
|
|
139
|
-
|
|
138
|
+
const isItalic = font.family &&
|
|
139
|
+
typeof font.family === "string" &&
|
|
140
|
+
font.family.toLowerCase().includes("italic");
|
|
141
|
+
return Object.assign({ fontFamily: font.family === "initial" || font.family === "SF Pro Text"
|
|
140
142
|
? undefined
|
|
141
|
-
: font.family,
|
|
142
|
-
fontWeight: font.weight === "initial" ? undefined : font.weight,
|
|
143
|
-
fontSize: size,
|
|
144
|
-
color: getColor(color),
|
|
145
|
-
textTransform: uppercase ? "uppercase" : "none",
|
|
146
|
-
textAlign: textAlignment,
|
|
147
|
-
textWrap: wrapText ? "wrap" : "nowrap",
|
|
148
|
-
};
|
|
143
|
+
: font.family, fontWeight: font.weight === "initial" ? undefined : font.weight, fontSize: size, color: getColor(color), textTransform: uppercase ? "uppercase" : "none", textAlign: textAlignment, textWrap: wrapText ? "wrap" : "nowrap" }, (isItalic ? { fontStyle: "italic" } : {}));
|
|
149
144
|
};
|
|
150
145
|
export const getVerticalAlignment = (alignment, padding = { top: 0, bottom: 0 }) => {
|
|
151
146
|
if (alignment === "bottom") {
|
|
@@ -518,19 +513,24 @@ const evaluateSingleCondition = (condition, context) => {
|
|
|
518
513
|
const { type, operator, value } = condition;
|
|
519
514
|
const contextValues = context[type];
|
|
520
515
|
if (!contextValues || !Array.isArray(contextValues)) {
|
|
521
|
-
return
|
|
516
|
+
return true;
|
|
517
|
+
}
|
|
518
|
+
if (type === '' && value === '') {
|
|
519
|
+
return true;
|
|
522
520
|
}
|
|
523
521
|
// Special handling for metafield types
|
|
524
522
|
if (type.toLowerCase().includes("metafield")) {
|
|
525
|
-
if (operator ===
|
|
523
|
+
if (operator === "does not equal" && contextValues.length === 0) {
|
|
526
524
|
return true;
|
|
527
525
|
}
|
|
528
526
|
return contextValues.some((contextMetafield) => {
|
|
529
|
-
return operator ===
|
|
530
|
-
contextMetafield.
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
contextMetafield.
|
|
527
|
+
return operator === "does not equal"
|
|
528
|
+
? contextMetafield.namespace !== value.namespace &&
|
|
529
|
+
contextMetafield.key !== value.key &&
|
|
530
|
+
contextMetafield.value !== value.value
|
|
531
|
+
: contextMetafield.namespace === value.namespace &&
|
|
532
|
+
contextMetafield.key === value.key &&
|
|
533
|
+
contextMetafield.value === value.value;
|
|
534
534
|
});
|
|
535
535
|
}
|
|
536
536
|
// For regular values (like collection names, customer auth, etc)
|
|
@@ -566,7 +566,7 @@ export const evaluateConditions = (group, context) => {
|
|
|
566
566
|
return !results.every(Boolean);
|
|
567
567
|
default:
|
|
568
568
|
console.warn(`Unsupported logic operator: ${logic}`);
|
|
569
|
-
return
|
|
569
|
+
return true;
|
|
570
570
|
}
|
|
571
571
|
};
|
|
572
572
|
export const getLoyaltyButtonProps = (buttonConfig, state) => {
|
package/dist/styles.css
CHANGED
|
@@ -869,6 +869,9 @@ video {
|
|
|
869
869
|
.ml-4 {
|
|
870
870
|
margin-left: 1rem;
|
|
871
871
|
}
|
|
872
|
+
.ml-auto {
|
|
873
|
+
margin-left: auto;
|
|
874
|
+
}
|
|
872
875
|
.mr-2 {
|
|
873
876
|
margin-right: 0.5rem;
|
|
874
877
|
}
|
|
@@ -1324,6 +1327,9 @@ video {
|
|
|
1324
1327
|
.cursor-pointer {
|
|
1325
1328
|
cursor: pointer;
|
|
1326
1329
|
}
|
|
1330
|
+
.cursor-text {
|
|
1331
|
+
cursor: text;
|
|
1332
|
+
}
|
|
1327
1333
|
.touch-none {
|
|
1328
1334
|
touch-action: none;
|
|
1329
1335
|
}
|
|
@@ -2307,9 +2313,6 @@ video {
|
|
|
2307
2313
|
padding-right: 16px;
|
|
2308
2314
|
padding-left: 16px;
|
|
2309
2315
|
}
|
|
2310
|
-
*:hover {
|
|
2311
|
-
text-decoration-line: unset !important;
|
|
2312
|
-
}
|
|
2313
2316
|
.\[-ms-overflow-style\:none\] {
|
|
2314
2317
|
-ms-overflow-style: none;
|
|
2315
2318
|
}
|
|
@@ -2457,64 +2460,6 @@ body::-webkit-scrollbar {
|
|
|
2457
2460
|
border-color: var(--coreColors-brandColorPrimary);
|
|
2458
2461
|
}
|
|
2459
2462
|
|
|
2460
|
-
.hover\:h-\[18px\]:hover {
|
|
2461
|
-
height: 18px;
|
|
2462
|
-
}
|
|
2463
|
-
|
|
2464
|
-
.hover\:w-\[18px\]:hover {
|
|
2465
|
-
width: 18px;
|
|
2466
|
-
}
|
|
2467
|
-
|
|
2468
|
-
.hover\:scale-110:hover {
|
|
2469
|
-
--tw-scale-x: 1.1;
|
|
2470
|
-
--tw-scale-y: 1.1;
|
|
2471
|
-
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
|
2472
|
-
}
|
|
2473
|
-
|
|
2474
|
-
.hover\:bg-accent:hover {
|
|
2475
|
-
background-color: hsl(var(--accent));
|
|
2476
|
-
}
|
|
2477
|
-
|
|
2478
|
-
.hover\:bg-black\/90:hover {
|
|
2479
|
-
background-color: rgb(0 0 0 / 0.9);
|
|
2480
|
-
}
|
|
2481
|
-
|
|
2482
|
-
.hover\:bg-muted:hover {
|
|
2483
|
-
background-color: hsl(var(--muted));
|
|
2484
|
-
}
|
|
2485
|
-
|
|
2486
|
-
.hover\:bg-secondary:hover {
|
|
2487
|
-
background-color: hsl(var(--secondary));
|
|
2488
|
-
}
|
|
2489
|
-
|
|
2490
|
-
.hover\:text-accent-foreground:hover {
|
|
2491
|
-
color: hsl(var(--accent-foreground));
|
|
2492
|
-
}
|
|
2493
|
-
|
|
2494
|
-
.hover\:text-foreground:hover {
|
|
2495
|
-
color: hsl(var(--foreground));
|
|
2496
|
-
}
|
|
2497
|
-
|
|
2498
|
-
.hover\:text-muted-foreground:hover {
|
|
2499
|
-
color: hsl(var(--muted-foreground));
|
|
2500
|
-
}
|
|
2501
|
-
|
|
2502
|
-
.hover\:underline:hover {
|
|
2503
|
-
text-decoration-line: underline;
|
|
2504
|
-
}
|
|
2505
|
-
|
|
2506
|
-
.hover\:\!line-through:hover {
|
|
2507
|
-
text-decoration-line: line-through !important;
|
|
2508
|
-
}
|
|
2509
|
-
|
|
2510
|
-
.hover\:line-through:hover {
|
|
2511
|
-
text-decoration-line: line-through;
|
|
2512
|
-
}
|
|
2513
|
-
|
|
2514
|
-
.hover\:no-underline:hover {
|
|
2515
|
-
text-decoration-line: none;
|
|
2516
|
-
}
|
|
2517
|
-
|
|
2518
2463
|
.focus\:border-coreColors-brandColorPrimary:focus {
|
|
2519
2464
|
border-color: var(--coreColors-brandColorPrimary);
|
|
2520
2465
|
}
|
|
@@ -2640,10 +2585,6 @@ body::-webkit-scrollbar {
|
|
|
2640
2585
|
opacity: 0.7;
|
|
2641
2586
|
}
|
|
2642
2587
|
|
|
2643
|
-
.group:hover .group-hover\:opacity-100 {
|
|
2644
|
-
opacity: 1;
|
|
2645
|
-
}
|
|
2646
|
-
|
|
2647
2588
|
.group:active .group-active\:text-coreColors-brandColorPrimary {
|
|
2648
2589
|
color: var(--coreColors-brandColorPrimary);
|
|
2649
2590
|
}
|
|
@@ -2661,23 +2602,6 @@ body::-webkit-scrollbar {
|
|
|
2661
2602
|
color: rgb(252 165 165 / var(--tw-text-opacity, 1));
|
|
2662
2603
|
}
|
|
2663
2604
|
|
|
2664
|
-
.group.destructive .group-\[\.destructive\]\:hover\:border-destructive\/30:hover {
|
|
2665
|
-
border-color: hsl(var(--destructive) / 0.3);
|
|
2666
|
-
}
|
|
2667
|
-
|
|
2668
|
-
.group.destructive .group-\[\.destructive\]\:hover\:bg-destructive:hover {
|
|
2669
|
-
background-color: hsl(var(--destructive));
|
|
2670
|
-
}
|
|
2671
|
-
|
|
2672
|
-
.group.destructive .group-\[\.destructive\]\:hover\:text-destructive-foreground:hover {
|
|
2673
|
-
color: hsl(var(--destructive-foreground));
|
|
2674
|
-
}
|
|
2675
|
-
|
|
2676
|
-
.group.destructive .group-\[\.destructive\]\:hover\:text-red-50:hover {
|
|
2677
|
-
--tw-text-opacity: 1;
|
|
2678
|
-
color: rgb(254 242 242 / var(--tw-text-opacity, 1));
|
|
2679
|
-
}
|
|
2680
|
-
|
|
2681
2605
|
.group.destructive .group-\[\.destructive\]\:focus\:ring-destructive:focus {
|
|
2682
2606
|
--tw-ring-color: hsl(var(--destructive));
|
|
2683
2607
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tapcart/mobile-components",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.32",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"types": "dist/index.d.ts",
|
|
6
6
|
"style": "dist/styles.css",
|
|
@@ -26,8 +26,8 @@
|
|
|
26
26
|
"test:watch": "jest --watch"
|
|
27
27
|
},
|
|
28
28
|
"peerDependencies": {
|
|
29
|
-
"react": "^
|
|
30
|
-
"react-dom": "^
|
|
29
|
+
"react": "^18.0.0 || ^19.0.0",
|
|
30
|
+
"react-dom": "^18.0.0 || ^19.0.0"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@testing-library/react": "^14.3.1",
|
|
@@ -35,8 +35,8 @@
|
|
|
35
35
|
"@types/jest": "^29.5.14",
|
|
36
36
|
"@types/lodash": "4.17.5",
|
|
37
37
|
"@types/pluralize": "^0.0.33",
|
|
38
|
-
"@types/react": "^
|
|
39
|
-
"@types/react-dom": "^
|
|
38
|
+
"@types/react": "^19.1.2",
|
|
39
|
+
"@types/react-dom": "^19.1.2",
|
|
40
40
|
"app-studio-types": "workspace:*",
|
|
41
41
|
"autoprefixer": "^10.4.14",
|
|
42
42
|
"chokidar-cli": "^3.0.0",
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"@radix-ui/react-alert-dialog": "^1.0.5",
|
|
58
58
|
"@radix-ui/react-aspect-ratio": "^1.0.3",
|
|
59
59
|
"@radix-ui/react-checkbox": "^1.0.4",
|
|
60
|
-
"@radix-ui/react-dialog": "^1.
|
|
60
|
+
"@radix-ui/react-dialog": "^1.1.5",
|
|
61
61
|
"@radix-ui/react-dropdown-menu": "^2.1.1",
|
|
62
62
|
"@radix-ui/react-label": "^2.0.2",
|
|
63
63
|
"@radix-ui/react-radio-group": "^1.1.3",
|
|
@@ -71,6 +71,7 @@
|
|
|
71
71
|
"@radix-ui/react-toggle": "^1.0.3",
|
|
72
72
|
"@radix-ui/react-toggle-group": "^1.0.4",
|
|
73
73
|
"@tabler/icons-react": "^3.2.0",
|
|
74
|
+
"@tanstack/react-virtual": "^3.13.6",
|
|
74
75
|
"@tapcart/webbridge-react": "^1.15.0",
|
|
75
76
|
"apple-pay-button": "^1.1.7",
|
|
76
77
|
"class-variance-authority": "^0.6.0",
|
|
@@ -80,8 +81,9 @@
|
|
|
80
81
|
"embla-carousel-autoplay": "8.5.2",
|
|
81
82
|
"embla-carousel-fade": "8.5.2",
|
|
82
83
|
"embla-carousel-react": "^8.3.0",
|
|
83
|
-
"
|
|
84
|
-
"
|
|
84
|
+
"eslint-config-next": "^15.3.0",
|
|
85
|
+
"lucide-react": "^0.488.0",
|
|
86
|
+
"next": "^15.3.0",
|
|
85
87
|
"next-themes": "^0.2.1",
|
|
86
88
|
"phone": "^3.1.58",
|
|
87
89
|
"pluralize": "^8.0.0",
|
|
@@ -90,7 +92,6 @@
|
|
|
90
92
|
"react-intersection-observer": "^9.10.2",
|
|
91
93
|
"react-svg": "^16.1.34",
|
|
92
94
|
"react-swipeable-list": "^1.10.0",
|
|
93
|
-
"react-virtual": "^2.10.4",
|
|
94
95
|
"swr": "^2.2.5",
|
|
95
96
|
"tailwind-merge": "^1.13.2",
|
|
96
97
|
"tailwindcss-animate": "^1.0.6",
|