@tapcart/mobile-components 0.7.96 → 0.7.98

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/dist/components/hooks/use-products.d.ts +5 -0
  2. package/dist/components/hooks/use-products.d.ts.map +1 -1
  3. package/dist/components/hooks/use-products.js +47 -3
  4. package/dist/components/hooks/use-reviews.d.ts +4 -0
  5. package/dist/components/hooks/use-reviews.d.ts.map +1 -1
  6. package/dist/components/hooks/use-reviews.js +8 -0
  7. package/dist/components/libs/cache/AppStudioCache.d.ts +13 -0
  8. package/dist/components/libs/cache/AppStudioCache.d.ts.map +1 -0
  9. package/dist/components/libs/cache/AppStudioCache.js +36 -0
  10. package/dist/components/libs/cache/CartLocalStorage.d.ts +15 -0
  11. package/dist/components/libs/cache/CartLocalStorage.d.ts.map +1 -0
  12. package/dist/components/libs/cache/CartLocalStorage.js +34 -0
  13. package/dist/components/libs/cache/ProductsLocalStorage.d.ts +41 -0
  14. package/dist/components/libs/cache/ProductsLocalStorage.d.ts.map +1 -0
  15. package/dist/components/libs/cache/ProductsLocalStorage.js +105 -0
  16. package/dist/components/libs/cache/index.d.ts +3 -0
  17. package/dist/components/libs/cache/index.d.ts.map +1 -0
  18. package/dist/components/libs/cache/index.js +2 -0
  19. package/dist/components/ui/html.d.ts.map +1 -1
  20. package/dist/components/ui/html.js +2 -1
  21. package/dist/components/ui/image.d.ts.map +1 -1
  22. package/dist/components/ui/image.js +8 -3
  23. package/dist/components/ui/swipeable-list-item.d.ts.map +1 -1
  24. package/dist/components/ui/swipeable-list-item.js +67 -30
  25. package/dist/index.d.ts +1 -0
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +1 -0
  28. package/dist/lib/utils.d.ts.map +1 -1
  29. package/dist/lib/utils.js +2 -2
  30. package/dist/styles.css +30 -0
  31. package/package.json +1 -1
@@ -20,6 +20,11 @@ type UseProductsReturn = {
20
20
  products: Product[];
21
21
  error: any;
22
22
  isLoading: boolean;
23
+ isRefreshing: boolean;
24
+ cacheProduct: (product: Product) => {
25
+ id: string;
26
+ handle: string;
27
+ } | undefined;
23
28
  };
24
29
  export declare function useProducts(props: UseProductsProps | null): UseProductsReturn;
25
30
  export {};
@@ -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;AAI1C,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,EAAE,MAAM,EAAE,CAAA;IACpB,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,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;CACnB,CAAA;AA8BD,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,GAAG,iBAAiB,CA2F7E"}
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;AAM1C,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,EAAE,MAAM,EAAE,CAAA;IACpB,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,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;AAgCD,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI,GAAG,iBAAiB,CAoI7E"}
@@ -1,7 +1,18 @@
1
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
+ };
2
11
  import useSWR from "swr";
3
12
  import { getProductGidsFromIds } from "../../lib/utils";
4
13
  import { useCollection } from "./use-collection";
14
+ import React from "react";
15
+ import ProductsLocalStorage from "../libs/cache/ProductsLocalStorage";
5
16
  const isUseProductsProps = (props) => {
6
17
  return Boolean(props);
7
18
  };
@@ -18,6 +29,7 @@ const formatProductData = ({ data, onlyAvailableProducts = false, }) => {
18
29
  })
19
30
  : products;
20
31
  };
32
+ const productsLocalStorage = new ProductsLocalStorage();
21
33
  export function useProducts(props) {
22
34
  var _a, _b, _c, _d;
23
35
  let url = null;
@@ -31,6 +43,10 @@ export function useProducts(props) {
31
43
  getCollections: shouldMockProducts,
32
44
  limit: 1,
33
45
  });
46
+ const [cachedProducts, setCachedProducts] = React.useState(productsLocalStorage.getCacheItems({
47
+ productIds: props === null || props === void 0 ? void 0 : props.productIds,
48
+ productHandles: props === null || props === void 0 ? void 0 : props.productHandles,
49
+ }));
34
50
  if (isUseProductsProps(props)) {
35
51
  let { baseURL, productIds, productHandles, metafields, collection, queryVariables, } = props;
36
52
  if (shouldMockProducts) {
@@ -70,15 +86,43 @@ export function useProducts(props) {
70
86
  "Content-Type": "application/json",
71
87
  },
72
88
  body: body ? JSON.stringify(body) : undefined,
73
- }).then((res) => res.json());
89
+ }).then((res) => __awaiter(this, void 0, void 0, function* () {
90
+ const data = yield res.json();
91
+ // Check if data is an object with a products property or an array
92
+ const productsArray = Array.isArray(data) ? data : data.products || [];
93
+ const cachedProducts = productsArray.map((product) => {
94
+ productsLocalStorage.setCacheItem(product);
95
+ return product;
96
+ });
97
+ // Return either just the products array or an object with spread contents and overridden products
98
+ return Array.isArray(data)
99
+ ? cachedProducts
100
+ : Object.assign(Object.assign({}, data), { products: cachedProducts });
101
+ }));
74
102
  const fetcher = (props === null || props === void 0 ? void 0 : props.fetcher) || defaultFetcher;
75
103
  const { data, error, isLoading } = useSWR(url ? [url, body] : null, ([url, body]) => fetcher(url, body));
104
+ const cacheProduct = (product) => {
105
+ const cachedProduct = productsLocalStorage.setCacheItem(product);
106
+ return cachedProduct;
107
+ };
108
+ // set local state when when SWR data is updated
109
+ React.useEffect(() => {
110
+ if (!data)
111
+ return;
112
+ // Determine the products array from data
113
+ const productsArray = Array.isArray(data) ? data : data.products || [];
114
+ if (!productsArray.length)
115
+ return;
116
+ setCachedProducts(productsArray);
117
+ }, [data]);
76
118
  return {
77
119
  products: formatProductData({
78
- data,
120
+ data: cachedProducts,
79
121
  onlyAvailableProducts: (props === null || props === void 0 ? void 0 : props.mock) && (props === null || props === void 0 ? void 0 : props.onlyAvailableProducts),
80
122
  }),
81
123
  error,
82
- isLoading,
124
+ isLoading: !cachedProducts.length && isLoading,
125
+ isRefreshing: isLoading,
126
+ cacheProduct,
83
127
  };
84
128
  }
@@ -20,6 +20,10 @@ type UseReviewsReturn = {
20
20
  isLoading: boolean;
21
21
  reviewsMockData?: any;
22
22
  mockStarDistribution?: any;
23
+ mockSummaryData?: {
24
+ averageScore: number;
25
+ totalReviewCount: number;
26
+ };
23
27
  };
24
28
  export declare function useReviews(props: UseReviewsProps | null): UseReviewsReturn;
25
29
  type UseReviewsInfiniteReturn = UseReviewsReturn & {
@@ -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;CAC3B,CAAA;AAmDD,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,GAAG,gBAAgB,CAwE1E;AAED,KAAK,wBAAwB,GAAG,gBAAgB,GAAG;IACjD,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,CAAA;CACrC,CAAA;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,eAAe,GAAG,IAAI,GAC5B,wBAAwB,CAmK1B"}
1
+ {"version":3,"file":"use-reviews.d.ts","sourceRoot":"","sources":["../../../components/hooks/use-reviews.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EACjB,MAAM,kBAAkB,CAAA;AAGzB,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IACvC,QAAQ,EAAE,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAA;IAC3C,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,CAAC,MAAM,CAAC,CAAA;IACjB,MAAM,EAAE,CAAC,MAAM,CAAC,CAAA;IAChB,MAAM,EACF,MAAM,GACN,UAAU,GACV,YAAY,GACZ,MAAM,GACN,QAAQ,GACR,eAAe,CAAA;IACnB,SAAS,EAAE,OAAO,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,KAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,iBAAiB,GAAG,cAAc,GAAG,gBAAgB,GAAG,IAAI,CAAA;IAClE,KAAK,EAAE,GAAG,CAAA;IACV,SAAS,EAAE,OAAO,CAAA;IAClB,eAAe,CAAC,EAAE,GAAG,CAAA;IACrB,oBAAoB,CAAC,EAAE,GAAG,CAAA;IAC1B,eAAe,CAAC,EAAE;QAChB,YAAY,EAAE,MAAM,CAAA;QACpB,gBAAgB,EAAE,MAAM,CAAA;KACzB,CAAA;CACF,CAAA;AAqED,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,GAAG,gBAAgB,CAyE1E;AAED,KAAK,wBAAwB,GAAG,gBAAgB,GAAG;IACjD,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,CAAA;CACrC,CAAA;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,eAAe,GAAG,IAAI,GAC5B,wBAAwB,CAmK1B"}
@@ -48,6 +48,13 @@ const mockStarDistribution = {
48
48
  4: 2,
49
49
  5: 0,
50
50
  };
51
+ const mockTotalScores = Object.entries(mockStarDistribution).reduce((sum, [score, count]) => sum + Number(score) * count, 0);
52
+ const mockTotalCount = Object.values(mockStarDistribution).reduce((sum, count) => sum + count, 0);
53
+ const mockAverageScore = mockTotalCount > 0 ? mockTotalScores / mockTotalCount : 0;
54
+ const mockSummaryData = {
55
+ averageScore: mockAverageScore,
56
+ totalReviewCount: mockTotalCount,
57
+ };
51
58
  export function useReviews(props) {
52
59
  let url = null;
53
60
  if (props) {
@@ -99,6 +106,7 @@ export function useReviews(props) {
99
106
  isLoading: !data && !error,
100
107
  reviewsMockData,
101
108
  mockStarDistribution,
109
+ mockSummaryData,
102
110
  };
103
111
  }
104
112
  export function useReviewsInfinite(props) {
@@ -0,0 +1,13 @@
1
+ export default class AppStudioCache {
2
+ adapter: string;
3
+ cachePrefix: string;
4
+ constructor();
5
+ getCache(...args: any[]): void;
6
+ getCacheItem(...args: any[]): void;
7
+ getCacheItems(...args: any[]): void;
8
+ setCacheItem(...args: any[]): void;
9
+ setCacheItems(...args: any[]): void;
10
+ expireCacheData(...args: any[]): void;
11
+ clearCache(...args: any[]): void;
12
+ }
13
+ //# sourceMappingURL=AppStudioCache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppStudioCache.d.ts","sourceRoot":"","sources":["../../../../components/libs/cache/AppStudioCache.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,OAAO,cAAc;IACjC,OAAO,EAAE,MAAM,CAAU;IACzB,WAAW,EAAE,MAAM,CAAU;;IAO7B,QAAQ,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;IAKvB,YAAY,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;IAK3B,aAAa,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;IAK5B,YAAY,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;IAK3B,aAAa,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;IAK5B,eAAe,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;IAO9B,UAAU,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE;CAI1B"}
@@ -0,0 +1,36 @@
1
+ export default class AppStudioCache {
2
+ constructor() {
3
+ this.adapter = "unset";
4
+ this.cachePrefix = "unset";
5
+ // instantiate cache storage, noop
6
+ console.log(`Instantiating cache handler:`);
7
+ }
8
+ getCache(...args) {
9
+ // get all cache data
10
+ console.log(`getCache implementation not provided for ${this.adapter}`);
11
+ }
12
+ getCacheItem(...args) {
13
+ // get a single cache item by key
14
+ console.log(`getCacheItem implementation not provided for ${this.adapter}`);
15
+ }
16
+ getCacheItems(...args) {
17
+ // get multiple cache items by key
18
+ console.log(`getCacheItems implementation not provided for ${this.adapter}`);
19
+ }
20
+ setCacheItem(...args) {
21
+ // set a single cache item by key
22
+ console.log(`setCacheItem implementation not provided for ${this.adapter}`);
23
+ }
24
+ setCacheItems(...args) {
25
+ // set multiple cache items
26
+ console.log("setCacheItems implementation not provided");
27
+ }
28
+ expireCacheData(...args) {
29
+ // maintain cache health by deleting old data
30
+ console.log(`expireCacheData implementation not provided for ${this.adapter}`);
31
+ }
32
+ clearCache(...args) {
33
+ // clear all cache data
34
+ console.log(`clearCache implementation not provided for ${this.adapter}`);
35
+ }
36
+ }
@@ -0,0 +1,15 @@
1
+ import AppStudioCache from "./AppStudioCache";
2
+ type CartCache = {
3
+ [key: string]: any;
4
+ };
5
+ export default class CartLocalStorage extends AppStudioCache {
6
+ adapter: string;
7
+ cachePrefix: string;
8
+ getCacheKey(): string;
9
+ constructor();
10
+ getCache(): CartCache | null;
11
+ setCacheItem(cart: CartCache): CartCache | null;
12
+ clearCache(): void;
13
+ }
14
+ export {};
15
+ //# sourceMappingURL=CartLocalStorage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CartLocalStorage.d.ts","sourceRoot":"","sources":["../../../../components/libs/cache/CartLocalStorage.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAE7C,KAAK,SAAS,GAAG;IAEf,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACnB,CAAA;AAED,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,cAAc;IAC1D,OAAO,EAAE,MAAM,CAAuB;IACtC,WAAW,EAAE,MAAM,CAAY;IAE/B,WAAW;;IASX,QAAQ,IAAI,SAAS,GAAG,IAAI;IAa5B,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI;IAM/C,UAAU;CAGX"}
@@ -0,0 +1,34 @@
1
+ import AppStudioCache from "./AppStudioCache";
2
+ export default class CartLocalStorage extends AppStudioCache {
3
+ getCacheKey() {
4
+ return `${this.cachePrefix}`;
5
+ }
6
+ constructor() {
7
+ super();
8
+ this.adapter = "local-storage-cart";
9
+ this.cachePrefix = "as-cart";
10
+ console.log(this.adapter, this.cachePrefix);
11
+ }
12
+ getCache() {
13
+ const value = localStorage.getItem(this.getCacheKey());
14
+ try {
15
+ if (value) {
16
+ const parsedValue = JSON.parse(value);
17
+ return parsedValue;
18
+ }
19
+ }
20
+ catch (error) {
21
+ // ignore invalid JSON error and return null
22
+ }
23
+ return null;
24
+ }
25
+ setCacheItem(cart) {
26
+ if (!cart)
27
+ return this.getCache();
28
+ localStorage.setItem(this.getCacheKey(), JSON.stringify(cart));
29
+ return cart;
30
+ }
31
+ clearCache() {
32
+ localStorage.removeItem(this.getCacheKey());
33
+ }
34
+ }
@@ -0,0 +1,41 @@
1
+ import AppStudioCache from "./AppStudioCache";
2
+ type CachedProduct = {
3
+ id: string;
4
+ handle: string;
5
+ ct: number;
6
+ [key: string]: any;
7
+ };
8
+ export default class ProductsLocalStorage extends AppStudioCache {
9
+ adapter: string;
10
+ cachePrefix: string;
11
+ getIdCacheKey(id: string): string;
12
+ getHandleCacheKey(handle: string): string;
13
+ constructor();
14
+ getCache(): CachedProduct[];
15
+ getCacheItem({ id, handle, }: {
16
+ id?: string;
17
+ handle?: string;
18
+ }): object | null;
19
+ getCacheItems(products: {
20
+ productIds?: string[];
21
+ productHandles?: string[];
22
+ }): (Object | null)[];
23
+ setCacheItem(product: {
24
+ handle: string;
25
+ id: string;
26
+ }, cache?: CachedProduct[], shouldExpire?: boolean): {
27
+ handle: string;
28
+ id: string;
29
+ } | undefined;
30
+ setCacheItems(items: {
31
+ handle: string;
32
+ id: string;
33
+ }[]): ({
34
+ handle: string;
35
+ id: string;
36
+ } | undefined)[];
37
+ expireCacheData(numNewItems?: number): void;
38
+ clearCache(): void;
39
+ }
40
+ export {};
41
+ //# sourceMappingURL=ProductsLocalStorage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProductsLocalStorage.d.ts","sourceRoot":"","sources":["../../../../components/libs/cache/ProductsLocalStorage.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAA;AAE7C,KAAK,aAAa,GAAG;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,EAAE,EAAE,MAAM,CAAA;IACV,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CACnB,CAAA;AAED,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,cAAc;IAC9D,OAAO,EAAE,MAAM,CAA2B;IAC1C,WAAW,EAAE,MAAM,CAAe;IAElC,aAAa,CAAC,EAAE,EAAE,MAAM;IAIxB,iBAAiB,CAAC,MAAM,EAAE,MAAM;;IAShC,QAAQ,IAAI,aAAa,EAAE;IAiB3B,YAAY,CAAC,EACX,EAAE,EACF,MAAM,GACP,EAAE;QACD,EAAE,CAAC,EAAE,MAAM,CAAA;QACX,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,GAAG,MAAM,GAAG,IAAI;IAajB,aAAa,CAAC,QAAQ,EAAE;QACtB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;QACrB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;KAC1B,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE;IASrB,YAAY,CACV,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,EACvC,KAAK,CAAC,EAAE,aAAa,EAAE,EACvB,YAAY,GAAE,OAAc;gBAFT,MAAM;YAAM,MAAM;;IA0CvC,aAAa,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,EAAE;;;;IASrD,eAAe,CAAC,WAAW,GAAE,MAAU;IAWvC,UAAU;CAOX"}
@@ -0,0 +1,105 @@
1
+ import AppStudioCache from "./AppStudioCache";
2
+ export default class ProductsLocalStorage extends AppStudioCache {
3
+ getIdCacheKey(id) {
4
+ return `${this.cachePrefix}-data-${id}`;
5
+ }
6
+ getHandleCacheKey(handle) {
7
+ return `${this.cachePrefix}-handleref-${handle}`;
8
+ }
9
+ constructor() {
10
+ super();
11
+ this.adapter = "local-storage-products";
12
+ this.cachePrefix = "as-product";
13
+ console.log(this.adapter, this.cachePrefix);
14
+ }
15
+ getCache() {
16
+ const items = [];
17
+ for (let i = 0; i < localStorage.length; i++) {
18
+ const key = localStorage.key(i);
19
+ if (key === null || key === void 0 ? void 0 : key.startsWith(this.getIdCacheKey(""))) {
20
+ const value = localStorage.getItem(key);
21
+ if (value) {
22
+ const parsedValue = JSON.parse(value);
23
+ if (parsedValue === null || parsedValue === void 0 ? void 0 : parsedValue.id) {
24
+ items.push(JSON.parse(value));
25
+ }
26
+ }
27
+ }
28
+ }
29
+ return items;
30
+ }
31
+ getCacheItem({ id, handle, }) {
32
+ if (!(id === null || id === void 0 ? void 0 : id.length) && !(handle === null || handle === void 0 ? void 0 : handle.length))
33
+ return null;
34
+ let objectId = id;
35
+ if (handle === null || handle === void 0 ? void 0 : handle.length) {
36
+ objectId = localStorage.getItem(this.getHandleCacheKey(handle));
37
+ }
38
+ if (!(objectId === null || objectId === void 0 ? void 0 : objectId.length))
39
+ return null;
40
+ const item = localStorage.getItem(this.getIdCacheKey(objectId));
41
+ if (!item)
42
+ return null;
43
+ return JSON.parse(item);
44
+ }
45
+ getCacheItems(products) {
46
+ var _a, _b;
47
+ const returnProducts = ((_a = products === null || products === void 0 ? void 0 : products.productIds) === null || _a === void 0 ? void 0 : _a.length)
48
+ ? products.productIds.map((id) => this.getCacheItem({ id }))
49
+ : ((_b = products === null || products === void 0 ? void 0 : products.productHandles) === null || _b === void 0 ? void 0 : _b.length)
50
+ ? products.productHandles.map((handle) => this.getCacheItem({ handle }))
51
+ : [];
52
+ return returnProducts;
53
+ }
54
+ setCacheItem(product, cache, shouldExpire = true) {
55
+ var _a, _b;
56
+ if (!((_a = product.handle) === null || _a === void 0 ? void 0 : _a.length) || !((_b = product.id) === null || _b === void 0 ? void 0 : _b.length))
57
+ return;
58
+ if (shouldExpire) {
59
+ this.expireCacheData();
60
+ }
61
+ const localCache = cache !== null && cache !== void 0 ? cache : this.getCache();
62
+ const cachedProduct = localCache.find((item) => item.id === product.id);
63
+ let productToCache = product;
64
+ if (cachedProduct) {
65
+ // merge products, keeping populated arrays from cached product
66
+ productToCache = Object.entries(product).reduce((merged, [key, value]) => {
67
+ // Keep non-empty arrays from cached product if current product has empty array
68
+ if (Array.isArray(value) &&
69
+ value.length === 0 &&
70
+ Array.isArray(cachedProduct[key]) &&
71
+ cachedProduct[key].length > 0) {
72
+ return Object.assign(Object.assign({}, merged), { [key]: cachedProduct[key] });
73
+ }
74
+ return Object.assign(Object.assign({}, merged), { [key]: value });
75
+ }, cachedProduct);
76
+ }
77
+ localStorage.setItem(this.getIdCacheKey(productToCache.id), JSON.stringify(Object.assign(Object.assign({}, productToCache), { ct: Date.now() })));
78
+ localStorage.setItem(this.getHandleCacheKey(productToCache.handle), productToCache.id);
79
+ return productToCache;
80
+ }
81
+ setCacheItems(items) {
82
+ this.expireCacheData(items.length);
83
+ const cache = this.getCache();
84
+ const cachedItems = items.map((item) => this.setCacheItem(item, cache, false));
85
+ return cachedItems;
86
+ }
87
+ expireCacheData(numNewItems = 0) {
88
+ const cacheItems = this.getCache();
89
+ if (cacheItems.length + numNewItems < 20)
90
+ return;
91
+ const numItemsToDelete = Math.max(10, numNewItems);
92
+ cacheItems.sort((a, b) => a.ct - b.ct);
93
+ cacheItems.slice(0, numItemsToDelete).forEach((item) => {
94
+ localStorage.removeItem(this.getIdCacheKey(item.id));
95
+ localStorage.removeItem(this.getHandleCacheKey(item.handle));
96
+ });
97
+ }
98
+ clearCache() {
99
+ const cacheItems = this.getCache();
100
+ cacheItems.forEach((item) => {
101
+ localStorage.removeItem(this.getIdCacheKey(item.id));
102
+ localStorage.removeItem(this.getHandleCacheKey(item.handle));
103
+ });
104
+ }
105
+ }
@@ -0,0 +1,3 @@
1
+ import CartLocalStorage from "./CartLocalStorage";
2
+ export { CartLocalStorage };
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../components/libs/cache/index.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,MAAM,oBAAoB,CAAA;AAEjD,OAAO,EAAE,gBAAgB,EAAE,CAAA"}
@@ -0,0 +1,2 @@
1
+ import CartLocalStorage from "./CartLocalStorage";
2
+ export { CartLocalStorage };
@@ -1 +1 @@
1
- {"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../../../components/ui/html.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,UAAU,SAAS;IACjB,SAAS,CAAC,EAAE,GAAG,CAAA;IACf,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAC3B,IAAI,EAAE,MAAM,CAAA;CACb;AAED,iBAAS,IAAI,CAAC,EAAE,SAAc,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,SAAS,2CAsBvD;AAED,OAAO,EAAE,IAAI,EAAE,CAAA"}
1
+ {"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../../../components/ui/html.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAI9B,UAAU,SAAS;IACjB,SAAS,CAAC,EAAE,GAAG,CAAA;IACf,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAC3B,IAAI,EAAE,MAAM,CAAA;CACb;AAED,iBAAS,IAAI,CAAC,EAAE,SAAc,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,SAAS,2CAyBvD;AAED,OAAO,EAAE,IAAI,EAAE,CAAA"}
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import DOMPurify from "dompurify";
3
+ import { cn } from "../../lib/utils";
3
4
  function Html({ className = "", style, html }) {
4
5
  // Configure DOMPurify to allow iframes and their common attributes
5
6
  const cleanHtml = DOMPurify.sanitize(html, {
@@ -14,6 +15,6 @@ function Html({ className = "", style, html }) {
14
15
  "height",
15
16
  ],
16
17
  });
17
- return (_jsx("div", { className: className, style: style, dangerouslySetInnerHTML: { __html: cleanHtml } }));
18
+ return (_jsx("div", { className: cn(className, "grid [&>ul]:list-disc [&>ol]:list-decimal [&>ul]:pl-5 [&>ul>li]:py-1 space-y-1 [&>b]:py-2 [&>p]:py-2"), style: style, dangerouslySetInnerHTML: { __html: cleanHtml } }));
18
19
  }
19
20
  export { Html };
@@ -1 +1 @@
1
- {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../../components/ui/image.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../../components/ui/image.tsx"],"names":[],"mappings":"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"}
@@ -149,9 +149,14 @@ export const Image = React.forwardRef((_a, ref) => {
149
149
  const [hasError, setHasError] = React.useState(false);
150
150
  const internalRef = React.useRef(null);
151
151
  React.useEffect(() => {
152
- if (internalRef.current && internalRef.current.complete) {
153
- setIsLoaded(true);
154
- }
152
+ // Run on next tick to ensure state update happens after initial render
153
+ const timeout = setTimeout(() => {
154
+ var _a;
155
+ if ((_a = internalRef.current) === null || _a === void 0 ? void 0 : _a.complete) {
156
+ setIsLoaded(true);
157
+ }
158
+ }, 0);
159
+ return () => clearTimeout(timeout);
155
160
  }, []);
156
161
  const handleImageLoad = () => {
157
162
  setIsLoaded(true);
@@ -1 +1 @@
1
- {"version":3,"file":"swipeable-list-item.d.ts","sourceRoot":"","sources":["../../../components/ui/swipeable-list-item.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAA+B,SAAS,EAAE,MAAM,OAAO,CAAA;AAGrE,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,SAAS,CAAA;IACnB,OAAO,EAAE,WAAW,EAAE,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,QAAA,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAwHvD,CAAA;AAID,OAAO,EAAE,iBAAiB,EAAE,CAAA"}
1
+ {"version":3,"file":"swipeable-list-item.d.ts","sourceRoot":"","sources":["../../../components/ui/swipeable-list-item.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAA+B,SAAS,EAAE,MAAM,OAAO,CAAA;AAGrE,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,SAAS,CAAA;IACnB,OAAO,EAAE,WAAW,EAAE,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,QAAA,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAiKvD,CAAA;AAID,OAAO,EAAE,iBAAiB,EAAE,CAAA"}
@@ -1,10 +1,11 @@
1
1
  "use client";
2
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { useState, useRef, useEffect } from "react";
4
4
  import { useSwipeable } from "react-swipeable";
5
5
  const SwipeableListItem = ({ children, actions = [], actionWidth = 52, threshold = 0.3, }) => {
6
6
  const [offset, setOffset] = useState(0);
7
7
  const [isOpen, setIsOpen] = useState(false);
8
+ const [initialDirection, setInitialDirection] = useState(null);
8
9
  const totalActionsWidth = actionWidth * actions.length;
9
10
  const thresholdPixels = totalActionsWidth * threshold;
10
11
  const itemRef = useRef(null);
@@ -25,56 +26,92 @@ const SwipeableListItem = ({ children, actions = [], actionWidth = 52, threshold
25
26
  document.removeEventListener("mousedown", handleClickOutside);
26
27
  };
27
28
  }, [isOpen]);
29
+ const isHorizontalSwipe = (deltaX, deltaY) => {
30
+ return Math.abs(deltaX) > Math.abs(deltaY) * 1.5;
31
+ };
28
32
  const handlers = useSwipeable({
33
+ onSwipeStart: (event) => {
34
+ if (Math.abs(event.deltaX) > 10 || Math.abs(event.deltaY) > 10) {
35
+ const isHorizontal = isHorizontalSwipe(event.deltaX, event.deltaY);
36
+ setInitialDirection(isHorizontal ? "horizontal" : "vertical");
37
+ if (!isHorizontal && event.event.cancelable) {
38
+ event.event.stopPropagation();
39
+ }
40
+ }
41
+ },
29
42
  onSwiping: (event) => {
30
- let newOffset = 0;
31
- if (event.dir === "Left") {
32
- newOffset = Math.min(event.absX, totalActionsWidth);
43
+ if (initialDirection === "vertical")
44
+ return;
45
+ if (!initialDirection &&
46
+ (Math.abs(event.deltaX) > 10 || Math.abs(event.deltaY) > 10)) {
47
+ const isHorizontal = isHorizontalSwipe(event.deltaX, event.deltaY);
48
+ setInitialDirection(isHorizontal ? "horizontal" : "vertical");
49
+ if (!isHorizontal)
50
+ return;
33
51
  }
34
- else if (event.dir === "Right" && isOpen) {
35
- newOffset = Math.max(totalActionsWidth - event.absX, 0);
52
+ if (initialDirection === "horizontal") {
53
+ let newOffset = 0;
54
+ if (event.event.cancelable) {
55
+ event.event.preventDefault();
56
+ event.event.stopPropagation();
57
+ }
58
+ if (event.dir === "Left") {
59
+ newOffset = Math.min(event.absX, totalActionsWidth);
60
+ }
61
+ else if (event.dir === "Right" && isOpen) {
62
+ newOffset = Math.max(totalActionsWidth - event.absX, 0);
63
+ }
64
+ setOffset(newOffset);
36
65
  }
37
- setOffset(newOffset);
38
66
  },
39
67
  onSwipedLeft: () => {
40
- if (offset > thresholdPixels) {
41
- setIsOpen(true);
42
- setOffset(totalActionsWidth);
68
+ if (initialDirection === "horizontal") {
69
+ if (offset > thresholdPixels) {
70
+ setIsOpen(true);
71
+ setOffset(totalActionsWidth);
72
+ }
73
+ else {
74
+ closeItem();
75
+ }
43
76
  }
44
- else {
77
+ setInitialDirection(null);
78
+ },
79
+ onSwipedRight: () => {
80
+ if (initialDirection === "horizontal") {
45
81
  closeItem();
46
82
  }
83
+ setInitialDirection(null);
84
+ },
85
+ onSwiped: () => {
86
+ setInitialDirection(null);
47
87
  },
48
- onSwipedRight: () => closeItem(),
49
88
  trackMouse: true,
50
89
  trackTouch: true,
51
- delta: 10,
52
- preventScrollOnSwipe: true,
90
+ delta: 5,
91
+ preventScrollOnSwipe: false,
53
92
  rotationAngle: 0,
54
93
  });
55
- return (_jsxs("div", Object.assign({ ref: itemRef, className: "relative overflow-hidden" }, { children: [_jsx("div", Object.assign({}, handlers, { className: "w-full transition-transform duration-200 ease-out", style: {
56
- transform: `translateX(-${offset}px)`,
57
- transition: offset === 0 || offset === totalActionsWidth
58
- ? "transform 0.2s ease-out"
59
- : "none",
60
- }, role: "button", "aria-expanded": isOpen }, { children: children })), _jsx("div", Object.assign({ className: "absolute right-0 top-0 h-full flex", "aria-label": "Action buttons", style: { visibility: offset > 0 ? "visible" : "hidden" } }, { children: actions.map((action, index) => {
61
- const actionStartPosition = index * actionWidth;
62
- const isActionVisible = offset > actionStartPosition;
63
- return (_jsx("div", Object.assign({ className: "h-full flex items-center justify-center overflow-hidden", style: {
94
+ return (_jsxs("div", Object.assign({ ref: itemRef, className: "relative overflow-hidden" }, { children: [_jsx("div", Object.assign({ className: "absolute top-0 right-0 h-full flex", "aria-label": "Action buttons", style: {
95
+ width: `${totalActionsWidth}px`,
96
+ } }, { children: actions.map((action, index) => {
97
+ return (_jsx("div", Object.assign({ className: "h-full flex items-center justify-center", style: {
64
98
  width: `${actionWidth}px`,
65
99
  backgroundColor: action.color || "#e5e5e5",
66
- maxWidth: isActionVisible
67
- ? `${Math.min(offset - actionStartPosition, actionWidth)}px`
68
- : "0px",
69
- opacity: isActionVisible ? 1 : 0,
70
- transition: "max-width 0.1s ease-out, opacity 0.1s ease-out",
71
100
  } }, { children: _jsx("button", Object.assign({ onClick: () => {
72
101
  action.onPress();
73
102
  if (action.closeOnAction !== false) {
74
103
  closeItem();
75
104
  }
76
- }, className: "w-full h-full flex items-center justify-center", style: { minWidth: `${actionWidth}px` } }, { children: action.icon && _jsx(_Fragment, { children: action.icon }) })) }), action.key || index));
77
- }) }))] })));
105
+ }, className: "w-full h-full flex items-center justify-center" }, { children: action.icon && _jsx(_Fragment, { children: action.icon }) })) }), action.key || index));
106
+ }) })), _jsx("div", Object.assign({}, handlers, { className: "w-full transition-transform duration-200 ease-out relative", style: {
107
+ transform: `translateX(-${offset}px)`,
108
+ transition: offset === 0 || offset === totalActionsWidth
109
+ ? "transform 0.2s ease-out"
110
+ : "none",
111
+ zIndex: 10,
112
+ backgroundColor: "inherit",
113
+ touchAction: initialDirection === "horizontal" ? "none" : "auto",
114
+ }, role: "button", "aria-expanded": isOpen }, { children: children }))] })));
78
115
  };
79
116
  SwipeableListItem.displayName = "SwipeableListItem";
80
117
  export { SwipeableListItem };
package/dist/index.d.ts CHANGED
@@ -74,4 +74,5 @@ export * from "./components/libs/sort-filter/search-integration";
74
74
  export * from "./components/ui/tap";
75
75
  export * from "./components/ui/circular-progress";
76
76
  export * from "./components/ui/swipeable-list-item";
77
+ export * from "./components/libs/cache/index";
77
78
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -75,3 +75,4 @@ export * from "./components/libs/sort-filter/search-integration";
75
75
  export * from "./components/ui/tap";
76
76
  export * from "./components/ui/circular-progress";
77
77
  export * from "./components/ui/swipeable-list-item";
78
+ export * from "./components/libs/cache/index";
@@ -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
@@ -518,8 +518,8 @@ const evaluateSingleCondition = (condition, context) => {
518
518
  return false;
519
519
  }
520
520
  // Special handling for metafield types
521
- if (type.toLowerCase().includes('metafield')) {
522
- return contextValues.some(contextMetafield => contextMetafield.namespace === value.namespace &&
521
+ if (type.toLowerCase().includes("metafield")) {
522
+ return contextValues.some((contextMetafield) => contextMetafield.namespace === value.namespace &&
523
523
  contextMetafield.key === value.key &&
524
524
  contextMetafield.value === value.value);
525
525
  }
package/dist/styles.css CHANGED
@@ -977,6 +977,9 @@ video {
977
977
  .h-2\.5 {
978
978
  height: 0.625rem;
979
979
  }
980
+ .h-24 {
981
+ height: 6rem;
982
+ }
980
983
  .h-4 {
981
984
  height: 1rem;
982
985
  }
@@ -2891,6 +2894,11 @@ body::-webkit-scrollbar {
2891
2894
  display: none;
2892
2895
  }
2893
2896
 
2897
+ .\[\&\>b\]\:py-2>b {
2898
+ padding-top: 0.5rem;
2899
+ padding-bottom: 0.5rem;
2900
+ }
2901
+
2894
2902
  .\[\&\>div\>button\]\:border-coreColors-brandColorPrimary>div>button {
2895
2903
  border-color: var(--coreColors-brandColorPrimary);
2896
2904
  }
@@ -2899,6 +2907,15 @@ body::-webkit-scrollbar {
2899
2907
  width: 100%;
2900
2908
  }
2901
2909
 
2910
+ .\[\&\>ol\]\:list-decimal>ol {
2911
+ list-style-type: decimal;
2912
+ }
2913
+
2914
+ .\[\&\>p\]\:py-2>p {
2915
+ padding-top: 0.5rem;
2916
+ padding-bottom: 0.5rem;
2917
+ }
2918
+
2902
2919
  .\[\&\>p\]\:text-stateColors-disabled>p {
2903
2920
  color: var(--stateColors-disabled);
2904
2921
  }
@@ -2922,6 +2939,19 @@ body::-webkit-scrollbar {
2922
2939
  -webkit-line-clamp: 1;
2923
2940
  }
2924
2941
 
2942
+ .\[\&\>ul\>li\]\:py-1>ul>li {
2943
+ padding-top: 0.25rem;
2944
+ padding-bottom: 0.25rem;
2945
+ }
2946
+
2947
+ .\[\&\>ul\]\:list-disc>ul {
2948
+ list-style-type: disc;
2949
+ }
2950
+
2951
+ .\[\&\>ul\]\:pl-5>ul {
2952
+ padding-left: 1.25rem;
2953
+ }
2954
+
2925
2955
  .\[\&\[data-state\=open\]\]\:outline-coreColors-brandColorPrimary[data-state=open] {
2926
2956
  outline-color: var(--coreColors-brandColorPrimary);
2927
2957
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tapcart/mobile-components",
3
- "version": "0.7.96",
3
+ "version": "0.7.98",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "style": "dist/styles.css",