pixelize-design-library 2.1.3 → 2.1.5

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.
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import { ProductCardProps } from './ProductCardProps';
3
+ export declare const ProductCard: ({ label, productImage, rating, reviews, tags, options, onAddToCart, bag, description, }: ProductCardProps) => React.JSX.Element;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.ProductCard = void 0;
30
+ var react_1 = __importStar(require("react"));
31
+ var react_2 = require("@chakra-ui/react");
32
+ var ProductTags_1 = __importDefault(require("./ProductTags"));
33
+ var ProductReview_1 = __importDefault(require("./ProductReview"));
34
+ var ProductPrice_1 = __importDefault(require("./ProductPrice"));
35
+ var Button_1 = __importDefault(require("../Button/Button"));
36
+ var ProductLabel_1 = __importDefault(require("./ProductLabel"));
37
+ var ProductCard = function (_a) {
38
+ var label = _a.label, productImage = _a.productImage, rating = _a.rating, reviews = _a.reviews, tags = _a.tags, options = _a.options, onAddToCart = _a.onAddToCart, bag = _a.bag, description = _a.description;
39
+ var _b = (0, react_1.useState)(false), hover = _b[0], setHover = _b[1];
40
+ return (react_1.default.createElement(react_2.Box, { borderWidth: "0.063 rem", borderRadius: "lg", overflow: "hidden", p: 3, w: "16.25rem", position: "relative", bg: "white", boxShadow: "lg" },
41
+ react_1.default.createElement(react_2.Box, { onMouseEnter: function () { return setHover(true); }, onMouseLeave: function () { return setHover(false); }, h: "11.25rem", w: "full", overflow: "hidden" },
42
+ react_1.default.createElement(react_2.Image, { src: hover && productImage.hover ? productImage.hover : productImage.visibile, alt: label, w: "full", h: "full", objectFit: "cover" }),
43
+ bag && (react_1.default.createElement(react_2.Badge, { colorScheme: bag.color || "red", position: "absolute", top: 2, right: 2 }, bag.label))),
44
+ react_1.default.createElement(react_2.VStack, { spacing: 2, align: "start", mt: 3 },
45
+ react_1.default.createElement(ProductLabel_1.default, { label: label, description: description }),
46
+ tags && react_1.default.createElement(ProductTags_1.default, { tags: tags }),
47
+ rating && reviews &&
48
+ react_1.default.createElement(ProductReview_1.default, { rating: rating, reviewCount: reviews }),
49
+ options && react_1.default.createElement(ProductPrice_1.default, { options: options }),
50
+ onAddToCart && react_1.default.createElement(Button_1.default, { colorScheme: "orange", size: "sm", width: "100%", onClick: onAddToCart }, "Add to Cart"))));
51
+ };
52
+ exports.ProductCard = ProductCard;
@@ -0,0 +1,26 @@
1
+ export type ProductCardProps = {
2
+ label: string;
3
+ description?: string;
4
+ productImage: productImage;
5
+ tags?: string[];
6
+ rating?: string | number;
7
+ reviews?: string | number;
8
+ options?: options[];
9
+ onClick?: () => void;
10
+ onAddToCart?: () => void;
11
+ bag?: bag;
12
+ };
13
+ export type options = {
14
+ label: string;
15
+ weight: number;
16
+ price: number;
17
+ offer: number;
18
+ };
19
+ export type bag = {
20
+ label: string;
21
+ color?: string;
22
+ };
23
+ export type productImage = {
24
+ visibile: string;
25
+ hover?: string;
26
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ declare const ProductLabel: ({ label, description }: {
3
+ label: string;
4
+ description?: string | undefined;
5
+ }) => React.JSX.Element;
6
+ export default ProductLabel;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var react_1 = require("@chakra-ui/react");
7
+ var react_2 = __importDefault(require("react"));
8
+ var ProductLabel = function (_a) {
9
+ var label = _a.label, description = _a.description;
10
+ return (react_2.default.createElement(react_1.Box, null,
11
+ react_2.default.createElement(react_1.Text, { fontWeight: "bold" }, label),
12
+ description && react_2.default.createElement(react_1.Text, { fontSize: "xs", fontStyle: "italic" }, description)));
13
+ };
14
+ exports.default = ProductLabel;
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { options } from './ProductCardProps';
3
+ type ProductPriceProps = {
4
+ options: options[];
5
+ };
6
+ declare const ProductPrice: ({ options }: ProductPriceProps) => React.JSX.Element;
7
+ export default ProductPrice;
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ var react_1 = __importStar(require("react"));
27
+ var react_2 = require("@chakra-ui/react");
28
+ var ProductPrice = function (_a) {
29
+ var options = _a.options;
30
+ var _b = (0, react_1.useState)(false), isOpen = _b[0], setIsOpen = _b[1];
31
+ var _c = (0, react_1.useState)(options[0]), selected = _c[0], setSelected = _c[1];
32
+ var _d = (0, react_1.useState)({ top: 0, left: 0, width: 0 }), dropdownPosition = _d[0], setDropdownPosition = _d[1];
33
+ var buttonRef = (0, react_1.useRef)(null);
34
+ var dropdownRef = (0, react_1.useRef)(null);
35
+ var isSingleOption = options.length === 1;
36
+ (0, react_2.useOutsideClick)({
37
+ ref: dropdownRef,
38
+ handler: function () { return setIsOpen(false); },
39
+ });
40
+ var getDiscountedPrice = function (option) {
41
+ return Math.round(option.price - (option.price * option.offer) / 100);
42
+ };
43
+ (0, react_1.useEffect)(function () {
44
+ if (isOpen && buttonRef.current) {
45
+ var rect = buttonRef.current.getBoundingClientRect();
46
+ setDropdownPosition({
47
+ top: rect.bottom + window.scrollY,
48
+ left: rect.left + window.scrollX,
49
+ width: rect.width,
50
+ });
51
+ }
52
+ }, [isOpen]);
53
+ return (react_1.default.createElement(react_1.default.Fragment, null,
54
+ isSingleOption ? (react_1.default.createElement(react_2.Box, { border: "0.063rem solid", borderColor: "orange.300", bg: "#FFFCF5", px: 3, py: 1, rounded: "md", display: "inline-block", w: "100%" },
55
+ react_1.default.createElement(react_2.Text, { fontSize: "sm", fontWeight: "medium" }, options[0].label))) : (react_1.default.createElement(react_2.Box, { ref: buttonRef, onClick: function () { return setIsOpen(!isOpen); }, border: "0.063rem solid", borderColor: "orange.300", bg: "#FFFCF5", px: 3, py: 1, rounded: "md", cursor: "pointer", display: "flex", justifyContent: "space-between", alignItems: "center", w: "100%" },
56
+ react_1.default.createElement(react_2.Text, { fontSize: "sm", fontWeight: "medium" }, selected.label),
57
+ react_1.default.createElement(react_2.Text, { fontSize: "xs", color: "orange.400", transform: isOpen ? 'rotate(180deg)' : 'rotate(0deg)', transition: "transform 0.2s" }, "\u25BE"))),
58
+ !isSingleOption && isOpen && (react_1.default.createElement(react_2.Portal, null,
59
+ react_1.default.createElement(react_2.Box, { ref: dropdownRef, position: "absolute", top: "".concat(dropdownPosition.top, "px"), left: "".concat(dropdownPosition.left, "px"), width: "".concat(dropdownPosition.width, "px"), bg: "white", border: "0.063rem solid", borderColor: "orange.300", shadow: "md", zIndex: 9999 }, options.map(function (option) {
60
+ var discounted = getDiscountedPrice(option);
61
+ var isSelected = selected.weight === option.weight;
62
+ return (react_1.default.createElement(react_2.Box, { key: option.weight, px: 4, h: "2.5rem", cursor: "pointer", bg: isSelected ? 'orange.50' : 'white', _hover: { bg: 'orange.100' }, onClick: function () {
63
+ setSelected(option);
64
+ setIsOpen(false);
65
+ }, display: "flex", alignItems: "center", justifyContent: "space-between" },
66
+ react_1.default.createElement(react_2.Box, null,
67
+ react_1.default.createElement(react_2.Text, { fontSize: "sm", fontWeight: "medium" }, option.label),
68
+ option.offer > 0 && (react_1.default.createElement(react_2.Text, { fontSize: "xs", color: "green.600", fontWeight: "semibold" },
69
+ option.offer,
70
+ "% OFF"))),
71
+ react_1.default.createElement(react_2.Box, { textAlign: "right" },
72
+ react_1.default.createElement(react_2.Text, { fontSize: "sm", fontWeight: "semibold", color: "orange.500" },
73
+ "\u20B9",
74
+ discounted),
75
+ option.offer > 0 && (react_1.default.createElement(react_2.Text, { fontSize: "xs", color: "gray.400", textDecoration: "line-through" },
76
+ "\u20B9",
77
+ option.price))),
78
+ react_1.default.createElement(react_2.Box, { ml: 4, w: "1rem", h: "1rem", minW: "1rem", borderRadius: "full", border: "0.125rem solid", borderColor: isSelected ? 'orange.400' : 'gray.300', display: "flex", alignItems: "center", justifyContent: "center" }, isSelected && (react_1.default.createElement(react_2.Box, { w: "0.5rem", h: "0.5rem", bg: "orange.400", borderRadius: "full" })))));
79
+ })))),
80
+ react_1.default.createElement(react_2.Box, { mt: 2, display: "flex", alignItems: "center", fontSize: "sm", gap: 2 },
81
+ selected.offer > 0 && (react_1.default.createElement(react_2.Text, { color: "gray.400", textDecoration: "line-through" },
82
+ "\u20B9",
83
+ selected.price)),
84
+ react_1.default.createElement(react_2.Text, { color: "orange.500", fontWeight: "semibold" },
85
+ "\u20B9",
86
+ getDiscountedPrice(selected)))));
87
+ };
88
+ exports.default = ProductPrice;
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ type ProductReviewProps = {
3
+ rating: string | number;
4
+ reviewCount: string | number;
5
+ };
6
+ declare const ProductReview: ({ rating, reviewCount }: ProductReviewProps) => React.JSX.Element;
7
+ export default ProductReview;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var react_1 = __importDefault(require("react"));
7
+ var react_2 = require("@chakra-ui/react");
8
+ var lucide_react_1 = require("lucide-react");
9
+ var ProductReview = function (_a) {
10
+ var rating = _a.rating, reviewCount = _a.reviewCount;
11
+ return (react_1.default.createElement(react_2.Flex, { align: "center", gap: 2 },
12
+ react_1.default.createElement(react_2.Flex, { align: "center", gap: "1", bg: "teal.900", color: "white", px: 2, borderRadius: "md", fontSize: "sm", fontWeight: "bold" },
13
+ react_1.default.createElement(react_2.Icon, { as: lucide_react_1.Star, boxSize: 3.5 }),
14
+ react_1.default.createElement(react_2.Text, null, rating)),
15
+ react_1.default.createElement(react_2.Box, { h: "4", w: "0.063rem", bg: "gray.400" }),
16
+ react_1.default.createElement(react_2.Flex, { align: "center", gap: "1" },
17
+ react_1.default.createElement(react_2.Icon, { as: lucide_react_1.BookCheck, boxSize: 3.5 }),
18
+ react_1.default.createElement(react_2.Text, { fontSize: "sm", color: "gray.600" },
19
+ "(",
20
+ reviewCount,
21
+ ")"))));
22
+ };
23
+ exports.default = ProductReview;
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ type ProductTagsProps = {
3
+ tags: string[];
4
+ className?: string;
5
+ };
6
+ declare const ProductTags: ({ tags, className }: ProductTagsProps) => React.JSX.Element;
7
+ export default ProductTags;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var react_1 = __importDefault(require("react"));
7
+ var react_2 = require("@chakra-ui/react");
8
+ var ProductTags = function (_a) {
9
+ var tags = _a.tags, className = _a.className;
10
+ var getRows = function (tags) {
11
+ var count = tags.length;
12
+ if (count === 1)
13
+ return [tags];
14
+ if (count === 2)
15
+ return [tags];
16
+ if (count === 3)
17
+ return [[tags[0]], tags.slice(1)];
18
+ if (count === 4)
19
+ return [tags.slice(0, 2), tags.slice(2, 4)];
20
+ return [];
21
+ };
22
+ return (react_1.default.createElement(react_2.Flex, { direction: "column", gap: "1", className: className, w: "full" }, getRows(tags).map(function (row, rowIndex) { return (react_1.default.createElement(react_2.Flex, { key: rowIndex, gap: "1" }, row.map(function (tag, tagIndex) { return (
23
+ // <></>
24
+ react_1.default.createElement(Tag, { key: tagIndex, fullWidth: row.length === 1 }, tag)); }))); })));
25
+ };
26
+ var Tag = function (_a) {
27
+ var children = _a.children, _b = _a.fullWidth, fullWidth = _b === void 0 ? false : _b;
28
+ return (react_1.default.createElement(react_2.Box, { flex: fullWidth ? '1' : '1', border: "0.063rem solid #f89f24", color: "black", fontSize: "0.625rem", fontWeight: "semibold", borderRadius: "full", px: "0.5rem", py: "0.125rem", textAlign: "center", whiteSpace: "nowrap", backgroundColor: "orange.100" }, children));
29
+ };
30
+ exports.default = ProductTags;
@@ -1,4 +1,4 @@
1
1
  import React from 'react';
2
2
  import { SearchSelectProps } from './SearchSelectProps';
3
- declare const SearchSelect: ({ id, label, options, onSelect, onSearch, isOptionLoading, isLoading, loadingText, placeholder, value, searchQuery, isMultiple, isRequired, error, errorMessage, helperText, width, height, size, chip, information, rightIcon, addNew, isSelectAll, pagination, insideSelect }: SearchSelectProps) => React.JSX.Element;
3
+ declare const SearchSelect: ({ id, label, options, onSelect, onSearch, isOptionLoading, isLoading, loadingText, placeholder, value, searchQuery, isMultiple, isRequired, error, errorMessage, helperText, width, height, size, chip, information, rightIcon, addNew, isSelectAll, pagination, insideSelect, isRemoveAllIcon, dropdownProfileView }: SearchSelectProps) => React.JSX.Element;
4
4
  export default SearchSelect;
@@ -59,7 +59,7 @@ var normalizeMultiValue = function (val) {
59
59
  };
60
60
  var SearchSelect = function (_a) {
61
61
  var _b, _c, _d, _e, _f;
62
- var id = _a.id, label = _a.label, options = _a.options, onSelect = _a.onSelect, onSearch = _a.onSearch, _g = _a.isOptionLoading, isOptionLoading = _g === void 0 ? false : _g, _h = _a.isLoading, isLoading = _h === void 0 ? false : _h, _j = _a.loadingText, loadingText = _j === void 0 ? 'Loading...' : _j, _k = _a.placeholder, placeholder = _k === void 0 ? 'Select' : _k, value = _a.value, _l = _a.searchQuery, searchQuery = _l === void 0 ? '' : _l, _m = _a.isMultiple, isMultiple = _m === void 0 ? false : _m, _o = _a.isRequired, isRequired = _o === void 0 ? false : _o, _p = _a.error, error = _p === void 0 ? false : _p, errorMessage = _a.errorMessage, helperText = _a.helperText, _q = _a.width, width = _q === void 0 ? '100%' : _q, _r = _a.height, height = _r === void 0 ? "2.75rem" : _r, _s = _a.size, size = _s === void 0 ? 'md' : _s, chip = _a.chip, information = _a.information, rightIcon = _a.rightIcon, addNew = _a.addNew, _t = _a.isSelectAll, isSelectAll = _t === void 0 ? false : _t, pagination = _a.pagination, insideSelect = _a.insideSelect;
62
+ var id = _a.id, label = _a.label, options = _a.options, onSelect = _a.onSelect, onSearch = _a.onSearch, _g = _a.isOptionLoading, isOptionLoading = _g === void 0 ? false : _g, _h = _a.isLoading, isLoading = _h === void 0 ? false : _h, _j = _a.loadingText, loadingText = _j === void 0 ? 'Loading...' : _j, _k = _a.placeholder, placeholder = _k === void 0 ? 'Select' : _k, value = _a.value, _l = _a.searchQuery, searchQuery = _l === void 0 ? '' : _l, _m = _a.isMultiple, isMultiple = _m === void 0 ? false : _m, _o = _a.isRequired, isRequired = _o === void 0 ? false : _o, _p = _a.error, error = _p === void 0 ? false : _p, errorMessage = _a.errorMessage, helperText = _a.helperText, _q = _a.width, width = _q === void 0 ? '100%' : _q, _r = _a.height, height = _r === void 0 ? "2.75rem" : _r, _s = _a.size, size = _s === void 0 ? 'md' : _s, chip = _a.chip, information = _a.information, rightIcon = _a.rightIcon, addNew = _a.addNew, _t = _a.isSelectAll, isSelectAll = _t === void 0 ? false : _t, pagination = _a.pagination, insideSelect = _a.insideSelect, isRemoveAllIcon = _a.isRemoveAllIcon, dropdownProfileView = _a.dropdownProfileView;
63
63
  var _u = (0, react_1.useState)(searchQuery), inputValue = _u[0], setInputValue = _u[1];
64
64
  var _v = (0, react_1.useState)(false), isOpen = _v[0], setIsOpen = _v[1];
65
65
  var _w = (0, react_1.useState)(true), hasMore = _w[0], setHasMore = _w[1];
@@ -183,7 +183,7 @@ var SearchSelect = function (_a) {
183
183
  return (react_1.default.createElement(react_2.Box, { ref: containerRef, width: width, position: "relative" },
184
184
  label && (react_1.default.createElement(FormLabel_1.TextLabel, { label: label, id: id, isRequired: isRequired, isInformation: information === null || information === void 0 ? void 0 : information.isInformation, informationMessage: information === null || information === void 0 ? void 0 : information.informationMessage })),
185
185
  react_1.default.createElement(react_2.InputGroup, { size: size },
186
- react_1.default.createElement(react_2.Box, { as: "div", w: "100%", minH: "2.375rem", px: 3, display: "flex", alignItems: "center", flexWrap: "wrap", gap: "0.375rem", border: "0.063rem solid", borderColor: error ? theme.colors.semantic.error[500] : theme.colors.primary[500], borderRadius: "0.25rem", bg: "white", boxShadow: focused ? error ? "0 0 0 0.125rem ".concat((_b = theme.colors.boxShadow) === null || _b === void 0 ? void 0 : _b.error) : "0 0 0 0.125rem ".concat((_c = theme.colors.boxShadow) === null || _c === void 0 ? void 0 : _c.primary) : 'none', transition: "box-shadow 0.2s, border-color 0.2s" },
186
+ react_1.default.createElement(react_2.Box, { as: "div", w: "100%", minH: "2.85rem", px: 3, display: "flex", alignItems: "center", flexWrap: "wrap", gap: "0.375rem", border: "0.063rem solid", borderColor: error ? theme.colors.semantic.error[500] : theme.colors.primary[500], borderRadius: "0.25rem", bg: "white", boxShadow: focused ? error ? "0 0 0 0.125rem ".concat((_b = theme.colors.boxShadow) === null || _b === void 0 ? void 0 : _b.error) : "0 0 0 0.125rem ".concat((_c = theme.colors.boxShadow) === null || _c === void 0 ? void 0 : _c.primary) : 'none', transition: "box-shadow 0.2s, border-color 0.2s" },
187
187
  insideSelect && (react_1.default.createElement(react_2.Box, { position: "relative", ref: customSelectRef, backgroundColor: theme.colors.gray[200], ml: "-0.75rem", h: "-webkit-fill-available", borderRadius: "0.25rem 0 0 0.25rem", onClick: function () { return setCustomSelectOpen(function (prev) { return !prev; }); } },
188
188
  react_1.default.createElement(react_2.Box, { minW: "5rem", cursor: "pointer", display: "flex", justifyContent: "space-between", alignItems: "center", width: insideSelect.width, height: height, pl: "0.5rem", pr: "0.5rem" },
189
189
  react_1.default.createElement(SelectTruncatedLabel_1.default, { label: (_e = (_d = insideSelect === null || insideSelect === void 0 ? void 0 : insideSelect.value) === null || _d === void 0 ? void 0 : _d.label) !== null && _e !== void 0 ? _e : "", maxWidth: (insideSelect === null || insideSelect === void 0 ? void 0 : insideSelect.width) || "6rem" }),
@@ -202,12 +202,12 @@ var SearchSelect = function (_a) {
202
202
  (chip === null || chip === void 0 ? void 0 : chip.maxChips) &&
203
203
  isMultiple &&
204
204
  selectedValues.length > chip.maxChips && (react_1.default.createElement(Tag_1.default, { key: "extra-count", label: "+ ".concat(selectedValues.length - chip.maxChips), colorScheme: "gray", size: "sm" })),
205
- (!selectedValues.length || isMultiple || inputValue) && (react_1.default.createElement(react_2.Input, { ref: inputRef, variant: "unstyled", flex: "1", minW: "5rem", value: inputValue, onChange: function (e) { return setInputValue(e.target.value); }, onFocus: function () {
205
+ (isMultiple || inputValue || !selectedValues.length || !isMultiple) && (react_1.default.createElement(react_2.Input, { ref: inputRef, variant: "unstyled", flex: "1", minW: "5rem", value: inputValue, onChange: function (e) { return setInputValue(e.target.value); }, onFocus: function () {
206
206
  setFocused(true);
207
207
  setIsOpen(true);
208
208
  }, onBlur: function () { return setFocused(false); }, placeholder: placeholder })),
209
209
  react_1.default.createElement(react_2.Box, { ml: "auto", display: "flex", alignItems: "center", gap: 1 },
210
- selectedValues.length > 0 && (react_1.default.createElement(ToolTip_1.default, { placement: "top", label: "Remove All", hasArrow: true, bg: theme.colors.gray[600], color: theme.colors.white, fontSize: "0.75rem" },
210
+ isRemoveAllIcon && selectedValues.length > 0 && (react_1.default.createElement(ToolTip_1.default, { placement: "top", label: "Remove All", hasArrow: true, bg: theme.colors.gray[600], color: theme.colors.white, fontSize: "0.75rem" },
211
211
  react_1.default.createElement(react_2.IconButton, { icon: react_1.default.createElement(lucide_react_1.X, { size: 12, color: theme.colors.black }), "aria-label": "Clear all", variant: "ghost", size: "sm", onClick: handleClearAll, sx: {
212
212
  bg: 'transparent',
213
213
  _hover: { bg: 'transparent' },
@@ -225,9 +225,16 @@ var SearchSelect = function (_a) {
225
225
  react_1.default.createElement(react_2.Text, { fontSize: "sm" }, allFilteredSelected ? 'Unselect All' : 'Select All'))),
226
226
  react_1.default.createElement(react_2.Box, { flex: "1", overflowY: "auto", onScroll: handleScroll, maxH: "15rem", borderBottom: "0.063rem solid", borderColor: theme.colors.gray[200] }, isOptionLoading ? (react_1.default.createElement(react_2.Box, { p: 3, display: "flex", alignItems: "center", gap: 2 },
227
227
  react_1.default.createElement(react_2.Spinner, { size: "sm" }),
228
- react_1.default.createElement(react_2.Text, { fontSize: "sm" }, loadingText))) : filteredOptions.length === 0 ? (react_1.default.createElement(react_2.Text, { p: 3, fontSize: "sm", color: theme.colors.gray[500] }, "No results found")) : (filteredOptions.map(function (option) { return (react_1.default.createElement(react_2.Box, { key: option.id, p: 2, px: 3, cursor: "pointer", bg: isSelected(option.id) ? theme.colors.gray[100] : 'transparent', _hover: { bg: theme.colors.gray[50] }, onClick: function () { return handleSelect(option); }, display: "flex", alignItems: "center", gap: 2, borderBottom: "0.063rem solid ".concat(theme.colors.gray[100]) },
229
- isMultiple && (react_1.default.createElement(react_2.Checkbox, { isChecked: isSelected(option.id), pointerEvents: "none", colorScheme: "blue" })),
230
- react_1.default.createElement(react_2.Text, { fontSize: "sm" }, option.label))); }))),
228
+ react_1.default.createElement(react_2.Text, { fontSize: "sm" }, loadingText))) : filteredOptions.length === 0 ? (react_1.default.createElement(react_2.Text, { p: 3, fontSize: "sm", color: theme.colors.gray[500] }, "No results found")) : (filteredOptions.map(function (option) {
229
+ var _a, _b;
230
+ return (react_1.default.createElement(react_2.Box, { key: option.id, p: 2, px: 3, cursor: "pointer", bg: isSelected(option.id) ? theme.colors.gray[100] : 'transparent', _hover: { bg: theme.colors.gray[50] }, onClick: function () { return handleSelect(option); }, display: "flex", alignItems: "center", gap: 2, borderBottom: "0.063rem solid ".concat(theme.colors.gray[100]) },
231
+ isMultiple && (react_1.default.createElement(react_2.Checkbox, { isChecked: isSelected(option.id), pointerEvents: "none", colorScheme: "blue" })),
232
+ dropdownProfileView ? react_1.default.createElement(react_2.Box, { display: "flex", alignItems: "center", gap: 3 },
233
+ react_1.default.createElement(react_2.Box, { w: "2rem", h: "2rem", borderRadius: "full", bg: option.color || 'gray.300', color: "white", display: "flex", justifyContent: "center", alignItems: "center", fontSize: "sm", fontWeight: "medium", overflow: "hidden" }, option.profileUrl ? (react_1.default.createElement(react_2.Box, { as: "img", src: option.profileUrl, alt: option.label, w: "100%", h: "100%", objectFit: "cover" })) : ((_b = (_a = option.label) === null || _a === void 0 ? void 0 : _a.charAt(0)) === null || _b === void 0 ? void 0 : _b.toUpperCase())),
234
+ react_1.default.createElement(react_2.Box, null,
235
+ react_1.default.createElement(react_2.Text, { fontSize: "sm", fontWeight: "semibold", color: "gray.800" }, option.label),
236
+ option.email && (react_1.default.createElement(react_2.Text, { fontSize: "xs", color: "gray.500" }, option.email)))) : react_1.default.createElement(react_2.Text, { fontSize: "sm" }, option.label)));
237
+ }))),
231
238
  (addNew === null || addNew === void 0 ? void 0 : addNew.enabled) && (react_1.default.createElement(react_2.Box, { p: 2, borderTop: "0.063rem solid", borderColor: theme.colors.gray[200], bg: "white", display: "flex", alignItems: "center", gap: 2, cursor: "pointer", onClick: addNew.onClick, _hover: { bg: theme.colors.gray[50] } },
232
239
  addNew.icon || react_1.default.createElement(lucide_react_1.Plus, { size: 16 }),
233
240
  react_1.default.createElement(react_2.Text, { fontSize: "sm" }, addNew.text || 'Add New'))))),
@@ -52,6 +52,7 @@ export type SearchSelectProps = {
52
52
  option?: Options[];
53
53
  width?: string;
54
54
  };
55
+ dropdownProfileView?: boolean;
55
56
  };
56
57
  export type Options = {
57
58
  id: string | number;
package/dist/Layout.js CHANGED
@@ -57,6 +57,7 @@ var checkbox_1 = __importDefault(require("./Pages/checkbox"));
57
57
  var toster_1 = __importDefault(require("./Pages/toster"));
58
58
  var input_1 = __importDefault(require("./Pages/input"));
59
59
  var alertdialog_1 = __importDefault(require("./Pages/alertdialog"));
60
+ var productCaard_1 = __importDefault(require("./Pages/productCaard"));
60
61
  var table_1 = require("./Pages/table");
61
62
  var TInput_1 = __importDefault(require("./Pages/TInput"));
62
63
  var kanbanboard_1 = __importDefault(require("./Pages/kanbanboard"));
@@ -188,6 +189,8 @@ var Layout = function () {
188
189
  react_2.default.createElement(react_1.Button, { colorScheme: "purple" }, "Sign Up")) }));
189
190
  case "/upload":
190
191
  return react_2.default.createElement(fileUpload_1.FileUploader, null);
192
+ case "/productCard":
193
+ return react_2.default.createElement(productCaard_1.default, null);
191
194
  case "/tag":
192
195
  return (react_2.default.createElement(Tag_1.default, { label: "tag", icon: lucide_react_1.Home, size: "md", colorScheme: "gray", onIconClick: function () { return console.log("Icon"); }, onTagClick: function () { return console.log("Tag"); } }));
193
196
  case "/":
@@ -233,7 +236,8 @@ var Layout = function () {
233
236
  react_2.default.createElement(react_1.Button, { onClick: function () { return navigate("/kanban"); }, variant: "outline", size: "sm" }, "Kanban"),
234
237
  react_2.default.createElement(react_1.Button, { onClick: function () { return navigate("/tag"); }, variant: "outline", size: "sm" }, "Tag"),
235
238
  react_2.default.createElement(react_1.Button, { onClick: function () { return navigate("/header"); }, variant: "outline", size: "sm" }, "Header"),
236
- react_2.default.createElement(react_1.Button, { onClick: function () { return navigate("/upload"); }, variant: "outline", size: "sm" }, "File Upload")),
239
+ react_2.default.createElement(react_1.Button, { onClick: function () { return navigate("/upload"); }, variant: "outline", size: "sm" }, "File Upload"),
240
+ react_2.default.createElement(react_1.Button, { onClick: function () { return navigate("/productCard"); }, variant: "outline" }, "Product Card")),
237
241
  react_2.default.createElement("br", null),
238
242
  react_2.default.createElement("br", null),
239
243
  react_2.default.createElement("h2", { className: "text-3xl" }, " TailWindCss"),
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const productCaard: () => React.JSX.Element;
3
+ export default productCaard;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var react_1 = __importDefault(require("react"));
7
+ var ProductCard_1 = require("../Components/ProductCard/ProductCard");
8
+ var react_2 = require("@chakra-ui/react");
9
+ var productCaard = function () {
10
+ var option = [{
11
+ label: "100 G",
12
+ weight: 100,
13
+ price: 149,
14
+ offer: 2,
15
+ },
16
+ {
17
+ label: "200 G",
18
+ weight: 200,
19
+ price: 250,
20
+ offer: 50,
21
+ }
22
+ ];
23
+ return (react_1.default.createElement(react_2.SimpleGrid, { columns: [1, 2, 3], spacing: 6, p: 4 },
24
+ react_1.default.createElement(ProductCard_1.ProductCard, { label: "Ghee Mysorepaku (Soft)", description: "Special Ghee mysorepaku", productImage: {
25
+ visibile: "https://www.sreeannapoorna.com/cdn/shop/files/80A4644.jpg?v=1752466892&width=1946",
26
+ hover: "https://www.sreeannapoorna.com/cdn/shop/files/80A4658.jpg?v=1752466430&width=1946",
27
+ }, tags: ['Melt in Mouth', 'Authentic Taste', 'No Preservatives'], rating: 4.76, reviews: 596, options: option, onAddToCart: function () { }, onClick: function () { }, bag: {
28
+ label: "Special",
29
+ color: "red",
30
+ } })));
31
+ };
32
+ exports.default = productCaard;
@@ -79,6 +79,8 @@ var rrr = function (start, limit) {
79
79
  return Array.from({ length: end - start }, function (_, index) { return ({
80
80
  id: (start + index).toString(),
81
81
  label: "Option ".concat(start + index),
82
+ email: "text@123",
83
+ color: "red",
82
84
  }); });
83
85
  };
84
86
  var delay = function (ms) { return new Promise(function (resolve) { return setTimeout(resolve, ms); }); };
@@ -142,40 +144,7 @@ var SearchSelect = function () {
142
144
  // }}
143
145
  // error={true}
144
146
  // errorMessage="hello"
145
- virtualization: true, insideSelect: {
146
- width: "50px",
147
- onSelect: function (val) { return setCustomSelectValue(val); },
148
- value: customSelectValue,
149
- option: [
150
- {
151
- "id": 3,
152
- "label": "Hariharan J",
153
- },
154
- {
155
- "id": 1,
156
- "label": "Karuppusamy S",
157
- },
158
- {
159
- "id": 2,
160
- "label": "SasiKumar M",
161
- },
162
- {
163
- "id": 4,
164
- "label": "Hariharan Jeganathan",
165
- },
166
- {
167
- "id": 5,
168
- "label": "Karuppusamy S",
169
- },
170
- {
171
- "id": 6,
172
- "label": "SasiKumar M",
173
- },
174
- {
175
- "id": 7,
176
- "label": "Hariharan Jeganathan",
177
- }
178
- ]
179
- } })));
147
+ // isRemoveAllIcon
148
+ dropdownProfileView: true, virtualization: true })));
180
149
  };
181
150
  exports.default = SearchSelect;
@@ -1,4 +1,3 @@
1
- import "@fontsource-variable/inter";
2
1
  declare const fonts: {
3
2
  fonts: {
4
3
  body: string;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
2
  // Supports weights 100-900
4
- require("@fontsource-variable/inter");
3
+ // import "@fontsource-variable/inter";
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
5
  var fonts = {
6
6
  fonts: {
7
7
  body: "Inter Variable, sans-serif",
package/package.json CHANGED
@@ -1,13 +1,12 @@
1
1
  {
2
2
  "name": "pixelize-design-library",
3
- "version": "2.1.3",
3
+ "version": "2.1.5",
4
4
  "private": false,
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
8
8
  "dependencies": {
9
9
  "@chakra-ui/react": "^2.8.2",
10
- "@fontsource-variable/inter": "^5.1.0",
11
10
  "@hello-pangea/dnd": "^18.0.1",
12
11
  "framer-motion": "^11.2.2",
13
12
  "jodit-react": "^4.1.2",