pixelize-design-library 2.2.19 → 2.2.21
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.
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { PaymentCardProps } from "./PaymentCardProps";
|
|
3
|
-
declare const PaymentCard: ({ plan, isActive, isNextUpgrade, billingCycle, onSelect, onHover, buttonLoading, }: PaymentCardProps) => React.JSX.Element;
|
|
3
|
+
declare const PaymentCard: ({ plan, isActive, isNextUpgrade, billingCycle, onSelect, onHover, buttonLoading, isLoading, }: PaymentCardProps) => React.JSX.Element;
|
|
4
4
|
export default PaymentCard;
|
|
@@ -52,9 +52,9 @@ var getCardStyles = function (isActive, isNextUpgrade, popular, theme) {
|
|
|
52
52
|
};
|
|
53
53
|
};
|
|
54
54
|
var PaymentCard = function (_a) {
|
|
55
|
-
var plan = _a.plan, _b = _a.isActive, isActive = _b === void 0 ? false : _b, _c = _a.isNextUpgrade, isNextUpgrade = _c === void 0 ? false : _c, billingCycle = _a.billingCycle, onSelect = _a.onSelect, onHover = _a.onHover, buttonLoading = _a.buttonLoading;
|
|
55
|
+
var plan = _a.plan, _b = _a.isActive, isActive = _b === void 0 ? false : _b, _c = _a.isNextUpgrade, isNextUpgrade = _c === void 0 ? false : _c, billingCycle = _a.billingCycle, onSelect = _a.onSelect, onHover = _a.onHover, buttonLoading = _a.buttonLoading, _d = _a.isLoading, isLoading = _d === void 0 ? false : _d;
|
|
56
56
|
var theme = (0, useCustomTheme_1.useCustomTheme)();
|
|
57
|
-
var
|
|
57
|
+
var _e = getCardStyles(isActive, isNextUpgrade, !!plan.popular, theme), badgeText = _e.badgeText, badgeColor = _e.badgeColor, buttonColor = _e.buttonColor, buttonColor50 = _e.buttonColor50;
|
|
58
58
|
var variantStyles = plan.buttonVariant === "outline"
|
|
59
59
|
? {
|
|
60
60
|
borderColor: buttonColor,
|
|
@@ -67,7 +67,18 @@ var PaymentCard = function (_a) {
|
|
|
67
67
|
_hover: { bg: buttonColor },
|
|
68
68
|
};
|
|
69
69
|
return (react_1.default.createElement(react_2.GridItem, null,
|
|
70
|
-
react_1.default.createElement(react_2.Box, { bg: theme.colors.white, minH: "100%", borderRadius: "lg", p: 8, borderWidth: "0.063rem", borderColor: theme.colors.gray[200], boxShadow: "md", position: "relative", transition: "all 0.2s", transform: plan.popular ? "scale(1.03)" : "none", border: badgeColor, _hover: { transform: "translateY(-0.313rem)", shadow: "xl" }
|
|
70
|
+
react_1.default.createElement(react_2.Box, { bg: theme.colors.white, minH: "100%", borderRadius: "lg", p: 8, borderWidth: "0.063rem", borderColor: theme.colors.gray[200], boxShadow: "md", position: "relative", transition: "all 0.2s", transform: plan.popular ? "scale(1.03)" : "none", border: badgeColor, _hover: { transform: "translateY(-0.313rem)", shadow: "xl" } }, isLoading ? (
|
|
71
|
+
// 🔹 Skeleton Loader Layout
|
|
72
|
+
react_1.default.createElement(react_1.default.Fragment, null,
|
|
73
|
+
react_1.default.createElement(react_2.Skeleton, { height: "24px", width: "120px", mx: "auto", mb: 4 }),
|
|
74
|
+
react_1.default.createElement(react_2.Skeleton, { height: "50px", width: "50px", borderRadius: "lg", mx: "auto", mb: 4 }),
|
|
75
|
+
react_1.default.createElement(react_2.Skeleton, { height: "24px", width: "100px", mx: "auto", mb: 3 }),
|
|
76
|
+
react_1.default.createElement(react_2.Skeleton, { height: "30px", width: "160px", mx: "auto", mb: 4 }),
|
|
77
|
+
react_1.default.createElement(react_2.SkeletonText, { noOfLines: 2, spacing: "2" }),
|
|
78
|
+
react_1.default.createElement(react_2.Skeleton, { height: "44px", width: "full", mt: 6, borderRadius: "md" }),
|
|
79
|
+
react_1.default.createElement(react_2.VStack, { align: "start", spacing: 3, mt: 6 }, [1, 2, 3, 4].map(function (i) { return (react_1.default.createElement(react_2.Skeleton, { key: i, height: "16px", width: "80%" })); })))) : (
|
|
80
|
+
// 🔹 Actual Card Content
|
|
81
|
+
react_1.default.createElement(react_1.default.Fragment, null,
|
|
71
82
|
badgeText && (react_1.default.createElement(react_2.Badge, { position: "absolute", top: "-0.75rem", left: "50%", transform: "translateX(-50%)", bg: buttonColor, color: theme.colors.white, fontSize: "sm", px: 4, py: 1, borderRadius: "full" }, badgeText)),
|
|
72
83
|
react_1.default.createElement(react_2.Box, { textAlign: "center", mb: 6 },
|
|
73
84
|
react_1.default.createElement(react_2.Flex, { justify: "center", align: "center", w: "3.125rem", h: "3.125rem", borderRadius: "lg", bg: buttonColor50, color: buttonColor, mx: "auto", mb: 4 }, plan.icon),
|
|
@@ -82,6 +93,6 @@ var PaymentCard = function (_a) {
|
|
|
82
93
|
!isActive && (react_1.default.createElement(Button_1.default, __assign({ isLoading: plan.plan_id === buttonLoading, loadingText: plan.buttonLoadingText, width: "full", variant: plan.buttonVariant, size: "lg", onClick: function () { return onSelect === null || onSelect === void 0 ? void 0 : onSelect(plan.plan_id); }, onMouseEnter: function () { return onHover === null || onHover === void 0 ? void 0 : onHover(plan.plan_id, "button", true); }, onMouseLeave: function () { return onHover === null || onHover === void 0 ? void 0 : onHover(plan.plan_id, "button", false); } }, variantStyles), plan.buttonText)),
|
|
83
94
|
react_1.default.createElement(react_2.VStack, { align: "start", spacing: 3, mt: 6 }, plan.features.map(function (feature, i) { return (react_1.default.createElement(react_2.Flex, { key: i, align: "center" },
|
|
84
95
|
react_1.default.createElement(react_2.Icon, { as: lucide_react_1.Check, color: theme.colors.green[500], mr: 2 }),
|
|
85
|
-
react_1.default.createElement(react_2.Text, { fontSize: "sm" }, feature))); })))));
|
|
96
|
+
react_1.default.createElement(react_2.Text, { fontSize: "sm" }, feature))); })))))));
|
|
86
97
|
};
|
|
87
98
|
exports.default = PaymentCard;
|
|
@@ -76,7 +76,6 @@ function NoteTextArea(_a) {
|
|
|
76
76
|
}, [value, title, file, isEditable]);
|
|
77
77
|
(0, react_1.useEffect)(function () {
|
|
78
78
|
if (!saveButtonLoading) {
|
|
79
|
-
// keep previous behavior: reset only if not editable
|
|
80
79
|
if (!isEditable) {
|
|
81
80
|
setIsActive(false);
|
|
82
81
|
setNoteValue("");
|
|
@@ -90,7 +89,6 @@ function NoteTextArea(_a) {
|
|
|
90
89
|
}, [saveButtonLoading, isEditable]);
|
|
91
90
|
(0, react_1.useEffect)(function () {
|
|
92
91
|
if (isActive && noteAreaRef.current) {
|
|
93
|
-
// ensure textarea fits content
|
|
94
92
|
noteAreaRef.current.style.height = "auto";
|
|
95
93
|
noteAreaRef.current.style.height = "".concat(noteAreaRef.current.scrollHeight, "px");
|
|
96
94
|
noteAreaRef.current.focus();
|
|
@@ -148,9 +146,7 @@ function NoteTextArea(_a) {
|
|
|
148
146
|
return "".concat(start, "...").concat(extension);
|
|
149
147
|
};
|
|
150
148
|
return (react_1.default.createElement(react_2.Box, { w: width, borderRadius: "0.25rem", overflow: "hidden", border: "1px solid", borderColor: isActive ? theme.colors.primary[300] : theme.colors.gray[200], bg: isActive ? theme.colors.gray[50] : "transparent", boxShadow: isActive ? "0 0 0 0.125rem ".concat((_b = theme.colors.boxShadow) === null || _b === void 0 ? void 0 : _b.primary) : "none" },
|
|
151
|
-
!isActive && (react_1.default.createElement(react_2.Flex, { px: 4,
|
|
152
|
-
// py={4}
|
|
153
|
-
align: "center", cursor: "text", onClick: handleTextArea, bg: theme.colors.white, borderRadius: "0.25rem", minH: "44px" },
|
|
149
|
+
!isActive && (react_1.default.createElement(react_2.Flex, { px: 4, align: "center", cursor: "text", onClick: handleTextArea, bg: theme.colors.white, borderRadius: "0.25rem", minH: "44px" },
|
|
154
150
|
react_1.default.createElement(react_2.Text, { color: theme.colors.gray[300], fontStyle: "italic", fontSize: "md" }, "Add a note..."))),
|
|
155
151
|
isActive && (react_1.default.createElement(react_1.default.Fragment, null,
|
|
156
152
|
react_1.default.createElement(react_2.Box, { bg: theme.colors.white },
|
|
@@ -158,26 +154,23 @@ function NoteTextArea(_a) {
|
|
|
158
154
|
if (e.target.value.length === 0)
|
|
159
155
|
setTitleShow(false);
|
|
160
156
|
setTitleValue(e.target.value);
|
|
161
|
-
}, placeholder: "Add a title...", variant: "unstyled", pl: 3,
|
|
157
|
+
}, placeholder: "Add a title...", variant: "unstyled", pl: 3, fontWeight: 500, fontSize: "0.95rem", _placeholder: {
|
|
162
158
|
fontStyle: "italic",
|
|
163
159
|
color: theme.colors.gray[300],
|
|
164
160
|
background: theme.colors.white,
|
|
165
161
|
} })),
|
|
166
|
-
react_1.default.createElement(react_2.Box, { bg: theme.colors.white,
|
|
167
|
-
// borderRadius="6px"
|
|
168
|
-
// border="1px solid"
|
|
169
|
-
// borderColor="gray.100"
|
|
170
|
-
minH: "80px", pl: 3, pt: 2, position: "relative" },
|
|
162
|
+
react_1.default.createElement(react_2.Box, { bg: theme.colors.white, minH: "80px", pl: 3, pt: 2, position: "relative" },
|
|
171
163
|
react_1.default.createElement(react_2.Textarea, { ref: noteAreaRef, value: noteValue, onChange: handleNoteChange, placeholder: "Add a note...", variant: "unstyled", resize: "none", minH: "80px", _placeholder: { fontStyle: "italic", color: theme.colors.gray[300] }, style: { overflow: "hidden" }, p: 0 }))),
|
|
172
164
|
react_1.default.createElement(react_2.Divider, null),
|
|
173
165
|
react_1.default.createElement(react_2.Box, { px: 4, py: 3 },
|
|
174
|
-
react_1.default.createElement(react_2.Flex, { align: "center" },
|
|
175
|
-
react_1.default.createElement(react_2.Flex, { align: "center", gap: 3 },
|
|
166
|
+
react_1.default.createElement(react_2.Flex, { align: "center", justify: "space-between", w: "100%" },
|
|
167
|
+
react_1.default.createElement(react_2.Flex, { align: "center", gap: 3, minW: 0 },
|
|
176
168
|
react_1.default.createElement(react_2.Box, { as: "label", htmlFor: "file-upload", cursor: "pointer", display: "flex", alignItems: "center", gap: 2 },
|
|
177
169
|
react_1.default.createElement(lucide_react_1.Paperclip, { size: 18 })),
|
|
178
170
|
react_1.default.createElement(react_2.Box, { h: "18px", w: "1px", bg: theme.colors.gray[200] }),
|
|
179
|
-
!titleShow ? (react_1.default.createElement(react_2.Text, { onClick: function () { return setTitleShow(true); }, cursor: "pointer", color: theme.colors.gray[600], fontWeight: 500, fontSize: "sm" }, "Add a Title")) : (react_1.default.createElement(react_2.
|
|
180
|
-
|
|
171
|
+
!titleShow ? (react_1.default.createElement(react_2.Text, { onClick: function () { return setTitleShow(true); }, cursor: "pointer", color: theme.colors.gray[600], fontWeight: 500, fontSize: "sm" }, "Add a Title")) : (react_1.default.createElement(react_2.Tooltip, { label: titleValue, hasArrow: true, isDisabled: !titleValue },
|
|
172
|
+
react_1.default.createElement(react_2.Text, { color: theme.colors.gray[600], fontSize: "sm", fontWeight: 500, isTruncated: true, maxW: "200px", whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" }, titleValue || "Title")))),
|
|
173
|
+
react_1.default.createElement(react_2.Flex, { gap: 3, align: "center", ml: "auto", flexShrink: 0 },
|
|
181
174
|
react_1.default.createElement(react_2.Button, { variant: "ghost", colorScheme: "gray", borderRadius: "6px", onClick: handleCloseTextArea, _hover: { bg: "transparent" } }, "Cancel"),
|
|
182
175
|
react_1.default.createElement(react_2.Button, { colorScheme: "purple", borderRadius: "8px", isLoading: !!saveButtonLoading, isDisabled: !noteValue || isSaveDisabled, onClick: function () { return handleSubmit(noteValue, titleValue, files); } },
|
|
183
176
|
saveButtonLoading ? (react_1.default.createElement(react_2.Spinner, { size: "xs", thickness: "2px", mr: 2 })) : null,
|