@tapcart/mobile-components 0.6.0 → 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/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/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/styles.css +26 -6
- 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
|
+
}
|
|
@@ -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)
|
package/dist/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ export { cn, cva, getColor } from "./lib/utils";
|
|
|
2
2
|
export * from "./components/hooks/use-infinite-scroll";
|
|
3
3
|
export * from "./components/hooks/use-recommendations";
|
|
4
4
|
export * from "./components/hooks/use-products";
|
|
5
|
+
export * from "./components/hooks/use-products";
|
|
5
6
|
export * from "./components/hooks/use-scroll-direction";
|
|
6
7
|
export * from "./components/ui/accordion";
|
|
7
8
|
export * from "./components/ui/aspect-ratio";
|
|
@@ -44,4 +45,5 @@ export * from "./components/ui/toggle";
|
|
|
44
45
|
export * from "./components/ui/use-toast";
|
|
45
46
|
export * from "./components/ui/video";
|
|
46
47
|
export * from "./components/ui/wishlist";
|
|
48
|
+
export * from "./components/hooks/use-product-options";
|
|
47
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,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
|
@@ -3,6 +3,7 @@ export { cn, cva, getColor } from "./lib/utils";
|
|
|
3
3
|
export * from "./components/hooks/use-infinite-scroll";
|
|
4
4
|
export * from "./components/hooks/use-recommendations";
|
|
5
5
|
export * from "./components/hooks/use-products";
|
|
6
|
+
export * from "./components/hooks/use-products";
|
|
6
7
|
export * from "./components/hooks/use-scroll-direction";
|
|
7
8
|
export * from "./components/ui/accordion";
|
|
8
9
|
export * from "./components/ui/aspect-ratio";
|
|
@@ -45,3 +46,4 @@ export * from "./components/ui/toggle";
|
|
|
45
46
|
export * from "./components/ui/use-toast";
|
|
46
47
|
export * from "./components/ui/video";
|
|
47
48
|
export * from "./components/ui/wishlist";
|
|
49
|
+
export * from "./components/hooks/use-product-options";
|
package/dist/styles.css
CHANGED
|
@@ -826,18 +826,12 @@ video {
|
|
|
826
826
|
.ml-4 {
|
|
827
827
|
margin-left: 1rem;
|
|
828
828
|
}
|
|
829
|
-
.ml-auto {
|
|
830
|
-
margin-left: auto;
|
|
831
|
-
}
|
|
832
829
|
.mr-2 {
|
|
833
830
|
margin-right: 0.5rem;
|
|
834
831
|
}
|
|
835
832
|
.mr-4 {
|
|
836
833
|
margin-right: 1rem;
|
|
837
834
|
}
|
|
838
|
-
.mr-auto {
|
|
839
|
-
margin-right: auto;
|
|
840
|
-
}
|
|
841
835
|
.mt-1 {
|
|
842
836
|
margin-top: 0.25rem;
|
|
843
837
|
}
|
|
@@ -1024,6 +1018,9 @@ video {
|
|
|
1024
1018
|
.w-\[40px\] {
|
|
1025
1019
|
width: 40px;
|
|
1026
1020
|
}
|
|
1021
|
+
.w-\[69px\] {
|
|
1022
|
+
width: 69px;
|
|
1023
|
+
}
|
|
1027
1024
|
.w-auto {
|
|
1028
1025
|
width: auto;
|
|
1029
1026
|
}
|
|
@@ -1193,6 +1190,9 @@ video {
|
|
|
1193
1190
|
.items-start {
|
|
1194
1191
|
align-items: flex-start;
|
|
1195
1192
|
}
|
|
1193
|
+
.items-end {
|
|
1194
|
+
align-items: flex-end;
|
|
1195
|
+
}
|
|
1196
1196
|
.items-center {
|
|
1197
1197
|
align-items: center;
|
|
1198
1198
|
}
|
|
@@ -1217,6 +1217,9 @@ video {
|
|
|
1217
1217
|
.gap-2 {
|
|
1218
1218
|
gap: 0.5rem;
|
|
1219
1219
|
}
|
|
1220
|
+
.gap-2\.5 {
|
|
1221
|
+
gap: 0.625rem;
|
|
1222
|
+
}
|
|
1220
1223
|
.gap-4 {
|
|
1221
1224
|
gap: 1rem;
|
|
1222
1225
|
}
|
|
@@ -1371,6 +1374,9 @@ video {
|
|
|
1371
1374
|
.border-t {
|
|
1372
1375
|
border-top-width: 1px;
|
|
1373
1376
|
}
|
|
1377
|
+
.border-t-\[1px\] {
|
|
1378
|
+
border-top-width: 1px;
|
|
1379
|
+
}
|
|
1374
1380
|
.border-none {
|
|
1375
1381
|
border-style: none;
|
|
1376
1382
|
}
|
|
@@ -1534,6 +1540,10 @@ video {
|
|
|
1534
1540
|
padding-left: 0px !important;
|
|
1535
1541
|
padding-right: 0px !important;
|
|
1536
1542
|
}
|
|
1543
|
+
.px-0 {
|
|
1544
|
+
padding-left: 0px;
|
|
1545
|
+
padding-right: 0px;
|
|
1546
|
+
}
|
|
1537
1547
|
.px-1 {
|
|
1538
1548
|
padding-left: 0.25rem;
|
|
1539
1549
|
padding-right: 0.25rem;
|
|
@@ -1600,6 +1610,9 @@ video {
|
|
|
1600
1610
|
.pl-2 {
|
|
1601
1611
|
padding-left: 0.5rem;
|
|
1602
1612
|
}
|
|
1613
|
+
.pl-3 {
|
|
1614
|
+
padding-left: 0.75rem;
|
|
1615
|
+
}
|
|
1603
1616
|
.pl-4 {
|
|
1604
1617
|
padding-left: 1rem;
|
|
1605
1618
|
}
|
|
@@ -1977,6 +1990,13 @@ video {
|
|
|
1977
1990
|
.filter {
|
|
1978
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);
|
|
1979
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
|
+
}
|
|
1980
2000
|
.transition-all {
|
|
1981
2001
|
transition-property: all;
|
|
1982
2002
|
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|