@retinalabsllc/zairusjs 21.1.1 → 21.1.3
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.d.mts +1 -19
- package/dist/index.d.ts +1 -19
- package/dist/index.js +250 -118
- package/dist/index.mjs +215 -83
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -3387,24 +3387,108 @@ var ManagedDocument = ({
|
|
|
3387
3387
|
// src/components/ManagedContactBlock.tsx
|
|
3388
3388
|
var import_react55 = __toESM(require("react"));
|
|
3389
3389
|
var import_react56 = require("@hugeicons/react");
|
|
3390
|
-
var
|
|
3391
|
-
|
|
3392
|
-
|
|
3393
|
-
|
|
3394
|
-
|
|
3395
|
-
|
|
3396
|
-
|
|
3390
|
+
var import_core_free_icons20 = require("@hugeicons/core-free-icons");
|
|
3391
|
+
var TextInput2 = ({
|
|
3392
|
+
label,
|
|
3393
|
+
value,
|
|
3394
|
+
onChange,
|
|
3395
|
+
placeholder,
|
|
3396
|
+
maxLength,
|
|
3397
|
+
disabled,
|
|
3398
|
+
readOnly,
|
|
3399
|
+
type = "text",
|
|
3400
|
+
onClick
|
|
3401
|
+
}) => /* @__PURE__ */ import_react55.default.createElement("div", { className: "space-y-2 flex-1 w-full", onClick }, label && /* @__PURE__ */ import_react55.default.createElement("label", { className: "text-xs text-stone-400 tracking-[0.2em] block" }, label), /* @__PURE__ */ import_react55.default.createElement(
|
|
3402
|
+
"input",
|
|
3403
|
+
{
|
|
3404
|
+
type,
|
|
3405
|
+
value,
|
|
3406
|
+
onChange: (e) => onChange(e.target.value.substring(0, maxLength || 100)),
|
|
3407
|
+
placeholder,
|
|
3408
|
+
disabled,
|
|
3409
|
+
readOnly,
|
|
3410
|
+
autoComplete: "off",
|
|
3411
|
+
spellCheck: "false",
|
|
3412
|
+
className: `w-full px-2 py-3 text-sm bg-transparent border-b border-stone-200 text-black transition-all outline-none focus:border-[#d97757] disabled:opacity-50 ${readOnly ? "cursor-pointer" : ""}`
|
|
3413
|
+
}
|
|
3414
|
+
));
|
|
3415
|
+
var TextAreaInput = ({
|
|
3416
|
+
label,
|
|
3417
|
+
value,
|
|
3418
|
+
onChange,
|
|
3419
|
+
placeholder,
|
|
3420
|
+
maxLength,
|
|
3421
|
+
disabled
|
|
3422
|
+
}) => /* @__PURE__ */ import_react55.default.createElement("div", { className: "space-y-2 w-full" }, label && /* @__PURE__ */ import_react55.default.createElement("label", { className: "text-xs text-stone-400 tracking-[0.2em] block" }, label), /* @__PURE__ */ import_react55.default.createElement(
|
|
3423
|
+
"textarea",
|
|
3424
|
+
{
|
|
3425
|
+
value,
|
|
3426
|
+
onChange: (e) => onChange(e.target.value.substring(0, maxLength || 3e3)),
|
|
3427
|
+
placeholder,
|
|
3428
|
+
disabled,
|
|
3429
|
+
autoComplete: "off",
|
|
3430
|
+
spellCheck: "false",
|
|
3431
|
+
rows: 4,
|
|
3432
|
+
className: "w-full px-2 py-3 text-sm bg-transparent border-b border-stone-200 text-black transition-all outline-none focus:border-[#d97757] disabled:opacity-50 resize-none"
|
|
3397
3433
|
}
|
|
3398
|
-
|
|
3399
|
-
|
|
3434
|
+
));
|
|
3435
|
+
var ThreeDActionButton2 = ({
|
|
3436
|
+
type = "button",
|
|
3437
|
+
disabled = false,
|
|
3438
|
+
isLoading = false,
|
|
3439
|
+
children,
|
|
3440
|
+
className = ""
|
|
3441
|
+
}) => {
|
|
3442
|
+
const isInteractionDisabled = disabled || isLoading;
|
|
3443
|
+
return /* @__PURE__ */ import_react55.default.createElement(
|
|
3444
|
+
"button",
|
|
3445
|
+
{
|
|
3446
|
+
type,
|
|
3447
|
+
disabled: isInteractionDisabled,
|
|
3448
|
+
className: `
|
|
3449
|
+
relative inline-flex items-center justify-center py-2.5 px-8 rounded-full
|
|
3450
|
+
bg-[#d97757] text-white text-xs tracking-widest
|
|
3451
|
+
transition-colors duration-150 select-none group outline-none
|
|
3452
|
+
${isInteractionDisabled ? "opacity-50 cursor-not-allowed" : "hover:bg-[#d97757]"}
|
|
3453
|
+
${className}
|
|
3454
|
+
`
|
|
3455
|
+
},
|
|
3456
|
+
/* @__PURE__ */ import_react55.default.createElement("span", { className: "relative z-10 flex items-center justify-center gap-2 leading-none" }, isLoading ? /* @__PURE__ */ import_react55.default.createElement(import_react56.HugeiconsIcon, { icon: import_core_free_icons20.Loading03Icon, size: 16, className: "animate-spin text-white" }) : children)
|
|
3457
|
+
);
|
|
3400
3458
|
};
|
|
3401
3459
|
var ManagedContactBlock = ({
|
|
3402
3460
|
tagline,
|
|
3403
3461
|
title,
|
|
3404
3462
|
company,
|
|
3405
|
-
emails,
|
|
3406
3463
|
socials
|
|
3407
3464
|
}) => {
|
|
3465
|
+
const [formData, setFormData] = (0, import_react55.useState)({ name: "", email: "", title: "", phone: "", message: "" });
|
|
3466
|
+
const [status, setStatus] = (0, import_react55.useState)("idle");
|
|
3467
|
+
const [responseMessage, setResponseMessage] = (0, import_react55.useState)("");
|
|
3468
|
+
const handleSubmit = async (e) => {
|
|
3469
|
+
e.preventDefault();
|
|
3470
|
+
setStatus("loading");
|
|
3471
|
+
setResponseMessage("");
|
|
3472
|
+
try {
|
|
3473
|
+
const res = await fetch("/api/contact", {
|
|
3474
|
+
method: "POST",
|
|
3475
|
+
headers: { "Content-Type": "application/json" },
|
|
3476
|
+
body: JSON.stringify(formData)
|
|
3477
|
+
});
|
|
3478
|
+
const data = await res.json();
|
|
3479
|
+
if (res.ok) {
|
|
3480
|
+
setStatus("success");
|
|
3481
|
+
setResponseMessage(data.message || "Message sent successfully!");
|
|
3482
|
+
setFormData({ name: "", email: "", title: "", phone: "", message: "" });
|
|
3483
|
+
} else {
|
|
3484
|
+
setStatus("error");
|
|
3485
|
+
setResponseMessage(data.error || "Failed to send message.");
|
|
3486
|
+
}
|
|
3487
|
+
} catch (error) {
|
|
3488
|
+
setStatus("error");
|
|
3489
|
+
setResponseMessage("An unexpected error occurred. Please try again.");
|
|
3490
|
+
}
|
|
3491
|
+
};
|
|
3408
3492
|
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(
|
|
3409
3493
|
"div",
|
|
3410
3494
|
{
|
|
@@ -3414,28 +3498,21 @@ var ManagedContactBlock = ({
|
|
|
3414
3498
|
backgroundRepeat: "repeat"
|
|
3415
3499
|
}
|
|
3416
3500
|
}
|
|
3417
|
-
), /* @__PURE__ */ import_react55.default.createElement("div", { className: "relative z-10" }, /* @__PURE__ */ import_react55.default.createElement("div", { className: "relative px-8 md:px-12 py-10" }, tagline && /* @__PURE__ */ import_react55.default.createElement("span", { className: "text-xs tracking-[0.4em] text-stone-500 text-left block " }, tagline), /* @__PURE__ */ import_react55.default.createElement("h1", { className: "
|
|
3501
|
+
), /* @__PURE__ */ import_react55.default.createElement("div", { className: "relative z-10" }, /* @__PURE__ */ import_react55.default.createElement("div", { className: "relative px-8 md:px-12 py-10 pb-4" }, tagline && /* @__PURE__ */ import_react55.default.createElement("span", { className: "text-xs tracking-[0.4em] text-stone-500 text-left block " }, tagline), /* @__PURE__ */ import_react55.default.createElement("h1", { className: "text-3xl mt-4 text-black tracking-tight text-left" }, title)), /* @__PURE__ */ import_react55.default.createElement("div", { className: "relative px-8 md:px-12 py-8 pb-14" }, /* @__PURE__ */ import_react55.default.createElement("div", { className: "flex flex-col lg:flex-row gap-16 w-full" }, /* @__PURE__ */ import_react55.default.createElement("div", { className: "w-full lg:w-1/3 flex flex-col gap-12" }, company && (company.phone || company.phone2) && /* @__PURE__ */ import_react55.default.createElement("div", { className: "space-y-6" }, /* @__PURE__ */ import_react55.default.createElement("p", { className: "text-sm tracking-[0.2em] text-black mb-4" }, "Direct Lines"), /* @__PURE__ */ import_react55.default.createElement("div", { className: "space-y-3 text-sm text-stone-600 leading-[1.8]" }, company.phone && /* @__PURE__ */ import_react55.default.createElement("p", null, /* @__PURE__ */ import_react55.default.createElement(
|
|
3418
3502
|
"a",
|
|
3419
3503
|
{
|
|
3420
3504
|
href: `tel:${company.phone.replace(/\s+/g, "")}`,
|
|
3421
3505
|
className: "transition-colors hover:text-black"
|
|
3422
3506
|
},
|
|
3423
3507
|
company.phone
|
|
3424
|
-
)), company.phone2 && /* @__PURE__ */ import_react55.default.createElement("p",
|
|
3508
|
+
)), company.phone2 && /* @__PURE__ */ import_react55.default.createElement("p", null, /* @__PURE__ */ import_react55.default.createElement(
|
|
3425
3509
|
"a",
|
|
3426
3510
|
{
|
|
3427
3511
|
href: `tel:${company.phone2.replace(/\s+/g, "")}`,
|
|
3428
3512
|
className: "transition-colors hover:text-black"
|
|
3429
3513
|
},
|
|
3430
3514
|
company.phone2
|
|
3431
|
-
)))),
|
|
3432
|
-
SecureEmail,
|
|
3433
|
-
{
|
|
3434
|
-
user: email.user,
|
|
3435
|
-
domain: email.domain,
|
|
3436
|
-
className: "text-stone-600 transition-colors hover:text-black"
|
|
3437
|
-
}
|
|
3438
|
-
))))), socials && socials.length > 0 && /* @__PURE__ */ import_react55.default.createElement("div", { className: "flex-1 min-w-65 space-y-6" }, /* @__PURE__ */ import_react55.default.createElement("p", { className: "text-sm tracking-[0.2em] text-black mb-4 " }, "Find Us Online"), /* @__PURE__ */ import_react55.default.createElement("div", { className: "flex flex-col space-y-5 pt-1" }, socials.map((social, idx) => /* @__PURE__ */ import_react55.default.createElement(
|
|
3515
|
+
)))), socials && socials.length > 0 && /* @__PURE__ */ import_react55.default.createElement("div", { className: "space-y-6" }, /* @__PURE__ */ import_react55.default.createElement("p", { className: "text-sm tracking-[0.2em] text-black mb-4" }, "Find Us Online"), /* @__PURE__ */ import_react55.default.createElement("div", { className: "flex flex-col space-y-5 pt-1" }, socials.map((social, idx) => /* @__PURE__ */ import_react55.default.createElement(
|
|
3439
3516
|
"a",
|
|
3440
3517
|
{
|
|
3441
3518
|
key: idx,
|
|
@@ -3446,6 +3523,61 @@ var ManagedContactBlock = ({
|
|
|
3446
3523
|
},
|
|
3447
3524
|
/* @__PURE__ */ import_react55.default.createElement(import_react56.HugeiconsIcon, { icon: social.icon, size: 18 }),
|
|
3448
3525
|
/* @__PURE__ */ import_react55.default.createElement("span", { className: "text-xs" }, social.label)
|
|
3526
|
+
))))), /* @__PURE__ */ import_react55.default.createElement("div", { className: "w-full lg:w-2/3" }, /* @__PURE__ */ import_react55.default.createElement("p", { className: "text-sm tracking-[0.2em] text-black mb-8" }, "Send a Message"), /* @__PURE__ */ import_react55.default.createElement("form", { onSubmit: handleSubmit, className: "space-y-6" }, /* @__PURE__ */ import_react55.default.createElement("div", { className: "flex flex-col md:flex-row gap-6" }, /* @__PURE__ */ import_react55.default.createElement(
|
|
3527
|
+
TextInput2,
|
|
3528
|
+
{
|
|
3529
|
+
label: "YOUR NAME",
|
|
3530
|
+
placeholder: "John Doe",
|
|
3531
|
+
value: formData.name,
|
|
3532
|
+
onChange: (val) => setFormData({ ...formData, name: val }),
|
|
3533
|
+
disabled: status === "loading"
|
|
3534
|
+
}
|
|
3535
|
+
), /* @__PURE__ */ import_react55.default.createElement(
|
|
3536
|
+
TextInput2,
|
|
3537
|
+
{
|
|
3538
|
+
label: "EMAIL ADDRESS",
|
|
3539
|
+
type: "email",
|
|
3540
|
+
placeholder: "john@example.com",
|
|
3541
|
+
value: formData.email,
|
|
3542
|
+
onChange: (val) => setFormData({ ...formData, email: val }),
|
|
3543
|
+
disabled: status === "loading"
|
|
3544
|
+
}
|
|
3545
|
+
)), /* @__PURE__ */ import_react55.default.createElement("div", { className: "flex flex-col md:flex-row gap-6" }, /* @__PURE__ */ import_react55.default.createElement(
|
|
3546
|
+
TextInput2,
|
|
3547
|
+
{
|
|
3548
|
+
label: "SUBJECT TITLE",
|
|
3549
|
+
placeholder: "Partnership Inquiry",
|
|
3550
|
+
value: formData.title,
|
|
3551
|
+
onChange: (val) => setFormData({ ...formData, title: val }),
|
|
3552
|
+
disabled: status === "loading"
|
|
3553
|
+
}
|
|
3554
|
+
), /* @__PURE__ */ import_react55.default.createElement(
|
|
3555
|
+
TextInput2,
|
|
3556
|
+
{
|
|
3557
|
+
label: "PHONE NUMBER (OPTIONAL)",
|
|
3558
|
+
type: "tel",
|
|
3559
|
+
placeholder: "+1 234 567 8900",
|
|
3560
|
+
value: formData.phone,
|
|
3561
|
+
onChange: (val) => setFormData({ ...formData, phone: val }),
|
|
3562
|
+
disabled: status === "loading"
|
|
3563
|
+
}
|
|
3564
|
+
)), /* @__PURE__ */ import_react55.default.createElement(
|
|
3565
|
+
TextAreaInput,
|
|
3566
|
+
{
|
|
3567
|
+
label: "MESSAGE",
|
|
3568
|
+
placeholder: "How can we help you?",
|
|
3569
|
+
value: formData.message,
|
|
3570
|
+
onChange: (val) => setFormData({ ...formData, message: val }),
|
|
3571
|
+
disabled: status === "loading"
|
|
3572
|
+
}
|
|
3573
|
+
), responseMessage && /* @__PURE__ */ import_react55.default.createElement("p", { className: `text-sm ${status === "error" ? "text-red-500" : "text-green-600"}` }, responseMessage), /* @__PURE__ */ import_react55.default.createElement("div", { className: "pt-4" }, /* @__PURE__ */ import_react55.default.createElement(
|
|
3574
|
+
ThreeDActionButton2,
|
|
3575
|
+
{
|
|
3576
|
+
type: "submit",
|
|
3577
|
+
isLoading: status === "loading",
|
|
3578
|
+
disabled: !formData.name || !formData.email || !formData.title || !formData.message
|
|
3579
|
+
},
|
|
3580
|
+
"Submit Message"
|
|
3449
3581
|
)))))))));
|
|
3450
3582
|
};
|
|
3451
3583
|
|
|
@@ -3546,7 +3678,7 @@ var ManagedPricingBlock = ({
|
|
|
3546
3678
|
var import_react58 = __toESM(require("react"));
|
|
3547
3679
|
var import_image5 = __toESM(require("next/image"));
|
|
3548
3680
|
var import_react59 = require("@hugeicons/react");
|
|
3549
|
-
var
|
|
3681
|
+
var import_core_free_icons21 = require("@hugeicons/core-free-icons");
|
|
3550
3682
|
var MemberSocialLink = ({ href, icon, label, name }) => /* @__PURE__ */ import_react58.default.createElement(
|
|
3551
3683
|
"a",
|
|
3552
3684
|
{
|
|
@@ -3586,7 +3718,7 @@ var ManagedBoardBlock = ({
|
|
|
3586
3718
|
MemberSocialLink,
|
|
3587
3719
|
{
|
|
3588
3720
|
href: `https://x.com/${member.twitterHandle}`,
|
|
3589
|
-
icon:
|
|
3721
|
+
icon: import_core_free_icons21.TwitterIcon,
|
|
3590
3722
|
label: "X",
|
|
3591
3723
|
name: member.name
|
|
3592
3724
|
}
|
|
@@ -3594,7 +3726,7 @@ var ManagedBoardBlock = ({
|
|
|
3594
3726
|
MemberSocialLink,
|
|
3595
3727
|
{
|
|
3596
3728
|
href: member.linkedinHandle,
|
|
3597
|
-
icon:
|
|
3729
|
+
icon: import_core_free_icons21.LinkedinIcon,
|
|
3598
3730
|
label: "LinkedIn",
|
|
3599
3731
|
name: member.name
|
|
3600
3732
|
}
|
|
@@ -3770,7 +3902,7 @@ var PortfolioHero = ({
|
|
|
3770
3902
|
var import_react63 = __toESM(require("react"));
|
|
3771
3903
|
var import_image8 = __toESM(require("next/image"));
|
|
3772
3904
|
var import_react64 = require("@hugeicons/react");
|
|
3773
|
-
var
|
|
3905
|
+
var import_core_free_icons22 = require("@hugeicons/core-free-icons");
|
|
3774
3906
|
var GifFeatureCard = ({
|
|
3775
3907
|
gifSrc,
|
|
3776
3908
|
title,
|
|
@@ -3782,7 +3914,7 @@ var GifFeatureCard = ({
|
|
|
3782
3914
|
return /* @__PURE__ */ import_react63.default.createElement("div", { className: `relative w-full bg-black overflow-hidden ${className}` }, isLoading && /* @__PURE__ */ import_react63.default.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-20 bg-black" }, /* @__PURE__ */ import_react63.default.createElement(
|
|
3783
3915
|
import_react64.HugeiconsIcon,
|
|
3784
3916
|
{
|
|
3785
|
-
icon:
|
|
3917
|
+
icon: import_core_free_icons22.Loading03Icon,
|
|
3786
3918
|
size: 32,
|
|
3787
3919
|
className: "animate-spin text-white"
|
|
3788
3920
|
}
|
|
@@ -3864,10 +3996,10 @@ var MedicalFeatureStatsBlock = ({
|
|
|
3864
3996
|
var import_react66 = __toESM(require("react"));
|
|
3865
3997
|
var import_image10 = __toESM(require("next/image"));
|
|
3866
3998
|
var import_react67 = require("@hugeicons/react");
|
|
3867
|
-
var
|
|
3999
|
+
var import_core_free_icons23 = require("@hugeicons/core-free-icons");
|
|
3868
4000
|
var ImageWithLoader = ({ src, alt, className, sizes, priority = false }) => {
|
|
3869
4001
|
const [isLoading, setIsLoading] = (0, import_react66.useState)(true);
|
|
3870
|
-
return /* @__PURE__ */ import_react66.default.createElement("div", { className: `absolute inset-0 bg-stone-800 ${className}` }, isLoading && /* @__PURE__ */ import_react66.default.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-20 bg-stone-800/50 backdrop-blur-md transition-opacity duration-300" }, /* @__PURE__ */ import_react66.default.createElement(import_react67.HugeiconsIcon, { icon:
|
|
4002
|
+
return /* @__PURE__ */ import_react66.default.createElement("div", { className: `absolute inset-0 bg-stone-800 ${className}` }, isLoading && /* @__PURE__ */ import_react66.default.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-20 bg-stone-800/50 backdrop-blur-md transition-opacity duration-300" }, /* @__PURE__ */ import_react66.default.createElement(import_react67.HugeiconsIcon, { icon: import_core_free_icons23.Loading03Icon, size: 24, className: "animate-spin text-white/50" })), /* @__PURE__ */ import_react66.default.createElement(
|
|
3871
4003
|
import_image10.default,
|
|
3872
4004
|
{
|
|
3873
4005
|
src,
|
|
@@ -3959,7 +4091,7 @@ var ConsultantShowcase = ({
|
|
|
3959
4091
|
var import_react68 = __toESM(require("react"));
|
|
3960
4092
|
var import_image11 = __toESM(require("next/image"));
|
|
3961
4093
|
var import_react69 = require("@hugeicons/react");
|
|
3962
|
-
var
|
|
4094
|
+
var import_core_free_icons24 = require("@hugeicons/core-free-icons");
|
|
3963
4095
|
var ContentGridBlock = ({
|
|
3964
4096
|
header,
|
|
3965
4097
|
leftCard,
|
|
@@ -4032,7 +4164,7 @@ var ManagedProjectsBlock = ({
|
|
|
4032
4164
|
// src/components/UniversalVerificationPage.tsx
|
|
4033
4165
|
var import_react71 = __toESM(require("react"));
|
|
4034
4166
|
var import_react72 = require("@hugeicons/react");
|
|
4035
|
-
var
|
|
4167
|
+
var import_core_free_icons25 = require("@hugeicons/core-free-icons");
|
|
4036
4168
|
var VerificationRow = ({
|
|
4037
4169
|
icon,
|
|
4038
4170
|
title,
|
|
@@ -4050,14 +4182,14 @@ var VerificationRow = ({
|
|
|
4050
4182
|
case "APPROVED":
|
|
4051
4183
|
statusText = "Completed";
|
|
4052
4184
|
statusColor = "text-stone-600";
|
|
4053
|
-
StatusIcon =
|
|
4185
|
+
StatusIcon = import_core_free_icons25.CheckmarkCircle01Icon;
|
|
4054
4186
|
bg = "bg-stone-50";
|
|
4055
4187
|
iconColor = "text-green-500";
|
|
4056
4188
|
break;
|
|
4057
4189
|
case "PENDING":
|
|
4058
4190
|
statusText = "Awaiting Approval";
|
|
4059
4191
|
statusColor = "text-stone-500";
|
|
4060
|
-
StatusIcon =
|
|
4192
|
+
StatusIcon = import_core_free_icons25.Time02Icon;
|
|
4061
4193
|
bg = "bg-stone-50";
|
|
4062
4194
|
iconColor = "text-orange-500";
|
|
4063
4195
|
break;
|
|
@@ -4065,7 +4197,7 @@ var VerificationRow = ({
|
|
|
4065
4197
|
statusText = "Action required to fix issue";
|
|
4066
4198
|
statusColor = "text-stone-500";
|
|
4067
4199
|
bg = "bg-stone-50";
|
|
4068
|
-
StatusIcon =
|
|
4200
|
+
StatusIcon = import_core_free_icons25.InformationCircleIcon;
|
|
4069
4201
|
iconColor = "text-[#d97757]";
|
|
4070
4202
|
break;
|
|
4071
4203
|
case "ACTION_REQUIRED":
|
|
@@ -4073,7 +4205,7 @@ var VerificationRow = ({
|
|
|
4073
4205
|
statusText = "Start verification";
|
|
4074
4206
|
statusColor = "text-stone-500";
|
|
4075
4207
|
bg = "bg-stone-50";
|
|
4076
|
-
StatusIcon =
|
|
4208
|
+
StatusIcon = import_core_free_icons25.InformationCircleIcon;
|
|
4077
4209
|
iconColor = "text-stone-400";
|
|
4078
4210
|
break;
|
|
4079
4211
|
}
|
|
@@ -4086,7 +4218,7 @@ var VerificationRow = ({
|
|
|
4086
4218
|
},
|
|
4087
4219
|
/* @__PURE__ */ import_react71.default.createElement("div", { className: "w-9 h-9 rounded-full border border-stone-200 bg-white flex items-center justify-center shrink-0 mr-4" }, /* @__PURE__ */ import_react71.default.createElement(import_react72.HugeiconsIcon, { icon, size: 16, className: "text-black" })),
|
|
4088
4220
|
/* @__PURE__ */ import_react71.default.createElement("div", { className: "flex-1 min-w-0" }, /* @__PURE__ */ import_react71.default.createElement("p", { className: "text-sm truncate text-black" }, title), /* @__PURE__ */ import_react71.default.createElement("p", { className: `text-xs inline-flex items-center ${bg} rounded-full px-2 py-1 ${statusColor} mt-0.5` }, statusText)),
|
|
4089
|
-
/* @__PURE__ */ import_react71.default.createElement("div", { className: "shrink-0 ml-2" }, isLoading ? /* @__PURE__ */ import_react71.default.createElement(import_react72.HugeiconsIcon, { icon:
|
|
4221
|
+
/* @__PURE__ */ import_react71.default.createElement("div", { className: "shrink-0 ml-2" }, isLoading ? /* @__PURE__ */ import_react71.default.createElement(import_react72.HugeiconsIcon, { icon: import_core_free_icons25.Loading03Icon, size: 20, className: "animate-spin text-black" }) : /* @__PURE__ */ import_react71.default.createElement(import_react72.HugeiconsIcon, { icon: StatusIcon, size: 20, className: iconColor }))
|
|
4090
4222
|
);
|
|
4091
4223
|
};
|
|
4092
4224
|
var UniversalVerificationPage = ({
|
|
@@ -4105,12 +4237,12 @@ var UniversalVerificationPage = ({
|
|
|
4105
4237
|
onClick: onBack,
|
|
4106
4238
|
className: "flex items-center gap-2 text-stone-500 hover:text-black transition-colors text-sm outline-none"
|
|
4107
4239
|
},
|
|
4108
|
-
/* @__PURE__ */ import_react71.default.createElement(import_react72.HugeiconsIcon, { icon:
|
|
4240
|
+
/* @__PURE__ */ import_react71.default.createElement(import_react72.HugeiconsIcon, { icon: import_core_free_icons25.ArrowLeft01Icon, size: 16 }),
|
|
4109
4241
|
" Back"
|
|
4110
4242
|
)), /* @__PURE__ */ import_react71.default.createElement("div", { className: "w-full flex flex-col gap-4 mb-8" }, /* @__PURE__ */ import_react71.default.createElement("div", { className: "w-full bg-white rounded-2xl overflow-hidden" }, /* @__PURE__ */ import_react71.default.createElement(
|
|
4111
4243
|
VerificationRow,
|
|
4112
4244
|
{
|
|
4113
|
-
icon:
|
|
4245
|
+
icon: import_core_free_icons25.Mail01Icon,
|
|
4114
4246
|
title: "Email Verification",
|
|
4115
4247
|
status: emailStatus,
|
|
4116
4248
|
isLoading: activeLoadingType === "EMAIL",
|
|
@@ -4119,7 +4251,7 @@ var UniversalVerificationPage = ({
|
|
|
4119
4251
|
), /* @__PURE__ */ import_react71.default.createElement(
|
|
4120
4252
|
VerificationRow,
|
|
4121
4253
|
{
|
|
4122
|
-
icon:
|
|
4254
|
+
icon: import_core_free_icons25.SmartPhone01Icon,
|
|
4123
4255
|
title: "Phone Verification",
|
|
4124
4256
|
status: phoneStatus,
|
|
4125
4257
|
isLoading: activeLoadingType === "PHONE",
|
|
@@ -4128,7 +4260,7 @@ var UniversalVerificationPage = ({
|
|
|
4128
4260
|
), /* @__PURE__ */ import_react71.default.createElement(
|
|
4129
4261
|
VerificationRow,
|
|
4130
4262
|
{
|
|
4131
|
-
icon:
|
|
4263
|
+
icon: import_core_free_icons25.UserIcon,
|
|
4132
4264
|
title: "Identity Verification",
|
|
4133
4265
|
status: identityStatus,
|
|
4134
4266
|
isLoading: activeLoadingType === "IDENTITY",
|
|
@@ -4145,17 +4277,17 @@ var import_react_hot_toast10 = __toESM(require("react-hot-toast"));
|
|
|
4145
4277
|
var import_react_confetti = __toESM(require("react-confetti"));
|
|
4146
4278
|
var import_react_use = require("react-use");
|
|
4147
4279
|
var import_react74 = require("@hugeicons/react");
|
|
4148
|
-
var
|
|
4280
|
+
var import_core_free_icons26 = require("@hugeicons/core-free-icons");
|
|
4149
4281
|
var formatWeb3Name = (name) => {
|
|
4150
4282
|
if (!name) return "";
|
|
4151
4283
|
return name.toLowerCase().replace(/\b\w/g, (c) => c.toUpperCase());
|
|
4152
4284
|
};
|
|
4153
|
-
var PageSpinner4 = () => /* @__PURE__ */ import_react73.default.createElement("div", { className: "flex justify-center items-center py-12 w-full" }, /* @__PURE__ */ import_react73.default.createElement(import_react74.HugeiconsIcon, { icon:
|
|
4285
|
+
var PageSpinner4 = () => /* @__PURE__ */ import_react73.default.createElement("div", { className: "flex justify-center items-center py-12 w-full" }, /* @__PURE__ */ import_react73.default.createElement(import_react74.HugeiconsIcon, { icon: import_core_free_icons26.Loading03Icon, size: 32, className: "animate-spin mb-4 text-black" }));
|
|
4154
4286
|
var AvatarLogo = ({ src, alt, name, sizeClass = "w-12 h-12" }) => {
|
|
4155
4287
|
const [isLoaded, setIsLoaded] = (0, import_react73.useState)(false);
|
|
4156
4288
|
const fallbackUrl = `/api/avatar/?name=${encodeURIComponent(name || " ")}&background=ffffff&color=000000&size=100&font-size=0.33`;
|
|
4157
4289
|
const finalSrc = src || fallbackUrl;
|
|
4158
|
-
return /* @__PURE__ */ import_react73.default.createElement("div", { className: `relative shrink-0 rounded-full bg-stone-100 flex items-center justify-center overflow-hidden border-[3px] border-white ${sizeClass}` }, !isLoaded && /* @__PURE__ */ import_react73.default.createElement(import_react74.HugeiconsIcon, { icon:
|
|
4290
|
+
return /* @__PURE__ */ import_react73.default.createElement("div", { className: `relative shrink-0 rounded-full bg-stone-100 flex items-center justify-center overflow-hidden border-[3px] border-white ${sizeClass}` }, !isLoaded && /* @__PURE__ */ import_react73.default.createElement(import_react74.HugeiconsIcon, { icon: import_core_free_icons26.Loading03Icon, size: 16, className: "animate-spin text-stone-400 absolute" }), /* @__PURE__ */ import_react73.default.createElement("img", { src: finalSrc, alt, onLoad: () => setIsLoaded(true), className: `w-full h-full object-cover transition-opacity duration-300 ${isLoaded ? "opacity-100" : "opacity-0"}` }));
|
|
4159
4291
|
};
|
|
4160
4292
|
var UniversalRewardPage = ({
|
|
4161
4293
|
leaderboardToday,
|
|
@@ -4205,7 +4337,7 @@ var UniversalRewardPage = ({
|
|
|
4205
4337
|
setIsClaiming(false);
|
|
4206
4338
|
}
|
|
4207
4339
|
};
|
|
4208
|
-
return /* @__PURE__ */ import_react73.default.createElement("div", null, /* @__PURE__ */ import_react73.default.createElement("div", { className: "mb-6 flex max-w-3xl w-full mx-auto items-center px-1" }, /* @__PURE__ */ import_react73.default.createElement("button", { onClick: onBackHandler, className: "flex items-center gap-2 text-stone-500 hover:text-black transition-colors text-sm outline-none" }, /* @__PURE__ */ import_react73.default.createElement(import_react74.HugeiconsIcon, { icon:
|
|
4340
|
+
return /* @__PURE__ */ import_react73.default.createElement("div", null, /* @__PURE__ */ import_react73.default.createElement("div", { className: "mb-6 flex max-w-3xl w-full mx-auto items-center px-1" }, /* @__PURE__ */ import_react73.default.createElement("button", { onClick: onBackHandler, className: "flex items-center gap-2 text-stone-500 hover:text-black transition-colors text-sm outline-none" }, /* @__PURE__ */ import_react73.default.createElement(import_react74.HugeiconsIcon, { icon: import_core_free_icons26.ArrowLeft01Icon, size: 16 }), " Back")), /* @__PURE__ */ import_react73.default.createElement("div", { className: "w-full max-w-3xl mx-auto flex flex-col animate-in fade-in duration-300" }, /* @__PURE__ */ import_react73.default.createElement(ManagedToaster, null), showConfetti && /* @__PURE__ */ import_react73.default.createElement("div", { className: "fixed inset-0 z-200 pointer-events-none" }, /* @__PURE__ */ import_react73.default.createElement(import_react_confetti.default, { width, height, recycle: false, numberOfPieces: 500, gravity: 0.15 })), isLoading ? /* @__PURE__ */ import_react73.default.createElement(PageSpinner4, null) : /* @__PURE__ */ import_react73.default.createElement(import_react73.default.Fragment, null, /* @__PURE__ */ import_react73.default.createElement("div", { className: "w-full p-4 pt-10 mb-6 flex items-end justify-center gap-2 sm:gap-6 h-64 relative overflow-hidden" }, /* @__PURE__ */ import_react73.default.createElement("div", { className: "flex flex-col items-center w-1/3 z-10" }, secondPlace ? /* @__PURE__ */ import_react73.default.createElement(import_react73.default.Fragment, null, /* @__PURE__ */ import_react73.default.createElement("span", { className: "text-black text-xs mb-2 truncate max-w-full px-1" }, formatWeb3Name(secondPlace.profile.web3Name)), /* @__PURE__ */ import_react73.default.createElement("div", { className: "relative shrink-0 mb-3" }, /* @__PURE__ */ import_react73.default.createElement(AvatarLogo, { src: secondPlace.profile.avatarUrl, alt: secondPlace.profile.username, name: formatWeb3Name(secondPlace.profile.web3Name), sizeClass: "w-14 h-14" }), /* @__PURE__ */ import_react73.default.createElement("div", { className: "absolute -bottom-2 right-0 w-5 h-5 rounded-full bg-[#ceff8a] text-black flex items-center justify-center text-xs border border-white " }, "2")), /* @__PURE__ */ import_react73.default.createElement("div", { className: "w-full bg-linear-to-t from-stone-100 to-[#ceff8a] rounded-t-xl h-24 flex items-center justify-center" }, /* @__PURE__ */ import_react73.default.createElement("span", { className: "text-stone-800/30 text-2xl " }, "2nd"))) : /* @__PURE__ */ import_react73.default.createElement("div", { className: "w-full bg-linear-to-t from-stone-200 to-stone-100 rounded-t-xl h-24 mt-auto" })), /* @__PURE__ */ import_react73.default.createElement("div", { className: "flex flex-col items-center w-1/3 z-20 -mt-8" }, firstPlace ? /* @__PURE__ */ import_react73.default.createElement(import_react73.default.Fragment, null, /* @__PURE__ */ import_react73.default.createElement("span", { className: "text-black text-xs mb-2 truncate max-w-full px-1" }, formatWeb3Name(firstPlace.profile.web3Name)), /* @__PURE__ */ import_react73.default.createElement("div", { className: "relative shrink-0 mb-3" }, /* @__PURE__ */ import_react73.default.createElement(AvatarLogo, { src: firstPlace.profile.avatarUrl, alt: firstPlace.profile.username, name: formatWeb3Name(firstPlace.profile.web3Name), sizeClass: "w-17 h-17" }), /* @__PURE__ */ import_react73.default.createElement("div", { className: "absolute -bottom-2 right-2 w-5 h-5 rounded-full bg-[#143731] text-white flex items-center justify-center text-xs border border-white " }, "1")), /* @__PURE__ */ import_react73.default.createElement("div", { className: "w-full bg-linear-to-t from-stone-100 to-[#143731] rounded-t-xl h-32 flex items-center justify-center " }, /* @__PURE__ */ import_react73.default.createElement("span", { className: "text-white/40 text-3xl tracking-widest" }, "1st"))) : /* @__PURE__ */ import_react73.default.createElement("div", { className: "w-full bg-linear-to-t from-stone-200 to-stone-100 rounded-t-xl h-32 mt-auto" })), /* @__PURE__ */ import_react73.default.createElement("div", { className: "flex flex-col items-center w-1/3 z-10" }, thirdPlace ? /* @__PURE__ */ import_react73.default.createElement(import_react73.default.Fragment, null, /* @__PURE__ */ import_react73.default.createElement("span", { className: "text-black text-xs mb-2 truncate max-w-full px-1" }, formatWeb3Name(thirdPlace.profile.web3Name)), /* @__PURE__ */ import_react73.default.createElement("div", { className: "relative shrink-0 mb-3" }, /* @__PURE__ */ import_react73.default.createElement(AvatarLogo, { src: thirdPlace.profile.avatarUrl, alt: thirdPlace.profile.username, name: formatWeb3Name(thirdPlace.profile.web3Name), sizeClass: "w-12 h-12" }), /* @__PURE__ */ import_react73.default.createElement("div", { className: "absolute -bottom-2 right-0 w-5 h-5 rounded-full bg-[#ceff8a] text-black flex items-center justify-center text-xs border border-white " }, "3")), /* @__PURE__ */ import_react73.default.createElement("div", { className: "w-full bg-linear-to-t from-stone-100 to-[#ceff8a] rounded-t-xl h-20 flex items-center justify-center" }, /* @__PURE__ */ import_react73.default.createElement("span", { className: "text-stone-800/30 text-xl " }, "3rd"))) : /* @__PURE__ */ import_react73.default.createElement("div", { className: "w-full bg-linear-to-t from-stone-200 to-stone-100 rounded-t-xl h-20 mt-auto" }))), /* @__PURE__ */ import_react73.default.createElement("div", { className: "flex items-center justify-center mb-6 sm:mb-8 w-full animate-in fade-in duration-300 px-2" }, /* @__PURE__ */ import_react73.default.createElement("div", { className: "flex items-center bg-white rounded-full p-1 sm:p-1.5 max-w-full overflow-x-auto custom-scrollbar " }, tabs.map((tab, idx) => {
|
|
4209
4341
|
const isActive = activeTabIndex === idx;
|
|
4210
4342
|
return /* @__PURE__ */ import_react73.default.createElement(
|
|
4211
4343
|
"button",
|
|
@@ -4225,7 +4357,7 @@ var UniversalRewardPage = ({
|
|
|
4225
4357
|
onClick: () => setSelectedReward(reward),
|
|
4226
4358
|
className: "flex items-center justify-between py-4 hover:bg-stone-50 transition-colors cursor-pointer group min-w-0 px-3 -mx-3 rounded-xl"
|
|
4227
4359
|
},
|
|
4228
|
-
/* @__PURE__ */ import_react73.default.createElement("div", { className: "flex items-center gap-4 min-w-0 flex-1" }, /* @__PURE__ */ import_react73.default.createElement("div", { className: "w-10 h-10 shrink-0 rounded-full flex items-center justify-center border border-stone-200 text-black" }, /* @__PURE__ */ import_react73.default.createElement(import_react74.HugeiconsIcon, { icon:
|
|
4360
|
+
/* @__PURE__ */ import_react73.default.createElement("div", { className: "flex items-center gap-4 min-w-0 flex-1" }, /* @__PURE__ */ import_react73.default.createElement("div", { className: "w-10 h-10 shrink-0 rounded-full flex items-center justify-center border border-stone-200 text-black" }, /* @__PURE__ */ import_react73.default.createElement(import_react74.HugeiconsIcon, { icon: import_core_free_icons26.GiftIcon, size: 16 })), /* @__PURE__ */ import_react73.default.createElement("div", { className: "min-w-0 flex-1 flex flex-col items-start gap-0.5 pr-4" }, /* @__PURE__ */ import_react73.default.createElement("p", { className: "text-sm text-black truncate w-full" }, reward.title), /* @__PURE__ */ import_react73.default.createElement("p", { className: `text-xs inline-flex items-center bg-stone-50 rounded-full px-2 py-1 text-stone-500 mt-0.5` }, statusText))),
|
|
4229
4361
|
/* @__PURE__ */ import_react73.default.createElement("div", { className: "shrink-0 flex flex-col items-end gap-1" }, /* @__PURE__ */ import_react73.default.createElement("span", { className: "text-sm text-black" }, reward.amount))
|
|
4230
4362
|
);
|
|
4231
4363
|
}))), remainingLeaderboard.length > 0 && /* @__PURE__ */ import_react73.default.createElement("div", { className: "bg-white rounded-2xl p-6 " }, /* @__PURE__ */ import_react73.default.createElement("h2", { className: "text-black text-lg mb-4 tracking-tight" }, "Leaderboard"), /* @__PURE__ */ import_react73.default.createElement("div", { className: "flex flex-col" }, remainingLeaderboard.map((lb) => /* @__PURE__ */ import_react73.default.createElement("div", { key: lb.profile.username, className: "flex items-center justify-between py-3 min-w-0" }, /* @__PURE__ */ import_react73.default.createElement("div", { className: "flex items-center gap-4 min-w-0 flex-1" }, /* @__PURE__ */ import_react73.default.createElement("div", { className: "text-xs text-stone-400 w-4" }, lb.position), /* @__PURE__ */ import_react73.default.createElement(AvatarLogo, { src: lb.profile.avatarUrl, alt: lb.profile.username, name: formatWeb3Name(lb.profile.web3Name), sizeClass: "w-9 h-9" }), /* @__PURE__ */ import_react73.default.createElement("div", { className: "min-w-0 flex-1 flex flex-col" }, /* @__PURE__ */ import_react73.default.createElement("p", { className: "text-sm text-black truncate" }, formatWeb3Name(lb.profile.web3Name)), /* @__PURE__ */ import_react73.default.createElement("p", { className: "text-xs text-stone-400 truncate" }, "@", lb.profile.username))), /* @__PURE__ */ import_react73.default.createElement("div", { className: "shrink-0 text-sm text-black" }, lb.amount))))))), selectedReward && /* @__PURE__ */ import_react73.default.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ import_react73.default.createElement("div", { className: "absolute inset-0 bg-black/40", onClick: () => !isClaiming && setSelectedReward(null) }), /* @__PURE__ */ import_react73.default.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-3xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200" }, /* @__PURE__ */ import_react73.default.createElement("div", { className: "flex-1 p-6 flex flex-col items-center text-center mt-2" }, /* @__PURE__ */ import_react73.default.createElement("h2", { className: "text-xl text-black mb-2" }, selectedReward.title), /* @__PURE__ */ import_react73.default.createElement("p", { className: "text-sm text-stone-500 mb-6 leading-relaxed" }, selectedReward.description), selectedReward.progressText && /* @__PURE__ */ import_react73.default.createElement("div", { className: "w-full mb-6" }, /* @__PURE__ */ import_react73.default.createElement("div", { className: `px-4 py-2 rounded-full text-xs tracking-wide ${selectedReward.status === "CLAIMED" ? "bg-green-50 text-green-600" : selectedReward.isEligible ? "bg-blue-50 text-blue-600" : "bg-stone-100 text-stone-600"}` }, selectedReward.progressText)), /* @__PURE__ */ import_react73.default.createElement("div", { className: " w-full rounded-xl p-4 mb-8 flex flex-col items-center" }, /* @__PURE__ */ import_react73.default.createElement("span", { className: "text-xs tracking-widest text-stone-400 mb-1" }, "Reward Value"), /* @__PURE__ */ import_react73.default.createElement("span", { className: "text-3xl text-black " }, selectedReward.amount)), /* @__PURE__ */ import_react73.default.createElement("div", { className: "flex flex-col gap-3 w-full" }, /* @__PURE__ */ import_react73.default.createElement(
|
|
@@ -4252,8 +4384,8 @@ var UniversalRewardPage = ({
|
|
|
4252
4384
|
var import_react75 = __toESM(require("react"));
|
|
4253
4385
|
var import_react_hot_toast11 = __toESM(require("react-hot-toast"));
|
|
4254
4386
|
var import_react76 = require("@hugeicons/react");
|
|
4255
|
-
var
|
|
4256
|
-
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:
|
|
4387
|
+
var import_core_free_icons27 = require("@hugeicons/core-free-icons");
|
|
4388
|
+
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" }));
|
|
4257
4389
|
var formatWeb3Name2 = (name) => {
|
|
4258
4390
|
if (!name) return "";
|
|
4259
4391
|
return name.toLowerCase().replace(/\b\w/g, (c) => c.toUpperCase());
|
|
@@ -4288,16 +4420,16 @@ var UniversalReferralPage = ({
|
|
|
4288
4420
|
const [isLoaded, setIsLoaded] = (0, import_react75.useState)(false);
|
|
4289
4421
|
const fallbackUrl = `/api/avatar/?name=${encodeURIComponent(name || " ")}&background=e0e0e0&color=000000&size=100&font-size=0.33`;
|
|
4290
4422
|
const finalSrc = src || fallbackUrl;
|
|
4291
|
-
return /* @__PURE__ */ import_react75.default.createElement("div", { className: `relative shrink-0 rounded-full bg-stone-100 flex items-center justify-center overflow-hidden border-2 border-white ${sizeClass}` }, !isLoaded && /* @__PURE__ */ import_react75.default.createElement(import_react76.HugeiconsIcon, { icon:
|
|
4423
|
+
return /* @__PURE__ */ import_react75.default.createElement("div", { className: `relative shrink-0 rounded-full bg-stone-100 flex items-center justify-center overflow-hidden border-2 border-white ${sizeClass}` }, !isLoaded && /* @__PURE__ */ import_react75.default.createElement(import_react76.HugeiconsIcon, { icon: import_core_free_icons27.Loading03Icon, size: 16, className: "animate-spin text-stone-400 absolute" }), /* @__PURE__ */ import_react75.default.createElement("img", { src: finalSrc, alt, onLoad: () => setIsLoaded(true), className: `w-full h-full object-cover transition-opacity duration-300 ${isLoaded ? "opacity-100" : "opacity-0"}` }));
|
|
4292
4424
|
};
|
|
4293
|
-
return /* @__PURE__ */ import_react75.default.createElement("div", { className: "w-full max-w-3xl mx-auto flex flex-col animate-in fade-in duration-300" }, /* @__PURE__ */ import_react75.default.createElement(ManagedToaster, null), /* @__PURE__ */ import_react75.default.createElement("div", { className: "mb-6 flex w-full items-center px-1" }, /* @__PURE__ */ import_react75.default.createElement("button", { onClick: onBackHandler, className: "flex items-center gap-2 text-stone-500 hover:text-black transition-colors text-sm outline-none" }, /* @__PURE__ */ import_react75.default.createElement(import_react76.HugeiconsIcon, { icon:
|
|
4425
|
+
return /* @__PURE__ */ import_react75.default.createElement("div", { className: "w-full max-w-3xl mx-auto flex flex-col animate-in fade-in duration-300" }, /* @__PURE__ */ import_react75.default.createElement(ManagedToaster, null), /* @__PURE__ */ import_react75.default.createElement("div", { className: "mb-6 flex w-full items-center px-1" }, /* @__PURE__ */ import_react75.default.createElement("button", { onClick: onBackHandler, className: "flex items-center gap-2 text-stone-500 hover:text-black transition-colors text-sm outline-none" }, /* @__PURE__ */ import_react75.default.createElement(import_react76.HugeiconsIcon, { icon: import_core_free_icons27.ArrowLeft01Icon, size: 16 }), " Back")), /* @__PURE__ */ import_react75.default.createElement("div", { className: "flex flex-col gap-4 mb-6 px-1" }, /* @__PURE__ */ import_react75.default.createElement("div", null, /* @__PURE__ */ import_react75.default.createElement("h1", { className: "text-black text-xl mb-1 tracking-tight" }, "Your Referrals"), /* @__PURE__ */ import_react75.default.createElement("p", { className: "text-xs text-stone-500" }, "Invite friends and earn rewards when they verify and activate cards.")), /* @__PURE__ */ import_react75.default.createElement("div", { className: "bg-[#143731] rounded-3xl p-6 relative overflow-hidden flex flex-col min-h-25 w-full mt-2" }, /* @__PURE__ */ import_react75.default.createElement("div", { className: "relative z-10 flex flex-col items-start" }, /* @__PURE__ */ import_react75.default.createElement("p", { className: "text-xs text-white leading-tight mb-1" }, /* @__PURE__ */ import_react75.default.createElement("span", { className: "text-white/60" }, "AFT Balance")), isLoading ? /* @__PURE__ */ import_react75.default.createElement("div", { className: "h-8 w-32 bg-white/10 animate-pulse rounded mt-2" }) : /* @__PURE__ */ import_react75.default.createElement("span", { className: "text-lg text-white tracking-tight mt-1" }, referralCoins)))), /* @__PURE__ */ import_react75.default.createElement("div", { className: "flex flex-col gap-6 p-4 rounded-3xl bg-white w-full" }, /* @__PURE__ */ import_react75.default.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ import_react75.default.createElement("div", { className: "border border-stone-200 rounded-xl p-4 flex items-center justify-between" }, /* @__PURE__ */ import_react75.default.createElement("div", { className: "flex flex-col gap-1" }, /* @__PURE__ */ import_react75.default.createElement("span", { className: "text-xs tracking-widest text-stone-400 " }, "Invitation Code"), isLoading && !referralCode ? /* @__PURE__ */ import_react75.default.createElement("div", { className: "h-6 w-24 bg-stone-50 animate-pulse rounded mt-1" }) : /* @__PURE__ */ import_react75.default.createElement("span", { className: "text-sm text-black tracking-widest" }, referralCode)), /* @__PURE__ */ import_react75.default.createElement(
|
|
4294
4426
|
"button",
|
|
4295
4427
|
{
|
|
4296
4428
|
onClick: handleCopyCode,
|
|
4297
4429
|
disabled: isLoading || !referralCode,
|
|
4298
4430
|
className: "w-10 h-10 rounded-full bg-white flex items-center justify-center text-stone-500 hover:text-black transition-colors outline-none disabled:opacity-50"
|
|
4299
4431
|
},
|
|
4300
|
-
/* @__PURE__ */ import_react75.default.createElement(import_react76.HugeiconsIcon, { icon:
|
|
4432
|
+
/* @__PURE__ */ import_react75.default.createElement(import_react76.HugeiconsIcon, { icon: import_core_free_icons27.Copy01Icon, size: 18 })
|
|
4301
4433
|
)), /* @__PURE__ */ import_react75.default.createElement("div", { className: "flex items-center justify-between text-sm text-stone-500 px-1" }, /* @__PURE__ */ import_react75.default.createElement("span", null, "Total Invited: ", /* @__PURE__ */ import_react75.default.createElement("span", { className: "text-black " }, isLoading && !totalCount ? "-" : totalCount)))), /* @__PURE__ */ import_react75.default.createElement("div", { className: "w-full overflow-hidden" }, isLoading ? /* @__PURE__ */ import_react75.default.createElement(PageSpinner5, null) : /* @__PURE__ */ import_react75.default.createElement("div", { className: "flex flex-col min-w-0" }, /* @__PURE__ */ import_react75.default.createElement("div", null, referrals.length === 0 ? /* @__PURE__ */ import_react75.default.createElement("div", { className: "flex flex-col items-center justify-center py-8 opacity-50" }, /* @__PURE__ */ import_react75.default.createElement("p", { className: "text-xs text-stone-500 text-center" }, "You haven't referred anyone yet.")) : referrals.map((ref, idx) => /* @__PURE__ */ import_react75.default.createElement(
|
|
4302
4434
|
"div",
|
|
4303
4435
|
{
|
|
@@ -4320,7 +4452,7 @@ var UniversalReferralPage = ({
|
|
|
4320
4452
|
disabled: currentPage <= 1 || isLoading,
|
|
4321
4453
|
className: "p-2 bg-white border border-stone-200 rounded-full text-black hover:bg-stone-50 disabled:opacity-30 disabled:cursor-not-allowed transition-all outline-none"
|
|
4322
4454
|
},
|
|
4323
|
-
/* @__PURE__ */ import_react75.default.createElement(import_react76.HugeiconsIcon, { icon:
|
|
4455
|
+
/* @__PURE__ */ import_react75.default.createElement(import_react76.HugeiconsIcon, { icon: import_core_free_icons27.ArrowLeft01Icon, size: 14 })
|
|
4324
4456
|
), /* @__PURE__ */ import_react75.default.createElement(
|
|
4325
4457
|
"button",
|
|
4326
4458
|
{
|
|
@@ -4328,7 +4460,7 @@ var UniversalReferralPage = ({
|
|
|
4328
4460
|
disabled: currentPage >= totalPages || isLoading || totalPages === 0,
|
|
4329
4461
|
className: "p-2 bg-white border border-stone-200 rounded-full text-black hover:bg-stone-50 disabled:opacity-30 disabled:cursor-not-allowed transition-all outline-none"
|
|
4330
4462
|
},
|
|
4331
|
-
/* @__PURE__ */ import_react75.default.createElement(import_react76.HugeiconsIcon, { icon:
|
|
4463
|
+
/* @__PURE__ */ import_react75.default.createElement(import_react76.HugeiconsIcon, { icon: import_core_free_icons27.ArrowRight01Icon, size: 14 })
|
|
4332
4464
|
)))))));
|
|
4333
4465
|
};
|
|
4334
4466
|
|
|
@@ -4337,7 +4469,7 @@ var import_react77 = __toESM(require("react"));
|
|
|
4337
4469
|
var import_react_confetti2 = __toESM(require("react-confetti"));
|
|
4338
4470
|
var import_react_use2 = require("react-use");
|
|
4339
4471
|
var import_react78 = require("@hugeicons/react");
|
|
4340
|
-
var
|
|
4472
|
+
var import_core_free_icons28 = require("@hugeicons/core-free-icons");
|
|
4341
4473
|
var CheckIcon2 = ({ className = "" }) => /* @__PURE__ */ import_react77.default.createElement("svg", { viewBox: "0 0 24 24", fill: "none", className: `w-4 h-4 shrink-0 ${className}`, xmlns: "http://www.w3.org/2000/svg" }, /* @__PURE__ */ import_react77.default.createElement("circle", { cx: "12", cy: "12", r: "10", fill: "black" }), /* @__PURE__ */ import_react77.default.createElement("path", { d: "M8 12L11 15L16 9", stroke: "white", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }));
|
|
4342
4474
|
var CrossIcon2 = ({ className = "" }) => /* @__PURE__ */ import_react77.default.createElement("svg", { viewBox: "0 0 24 24", fill: "none", className: `w-4 h-4 shrink-0 ${className}`, xmlns: "http://www.w3.org/2000/svg" }, /* @__PURE__ */ import_react77.default.createElement("circle", { cx: "12", cy: "12", r: "10", fill: "#F5F5F5" }), /* @__PURE__ */ import_react77.default.createElement("path", { d: "M15 9L9 15M9 9l6 6", stroke: "#D4D4D4", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }));
|
|
4343
4475
|
var formatTierName = (name) => {
|
|
@@ -4426,9 +4558,9 @@ var UniversalCardActionPage = ({
|
|
|
4426
4558
|
onClick: onBackHandler,
|
|
4427
4559
|
className: "flex items-center gap-2 text-stone-500 hover:text-black transition-colors text-sm outline-none"
|
|
4428
4560
|
},
|
|
4429
|
-
/* @__PURE__ */ import_react77.default.createElement(import_react78.HugeiconsIcon, { icon:
|
|
4561
|
+
/* @__PURE__ */ import_react77.default.createElement(import_react78.HugeiconsIcon, { icon: import_core_free_icons28.ArrowLeft01Icon, size: 16 }),
|
|
4430
4562
|
" Back"
|
|
4431
|
-
)), /* @__PURE__ */ import_react77.default.createElement("div", { className: "flex flex-col animate-in max-w-5xl w-full mx-auto fade-in duration-300" }, /* @__PURE__ */ import_react77.default.createElement("div", { className: "w-full flex flex-col items-center text-center mb-10 px-4" }, /* @__PURE__ */ import_react77.default.createElement("span", { className: "text-xs tracking-[0.4em] text-stone-400 block mb-3" }, cardType, " CARD ACTIVATION"), /* @__PURE__ */ import_react77.default.createElement("h1", { className: "text-2xl sm:text-3xl text-black tracking-tight mb-2" }, "Select Your Tier"), /* @__PURE__ */ import_react77.default.createElement("p", { className: "text-xs text-stone-500 max-w-lg" }, hasPreordered ? "You have already secured your card. Upgrades are disabled while your order is pending processing." : "Upgrade your tier or secure your card now. Pre-orders guarantee priority processing when the batch goes live.")), isLoadingData ? /* @__PURE__ */ import_react77.default.createElement("div", { className: "flex justify-center py-20" }, /* @__PURE__ */ import_react77.default.createElement(import_react78.HugeiconsIcon, { icon:
|
|
4563
|
+
)), /* @__PURE__ */ import_react77.default.createElement("div", { className: "flex flex-col animate-in max-w-5xl w-full mx-auto fade-in duration-300" }, /* @__PURE__ */ import_react77.default.createElement("div", { className: "w-full flex flex-col items-center text-center mb-10 px-4" }, /* @__PURE__ */ import_react77.default.createElement("span", { className: "text-xs tracking-[0.4em] text-stone-400 block mb-3" }, cardType, " CARD ACTIVATION"), /* @__PURE__ */ import_react77.default.createElement("h1", { className: "text-2xl sm:text-3xl text-black tracking-tight mb-2" }, "Select Your Tier"), /* @__PURE__ */ import_react77.default.createElement("p", { className: "text-xs text-stone-500 max-w-lg" }, hasPreordered ? "You have already secured your card. Upgrades are disabled while your order is pending processing." : "Upgrade your tier or secure your card now. Pre-orders guarantee priority processing when the batch goes live.")), isLoadingData ? /* @__PURE__ */ import_react77.default.createElement("div", { className: "flex justify-center py-20" }, /* @__PURE__ */ import_react77.default.createElement(import_react78.HugeiconsIcon, { icon: import_core_free_icons28.Loading03Icon, size: 32, className: "animate-spin text-stone-300" })) : /* @__PURE__ */ import_react77.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-5 w-full max-w-4xl mx-auto px-4" }, availableTiers.map((tier) => {
|
|
4432
4564
|
const isCurrent = tier.tierName === currentTier;
|
|
4433
4565
|
const isCardDisabled = hasPreordered && !isCurrent;
|
|
4434
4566
|
const isHighlighted = hasPreordered && isCurrent;
|
|
@@ -4450,7 +4582,7 @@ var UniversalCardActionPage = ({
|
|
|
4450
4582
|
className: `absolute -top-10 -right-10 w-48 h-48 bg-linear-to-bl ${getTierGlow(tier.tierName)} to-transparent opacity-40 blur-2xl rounded-full pointer-events-none`
|
|
4451
4583
|
}
|
|
4452
4584
|
),
|
|
4453
|
-
isThisCardLoading && /* @__PURE__ */ import_react77.default.createElement("div", { className: "absolute inset-0 z-50 flex items-center justify-center bg-white/40 backdrop-blur-[1px]" }, /* @__PURE__ */ import_react77.default.createElement(import_react78.HugeiconsIcon, { icon:
|
|
4585
|
+
isThisCardLoading && /* @__PURE__ */ import_react77.default.createElement("div", { className: "absolute inset-0 z-50 flex items-center justify-center bg-white/40 backdrop-blur-[1px]" }, /* @__PURE__ */ import_react77.default.createElement(import_react78.HugeiconsIcon, { icon: import_core_free_icons28.Loading03Icon, size: 32, className: "animate-spin text-black" })),
|
|
4454
4586
|
/* @__PURE__ */ import_react77.default.createElement("div", { className: "mb-6 relative z-10" }, /* @__PURE__ */ import_react77.default.createElement("div", { className: "flex justify-between items-start mb-1" }, /* @__PURE__ */ import_react77.default.createElement("span", { className: "text-black text-sm tracking-widest " }, formatTierName(tier.tierName)), isCurrent && !hasPreordered && /* @__PURE__ */ import_react77.default.createElement("span", { className: "text-xs bg-stone-100 text-stone-600 px-2 py-1 rounded-full tracking-wider" }, "Current")), /* @__PURE__ */ import_react77.default.createElement("div", { className: "flex items-baseline gap-1 mt-2" }, /* @__PURE__ */ import_react77.default.createElement("h3", { className: "text-3xl font-light text-black" }, tier.priceUSD === 0 ? "Free" : `$${tier.priceUSD.toFixed(2)}`), tier.priceUSD > 0 && /* @__PURE__ */ import_react77.default.createElement("span", { className: "text-xs text-stone-500" }, tier.isYearly ? "/ year" : "one-time")), /* @__PURE__ */ import_react77.default.createElement("p", { className: "text-sm text-stone-500 mt-3 min-h-12 leading-relaxed" }, tier.description)),
|
|
4455
4587
|
/* @__PURE__ */ import_react77.default.createElement("div", { className: "flex flex-col gap-2.5 mb-6 relative z-10" }, /* @__PURE__ */ import_react77.default.createElement("div", { className: isPrimaryDisabled ? "opacity-50 pointer-events-none" : "" }, /* @__PURE__ */ import_react77.default.createElement(
|
|
4456
4588
|
ThreeDActionButton,
|
|
@@ -4490,7 +4622,7 @@ var UniversalCardActionPage = ({
|
|
|
4490
4622
|
onClick: () => setSelectedTier(null),
|
|
4491
4623
|
className: "text-stone-400 hover:text-black transition-colors outline-none disabled:opacity-50"
|
|
4492
4624
|
},
|
|
4493
|
-
/* @__PURE__ */ import_react77.default.createElement(import_react78.HugeiconsIcon, { icon:
|
|
4625
|
+
/* @__PURE__ */ import_react77.default.createElement(import_react78.HugeiconsIcon, { icon: import_core_free_icons28.CancelCircleIcon, size: 18 })
|
|
4494
4626
|
)), /* @__PURE__ */ import_react77.default.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-6 relative z-10" }, /* @__PURE__ */ import_react77.default.createElement("div", { className: "flex flex-col items-center justify-center mb-6" }, /* @__PURE__ */ import_react77.default.createElement("p", { className: "text-2xl text-black mb-1" }, selectedTier.priceUSD === 0 ? "Free" : `$${selectedTier.priceUSD.toFixed(2)}`), /* @__PURE__ */ import_react77.default.createElement("span", { className: `text-xs tracking-widest px-4 py-1.5 rounded-full bg-stone-100 text-black mt-1` }, formatTierName(selectedTier.tierName), " ", formatTierName(cardType))), /* @__PURE__ */ import_react77.default.createElement("div", { className: "grid grid-cols-1 gap-y-6 mb-8 mt-4" }, /* @__PURE__ */ import_react77.default.createElement("div", null, /* @__PURE__ */ import_react77.default.createElement("span", { className: "text-xs tracking-[0.2em] text-stone-400 block mb-1" }, "Action"), /* @__PURE__ */ import_react77.default.createElement("span", { className: "text-sm text-black " }, intendedAction === "upgrade" ? `Upgrade to ${formatTierName(selectedTier.tierName)}` : `Pre-order Card`)), intendedAction === "pre_order" && selectedTier.priceUSD > 0 && /* @__PURE__ */ import_react77.default.createElement("div", null, /* @__PURE__ */ import_react77.default.createElement("span", { className: "text-xs tracking-[0.2em] text-stone-400 block mb-1" }, "Payment Notice"), /* @__PURE__ */ import_react77.default.createElement("span", { className: "text-xs text-stone-600 leading-relaxed block" }, "By confirming, $", selectedTier.priceUSD.toFixed(2), " will be securely deducted from your USD asset balance to guarantee your order."))), /* @__PURE__ */ import_react77.default.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ import_react77.default.createElement(
|
|
4495
4627
|
ThreeDActionButton,
|
|
4496
4628
|
{
|
|
@@ -4525,7 +4657,7 @@ var UniversalCardActionPage = ({
|
|
|
4525
4657
|
// src/components/PinDialerBottomSheet.tsx
|
|
4526
4658
|
var import_react79 = __toESM(require("react"));
|
|
4527
4659
|
var import_react80 = require("@hugeicons/react");
|
|
4528
|
-
var
|
|
4660
|
+
var import_core_free_icons29 = require("@hugeicons/core-free-icons");
|
|
4529
4661
|
var PinDialerBottomSheet = ({
|
|
4530
4662
|
isOpen,
|
|
4531
4663
|
title = "Action Required",
|
|
@@ -4560,7 +4692,7 @@ var PinDialerBottomSheet = ({
|
|
|
4560
4692
|
disabled: isVerifying,
|
|
4561
4693
|
className: "text-stone-400 hover:text-black transition-colors outline-none disabled:opacity-50"
|
|
4562
4694
|
},
|
|
4563
|
-
/* @__PURE__ */ import_react79.default.createElement(import_react80.HugeiconsIcon, { icon:
|
|
4695
|
+
/* @__PURE__ */ import_react79.default.createElement(import_react80.HugeiconsIcon, { icon: import_core_free_icons29.CancelCircleIcon, size: 20 })
|
|
4564
4696
|
)), /* @__PURE__ */ import_react79.default.createElement("div", { className: "flex flex-col px-6 pb-6 pt-2 relative" }, /* @__PURE__ */ import_react79.default.createElement("form", { onSubmit: handleSubmit, className: "flex flex-col gap-6" }, /* @__PURE__ */ import_react79.default.createElement(
|
|
4565
4697
|
TextInput,
|
|
4566
4698
|
{
|
|
@@ -4588,7 +4720,7 @@ var PinDialerBottomSheet = ({
|
|
|
4588
4720
|
var import_react81 = __toESM(require("react"));
|
|
4589
4721
|
var import_react_hot_toast12 = __toESM(require("react-hot-toast"));
|
|
4590
4722
|
var import_react82 = require("@hugeicons/react");
|
|
4591
|
-
var
|
|
4723
|
+
var import_core_free_icons30 = require("@hugeicons/core-free-icons");
|
|
4592
4724
|
var CircularLogo = ({ src, alt, fallbackText }) => {
|
|
4593
4725
|
const [isLoaded, setIsLoaded] = (0, import_react81.useState)(false);
|
|
4594
4726
|
const [hasError, setHasError] = (0, import_react81.useState)(false);
|
|
@@ -4764,7 +4896,7 @@ var UniversalBuyCryptoPage = ({
|
|
|
4764
4896
|
}
|
|
4765
4897
|
};
|
|
4766
4898
|
const isButtonDisabled = isSubmitting || isCalculating || !fiatAmount || !cryptoAmount || !isAddressValid || !currentRateKey;
|
|
4767
|
-
return /* @__PURE__ */ import_react81.default.createElement("div", { className: "w-full max-w-3xl mx-auto flex flex-col animate-in fade-in duration-300" }, /* @__PURE__ */ import_react81.default.createElement(ManagedToaster, null), !hideBackButton && /* @__PURE__ */ import_react81.default.createElement("div", { className: "mb-6 flex w-full items-center px-1" }, /* @__PURE__ */ import_react81.default.createElement("button", { onClick: onBackHandler, className: "flex items-center gap-2 text-stone-500 hover:text-black transition-colors text-sm outline-none" }, /* @__PURE__ */ import_react81.default.createElement(import_react82.HugeiconsIcon, { icon:
|
|
4899
|
+
return /* @__PURE__ */ import_react81.default.createElement("div", { className: "w-full max-w-3xl mx-auto flex flex-col animate-in fade-in duration-300" }, /* @__PURE__ */ import_react81.default.createElement(ManagedToaster, null), !hideBackButton && /* @__PURE__ */ import_react81.default.createElement("div", { className: "mb-6 flex w-full items-center px-1" }, /* @__PURE__ */ import_react81.default.createElement("button", { onClick: onBackHandler, className: "flex items-center gap-2 text-stone-500 hover:text-black transition-colors text-sm outline-none" }, /* @__PURE__ */ import_react81.default.createElement(import_react82.HugeiconsIcon, { icon: import_core_free_icons30.ArrowLeft01Icon, size: 16 }), " Back")), /* @__PURE__ */ import_react81.default.createElement("div", { className: "flex flex-col gap-1 mb-6 px-1" }, /* @__PURE__ */ import_react81.default.createElement("h1", { className: "text-black text-xl tracking-tight" }, "Buy Crypto"), /* @__PURE__ */ import_react81.default.createElement("p", { className: "text-xs text-stone-500" }, "Purchase digital assets instantly in your local currency with direct wallet delivery.")), /* @__PURE__ */ import_react81.default.createElement("div", { className: "flex flex-col gap-6 p-6 sm:p-8 rounded-3xl bg-white w-full " }, /* @__PURE__ */ import_react81.default.createElement("div", { className: "relative flex flex-col gap-3" }, /* @__PURE__ */ import_react81.default.createElement("div", { className: "border border-stone-200 rounded-2xl p-4 flex items-center justify-between transition-all focus-within:border-black" }, /* @__PURE__ */ import_react81.default.createElement("div", { className: "flex flex-col gap-1 flex-1 pr-3 min-w-0" }, /* @__PURE__ */ import_react81.default.createElement("span", { className: "text-xs tracking-widest text-stone-400" }, "You Pay (", fiatCurrency.code, ")"), isCalculating && activeSource === "CRYPTO" ? /* @__PURE__ */ import_react81.default.createElement("div", { className: "h-7 w-32 bg-stone-100 animate-pulse rounded-md mt-1" }) : /* @__PURE__ */ import_react81.default.createElement(
|
|
4768
4900
|
"input",
|
|
4769
4901
|
{
|
|
4770
4902
|
type: "text",
|
|
@@ -4841,7 +4973,7 @@ var UniversalBuyCryptoPage = ({
|
|
|
4841
4973
|
},
|
|
4842
4974
|
/* @__PURE__ */ import_react81.default.createElement(CircularLogo, { src: c.logoUrl, alt: c.name, fallbackText: c.code }),
|
|
4843
4975
|
/* @__PURE__ */ import_react81.default.createElement("div", { className: "flex flex-col flex-1 min-w-0" }, /* @__PURE__ */ import_react81.default.createElement("span", { className: "text-xs text-black truncate" }, c.name), /* @__PURE__ */ import_react81.default.createElement("span", { className: "text-xs text-stone-400" }, c.code)),
|
|
4844
|
-
isSelected && /* @__PURE__ */ import_react81.default.createElement(import_react82.HugeiconsIcon, { icon:
|
|
4976
|
+
isSelected && /* @__PURE__ */ import_react81.default.createElement(import_react82.HugeiconsIcon, { icon: import_core_free_icons30.CheckmarkCircle02Icon, size: 16, className: "text-black" })
|
|
4845
4977
|
);
|
|
4846
4978
|
}))))), isNetworkDialogOpen && /* @__PURE__ */ import_react81.default.createElement("div", { className: "fixed inset-0 z-50 flex items-center justify-center p-4 bg-black/40" }, /* @__PURE__ */ import_react81.default.createElement("div", { className: "absolute inset-0", onClick: () => setIsNetworkDialogOpen(false) }), /* @__PURE__ */ import_react81.default.createElement("div", { className: "w-full max-w-sm bg-white rounded-2xl shadow-2xl overflow-hidden relative z-10 animate-in fade-in zoom-in-95 duration-200" }, /* @__PURE__ */ import_react81.default.createElement("button", { onClick: () => setIsNetworkDialogOpen(false), className: "absolute top-4 right-4 p-2 text-stone-700 hover:text-stone-400 transition-colors outline-none" }, /* @__PURE__ */ import_react81.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, /* @__PURE__ */ import_react81.default.createElement("path", { d: "M18 6 6 18" }), /* @__PURE__ */ import_react81.default.createElement("path", { d: "m6 6 12 12" }))), /* @__PURE__ */ import_react81.default.createElement("div", { className: "p-6 sm:p-8" }, /* @__PURE__ */ import_react81.default.createElement("div", { className: "mb-6 mt-2" }, /* @__PURE__ */ import_react81.default.createElement("h2", { className: "text-xl text-black tracking-tight mb-2" }, "Select Network"), /* @__PURE__ */ import_react81.default.createElement("p", { className: "text-sm text-stone-500 leading-relaxed" }, "Ensure your receiving wallet supports this network.")), /* @__PURE__ */ import_react81.default.createElement("div", { className: "flex flex-col gap-2 max-h-72 overflow-y-auto custom-scrollbar pr-1" }, selectedCrypto?.networks?.map((net) => {
|
|
4847
4979
|
const isSelected = net.id === selectedNetwork.id;
|
|
@@ -4857,7 +4989,7 @@ var UniversalBuyCryptoPage = ({
|
|
|
4857
4989
|
},
|
|
4858
4990
|
/* @__PURE__ */ import_react81.default.createElement(CircularLogo, { src: net.logoUrl || selectedCrypto.logoUrl, alt: net.name, fallbackText: net.symbol }),
|
|
4859
4991
|
/* @__PURE__ */ import_react81.default.createElement("div", { className: "flex flex-col flex-1 min-w-0" }, /* @__PURE__ */ import_react81.default.createElement("span", { className: "text-xs text-black truncate" }, net.name), /* @__PURE__ */ import_react81.default.createElement("span", { className: "text-xs text-stone-400" }, net.symbol)),
|
|
4860
|
-
isSelected && /* @__PURE__ */ import_react81.default.createElement(import_react82.HugeiconsIcon, { icon:
|
|
4992
|
+
isSelected && /* @__PURE__ */ import_react81.default.createElement(import_react82.HugeiconsIcon, { icon: import_core_free_icons30.CheckmarkCircle02Icon, size: 16, className: "text-black" })
|
|
4861
4993
|
);
|
|
4862
4994
|
}))))));
|
|
4863
4995
|
};
|
|
@@ -4865,7 +4997,7 @@ var UniversalBuyCryptoPage = ({
|
|
|
4865
4997
|
// src/components/UniversalHuddlesPage.tsx
|
|
4866
4998
|
var import_react83 = __toESM(require("react"));
|
|
4867
4999
|
var import_react84 = require("@hugeicons/react");
|
|
4868
|
-
var
|
|
5000
|
+
var import_core_free_icons31 = require("@hugeicons/core-free-icons");
|
|
4869
5001
|
var HuddleAvatar = ({ timeString, status, sizeClass = "w-10 h-10" }) => {
|
|
4870
5002
|
const getStatusColor = () => {
|
|
4871
5003
|
switch (status?.toUpperCase()) {
|
|
@@ -4892,7 +5024,7 @@ var HuddleAvatar = ({ timeString, status, sizeClass = "w-10 h-10" }) => {
|
|
|
4892
5024
|
}
|
|
4893
5025
|
return /* @__PURE__ */ import_react83.default.createElement("div", { className: `relative shrink-0 aspect-square ${sizeClass}` }, /* @__PURE__ */ import_react83.default.createElement("div", { className: "w-full h-full aspect-square rounded-lg bg-neutral-50 flex flex-col items-center justify-center overflow-hidden" }, /* @__PURE__ */ import_react83.default.createElement("span", { className: "text-[9px] tracking-wider leading-tight", style: { color: "#d97757" } }, month), /* @__PURE__ */ import_react83.default.createElement("span", { className: "text-sm text-black leading-tight" }, day)), /* @__PURE__ */ import_react83.default.createElement("div", { className: `absolute -bottom-1 -right-1 w-3 h-3 rounded-full border-2 border-white z-10 ${getStatusColor()}` }));
|
|
4894
5026
|
};
|
|
4895
|
-
var PageSpinner6 = () => /* @__PURE__ */ import_react83.default.createElement("div", { className: "flex justify-center items-center py-12" }, /* @__PURE__ */ import_react83.default.createElement(import_react84.HugeiconsIcon, { icon:
|
|
5027
|
+
var PageSpinner6 = () => /* @__PURE__ */ import_react83.default.createElement("div", { className: "flex justify-center items-center py-12" }, /* @__PURE__ */ import_react83.default.createElement(import_react84.HugeiconsIcon, { icon: import_core_free_icons31.Loading03Icon, size: 32, className: "animate-spin mb-4 text-black" }));
|
|
4896
5028
|
var UniversalHuddlesPage = ({
|
|
4897
5029
|
headerTitle,
|
|
4898
5030
|
headerDescription,
|
|
@@ -4920,7 +5052,7 @@ var UniversalHuddlesPage = ({
|
|
|
4920
5052
|
},
|
|
4921
5053
|
/* @__PURE__ */ import_react83.default.createElement(HuddleAvatar, { timeString: huddle.timeString, status: huddle.status }),
|
|
4922
5054
|
/* @__PURE__ */ import_react83.default.createElement("div", { className: "flex flex-col min-w-0 flex-1" }, /* @__PURE__ */ import_react83.default.createElement("p", { className: "text-sm text-black tracking-tight truncate" }, huddle.name), /* @__PURE__ */ import_react83.default.createElement("span", { className: "text-xs text-stone-500 truncate block mt-0.5" }, huddle.timeString)),
|
|
4923
|
-
/* @__PURE__ */ import_react83.default.createElement(import_react84.HugeiconsIcon, { icon:
|
|
5055
|
+
/* @__PURE__ */ import_react83.default.createElement(import_react84.HugeiconsIcon, { icon: import_core_free_icons31.ArrowRight01Icon, size: 14, className: "shrink-0 text-stone-400" })
|
|
4924
5056
|
))), /* @__PURE__ */ import_react83.default.createElement("div", { className: "flex items-center justify-between pt-6 mt-2 " }, /* @__PURE__ */ import_react83.default.createElement("span", { className: "text-xs text-stone-400 tracking-[0.2em]" }, "Page ", currentPage, " of ", totalPages === 0 ? 1 : totalPages), /* @__PURE__ */ import_react83.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ import_react83.default.createElement(
|
|
4925
5057
|
"button",
|
|
4926
5058
|
{
|
|
@@ -4928,7 +5060,7 @@ var UniversalHuddlesPage = ({
|
|
|
4928
5060
|
disabled: currentPage <= 1 || isLoading,
|
|
4929
5061
|
className: "p-2 bg-white border border-stone-200 rounded-full text-black hover:bg-stone-50 disabled:opacity-30 disabled:cursor-not-allowed transition-all outline-none"
|
|
4930
5062
|
},
|
|
4931
|
-
/* @__PURE__ */ import_react83.default.createElement(import_react84.HugeiconsIcon, { icon:
|
|
5063
|
+
/* @__PURE__ */ import_react83.default.createElement(import_react84.HugeiconsIcon, { icon: import_core_free_icons31.ArrowLeft01Icon, size: 14 })
|
|
4932
5064
|
), /* @__PURE__ */ import_react83.default.createElement(
|
|
4933
5065
|
"button",
|
|
4934
5066
|
{
|
|
@@ -4936,7 +5068,7 @@ var UniversalHuddlesPage = ({
|
|
|
4936
5068
|
disabled: currentPage >= totalPages || isLoading || totalPages === 0,
|
|
4937
5069
|
className: "p-2 bg-white border border-stone-200 rounded-full text-black hover:bg-stone-50 disabled:opacity-30 disabled:cursor-not-allowed transition-all outline-none"
|
|
4938
5070
|
},
|
|
4939
|
-
/* @__PURE__ */ import_react83.default.createElement(import_react84.HugeiconsIcon, { icon:
|
|
5071
|
+
/* @__PURE__ */ import_react83.default.createElement(import_react84.HugeiconsIcon, { icon: import_core_free_icons31.ArrowRight01Icon, size: 14 })
|
|
4940
5072
|
)))))));
|
|
4941
5073
|
};
|
|
4942
5074
|
|
|
@@ -4944,7 +5076,7 @@ var UniversalHuddlesPage = ({
|
|
|
4944
5076
|
var import_react85 = __toESM(require("react"));
|
|
4945
5077
|
var import_react86 = require("@hugeicons/react");
|
|
4946
5078
|
var import_react_hot_toast13 = __toESM(require("react-hot-toast"));
|
|
4947
|
-
var
|
|
5079
|
+
var import_core_free_icons32 = require("@hugeicons/core-free-icons");
|
|
4948
5080
|
var MemberAvatar2 = ({ src, status }) => {
|
|
4949
5081
|
const [loaded, setLoaded] = (0, import_react85.useState)(false);
|
|
4950
5082
|
const [error, setError] = (0, import_react85.useState)(false);
|
|
@@ -4964,7 +5096,7 @@ var MemberAvatar2 = ({ src, status }) => {
|
|
|
4964
5096
|
return "bg-stone-200";
|
|
4965
5097
|
}
|
|
4966
5098
|
};
|
|
4967
|
-
return /* @__PURE__ */ import_react85.default.createElement("div", { className: "relative w-10 h-10 shrink-0" }, /* @__PURE__ */ import_react85.default.createElement("div", { className: "w-full h-full rounded-lg bg-stone-100 flex items-center justify-center overflow-hidden" }, !loaded && !error && /* @__PURE__ */ import_react85.default.createElement(import_react86.HugeiconsIcon, { icon:
|
|
5099
|
+
return /* @__PURE__ */ import_react85.default.createElement("div", { className: "relative w-10 h-10 shrink-0" }, /* @__PURE__ */ import_react85.default.createElement("div", { className: "w-full h-full rounded-lg bg-stone-100 flex items-center justify-center overflow-hidden" }, !loaded && !error && /* @__PURE__ */ import_react85.default.createElement(import_react86.HugeiconsIcon, { icon: import_core_free_icons32.Loading03Icon, className: "animate-spin text-stone-400 absolute", size: 14 }), /* @__PURE__ */ import_react85.default.createElement(
|
|
4968
5100
|
"img",
|
|
4969
5101
|
{
|
|
4970
5102
|
src: finalSrc,
|
|
@@ -4975,7 +5107,7 @@ var MemberAvatar2 = ({ src, status }) => {
|
|
|
4975
5107
|
}
|
|
4976
5108
|
)), /* @__PURE__ */ import_react85.default.createElement("div", { className: `absolute -bottom-1 -right-1 w-2.5 h-2.5 rounded-full border-2 border-white z-10 ${getStatusColor()}` }));
|
|
4977
5109
|
};
|
|
4978
|
-
var PageSpinner7 = () => /* @__PURE__ */ import_react85.default.createElement("div", { className: "flex justify-center items-center py-12" }, /* @__PURE__ */ import_react85.default.createElement(import_react86.HugeiconsIcon, { icon:
|
|
5110
|
+
var PageSpinner7 = () => /* @__PURE__ */ import_react85.default.createElement("div", { className: "flex justify-center items-center py-12" }, /* @__PURE__ */ import_react85.default.createElement(import_react86.HugeiconsIcon, { icon: import_core_free_icons32.Loading03Icon, size: 32, className: "animate-spin mb-4 text-black" }));
|
|
4979
5111
|
var UniversalMembersPage = ({
|
|
4980
5112
|
headerTitle,
|
|
4981
5113
|
headerDescription,
|
|
@@ -5075,7 +5207,7 @@ var UniversalMembersPage = ({
|
|
|
5075
5207
|
onClose: () => setMemberToRemove(null),
|
|
5076
5208
|
onConfirm: handleConfirmRemove
|
|
5077
5209
|
}
|
|
5078
|
-
), !isInviteMode && /* @__PURE__ */ import_react85.default.createElement("div", { className: "flex flex-row flex-nowrap mb-4 items-center justify-between gap-4 w-full animate-in fade-in duration-300" }, /* @__PURE__ */ import_react85.default.createElement("div", { className: "relative flex-1 min-w-0 max-w-full" }, /* @__PURE__ */ import_react85.default.createElement("div", { className: "absolute inset-y-0 left-0 pl-4 flex items-center pointer-events-none" }, /* @__PURE__ */ import_react85.default.createElement(import_react86.HugeiconsIcon, { icon:
|
|
5210
|
+
), !isInviteMode && /* @__PURE__ */ import_react85.default.createElement("div", { className: "flex flex-row flex-nowrap mb-4 items-center justify-between gap-4 w-full animate-in fade-in duration-300" }, /* @__PURE__ */ import_react85.default.createElement("div", { className: "relative flex-1 min-w-0 max-w-full" }, /* @__PURE__ */ import_react85.default.createElement("div", { className: "absolute inset-y-0 left-0 pl-4 flex items-center pointer-events-none" }, /* @__PURE__ */ import_react85.default.createElement(import_react86.HugeiconsIcon, { icon: import_core_free_icons32.Search01Icon, size: 16, className: "text-stone-400" })), /* @__PURE__ */ import_react85.default.createElement(
|
|
5079
5211
|
"input",
|
|
5080
5212
|
{
|
|
5081
5213
|
type: "text",
|
|
@@ -5090,14 +5222,14 @@ var UniversalMembersPage = ({
|
|
|
5090
5222
|
onClick: () => setIsStatusModalOpen(true),
|
|
5091
5223
|
className: "flex items-center justify-center bg-white w-9 h-9 rounded-full text-stone-500 hover:text-black transition-colors outline-none"
|
|
5092
5224
|
},
|
|
5093
|
-
/* @__PURE__ */ import_react85.default.createElement(import_react86.HugeiconsIcon, { icon:
|
|
5225
|
+
/* @__PURE__ */ import_react85.default.createElement(import_react86.HugeiconsIcon, { icon: import_core_free_icons32.SearchList02Icon, size: 16 })
|
|
5094
5226
|
), /* @__PURE__ */ import_react85.default.createElement(
|
|
5095
5227
|
"button",
|
|
5096
5228
|
{
|
|
5097
5229
|
onClick: () => setIsRoleModalOpen(true),
|
|
5098
5230
|
className: "flex items-center justify-center bg-white w-9 h-9 rounded-full text-stone-500 hover:text-black transition-colors outline-none"
|
|
5099
5231
|
},
|
|
5100
|
-
/* @__PURE__ */ import_react85.default.createElement(import_react86.HugeiconsIcon, { icon:
|
|
5232
|
+
/* @__PURE__ */ import_react85.default.createElement(import_react86.HugeiconsIcon, { icon: import_core_free_icons32.ListSettingIcon, size: 16 })
|
|
5101
5233
|
))), /* @__PURE__ */ import_react85.default.createElement("div", { className: "flex flex-col gap-8 p-6 rounded-2xl bg-white w-full" }, /* @__PURE__ */ import_react85.default.createElement("div", { className: "flex flex-row items-start justify-between gap-4" }, /* @__PURE__ */ import_react85.default.createElement("div", null, /* @__PURE__ */ import_react85.default.createElement("h1", { className: "text-black text-xl mb-1 tracking-tight" }, isInviteMode ? "Add Member" : headerTitle), headerDescription && !isInviteMode && /* @__PURE__ */ import_react85.default.createElement("p", { className: "text-xs text-stone-500" }, headerDescription)), !isInviteMode && /* @__PURE__ */ import_react85.default.createElement(
|
|
5102
5234
|
"button",
|
|
5103
5235
|
{
|
|
@@ -5165,7 +5297,7 @@ var UniversalMembersPage = ({
|
|
|
5165
5297
|
disabled: currentPage <= 1 || isListLoading,
|
|
5166
5298
|
className: "p-2 bg-white border border-stone-200 rounded-full text-black hover:bg-stone-50 disabled:opacity-30 disabled:cursor-not-allowed transition-all outline-none"
|
|
5167
5299
|
},
|
|
5168
|
-
/* @__PURE__ */ import_react85.default.createElement(import_react86.HugeiconsIcon, { icon:
|
|
5300
|
+
/* @__PURE__ */ import_react85.default.createElement(import_react86.HugeiconsIcon, { icon: import_core_free_icons32.ArrowLeft01Icon, size: 14 })
|
|
5169
5301
|
), /* @__PURE__ */ import_react85.default.createElement(
|
|
5170
5302
|
"button",
|
|
5171
5303
|
{
|
|
@@ -5173,7 +5305,7 @@ var UniversalMembersPage = ({
|
|
|
5173
5305
|
disabled: currentPage >= totalPages || isListLoading || totalPages === 0,
|
|
5174
5306
|
className: "p-2 bg-white border border-stone-200 rounded-full text-black hover:bg-stone-50 disabled:opacity-30 disabled:cursor-not-allowed transition-all outline-none"
|
|
5175
5307
|
},
|
|
5176
|
-
/* @__PURE__ */ import_react85.default.createElement(import_react86.HugeiconsIcon, { icon:
|
|
5308
|
+
/* @__PURE__ */ import_react85.default.createElement(import_react86.HugeiconsIcon, { icon: import_core_free_icons32.ArrowRight01Icon, size: 14 })
|
|
5177
5309
|
)))))), isStatusModalOpen && /* @__PURE__ */ import_react85.default.createElement("div", { className: "fixed inset-0 z-110 flex items-center justify-center p-4" }, /* @__PURE__ */ import_react85.default.createElement("div", { className: "absolute inset-0 bg-black/40", onClick: () => setIsStatusModalOpen(false) }), /* @__PURE__ */ import_react85.default.createElement("div", { ref: statusDropdownRef, className: "relative w-72 bg-white shadow-2xl rounded-2xl flex flex-col items-center overflow-hidden animate-in zoom-in-95 duration-200" }, /* @__PURE__ */ import_react85.default.createElement("div", { className: "p-6 text-center w-full mb-2" }, /* @__PURE__ */ import_react85.default.createElement("h3", { className: "text-sm text-black tracking-tight" }, "Status Filter")), /* @__PURE__ */ import_react85.default.createElement("div", { className: "w-full flex flex-col pl-2 pr-2 gap-1" }, ["ALL", "ACTIVE", "BUSY", "OFFLINE", "AWAY"].map((option) => /* @__PURE__ */ import_react85.default.createElement(
|
|
5178
5310
|
"button",
|
|
5179
5311
|
{
|
|
@@ -5204,13 +5336,13 @@ var import_react87 = __toESM(require("react"));
|
|
|
5204
5336
|
var import_navigation6 = require("next/navigation");
|
|
5205
5337
|
var import_react88 = require("@hugeicons/react");
|
|
5206
5338
|
var import_react_hot_toast14 = __toESM(require("react-hot-toast"));
|
|
5207
|
-
var
|
|
5339
|
+
var import_core_free_icons33 = require("@hugeicons/core-free-icons");
|
|
5208
5340
|
var OrgAvatar = ({ src, sizeClass = "w-10 h-10" }) => {
|
|
5209
5341
|
const [loaded, setLoaded] = (0, import_react87.useState)(false);
|
|
5210
5342
|
const [error, setError] = (0, import_react87.useState)(false);
|
|
5211
5343
|
const defaultAvatar = "https://storage.googleapis.com/retina-cloud-v2/assets/images/office_a.avif";
|
|
5212
5344
|
const finalSrc = error || !src ? defaultAvatar : src;
|
|
5213
|
-
return /* @__PURE__ */ import_react87.default.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ import_react87.default.createElement("div", { className: "w-full h-full rounded-lg bg-stone-100 flex items-center justify-center overflow-hidden" }, !loaded && !error && /* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon:
|
|
5345
|
+
return /* @__PURE__ */ import_react87.default.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ import_react87.default.createElement("div", { className: "w-full h-full rounded-lg bg-stone-100 flex items-center justify-center overflow-hidden" }, !loaded && !error && /* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon: import_core_free_icons33.Loading03Icon, className: "animate-spin text-stone-400 absolute", size: 14 }), /* @__PURE__ */ import_react87.default.createElement(
|
|
5214
5346
|
"img",
|
|
5215
5347
|
{
|
|
5216
5348
|
src: finalSrc,
|
|
@@ -5286,7 +5418,7 @@ var UniversalHome2 = ({
|
|
|
5286
5418
|
onClose: () => setShowLogoutConfirm(false),
|
|
5287
5419
|
onConfirm: confirmLogout
|
|
5288
5420
|
}
|
|
5289
|
-
), /* @__PURE__ */ import_react87.default.createElement("div", { className: "flex items-center justify-between w-full pb-4" }, /* @__PURE__ */ import_react87.default.createElement("div", { className: "w-10 h-10 shrink-0 cursor-pointer", onClick: () => setShowOrgSwitcher(true) }, /* @__PURE__ */ import_react87.default.createElement("div", { className: "relative w-full h-full rounded-lg overflow-hidden bg-white flex items-center justify-center" }, !isAvatarLoaded && /* @__PURE__ */ import_react87.default.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-10 bg-white" }, /* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon:
|
|
5421
|
+
), /* @__PURE__ */ import_react87.default.createElement("div", { className: "flex items-center justify-between w-full pb-4" }, /* @__PURE__ */ import_react87.default.createElement("div", { className: "w-10 h-10 shrink-0 cursor-pointer", onClick: () => setShowOrgSwitcher(true) }, /* @__PURE__ */ import_react87.default.createElement("div", { className: "relative w-full h-full rounded-lg overflow-hidden bg-white flex items-center justify-center" }, !isAvatarLoaded && /* @__PURE__ */ import_react87.default.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-10 bg-white" }, /* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon: import_core_free_icons33.Loading03Icon, size: 16, className: "animate-spin text-black" })), /* @__PURE__ */ import_react87.default.createElement(
|
|
5290
5422
|
"img",
|
|
5291
5423
|
{
|
|
5292
5424
|
src: finalAvatarSrc,
|
|
@@ -5300,7 +5432,7 @@ var UniversalHome2 = ({
|
|
|
5300
5432
|
onClick: () => router.push("/app/ai"),
|
|
5301
5433
|
className: "relative w-10 h-10 flex items-center justify-center rounded-full bg-white outline-none hover:bg-stone-50 transition-colors"
|
|
5302
5434
|
},
|
|
5303
|
-
/* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon:
|
|
5435
|
+
/* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon: import_core_free_icons33.Robot01Icon, size: 20, className: "text-black" })
|
|
5304
5436
|
), /* @__PURE__ */ import_react87.default.createElement(
|
|
5305
5437
|
"button",
|
|
5306
5438
|
{
|
|
@@ -5310,7 +5442,7 @@ var UniversalHome2 = ({
|
|
|
5310
5442
|
},
|
|
5311
5443
|
className: "relative w-10 h-10 flex items-center justify-center rounded-full bg-white outline-none hover:bg-stone-50 transition-colors"
|
|
5312
5444
|
},
|
|
5313
|
-
/* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon:
|
|
5445
|
+
/* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon: import_core_free_icons33.Notification01Icon, size: 20, className: "text-black" }),
|
|
5314
5446
|
hasUnreadNotifs && /* @__PURE__ */ import_react87.default.createElement("span", { className: "absolute top-2.5 right-2.5 w-2 h-2 bg-[#d97757] rounded-full border border-white" })
|
|
5315
5447
|
))), /* @__PURE__ */ import_react87.default.createElement("div", { className: "w-full pb-6 flex flex-col gap-4" }, /* @__PURE__ */ import_react87.default.createElement("div", { className: "grid grid-cols-2 gap-2" }, /* @__PURE__ */ import_react87.default.createElement(
|
|
5316
5448
|
"div",
|
|
@@ -5318,7 +5450,7 @@ var UniversalHome2 = ({
|
|
|
5318
5450
|
onClick: createHuddleAction?.onClick,
|
|
5319
5451
|
className: "bg-[#d97757] rounded-2xl p-5 relative overflow-hidden flex flex-col h-32 sm:h-36 cursor-pointer hover:opacity-90 transition-opacity"
|
|
5320
5452
|
},
|
|
5321
|
-
/* @__PURE__ */ import_react87.default.createElement("div", { className: "relative z-10 flex flex-col h-full justify-between" }, /* @__PURE__ */ import_react87.default.createElement("p", { className: "text-sm sm:text-sm text-white leading-tight" }, "Create", /* @__PURE__ */ import_react87.default.createElement("br", null), /* @__PURE__ */ import_react87.default.createElement("span", { className: "text-white/70" }, "Huddle")), /* @__PURE__ */ import_react87.default.createElement("div", { className: "w-8 h-8 rounded-full bg-white/10 flex items-center justify-center" }, /* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon:
|
|
5453
|
+
/* @__PURE__ */ import_react87.default.createElement("div", { className: "relative z-10 flex flex-col h-full justify-between" }, /* @__PURE__ */ import_react87.default.createElement("p", { className: "text-sm sm:text-sm text-white leading-tight" }, "Create", /* @__PURE__ */ import_react87.default.createElement("br", null), /* @__PURE__ */ import_react87.default.createElement("span", { className: "text-white/70" }, "Huddle")), /* @__PURE__ */ import_react87.default.createElement("div", { className: "w-8 h-8 rounded-full bg-white/10 flex items-center justify-center" }, /* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon: import_core_free_icons33.ArrowUpRight01Icon, size: 16, className: "text-white" }))),
|
|
5322
5454
|
/* @__PURE__ */ import_react87.default.createElement(
|
|
5323
5455
|
"img",
|
|
5324
5456
|
{
|
|
@@ -5333,7 +5465,7 @@ var UniversalHome2 = ({
|
|
|
5333
5465
|
onClick: joinHuddleAction?.onClick,
|
|
5334
5466
|
className: "bg-[#ffffff] rounded-2xl p-5 relative overflow-hidden flex flex-col h-32 sm:h-36 cursor-pointer hover:opacity-90 transition-opacity"
|
|
5335
5467
|
},
|
|
5336
|
-
/* @__PURE__ */ import_react87.default.createElement("div", { className: "relative z-10 flex flex-col h-full justify-between" }, /* @__PURE__ */ import_react87.default.createElement("p", { className: "text-sm sm:text-sm text-black leading-tight" }, "Join", /* @__PURE__ */ import_react87.default.createElement("br", null), /* @__PURE__ */ import_react87.default.createElement("span", { className: "text-black/60" }, "Huddle")), /* @__PURE__ */ import_react87.default.createElement("div", { className: "w-8 h-8 rounded-full bg-black/5 flex items-center justify-center" }, /* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon:
|
|
5468
|
+
/* @__PURE__ */ import_react87.default.createElement("div", { className: "relative z-10 flex flex-col h-full justify-between" }, /* @__PURE__ */ import_react87.default.createElement("p", { className: "text-sm sm:text-sm text-black leading-tight" }, "Join", /* @__PURE__ */ import_react87.default.createElement("br", null), /* @__PURE__ */ import_react87.default.createElement("span", { className: "text-black/60" }, "Huddle")), /* @__PURE__ */ import_react87.default.createElement("div", { className: "w-8 h-8 rounded-full bg-black/5 flex items-center justify-center" }, /* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon: import_core_free_icons33.ArrowRight01Icon, size: 16, className: "text-black" }))),
|
|
5337
5469
|
/* @__PURE__ */ import_react87.default.createElement(
|
|
5338
5470
|
"img",
|
|
5339
5471
|
{
|
|
@@ -5347,7 +5479,7 @@ var UniversalHome2 = ({
|
|
|
5347
5479
|
{
|
|
5348
5480
|
...huddlesProps
|
|
5349
5481
|
}
|
|
5350
|
-
)), showOrgSwitcher && /* @__PURE__ */ import_react87.default.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ import_react87.default.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setShowOrgSwitcher(false) }), /* @__PURE__ */ import_react87.default.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200 max-h-[80vh] h-auto" }, /* @__PURE__ */ import_react87.default.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, /* @__PURE__ */ import_react87.default.createElement("h3", { className: "text-sm text-black tracking-tight" }, "Switch Workspace"), /* @__PURE__ */ import_react87.default.createElement("button", { onClick: () => setShowOrgSwitcher(false), className: "text-stone-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon:
|
|
5482
|
+
)), showOrgSwitcher && /* @__PURE__ */ import_react87.default.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ import_react87.default.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setShowOrgSwitcher(false) }), /* @__PURE__ */ import_react87.default.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200 max-h-[80vh] h-auto" }, /* @__PURE__ */ import_react87.default.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, /* @__PURE__ */ import_react87.default.createElement("h3", { className: "text-sm text-black tracking-tight" }, "Switch Workspace"), /* @__PURE__ */ import_react87.default.createElement("button", { onClick: () => setShowOrgSwitcher(false), className: "text-stone-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon: import_core_free_icons33.CancelCircleIcon, size: 18 }))), /* @__PURE__ */ import_react87.default.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-2" }, /* @__PURE__ */ import_react87.default.createElement("div", { className: "flex flex-col" }, organizations?.length === 0 ? /* @__PURE__ */ import_react87.default.createElement("div", { className: "p-8 text-center text-xs text-stone-400" }, "No organizations found.") : organizations?.map((org) => /* @__PURE__ */ import_react87.default.createElement(
|
|
5351
5483
|
"button",
|
|
5352
5484
|
{
|
|
5353
5485
|
key: org.id,
|
|
@@ -5369,16 +5501,16 @@ var UniversalHome2 = ({
|
|
|
5369
5501
|
},
|
|
5370
5502
|
className: "w-full py-2.5 flex items-center justify-center gap-2 rounded-full border border-stone-200 text-stone-600 hover:bg-stone-100 transition-colors outline-none text-xs tracking-wide"
|
|
5371
5503
|
},
|
|
5372
|
-
/* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon:
|
|
5504
|
+
/* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon: import_core_free_icons33.Logout01Icon, size: 15 }),
|
|
5373
5505
|
"Log Out"
|
|
5374
|
-
)))), showNotifDialog && /* @__PURE__ */ import_react87.default.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ import_react87.default.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setShowNotifDialog(false) }), /* @__PURE__ */ import_react87.default.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200 max-h-[80vh] h-auto" }, /* @__PURE__ */ import_react87.default.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, selectedNotif ? /* @__PURE__ */ import_react87.default.createElement("button", { onClick: () => setSelectedNotif(null), disabled: isResolving, className: "text-[#d97757] hover:text-[#d97757] transition-colors outline-none flex items-center gap-2 text-xs tracking-widest disabled:opacity-50" }, /* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon:
|
|
5506
|
+
)))), showNotifDialog && /* @__PURE__ */ import_react87.default.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ import_react87.default.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setShowNotifDialog(false) }), /* @__PURE__ */ import_react87.default.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200 max-h-[80vh] h-auto" }, /* @__PURE__ */ import_react87.default.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, selectedNotif ? /* @__PURE__ */ import_react87.default.createElement("button", { onClick: () => setSelectedNotif(null), disabled: isResolving, className: "text-[#d97757] hover:text-[#d97757] transition-colors outline-none flex items-center gap-2 text-xs tracking-widest disabled:opacity-50" }, /* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon: import_core_free_icons33.ArrowLeft01Icon, size: 14 }), " Back") : /* @__PURE__ */ import_react87.default.createElement("h3", { className: "text-sm text-black tracking-tight flex items-center gap-2" }, "Notifications"), /* @__PURE__ */ import_react87.default.createElement("button", { onClick: () => setShowNotifDialog(false), disabled: isResolving, className: "text-stone-400 hover:text-black transition-colors outline-none disabled:opacity-50" }, /* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon: import_core_free_icons33.CancelCircleIcon, size: 18 }))), /* @__PURE__ */ import_react87.default.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-2 relative" }, isNotifsLoading && !selectedNotif && /* @__PURE__ */ import_react87.default.createElement("div", { className: "absolute inset-0 z-10 flex items-center justify-center" }, /* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon: import_core_free_icons33.Loading03Icon, size: 28, className: "animate-spin text-black" })), selectedNotif ? /* @__PURE__ */ import_react87.default.createElement("div", { className: "p-4 text-left" }, selectedNotif.type === "HUDDLE_INVITE" && selectedNotif.meta_json?.action === "RESOLVE_INVITE" && selectedNotif.meta_json?.completed ? /* @__PURE__ */ import_react87.default.createElement("div", { className: "" }) : /* @__PURE__ */ import_react87.default.createElement("h4", { className: "text-sm text-black mb-1" }, selectedNotif.title), /* @__PURE__ */ import_react87.default.createElement("span", { className: "text-xs text-stone-400 tracking-widest mb-4 block" }, formatNotifDate(selectedNotif.createdAt)), /* @__PURE__ */ import_react87.default.createElement("p", { className: "text-xs text-stone-600 leading-relaxed whitespace-pre-wrap" }, selectedNotif.message), selectedNotif.type === "HUDDLE_INVITE" && selectedNotif.meta_json?.action === "RESOLVE_INVITE" && /* @__PURE__ */ import_react87.default.createElement("div", { className: `mt-8 flex gap-3 pt-6 ${selectedNotif.meta_json?.completed ? "opacity-40 pointer-events-none cursor-not-allowed" : ""}` }, /* @__PURE__ */ import_react87.default.createElement(
|
|
5375
5507
|
"button",
|
|
5376
5508
|
{
|
|
5377
5509
|
onClick: () => handleResolve("ACCEPTED"),
|
|
5378
5510
|
disabled: isResolving || selectedNotif.meta_json?.completed,
|
|
5379
5511
|
className: "flex-1 py-2.5 rounded-full bg-black text-white text-xs tracking-wide transition-all outline-none hover:bg-stone-800 flex justify-center items-center disabled:opacity-50"
|
|
5380
5512
|
},
|
|
5381
|
-
isResolving ? /* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon:
|
|
5513
|
+
isResolving ? /* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon: import_core_free_icons33.Loading03Icon, className: "animate-spin", size: 16 }) : "Accept"
|
|
5382
5514
|
), /* @__PURE__ */ import_react87.default.createElement(
|
|
5383
5515
|
"button",
|
|
5384
5516
|
{
|
|
@@ -5406,7 +5538,7 @@ var UniversalHome2 = ({
|
|
|
5406
5538
|
onClick: () => onNotificationPageChange?.(notificationPage - 1),
|
|
5407
5539
|
className: "w-7 h-7 flex items-center justify-center rounded-full bg-white border border-stone-200 text-stone-600 disabled:opacity-30 outline-none hover:bg-stone-50 transition-colors"
|
|
5408
5540
|
},
|
|
5409
|
-
/* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon:
|
|
5541
|
+
/* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon: import_core_free_icons33.ArrowLeft01Icon, size: 12 })
|
|
5410
5542
|
), /* @__PURE__ */ import_react87.default.createElement(
|
|
5411
5543
|
"button",
|
|
5412
5544
|
{
|
|
@@ -5414,7 +5546,7 @@ var UniversalHome2 = ({
|
|
|
5414
5546
|
onClick: () => onNotificationPageChange?.(notificationPage + 1),
|
|
5415
5547
|
className: "w-7 h-7 flex items-center justify-center rounded-full bg-white border border-stone-200 text-stone-600 disabled:opacity-30 outline-none hover:bg-stone-50 transition-colors"
|
|
5416
5548
|
},
|
|
5417
|
-
/* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon:
|
|
5549
|
+
/* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon: import_core_free_icons33.ArrowRight01Icon, size: 12 })
|
|
5418
5550
|
))))));
|
|
5419
5551
|
};
|
|
5420
5552
|
|
|
@@ -5422,7 +5554,7 @@ var UniversalHome2 = ({
|
|
|
5422
5554
|
var import_react89 = __toESM(require("react"));
|
|
5423
5555
|
var import_react_hot_toast15 = __toESM(require("react-hot-toast"));
|
|
5424
5556
|
var import_react90 = require("@hugeicons/react");
|
|
5425
|
-
var
|
|
5557
|
+
var import_core_free_icons34 = require("@hugeicons/core-free-icons");
|
|
5426
5558
|
var MemberAvatar3 = ({ src, status, sizeClass = "w-10 h-10" }) => {
|
|
5427
5559
|
const [loaded, setLoaded] = (0, import_react89.useState)(false);
|
|
5428
5560
|
const [error, setError] = (0, import_react89.useState)(false);
|
|
@@ -5442,14 +5574,14 @@ var MemberAvatar3 = ({ src, status, sizeClass = "w-10 h-10" }) => {
|
|
|
5442
5574
|
return "bg-stone-200";
|
|
5443
5575
|
}
|
|
5444
5576
|
};
|
|
5445
|
-
return /* @__PURE__ */ import_react89.default.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ import_react89.default.createElement("div", { className: "w-full h-full rounded-lg bg-stone-100 flex items-center justify-center overflow-hidden" }, !loaded && !error && /* @__PURE__ */ import_react89.default.createElement(import_react90.HugeiconsIcon, { icon:
|
|
5577
|
+
return /* @__PURE__ */ import_react89.default.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ import_react89.default.createElement("div", { className: "w-full h-full rounded-lg bg-stone-100 flex items-center justify-center overflow-hidden" }, !loaded && !error && /* @__PURE__ */ import_react89.default.createElement(import_react90.HugeiconsIcon, { icon: import_core_free_icons34.Loading03Icon, className: "animate-spin text-stone-400 absolute", size: 14 }), /* @__PURE__ */ import_react89.default.createElement("img", { src: finalSrc, alt: "Member", className: `w-full h-full object-cover transition-opacity duration-300 ${loaded || error ? "opacity-100" : "opacity-0"}`, onLoad: () => setLoaded(true), onError: () => setError(true) })), /* @__PURE__ */ import_react89.default.createElement("div", { className: `absolute -bottom-1 -right-1 w-3.5 h-3.5 rounded-full border-2 border-white z-10 ${getStatusColor()}` }));
|
|
5446
5578
|
};
|
|
5447
5579
|
var OrgAvatar2 = ({ src, sizeClass = "w-10 h-10" }) => {
|
|
5448
5580
|
const [loaded, setLoaded] = (0, import_react89.useState)(false);
|
|
5449
5581
|
const [error, setError] = (0, import_react89.useState)(false);
|
|
5450
5582
|
const defaultAvatar = "https://storage.googleapis.com/retina-cloud-v2/assets/images/office_a.avif";
|
|
5451
5583
|
const finalSrc = error || !src ? defaultAvatar : src;
|
|
5452
|
-
return /* @__PURE__ */ import_react89.default.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ import_react89.default.createElement("div", { className: "w-full h-full rounded-lg bg-stone-100 flex items-center justify-center overflow-hidden" }, !loaded && !error && /* @__PURE__ */ import_react89.default.createElement(import_react90.HugeiconsIcon, { icon:
|
|
5584
|
+
return /* @__PURE__ */ import_react89.default.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ import_react89.default.createElement("div", { className: "w-full h-full rounded-lg bg-stone-100 flex items-center justify-center overflow-hidden" }, !loaded && !error && /* @__PURE__ */ import_react89.default.createElement(import_react90.HugeiconsIcon, { icon: import_core_free_icons34.Loading03Icon, className: "animate-spin text-stone-400 absolute", size: 14 }), /* @__PURE__ */ import_react89.default.createElement(
|
|
5453
5585
|
"img",
|
|
5454
5586
|
{
|
|
5455
5587
|
src: finalSrc,
|
|
@@ -5460,7 +5592,7 @@ var OrgAvatar2 = ({ src, sizeClass = "w-10 h-10" }) => {
|
|
|
5460
5592
|
}
|
|
5461
5593
|
)));
|
|
5462
5594
|
};
|
|
5463
|
-
var PageSpinner8 = () => /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex justify-center items-center py-12" }, /* @__PURE__ */ import_react89.default.createElement(import_react90.HugeiconsIcon, { icon:
|
|
5595
|
+
var PageSpinner8 = () => /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex justify-center items-center py-12" }, /* @__PURE__ */ import_react89.default.createElement(import_react90.HugeiconsIcon, { icon: import_core_free_icons34.Loading03Icon, size: 32, className: "animate-spin mb-4 text-black" }));
|
|
5464
5596
|
var InputSpinner3 = () => /* @__PURE__ */ import_react89.default.createElement("svg", { className: "animate-spin h-4 w-4 text-stone-400", xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24" }, /* @__PURE__ */ import_react89.default.createElement("circle", { className: "opacity-25", cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4" }), /* @__PURE__ */ import_react89.default.createElement("path", { className: "opacity-75", fill: "currentColor", d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z" }));
|
|
5465
5597
|
var UniversalSettings = ({
|
|
5466
5598
|
accountType,
|
|
@@ -5728,7 +5860,7 @@ var UniversalSettings = ({
|
|
|
5728
5860
|
const isOrgSaveDisabled = isSavingOrg || !canManage || isCheckingSlug || !hasOrgChanges || orgName.length < 3 || orgSlug.length < 3 || orgSlug !== initialOrgSlug && slugAvailable === false;
|
|
5729
5861
|
const hasProfileChanges = `${firstName} ${lastName}`.trim() !== initialFullName || jobTitle !== initialJobTitle || description !== initialDescription || avatarUrl !== initialAvatarUrl;
|
|
5730
5862
|
const isProfileSaveDisabled = isSavingProfile || !hasProfileChanges || firstName.length < 2 || lastName.length < 2;
|
|
5731
|
-
return /* @__PURE__ */ import_react89.default.createElement("div", { className: "w-full max-w-3xl mx-auto flex flex-col animate-in fade-in duration-300" }, /* @__PURE__ */ import_react89.default.createElement(ManagedToaster, null), /* @__PURE__ */ import_react89.default.createElement("div", { className: "mb-6 flex w-full items-center px-1" }, /* @__PURE__ */ import_react89.default.createElement("button", { onClick: onBackHandler, className: "flex items-center gap-2 text-[#d97757] hover:text-[#d97757] transition-colors text-sm outline-none" }, /* @__PURE__ */ import_react89.default.createElement(import_react90.HugeiconsIcon, { icon:
|
|
5863
|
+
return /* @__PURE__ */ import_react89.default.createElement("div", { className: "w-full max-w-3xl mx-auto flex flex-col animate-in fade-in duration-300" }, /* @__PURE__ */ import_react89.default.createElement(ManagedToaster, null), /* @__PURE__ */ import_react89.default.createElement("div", { className: "mb-6 flex w-full items-center px-1" }, /* @__PURE__ */ import_react89.default.createElement("button", { onClick: onBackHandler, className: "flex items-center gap-2 text-[#d97757] hover:text-[#d97757] transition-colors text-sm outline-none" }, /* @__PURE__ */ import_react89.default.createElement(import_react90.HugeiconsIcon, { icon: import_core_free_icons34.ArrowLeft01Icon, size: 16 }), " Back")), /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex flex-col gap-1 mb-8 px-1" }, /* @__PURE__ */ import_react89.default.createElement("h1", { className: "text-black text-xl tracking-tight" }, "System Settings"), /* @__PURE__ */ import_react89.default.createElement("p", { className: "text-xs text-stone-500" }, "Manage your workspace identity, team configurations, and AI billing parameters.")), /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex items-center gap-6 mb-6 overflow-x-auto custom-scrollbar px-1" }, isOrg && /* @__PURE__ */ import_react89.default.createElement("button", { onClick: () => {
|
|
5732
5864
|
setActiveTab("MEMBERS");
|
|
5733
5865
|
setExpandedId(null);
|
|
5734
5866
|
setIsInviteMode(false);
|
|
@@ -5745,16 +5877,16 @@ var UniversalSettings = ({
|
|
|
5745
5877
|
onClose: () => setMemberToRemove(null),
|
|
5746
5878
|
onConfirm: handleConfirmRemove
|
|
5747
5879
|
}
|
|
5748
|
-
), !isInviteMode && !activeExpandedMember && /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex flex-row flex-nowrap mb-4 items-center justify-between gap-4 w-full px-1" }, /* @__PURE__ */ import_react89.default.createElement("div", { className: "relative flex-1 min-w-0 max-w-full" }, /* @__PURE__ */ import_react89.default.createElement("div", { className: "absolute inset-y-0 left-0 pl-4 flex items-center pointer-events-none" }, /* @__PURE__ */ import_react89.default.createElement(import_react90.HugeiconsIcon, { icon:
|
|
5880
|
+
), !isInviteMode && !activeExpandedMember && /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex flex-row flex-nowrap mb-4 items-center justify-between gap-4 w-full px-1" }, /* @__PURE__ */ import_react89.default.createElement("div", { className: "relative flex-1 min-w-0 max-w-full" }, /* @__PURE__ */ import_react89.default.createElement("div", { className: "absolute inset-y-0 left-0 pl-4 flex items-center pointer-events-none" }, /* @__PURE__ */ import_react89.default.createElement(import_react90.HugeiconsIcon, { icon: import_core_free_icons34.Search01Icon, size: 16, className: "text-stone-400" })), /* @__PURE__ */ import_react89.default.createElement("input", { type: "text", placeholder: "Search members...", value: localSearchQuery, onChange: (e) => setLocalSearchQuery(e.target.value), className: "w-full pl-10 pr-4 py-2 bg-white rounded-full text-sm text-black placeholder-stone-400 outline-none transition-colors focus:border-[#d97757] border border-transparent " })), /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex items-center gap-3 w-auto pb-0 shrink-0" }, /* @__PURE__ */ import_react89.default.createElement("button", { onClick: () => setIsStatusModalOpen(true), className: "flex items-center justify-center bg-white w-9 h-9 rounded-full text-stone-500 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ import_react89.default.createElement(import_react90.HugeiconsIcon, { icon: import_core_free_icons34.SearchList02Icon, size: 16 })), /* @__PURE__ */ import_react89.default.createElement("button", { onClick: () => setIsRoleModalOpen(true), className: "flex items-center justify-center bg-white w-9 h-9 rounded-full text-stone-500 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ import_react89.default.createElement(import_react90.HugeiconsIcon, { icon: import_core_free_icons34.ListSettingIcon, size: 16 })))), /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex flex-col gap-8 p-6 rounded-2xl bg-white w-full" }, activeExpandedMember ? /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex flex-col animate-in fade-in zoom-in-95 duration-300 w-full" }, /* @__PURE__ */ import_react89.default.createElement("div", { className: "mb-6 flex w-full items-center" }, /* @__PURE__ */ import_react89.default.createElement(
|
|
5749
5881
|
"button",
|
|
5750
5882
|
{
|
|
5751
5883
|
onClick: () => setExpandedId(null),
|
|
5752
5884
|
disabled: isUpdatingRole,
|
|
5753
5885
|
className: "flex items-center gap-2 text-[#d97757] hover:text-[#d97757] transition-colors text-sm outline-none disabled:opacity-50"
|
|
5754
5886
|
},
|
|
5755
|
-
/* @__PURE__ */ import_react89.default.createElement(import_react90.HugeiconsIcon, { icon:
|
|
5887
|
+
/* @__PURE__ */ import_react89.default.createElement(import_react90.HugeiconsIcon, { icon: import_core_free_icons34.ArrowLeft01Icon, size: 16 }),
|
|
5756
5888
|
" Back"
|
|
5757
|
-
)), /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex flex-col gap-1 mb-8" }, /* @__PURE__ */ import_react89.default.createElement("h2", { className: "text-black text-xl tracking-tight" }, "Member Profile"), /* @__PURE__ */ import_react89.default.createElement("p", { className: "text-xs text-stone-500" }, "View and manage this member's access privileges.")), /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex items-center gap-4 mb-4" }, /* @__PURE__ */ import_react89.default.createElement(MemberAvatar3, { src: activeExpandedMember.avatarUrl, status: activeExpandedMember.status, sizeClass: "w-14 h-14" }), /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex flex-col min-w-0" }, /* @__PURE__ */ import_react89.default.createElement("span", { className: "text-sm text-black tracking-tight truncate" }, activeExpandedMember.fullName), /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex items-center gap-2 mt-0.5" }, /* @__PURE__ */ import_react89.default.createElement("span", { className: "text-xs text-stone-500 capitalize" }, activeExpandedMember.role.toLowerCase()), canManage && (isUpdatingRole ? /* @__PURE__ */ import_react89.default.createElement(import_react90.HugeiconsIcon, { icon:
|
|
5889
|
+
)), /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex flex-col gap-1 mb-8" }, /* @__PURE__ */ import_react89.default.createElement("h2", { className: "text-black text-xl tracking-tight" }, "Member Profile"), /* @__PURE__ */ import_react89.default.createElement("p", { className: "text-xs text-stone-500" }, "View and manage this member's access privileges.")), /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex items-center gap-4 mb-4" }, /* @__PURE__ */ import_react89.default.createElement(MemberAvatar3, { src: activeExpandedMember.avatarUrl, status: activeExpandedMember.status, sizeClass: "w-14 h-14" }), /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex flex-col min-w-0" }, /* @__PURE__ */ import_react89.default.createElement("span", { className: "text-sm text-black tracking-tight truncate" }, activeExpandedMember.fullName), /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex items-center gap-2 mt-0.5" }, /* @__PURE__ */ import_react89.default.createElement("span", { className: "text-xs text-stone-500 capitalize" }, activeExpandedMember.role.toLowerCase()), canManage && (isUpdatingRole ? /* @__PURE__ */ import_react89.default.createElement(import_react90.HugeiconsIcon, { icon: import_core_free_icons34.Loading03Icon, size: 12, className: "animate-spin text-stone-400 ml-1" }) : /* @__PURE__ */ import_react89.default.createElement(import_react89.default.Fragment, null, /* @__PURE__ */ import_react89.default.createElement("span", { className: "text-stone-300 text-xs px-0.5" }, "\u2022"), /* @__PURE__ */ import_react89.default.createElement("button", { onClick: () => setRoleEditTarget(activeExpandedMember), className: "text-xs text-[#d97757] hover:underline outline-none" }, "Edit"), /* @__PURE__ */ import_react89.default.createElement("span", { className: "text-stone-300 text-xs px-0.5" }, "\u2022"), /* @__PURE__ */ import_react89.default.createElement(
|
|
5758
5890
|
"button",
|
|
5759
5891
|
{
|
|
5760
5892
|
onClick: () => setMemberToRemove(activeExpandedMember),
|
|
@@ -5765,12 +5897,12 @@ var UniversalSettings = ({
|
|
|
5765
5897
|
))))))) : /* @__PURE__ */ import_react89.default.createElement(import_react89.default.Fragment, null, /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex flex-col gap-1" }, /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex flex-row items-center justify-between gap-4" }, /* @__PURE__ */ import_react89.default.createElement("h2", { className: "text-black text-xl tracking-tight" }, isInviteMode ? "Add Member" : "Team Directory"), !isInviteMode && canManage && /* @__PURE__ */ import_react89.default.createElement("button", { onClick: () => setIsInviteMode(true), className: "shrink-0 px-4 py-1.5 border border-stone-200 text-black text-xs tracking-wide rounded-full hover:bg-stone-50 transition-colors outline-none" }, "Invite Team")), !isInviteMode && /* @__PURE__ */ import_react89.default.createElement("p", { className: "text-xs text-stone-500" }, "Manage members and access controls across your organization.")), /* @__PURE__ */ import_react89.default.createElement("div", { className: "w-full overflow-hidden" }, isInviteMode ? /* @__PURE__ */ import_react89.default.createElement("form", { onSubmit: handleInviteSubmit, className: "flex flex-col gap-8 animate-in fade-in duration-300" }, /* @__PURE__ */ import_react89.default.createElement("div", { className: "space-y-1.5 mt-2" }, /* @__PURE__ */ import_react89.default.createElement("label", { className: "text-xs text-stone-400 tracking-[0.2em] block" }, "Email Address"), /* @__PURE__ */ import_react89.default.createElement("input", { type: "email", value: inviteEmail, onChange: (e) => setInviteEmail(cleanEmailId(e.target.value)), required: true, autoFocus: true, className: "w-full px-2 py-3 bg-transparent text-sm border-b border-stone-200 text-black outline-none focus:border-black transition-all duration-300", placeholder: "name@company.com" })), /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ import_react89.default.createElement(ThreeDActionButton, { type: "submit", disabled: inviteEmail.length < 5 || isInviting, isLoading: isInviting, className: "w-full" }, "Send Invitation"), /* @__PURE__ */ import_react89.default.createElement("button", { type: "button", onClick: () => {
|
|
5766
5898
|
setIsInviteMode(false);
|
|
5767
5899
|
setInviteEmail("");
|
|
5768
|
-
}, disabled: isInviting, className: "w-full flex items-center justify-center py-2.5 rounded-full border border-stone-200 text-black hover:bg-stone-50 transition-colors outline-none text-xs tracking-wide" }, "Cancel"))) : isMembersLoading || isTyping ? /* @__PURE__ */ import_react89.default.createElement(PageSpinner8, null) : /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex flex-col min-w-0 animate-in fade-in duration-300" }, /* @__PURE__ */ import_react89.default.createElement("div", null, members.length === 0 ? /* @__PURE__ */ import_react89.default.createElement("p", { className: "text-xs text-stone-400 py-6 text-center" }, "No members found") : members.map((member) => /* @__PURE__ */ import_react89.default.createElement("div", { key: member.id, onClick: () => setExpandedId(member.id), className: "flex items-center justify-between py-3 hover:bg-stone-50 transition-colors cursor-pointer group min-w-0 px-3 -mx-3 rounded-xl" }, /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex items-center gap-4 min-w-0 flex-1" }, /* @__PURE__ */ import_react89.default.createElement(MemberAvatar3, { src: member.avatarUrl, status: member.status }), /* @__PURE__ */ import_react89.default.createElement("div", { className: "min-w-0 flex-1 flex flex-col gap-0.5" }, /* @__PURE__ */ import_react89.default.createElement("p", { className: "text-sm text-black truncate" }, member.fullName), /* @__PURE__ */ import_react89.default.createElement("p", { className: "text-xs text-stone-500 capitalize truncate" }, member.role.toLowerCase())))))), /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex items-center justify-between pt-6 mt-2 " }, /* @__PURE__ */ import_react89.default.createElement("span", { className: "text-xs text-stone-400 tracking-[0.2em]" }, "Page ", membersCurrentPage, " of ", membersTotalPages === 0 ? 1 : membersTotalPages), /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ import_react89.default.createElement("button", { onClick: () => onMembersPageChange(membersCurrentPage - 1), disabled: membersCurrentPage <= 1 || isMembersLoading, className: "p-2 bg-white border border-stone-200 rounded-full text-black hover:bg-stone-50 disabled:opacity-30 disabled:cursor-not-allowed transition-all outline-none" }, /* @__PURE__ */ import_react89.default.createElement(import_react90.HugeiconsIcon, { icon:
|
|
5900
|
+
}, disabled: isInviting, className: "w-full flex items-center justify-center py-2.5 rounded-full border border-stone-200 text-black hover:bg-stone-50 transition-colors outline-none text-xs tracking-wide" }, "Cancel"))) : isMembersLoading || isTyping ? /* @__PURE__ */ import_react89.default.createElement(PageSpinner8, null) : /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex flex-col min-w-0 animate-in fade-in duration-300" }, /* @__PURE__ */ import_react89.default.createElement("div", null, members.length === 0 ? /* @__PURE__ */ import_react89.default.createElement("p", { className: "text-xs text-stone-400 py-6 text-center" }, "No members found") : members.map((member) => /* @__PURE__ */ import_react89.default.createElement("div", { key: member.id, onClick: () => setExpandedId(member.id), className: "flex items-center justify-between py-3 hover:bg-stone-50 transition-colors cursor-pointer group min-w-0 px-3 -mx-3 rounded-xl" }, /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex items-center gap-4 min-w-0 flex-1" }, /* @__PURE__ */ import_react89.default.createElement(MemberAvatar3, { src: member.avatarUrl, status: member.status }), /* @__PURE__ */ import_react89.default.createElement("div", { className: "min-w-0 flex-1 flex flex-col gap-0.5" }, /* @__PURE__ */ import_react89.default.createElement("p", { className: "text-sm text-black truncate" }, member.fullName), /* @__PURE__ */ import_react89.default.createElement("p", { className: "text-xs text-stone-500 capitalize truncate" }, member.role.toLowerCase())))))), /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex items-center justify-between pt-6 mt-2 " }, /* @__PURE__ */ import_react89.default.createElement("span", { className: "text-xs text-stone-400 tracking-[0.2em]" }, "Page ", membersCurrentPage, " of ", membersTotalPages === 0 ? 1 : membersTotalPages), /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ import_react89.default.createElement("button", { onClick: () => onMembersPageChange(membersCurrentPage - 1), disabled: membersCurrentPage <= 1 || isMembersLoading, className: "p-2 bg-white border border-stone-200 rounded-full text-black hover:bg-stone-50 disabled:opacity-30 disabled:cursor-not-allowed transition-all outline-none" }, /* @__PURE__ */ import_react89.default.createElement(import_react90.HugeiconsIcon, { icon: import_core_free_icons34.ArrowLeft01Icon, size: 14 })), /* @__PURE__ */ import_react89.default.createElement("button", { onClick: () => onMembersPageChange(membersCurrentPage + 1), disabled: membersCurrentPage >= membersTotalPages || isMembersLoading || membersTotalPages === 0, className: "p-2 bg-white border border-stone-200 rounded-full text-black hover:bg-stone-50 disabled:opacity-30 disabled:cursor-not-allowed transition-all outline-none" }, /* @__PURE__ */ import_react89.default.createElement(import_react90.HugeiconsIcon, { icon: import_core_free_icons34.ArrowRight01Icon, size: 14 })))))))), /* @__PURE__ */ import_react89.default.createElement(ReusableOptions, { isOpen: isStatusModalOpen, onClose: () => setIsStatusModalOpen(false), title: "Status Filter", options: ["ALL", "ACTIVE", "BUSY", "OFFLINE", "AWAY"], selectedOption: activeStatusFilter, onSelect: (status) => onStatusFilterChange(status) }), /* @__PURE__ */ import_react89.default.createElement(ReusableOptions, { isOpen: isRoleModalOpen, onClose: () => setIsRoleModalOpen(false), title: "Role Filter", options: ["ALL", "OWNER", "ADMIN", "MANAGER", "MEMBER", "GUEST"], selectedOption: activeRoleFilter, onSelect: (role) => onRoleFilterChange(role) }), /* @__PURE__ */ import_react89.default.createElement(ReusableOptions, { isOpen: !!roleEditTarget, onClose: () => setRoleEditTarget(null), title: "Modify Access Role", options: ["ADMIN", "MANAGER", "MEMBER"], selectedOption: roleEditTarget?.role || "", onSelect: handleRoleUpdate })), activeTab === "ORGANIZATION" && isOrg && /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex flex-col gap-8 animate-in rounded-2xl p-6 bg-white fade-in duration-300" }, /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex items-start justify-between gap-4" }, /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex items-center gap-4" }, /* @__PURE__ */ import_react89.default.createElement("div", { className: "relative group cursor-pointer shrink-0", onClick: () => canManage && !isSavingOrg ? orgFileInputRef.current?.click() : void 0 }, /* @__PURE__ */ import_react89.default.createElement(OrgAvatar2, { src: orgAvatarUrl, sizeClass: "w-14 h-14" }), canManage && /* @__PURE__ */ import_react89.default.createElement("div", { className: "absolute -bottom-1 -right-1 w-6 h-6 bg-white border border-stone-200 rounded-full flex items-center justify-center text-stone-500 group-hover:text-black transition-colors z-10" }, isUploadingOrgAvatar ? /* @__PURE__ */ import_react89.default.createElement(import_react90.HugeiconsIcon, { icon: import_core_free_icons34.Loading03Icon, size: 12, className: "animate-spin" }) : /* @__PURE__ */ import_react89.default.createElement(import_react90.HugeiconsIcon, { icon: import_core_free_icons34.CloudUploadIcon, size: 14 })), /* @__PURE__ */ import_react89.default.createElement("input", { type: "file", ref: orgFileInputRef, className: "hidden", accept: ".png, .jpg, .jpeg", onChange: (e) => handleFileSelect(e, "ORGANIZATION") })), /* @__PURE__ */ import_react89.default.createElement("div", null, /* @__PURE__ */ import_react89.default.createElement("h2", { className: "text-black text-xl mb-1 tracking-tight" }, "Workspace Details"), /* @__PURE__ */ import_react89.default.createElement("p", { className: "text-xs text-stone-500" }, "Manage your organizational identity and handles."))), !canManage && /* @__PURE__ */ import_react89.default.createElement("span", { className: "p-2 w-9 h-9 bg-stone-100 text-stone-400 rounded-full shrink-0" }, /* @__PURE__ */ import_react89.default.createElement(import_react90.HugeiconsIcon, { icon: import_core_free_icons34.CircleLock02Icon, size: 18, className: "text-current" }))), /* @__PURE__ */ import_react89.default.createElement("form", { className: "flex flex-col gap-8 w-full max-w-5xl", onSubmit: handleSaveOrganization, autoComplete: "off" }, /* @__PURE__ */ import_react89.default.createElement(TextInput, { label: "Workspace Name", value: orgName, onChange: handleOrgNameChange, disabled: !canManage || isSavingOrg, placeholder: "Acme Corporation", maxLength: 50 }), /* @__PURE__ */ import_react89.default.createElement("div", { className: "space-y-1.5 relative w-full" }, /* @__PURE__ */ import_react89.default.createElement("label", { className: "text-xs text-stone-400 tracking-[0.2em] block" }, "Workspace Handle"), /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex items-center relative w-full border-b border-stone-200 focus-within:border-black transition-all duration-300 overflow-hidden" }, /* @__PURE__ */ import_react89.default.createElement("input", { type: "text", value: orgSlug, disabled: !canManage || isSavingOrg, onChange: (e) => handleOrgSlugChange(e.target.value), spellCheck: "false", autoComplete: "off", className: "w-full pr-10 pl-0 py-3 text-sm bg-transparent text-black outline-none disabled:opacity-50 disabled:cursor-not-allowed", placeholder: "workspace-handle" }), /* @__PURE__ */ import_react89.default.createElement("div", { className: "absolute right-2 top-1/2 -translate-y-1/2" }, isCheckingSlug && /* @__PURE__ */ import_react89.default.createElement(InputSpinner3, null), !isCheckingSlug && canManage && orgSlug !== initialOrgSlug && orgSlug.length >= 3 && slugAvailable === false && /* @__PURE__ */ import_react89.default.createElement("span", { className: "inline-flex items-center justify-center w-4 h-4 rounded-full bg-[#d97757]/10" }, /* @__PURE__ */ import_react89.default.createElement("svg", { className: "w-2 h-2 text-[#d97757]", viewBox: "0 0 20 20", fill: "currentColor" }, /* @__PURE__ */ import_react89.default.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" }))), !isCheckingSlug && canManage && orgSlug !== initialOrgSlug && orgSlug.length >= 3 && slugAvailable === true && /* @__PURE__ */ import_react89.default.createElement("span", { className: "inline-flex items-center justify-center w-4 h-4 rounded-full bg-green-100" }, /* @__PURE__ */ import_react89.default.createElement("svg", { className: "w-2 h-2 text-green-600", viewBox: "0 0 20 20", fill: "currentColor" }, /* @__PURE__ */ import_react89.default.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M16.707 5.293a1 1 0 00-1.414 0L8 12.586 4.707 9.293a1 1 0 10-1.414 1.414l4 4a1 1 0 001.414 0l8-8a1 1 0 000-1.414z" })))))), /* @__PURE__ */ import_react89.default.createElement("div", { className: "pt-8 mt-2 flex items-center gap-4" }, /* @__PURE__ */ import_react89.default.createElement(ThreeDActionButton, { type: "submit", disabled: isOrgSaveDisabled, isLoading: isSavingOrg, className: "min-w-32" }, "Save Changes"), hasOrgChanges && !isSavingOrg && canManage && /* @__PURE__ */ import_react89.default.createElement("button", { type: "button", onClick: () => {
|
|
5769
5901
|
setOrgName(initialOrgName || "");
|
|
5770
5902
|
setOrgSlug(initialOrgSlug || "");
|
|
5771
5903
|
setOrgAvatarUrl(initialOrgAvatarUrl || "");
|
|
5772
5904
|
setPendingOrgAvatar(null);
|
|
5773
|
-
}, className: "text-xs tracking-widest text-stone-400 hover:text-black transition-colors outline-none" }, "Cancel")))), activeTab === "ACCOUNT" && /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex flex-col gap-6 animate-in fade-in duration-300" }, /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex flex-col gap-8 rounded-2xl p-6 bg-white w-full" }, /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex items-start justify-between gap-4" }, /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex items-center gap-4" }, /* @__PURE__ */ import_react89.default.createElement("div", { className: "relative group cursor-pointer shrink-0", onClick: () => !isSavingProfile ? userFileInputRef.current?.click() : void 0 }, /* @__PURE__ */ import_react89.default.createElement(MemberAvatar3, { src: avatarUrl, status: "ACTIVE", sizeClass: "w-14 h-14" }), /* @__PURE__ */ import_react89.default.createElement("div", { className: "absolute -bottom-1 -right-1 w-6 h-6 bg-white border border-stone-200 rounded-full flex items-center justify-center text-stone-500 group-hover:text-black transition-colors z-20" }, isUploadingUserAvatar ? /* @__PURE__ */ import_react89.default.createElement(import_react90.HugeiconsIcon, { icon:
|
|
5905
|
+
}, className: "text-xs tracking-widest text-stone-400 hover:text-black transition-colors outline-none" }, "Cancel")))), activeTab === "ACCOUNT" && /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex flex-col gap-6 animate-in fade-in duration-300" }, /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex flex-col gap-8 rounded-2xl p-6 bg-white w-full" }, /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex items-start justify-between gap-4" }, /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex items-center gap-4" }, /* @__PURE__ */ import_react89.default.createElement("div", { className: "relative group cursor-pointer shrink-0", onClick: () => !isSavingProfile ? userFileInputRef.current?.click() : void 0 }, /* @__PURE__ */ import_react89.default.createElement(MemberAvatar3, { src: avatarUrl, status: "ACTIVE", sizeClass: "w-14 h-14" }), /* @__PURE__ */ import_react89.default.createElement("div", { className: "absolute -bottom-1 -right-1 w-6 h-6 bg-white border border-stone-200 rounded-full flex items-center justify-center text-stone-500 group-hover:text-black transition-colors z-20" }, isUploadingUserAvatar ? /* @__PURE__ */ import_react89.default.createElement(import_react90.HugeiconsIcon, { icon: import_core_free_icons34.Loading03Icon, size: 12, className: "animate-spin" }) : /* @__PURE__ */ import_react89.default.createElement(import_react90.HugeiconsIcon, { icon: import_core_free_icons34.CloudUploadIcon, size: 14 })), /* @__PURE__ */ import_react89.default.createElement("input", { type: "file", ref: userFileInputRef, className: "hidden", accept: ".png, .jpg, .jpeg", onChange: (e) => handleFileSelect(e, "USER") })), /* @__PURE__ */ import_react89.default.createElement("div", null, /* @__PURE__ */ import_react89.default.createElement("h2", { className: "text-black text-xl mb-1 tracking-tight" }, "Personal Identity"), /* @__PURE__ */ import_react89.default.createElement("p", { className: "text-xs text-stone-500" }, "Update your system display name and contact email.")))), /* @__PURE__ */ import_react89.default.createElement("form", { className: "flex flex-col gap-6 w-full max-w-5xl", onSubmit: handleSaveProfile, autoComplete: "off" }, /* @__PURE__ */ import_react89.default.createElement("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-6" }, /* @__PURE__ */ import_react89.default.createElement(TextInput, { label: "First Name", value: firstName, onChange: (v) => setFirstName(v.replace(/[^a-zA-Z\s-]/g, "").substring(0, 50)), disabled: isSavingProfile, placeholder: "First name", maxLength: 50 }), /* @__PURE__ */ import_react89.default.createElement(TextInput, { label: "Last Name", value: lastName, onChange: (v) => setLastName(v.replace(/[^a-zA-Z\s-]/g, "").substring(0, 50)), disabled: isSavingProfile, placeholder: "Last name", maxLength: 50 })), /* @__PURE__ */ import_react89.default.createElement("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-6" }, /* @__PURE__ */ import_react89.default.createElement(TextInput, { label: "Job Title", value: jobTitle, onChange: (v) => setJobTitle(v.substring(0, 50)), disabled: isSavingProfile, placeholder: "e.g. HR Manager, CEO", maxLength: 50 }), /* @__PURE__ */ import_react89.default.createElement("div", { className: "space-y-1.5 w-full" }, /* @__PURE__ */ import_react89.default.createElement("label", { className: "text-xs text-stone-400 tracking-[0.2em] block" }, "Email Address"), /* @__PURE__ */ import_react89.default.createElement("input", { type: "email", value: initialEmail, disabled: true, className: "w-full pb-3 pt-3 text-sm bg-transparent text-stone-400 border-b border-stone-200 outline-none cursor-not-allowed" }))), /* @__PURE__ */ import_react89.default.createElement("div", { className: "space-y-1.5 w-full" }, /* @__PURE__ */ import_react89.default.createElement("label", { className: "text-xs text-stone-400 tracking-[0.2em] block" }, "About Me"), /* @__PURE__ */ import_react89.default.createElement(
|
|
5774
5906
|
"textarea",
|
|
5775
5907
|
{
|
|
5776
5908
|
value: description,
|
|
@@ -5780,19 +5912,19 @@ var UniversalSettings = ({
|
|
|
5780
5912
|
className: "w-full pb-3 pt-3 text-sm bg-transparent text-black border-b border-stone-200 outline-none focus:border-[#d97757] transition-all duration-300 resize-none h-20 custom-scrollbar",
|
|
5781
5913
|
maxLength: 300
|
|
5782
5914
|
}
|
|
5783
|
-
)), /* @__PURE__ */ import_react89.default.createElement("div", { className: "pt-4 flex items-center gap-4" }, /* @__PURE__ */ import_react89.default.createElement(ThreeDActionButton, { type: "submit", disabled: isProfileSaveDisabled, isLoading: isSavingProfile, className: "min-w-32" }, "Update Identity")))), /* @__PURE__ */ import_react89.default.createElement("div", { className: "bg-white rounded-2xl p-6 w-full flex flex-col sm:flex-row sm:items-center justify-between gap-6 border border-stone-100" }, /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex flex-col items-start max-w-sm" }, /* @__PURE__ */ import_react89.default.createElement("p", { className: "text-xs text-stone-400 tracking-[0.2em] mb-2 " }, "AI Credits Balance"), isBillingLoading ? /* @__PURE__ */ import_react89.default.createElement("div", { className: "h-8 w-32 bg-stone-100 animate-pulse rounded mt-1" }) : /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex items-center gap-2 mt-1" }, /* @__PURE__ */ import_react89.default.createElement(import_react90.HugeiconsIcon, { icon:
|
|
5915
|
+
)), /* @__PURE__ */ import_react89.default.createElement("div", { className: "pt-4 flex items-center gap-4" }, /* @__PURE__ */ import_react89.default.createElement(ThreeDActionButton, { type: "submit", disabled: isProfileSaveDisabled, isLoading: isSavingProfile, className: "min-w-32" }, "Update Identity")))), /* @__PURE__ */ import_react89.default.createElement("div", { className: "bg-white rounded-2xl p-6 w-full flex flex-col sm:flex-row sm:items-center justify-between gap-6 border border-stone-100" }, /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex flex-col items-start max-w-sm" }, /* @__PURE__ */ import_react89.default.createElement("p", { className: "text-xs text-stone-400 tracking-[0.2em] mb-2 " }, "AI Credits Balance"), isBillingLoading ? /* @__PURE__ */ import_react89.default.createElement("div", { className: "h-8 w-32 bg-stone-100 animate-pulse rounded mt-1" }) : /* @__PURE__ */ import_react89.default.createElement("div", { className: "flex items-center gap-2 mt-1" }, /* @__PURE__ */ import_react89.default.createElement(import_react90.HugeiconsIcon, { icon: import_core_free_icons34.Coins01Icon, size: 18, className: "text-stone-500" }), /* @__PURE__ */ import_react89.default.createElement("span", { className: "text-xl text-black tracking-tight" }, aiCredits)), /* @__PURE__ */ import_react89.default.createElement("p", { className: "text-xs text-stone-500 mt-4 leading-relaxed" }, "AI credits are consumed when generating intelligent summaries, transcriptions, and automated huddle insights.")), /* @__PURE__ */ import_react89.default.createElement("button", { onClick: onTopUp, className: "w-9 h-9 rounded-full border border-stone-200 flex items-center justify-center text-black hover:bg-stone-50 transition-colors outline-none shrink-0", "aria-label": "Top Up Credits" }, /* @__PURE__ */ import_react89.default.createElement(import_react90.HugeiconsIcon, { icon: import_core_free_icons34.PlusSignIcon, size: 18 })))));
|
|
5784
5916
|
};
|
|
5785
5917
|
|
|
5786
5918
|
// src/components/UniversalCreateHuddle.tsx
|
|
5787
5919
|
var import_react91 = __toESM(require("react"));
|
|
5788
5920
|
var import_react_hot_toast16 = __toESM(require("react-hot-toast"));
|
|
5789
5921
|
var import_react92 = require("@hugeicons/react");
|
|
5790
|
-
var
|
|
5922
|
+
var import_core_free_icons35 = require("@hugeicons/core-free-icons");
|
|
5791
5923
|
var MemberAvatar4 = ({ src, sizeClass = "w-10 h-10" }) => {
|
|
5792
5924
|
const [loaded, setLoaded] = (0, import_react91.useState)(false);
|
|
5793
5925
|
const [error, setError] = (0, import_react91.useState)(false);
|
|
5794
5926
|
const defaultAvatar = "https://storage.googleapis.com/retina-cloud-v2/assets/images/avatar.avif";
|
|
5795
|
-
return /* @__PURE__ */ import_react91.default.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ import_react91.default.createElement("div", { className: "w-full h-full rounded-lg bg-stone-100 flex items-center justify-center overflow-hidden" }, !loaded && !error && /* @__PURE__ */ import_react91.default.createElement(import_react92.HugeiconsIcon, { icon:
|
|
5927
|
+
return /* @__PURE__ */ import_react91.default.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ import_react91.default.createElement("div", { className: "w-full h-full rounded-lg bg-stone-100 flex items-center justify-center overflow-hidden" }, !loaded && !error && /* @__PURE__ */ import_react91.default.createElement(import_react92.HugeiconsIcon, { icon: import_core_free_icons35.Loading03Icon, className: "animate-spin text-stone-400 absolute", size: 14 }), /* @__PURE__ */ import_react91.default.createElement(
|
|
5796
5928
|
"img",
|
|
5797
5929
|
{
|
|
5798
5930
|
src: error || !src ? defaultAvatar : src,
|
|
@@ -5892,7 +6024,7 @@ var UniversalCreateHuddle = ({
|
|
|
5892
6024
|
setIsSubmitting(false);
|
|
5893
6025
|
}
|
|
5894
6026
|
};
|
|
5895
|
-
return /* @__PURE__ */ import_react91.default.createElement("div", { className: "w-full max-w-3xl mx-auto flex flex-col animate-in fade-in duration-300 relative" }, /* @__PURE__ */ import_react91.default.createElement(ManagedToaster, null), /* @__PURE__ */ import_react91.default.createElement("div", { className: "mb-6 flex w-full items-center px-1" }, /* @__PURE__ */ import_react91.default.createElement("a", { href: onBackHref, className: "flex items-center gap-2 text-[#d97757] hover:text-[#d97757] transition-colors text-sm outline-none" }, /* @__PURE__ */ import_react91.default.createElement(import_react92.HugeiconsIcon, { icon:
|
|
6027
|
+
return /* @__PURE__ */ import_react91.default.createElement("div", { className: "w-full max-w-3xl mx-auto flex flex-col animate-in fade-in duration-300 relative" }, /* @__PURE__ */ import_react91.default.createElement(ManagedToaster, null), /* @__PURE__ */ import_react91.default.createElement("div", { className: "mb-6 flex w-full items-center px-1" }, /* @__PURE__ */ import_react91.default.createElement("a", { href: onBackHref, className: "flex items-center gap-2 text-[#d97757] hover:text-[#d97757] transition-colors text-sm outline-none" }, /* @__PURE__ */ import_react91.default.createElement(import_react92.HugeiconsIcon, { icon: import_core_free_icons35.ArrowLeft01Icon, size: 16 }), " Back")), /* @__PURE__ */ import_react91.default.createElement("div", { className: "flex flex-col gap-1 mb-8 px-1" }, /* @__PURE__ */ import_react91.default.createElement("h1", { className: "text-black text-xl tracking-tight" }, "Create Huddle"), /* @__PURE__ */ import_react91.default.createElement("p", { className: "text-xs text-stone-500" }, "Schedule a new workspace huddle and manage participant access.")), /* @__PURE__ */ import_react91.default.createElement("div", { className: "flex flex-col gap-8 animate-in rounded-2xl p-6 bg-white fade-in duration-300" }, /* @__PURE__ */ import_react91.default.createElement("form", { className: "flex flex-col gap-8", onSubmit: handleSubmit, autoComplete: "off" }, !canManage && /* @__PURE__ */ import_react91.default.createElement("div", { className: "flex items-start gap-3 p-4 bg-stone-50 rounded-xl" }, /* @__PURE__ */ import_react91.default.createElement(import_react92.HugeiconsIcon, { icon: import_core_free_icons35.CircleLock02Icon, size: 20, className: "text-stone-500 shrink-0 mt-0.5" }), /* @__PURE__ */ import_react91.default.createElement("div", { className: "flex flex-col" }, /* @__PURE__ */ import_react91.default.createElement("span", { className: "text-sm text-black tracking-tight" }, "Access Restricted"), /* @__PURE__ */ import_react91.default.createElement("span", { className: "text-xs text-stone-500 mt-1 leading-relaxed" }, "You do not have sufficient permissions to access this page. Contact organization admin or manager."))), /* @__PURE__ */ import_react91.default.createElement(
|
|
5896
6028
|
TextInput,
|
|
5897
6029
|
{
|
|
5898
6030
|
label: "Huddle Subject",
|
|
@@ -5908,7 +6040,7 @@ var UniversalCreateHuddle = ({
|
|
|
5908
6040
|
onClick: () => canManage && !isSubmitting && setCalendarMode("DATE"),
|
|
5909
6041
|
className: `flex items-center relative w-full border-b border-stone-200 transition-all duration-300 pb-3 pt-3 ${!canManage || isSubmitting ? "opacity-50 pointer-events-none" : "hover:border-black cursor-pointer"}`
|
|
5910
6042
|
},
|
|
5911
|
-
/* @__PURE__ */ import_react91.default.createElement(import_react92.HugeiconsIcon, { icon:
|
|
6043
|
+
/* @__PURE__ */ import_react91.default.createElement(import_react92.HugeiconsIcon, { icon: import_core_free_icons35.Calendar01Icon, size: 16, className: "text-stone-400 absolute left-0" }),
|
|
5912
6044
|
/* @__PURE__ */ import_react91.default.createElement("span", { className: "w-full pl-8 text-sm text-black truncate block" }, huddleDate.toLocaleDateString("en-GB", { day: "2-digit", month: "short", year: "numeric" }))
|
|
5913
6045
|
)), /* @__PURE__ */ import_react91.default.createElement("div", { className: "space-y-1.5 w-full" }, /* @__PURE__ */ import_react91.default.createElement("label", { className: "text-xs text-stone-400 tracking-[0.2em] block" }, "Time"), /* @__PURE__ */ import_react91.default.createElement(
|
|
5914
6046
|
"div",
|
|
@@ -5916,7 +6048,7 @@ var UniversalCreateHuddle = ({
|
|
|
5916
6048
|
onClick: () => canManage && !isSubmitting && setCalendarMode("TIME"),
|
|
5917
6049
|
className: `flex items-center relative w-full border-b border-stone-200 transition-all duration-300 pb-3 pt-3 ${!canManage || isSubmitting ? "opacity-50 pointer-events-none" : "hover:border-black cursor-pointer"}`
|
|
5918
6050
|
},
|
|
5919
|
-
/* @__PURE__ */ import_react91.default.createElement(import_react92.HugeiconsIcon, { icon:
|
|
6051
|
+
/* @__PURE__ */ import_react91.default.createElement(import_react92.HugeiconsIcon, { icon: import_core_free_icons35.Clock01Icon, size: 16, className: "text-stone-400 absolute left-0" }),
|
|
5920
6052
|
/* @__PURE__ */ import_react91.default.createElement("span", { className: "w-full pl-8 text-sm text-black truncate block" }, huddleDate.toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" }))
|
|
5921
6053
|
)), /* @__PURE__ */ import_react91.default.createElement("div", { className: "space-y-1.5 w-full" }, /* @__PURE__ */ import_react91.default.createElement("label", { className: "text-xs text-stone-400 tracking-[0.2em] block" }, "Timezone"), /* @__PURE__ */ import_react91.default.createElement(
|
|
5922
6054
|
"div",
|
|
@@ -5924,7 +6056,7 @@ var UniversalCreateHuddle = ({
|
|
|
5924
6056
|
onClick: () => canManage && !isSubmitting && setShowTimezoneModal(true),
|
|
5925
6057
|
className: `flex items-center relative w-full border-b border-stone-200 transition-all duration-300 pb-3 pt-3 ${!canManage || isSubmitting ? "opacity-50 pointer-events-none" : "hover:border-black cursor-pointer"}`
|
|
5926
6058
|
},
|
|
5927
|
-
/* @__PURE__ */ import_react91.default.createElement(import_react92.HugeiconsIcon, { icon:
|
|
6059
|
+
/* @__PURE__ */ import_react91.default.createElement(import_react92.HugeiconsIcon, { icon: import_core_free_icons35.Globe02Icon, size: 16, className: "text-stone-400 absolute left-0" }),
|
|
5928
6060
|
/* @__PURE__ */ import_react91.default.createElement("span", { className: "w-full pl-8 text-sm text-black truncate block" }, timezone)
|
|
5929
6061
|
))), /* @__PURE__ */ import_react91.default.createElement("div", { className: `flex items-center justify-between py-2 mt-2 ${!canManage ? "opacity-50 pointer-events-none" : ""}` }, /* @__PURE__ */ import_react91.default.createElement("div", { className: "flex flex-col" }, /* @__PURE__ */ import_react91.default.createElement("span", { className: "text-sm text-black tracking-tight" }, "Private Huddle"), /* @__PURE__ */ import_react91.default.createElement("span", { className: "text-xs text-stone-500" }, "Only invited members can join.")), /* @__PURE__ */ import_react91.default.createElement(
|
|
5930
6062
|
"button",
|
|
@@ -5973,7 +6105,7 @@ var UniversalCreateHuddle = ({
|
|
|
5973
6105
|
onSelect: (tz) => setTimezone(tz),
|
|
5974
6106
|
showSearch: true
|
|
5975
6107
|
}
|
|
5976
|
-
)), showMembersModal && canManage && /* @__PURE__ */ import_react91.default.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ import_react91.default.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setShowMembersModal(false) }), /* @__PURE__ */ import_react91.default.createElement("div", { className: "relative w-full max-w-md bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200 h-[80vh]" }, /* @__PURE__ */ import_react91.default.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, /* @__PURE__ */ import_react91.default.createElement("h3", { className: "text-sm text-black tracking-tight" }, "Select Participants"), /* @__PURE__ */ import_react91.default.createElement("button", { onClick: () => setShowMembersModal(false), className: "text-[#d97757] hover:text-[#d97757] transition-colors outline-none text-sm " }, "Done")), /* @__PURE__ */ import_react91.default.createElement("div", { className: "p-4 shrink-0 " }, /* @__PURE__ */ import_react91.default.createElement("div", { className: "relative w-full" }, /* @__PURE__ */ import_react91.default.createElement("div", { className: "absolute inset-y-0 left-0 pl-4 flex items-center pointer-events-none" }, /* @__PURE__ */ import_react91.default.createElement(import_react92.HugeiconsIcon, { icon:
|
|
6108
|
+
)), showMembersModal && canManage && /* @__PURE__ */ import_react91.default.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ import_react91.default.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setShowMembersModal(false) }), /* @__PURE__ */ import_react91.default.createElement("div", { className: "relative w-full max-w-md bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200 h-[80vh]" }, /* @__PURE__ */ import_react91.default.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, /* @__PURE__ */ import_react91.default.createElement("h3", { className: "text-sm text-black tracking-tight" }, "Select Participants"), /* @__PURE__ */ import_react91.default.createElement("button", { onClick: () => setShowMembersModal(false), className: "text-[#d97757] hover:text-[#d97757] transition-colors outline-none text-sm " }, "Done")), /* @__PURE__ */ import_react91.default.createElement("div", { className: "p-4 shrink-0 " }, /* @__PURE__ */ import_react91.default.createElement("div", { className: "relative w-full" }, /* @__PURE__ */ import_react91.default.createElement("div", { className: "absolute inset-y-0 left-0 pl-4 flex items-center pointer-events-none" }, /* @__PURE__ */ import_react91.default.createElement(import_react92.HugeiconsIcon, { icon: import_core_free_icons35.Search01Icon, size: 16, className: "text-stone-400" })), /* @__PURE__ */ import_react91.default.createElement(
|
|
5977
6109
|
"input",
|
|
5978
6110
|
{
|
|
5979
6111
|
type: "text",
|
|
@@ -5982,7 +6114,7 @@ var UniversalCreateHuddle = ({
|
|
|
5982
6114
|
onChange: handleSearchInput,
|
|
5983
6115
|
className: "w-full pl-10 pr-4 py-2.5 bg-stone-100 rounded-full focus:border-[#d97757] border border-transparent text-sm text-black placeholder-stone-400 outline-none focus:bg-stone-200 transition-colors"
|
|
5984
6116
|
}
|
|
5985
|
-
))), /* @__PURE__ */ import_react91.default.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-2 relative" }, isMembersLoading || isTyping ? /* @__PURE__ */ import_react91.default.createElement("div", { className: "absolute inset-0 flex items-center justify-center" }, /* @__PURE__ */ import_react91.default.createElement(import_react92.HugeiconsIcon, { icon:
|
|
6117
|
+
))), /* @__PURE__ */ import_react91.default.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-2 relative" }, isMembersLoading || isTyping ? /* @__PURE__ */ import_react91.default.createElement("div", { className: "absolute inset-0 flex items-center justify-center" }, /* @__PURE__ */ import_react91.default.createElement(import_react92.HugeiconsIcon, { icon: import_core_free_icons35.Loading03Icon, size: 28, className: "animate-spin text-black" })) : members.length === 0 ? /* @__PURE__ */ import_react91.default.createElement("div", { className: "p-8 text-center text-xs text-stone-400" }, "No members found.") : members.map((member) => {
|
|
5986
6118
|
const isChecked = selectedParticipants.has(member.userId);
|
|
5987
6119
|
return /* @__PURE__ */ import_react91.default.createElement(
|
|
5988
6120
|
"div",
|
|
@@ -5992,7 +6124,7 @@ var UniversalCreateHuddle = ({
|
|
|
5992
6124
|
className: "flex items-center justify-between p-3 rounded-xl cursor-pointer hover:bg-stone-50 transition-colors select-none"
|
|
5993
6125
|
},
|
|
5994
6126
|
/* @__PURE__ */ import_react91.default.createElement("div", { className: "flex items-center gap-3 min-w-0 flex-1" }, /* @__PURE__ */ import_react91.default.createElement(MemberAvatar4, { src: member.avatarUrl, sizeClass: "w-9 h-9" }), /* @__PURE__ */ import_react91.default.createElement("div", { className: "flex flex-col min-w-0 flex-1" }, /* @__PURE__ */ import_react91.default.createElement("span", { className: "text-sm text-black truncate" }, member.fullName), /* @__PURE__ */ import_react91.default.createElement("span", { className: "text-xs text-stone-400 capitalize truncate" }, member.role.toLowerCase()))),
|
|
5995
|
-
/* @__PURE__ */ import_react91.default.createElement("div", { className: "shrink-0 pl-3" }, /* @__PURE__ */ import_react91.default.createElement("div", { className: `w-5 h-5 rounded-full flex items-center justify-center transition-colors ${isChecked ? "bg-[#d97757]" : "border border-stone-300 bg-white"}` }, isChecked && /* @__PURE__ */ import_react91.default.createElement(import_react92.HugeiconsIcon, { icon:
|
|
6127
|
+
/* @__PURE__ */ import_react91.default.createElement("div", { className: "shrink-0 pl-3" }, /* @__PURE__ */ import_react91.default.createElement("div", { className: `w-5 h-5 rounded-full flex items-center justify-center transition-colors ${isChecked ? "bg-[#d97757]" : "border border-stone-300 bg-white"}` }, isChecked && /* @__PURE__ */ import_react91.default.createElement(import_react92.HugeiconsIcon, { icon: import_core_free_icons35.Tick02Icon, size: 14, className: "text-white" })))
|
|
5996
6128
|
);
|
|
5997
6129
|
})), /* @__PURE__ */ import_react91.default.createElement("div", { className: "p-4 flex items-center justify-between shrink-0 bg-white" }, /* @__PURE__ */ import_react91.default.createElement("span", { className: "text-xs text-stone-400 tracking-widest" }, "Page ", membersCurrentPage, " of ", membersTotalPages === 0 ? 1 : membersTotalPages), /* @__PURE__ */ import_react91.default.createElement("div", { className: "flex gap-1" }, /* @__PURE__ */ import_react91.default.createElement(
|
|
5998
6130
|
"button",
|
|
@@ -6001,7 +6133,7 @@ var UniversalCreateHuddle = ({
|
|
|
6001
6133
|
onClick: () => onMembersPageChange(membersCurrentPage - 1),
|
|
6002
6134
|
className: "w-7 h-7 flex items-center justify-center rounded-full bg-white border border-stone-200 text-stone-600 disabled:opacity-30 outline-none hover:bg-stone-50 transition-colors"
|
|
6003
6135
|
},
|
|
6004
|
-
/* @__PURE__ */ import_react91.default.createElement(import_react92.HugeiconsIcon, { icon:
|
|
6136
|
+
/* @__PURE__ */ import_react91.default.createElement(import_react92.HugeiconsIcon, { icon: import_core_free_icons35.ArrowLeft01Icon, size: 12 })
|
|
6005
6137
|
), /* @__PURE__ */ import_react91.default.createElement(
|
|
6006
6138
|
"button",
|
|
6007
6139
|
{
|
|
@@ -6009,7 +6141,7 @@ var UniversalCreateHuddle = ({
|
|
|
6009
6141
|
onClick: () => onMembersPageChange(membersCurrentPage + 1),
|
|
6010
6142
|
className: "w-7 h-7 flex items-center justify-center rounded-full bg-white border border-stone-200 text-stone-600 disabled:opacity-30 outline-none hover:bg-stone-50 transition-colors"
|
|
6011
6143
|
},
|
|
6012
|
-
/* @__PURE__ */ import_react91.default.createElement(import_react92.HugeiconsIcon, { icon:
|
|
6144
|
+
/* @__PURE__ */ import_react91.default.createElement(import_react92.HugeiconsIcon, { icon: import_core_free_icons35.ArrowRight01Icon, size: 12 })
|
|
6013
6145
|
))))));
|
|
6014
6146
|
};
|
|
6015
6147
|
|
|
@@ -6017,7 +6149,7 @@ var UniversalCreateHuddle = ({
|
|
|
6017
6149
|
var import_react93 = __toESM(require("react"));
|
|
6018
6150
|
var import_navigation7 = require("next/navigation");
|
|
6019
6151
|
var import_react94 = require("@hugeicons/react");
|
|
6020
|
-
var
|
|
6152
|
+
var import_core_free_icons36 = require("@hugeicons/core-free-icons");
|
|
6021
6153
|
var MONTHS2 = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
|
|
6022
6154
|
var DAYS_OF_WEEK2 = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"];
|
|
6023
6155
|
var HuddleAvatar2 = ({ timeString, status, sizeClass = "w-10 h-10" }) => {
|
|
@@ -6112,7 +6244,7 @@ var HomeHuddleCalendar = ({
|
|
|
6112
6244
|
(e) => e.dateObj && e.dateObj.toDateString() === selectedDate.toDateString()
|
|
6113
6245
|
);
|
|
6114
6246
|
const displayedEvents = isSearching ? parsedEvents : selectedDayEvents;
|
|
6115
|
-
return /* @__PURE__ */ import_react93.default.createElement("div", { className: "flex flex-col animate-in fade-in duration-300 w-full" }, /* @__PURE__ */ import_react93.default.createElement("div", { className: "flex flex-col gap-6 mb-6 w-full" }, /* @__PURE__ */ import_react93.default.createElement("div", { className: "flex flex-col sm:flex-row sm:items-center justify-between gap-4" }, /* @__PURE__ */ import_react93.default.createElement("div", null, /* @__PURE__ */ import_react93.default.createElement("h2", { className: "text-black text-xl tracking-tight" }, "Schedule"), /* @__PURE__ */ import_react93.default.createElement("p", { className: "text-xs text-stone-500 mt-0.5" }, "Manage and view your workspace sessions."))), /* @__PURE__ */ import_react93.default.createElement("div", { className: "flex flex-row flex-nowrap items-center justify-between gap-4 w-full" }, /* @__PURE__ */ import_react93.default.createElement("div", { className: "relative flex-1 min-w-0 max-w-full" }, /* @__PURE__ */ import_react93.default.createElement("div", { className: "absolute inset-y-0 left-0 pl-4 flex items-center pointer-events-none" }, /* @__PURE__ */ import_react93.default.createElement(import_react94.HugeiconsIcon, { icon:
|
|
6247
|
+
return /* @__PURE__ */ import_react93.default.createElement("div", { className: "flex flex-col animate-in fade-in duration-300 w-full" }, /* @__PURE__ */ import_react93.default.createElement("div", { className: "flex flex-col gap-6 mb-6 w-full" }, /* @__PURE__ */ import_react93.default.createElement("div", { className: "flex flex-col sm:flex-row sm:items-center justify-between gap-4" }, /* @__PURE__ */ import_react93.default.createElement("div", null, /* @__PURE__ */ import_react93.default.createElement("h2", { className: "text-black text-xl tracking-tight" }, "Schedule"), /* @__PURE__ */ import_react93.default.createElement("p", { className: "text-xs text-stone-500 mt-0.5" }, "Manage and view your workspace sessions."))), /* @__PURE__ */ import_react93.default.createElement("div", { className: "flex flex-row flex-nowrap items-center justify-between gap-4 w-full" }, /* @__PURE__ */ import_react93.default.createElement("div", { className: "relative flex-1 min-w-0 max-w-full" }, /* @__PURE__ */ import_react93.default.createElement("div", { className: "absolute inset-y-0 left-0 pl-4 flex items-center pointer-events-none" }, /* @__PURE__ */ import_react93.default.createElement(import_react94.HugeiconsIcon, { icon: import_core_free_icons36.Search01Icon, size: 16, className: "text-stone-400" })), /* @__PURE__ */ import_react93.default.createElement(
|
|
6116
6248
|
"input",
|
|
6117
6249
|
{
|
|
6118
6250
|
type: "text",
|
|
@@ -6121,20 +6253,20 @@ var HomeHuddleCalendar = ({
|
|
|
6121
6253
|
onChange: handleSearchInput,
|
|
6122
6254
|
className: "w-full pl-10 pr-4 py-2 bg-white rounded-full text-sm text-black placeholder-stone-400 outline-none transition-colors focus:border-[#d97757] border border-transparent hover:border-stone-200"
|
|
6123
6255
|
}
|
|
6124
|
-
)), /* @__PURE__ */ import_react93.default.createElement("div", { className: "flex items-center gap-3 w-auto pb-0 shrink-0" }, /* @__PURE__ */ import_react93.default.createElement("button", { onClick: () => setIsStatusModalOpen(true), className: "flex items-center justify-center bg-white w-9 h-9 rounded-full text-stone-500 hover:text-black transition-colors outline-none " }, /* @__PURE__ */ import_react93.default.createElement(import_react94.HugeiconsIcon, { icon:
|
|
6256
|
+
)), /* @__PURE__ */ import_react93.default.createElement("div", { className: "flex items-center gap-3 w-auto pb-0 shrink-0" }, /* @__PURE__ */ import_react93.default.createElement("button", { onClick: () => setIsStatusModalOpen(true), className: "flex items-center justify-center bg-white w-9 h-9 rounded-full text-stone-500 hover:text-black transition-colors outline-none " }, /* @__PURE__ */ import_react93.default.createElement(import_react94.HugeiconsIcon, { icon: import_core_free_icons36.TimeScheduleIcon, size: 16 }))))), !isSearching && /* @__PURE__ */ import_react93.default.createElement("div", { className: "bg-white rounded-2xl p-5 mb-6 relative overflow-hidden animate-in fade-in duration-300" }, isLoading && /* @__PURE__ */ import_react93.default.createElement("div", { className: "absolute inset-0 z-50 flex items-center justify-center bg-white/60 backdrop-blur-sm" }, /* @__PURE__ */ import_react93.default.createElement(import_react94.HugeiconsIcon, { icon: import_core_free_icons36.Loading03Icon, size: 28, className: "animate-spin text-black" })), /* @__PURE__ */ import_react93.default.createElement("div", { className: "flex items-center justify-between px-2 mb-4" }, /* @__PURE__ */ import_react93.default.createElement("span", { className: "text-sm text-black tracking-wide" }, MONTHS2[viewMonth], " ", viewYear), /* @__PURE__ */ import_react93.default.createElement("div", { className: "flex gap-1" }, /* @__PURE__ */ import_react93.default.createElement(
|
|
6125
6257
|
"button",
|
|
6126
6258
|
{
|
|
6127
6259
|
onClick: handlePrevMonth,
|
|
6128
6260
|
className: "w-8 h-8 flex items-center justify-center border border-stone-200 rounded-full hover:bg-stone-100 outline-none transition-colors"
|
|
6129
6261
|
},
|
|
6130
|
-
/* @__PURE__ */ import_react93.default.createElement(import_react94.HugeiconsIcon, { icon:
|
|
6262
|
+
/* @__PURE__ */ import_react93.default.createElement(import_react94.HugeiconsIcon, { icon: import_core_free_icons36.ArrowLeft01Icon, size: 16, className: "text-black" })
|
|
6131
6263
|
), /* @__PURE__ */ import_react93.default.createElement(
|
|
6132
6264
|
"button",
|
|
6133
6265
|
{
|
|
6134
6266
|
onClick: handleNextMonth,
|
|
6135
6267
|
className: "w-8 h-8 flex items-center justify-center rounded-full border border-stone-200 hover:bg-stone-100 outline-none transition-colors"
|
|
6136
6268
|
},
|
|
6137
|
-
/* @__PURE__ */ import_react93.default.createElement(import_react94.HugeiconsIcon, { icon:
|
|
6269
|
+
/* @__PURE__ */ import_react93.default.createElement(import_react94.HugeiconsIcon, { icon: import_core_free_icons36.ArrowRight01Icon, size: 16, className: "text-black" })
|
|
6138
6270
|
))), /* @__PURE__ */ import_react93.default.createElement("div", { className: "grid grid-cols-7 gap-y-2 gap-x-1" }, DAYS_OF_WEEK2.map((d) => /* @__PURE__ */ import_react93.default.createElement("div", { key: d, className: "text-center text-[11px] text-stone-400 py-2 uppercase tracking-widest" }, d)), Array.from({ length: firstDayOffset }).map((_, i) => /* @__PURE__ */ import_react93.default.createElement("div", { key: `empty-${i}` })), Array.from({ length: daysInMonth }).map((_, i) => {
|
|
6139
6271
|
const day = i + 1;
|
|
6140
6272
|
const thisDate = new Date(viewYear, viewMonth, day);
|
|
@@ -6157,7 +6289,7 @@ var HomeHuddleCalendar = ({
|
|
|
6157
6289
|
dayEventsCount
|
|
6158
6290
|
)
|
|
6159
6291
|
));
|
|
6160
|
-
}))), /* @__PURE__ */ import_react93.default.createElement("div", { className: "flex flex-col gap-4 bg-white rounded-2xl p-6 relative min-h-37.5" }, /* @__PURE__ */ import_react93.default.createElement("div", { className: "flex items-center justify-between pb-4" }, /* @__PURE__ */ import_react93.default.createElement("h3", { className: "text-sm text-black " }, isSearching ? "Search Results" : `Events for ${selectedDate.toLocaleDateString("en-GB", { day: "numeric", month: "short", year: "numeric" })}`), /* @__PURE__ */ import_react93.default.createElement("span", { className: "text-[10px] uppercase tracking-widest text-stone-400 " }, displayedEvents.length, " ", displayedEvents.length === 1 ? "Session" : "Sessions")), /* @__PURE__ */ import_react93.default.createElement("div", { className: "flex flex-col min-w-0 pt-2" }, isLoading ? /* @__PURE__ */ import_react93.default.createElement("div", { className: "py-8 flex flex-col items-center justify-center text-center" }, /* @__PURE__ */ import_react93.default.createElement(import_react94.HugeiconsIcon, { icon:
|
|
6292
|
+
}))), /* @__PURE__ */ import_react93.default.createElement("div", { className: "flex flex-col gap-4 bg-white rounded-2xl p-6 relative min-h-37.5" }, /* @__PURE__ */ import_react93.default.createElement("div", { className: "flex items-center justify-between pb-4" }, /* @__PURE__ */ import_react93.default.createElement("h3", { className: "text-sm text-black " }, isSearching ? "Search Results" : `Events for ${selectedDate.toLocaleDateString("en-GB", { day: "numeric", month: "short", year: "numeric" })}`), /* @__PURE__ */ import_react93.default.createElement("span", { className: "text-[10px] uppercase tracking-widest text-stone-400 " }, displayedEvents.length, " ", displayedEvents.length === 1 ? "Session" : "Sessions")), /* @__PURE__ */ import_react93.default.createElement("div", { className: "flex flex-col min-w-0 pt-2" }, isLoading ? /* @__PURE__ */ import_react93.default.createElement("div", { className: "py-8 flex flex-col items-center justify-center text-center" }, /* @__PURE__ */ import_react93.default.createElement(import_react94.HugeiconsIcon, { icon: import_core_free_icons36.Loading03Icon, size: 28, className: "animate-spin text-stone-400" })) : displayedEvents.length === 0 ? /* @__PURE__ */ import_react93.default.createElement("div", { className: "py-8 flex flex-col items-center justify-center text-center" }, /* @__PURE__ */ import_react93.default.createElement("p", { className: "text-xs text-stone-400" }, isSearching ? "No sessions found for this search." : "No sessions scheduled for this date.")) : displayedEvents.map((huddle) => /* @__PURE__ */ import_react93.default.createElement(
|
|
6161
6293
|
"div",
|
|
6162
6294
|
{
|
|
6163
6295
|
key: huddle.id,
|
|
@@ -6166,7 +6298,7 @@ var HomeHuddleCalendar = ({
|
|
|
6166
6298
|
},
|
|
6167
6299
|
/* @__PURE__ */ import_react93.default.createElement(HuddleAvatar2, { timeString: huddle.timeString, status: huddle.status }),
|
|
6168
6300
|
/* @__PURE__ */ import_react93.default.createElement("div", { className: "flex flex-col min-w-0 flex-1" }, /* @__PURE__ */ import_react93.default.createElement("p", { className: "text-sm text-black tracking-tight truncate" }, huddle.name), /* @__PURE__ */ import_react93.default.createElement("span", { className: "text-[11px] text-stone-500 truncate block mt-1 tracking-wide" }, isSearching ? huddle.timeString : huddle.timeString.split("|")[1]?.trim() || huddle.timeString)),
|
|
6169
|
-
/* @__PURE__ */ import_react93.default.createElement(import_react94.HugeiconsIcon, { icon:
|
|
6301
|
+
/* @__PURE__ */ import_react93.default.createElement(import_react94.HugeiconsIcon, { icon: import_core_free_icons36.ArrowRight01Icon, size: 14, className: "shrink-0 text-stone-400 group-hover:text-black transition-colors" })
|
|
6170
6302
|
)))), huddles.length > 0 && !isLoading && /* @__PURE__ */ import_react93.default.createElement("div", { className: "flex items-center justify-between pt-6 mt-4 mb-2" }, /* @__PURE__ */ import_react93.default.createElement("span", { className: "text-[10px] text-stone-400 tracking-widest uppercase" }, "Page ", currentPage, " of ", totalPages === 0 ? 1 : totalPages), /* @__PURE__ */ import_react93.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ import_react93.default.createElement(
|
|
6171
6303
|
"button",
|
|
6172
6304
|
{
|
|
@@ -6174,7 +6306,7 @@ var HomeHuddleCalendar = ({
|
|
|
6174
6306
|
disabled: currentPage <= 1,
|
|
6175
6307
|
className: "p-2 bg-white rounded-full text-black hover:bg-stone-50 disabled:opacity-30 disabled:cursor-not-allowed transition-all outline-none "
|
|
6176
6308
|
},
|
|
6177
|
-
/* @__PURE__ */ import_react93.default.createElement(import_react94.HugeiconsIcon, { icon:
|
|
6309
|
+
/* @__PURE__ */ import_react93.default.createElement(import_react94.HugeiconsIcon, { icon: import_core_free_icons36.ArrowLeft01Icon, size: 14 })
|
|
6178
6310
|
), /* @__PURE__ */ import_react93.default.createElement(
|
|
6179
6311
|
"button",
|
|
6180
6312
|
{
|
|
@@ -6182,7 +6314,7 @@ var HomeHuddleCalendar = ({
|
|
|
6182
6314
|
disabled: currentPage >= totalPages || totalPages === 0,
|
|
6183
6315
|
className: "p-2 bg-white rounded-full text-black hover:bg-stone-50 disabled:opacity-30 disabled:cursor-not-allowed transition-all outline-none "
|
|
6184
6316
|
},
|
|
6185
|
-
/* @__PURE__ */ import_react93.default.createElement(import_react94.HugeiconsIcon, { icon:
|
|
6317
|
+
/* @__PURE__ */ import_react93.default.createElement(import_react94.HugeiconsIcon, { icon: import_core_free_icons36.ArrowRight01Icon, size: 14 })
|
|
6186
6318
|
))), /* @__PURE__ */ import_react93.default.createElement(
|
|
6187
6319
|
ReusableOptions,
|
|
6188
6320
|
{
|