@tapcart/mobile-components 0.5.4 → 0.5.6
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/ThemeProvider.d.ts +3 -0
- package/dist/components/ThemeProvider.d.ts.map +1 -0
- package/dist/components/ThemeProvider.js +18 -0
- package/dist/components/ThemeToggle.d.ts +2 -0
- package/dist/components/ThemeToggle.d.ts.map +1 -0
- package/dist/components/ThemeToggle.js +8 -0
- package/dist/components/hooks/use-products.d.ts +15 -0
- package/dist/components/hooks/use-products.d.ts.map +1 -0
- package/dist/components/hooks/use-products.js +11 -0
- package/dist/components/hooks/use-scroll-direction.js +1 -1
- package/dist/components/ui/Input/input.d.ts +1 -1
- package/dist/components/ui/Input/types.d.ts +2 -2
- package/dist/components/ui/Input/useInput.d.ts +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 +4 -3
- package/dist/components/ui/empty-message.d.ts +4 -1
- package/dist/components/ui/empty-message.d.ts.map +1 -1
- package/dist/components/ui/empty-message.js +1 -2
- package/dist/components/ui/favorite.d.ts +1 -1
- package/dist/components/ui/grid.d.ts +1 -1
- package/dist/components/ui/toast.d.ts +2 -2
- package/dist/index.d.ts +32 -31
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +32 -31
- package/dist/styles.css +192 -643
- package/package.json +1 -1
- package/dist/components/templates/product-card.d.ts +0 -33
- package/dist/components/templates/product-card.d.ts.map +0 -1
- package/dist/components/templates/product-card.js +0 -42
- package/dist/components/templates/product-grid.d.ts +0 -14
- package/dist/components/templates/product-grid.d.ts.map +0 -1
- package/dist/components/templates/product-grid.js +0 -22
package/package.json
CHANGED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
|
-
declare type ProductCardProps = {
|
|
3
|
-
product: {
|
|
4
|
-
variants: {
|
|
5
|
-
compare_at_price: number | undefined;
|
|
6
|
-
price: number;
|
|
7
|
-
}[];
|
|
8
|
-
images: {
|
|
9
|
-
src: string;
|
|
10
|
-
}[];
|
|
11
|
-
title: string;
|
|
12
|
-
tags: string[];
|
|
13
|
-
};
|
|
14
|
-
className: string;
|
|
15
|
-
scaling: "fit" | "fill";
|
|
16
|
-
isQuickAddProductEnabled: boolean;
|
|
17
|
-
isLoading: boolean;
|
|
18
|
-
badge?: {
|
|
19
|
-
text: string;
|
|
20
|
-
variant: "secondary" | "default" | "destructive" | "outline" | null | undefined;
|
|
21
|
-
className?: string;
|
|
22
|
-
position: "topLeft" | "topRight" | "bottomLeft" | "bottomRight";
|
|
23
|
-
};
|
|
24
|
-
icon?: {
|
|
25
|
-
name: string;
|
|
26
|
-
position: "topLeft" | "topRight" | "bottomLeft" | "bottomRight";
|
|
27
|
-
};
|
|
28
|
-
quickAdd: (event: React.MouseEvent<HTMLButtonElement>, product: ProductCardProps["product"]) => void;
|
|
29
|
-
openProduct: (event: React.MouseEvent<HTMLDivElement>, product: ProductCardProps["product"]) => void;
|
|
30
|
-
};
|
|
31
|
-
declare const ProductCard: React.FC<ProductCardProps>;
|
|
32
|
-
export { ProductCard };
|
|
33
|
-
//# sourceMappingURL=product-card.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"product-card.d.ts","sourceRoot":"","sources":["../../../components/templates/product-card.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,aAAK,gBAAgB,GAAG;IACtB,OAAO,EAAE;QACP,QAAQ,EAAE;YAAE,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;QACnE,MAAM,EAAE;YAAE,GAAG,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;QACzB,KAAK,EAAE,MAAM,CAAA;QACb,IAAI,EAAE,MAAM,EAAE,CAAA;KACf,CAAA;IACD,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,KAAK,GAAG,MAAM,CAAA;IACvB,wBAAwB,EAAE,OAAO,CAAA;IACjC,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EACH,WAAW,GACX,SAAS,GACT,aAAa,GACb,SAAS,GACT,IAAI,GACJ,SAAS,CAAA;QACb,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,QAAQ,EAAE,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,aAAa,CAAA;KAChE,CAAA;IACD,IAAI,CAAC,EAAE;QACL,IAAI,EAAE,MAAM,CAAA;QACZ,QAAQ,EAAE,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,aAAa,CAAA;KAChE,CAAA;IACD,QAAQ,EAAE,CACR,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAC1C,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,KACjC,IAAI,CAAA;IACT,WAAW,EAAE,CACX,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,EACvC,OAAO,EAAE,gBAAgB,CAAC,SAAS,CAAC,KACjC,IAAI,CAAA;CACV,CAAA;AAsBD,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAkF3C,CAAA;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { Badge } from "./badge";
|
|
4
|
-
import { Button } from "./button";
|
|
5
|
-
import { Text } from "./text";
|
|
6
|
-
import { Price } from "./price";
|
|
7
|
-
import { Icon } from "./icon";
|
|
8
|
-
import { Skeleton } from "./skeleton";
|
|
9
|
-
const positionClasses = {
|
|
10
|
-
topLeft: "absolute top-0 left-0 mt-2",
|
|
11
|
-
topRight: "absolute top-0 right-0 mt-2",
|
|
12
|
-
bottomLeft: "absolute bottom-0 left-0 mb-2",
|
|
13
|
-
bottomRight: "absolute bottom-0 right-0 mb-2",
|
|
14
|
-
};
|
|
15
|
-
var BadgeAlignment;
|
|
16
|
-
(function (BadgeAlignment) {
|
|
17
|
-
BadgeAlignment["Left"] = "left";
|
|
18
|
-
BadgeAlignment["Right"] = "right";
|
|
19
|
-
BadgeAlignment["FullWidth"] = "full-width";
|
|
20
|
-
})(BadgeAlignment || (BadgeAlignment = {}));
|
|
21
|
-
const badgeAlignmentClasses = {
|
|
22
|
-
topLeft: BadgeAlignment.Left,
|
|
23
|
-
topRight: BadgeAlignment.Right,
|
|
24
|
-
bottomLeft: BadgeAlignment.Left,
|
|
25
|
-
bottomRight: BadgeAlignment.Right,
|
|
26
|
-
};
|
|
27
|
-
const ProductCard = ({ product, scaling, className, badge, icon, quickAdd, openProduct, isQuickAddProductEnabled, isLoading, }) => {
|
|
28
|
-
const { variants: [variant], images: [{ src }], title, } = product;
|
|
29
|
-
const badgePosition = (badge === null || badge === void 0 ? void 0 : badge.position) || "topRight";
|
|
30
|
-
const iconPosition = (icon === null || icon === void 0 ? void 0 : icon.position) || "bottomRight";
|
|
31
|
-
const scalingClass = scaling === "fit" ? "object-contain" : "object-cover";
|
|
32
|
-
if (isLoading) {
|
|
33
|
-
return (_jsxs("div", Object.assign({ className: "w-1/2" }, { children: [_jsx(Skeleton, { className: "w-full h-64" }, void 0), _jsx(Skeleton, { className: "h-6 w-1/2 mt-2" }, void 0), _jsx(Skeleton, { className: "h-6 w-3/4 mt-2" }, void 0)] }), void 0));
|
|
34
|
-
}
|
|
35
|
-
return (_jsxs("div", Object.assign({ className: "w-1/2" }, { children: [_jsxs("div", Object.assign({ className: "relative" }, { children: [_jsx("img", { className: `w-full h-full ${scalingClass} ${isQuickAddProductEnabled
|
|
36
|
-
? "rounded-t-lg rounded-b-none"
|
|
37
|
-
: "rounded-lg"}`, src: src }, void 0), badge && (_jsx(Badge, Object.assign({ size: "plp-layout", icon: "currency-dollar", className: positionClasses[badgePosition], alignment: badgeAlignmentClasses[badgePosition] }, { children: badge.text }), void 0)), icon && (_jsx(Icon, { name: "HeartFilled", className: positionClasses[iconPosition], color: "stateColors-favorites" }, void 0))] }), void 0), isQuickAddProductEnabled && (_jsx(Button, Object.assign({ variant: "quickadd", size: "sm", onClick: (e) => {
|
|
38
|
-
e.stopPropagation();
|
|
39
|
-
quickAdd(e, product);
|
|
40
|
-
} }, { children: "+ Quick add" }), void 0)), _jsx(Price, { price: variant.price, isSale: !!variant.compare_at_price, compareAtPrice: variant.compare_at_price, currency: "USD", locale: "en-US" }, void 0), _jsx(Text, Object.assign({ className: "text-textColors-productTitle" }, { children: title }), void 0)] }), void 0));
|
|
41
|
-
};
|
|
42
|
-
export { ProductCard };
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
declare type Product = any;
|
|
2
|
-
interface PageData {
|
|
3
|
-
products: Product[];
|
|
4
|
-
cursorBlob?: string;
|
|
5
|
-
}
|
|
6
|
-
interface ProductGridItemsProps {
|
|
7
|
-
initialData: PageData[];
|
|
8
|
-
loadMoreProducts: (params: any) => Promise<PageData>;
|
|
9
|
-
queryVariables: Record<string, any>;
|
|
10
|
-
config: Record<string, any>;
|
|
11
|
-
}
|
|
12
|
-
declare function ProductGrid({ loadMoreProducts, initialData, queryVariables, config, }: ProductGridItemsProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
-
export { ProductGrid };
|
|
14
|
-
//# sourceMappingURL=product-grid.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"product-grid.d.ts","sourceRoot":"","sources":["../../../components/templates/product-grid.tsx"],"names":[],"mappings":"AAkBA,aAAK,OAAO,GAAG,GAAG,CAAA;AAClB,UAAU,QAAQ;IAChB,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,UAAU,qBAAqB;IAC7B,WAAW,EAAE,QAAQ,EAAE,CAAA;IACvB,gBAAgB,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;IACpD,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAC5B;AAED,iBAAS,WAAW,CAAC,EACnB,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,MAAM,GACP,EAAE,qBAAqB,2CAmCvB;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { useInfiniteScroll } from "../hooks/use-infinite-scroll";
|
|
4
|
-
import { ProductCard } from "./product-card";
|
|
5
|
-
const Loader = () => (_jsx("div", Object.assign({ className: "grid-cols-2 lg:grid-cols-3" }, { children: Array(4)
|
|
6
|
-
.fill(0)
|
|
7
|
-
.map((_, index) => (_jsx("div", { className: "aspect-[2/3] animate-pulse bg-neutral-100 dark:bg-neutral-900" }, index))) }), void 0));
|
|
8
|
-
function ProductGrid({ loadMoreProducts, initialData, queryVariables, config, }) {
|
|
9
|
-
const { data, error, isLoadingInitialData, isLoadingMore, isEmpty, isReachingEnd, ref, products, } = useInfiniteScroll({
|
|
10
|
-
initialData,
|
|
11
|
-
loadMoreProducts,
|
|
12
|
-
queryVariables,
|
|
13
|
-
});
|
|
14
|
-
if (error)
|
|
15
|
-
return _jsx("div", { children: "Failed to load data" }, void 0);
|
|
16
|
-
if (isLoadingInitialData)
|
|
17
|
-
return _jsx(Loader, {}, void 0);
|
|
18
|
-
return (_jsxs(_Fragment, { children: [_jsx("div", Object.assign({ className: "grid-cols-2 lg:grid-cols-3" }, { children: products.map((product, i) => (_jsx(ProductCard, {
|
|
19
|
-
// @ts-expect-error
|
|
20
|
-
product: product, config: config, isLoading: false }, product.handle))) }), void 0), isLoadingMore ? _jsx(Loader, {}, void 0) : _jsx("div", { ref: ref }, void 0)] }, void 0));
|
|
21
|
-
}
|
|
22
|
-
export { ProductGrid };
|