@myrjfa/ui 1.1.0 → 1.1.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.
Files changed (131) hide show
  1. package/dist/chat/ChatMain.d.ts.map +1 -1
  2. package/dist/chat/ChatMain.js +173 -145
  3. package/dist/chat/ChatSidebar.js +7 -8
  4. package/dist/chat/ConversationList.d.ts.map +1 -1
  5. package/dist/chat/ConversationList.js +20 -18
  6. package/dist/chat/ExpensePanel.d.ts +4 -1
  7. package/dist/chat/ExpensePanel.d.ts.map +1 -1
  8. package/dist/chat/ExpensePanel.js +215 -195
  9. package/dist/chat/MessageBubble.d.ts +5 -3
  10. package/dist/chat/MessageBubble.d.ts.map +1 -1
  11. package/dist/chat/MessageBubble.js +185 -103
  12. package/dist/chat/MessageInput.d.ts +8 -1
  13. package/dist/chat/MessageInput.d.ts.map +1 -1
  14. package/dist/chat/MessageInput.js +182 -165
  15. package/dist/chat/MilestonePanel.d.ts +4 -1
  16. package/dist/chat/MilestonePanel.d.ts.map +1 -1
  17. package/dist/chat/MilestonePanel.js +150 -150
  18. package/dist/chat/components/ParticipantSelector.d.ts +11 -0
  19. package/dist/chat/components/ParticipantSelector.d.ts.map +1 -0
  20. package/dist/chat/components/ParticipantSelector.js +17 -0
  21. package/dist/chat/components/SplitInputs.d.ts +11 -0
  22. package/dist/chat/components/SplitInputs.d.ts.map +1 -0
  23. package/dist/chat/components/SplitInputs.js +83 -0
  24. package/dist/chat/components/SplitTypeSelector.d.ts +8 -0
  25. package/dist/chat/components/SplitTypeSelector.d.ts.map +1 -0
  26. package/dist/chat/components/SplitTypeSelector.js +13 -0
  27. package/dist/chat/dialogs/AddMemberDialog.js +30 -90
  28. package/dist/chat/dialogs/CameraDialog.js +38 -86
  29. package/dist/chat/dialogs/CreatePollDialog.d.ts +8 -0
  30. package/dist/chat/dialogs/CreatePollDialog.d.ts.map +1 -0
  31. package/dist/chat/dialogs/CreatePollDialog.js +38 -0
  32. package/dist/chat/dialogs/ExpenseAnalyticsDialog.d.ts +19 -0
  33. package/dist/chat/dialogs/ExpenseAnalyticsDialog.d.ts.map +1 -0
  34. package/dist/chat/dialogs/ExpenseAnalyticsDialog.js +52 -0
  35. package/dist/chat/dialogs/GroupInfoDialog.d.ts.map +1 -1
  36. package/dist/chat/dialogs/GroupInfoDialog.js +55 -92
  37. package/dist/chat/dialogs/GroupInfoViewDialog.js +5 -6
  38. package/dist/chat/dialogs/NewChatDialog.d.ts.map +1 -1
  39. package/dist/chat/dialogs/NewChatDialog.js +49 -113
  40. package/dist/chat/dialogs/NewGroupDialog.d.ts.map +1 -1
  41. package/dist/chat/dialogs/NewGroupDialog.js +49 -92
  42. package/dist/chat/dialogs/ParticipantsDialog.d.ts.map +1 -1
  43. package/dist/chat/dialogs/ParticipantsDialog.js +68 -118
  44. package/dist/chat/dialogs/UserProfileDialog.d.ts +10 -0
  45. package/dist/chat/dialogs/UserProfileDialog.d.ts.map +1 -0
  46. package/dist/chat/dialogs/UserProfileDialog.js +100 -0
  47. package/dist/dashboard/action-buttons.js +4 -5
  48. package/dist/dashboard/app-sidebar.js +46 -128
  49. package/dist/dashboard/card-header.js +1 -2
  50. package/dist/dashboard/dashboard-components.js +3 -5
  51. package/dist/dashboard/data-table.js +21 -33
  52. package/dist/dashboard/nav-main.js +4 -5
  53. package/dist/dashboard/nav-secondary.js +2 -25
  54. package/dist/dashboard/stats-card.js +1 -2
  55. package/dist/dashboard/table.js +8 -54
  56. package/dist/header/mobile-nav-item.js +1 -2
  57. package/dist/header/mobile-navbar.js +8 -9
  58. package/dist/header/nav-item.js +1 -2
  59. package/dist/index.d.ts +1 -0
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +1 -1
  62. package/dist/main/footer.js +5 -9
  63. package/dist/main/navbar.js +53 -136
  64. package/dist/main/paginationBar.js +12 -14
  65. package/dist/main/portfolio/portfolioItem.js +1 -2
  66. package/dist/main/portfolio/portfolioPopup.js +16 -17
  67. package/dist/main/review-page.d.ts.map +1 -1
  68. package/dist/main/review-page.js +131 -198
  69. package/dist/misc/accordion.js +8 -34
  70. package/dist/misc/alert-dialog.js +22 -55
  71. package/dist/misc/alert.js +7 -32
  72. package/dist/misc/alertdialogclaude.js +50 -125
  73. package/dist/misc/avatar.js +6 -31
  74. package/dist/misc/badge.js +4 -27
  75. package/dist/misc/button.js +4 -27
  76. package/dist/misc/card.js +12 -40
  77. package/dist/misc/carousel.js +37 -61
  78. package/dist/misc/checkbox.js +2 -25
  79. package/dist/misc/command.js +18 -49
  80. package/dist/misc/datepicker.js +66 -76
  81. package/dist/misc/dialog.js +20 -52
  82. package/dist/misc/dropdown-menu.js +30 -67
  83. package/dist/misc/faq.js +2 -3
  84. package/dist/misc/file-preview.js +43 -97
  85. package/dist/misc/filter.d.ts.map +1 -1
  86. package/dist/misc/filter.js +18 -21
  87. package/dist/misc/filterBar.js +136 -160
  88. package/dist/misc/form.js +39 -60
  89. package/dist/misc/image-cropper.d.ts +10 -0
  90. package/dist/misc/image-cropper.d.ts.map +1 -0
  91. package/dist/misc/image-cropper.js +44 -0
  92. package/dist/misc/input.js +2 -25
  93. package/dist/misc/label.js +2 -25
  94. package/dist/misc/line-carousel.js +3 -13
  95. package/dist/misc/multiImageUploader.js +2 -3
  96. package/dist/misc/newsLetter.js +18 -78
  97. package/dist/misc/notification.d.ts +1 -2
  98. package/dist/misc/notification.d.ts.map +1 -1
  99. package/dist/misc/notification.js +89 -125
  100. package/dist/misc/pagination.js +16 -45
  101. package/dist/misc/password-eye.js +2 -3
  102. package/dist/misc/popover.d.ts.map +1 -1
  103. package/dist/misc/popover.js +8 -34
  104. package/dist/misc/progress.js +2 -25
  105. package/dist/misc/scroll-area.js +5 -29
  106. package/dist/misc/searchBar.js +27 -31
  107. package/dist/misc/searchBox.js +18 -22
  108. package/dist/misc/select.d.ts.map +1 -1
  109. package/dist/misc/select.js +22 -54
  110. package/dist/misc/separator.js +2 -25
  111. package/dist/misc/share.js +48 -104
  112. package/dist/misc/sheet.js +21 -53
  113. package/dist/misc/sidebar.js +112 -153
  114. package/dist/misc/skeleton.js +2 -25
  115. package/dist/misc/slider.js +3 -26
  116. package/dist/misc/starRating.js +5 -15
  117. package/dist/misc/stateCard.js +7 -8
  118. package/dist/misc/switch.d.ts +5 -0
  119. package/dist/misc/switch.d.ts.map +1 -0
  120. package/dist/misc/switch.js +8 -0
  121. package/dist/misc/tabs.js +8 -34
  122. package/dist/misc/textarea.js +2 -25
  123. package/dist/misc/tile.js +31 -92
  124. package/dist/misc/tooltip.js +8 -34
  125. package/dist/profile/socialLink.d.ts +1 -1
  126. package/dist/profile/socialLink.d.ts.map +1 -1
  127. package/dist/profile/socialLink.js +53 -69
  128. package/dist/utils/permissions.d.ts +7 -0
  129. package/dist/utils/permissions.d.ts.map +1 -0
  130. package/dist/utils/permissions.js +38 -0
  131. package/package.json +3 -2
@@ -1,60 +1,4 @@
1
1
  "use client";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
- return new (P || (P = Promise))(function (resolve, reject) {
16
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
- step((generator = generator.apply(thisArg, _arguments || [])).next());
20
- });
21
- };
22
- var __generator = (this && this.__generator) || function (thisArg, body) {
23
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
24
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
- function verb(n) { return function (v) { return step([n, v]); }; }
26
- function step(op) {
27
- if (f) throw new TypeError("Generator is already executing.");
28
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
- if (y = 0, t) op = [op[0] & 2, t.value];
31
- switch (op[0]) {
32
- case 0: case 1: t = op; break;
33
- case 4: _.label++; return { value: op[1], done: false };
34
- case 5: _.label++; y = op[1]; op = [0]; continue;
35
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
- default:
37
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
- if (t[2]) _.ops.pop();
42
- _.trys.pop(); continue;
43
- }
44
- op = body.call(thisArg, _);
45
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
- }
48
- };
49
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
50
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
51
- if (ar || !(i in from)) {
52
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
53
- ar[i] = from[i];
54
- }
55
- }
56
- return to.concat(ar || Array.prototype.slice.call(from));
57
- };
58
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
59
3
  import { zodResolver } from "@hookform/resolvers/zod";
60
4
  import { addReview, deleteReview, editReview, getReviewsById } from "@myrjfa/state/dist/lib/actions";
@@ -72,55 +16,56 @@ import { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle }
72
16
  import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage, } from "../misc/form";
73
17
  import { Separator } from "../misc/separator";
74
18
  import { Textarea } from "../misc/textarea";
75
- var StarRating = function (_a) {
76
- var value = _a.value, onChange = _a.onChange, onHover = _a.onHover, _b = _a.size, size = _b === void 0 ? 8 : _b, _c = _a.interactive, interactive = _c === void 0 ? false : _c;
77
- return (_jsx("div", { className: "flex space-x-1", children: [1, 2, 3, 4, 5].map(function (star) { return (_jsx("button", { type: "button", onClick: function () { return interactive && (onChange === null || onChange === void 0 ? void 0 : onChange(star)); }, onMouseEnter: function () { return interactive && (onHover === null || onHover === void 0 ? void 0 : onHover(star)); }, onMouseLeave: function () { return interactive && (onHover === null || onHover === void 0 ? void 0 : onHover(null)); }, className: "focus:outline-none text-".concat(size, "xl"), children: _jsx(StarIcon, { className: "h-".concat(size, " w-").concat(size, " ").concat(star <= value ? 'text-yellow-400 fill-yellow-400' : 'text-gray-300') }) }, star)); }) }));
19
+ const StarRating = ({ value, onChange, onHover, size = 8, interactive = false }) => {
20
+ return (_jsx("div", { className: "flex space-x-1", children: [1, 2, 3, 4, 5].map((star) => (_jsx("button", { type: "button", onClick: () => interactive && (onChange === null || onChange === void 0 ? void 0 : onChange(star)), onMouseEnter: () => interactive && (onHover === null || onHover === void 0 ? void 0 : onHover(star)), onMouseLeave: () => interactive && (onHover === null || onHover === void 0 ? void 0 : onHover(null)), className: `focus:outline-none text-${size}xl`, children: _jsx(StarIcon, { className: `h-${size} w-${size} ${star <= value ? 'text-yellow-400 fill-yellow-400' : 'text-gray-300'}` }) }, star))) }));
78
21
  };
79
- export default function ReviewPage(_a) {
80
- var _this = this;
81
- var _b;
82
- var title = _a.title, subtitle = _a.subtitle, targetId = _a.targetId, _c = _a.targetType, targetType = _c === void 0 ? "opportunity" : _c, _d = _a.editable, editable = _d === void 0 ? false : _d, _e = _a.initialReviews, initialReviews = _e === void 0 ? [] : _e, _f = _a.reviewCategory, reviewCategory = _f === void 0 ? "review" : _f;
83
- var user = useAtomValue(userAtom);
84
- var loading = useAtomValue(userLoadingAtom);
85
- var _g = useState((_b = initialReviews.find(function (r) { return r.reviewerUsername === (user === null || user === void 0 ? void 0 : user.username); })) !== null && _b !== void 0 ? _b : null), review = _g[0], setReview = _g[1];
86
- var _h = useState(initialReviews), reviews = _h[0], setReviews = _h[1];
87
- var _j = useState([]), displayReviews = _j[0], setDisplayReviews = _j[1];
88
- var _k = useState(null), hoveredRating = _k[0], setHoveredRating = _k[1];
89
- var _l = useState(false), isSubmitting = _l[0], setIsSubmitting = _l[1];
90
- var _m = useState(false), isDeleting = _m[0], setIsDeleting = _m[1];
91
- var _o = useState(false), isFormInitialized = _o[0], setIsFormInitialized = _o[1];
92
- var form = useForm({
22
+ export default function ReviewPage({ title, subtitle, targetId, targetType = "opportunity", editable = false, initialReviews = [], reviewCategory = "review", }) {
23
+ var _a;
24
+ const user = useAtomValue(userAtom);
25
+ const loading = useAtomValue(userLoadingAtom);
26
+ const [review, setReview] = useState(Array.isArray(initialReviews) ? ((_a = initialReviews.find((r) => r.reviewerUsername === (user === null || user === void 0 ? void 0 : user.username))) !== null && _a !== void 0 ? _a : null) : null);
27
+ const [reviews, setReviews] = useState(initialReviews);
28
+ const [displayReviews, setDisplayReviews] = useState([]);
29
+ const [page, setPage] = useState(1);
30
+ const [hasMore, setHasMore] = useState(false);
31
+ const [totalCount, setTotalCount] = useState(Array.isArray(initialReviews) ? initialReviews.length : 0);
32
+ const [hoveredRating, setHoveredRating] = useState(null);
33
+ const [isSubmitting, setIsSubmitting] = useState(false);
34
+ const [isDeleting, setIsDeleting] = useState(false);
35
+ const [isFormInitialized, setIsFormInitialized] = useState(false);
36
+ const [isLoadingMore, setIsLoadingMore] = useState(false);
37
+ const form = useForm({
93
38
  resolver: zodResolver(reviewBasicSchema),
94
39
  defaultValues: {
95
40
  rating: reviewCategory === "comment" ? 1 : ((review === null || review === void 0 ? void 0 : review.rating) || 0),
96
41
  comment: (review === null || review === void 0 ? void 0 : review.comment) || "",
97
42
  },
98
43
  });
99
- var ratingValue = hoveredRating !== null && hoveredRating !== void 0 ? hoveredRating : form.watch("rating");
100
- useEffect(function () {
44
+ const ratingValue = hoveredRating !== null && hoveredRating !== void 0 ? hoveredRating : form.watch("rating");
45
+ useEffect(() => {
101
46
  if (loading)
102
47
  return;
103
- var fetchData = function () { return __awaiter(_this, void 0, void 0, function () {
104
- var response, myReview;
105
- return __generator(this, function (_a) {
106
- switch (_a.label) {
107
- case 0: return [4 /*yield*/, getReviewsById(targetId, targetType)];
108
- case 1:
109
- response = _a.sent();
110
- if (response === null || response === void 0 ? void 0 : response.error) {
111
- console.error("Error: " + response.error);
112
- }
113
- else {
114
- setReviews(response.reviews);
115
- myReview = response.reviews.find(function (r) { return r.reviewerUsername === (user === null || user === void 0 ? void 0 : user.username); });
116
- setReview(myReview !== null && myReview !== void 0 ? myReview : null);
117
- form.reset({ rating: reviewCategory === "comment" ? 1 : ((myReview === null || myReview === void 0 ? void 0 : myReview.rating) || 0), comment: (myReview === null || myReview === void 0 ? void 0 : myReview.comment) || "" });
118
- setIsFormInitialized(true);
119
- }
120
- return [2 /*return*/];
121
- }
122
- });
123
- }); };
48
+ const fetchData = async () => {
49
+ // Cast to any to bypass stale type definitions in @myrjfa/state/dist
50
+ const response = await getReviewsById(targetId, targetType, { page: 1, limit: 10 });
51
+ if (response === null || response === void 0 ? void 0 : response.error) {
52
+ console.error("Error: " + response.error);
53
+ }
54
+ else if (Array.isArray(response.reviews)) {
55
+ setReviews(response.reviews);
56
+ setTotalCount(response.totalCount);
57
+ setHasMore(response.hasMore);
58
+ setPage(1);
59
+ const myReview = response.reviews.find((r) => r.reviewerUsername === (user === null || user === void 0 ? void 0 : user.username));
60
+ setReview(myReview !== null && myReview !== void 0 ? myReview : null);
61
+ form.reset({ rating: reviewCategory === "comment" ? 1 : ((myReview === null || myReview === void 0 ? void 0 : myReview.rating) || 0), comment: (myReview === null || myReview === void 0 ? void 0 : myReview.comment) || "" });
62
+ setIsFormInitialized(true);
63
+ }
64
+ else {
65
+ setReviews([]);
66
+ setIsFormInitialized(true);
67
+ }
68
+ };
124
69
  if (!initialReviews || initialReviews.length === 0) {
125
70
  fetchData();
126
71
  }
@@ -128,7 +73,28 @@ export default function ReviewPage(_a) {
128
73
  setIsFormInitialized(true); // Initialize immediately if already present
129
74
  }
130
75
  }, [targetId, targetType, user, loading]);
131
- useEffect(function () {
76
+ const handleLoadMore = async () => {
77
+ if (isLoadingMore || !hasMore)
78
+ return;
79
+ setIsLoadingMore(true);
80
+ try {
81
+ const nextPage = page + 1;
82
+ // Cast to any to bypass stale type definitions in @myrjfa/state/dist
83
+ const response = await getReviewsById(targetId, targetType, { page: nextPage, limit: 10 });
84
+ if (response === null || response === void 0 ? void 0 : response.error) {
85
+ console.error("Error: " + response.error);
86
+ }
87
+ else if (Array.isArray(response.reviews)) {
88
+ setReviews([...reviews, ...response.reviews]);
89
+ setPage(nextPage);
90
+ setHasMore(response.hasMore);
91
+ }
92
+ }
93
+ finally {
94
+ setIsLoadingMore(false);
95
+ }
96
+ };
97
+ useEffect(() => {
132
98
  if (review) {
133
99
  form.reset({
134
100
  rating: reviewCategory === "comment" ? 1 : review.rating,
@@ -137,110 +103,77 @@ export default function ReviewPage(_a) {
137
103
  }
138
104
  setIsFormInitialized(true);
139
105
  }, [review]);
140
- useEffect(function () {
141
- setDisplayReviews(reviews.filter(function (r) { return r.comment; }));
106
+ useEffect(() => {
107
+ if (Array.isArray(reviews)) {
108
+ setDisplayReviews(reviews.filter((r) => r.comment));
109
+ }
110
+ else {
111
+ setDisplayReviews([]);
112
+ }
142
113
  }, [reviews]);
143
- var onSubmit = function (data) { return __awaiter(_this, void 0, void 0, function () {
144
- var response, newReview_1, error_1;
145
- return __generator(this, function (_a) {
146
- switch (_a.label) {
147
- case 0:
148
- setIsSubmitting(true);
149
- _a.label = 1;
150
- case 1:
151
- _a.trys.push([1, 9, 10, 11]);
152
- response = void 0;
153
- if (!review) return [3 /*break*/, 3];
154
- return [4 /*yield*/, editReview(review._id, data)];
155
- case 2:
156
- response = _a.sent();
157
- return [3 /*break*/, 5];
158
- case 3: return [4 /*yield*/, addReview(targetId, targetType, data)];
159
- case 4:
160
- response = _a.sent();
161
- _a.label = 5;
162
- case 5:
163
- if (!(response === null || response === void 0 ? void 0 : response.error)) return [3 /*break*/, 7];
164
- return [4 /*yield*/, showAlert(response.error, "Error reviewing ".concat(targetType))];
165
- case 6:
166
- _a.sent();
167
- return [3 /*break*/, 8];
168
- case 7:
169
- newReview_1 = response.review;
170
- if (newReview_1) {
171
- setReviews(__spreadArray([newReview_1], reviews.filter(function (r) { return r._id !== newReview_1._id; }), true));
172
- setReview(newReview_1);
173
- form.reset({ rating: reviewCategory === "comment" ? 1 : newReview_1.rating, comment: newReview_1.comment || "" });
174
- }
175
- _a.label = 8;
176
- case 8: return [3 /*break*/, 11];
177
- case 9:
178
- error_1 = _a.sent();
179
- console.error("Failed to submit review:", error_1);
180
- form.setError("root", { message: "Failed to submit review. Please try again." });
181
- return [3 /*break*/, 11];
182
- case 10:
183
- setIsSubmitting(false);
184
- return [7 /*endfinally*/];
185
- case 11: return [2 /*return*/];
114
+ const onSubmit = async (data) => {
115
+ setIsSubmitting(true);
116
+ try {
117
+ let response;
118
+ if (review) {
119
+ response = await editReview(review._id, data);
120
+ }
121
+ else {
122
+ response = await addReview(targetId, targetType, data);
186
123
  }
187
- });
188
- }); };
189
- var handleDeleteReview = function () { return __awaiter(_this, void 0, void 0, function () {
190
- var confirmed, response, err_1;
191
- return __generator(this, function (_a) {
192
- switch (_a.label) {
193
- case 0:
194
- if (!review)
195
- return [2 /*return*/];
196
- confirmed = true;
197
- return [4 /*yield*/, showAlert("Are you sure you want to delete your review?", undefined, deleteActions(function () {
198
- confirmed = false;
199
- }))];
200
- case 1:
201
- _a.sent();
202
- if (!confirmed)
203
- return [2 /*return*/];
204
- setIsDeleting(true);
205
- _a.label = 2;
206
- case 2:
207
- _a.trys.push([2, 7, 9, 10]);
208
- return [4 /*yield*/, deleteReview(review._id)];
209
- case 3:
210
- response = _a.sent();
211
- if (!(response === null || response === void 0 ? void 0 : response.error)) return [3 /*break*/, 5];
212
- return [4 /*yield*/, showAlert(response.error, "Error deleting review:")];
213
- case 4:
214
- _a.sent();
215
- return [3 /*break*/, 6];
216
- case 5:
217
- setReviews(reviews.filter(function (r) { return r._id !== review._id; }));
218
- setReview(null);
219
- form.reset({ rating: reviewCategory === "comment" ? 1 : 0, comment: "" });
220
- _a.label = 6;
221
- case 6: return [3 /*break*/, 10];
222
- case 7:
223
- err_1 = _a.sent();
224
- console.error("Failed to delete review:", err_1);
225
- return [4 /*yield*/, showAlert("Something went wrong while deleting. Please try again.")];
226
- case 8:
227
- _a.sent();
228
- return [3 /*break*/, 10];
229
- case 9:
230
- setIsDeleting(false);
231
- return [7 /*endfinally*/];
232
- case 10: return [2 /*return*/];
124
+ if (response === null || response === void 0 ? void 0 : response.error) {
125
+ await showAlert(response.error, `Error reviewing ${targetType}`);
233
126
  }
234
- });
235
- }); };
127
+ else {
128
+ const newReview = response.review;
129
+ if (newReview) {
130
+ setReviews([newReview, ...reviews.filter((r) => r._id !== newReview._id)]);
131
+ setReview(newReview);
132
+ setTotalCount(prev => review ? prev : prev + 1);
133
+ form.reset({ rating: reviewCategory === "comment" ? 1 : newReview.rating, comment: newReview.comment || "" });
134
+ }
135
+ }
136
+ }
137
+ catch (error) {
138
+ console.error("Failed to submit review:", error);
139
+ form.setError("root", { message: "Failed to submit review. Please try again." });
140
+ }
141
+ finally {
142
+ setIsSubmitting(false);
143
+ }
144
+ };
145
+ const handleDeleteReview = async () => {
146
+ if (!review)
147
+ return;
148
+ let confirmed = true;
149
+ await showAlert("Are you sure you want to delete your review?", undefined, deleteActions(() => {
150
+ confirmed = false;
151
+ }));
152
+ if (!confirmed)
153
+ return;
154
+ setIsDeleting(true);
155
+ try {
156
+ const response = await deleteReview(review._id);
157
+ if (response === null || response === void 0 ? void 0 : response.error) {
158
+ await showAlert(response.error, "Error deleting review:");
159
+ }
160
+ else {
161
+ setReviews(reviews.filter((r) => r._id !== review._id));
162
+ setReview(null);
163
+ setTotalCount(prev => Math.max(0, prev - 1));
164
+ form.reset({ rating: reviewCategory === "comment" ? 1 : 0, comment: "" });
165
+ }
166
+ }
167
+ catch (err) {
168
+ console.error("Failed to delete review:", err);
169
+ await showAlert("Something went wrong while deleting. Please try again.");
170
+ }
171
+ finally {
172
+ setIsDeleting(false);
173
+ }
174
+ };
236
175
  if (loading || !isFormInitialized)
237
176
  return _jsx(Card, { className: "w-full h-50 flex items-center justify-center", children: "Loading Reviews..." });
238
- var averageRating = reviews.length ? reviews.reduce(function (acc, r) { return acc + r.rating; }, 0) / reviews.length : 0;
239
- return (_jsxs(Card, { className: "w-full mb-10", children: [(title || subtitle) && _jsxs(CardHeader, { children: [title && _jsx(CardTitle, { children: title }), subtitle && _jsx(CardDescription, { children: subtitle })] }), _jsxs(CardContent, { children: [editable && _jsx(Form, __assign({}, form, { children: _jsxs("form", { onSubmit: form.handleSubmit(onSubmit), className: "space-y-6 pb-4", children: [_jsx(FormField, { control: form.control, name: "rating", render: function (_a) {
240
- var field = _a.field;
241
- return (_jsxs(FormItem, { className: reviewCategory === "comment" ? "hidden" : "", children: [_jsx(FormLabel, { children: "Your Rating" }), _jsx(FormControl, { children: _jsx(StarRating, { value: ratingValue, onChange: function (val) { return field.onChange(val); }, onHover: setHoveredRating, interactive: true }) }), _jsx(FormMessage, {})] }));
242
- } }), _jsx(FormField, { control: form.control, name: "comment", render: function (_a) {
243
- var field = _a.field;
244
- return (_jsxs(FormItem, { children: [_jsxs(FormLabel, { children: ["Your ", reviewCategory == "review" ? "Review" : "Comment"] }), _jsx(FormControl, { children: _jsx(Textarea, __assign({ placeholder: "Share your ".concat(reviewCategory == "review" ? "experience" : "thoughts", "..."), className: "resize-none", rows: 4 }, field)) }), _jsx(FormMessage, {})] }));
245
- } }), form.formState.errors.root && (_jsx("p", { className: "text-sm font-medium text-destructive", children: form.formState.errors.root.message })), _jsxs("div", { className: "flex flex-wrap gap-2", children: [_jsx(Button, { type: "submit", disabled: isSubmitting, className: "w-full sm:w-auto", children: isSubmitting ? (reviewCategory == "review" ? "Submitting... Review" : "Posting... Comment") : (reviewCategory == "review" ? "Submit Review" : "Post Comment") }), review && _jsx(Button, { type: "button", variant: "destructive", className: "w-full sm:w-auto", disabled: isDeleting, onClick: handleDeleteReview, children: isDeleting ? "Deleting..." : reviewCategory == "review" ? "Delete Review" : "Delete Comment" })] })] }) })), displayReviews.length > 0 ? (_jsxs("div", { className: "mt-4", children: [_jsxs("div", { className: "flex justify-between items-center mb-4", children: [_jsxs("h3", { className: "text-lg font-medium", children: [reviewCategory == "review" ? "Reviews" : "Comments", " (", displayReviews.length, ")"] }), reviewCategory == "review" && _jsxs("div", { className: "flex items-center", children: [_jsx("span", { className: "font-medium mr-2", children: averageRating.toFixed(1) }), _jsx(StarRating, { value: Math.round(averageRating), size: 5 })] })] }), _jsx(Separator, { className: "my-4" }), _jsx("div", { className: "space-y-6", children: displayReviews.map(function (review) { return (_jsxs("div", { className: "pb-4", children: [_jsxs("div", { className: "flex items-start justify-between", children: [_jsxs("div", { className: "flex items-center", children: [_jsxs(Avatar, { className: "h-10 w-10 mr-3", children: [_jsx(AvatarImage, { src: review.reviewerPic || "/images/profile_placeholder.webp", alt: review.reviewerUsername }), _jsx(AvatarFallback, { children: review.reviewerUsername.charAt(0) })] }), _jsxs("div", { children: [_jsx("h4", { className: "font-medium", children: review.reviewerUsername }), _jsx("p", { className: "text-sm text-gray-500", children: formatDate(review.createdAt) })] })] }), reviewCategory == "review" && _jsx(StarRating, { value: review.rating, size: 4 })] }), _jsx("p", { className: "mt-2 text-gray-600 whitespace-pre-line", children: review.comment }), _jsx(Separator, { className: "mt-4" })] }, review._id)); }) })] })) : (_jsxs("div", { className: "text-center justify-center p-5", children: ["No ", reviewCategory == "comment" ? "comments" : "reviews", " yet"] }))] }), displayReviews.length > 0 && _jsx(CardFooter, { children: _jsx("p", { className: "text-sm text-gray-500", children: "Thank you for sharing your feedback. All reviews are moderated and typically appear within 24-48 hours." }) })] }));
177
+ const averageRating = reviews.length ? reviews.reduce((acc, r) => acc + r.rating, 0) / reviews.length : 0;
178
+ return (_jsxs(Card, { className: "w-full mb-10", children: [(title || subtitle) && _jsxs(CardHeader, { children: [title && _jsx(CardTitle, { children: title }), subtitle && _jsx(CardDescription, { children: subtitle })] }), _jsxs(CardContent, { children: [editable && _jsx(Form, { ...form, children: _jsxs("form", { onSubmit: form.handleSubmit(onSubmit), className: "space-y-6 pb-4", children: [_jsx(FormField, { control: form.control, name: "rating", render: ({ field }) => (_jsxs(FormItem, { className: reviewCategory === "comment" ? "hidden" : "", children: [_jsx(FormLabel, { children: "Your Rating" }), _jsx(FormControl, { children: _jsx(StarRating, { value: ratingValue, onChange: (val) => field.onChange(val), onHover: setHoveredRating, interactive: true }) }), _jsx(FormMessage, {})] })) }), _jsx(FormField, { control: form.control, name: "comment", render: ({ field }) => (_jsxs(FormItem, { children: [_jsxs(FormLabel, { children: ["Your ", reviewCategory == "review" ? "Review" : "Comment"] }), _jsx(FormControl, { children: _jsx(Textarea, { placeholder: `Share your ${reviewCategory == "review" ? "experience" : "thoughts"}...`, className: "resize-none", rows: 4, ...field }) }), _jsx(FormMessage, {})] })) }), form.formState.errors.root && (_jsx("p", { className: "text-sm font-medium text-destructive", children: form.formState.errors.root.message })), _jsxs("div", { className: "flex flex-wrap gap-2", children: [_jsx(Button, { type: "submit", disabled: isSubmitting, className: "w-full sm:w-auto", children: isSubmitting ? (reviewCategory == "review" ? "Submitting... Review" : "Posting... Comment") : (reviewCategory == "review" ? "Submit Review" : "Post Comment") }), review && _jsx(Button, { type: "button", variant: "destructive", className: "w-full sm:w-auto", disabled: isDeleting, onClick: handleDeleteReview, children: isDeleting ? "Deleting..." : reviewCategory == "review" ? "Delete Review" : "Delete Comment" })] })] }) }), displayReviews.length > 0 ? (_jsxs("div", { className: "mt-4", children: [_jsxs("div", { className: "flex justify-between items-center mb-4", children: [_jsxs("h3", { className: "text-lg font-medium", children: [reviewCategory == "review" ? "Reviews" : "Comments", " (", totalCount || displayReviews.length, ")"] }), reviewCategory == "review" && _jsxs("div", { className: "flex items-center", children: [_jsx("span", { className: "font-medium mr-2", children: averageRating.toFixed(1) }), _jsx(StarRating, { value: Math.round(averageRating), size: 5 })] })] }), _jsx(Separator, { className: "my-4" }), _jsx("div", { className: "space-y-6", children: displayReviews.map((review) => (_jsxs("div", { className: "pb-4", children: [_jsxs("div", { className: "flex items-start justify-between", children: [_jsxs("div", { className: "flex items-center", children: [_jsxs(Avatar, { className: "h-10 w-10 mr-3", children: [_jsx(AvatarImage, { src: review.reviewerPic || "/images/profile_placeholder.webp", alt: review.reviewerUsername }), _jsx(AvatarFallback, { children: review.reviewerUsername.charAt(0) })] }), _jsxs("div", { children: [_jsx("h4", { className: "font-medium", children: review.reviewerUsername }), _jsx("p", { className: "text-sm text-gray-500", children: formatDate(review.createdAt) })] })] }), reviewCategory == "review" && _jsx(StarRating, { value: review.rating, size: 4 })] }), _jsx("p", { className: "mt-2 text-gray-600 whitespace-pre-line", children: review.comment }), _jsx(Separator, { className: "mt-4" })] }, review._id))) }), hasMore && (_jsx("div", { className: "flex justify-center mt-6", children: _jsx(Button, { variant: "outline", onClick: handleLoadMore, disabled: isLoadingMore, className: "w-full sm:w-auto", children: isLoadingMore ? "Loading more..." : "View More" }) }))] })) : (_jsxs("div", { className: "text-center justify-center p-5", children: ["No ", reviewCategory == "comment" ? "comments" : "reviews", " yet"] }))] }), displayReviews.length > 0 && _jsx(CardFooter, { children: _jsx("p", { className: "text-sm text-gray-500", children: "Thank you for sharing your feedback. All reviews are moderated and typically appear within 24-48 hours." }) })] }));
246
179
  }
@@ -1,44 +1,18 @@
1
1
  "use client";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __rest = (this && this.__rest) || function (s, e) {
14
- var t = {};
15
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
- t[p] = s[p];
17
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
- t[p[i]] = s[p[i]];
21
- }
22
- return t;
23
- };
24
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
25
3
  import * as AccordionPrimitive from "@radix-ui/react-accordion";
26
4
  import { cn } from "@myrjfa/state/dist/lib/utils";
27
5
  import { ChevronDownIcon } from "lucide-react";
28
- function Accordion(_a) {
29
- var props = __rest(_a, []);
30
- return _jsx(AccordionPrimitive.Root, __assign({ "data-slot": "accordion" }, props));
6
+ function Accordion({ ...props }) {
7
+ return _jsx(AccordionPrimitive.Root, { "data-slot": "accordion", ...props });
31
8
  }
32
- function AccordionItem(_a) {
33
- var className = _a.className, props = __rest(_a, ["className"]);
34
- return (_jsx(AccordionPrimitive.Item, __assign({ "data-slot": "accordion-item", className: cn("border-b last:border-b-0", className) }, props)));
9
+ function AccordionItem({ className, ...props }) {
10
+ return (_jsx(AccordionPrimitive.Item, { "data-slot": "accordion-item", className: cn("border-b last:border-b-0", className), ...props }));
35
11
  }
36
- function AccordionTrigger(_a) {
37
- var className = _a.className, children = _a.children, props = __rest(_a, ["className", "children"]);
38
- return (_jsx(AccordionPrimitive.Header, { className: "flex", children: _jsxs(AccordionPrimitive.Trigger, __assign({ "data-slot": "accordion-trigger", className: cn("focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180", className) }, props, { children: [children, _jsx(ChevronDownIcon, { className: "text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200" })] })) }));
12
+ function AccordionTrigger({ className, children, ...props }) {
13
+ return (_jsx(AccordionPrimitive.Header, { className: "flex", children: _jsxs(AccordionPrimitive.Trigger, { "data-slot": "accordion-trigger", className: cn("focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180", className), ...props, children: [children, _jsx(ChevronDownIcon, { className: "text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200" })] }) }));
39
14
  }
40
- function AccordionContent(_a) {
41
- var className = _a.className, children = _a.children, props = __rest(_a, ["className", "children"]);
42
- return (_jsx(AccordionPrimitive.Content, __assign({ "data-slot": "accordion-content", className: "data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm" }, props, { children: _jsx("div", { className: cn("pt-0 pb-4", className), children: children }) })));
15
+ function AccordionContent({ className, children, ...props }) {
16
+ return (_jsx(AccordionPrimitive.Content, { "data-slot": "accordion-content", className: "data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm", ...props, children: _jsx("div", { className: cn("pt-0 pb-4", className), children: children }) }));
43
17
  }
44
18
  export { Accordion, AccordionItem, AccordionTrigger, AccordionContent };
@@ -1,72 +1,39 @@
1
1
  "use client";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __rest = (this && this.__rest) || function (s, e) {
14
- var t = {};
15
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
- t[p] = s[p];
17
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
- t[p[i]] = s[p[i]];
21
- }
22
- return t;
23
- };
24
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
25
3
  import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
26
4
  import { cn } from "@myrjfa/state/dist/lib/utils";
27
5
  import { buttonVariants } from "./button";
28
- function AlertDialog(_a) {
29
- var props = __rest(_a, []);
30
- return _jsx(AlertDialogPrimitive.Root, __assign({ "data-slot": "alert-dialog" }, props));
6
+ function AlertDialog({ ...props }) {
7
+ return _jsx(AlertDialogPrimitive.Root, { "data-slot": "alert-dialog", ...props });
31
8
  }
32
- function AlertDialogTrigger(_a) {
33
- var props = __rest(_a, []);
34
- return (_jsx(AlertDialogPrimitive.Trigger, __assign({ "data-slot": "alert-dialog-trigger" }, props)));
9
+ function AlertDialogTrigger({ ...props }) {
10
+ return (_jsx(AlertDialogPrimitive.Trigger, { "data-slot": "alert-dialog-trigger", ...props }));
35
11
  }
36
- function AlertDialogPortal(_a) {
37
- var props = __rest(_a, []);
38
- return (_jsx(AlertDialogPrimitive.Portal, __assign({ "data-slot": "alert-dialog-portal" }, props)));
12
+ function AlertDialogPortal({ ...props }) {
13
+ return (_jsx(AlertDialogPrimitive.Portal, { "data-slot": "alert-dialog-portal", ...props }));
39
14
  }
40
- function AlertDialogOverlay(_a) {
41
- var className = _a.className, props = __rest(_a, ["className"]);
42
- return (_jsx(AlertDialogPrimitive.Overlay, __assign({ "data-slot": "alert-dialog-overlay", className: cn("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50", className) }, props)));
15
+ function AlertDialogOverlay({ className, ...props }) {
16
+ return (_jsx(AlertDialogPrimitive.Overlay, { "data-slot": "alert-dialog-overlay", className: cn("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50", className), ...props }));
43
17
  }
44
- function AlertDialogContent(_a) {
45
- var className = _a.className, props = __rest(_a, ["className"]);
46
- return (_jsxs(AlertDialogPortal, { children: [_jsx(AlertDialogOverlay, {}), _jsx(AlertDialogPrimitive.Content, __assign({ "data-slot": "alert-dialog-content", className: cn("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg", className) }, props))] }));
18
+ function AlertDialogContent({ className, ...props }) {
19
+ return (_jsxs(AlertDialogPortal, { children: [_jsx(AlertDialogOverlay, {}), _jsx(AlertDialogPrimitive.Content, { "data-slot": "alert-dialog-content", className: cn("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 sm:max-w-lg", className), ...props })] }));
47
20
  }
48
- function AlertDialogHeader(_a) {
49
- var className = _a.className, props = __rest(_a, ["className"]);
50
- return (_jsx("div", __assign({ "data-slot": "alert-dialog-header", className: cn("flex flex-col gap-2 text-center sm:text-left", className) }, props)));
21
+ function AlertDialogHeader({ className, ...props }) {
22
+ return (_jsx("div", { "data-slot": "alert-dialog-header", className: cn("flex flex-col gap-2 text-center sm:text-left", className), ...props }));
51
23
  }
52
- function AlertDialogFooter(_a) {
53
- var className = _a.className, props = __rest(_a, ["className"]);
54
- return (_jsx("div", __assign({ "data-slot": "alert-dialog-footer", className: cn("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", className) }, props)));
24
+ function AlertDialogFooter({ className, ...props }) {
25
+ return (_jsx("div", { "data-slot": "alert-dialog-footer", className: cn("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", className), ...props }));
55
26
  }
56
- function AlertDialogTitle(_a) {
57
- var className = _a.className, props = __rest(_a, ["className"]);
58
- return (_jsx(AlertDialogPrimitive.Title, __assign({ "data-slot": "alert-dialog-title", className: cn("text-lg font-semibold", className) }, props)));
27
+ function AlertDialogTitle({ className, ...props }) {
28
+ return (_jsx(AlertDialogPrimitive.Title, { "data-slot": "alert-dialog-title", className: cn("text-lg font-semibold", className), ...props }));
59
29
  }
60
- function AlertDialogDescription(_a) {
61
- var className = _a.className, props = __rest(_a, ["className"]);
62
- return (_jsx(AlertDialogPrimitive.Description, __assign({ "data-slot": "alert-dialog-description", className: cn("text-muted-foreground text-sm", className) }, props)));
30
+ function AlertDialogDescription({ className, ...props }) {
31
+ return (_jsx(AlertDialogPrimitive.Description, { "data-slot": "alert-dialog-description", className: cn("text-muted-foreground text-sm", className), ...props }));
63
32
  }
64
- function AlertDialogAction(_a) {
65
- var className = _a.className, props = __rest(_a, ["className"]);
66
- return (_jsx(AlertDialogPrimitive.Action, __assign({ className: cn(buttonVariants(), className) }, props)));
33
+ function AlertDialogAction({ className, ...props }) {
34
+ return (_jsx(AlertDialogPrimitive.Action, { className: cn(buttonVariants(), className), ...props }));
67
35
  }
68
- function AlertDialogCancel(_a) {
69
- var className = _a.className, props = __rest(_a, ["className"]);
70
- return (_jsx(AlertDialogPrimitive.Cancel, __assign({ className: cn(buttonVariants({ variant: "outline" }), className) }, props)));
36
+ function AlertDialogCancel({ className, ...props }) {
37
+ return (_jsx(AlertDialogPrimitive.Cancel, { className: cn(buttonVariants({ variant: "outline" }), className), ...props }));
71
38
  }
72
39
  export { AlertDialog, AlertDialogPortal, AlertDialogOverlay, AlertDialogTrigger, AlertDialogContent, AlertDialogHeader, AlertDialogFooter, AlertDialogTitle, AlertDialogDescription, AlertDialogAction, AlertDialogCancel, };
@@ -1,29 +1,7 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
- var __rest = (this && this.__rest) || function (s, e) {
13
- var t = {};
14
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
- t[p] = s[p];
16
- if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
- for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
- if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
- t[p[i]] = s[p[i]];
20
- }
21
- return t;
22
- };
23
1
  import { jsx as _jsx } from "react/jsx-runtime";
24
2
  import { cn } from "@myrjfa/state/dist/lib/utils";
25
3
  import { cva } from "class-variance-authority";
26
- var alertVariants = cva("relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current", {
4
+ const alertVariants = cva("relative w-full rounded-lg border px-4 py-3 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current", {
27
5
  variants: {
28
6
  variant: {
29
7
  default: "bg-card text-card-foreground",
@@ -34,16 +12,13 @@ var alertVariants = cva("relative w-full rounded-lg border px-4 py-3 text-sm gri
34
12
  variant: "default",
35
13
  },
36
14
  });
37
- function Alert(_a) {
38
- var className = _a.className, variant = _a.variant, props = __rest(_a, ["className", "variant"]);
39
- return (_jsx("div", __assign({ role: "alert", className: cn(alertVariants({ variant: variant }), className) }, props), "alert"));
15
+ function Alert({ className, variant, ...props }) {
16
+ return (_jsx("div", { role: "alert", className: cn(alertVariants({ variant }), className), ...props }, "alert"));
40
17
  }
41
- function AlertTitle(_a) {
42
- var className = _a.className, props = __rest(_a, ["className"]);
43
- return (_jsx("div", __assign({ className: cn("col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight", className) }, props), "alert-title"));
18
+ function AlertTitle({ className, ...props }) {
19
+ return (_jsx("div", { className: cn("col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight", className), ...props }, "alert-title"));
44
20
  }
45
- function AlertDescription(_a) {
46
- var className = _a.className, props = __rest(_a, ["className"]);
47
- return (_jsx("div", __assign({ className: cn("text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed", className) }, props), "alert-description"));
21
+ function AlertDescription({ className, ...props }) {
22
+ return (_jsx("div", { className: cn("text-muted-foreground col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed", className), ...props }, "alert-description"));
48
23
  }
49
24
  export { Alert, AlertTitle, AlertDescription };