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 _d = getCardStyles(isActive, isNextUpgrade, !!plan.popular, theme), badgeText = _d.badgeText, badgeColor = _d.badgeColor, buttonColor = _d.buttonColor, buttonColor50 = _d.buttonColor50;
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" }, onMouseEnter: function () { return onHover === null || onHover === void 0 ? void 0 : onHover(plan.plan_id, "card", true); }, onMouseLeave: function () { return onHover === null || onHover === void 0 ? void 0 : onHover(plan.plan_id, "card", false); } },
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;
@@ -7,6 +7,7 @@ export type PaymentCardProps = {
7
7
  onSelect?: (planId: number) => void;
8
8
  onHover?: (planId: number, type: "card" | "button", state: boolean) => void;
9
9
  buttonLoading?: number;
10
+ isLoading?: boolean;
10
11
  };
11
12
  export type Plan = {
12
13
  plan_id: number;
@@ -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, pt: 0, pr: 0, pb: 0, fontWeight: 500, fontSize: "0.95rem", _placeholder: {
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.Text, { color: theme.colors.gray[600], fontSize: "sm", fontWeight: 500 }, titleValue ? titleValue : "Title"))),
180
- react_1.default.createElement(react_2.Flex, { ml: "auto", gap: 3, align: "center" },
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,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pixelize-design-library",
3
- "version": "2.2.19",
3
+ "version": "2.2.21",
4
4
  "private": false,
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",