@tapcart/mobile-components 0.5.9 → 0.6.1
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-product-options.d.ts +9 -0
- package/dist/components/hooks/use-product-options.d.ts.map +1 -0
- package/dist/components/hooks/use-product-options.js +44 -0
- package/dist/components/hooks/use-recommendations.d.ts +15 -0
- package/dist/components/hooks/use-recommendations.d.ts.map +1 -0
- package/dist/components/hooks/use-recommendations.js +35 -0
- package/dist/components/ui/icon.d.ts.map +1 -1
- package/dist/components/ui/icon.js +51 -1
- package/dist/components/ui/price.d.ts.map +1 -1
- package/dist/components/ui/price.js +1 -4
- package/dist/components/ui/product-card.d.ts.map +1 -1
- package/dist/components/ui/product-card.js +15 -15
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/styles.css +96 -4
- package/package.json +1 -1
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ProductVariant } from "app-studio-types";
|
|
2
|
+
type SelectedOptions = Record<string, string>;
|
|
3
|
+
export declare function useProductOptions(variants: ProductVariant[] | undefined | null): {
|
|
4
|
+
selectedOptions: SelectedOptions;
|
|
5
|
+
handleSelect: (optionName: string, optionValue: string) => void;
|
|
6
|
+
selectedVariant: ProductVariant | undefined;
|
|
7
|
+
};
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=use-product-options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-product-options.d.ts","sourceRoot":"","sources":["../../../components/hooks/use-product-options.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD,KAAK,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAE7C,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,cAAc,EAAE,GAAG,SAAS,GAAG,IAAI;;+BAyCX,MAAM,eAAe,MAAM,KAAG,IAAI;;EAwBrE"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useState, useEffect, useMemo } from "react";
|
|
3
|
+
export function useProductOptions(variants) {
|
|
4
|
+
const safeVariants = useMemo(() => variants || [], [variants]);
|
|
5
|
+
const getCheapestProductFromVariants = useMemo(() => {
|
|
6
|
+
return () => {
|
|
7
|
+
if (!safeVariants.length)
|
|
8
|
+
return null;
|
|
9
|
+
const availableVariants = safeVariants.filter((variant) => variant.availableForSale);
|
|
10
|
+
const activeVariants = availableVariants.length
|
|
11
|
+
? availableVariants
|
|
12
|
+
: safeVariants;
|
|
13
|
+
return activeVariants.reduce((lowest, current) => {
|
|
14
|
+
return current.price.amount < lowest.price.amount ? current : lowest;
|
|
15
|
+
});
|
|
16
|
+
};
|
|
17
|
+
}, [safeVariants]);
|
|
18
|
+
const initializeSelectedOptions = useMemo(() => {
|
|
19
|
+
return () => {
|
|
20
|
+
const lowestPriceVariant = getCheapestProductFromVariants();
|
|
21
|
+
if (lowestPriceVariant) {
|
|
22
|
+
const selectedOptions = {};
|
|
23
|
+
lowestPriceVariant.selectedOptions.forEach((option) => {
|
|
24
|
+
selectedOptions[option.name] = option.value;
|
|
25
|
+
});
|
|
26
|
+
return selectedOptions;
|
|
27
|
+
}
|
|
28
|
+
return {};
|
|
29
|
+
};
|
|
30
|
+
}, [getCheapestProductFromVariants]);
|
|
31
|
+
const [selectedOptions, setSelectedOptions] = useState(initializeSelectedOptions());
|
|
32
|
+
const handleSelect = (optionName, optionValue) => {
|
|
33
|
+
setSelectedOptions((prevOptions) => (Object.assign(Object.assign({}, prevOptions), { [optionName]: optionValue })));
|
|
34
|
+
};
|
|
35
|
+
useEffect(() => {
|
|
36
|
+
setSelectedOptions(initializeSelectedOptions());
|
|
37
|
+
}, [safeVariants, initializeSelectedOptions]);
|
|
38
|
+
const selectedVariant = useMemo(() => safeVariants.find((v) => v.selectedOptions.every((o) => selectedOptions[o.name] === o.value)), [safeVariants, selectedOptions]);
|
|
39
|
+
return {
|
|
40
|
+
selectedOptions,
|
|
41
|
+
handleSelect,
|
|
42
|
+
selectedVariant,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Collection, Product } from "app-studio-types";
|
|
2
|
+
interface UseRecommendationProps {
|
|
3
|
+
queryVariables: Record<string, any>;
|
|
4
|
+
apiURL: string;
|
|
5
|
+
}
|
|
6
|
+
interface UseRecommendationReturn {
|
|
7
|
+
products: Product[];
|
|
8
|
+
collections: Collection[];
|
|
9
|
+
searches: string[];
|
|
10
|
+
isLoading: boolean;
|
|
11
|
+
error: any;
|
|
12
|
+
}
|
|
13
|
+
declare const useRecommendations: ({ queryVariables, apiURL }: UseRecommendationProps) => UseRecommendationReturn;
|
|
14
|
+
export { useRecommendations };
|
|
15
|
+
//# sourceMappingURL=use-recommendations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-recommendations.d.ts","sourceRoot":"","sources":["../../../components/hooks/use-recommendations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAKtD,UAAU,sBAAsB;IAC9B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACnC,MAAM,EAAE,MAAM,CAAA;CACf;AAED,UAAU,uBAAuB;IAC/B,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,WAAW,EAAE,UAAU,EAAE,CAAA;IACzB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,GAAG,CAAA;CACX;AAOD,QAAA,MAAM,kBAAkB,+BAGrB,sBAAsB,KAAG,uBAsC3B,CAAA;AAED,OAAO,EAAE,kBAAkB,EAAE,CAAA"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useSearchParams } from "next/navigation";
|
|
3
|
+
import useSWR from "swr";
|
|
4
|
+
const constructURL = (apiURL) => {
|
|
5
|
+
const url = new URL(apiURL);
|
|
6
|
+
return url.toString();
|
|
7
|
+
};
|
|
8
|
+
const useRecommendations = ({ queryVariables, apiURL }) => {
|
|
9
|
+
const searchParams = useSearchParams();
|
|
10
|
+
const recommendation = searchParams.get('recommendation');
|
|
11
|
+
const shouldFetch = recommendation && recommendation.trim().length > 0;
|
|
12
|
+
//To remove when pageState data is available to block tempaltes
|
|
13
|
+
const fetcher = (body) => fetch(constructURL(apiURL), {
|
|
14
|
+
method: "POST",
|
|
15
|
+
body: JSON.stringify(body),
|
|
16
|
+
}).then((res) => res.json());
|
|
17
|
+
const { data, error, isLoading } = useSWR(shouldFetch
|
|
18
|
+
? {
|
|
19
|
+
appId: queryVariables.appId,
|
|
20
|
+
query: recommendation,
|
|
21
|
+
language: queryVariables.language,
|
|
22
|
+
}
|
|
23
|
+
: null, fetcher, {
|
|
24
|
+
revalidateOnFocus: false,
|
|
25
|
+
revalidateOnReconnect: false,
|
|
26
|
+
});
|
|
27
|
+
return {
|
|
28
|
+
products: data === null || data === void 0 ? void 0 : data.products,
|
|
29
|
+
collections: data === null || data === void 0 ? void 0 : data.collections,
|
|
30
|
+
searches: data === null || data === void 0 ? void 0 : data.searches,
|
|
31
|
+
isLoading: isLoading,
|
|
32
|
+
error: error
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
export { useRecommendations };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../../components/ui/icon.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAEL,eAAe,
|
|
1
|
+
{"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../../components/ui/icon.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAEL,eAAe,EA6EhB,MAAM,qBAAqB,CAAA;AAI5B,QAAA,MAAM,YAAY;;;mFAgBjB,CAAA;AAwGD,MAAM,WAAW,SACf,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,EACzD,YAAY,CAAC,OAAO,YAAY,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC5B;AA8CD,iBAAS,IAAI,CAAC,EACZ,SAAS,EACT,IAAI,EACJ,IAAW,EACX,KAAK,EACL,SAAS,EACT,WAAW,EACX,GAAG,EACH,GAAG,KAAK,EACT,EAAE,SAAS,2CAgBX;AAED,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,eAAe,EAAE,CAAA"}
|
|
@@ -13,7 +13,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
13
13
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
14
14
|
import { ReactSVG } from "react-svg";
|
|
15
15
|
import { cva } from "class-variance-authority";
|
|
16
|
-
import { IconUpload, IconPencilMinus, IconPlus, IconMinus, IconAdjustmentsAlt, IconArrowsSort, IconAlertCircle, IconCircleX, IconInfoCircle, IconCheck, IconSquareOff, IconMapPin, IconRepeat, IconSquare, IconSquareCheck, IconChevronUp, IconChevronRight, IconEyeOff, IconSquareX, IconCircle, IconChevronDown, IconHeartFilled, IconCurrencyDollar, IconX, IconCircleOff, IconCircleDotFilled, IconMoodSad, IconSquareXFilled, IconTrash, IconLoader2, IconColumns1, IconColumns2, IconColumns3, IconSearch, IconShoppingCartOff, } from "@tabler/icons-react";
|
|
16
|
+
import { IconUpload, IconPencilMinus, IconPlus, IconMinus, IconAdjustmentsAlt, IconArrowsSort, IconAlertCircle, IconCircleX, IconInfoCircle, IconCheck, IconSquareOff, IconMapPin, IconRepeat, IconSquare, IconSquareCheck, IconChevronUp, IconChevronRight, IconEyeOff, IconSquareX, IconCircle, IconChevronDown, IconHeartFilled, IconCurrencyDollar, IconX, IconCircleOff, IconCircleDotFilled, IconMoodSad, IconSquareXFilled, IconTrash, IconLoader2, IconColumns1, IconColumns2, IconColumns3, IconSearch, IconShoppingCartOff, IconBolt, IconStar, IconUser, IconBell, IconShoppingBag, IconBottle, IconRosetteDiscountCheck, IconAlignLeft, IconCheese, IconBaselineDensityMedium, IconBrandInstagram, IconListSearch, IconMail, IconMessage2, IconShirt, IconLayoutGrid, IconRosetteDiscount, IconShoe, IconTag, IconWorld, IconLifebuoy, IconDots, IconHanger, IconNotes, IconToolsKitchen2, IconPackage, IconBookmark, IconBuildingStore, IconEyeglass2, IconGift, IconLicense, IconMessage, IconSpeakerphone, IconShoppingCart, IconReceipt2, IconFilePencil, IconPhoto, IconAppWindow, IconBoxMultiple, IconMilk, IconDeviceWatch, IconDeviceIpadHeart, IconMap2, } from "@tabler/icons-react";
|
|
17
17
|
import { cn, iconColorVariantClasses } from "../../lib/utils";
|
|
18
18
|
const iconVariants = cva("inline-flex items-center justify-center text-sm font-medium focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none ring-offset-background", {
|
|
19
19
|
variants: {
|
|
@@ -62,7 +62,57 @@ const icons = {
|
|
|
62
62
|
circle: IconCircle,
|
|
63
63
|
"chevron-down": IconChevronDown,
|
|
64
64
|
"heart-filled": IconHeartFilled,
|
|
65
|
+
"menu-icon-about": IconBuildingStore,
|
|
66
|
+
"menu-icon-account": IconUser,
|
|
67
|
+
"menu-icon-alerts": IconBell,
|
|
68
|
+
"menu-icon-bag": IconShoppingBag,
|
|
69
|
+
"menu-icon-blog": IconAppWindow,
|
|
70
|
+
// "menu-icon-banana":
|
|
71
|
+
"menu-icon-bookmark": IconBookmark,
|
|
72
|
+
"menu-icon-beer": IconBottle,
|
|
73
|
+
"menu-icon-cards": IconBoxMultiple,
|
|
74
|
+
"menu-icon-cart": IconShoppingCart,
|
|
75
|
+
"menu-icon-carton": IconMilk,
|
|
76
|
+
"menu-icon-check": IconRosetteDiscountCheck,
|
|
77
|
+
"menu-icon-cheese": IconCheese,
|
|
78
|
+
"menu-icon-contact": IconMessage,
|
|
79
|
+
"menu-icon-delivery": IconPackage,
|
|
80
|
+
// "menu-icon-dresser": ,
|
|
81
|
+
"menu-icon-fork": IconToolsKitchen2,
|
|
82
|
+
"menu-icon-fullhamburger": IconBaselineDensityMedium,
|
|
83
|
+
"menu-icon-glasses": IconEyeglass2,
|
|
84
|
+
"menu-icon-globe": IconWorld,
|
|
85
|
+
"menu-icon-grid": IconLayoutGrid,
|
|
86
|
+
"menu-icon-hanger": IconHanger,
|
|
87
|
+
"menu-icon-hamburger": IconAlignLeft,
|
|
88
|
+
"menu-icon-handcart": IconShoppingBag,
|
|
65
89
|
"menu-icon-heart": IconHeartFilled,
|
|
90
|
+
"menu-icon-info": IconInfoCircle,
|
|
91
|
+
"menu-icon-instagram": IconBrandInstagram,
|
|
92
|
+
"menu-icon-lightning": IconBolt,
|
|
93
|
+
"menu-icon-lookbook": IconDeviceIpadHeart,
|
|
94
|
+
"menu-icon-locator": IconMap2,
|
|
95
|
+
"menu-icon-mail": IconMail,
|
|
96
|
+
"menu-icon-more": IconDots,
|
|
97
|
+
"menu-icon-message": IconMessage2,
|
|
98
|
+
"menu-icon-package": IconGift,
|
|
99
|
+
"menu-icon-page": IconNotes,
|
|
100
|
+
"menu-icon-paper": IconLicense,
|
|
101
|
+
"menu-icon-photos": IconPhoto,
|
|
102
|
+
"menu-icon-sale": IconRosetteDiscount,
|
|
103
|
+
"menu-icon-scroll": IconLicense,
|
|
104
|
+
// "menu-icon-shirt": ,
|
|
105
|
+
// "menu-icon-shorts": ,
|
|
106
|
+
"menu-icon-shoes": IconShoe,
|
|
107
|
+
"menu-icon-speaker": IconSpeakerphone,
|
|
108
|
+
"menu-icon-star": IconStar,
|
|
109
|
+
"menu-icon-search": IconListSearch,
|
|
110
|
+
"menu-icon-support": IconLifebuoy,
|
|
111
|
+
"menu-icon-tag": IconTag,
|
|
112
|
+
"menu-icon-term receipt": IconReceipt2,
|
|
113
|
+
"menu-icon-tshirt": IconShirt,
|
|
114
|
+
"menu-icon-write": IconFilePencil,
|
|
115
|
+
"menu-icon-watch": IconDeviceWatch,
|
|
66
116
|
upload: IconUpload,
|
|
67
117
|
"currency-dollar": IconCurrencyDollar,
|
|
68
118
|
x: IconX,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"price.d.ts","sourceRoot":"","sources":["../../../components/ui/price.tsx"],"names":[],"mappings":"AAIA,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,EAAE,CAAC;CAClD;AAED,iBAAS,KAAK,CAAC,EACb,KAAK,EACL,SAAS,EACT,WAAmB,EACnB,MAAc,EACd,cAAc,EACd,kBAAkB,EAClB,QAAgB,EAChB,MAAgB,EAChB,QAAa,EACb,aAAkB,GACnB,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"price.d.ts","sourceRoot":"","sources":["../../../components/ui/price.tsx"],"names":[],"mappings":"AAIA,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACnC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,EAAE,CAAC;CAClD;AAED,iBAAS,KAAK,CAAC,EACb,KAAK,EACL,SAAS,EACT,WAAmB,EACnB,MAAc,EACd,cAAc,EACd,kBAAkB,EAClB,QAAgB,EAChB,MAAgB,EAChB,QAAa,EACb,aAAkB,GACnB,EAAE,UAAU,2CA6DZ;AAED,OAAO,EAAE,KAAK,EAAE,CAAA"}
|
|
@@ -6,10 +6,7 @@ function Price({ price, priceHigh, priceRanges = false, isSale = false, compareA
|
|
|
6
6
|
const Spacer = () => (_jsx("span", { children: " - " }));
|
|
7
7
|
const ProductPrice = () => {
|
|
8
8
|
const colorClass = isSale ? 'text-textColors-salePriceText' : 'text-textColors-priceText';
|
|
9
|
-
return (
|
|
10
|
-
"ml-auto": textAlignment === 'right',
|
|
11
|
-
"mr-auto": textAlignment === 'center',
|
|
12
|
-
}) }), _jsxs("span", Object.assign({ className: "flex-grow min-w-[fit-content]" }, { children: [_jsx(Money, { price: price, currency: currency, locale: locale }), priceRanges && priceHigh !== undefined && _jsx(Spacer, {}), priceRanges && priceHigh !== undefined && (_jsx(Money, { price: priceHigh, currency: currency, locale: locale }))] }))] })));
|
|
9
|
+
return (_jsx(Text, Object.assign({ className: `${colorClass} flex-shrink-0`, style: { fontSize: `${fontSize}px` } }, { children: _jsxs("span", Object.assign({ className: "flex-grow min-w-[fit-content]" }, { children: [_jsx(Money, { price: price, currency: currency, locale: locale }), priceRanges && priceHigh !== undefined && _jsx(Spacer, {}), priceRanges && priceHigh !== undefined && (_jsx(Money, { price: priceHigh, currency: currency, locale: locale }))] })) })));
|
|
13
10
|
};
|
|
14
11
|
const StrikeThroughPrice = () => {
|
|
15
12
|
if (!isSale || !compareAtPrice)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"product-card.d.ts","sourceRoot":"","sources":["../../../components/ui/product-card.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"product-card.d.ts","sourceRoot":"","sources":["../../../components/ui/product-card.tsx"],"names":[],"mappings":"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"}
|
|
@@ -135,7 +135,7 @@ const productCardFavoriteVariants = cva("absolute ", {
|
|
|
135
135
|
},
|
|
136
136
|
});
|
|
137
137
|
const ProductCard = ({ config, tapcartData, product, isLoading, favorited, onFavoriteClick, onQuickAdd, openProduct, className, }) => {
|
|
138
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23;
|
|
138
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24;
|
|
139
139
|
const { variants, images, title, tags } = product;
|
|
140
140
|
// Select the variant that has the lowest price that is available or just the lowest price if none are available
|
|
141
141
|
let searchVariants = variants.filter((variant) => variant.available);
|
|
@@ -219,32 +219,32 @@ const ProductCard = ({ config, tapcartData, product, isLoading, favorited, onFav
|
|
|
219
219
|
onFavoriteClick === null || onFavoriteClick === void 0 ? void 0 : onFavoriteClick(e, product);
|
|
220
220
|
}, icon: ((_q = (_p = config.favoritesIcon) === null || _p === void 0 ? void 0 : _p.icon) === null || _q === void 0 ? void 0 : _q.type) === "internal"
|
|
221
221
|
? (_s = (_r = config.favoritesIcon) === null || _r === void 0 ? void 0 : _r.icon) === null || _s === void 0 ? void 0 : _s.url
|
|
222
|
-
: undefined, layoutType: (_t = config.favoritesIcon) === null || _t === void 0 ? void 0 : _t.layoutType, showBackground: (_u = config.favoritesIcon) === null || _u === void 0 ? void 0 : _u.showBackground }))] }))), ((
|
|
222
|
+
: undefined, layoutType: (_t = config.favoritesIcon) === null || _t === void 0 ? void 0 : _t.layoutType, showBackground: (_u = config.favoritesIcon) === null || _u === void 0 ? void 0 : _u.showBackground, cornerRadius: (_v = config.favoritesIcon) === null || _v === void 0 ? void 0 : _v.cornerRadius }))] }))), ((_w = config.quickAdd) === null || _w === void 0 ? void 0 : _w.enabled) && (_jsx(Button, Object.assign({ className: "outline-0", style: {
|
|
223
223
|
borderBottomLeftRadius: `${config.quickAdd.cornerRadius}px`,
|
|
224
224
|
borderBottomRightRadius: `${config.quickAdd.cornerRadius}px`,
|
|
225
|
-
}, labelClassName: cn("outline-0 w-full", { uppercase: (
|
|
225
|
+
}, labelClassName: cn("outline-0 w-full", { uppercase: (_x = config.quickAdd) === null || _x === void 0 ? void 0 : _x.uppercase }, { "text-left": ((_y = config.quickAdd) === null || _y === void 0 ? void 0 : _y.textAlignment) === "left" }, { "text-right": ((_z = config.quickAdd) === null || _z === void 0 ? void 0 : _z.textAlignment) === "right" }, { "text-center": ((_0 = config.quickAdd) === null || _0 === void 0 ? void 0 : _0.textAlignment) === "center" }), labelStyle: { fontSize: (_1 = config.quickAdd) === null || _1 === void 0 ? void 0 : _1.fontSize }, variant: "quickadd", size: "default", disabled: product.availableForSale === false, onClick: (e) => {
|
|
226
226
|
e.stopPropagation();
|
|
227
227
|
onQuickAdd === null || onQuickAdd === void 0 ? void 0 : onQuickAdd(e, product);
|
|
228
228
|
} }, { children: _jsxs("div", Object.assign({ className: "flex items-center justify-center gap-2" }, { children: [_jsx(Icon, { name: product.availableForSale ? "plus" : "shopping-cart-off", size: "xs" }), product.availableForSale ? "Quick Add" : "Sold Out"] })) }))), _jsxs("div", Object.assign({ className: "w-full flex-col justify-start items-start gap-0 inline-flex" }, { children: [belowBadge && (_jsx("div", Object.assign({ className: cn("mt-2 w-full flex justify-start", {
|
|
229
229
|
"justify-end": belowBadge.horizontalPosition === "end",
|
|
230
|
-
}) }, { children: _jsx(Badge, Object.assign({ size: "plp-layout", alignment: belowBadge.horizontalPosition, icon: belowBadge.image, className: cn("truncate", { rounded: belowBadge.cornerRadius === "rounded" }, { "rounded-none": belowBadge.cornerRadius === "square" }) }, { children: belowBadge.text })) }))), ((
|
|
231
|
-
"text-left": ((
|
|
230
|
+
}) }, { children: _jsx(Badge, Object.assign({ size: "plp-layout", alignment: belowBadge.horizontalPosition, icon: belowBadge.image, className: cn("truncate", { rounded: belowBadge.cornerRadius === "rounded" }, { "rounded-none": belowBadge.cornerRadius === "square" }) }, { children: belowBadge.text })) }))), ((_2 = config.productTitle) === null || _2 === void 0 ? void 0 : _2.enabled) && (_jsx("div", Object.assign({ className: "mt-2 w-full" }, { children: _jsx(Text, Object.assign({ type: "body-secondary", className: cn({ uppercase: (_3 = config.productTitle) === null || _3 === void 0 ? void 0 : _3.uppercase }, {
|
|
231
|
+
"text-left": ((_4 = config.productTitle) === null || _4 === void 0 ? void 0 : _4.textAlignment) === "left",
|
|
232
232
|
}, {
|
|
233
|
-
"text-right": ((
|
|
233
|
+
"text-right": ((_5 = config.productTitle) === null || _5 === void 0 ? void 0 : _5.textAlignment) === "right",
|
|
234
234
|
}, {
|
|
235
|
-
"text-center": ((
|
|
235
|
+
"text-center": ((_6 = config.productTitle) === null || _6 === void 0 ? void 0 : _6.textAlignment) === "center",
|
|
236
236
|
}, {
|
|
237
|
-
"line-clamp-2": (
|
|
238
|
-
"line-clamp-1": !((
|
|
239
|
-
}, "text-textColors-productTitle"), style: { fontSize: (
|
|
237
|
+
"line-clamp-2": (_7 = config.productTitle) === null || _7 === void 0 ? void 0 : _7.wrapText,
|
|
238
|
+
"line-clamp-1": !((_8 = config.productTitle) === null || _8 === void 0 ? void 0 : _8.wrapText),
|
|
239
|
+
}, "text-textColors-productTitle"), style: { fontSize: (_9 = config.productTitle) === null || _9 === void 0 ? void 0 : _9.fontSize } }, { children: title })) }))), _jsxs("div", Object.assign({ className: cn("flex flex-row w-full gap-2 mt-1 justify-end items-center", { "justify-start": ((_10 = config.price) === null || _10 === void 0 ? void 0 : _10.textAlignment) === "left" }, { "justify-end": ((_11 = config.price) === null || _11 === void 0 ? void 0 : _11.textAlignment) === "right" }, { "justify-center": ((_12 = config.price) === null || _12 === void 0 ? void 0 : _12.textAlignment) === "center" }) }, { children: [((_13 = config.price) === null || _13 === void 0 ? void 0 : _13.enabled) && (_jsx(Price, { price: parseFloat(variant.price.amount), isSale: !!variant.compareAtPrice &&
|
|
240
240
|
variant.compareAtPrice &&
|
|
241
|
-
parseFloat((
|
|
241
|
+
parseFloat((_14 = variant.compareAtPrice) === null || _14 === void 0 ? void 0 : _14.amount) >
|
|
242
242
|
parseFloat(variant.price.amount), compareAtPrice: variant.compareAtPrice &&
|
|
243
|
-
parseFloat((
|
|
243
|
+
parseFloat((_15 = variant.compareAtPrice) === null || _15 === void 0 ? void 0 : _15.amount), currency: tapcartData.currency.code, locale: tapcartData.currency.locale, fontSize: (_16 = config.price) === null || _16 === void 0 ? void 0 : _16.fontSize })), ((_17 = config.favoritesIcon) === null || _17 === void 0 ? void 0 : _17.enabled) &&
|
|
244
244
|
config.favoritesIcon.layoutType === "below-image-on-right" && (_jsx("div", Object.assign({ className: "w-8 h-8 flex items-center justify-center" }, { children: _jsx(Favorite, { selected: favorited, onClick: (e) => {
|
|
245
245
|
onFavoriteClick === null || onFavoriteClick === void 0 ? void 0 : onFavoriteClick(e, product);
|
|
246
|
-
}, size: "small", icon: ((
|
|
247
|
-
? (
|
|
248
|
-
: undefined, cornerRadius: (
|
|
246
|
+
}, size: "small", icon: ((_19 = (_18 = config.favoritesIcon) === null || _18 === void 0 ? void 0 : _18.icon) === null || _19 === void 0 ? void 0 : _19.type) === "internal"
|
|
247
|
+
? (_21 = (_20 = config.favoritesIcon) === null || _20 === void 0 ? void 0 : _20.icon) === null || _21 === void 0 ? void 0 : _21.url
|
|
248
|
+
: undefined, cornerRadius: (_22 = config.favoritesIcon) === null || _22 === void 0 ? void 0 : _22.cornerRadius, layoutType: (_23 = config.favoritesIcon) === null || _23 === void 0 ? void 0 : _23.layoutType, showBackground: (_24 = config.favoritesIcon) === null || _24 === void 0 ? void 0 : _24.showBackground }) })))] }))] }))] })) })));
|
|
249
249
|
};
|
|
250
250
|
export { ProductCard };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export { cn, cva, getColor } from "./lib/utils";
|
|
2
2
|
export * from "./components/hooks/use-infinite-scroll";
|
|
3
|
+
export * from "./components/hooks/use-recommendations";
|
|
4
|
+
export * from "./components/hooks/use-products";
|
|
3
5
|
export * from "./components/hooks/use-products";
|
|
4
6
|
export * from "./components/hooks/use-scroll-direction";
|
|
5
7
|
export * from "./components/ui/accordion";
|
|
@@ -43,4 +45,5 @@ export * from "./components/ui/toggle";
|
|
|
43
45
|
export * from "./components/ui/use-toast";
|
|
44
46
|
export * from "./components/ui/video";
|
|
45
47
|
export * from "./components/ui/wishlist";
|
|
48
|
+
export * from "./components/hooks/use-product-options";
|
|
46
49
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC/C,cAAc,wCAAwC,CAAA;AACtD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,yCAAyC,CAAA;AACvD,cAAc,2BAA2B,CAAA;AACzC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,2BAA2B,CAAA;AACzC,cAAc,wBAAwB,CAAA;AACtC,cAAc,0BAA0B,CAAA;AACxC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,uBAAuB,CAAA;AACrC,cAAc,sCAAsC,CAAA;AACpD,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA;AACtC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,wBAAwB,CAAA;AACtC,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC/C,cAAc,wCAAwC,CAAA;AACtD,cAAc,wCAAwC,CAAA;AACtD,cAAc,iCAAiC,CAAA;AAC/C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,yCAAyC,CAAA;AACvD,cAAc,2BAA2B,CAAA;AACzC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,uBAAuB,CAAA;AACrC,cAAc,wBAAwB,CAAA;AACtC,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,2BAA2B,CAAA;AACzC,cAAc,wBAAwB,CAAA;AACtC,cAAc,0BAA0B,CAAA;AACxC,cAAc,+BAA+B,CAAA;AAC7C,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,uBAAuB,CAAA;AACrC,cAAc,sCAAsC,CAAA;AACpD,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA;AACrC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,iCAAiC,CAAA;AAC/C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA;AACzC,cAAc,2BAA2B,CAAA;AACzC,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA;AACtC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,wBAAwB,CAAA;AACtC,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,yBAAyB,CAAA;AACvC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,wBAAwB,CAAA;AACtC,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,wCAAwC,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
// component exports
|
|
2
2
|
export { cn, cva, getColor } from "./lib/utils";
|
|
3
3
|
export * from "./components/hooks/use-infinite-scroll";
|
|
4
|
+
export * from "./components/hooks/use-recommendations";
|
|
5
|
+
export * from "./components/hooks/use-products";
|
|
4
6
|
export * from "./components/hooks/use-products";
|
|
5
7
|
export * from "./components/hooks/use-scroll-direction";
|
|
6
8
|
export * from "./components/ui/accordion";
|
|
@@ -44,3 +46,4 @@ export * from "./components/ui/toggle";
|
|
|
44
46
|
export * from "./components/ui/use-toast";
|
|
45
47
|
export * from "./components/ui/video";
|
|
46
48
|
export * from "./components/ui/wishlist";
|
|
49
|
+
export * from "./components/hooks/use-product-options";
|
package/dist/styles.css
CHANGED
|
@@ -701,6 +701,9 @@ video {
|
|
|
701
701
|
.bottom-2 {
|
|
702
702
|
bottom: 0.5rem;
|
|
703
703
|
}
|
|
704
|
+
.bottom-6 {
|
|
705
|
+
bottom: 1.5rem;
|
|
706
|
+
}
|
|
704
707
|
.bottom-\[18px\] {
|
|
705
708
|
bottom: 18px;
|
|
706
709
|
}
|
|
@@ -719,6 +722,9 @@ video {
|
|
|
719
722
|
.left-2 {
|
|
720
723
|
left: 0.5rem;
|
|
721
724
|
}
|
|
725
|
+
.left-6 {
|
|
726
|
+
left: 1.5rem;
|
|
727
|
+
}
|
|
722
728
|
.left-\[50\%\] {
|
|
723
729
|
left: 50%;
|
|
724
730
|
}
|
|
@@ -770,6 +776,9 @@ video {
|
|
|
770
776
|
.row-start-1 {
|
|
771
777
|
grid-row-start: 1;
|
|
772
778
|
}
|
|
779
|
+
.m-2 {
|
|
780
|
+
margin: 0.5rem;
|
|
781
|
+
}
|
|
773
782
|
.mx-1 {
|
|
774
783
|
margin-left: 0.25rem;
|
|
775
784
|
margin-right: 0.25rem;
|
|
@@ -814,14 +823,14 @@ video {
|
|
|
814
823
|
.ml-2 {
|
|
815
824
|
margin-left: 0.5rem;
|
|
816
825
|
}
|
|
817
|
-
.ml-
|
|
818
|
-
margin-left:
|
|
826
|
+
.ml-4 {
|
|
827
|
+
margin-left: 1rem;
|
|
819
828
|
}
|
|
820
829
|
.mr-2 {
|
|
821
830
|
margin-right: 0.5rem;
|
|
822
831
|
}
|
|
823
|
-
.mr-
|
|
824
|
-
margin-right:
|
|
832
|
+
.mr-4 {
|
|
833
|
+
margin-right: 1rem;
|
|
825
834
|
}
|
|
826
835
|
.mt-1 {
|
|
827
836
|
margin-top: 0.25rem;
|
|
@@ -922,6 +931,9 @@ video {
|
|
|
922
931
|
.h-\[1px\] {
|
|
923
932
|
height: 1px;
|
|
924
933
|
}
|
|
934
|
+
.h-\[200px\] {
|
|
935
|
+
height: 200px;
|
|
936
|
+
}
|
|
925
937
|
.h-\[22px\] {
|
|
926
938
|
height: 22px;
|
|
927
939
|
}
|
|
@@ -1000,9 +1012,15 @@ video {
|
|
|
1000
1012
|
.w-\[22px\] {
|
|
1001
1013
|
width: 22px;
|
|
1002
1014
|
}
|
|
1015
|
+
.w-\[327px\] {
|
|
1016
|
+
width: 327px;
|
|
1017
|
+
}
|
|
1003
1018
|
.w-\[40px\] {
|
|
1004
1019
|
width: 40px;
|
|
1005
1020
|
}
|
|
1021
|
+
.w-\[69px\] {
|
|
1022
|
+
width: 69px;
|
|
1023
|
+
}
|
|
1006
1024
|
.w-auto {
|
|
1007
1025
|
width: auto;
|
|
1008
1026
|
}
|
|
@@ -1016,6 +1034,9 @@ video {
|
|
|
1016
1034
|
.min-w-0 {
|
|
1017
1035
|
min-width: 0px;
|
|
1018
1036
|
}
|
|
1037
|
+
.min-w-\[148px\] {
|
|
1038
|
+
min-width: 148px;
|
|
1039
|
+
}
|
|
1019
1040
|
.min-w-\[8rem\] {
|
|
1020
1041
|
min-width: 8rem;
|
|
1021
1042
|
}
|
|
@@ -1169,6 +1190,9 @@ video {
|
|
|
1169
1190
|
.items-start {
|
|
1170
1191
|
align-items: flex-start;
|
|
1171
1192
|
}
|
|
1193
|
+
.items-end {
|
|
1194
|
+
align-items: flex-end;
|
|
1195
|
+
}
|
|
1172
1196
|
.items-center {
|
|
1173
1197
|
align-items: center;
|
|
1174
1198
|
}
|
|
@@ -1193,9 +1217,15 @@ video {
|
|
|
1193
1217
|
.gap-2 {
|
|
1194
1218
|
gap: 0.5rem;
|
|
1195
1219
|
}
|
|
1220
|
+
.gap-2\.5 {
|
|
1221
|
+
gap: 0.625rem;
|
|
1222
|
+
}
|
|
1196
1223
|
.gap-4 {
|
|
1197
1224
|
gap: 1rem;
|
|
1198
1225
|
}
|
|
1226
|
+
.gap-\[7px\] {
|
|
1227
|
+
gap: 7px;
|
|
1228
|
+
}
|
|
1199
1229
|
.gap-x-2 {
|
|
1200
1230
|
-moz-column-gap: 0.5rem;
|
|
1201
1231
|
column-gap: 0.5rem;
|
|
@@ -1215,6 +1245,11 @@ video {
|
|
|
1215
1245
|
margin-right: calc(0.25rem * var(--tw-space-x-reverse));
|
|
1216
1246
|
margin-left: calc(0.25rem * calc(1 - var(--tw-space-x-reverse)));
|
|
1217
1247
|
}
|
|
1248
|
+
.space-x-2 > :not([hidden]) ~ :not([hidden]) {
|
|
1249
|
+
--tw-space-x-reverse: 0;
|
|
1250
|
+
margin-right: calc(0.5rem * var(--tw-space-x-reverse));
|
|
1251
|
+
margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
|
|
1252
|
+
}
|
|
1218
1253
|
.space-x-4 > :not([hidden]) ~ :not([hidden]) {
|
|
1219
1254
|
--tw-space-x-reverse: 0;
|
|
1220
1255
|
margin-right: calc(1rem * var(--tw-space-x-reverse));
|
|
@@ -1339,12 +1374,19 @@ video {
|
|
|
1339
1374
|
.border-t {
|
|
1340
1375
|
border-top-width: 1px;
|
|
1341
1376
|
}
|
|
1377
|
+
.border-t-\[1px\] {
|
|
1378
|
+
border-top-width: 1px;
|
|
1379
|
+
}
|
|
1342
1380
|
.border-none {
|
|
1343
1381
|
border-style: none;
|
|
1344
1382
|
}
|
|
1345
1383
|
.\!border-stateColors-error {
|
|
1346
1384
|
border-color: var(--stateColors-error) !important;
|
|
1347
1385
|
}
|
|
1386
|
+
.border-\[\#E3E3E3\] {
|
|
1387
|
+
--tw-border-opacity: 1;
|
|
1388
|
+
border-color: rgb(227 227 227 / var(--tw-border-opacity));
|
|
1389
|
+
}
|
|
1348
1390
|
.border-black {
|
|
1349
1391
|
--tw-border-opacity: 1;
|
|
1350
1392
|
border-color: rgb(0 0 0 / var(--tw-border-opacity));
|
|
@@ -1418,6 +1460,10 @@ video {
|
|
|
1418
1460
|
.bg-coreColors-pageColor {
|
|
1419
1461
|
background-color: var(--coreColors-pageColor);
|
|
1420
1462
|
}
|
|
1463
|
+
.bg-gray-100 {
|
|
1464
|
+
--tw-bg-opacity: 1;
|
|
1465
|
+
background-color: rgb(243 244 246 / var(--tw-bg-opacity));
|
|
1466
|
+
}
|
|
1421
1467
|
.bg-gray-300 {
|
|
1422
1468
|
--tw-bg-opacity: 1;
|
|
1423
1469
|
background-color: rgb(209 213 219 / var(--tw-bg-opacity));
|
|
@@ -1490,6 +1536,14 @@ video {
|
|
|
1490
1536
|
.p-\[1px\] {
|
|
1491
1537
|
padding: 1px;
|
|
1492
1538
|
}
|
|
1539
|
+
.\!px-0 {
|
|
1540
|
+
padding-left: 0px !important;
|
|
1541
|
+
padding-right: 0px !important;
|
|
1542
|
+
}
|
|
1543
|
+
.px-0 {
|
|
1544
|
+
padding-left: 0px;
|
|
1545
|
+
padding-right: 0px;
|
|
1546
|
+
}
|
|
1493
1547
|
.px-1 {
|
|
1494
1548
|
padding-left: 0.25rem;
|
|
1495
1549
|
padding-right: 0.25rem;
|
|
@@ -1556,6 +1610,9 @@ video {
|
|
|
1556
1610
|
.pl-2 {
|
|
1557
1611
|
padding-left: 0.5rem;
|
|
1558
1612
|
}
|
|
1613
|
+
.pl-3 {
|
|
1614
|
+
padding-left: 0.75rem;
|
|
1615
|
+
}
|
|
1559
1616
|
.pl-4 {
|
|
1560
1617
|
padding-left: 1rem;
|
|
1561
1618
|
}
|
|
@@ -1571,6 +1628,9 @@ video {
|
|
|
1571
1628
|
.pr-4 {
|
|
1572
1629
|
padding-right: 1rem;
|
|
1573
1630
|
}
|
|
1631
|
+
.pr-6 {
|
|
1632
|
+
padding-right: 1.5rem;
|
|
1633
|
+
}
|
|
1574
1634
|
.pt-0 {
|
|
1575
1635
|
padding-top: 0px;
|
|
1576
1636
|
}
|
|
@@ -1630,6 +1690,10 @@ video {
|
|
|
1630
1690
|
.text-\[23px\] {
|
|
1631
1691
|
font-size: 23px;
|
|
1632
1692
|
}
|
|
1693
|
+
.text-base {
|
|
1694
|
+
font-size: 1rem;
|
|
1695
|
+
line-height: 1.5rem;
|
|
1696
|
+
}
|
|
1633
1697
|
.text-lg {
|
|
1634
1698
|
font-size: 1.125rem;
|
|
1635
1699
|
line-height: 1.75rem;
|
|
@@ -1672,6 +1736,9 @@ video {
|
|
|
1672
1736
|
.leading-none {
|
|
1673
1737
|
line-height: 1;
|
|
1674
1738
|
}
|
|
1739
|
+
.leading-tight {
|
|
1740
|
+
line-height: 1.25;
|
|
1741
|
+
}
|
|
1675
1742
|
.text-\[\#727272\] {
|
|
1676
1743
|
--tw-text-opacity: 1;
|
|
1677
1744
|
color: rgb(114 114 114 / var(--tw-text-opacity));
|
|
@@ -1764,6 +1831,10 @@ video {
|
|
|
1764
1831
|
.text-foreground\/50 {
|
|
1765
1832
|
color: hsl(var(--foreground) / 0.5);
|
|
1766
1833
|
}
|
|
1834
|
+
.text-gray-700 {
|
|
1835
|
+
--tw-text-opacity: 1;
|
|
1836
|
+
color: rgb(55 65 81 / var(--tw-text-opacity));
|
|
1837
|
+
}
|
|
1767
1838
|
.text-muted-foreground {
|
|
1768
1839
|
color: hsl(var(--muted-foreground));
|
|
1769
1840
|
}
|
|
@@ -1818,6 +1889,10 @@ video {
|
|
|
1818
1889
|
.text-textColors-strikethroughPriceText {
|
|
1819
1890
|
color: var(--textColors-strikethroughPriceText);
|
|
1820
1891
|
}
|
|
1892
|
+
.text-white {
|
|
1893
|
+
--tw-text-opacity: 1;
|
|
1894
|
+
color: rgb(255 255 255 / var(--tw-text-opacity));
|
|
1895
|
+
}
|
|
1821
1896
|
.line-through {
|
|
1822
1897
|
text-decoration-line: line-through;
|
|
1823
1898
|
}
|
|
@@ -1848,6 +1923,11 @@ video {
|
|
|
1848
1923
|
--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
|
|
1849
1924
|
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
|
|
1850
1925
|
}
|
|
1926
|
+
.shadow-none {
|
|
1927
|
+
--tw-shadow: 0 0 #0000;
|
|
1928
|
+
--tw-shadow-colored: 0 0 #0000;
|
|
1929
|
+
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
|
|
1930
|
+
}
|
|
1851
1931
|
.shadow-primary {
|
|
1852
1932
|
--tw-shadow: calc(var(--buttonColors-primaryShadowEnabled) * 0px) calc(var(--buttonColors-primaryShadowEnabled) * 5px) calc(var(--buttonColors-primaryShadowEnabled) * 25px) calc(var(--buttonColors-primaryShadowEnabled)* 0px) rgb(0, 0, 0, 0.10);;
|
|
1853
1933
|
--tw-shadow-colored: calc(var(--buttonColors-primaryShadowEnabled) * 0px) calc(var(--buttonColors-primaryShadowEnabled) * 5px) calc(var(--buttonColors-primaryShadowEnabled) * 25px) calc(var(--buttonColors-primaryShadowEnabled)* 0px) rgb(0, 0, 0, 0.10);;
|
|
@@ -1910,6 +1990,13 @@ video {
|
|
|
1910
1990
|
.filter {
|
|
1911
1991
|
filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
|
|
1912
1992
|
}
|
|
1993
|
+
.transition {
|
|
1994
|
+
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
|
|
1995
|
+
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
|
|
1996
|
+
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
|
|
1997
|
+
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
|
1998
|
+
transition-duration: 150ms;
|
|
1999
|
+
}
|
|
1913
2000
|
.transition-all {
|
|
1914
2001
|
transition-property: all;
|
|
1915
2002
|
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
|
@@ -2053,6 +2140,11 @@ body::-webkit-scrollbar {
|
|
|
2053
2140
|
border-color: var(--stateColors-error) !important;
|
|
2054
2141
|
}
|
|
2055
2142
|
|
|
2143
|
+
.focus-within\:border-black:focus-within {
|
|
2144
|
+
--tw-border-opacity: 1;
|
|
2145
|
+
border-color: rgb(0 0 0 / var(--tw-border-opacity));
|
|
2146
|
+
}
|
|
2147
|
+
|
|
2056
2148
|
.focus-within\:border-coreColors-brandColorPrimary:focus-within {
|
|
2057
2149
|
border-color: var(--coreColors-brandColorPrimary);
|
|
2058
2150
|
}
|