@retinalabsllc/zairusjs 21.1.2 → 21.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +57 -48
- package/dist/index.mjs +57 -48
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -3388,6 +3388,7 @@ var ManagedDocument = ({
|
|
|
3388
3388
|
var import_react55 = __toESM(require("react"));
|
|
3389
3389
|
var import_react56 = require("@hugeicons/react");
|
|
3390
3390
|
var import_core_free_icons20 = require("@hugeicons/core-free-icons");
|
|
3391
|
+
var import_react_hot_toast10 = __toESM(require("react-hot-toast"));
|
|
3391
3392
|
var TextInput2 = ({
|
|
3392
3393
|
label,
|
|
3393
3394
|
value,
|
|
@@ -3462,13 +3463,11 @@ var ManagedContactBlock = ({
|
|
|
3462
3463
|
company,
|
|
3463
3464
|
socials
|
|
3464
3465
|
}) => {
|
|
3465
|
-
const [formData, setFormData] = (0, import_react55.useState)({ name: "", title: "", phone: "", message: "" });
|
|
3466
|
+
const [formData, setFormData] = (0, import_react55.useState)({ name: "", email: "", title: "", phone: "", message: "" });
|
|
3466
3467
|
const [status, setStatus] = (0, import_react55.useState)("idle");
|
|
3467
|
-
const [responseMessage, setResponseMessage] = (0, import_react55.useState)("");
|
|
3468
3468
|
const handleSubmit = async (e) => {
|
|
3469
3469
|
e.preventDefault();
|
|
3470
3470
|
setStatus("loading");
|
|
3471
|
-
setResponseMessage("");
|
|
3472
3471
|
try {
|
|
3473
3472
|
const res = await fetch("/api/contact", {
|
|
3474
3473
|
method: "POST",
|
|
@@ -3478,15 +3477,15 @@ var ManagedContactBlock = ({
|
|
|
3478
3477
|
const data = await res.json();
|
|
3479
3478
|
if (res.ok) {
|
|
3480
3479
|
setStatus("success");
|
|
3481
|
-
|
|
3482
|
-
setFormData({ name: "", title: "", phone: "", message: "" });
|
|
3480
|
+
import_react_hot_toast10.default.success(data.message || "Message sent successfully!");
|
|
3481
|
+
setFormData({ name: "", email: "", title: "", phone: "", message: "" });
|
|
3483
3482
|
} else {
|
|
3484
3483
|
setStatus("error");
|
|
3485
|
-
|
|
3484
|
+
import_react_hot_toast10.default.error(data.error || "Failed to send message.");
|
|
3486
3485
|
}
|
|
3487
3486
|
} catch (error) {
|
|
3488
3487
|
setStatus("error");
|
|
3489
|
-
|
|
3488
|
+
import_react_hot_toast10.default.error("An unexpected error occurred. Please try again.");
|
|
3490
3489
|
}
|
|
3491
3490
|
};
|
|
3492
3491
|
return /* @__PURE__ */ import_react55.default.createElement("div", { className: "grow pt-4 pb-20 px-4 md:px-8 w-full flex justify-center z-10 relative" }, /* @__PURE__ */ import_react55.default.createElement("div", { className: "relative bg-white rounded-2xl w-full max-w-7xl mx-auto overflow-hidden" }, /* @__PURE__ */ import_react55.default.createElement(
|
|
@@ -3533,6 +3532,16 @@ var ManagedContactBlock = ({
|
|
|
3533
3532
|
disabled: status === "loading"
|
|
3534
3533
|
}
|
|
3535
3534
|
), /* @__PURE__ */ import_react55.default.createElement(
|
|
3535
|
+
TextInput2,
|
|
3536
|
+
{
|
|
3537
|
+
label: "EMAIL ADDRESS",
|
|
3538
|
+
type: "email",
|
|
3539
|
+
placeholder: "john@example.com",
|
|
3540
|
+
value: formData.email,
|
|
3541
|
+
onChange: (val) => setFormData({ ...formData, email: val }),
|
|
3542
|
+
disabled: status === "loading"
|
|
3543
|
+
}
|
|
3544
|
+
)), /* @__PURE__ */ import_react55.default.createElement("div", { className: "flex flex-col md:flex-row gap-6" }, /* @__PURE__ */ import_react55.default.createElement(
|
|
3536
3545
|
TextInput2,
|
|
3537
3546
|
{
|
|
3538
3547
|
label: "SUBJECT TITLE",
|
|
@@ -3541,7 +3550,7 @@ var ManagedContactBlock = ({
|
|
|
3541
3550
|
onChange: (val) => setFormData({ ...formData, title: val }),
|
|
3542
3551
|
disabled: status === "loading"
|
|
3543
3552
|
}
|
|
3544
|
-
)
|
|
3553
|
+
), /* @__PURE__ */ import_react55.default.createElement(
|
|
3545
3554
|
TextInput2,
|
|
3546
3555
|
{
|
|
3547
3556
|
label: "PHONE NUMBER (OPTIONAL)",
|
|
@@ -3551,7 +3560,7 @@ var ManagedContactBlock = ({
|
|
|
3551
3560
|
onChange: (val) => setFormData({ ...formData, phone: val }),
|
|
3552
3561
|
disabled: status === "loading"
|
|
3553
3562
|
}
|
|
3554
|
-
), /* @__PURE__ */ import_react55.default.createElement(
|
|
3563
|
+
)), /* @__PURE__ */ import_react55.default.createElement(
|
|
3555
3564
|
TextAreaInput,
|
|
3556
3565
|
{
|
|
3557
3566
|
label: "MESSAGE",
|
|
@@ -3560,12 +3569,12 @@ var ManagedContactBlock = ({
|
|
|
3560
3569
|
onChange: (val) => setFormData({ ...formData, message: val }),
|
|
3561
3570
|
disabled: status === "loading"
|
|
3562
3571
|
}
|
|
3563
|
-
),
|
|
3572
|
+
), /* @__PURE__ */ import_react55.default.createElement("div", { className: "pt-4" }, /* @__PURE__ */ import_react55.default.createElement(
|
|
3564
3573
|
ThreeDActionButton2,
|
|
3565
3574
|
{
|
|
3566
3575
|
type: "submit",
|
|
3567
3576
|
isLoading: status === "loading",
|
|
3568
|
-
disabled: !formData.name || !formData.title || !formData.message
|
|
3577
|
+
disabled: !formData.name || !formData.email || !formData.title || !formData.message
|
|
3569
3578
|
},
|
|
3570
3579
|
"Submit Message"
|
|
3571
3580
|
)))))))));
|
|
@@ -4263,7 +4272,7 @@ var UniversalVerificationPage = ({
|
|
|
4263
4272
|
// src/components/UniversalRewardPage.tsx
|
|
4264
4273
|
var import_react73 = __toESM(require("react"));
|
|
4265
4274
|
var import_axios = __toESM(require("axios"));
|
|
4266
|
-
var
|
|
4275
|
+
var import_react_hot_toast11 = __toESM(require("react-hot-toast"));
|
|
4267
4276
|
var import_react_confetti = __toESM(require("react-confetti"));
|
|
4268
4277
|
var import_react_use = require("react-use");
|
|
4269
4278
|
var import_react74 = require("@hugeicons/react");
|
|
@@ -4314,7 +4323,7 @@ var UniversalRewardPage = ({
|
|
|
4314
4323
|
const res = await import_axios.default.post(selectedReward.endpoint, selectedReward.config);
|
|
4315
4324
|
if (res.data.success) {
|
|
4316
4325
|
setShowConfetti(true);
|
|
4317
|
-
|
|
4326
|
+
import_react_hot_toast11.default.success(res.data.message || "Reward claimed successfully!");
|
|
4318
4327
|
setSelectedReward(null);
|
|
4319
4328
|
onRefresh();
|
|
4320
4329
|
setTimeout(() => {
|
|
@@ -4322,7 +4331,7 @@ var UniversalRewardPage = ({
|
|
|
4322
4331
|
}, 6e3);
|
|
4323
4332
|
}
|
|
4324
4333
|
} catch (error) {
|
|
4325
|
-
|
|
4334
|
+
import_react_hot_toast11.default.error(error.response?.data?.error || "Failed to claim reward. Please try again.");
|
|
4326
4335
|
} finally {
|
|
4327
4336
|
setIsClaiming(false);
|
|
4328
4337
|
}
|
|
@@ -4372,7 +4381,7 @@ var UniversalRewardPage = ({
|
|
|
4372
4381
|
|
|
4373
4382
|
// src/components/UniversalReferralPage.tsx
|
|
4374
4383
|
var import_react75 = __toESM(require("react"));
|
|
4375
|
-
var
|
|
4384
|
+
var import_react_hot_toast12 = __toESM(require("react-hot-toast"));
|
|
4376
4385
|
var import_react76 = require("@hugeicons/react");
|
|
4377
4386
|
var import_core_free_icons27 = require("@hugeicons/core-free-icons");
|
|
4378
4387
|
var PageSpinner5 = () => /* @__PURE__ */ import_react75.default.createElement("div", { className: "flex justify-center items-center py-12" }, /* @__PURE__ */ import_react75.default.createElement(import_react76.HugeiconsIcon, { icon: import_core_free_icons27.Loading03Icon, size: 32, className: "animate-spin mb-4 text-black" }));
|
|
@@ -4401,9 +4410,9 @@ var UniversalReferralPage = ({
|
|
|
4401
4410
|
if (!referralCode) return;
|
|
4402
4411
|
try {
|
|
4403
4412
|
await navigator.clipboard.writeText(referralCode);
|
|
4404
|
-
|
|
4413
|
+
import_react_hot_toast12.default.success("Referral code copied!");
|
|
4405
4414
|
} catch {
|
|
4406
|
-
|
|
4415
|
+
import_react_hot_toast12.default.error("Failed to copy code.");
|
|
4407
4416
|
}
|
|
4408
4417
|
};
|
|
4409
4418
|
const AvatarLogo2 = ({ src, alt, name, sizeClass = "w-10 h-10" }) => {
|
|
@@ -4708,7 +4717,7 @@ var PinDialerBottomSheet = ({
|
|
|
4708
4717
|
|
|
4709
4718
|
// src/components/UniversalBuyCryptoPage.tsx
|
|
4710
4719
|
var import_react81 = __toESM(require("react"));
|
|
4711
|
-
var
|
|
4720
|
+
var import_react_hot_toast13 = __toESM(require("react-hot-toast"));
|
|
4712
4721
|
var import_react82 = require("@hugeicons/react");
|
|
4713
4722
|
var import_core_free_icons30 = require("@hugeicons/core-free-icons");
|
|
4714
4723
|
var CircularLogo = ({ src, alt, fallbackText }) => {
|
|
@@ -4831,7 +4840,7 @@ var UniversalBuyCryptoPage = ({
|
|
|
4831
4840
|
if (result.ratePerToken) setRateDisplay(result.ratePerToken);
|
|
4832
4841
|
if (result.rateKey) setCurrentRateKey(result.rateKey);
|
|
4833
4842
|
} catch {
|
|
4834
|
-
|
|
4843
|
+
import_react_hot_toast13.default.error("Failed to calculate live rate.");
|
|
4835
4844
|
} finally {
|
|
4836
4845
|
setIsCalculating(false);
|
|
4837
4846
|
}
|
|
@@ -4862,11 +4871,11 @@ var UniversalBuyCryptoPage = ({
|
|
|
4862
4871
|
const handleCheckout = async () => {
|
|
4863
4872
|
const numFiat = parseFloat(fiatAmount) || 0;
|
|
4864
4873
|
const numCrypto = parseFloat(cryptoAmount) || 0;
|
|
4865
|
-
if (numFiat <= 0 || numCrypto <= 0) return
|
|
4874
|
+
if (numFiat <= 0 || numCrypto <= 0) return import_react_hot_toast13.default.error("Please enter a valid amount.");
|
|
4866
4875
|
if (selectedNetwork.minimumWithdrawal && numCrypto < selectedNetwork.minimumWithdrawal) {
|
|
4867
|
-
return
|
|
4876
|
+
return import_react_hot_toast13.default.error(`Minimum purchase for ${selectedNetwork.name} is ${selectedNetwork.minimumWithdrawal} ${selectedCrypto.code}`);
|
|
4868
4877
|
}
|
|
4869
|
-
if (!recipientAddress.trim() || !isAddressValid) return
|
|
4878
|
+
if (!recipientAddress.trim() || !isAddressValid) return import_react_hot_toast13.default.error("Please enter a valid wallet address.");
|
|
4870
4879
|
if (onSubmitCheckout) {
|
|
4871
4880
|
setIsSubmitting(true);
|
|
4872
4881
|
try {
|
|
@@ -5065,7 +5074,7 @@ var UniversalHuddlesPage = ({
|
|
|
5065
5074
|
// src/components/UniversalMembersPage.tsx
|
|
5066
5075
|
var import_react85 = __toESM(require("react"));
|
|
5067
5076
|
var import_react86 = require("@hugeicons/react");
|
|
5068
|
-
var
|
|
5077
|
+
var import_react_hot_toast14 = __toESM(require("react-hot-toast"));
|
|
5069
5078
|
var import_core_free_icons32 = require("@hugeicons/core-free-icons");
|
|
5070
5079
|
var MemberAvatar2 = ({ src, status }) => {
|
|
5071
5080
|
const [loaded, setLoaded] = (0, import_react85.useState)(false);
|
|
@@ -5160,11 +5169,11 @@ var UniversalMembersPage = ({
|
|
|
5160
5169
|
setIsRemoving(true);
|
|
5161
5170
|
try {
|
|
5162
5171
|
await onRemoveMember(memberToRemove.id);
|
|
5163
|
-
|
|
5172
|
+
import_react_hot_toast14.default.success("Member removed successfully.");
|
|
5164
5173
|
setExpandedId(null);
|
|
5165
5174
|
setMemberToRemove(null);
|
|
5166
5175
|
} catch (error) {
|
|
5167
|
-
|
|
5176
|
+
import_react_hot_toast14.default.error("Failed to remove member.");
|
|
5168
5177
|
} finally {
|
|
5169
5178
|
setIsRemoving(false);
|
|
5170
5179
|
}
|
|
@@ -5178,7 +5187,7 @@ var UniversalMembersPage = ({
|
|
|
5178
5187
|
setInviteEmail("");
|
|
5179
5188
|
setIsInviteMode(false);
|
|
5180
5189
|
} catch (error) {
|
|
5181
|
-
|
|
5190
|
+
import_react_hot_toast14.default.error(error.message || "Failed to send invitation.");
|
|
5182
5191
|
} finally {
|
|
5183
5192
|
setIsInviting(false);
|
|
5184
5193
|
}
|
|
@@ -5325,7 +5334,7 @@ var UniversalMembersPage = ({
|
|
|
5325
5334
|
var import_react87 = __toESM(require("react"));
|
|
5326
5335
|
var import_navigation6 = require("next/navigation");
|
|
5327
5336
|
var import_react88 = require("@hugeicons/react");
|
|
5328
|
-
var
|
|
5337
|
+
var import_react_hot_toast15 = __toESM(require("react-hot-toast"));
|
|
5329
5338
|
var import_core_free_icons33 = require("@hugeicons/core-free-icons");
|
|
5330
5339
|
var OrgAvatar = ({ src, sizeClass = "w-10 h-10" }) => {
|
|
5331
5340
|
const [loaded, setLoaded] = (0, import_react87.useState)(false);
|
|
@@ -5380,7 +5389,7 @@ var UniversalHome2 = ({
|
|
|
5380
5389
|
await onResolveInvite(selectedNotif, resolution);
|
|
5381
5390
|
window.location.reload();
|
|
5382
5391
|
} catch (error) {
|
|
5383
|
-
|
|
5392
|
+
import_react_hot_toast15.default.error("Failed to process invitation");
|
|
5384
5393
|
setIsResolving(false);
|
|
5385
5394
|
}
|
|
5386
5395
|
};
|
|
@@ -5389,7 +5398,7 @@ var UniversalHome2 = ({
|
|
|
5389
5398
|
try {
|
|
5390
5399
|
if (onLogout) await onLogout();
|
|
5391
5400
|
} catch (e) {
|
|
5392
|
-
|
|
5401
|
+
import_react_hot_toast15.default.error("Failed to log out cleanly.");
|
|
5393
5402
|
} finally {
|
|
5394
5403
|
setIsLoggingOut(false);
|
|
5395
5404
|
setShowLogoutConfirm(false);
|
|
@@ -5542,7 +5551,7 @@ var UniversalHome2 = ({
|
|
|
5542
5551
|
|
|
5543
5552
|
// src/components/UniversalSettings.tsx
|
|
5544
5553
|
var import_react89 = __toESM(require("react"));
|
|
5545
|
-
var
|
|
5554
|
+
var import_react_hot_toast16 = __toESM(require("react-hot-toast"));
|
|
5546
5555
|
var import_react90 = require("@hugeicons/react");
|
|
5547
5556
|
var import_core_free_icons34 = require("@hugeicons/core-free-icons");
|
|
5548
5557
|
var MemberAvatar3 = ({ src, status, sizeClass = "w-10 h-10" }) => {
|
|
@@ -5675,13 +5684,13 @@ var UniversalSettings = ({
|
|
|
5675
5684
|
const file = e.target.files?.[0];
|
|
5676
5685
|
if (!file) return;
|
|
5677
5686
|
if (file.size > 1024 * 1024) {
|
|
5678
|
-
|
|
5687
|
+
import_react_hot_toast16.default.error("Image size must be less than 1MB.");
|
|
5679
5688
|
e.target.value = "";
|
|
5680
5689
|
return;
|
|
5681
5690
|
}
|
|
5682
5691
|
const validTypes = ["image/jpeg", "image/jpg", "image/png"];
|
|
5683
5692
|
if (!validTypes.includes(file.type)) {
|
|
5684
|
-
|
|
5693
|
+
import_react_hot_toast16.default.error("Only PNG and JPEG images are allowed.");
|
|
5685
5694
|
e.target.value = "";
|
|
5686
5695
|
return;
|
|
5687
5696
|
}
|
|
@@ -5716,11 +5725,11 @@ var UniversalSettings = ({
|
|
|
5716
5725
|
setIsRemoving(true);
|
|
5717
5726
|
try {
|
|
5718
5727
|
await onRemoveMember(memberToRemove.userId);
|
|
5719
|
-
|
|
5728
|
+
import_react_hot_toast16.default.success("Member removed successfully.");
|
|
5720
5729
|
setExpandedId(null);
|
|
5721
5730
|
setMemberToRemove(null);
|
|
5722
5731
|
} catch (error) {
|
|
5723
|
-
|
|
5732
|
+
import_react_hot_toast16.default.error(error.message || "Failed to remove member.");
|
|
5724
5733
|
} finally {
|
|
5725
5734
|
setIsRemoving(false);
|
|
5726
5735
|
}
|
|
@@ -5734,7 +5743,7 @@ var UniversalSettings = ({
|
|
|
5734
5743
|
setInviteEmail("");
|
|
5735
5744
|
setIsInviteMode(false);
|
|
5736
5745
|
} catch (error) {
|
|
5737
|
-
|
|
5746
|
+
import_react_hot_toast16.default.error(error.message || "Failed to send invitation.");
|
|
5738
5747
|
} finally {
|
|
5739
5748
|
setIsInviting(false);
|
|
5740
5749
|
}
|
|
@@ -5782,7 +5791,7 @@ var UniversalSettings = ({
|
|
|
5782
5791
|
const handleSaveOrganization = async (e) => {
|
|
5783
5792
|
e.preventDefault();
|
|
5784
5793
|
if (isSavingOrg || isCheckingSlug || !canManage || !onSaveOrganization) return;
|
|
5785
|
-
if (orgSlug !== initialOrgSlug && slugAvailable === false) return
|
|
5794
|
+
if (orgSlug !== initialOrgSlug && slugAvailable === false) return import_react_hot_toast16.default.error("Address handle unavailable.");
|
|
5786
5795
|
setIsSavingOrg(true);
|
|
5787
5796
|
try {
|
|
5788
5797
|
let finalAvatarUrl = orgAvatarUrl;
|
|
@@ -5795,7 +5804,7 @@ var UniversalSettings = ({
|
|
|
5795
5804
|
setOrgAvatarUrl(finalAvatarUrl);
|
|
5796
5805
|
}
|
|
5797
5806
|
} catch (err) {
|
|
5798
|
-
|
|
5807
|
+
import_react_hot_toast16.default.error("Failed to securely upload workspace avatar.");
|
|
5799
5808
|
setIsSavingOrg(false);
|
|
5800
5809
|
setIsUploadingOrgAvatar(false);
|
|
5801
5810
|
return;
|
|
@@ -5804,10 +5813,10 @@ var UniversalSettings = ({
|
|
|
5804
5813
|
setIsUploadingOrgAvatar(false);
|
|
5805
5814
|
}
|
|
5806
5815
|
const res = await onSaveOrganization({ name: orgName, slug: orgSlug, avatarUrl: finalAvatarUrl });
|
|
5807
|
-
if (res.success)
|
|
5808
|
-
else
|
|
5816
|
+
if (res.success) import_react_hot_toast16.default.success("Workspace updated successfully.");
|
|
5817
|
+
else import_react_hot_toast16.default.error(res.error || "Failed to update workspace.");
|
|
5809
5818
|
} catch (error) {
|
|
5810
|
-
|
|
5819
|
+
import_react_hot_toast16.default.error("Service unavailable.");
|
|
5811
5820
|
} finally {
|
|
5812
5821
|
setIsSavingOrg(false);
|
|
5813
5822
|
setIsUploadingOrgAvatar(false);
|
|
@@ -5828,7 +5837,7 @@ var UniversalSettings = ({
|
|
|
5828
5837
|
setAvatarUrl(finalAvatarUrl);
|
|
5829
5838
|
}
|
|
5830
5839
|
} catch (err) {
|
|
5831
|
-
|
|
5840
|
+
import_react_hot_toast16.default.error("Failed to securely upload profile avatar.");
|
|
5832
5841
|
setIsSavingProfile(false);
|
|
5833
5842
|
setIsUploadingUserAvatar(false);
|
|
5834
5843
|
return;
|
|
@@ -5837,10 +5846,10 @@ var UniversalSettings = ({
|
|
|
5837
5846
|
setIsUploadingUserAvatar(false);
|
|
5838
5847
|
}
|
|
5839
5848
|
const res = await onSaveProfile({ firstName, lastName, jobTitle, description, avatarUrl: finalAvatarUrl });
|
|
5840
|
-
if (res.success)
|
|
5841
|
-
else
|
|
5849
|
+
if (res.success) import_react_hot_toast16.default.success("Identity updated successfully.");
|
|
5850
|
+
else import_react_hot_toast16.default.error(res.error || "Failed to update identity.");
|
|
5842
5851
|
} catch (error) {
|
|
5843
|
-
|
|
5852
|
+
import_react_hot_toast16.default.error("Service unavailable.");
|
|
5844
5853
|
} finally {
|
|
5845
5854
|
setIsSavingProfile(false);
|
|
5846
5855
|
setIsUploadingUserAvatar(false);
|
|
@@ -5907,7 +5916,7 @@ var UniversalSettings = ({
|
|
|
5907
5916
|
|
|
5908
5917
|
// src/components/UniversalCreateHuddle.tsx
|
|
5909
5918
|
var import_react91 = __toESM(require("react"));
|
|
5910
|
-
var
|
|
5919
|
+
var import_react_hot_toast17 = __toESM(require("react-hot-toast"));
|
|
5911
5920
|
var import_react92 = require("@hugeicons/react");
|
|
5912
5921
|
var import_core_free_icons35 = require("@hugeicons/core-free-icons");
|
|
5913
5922
|
var MemberAvatar4 = ({ src, sizeClass = "w-10 h-10" }) => {
|
|
@@ -5998,8 +6007,8 @@ var UniversalCreateHuddle = ({
|
|
|
5998
6007
|
e.preventDefault();
|
|
5999
6008
|
if (!canManage) return;
|
|
6000
6009
|
const cleanTitle = title.trim();
|
|
6001
|
-
if (cleanTitle.length < 2) return
|
|
6002
|
-
if (isPrivate && selectedParticipants.size === 0) return
|
|
6010
|
+
if (cleanTitle.length < 2) return import_react_hot_toast17.default.error("Please enter a valid huddle name.");
|
|
6011
|
+
if (isPrivate && selectedParticipants.size === 0) return import_react_hot_toast17.default.error("Private huddles require at least one participant.");
|
|
6003
6012
|
setIsSubmitting(true);
|
|
6004
6013
|
try {
|
|
6005
6014
|
await onCreateSubmit({
|
|
@@ -6010,7 +6019,7 @@ var UniversalCreateHuddle = ({
|
|
|
6010
6019
|
participantIds: isPrivate ? Array.from(selectedParticipants) : []
|
|
6011
6020
|
});
|
|
6012
6021
|
} catch (error) {
|
|
6013
|
-
|
|
6022
|
+
import_react_hot_toast17.default.error(error.message || "Failed to schedule huddle.");
|
|
6014
6023
|
setIsSubmitting(false);
|
|
6015
6024
|
}
|
|
6016
6025
|
};
|
package/dist/index.mjs
CHANGED
|
@@ -3387,6 +3387,7 @@ var ManagedDocument = ({
|
|
|
3387
3387
|
import React32, { useState as useState24 } from "react";
|
|
3388
3388
|
import { HugeiconsIcon as HugeiconsIcon24 } from "@hugeicons/react";
|
|
3389
3389
|
import { Loading03Icon as Loading03Icon14 } from "@hugeicons/core-free-icons";
|
|
3390
|
+
import toast9 from "react-hot-toast";
|
|
3390
3391
|
var TextInput2 = ({
|
|
3391
3392
|
label,
|
|
3392
3393
|
value,
|
|
@@ -3461,13 +3462,11 @@ var ManagedContactBlock = ({
|
|
|
3461
3462
|
company,
|
|
3462
3463
|
socials
|
|
3463
3464
|
}) => {
|
|
3464
|
-
const [formData, setFormData] = useState24({ name: "", title: "", phone: "", message: "" });
|
|
3465
|
+
const [formData, setFormData] = useState24({ name: "", email: "", title: "", phone: "", message: "" });
|
|
3465
3466
|
const [status, setStatus] = useState24("idle");
|
|
3466
|
-
const [responseMessage, setResponseMessage] = useState24("");
|
|
3467
3467
|
const handleSubmit = async (e) => {
|
|
3468
3468
|
e.preventDefault();
|
|
3469
3469
|
setStatus("loading");
|
|
3470
|
-
setResponseMessage("");
|
|
3471
3470
|
try {
|
|
3472
3471
|
const res = await fetch("/api/contact", {
|
|
3473
3472
|
method: "POST",
|
|
@@ -3477,15 +3476,15 @@ var ManagedContactBlock = ({
|
|
|
3477
3476
|
const data = await res.json();
|
|
3478
3477
|
if (res.ok) {
|
|
3479
3478
|
setStatus("success");
|
|
3480
|
-
|
|
3481
|
-
setFormData({ name: "", title: "", phone: "", message: "" });
|
|
3479
|
+
toast9.success(data.message || "Message sent successfully!");
|
|
3480
|
+
setFormData({ name: "", email: "", title: "", phone: "", message: "" });
|
|
3482
3481
|
} else {
|
|
3483
3482
|
setStatus("error");
|
|
3484
|
-
|
|
3483
|
+
toast9.error(data.error || "Failed to send message.");
|
|
3485
3484
|
}
|
|
3486
3485
|
} catch (error) {
|
|
3487
3486
|
setStatus("error");
|
|
3488
|
-
|
|
3487
|
+
toast9.error("An unexpected error occurred. Please try again.");
|
|
3489
3488
|
}
|
|
3490
3489
|
};
|
|
3491
3490
|
return /* @__PURE__ */ React32.createElement("div", { className: "grow pt-4 pb-20 px-4 md:px-8 w-full flex justify-center z-10 relative" }, /* @__PURE__ */ React32.createElement("div", { className: "relative bg-white rounded-2xl w-full max-w-7xl mx-auto overflow-hidden" }, /* @__PURE__ */ React32.createElement(
|
|
@@ -3532,6 +3531,16 @@ var ManagedContactBlock = ({
|
|
|
3532
3531
|
disabled: status === "loading"
|
|
3533
3532
|
}
|
|
3534
3533
|
), /* @__PURE__ */ React32.createElement(
|
|
3534
|
+
TextInput2,
|
|
3535
|
+
{
|
|
3536
|
+
label: "EMAIL ADDRESS",
|
|
3537
|
+
type: "email",
|
|
3538
|
+
placeholder: "john@example.com",
|
|
3539
|
+
value: formData.email,
|
|
3540
|
+
onChange: (val) => setFormData({ ...formData, email: val }),
|
|
3541
|
+
disabled: status === "loading"
|
|
3542
|
+
}
|
|
3543
|
+
)), /* @__PURE__ */ React32.createElement("div", { className: "flex flex-col md:flex-row gap-6" }, /* @__PURE__ */ React32.createElement(
|
|
3535
3544
|
TextInput2,
|
|
3536
3545
|
{
|
|
3537
3546
|
label: "SUBJECT TITLE",
|
|
@@ -3540,7 +3549,7 @@ var ManagedContactBlock = ({
|
|
|
3540
3549
|
onChange: (val) => setFormData({ ...formData, title: val }),
|
|
3541
3550
|
disabled: status === "loading"
|
|
3542
3551
|
}
|
|
3543
|
-
)
|
|
3552
|
+
), /* @__PURE__ */ React32.createElement(
|
|
3544
3553
|
TextInput2,
|
|
3545
3554
|
{
|
|
3546
3555
|
label: "PHONE NUMBER (OPTIONAL)",
|
|
@@ -3550,7 +3559,7 @@ var ManagedContactBlock = ({
|
|
|
3550
3559
|
onChange: (val) => setFormData({ ...formData, phone: val }),
|
|
3551
3560
|
disabled: status === "loading"
|
|
3552
3561
|
}
|
|
3553
|
-
), /* @__PURE__ */ React32.createElement(
|
|
3562
|
+
)), /* @__PURE__ */ React32.createElement(
|
|
3554
3563
|
TextAreaInput,
|
|
3555
3564
|
{
|
|
3556
3565
|
label: "MESSAGE",
|
|
@@ -3559,12 +3568,12 @@ var ManagedContactBlock = ({
|
|
|
3559
3568
|
onChange: (val) => setFormData({ ...formData, message: val }),
|
|
3560
3569
|
disabled: status === "loading"
|
|
3561
3570
|
}
|
|
3562
|
-
),
|
|
3571
|
+
), /* @__PURE__ */ React32.createElement("div", { className: "pt-4" }, /* @__PURE__ */ React32.createElement(
|
|
3563
3572
|
ThreeDActionButton2,
|
|
3564
3573
|
{
|
|
3565
3574
|
type: "submit",
|
|
3566
3575
|
isLoading: status === "loading",
|
|
3567
|
-
disabled: !formData.name || !formData.title || !formData.message
|
|
3576
|
+
disabled: !formData.name || !formData.email || !formData.title || !formData.message
|
|
3568
3577
|
},
|
|
3569
3578
|
"Submit Message"
|
|
3570
3579
|
)))))))));
|
|
@@ -4271,7 +4280,7 @@ var UniversalVerificationPage = ({
|
|
|
4271
4280
|
// src/components/UniversalRewardPage.tsx
|
|
4272
4281
|
import React44, { useState as useState30 } from "react";
|
|
4273
4282
|
import axios from "axios";
|
|
4274
|
-
import
|
|
4283
|
+
import toast10 from "react-hot-toast";
|
|
4275
4284
|
import Confetti from "react-confetti";
|
|
4276
4285
|
import { useWindowSize } from "react-use";
|
|
4277
4286
|
import { HugeiconsIcon as HugeiconsIcon30 } from "@hugeicons/react";
|
|
@@ -4326,7 +4335,7 @@ var UniversalRewardPage = ({
|
|
|
4326
4335
|
const res = await axios.post(selectedReward.endpoint, selectedReward.config);
|
|
4327
4336
|
if (res.data.success) {
|
|
4328
4337
|
setShowConfetti(true);
|
|
4329
|
-
|
|
4338
|
+
toast10.success(res.data.message || "Reward claimed successfully!");
|
|
4330
4339
|
setSelectedReward(null);
|
|
4331
4340
|
onRefresh();
|
|
4332
4341
|
setTimeout(() => {
|
|
@@ -4334,7 +4343,7 @@ var UniversalRewardPage = ({
|
|
|
4334
4343
|
}, 6e3);
|
|
4335
4344
|
}
|
|
4336
4345
|
} catch (error) {
|
|
4337
|
-
|
|
4346
|
+
toast10.error(error.response?.data?.error || "Failed to claim reward. Please try again.");
|
|
4338
4347
|
} finally {
|
|
4339
4348
|
setIsClaiming(false);
|
|
4340
4349
|
}
|
|
@@ -4384,7 +4393,7 @@ var UniversalRewardPage = ({
|
|
|
4384
4393
|
|
|
4385
4394
|
// src/components/UniversalReferralPage.tsx
|
|
4386
4395
|
import React45, { useState as useState31 } from "react";
|
|
4387
|
-
import
|
|
4396
|
+
import toast11 from "react-hot-toast";
|
|
4388
4397
|
import { HugeiconsIcon as HugeiconsIcon31 } from "@hugeicons/react";
|
|
4389
4398
|
import {
|
|
4390
4399
|
ArrowLeft01Icon as ArrowLeft01Icon12,
|
|
@@ -4418,9 +4427,9 @@ var UniversalReferralPage = ({
|
|
|
4418
4427
|
if (!referralCode) return;
|
|
4419
4428
|
try {
|
|
4420
4429
|
await navigator.clipboard.writeText(referralCode);
|
|
4421
|
-
|
|
4430
|
+
toast11.success("Referral code copied!");
|
|
4422
4431
|
} catch {
|
|
4423
|
-
|
|
4432
|
+
toast11.error("Failed to copy code.");
|
|
4424
4433
|
}
|
|
4425
4434
|
};
|
|
4426
4435
|
const AvatarLogo2 = ({ src, alt, name, sizeClass = "w-10 h-10" }) => {
|
|
@@ -4729,7 +4738,7 @@ var PinDialerBottomSheet = ({
|
|
|
4729
4738
|
|
|
4730
4739
|
// src/components/UniversalBuyCryptoPage.tsx
|
|
4731
4740
|
import React48, { useState as useState34, useEffect as useEffect18, useRef as useRef12, useCallback } from "react";
|
|
4732
|
-
import
|
|
4741
|
+
import toast12 from "react-hot-toast";
|
|
4733
4742
|
import { HugeiconsIcon as HugeiconsIcon34 } from "@hugeicons/react";
|
|
4734
4743
|
import {
|
|
4735
4744
|
ArrowLeft01Icon as ArrowLeft01Icon14,
|
|
@@ -4855,7 +4864,7 @@ var UniversalBuyCryptoPage = ({
|
|
|
4855
4864
|
if (result.ratePerToken) setRateDisplay(result.ratePerToken);
|
|
4856
4865
|
if (result.rateKey) setCurrentRateKey(result.rateKey);
|
|
4857
4866
|
} catch {
|
|
4858
|
-
|
|
4867
|
+
toast12.error("Failed to calculate live rate.");
|
|
4859
4868
|
} finally {
|
|
4860
4869
|
setIsCalculating(false);
|
|
4861
4870
|
}
|
|
@@ -4886,11 +4895,11 @@ var UniversalBuyCryptoPage = ({
|
|
|
4886
4895
|
const handleCheckout = async () => {
|
|
4887
4896
|
const numFiat = parseFloat(fiatAmount) || 0;
|
|
4888
4897
|
const numCrypto = parseFloat(cryptoAmount) || 0;
|
|
4889
|
-
if (numFiat <= 0 || numCrypto <= 0) return
|
|
4898
|
+
if (numFiat <= 0 || numCrypto <= 0) return toast12.error("Please enter a valid amount.");
|
|
4890
4899
|
if (selectedNetwork.minimumWithdrawal && numCrypto < selectedNetwork.minimumWithdrawal) {
|
|
4891
|
-
return
|
|
4900
|
+
return toast12.error(`Minimum purchase for ${selectedNetwork.name} is ${selectedNetwork.minimumWithdrawal} ${selectedCrypto.code}`);
|
|
4892
4901
|
}
|
|
4893
|
-
if (!recipientAddress.trim() || !isAddressValid) return
|
|
4902
|
+
if (!recipientAddress.trim() || !isAddressValid) return toast12.error("Please enter a valid wallet address.");
|
|
4894
4903
|
if (onSubmitCheckout) {
|
|
4895
4904
|
setIsSubmitting(true);
|
|
4896
4905
|
try {
|
|
@@ -5093,7 +5102,7 @@ var UniversalHuddlesPage = ({
|
|
|
5093
5102
|
// src/components/UniversalMembersPage.tsx
|
|
5094
5103
|
import React50, { useState as useState35, useEffect as useEffect19, useRef as useRef13 } from "react";
|
|
5095
5104
|
import { HugeiconsIcon as HugeiconsIcon36 } from "@hugeicons/react";
|
|
5096
|
-
import
|
|
5105
|
+
import toast13 from "react-hot-toast";
|
|
5097
5106
|
import {
|
|
5098
5107
|
ArrowLeft01Icon as ArrowLeft01Icon16,
|
|
5099
5108
|
ArrowRight01Icon as ArrowRight01Icon11,
|
|
@@ -5195,11 +5204,11 @@ var UniversalMembersPage = ({
|
|
|
5195
5204
|
setIsRemoving(true);
|
|
5196
5205
|
try {
|
|
5197
5206
|
await onRemoveMember(memberToRemove.id);
|
|
5198
|
-
|
|
5207
|
+
toast13.success("Member removed successfully.");
|
|
5199
5208
|
setExpandedId(null);
|
|
5200
5209
|
setMemberToRemove(null);
|
|
5201
5210
|
} catch (error) {
|
|
5202
|
-
|
|
5211
|
+
toast13.error("Failed to remove member.");
|
|
5203
5212
|
} finally {
|
|
5204
5213
|
setIsRemoving(false);
|
|
5205
5214
|
}
|
|
@@ -5213,7 +5222,7 @@ var UniversalMembersPage = ({
|
|
|
5213
5222
|
setInviteEmail("");
|
|
5214
5223
|
setIsInviteMode(false);
|
|
5215
5224
|
} catch (error) {
|
|
5216
|
-
|
|
5225
|
+
toast13.error(error.message || "Failed to send invitation.");
|
|
5217
5226
|
} finally {
|
|
5218
5227
|
setIsInviting(false);
|
|
5219
5228
|
}
|
|
@@ -5360,7 +5369,7 @@ var UniversalMembersPage = ({
|
|
|
5360
5369
|
import React51, { useState as useState36 } from "react";
|
|
5361
5370
|
import { useRouter as useRouter3 } from "next/navigation";
|
|
5362
5371
|
import { HugeiconsIcon as HugeiconsIcon37 } from "@hugeicons/react";
|
|
5363
|
-
import
|
|
5372
|
+
import toast14 from "react-hot-toast";
|
|
5364
5373
|
import {
|
|
5365
5374
|
Loading03Icon as Loading03Icon25,
|
|
5366
5375
|
Notification01Icon as Notification01Icon2,
|
|
@@ -5424,7 +5433,7 @@ var UniversalHome2 = ({
|
|
|
5424
5433
|
await onResolveInvite(selectedNotif, resolution);
|
|
5425
5434
|
window.location.reload();
|
|
5426
5435
|
} catch (error) {
|
|
5427
|
-
|
|
5436
|
+
toast14.error("Failed to process invitation");
|
|
5428
5437
|
setIsResolving(false);
|
|
5429
5438
|
}
|
|
5430
5439
|
};
|
|
@@ -5433,7 +5442,7 @@ var UniversalHome2 = ({
|
|
|
5433
5442
|
try {
|
|
5434
5443
|
if (onLogout) await onLogout();
|
|
5435
5444
|
} catch (e) {
|
|
5436
|
-
|
|
5445
|
+
toast14.error("Failed to log out cleanly.");
|
|
5437
5446
|
} finally {
|
|
5438
5447
|
setIsLoggingOut(false);
|
|
5439
5448
|
setShowLogoutConfirm(false);
|
|
@@ -5586,7 +5595,7 @@ var UniversalHome2 = ({
|
|
|
5586
5595
|
|
|
5587
5596
|
// src/components/UniversalSettings.tsx
|
|
5588
5597
|
import React52, { useState as useState37, useEffect as useEffect20, useRef as useRef14 } from "react";
|
|
5589
|
-
import
|
|
5598
|
+
import toast15 from "react-hot-toast";
|
|
5590
5599
|
import { HugeiconsIcon as HugeiconsIcon38 } from "@hugeicons/react";
|
|
5591
5600
|
import {
|
|
5592
5601
|
ArrowLeft01Icon as ArrowLeft01Icon18,
|
|
@@ -5730,13 +5739,13 @@ var UniversalSettings = ({
|
|
|
5730
5739
|
const file = e.target.files?.[0];
|
|
5731
5740
|
if (!file) return;
|
|
5732
5741
|
if (file.size > 1024 * 1024) {
|
|
5733
|
-
|
|
5742
|
+
toast15.error("Image size must be less than 1MB.");
|
|
5734
5743
|
e.target.value = "";
|
|
5735
5744
|
return;
|
|
5736
5745
|
}
|
|
5737
5746
|
const validTypes = ["image/jpeg", "image/jpg", "image/png"];
|
|
5738
5747
|
if (!validTypes.includes(file.type)) {
|
|
5739
|
-
|
|
5748
|
+
toast15.error("Only PNG and JPEG images are allowed.");
|
|
5740
5749
|
e.target.value = "";
|
|
5741
5750
|
return;
|
|
5742
5751
|
}
|
|
@@ -5771,11 +5780,11 @@ var UniversalSettings = ({
|
|
|
5771
5780
|
setIsRemoving(true);
|
|
5772
5781
|
try {
|
|
5773
5782
|
await onRemoveMember(memberToRemove.userId);
|
|
5774
|
-
|
|
5783
|
+
toast15.success("Member removed successfully.");
|
|
5775
5784
|
setExpandedId(null);
|
|
5776
5785
|
setMemberToRemove(null);
|
|
5777
5786
|
} catch (error) {
|
|
5778
|
-
|
|
5787
|
+
toast15.error(error.message || "Failed to remove member.");
|
|
5779
5788
|
} finally {
|
|
5780
5789
|
setIsRemoving(false);
|
|
5781
5790
|
}
|
|
@@ -5789,7 +5798,7 @@ var UniversalSettings = ({
|
|
|
5789
5798
|
setInviteEmail("");
|
|
5790
5799
|
setIsInviteMode(false);
|
|
5791
5800
|
} catch (error) {
|
|
5792
|
-
|
|
5801
|
+
toast15.error(error.message || "Failed to send invitation.");
|
|
5793
5802
|
} finally {
|
|
5794
5803
|
setIsInviting(false);
|
|
5795
5804
|
}
|
|
@@ -5837,7 +5846,7 @@ var UniversalSettings = ({
|
|
|
5837
5846
|
const handleSaveOrganization = async (e) => {
|
|
5838
5847
|
e.preventDefault();
|
|
5839
5848
|
if (isSavingOrg || isCheckingSlug || !canManage || !onSaveOrganization) return;
|
|
5840
|
-
if (orgSlug !== initialOrgSlug && slugAvailable === false) return
|
|
5849
|
+
if (orgSlug !== initialOrgSlug && slugAvailable === false) return toast15.error("Address handle unavailable.");
|
|
5841
5850
|
setIsSavingOrg(true);
|
|
5842
5851
|
try {
|
|
5843
5852
|
let finalAvatarUrl = orgAvatarUrl;
|
|
@@ -5850,7 +5859,7 @@ var UniversalSettings = ({
|
|
|
5850
5859
|
setOrgAvatarUrl(finalAvatarUrl);
|
|
5851
5860
|
}
|
|
5852
5861
|
} catch (err) {
|
|
5853
|
-
|
|
5862
|
+
toast15.error("Failed to securely upload workspace avatar.");
|
|
5854
5863
|
setIsSavingOrg(false);
|
|
5855
5864
|
setIsUploadingOrgAvatar(false);
|
|
5856
5865
|
return;
|
|
@@ -5859,10 +5868,10 @@ var UniversalSettings = ({
|
|
|
5859
5868
|
setIsUploadingOrgAvatar(false);
|
|
5860
5869
|
}
|
|
5861
5870
|
const res = await onSaveOrganization({ name: orgName, slug: orgSlug, avatarUrl: finalAvatarUrl });
|
|
5862
|
-
if (res.success)
|
|
5863
|
-
else
|
|
5871
|
+
if (res.success) toast15.success("Workspace updated successfully.");
|
|
5872
|
+
else toast15.error(res.error || "Failed to update workspace.");
|
|
5864
5873
|
} catch (error) {
|
|
5865
|
-
|
|
5874
|
+
toast15.error("Service unavailable.");
|
|
5866
5875
|
} finally {
|
|
5867
5876
|
setIsSavingOrg(false);
|
|
5868
5877
|
setIsUploadingOrgAvatar(false);
|
|
@@ -5883,7 +5892,7 @@ var UniversalSettings = ({
|
|
|
5883
5892
|
setAvatarUrl(finalAvatarUrl);
|
|
5884
5893
|
}
|
|
5885
5894
|
} catch (err) {
|
|
5886
|
-
|
|
5895
|
+
toast15.error("Failed to securely upload profile avatar.");
|
|
5887
5896
|
setIsSavingProfile(false);
|
|
5888
5897
|
setIsUploadingUserAvatar(false);
|
|
5889
5898
|
return;
|
|
@@ -5892,10 +5901,10 @@ var UniversalSettings = ({
|
|
|
5892
5901
|
setIsUploadingUserAvatar(false);
|
|
5893
5902
|
}
|
|
5894
5903
|
const res = await onSaveProfile({ firstName, lastName, jobTitle, description, avatarUrl: finalAvatarUrl });
|
|
5895
|
-
if (res.success)
|
|
5896
|
-
else
|
|
5904
|
+
if (res.success) toast15.success("Identity updated successfully.");
|
|
5905
|
+
else toast15.error(res.error || "Failed to update identity.");
|
|
5897
5906
|
} catch (error) {
|
|
5898
|
-
|
|
5907
|
+
toast15.error("Service unavailable.");
|
|
5899
5908
|
} finally {
|
|
5900
5909
|
setIsSavingProfile(false);
|
|
5901
5910
|
setIsUploadingUserAvatar(false);
|
|
@@ -5962,7 +5971,7 @@ var UniversalSettings = ({
|
|
|
5962
5971
|
|
|
5963
5972
|
// src/components/UniversalCreateHuddle.tsx
|
|
5964
5973
|
import React53, { useState as useState38, useEffect as useEffect21, useRef as useRef15 } from "react";
|
|
5965
|
-
import
|
|
5974
|
+
import toast16 from "react-hot-toast";
|
|
5966
5975
|
import { HugeiconsIcon as HugeiconsIcon39 } from "@hugeicons/react";
|
|
5967
5976
|
import {
|
|
5968
5977
|
ArrowLeft01Icon as ArrowLeft01Icon19,
|
|
@@ -6063,8 +6072,8 @@ var UniversalCreateHuddle = ({
|
|
|
6063
6072
|
e.preventDefault();
|
|
6064
6073
|
if (!canManage) return;
|
|
6065
6074
|
const cleanTitle = title.trim();
|
|
6066
|
-
if (cleanTitle.length < 2) return
|
|
6067
|
-
if (isPrivate && selectedParticipants.size === 0) return
|
|
6075
|
+
if (cleanTitle.length < 2) return toast16.error("Please enter a valid huddle name.");
|
|
6076
|
+
if (isPrivate && selectedParticipants.size === 0) return toast16.error("Private huddles require at least one participant.");
|
|
6068
6077
|
setIsSubmitting(true);
|
|
6069
6078
|
try {
|
|
6070
6079
|
await onCreateSubmit({
|
|
@@ -6075,7 +6084,7 @@ var UniversalCreateHuddle = ({
|
|
|
6075
6084
|
participantIds: isPrivate ? Array.from(selectedParticipants) : []
|
|
6076
6085
|
});
|
|
6077
6086
|
} catch (error) {
|
|
6078
|
-
|
|
6087
|
+
toast16.error(error.message || "Failed to schedule huddle.");
|
|
6079
6088
|
setIsSubmitting(false);
|
|
6080
6089
|
}
|
|
6081
6090
|
};
|