@retinalabsllc/zairusjs 21.0.9 → 21.1.2
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 +242 -120
- package/dist/index.mjs +207 -85
- 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: "", 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: "", 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,51 @@ 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: "SUBJECT TITLE",
|
|
3539
|
+
placeholder: "Partnership Inquiry",
|
|
3540
|
+
value: formData.title,
|
|
3541
|
+
onChange: (val) => setFormData({ ...formData, title: val }),
|
|
3542
|
+
disabled: status === "loading"
|
|
3543
|
+
}
|
|
3544
|
+
)), /* @__PURE__ */ import_react55.default.createElement(
|
|
3545
|
+
TextInput2,
|
|
3546
|
+
{
|
|
3547
|
+
label: "PHONE NUMBER (OPTIONAL)",
|
|
3548
|
+
type: "tel",
|
|
3549
|
+
placeholder: "+1 234 567 8900",
|
|
3550
|
+
value: formData.phone,
|
|
3551
|
+
onChange: (val) => setFormData({ ...formData, phone: val }),
|
|
3552
|
+
disabled: status === "loading"
|
|
3553
|
+
}
|
|
3554
|
+
), /* @__PURE__ */ import_react55.default.createElement(
|
|
3555
|
+
TextAreaInput,
|
|
3556
|
+
{
|
|
3557
|
+
label: "MESSAGE",
|
|
3558
|
+
placeholder: "How can we help you?",
|
|
3559
|
+
value: formData.message,
|
|
3560
|
+
onChange: (val) => setFormData({ ...formData, message: val }),
|
|
3561
|
+
disabled: status === "loading"
|
|
3562
|
+
}
|
|
3563
|
+
), 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(
|
|
3564
|
+
ThreeDActionButton2,
|
|
3565
|
+
{
|
|
3566
|
+
type: "submit",
|
|
3567
|
+
isLoading: status === "loading",
|
|
3568
|
+
disabled: !formData.name || !formData.title || !formData.message
|
|
3569
|
+
},
|
|
3570
|
+
"Submit Message"
|
|
3449
3571
|
)))))))));
|
|
3450
3572
|
};
|
|
3451
3573
|
|
|
@@ -3546,7 +3668,7 @@ var ManagedPricingBlock = ({
|
|
|
3546
3668
|
var import_react58 = __toESM(require("react"));
|
|
3547
3669
|
var import_image5 = __toESM(require("next/image"));
|
|
3548
3670
|
var import_react59 = require("@hugeicons/react");
|
|
3549
|
-
var
|
|
3671
|
+
var import_core_free_icons21 = require("@hugeicons/core-free-icons");
|
|
3550
3672
|
var MemberSocialLink = ({ href, icon, label, name }) => /* @__PURE__ */ import_react58.default.createElement(
|
|
3551
3673
|
"a",
|
|
3552
3674
|
{
|
|
@@ -3586,7 +3708,7 @@ var ManagedBoardBlock = ({
|
|
|
3586
3708
|
MemberSocialLink,
|
|
3587
3709
|
{
|
|
3588
3710
|
href: `https://x.com/${member.twitterHandle}`,
|
|
3589
|
-
icon:
|
|
3711
|
+
icon: import_core_free_icons21.TwitterIcon,
|
|
3590
3712
|
label: "X",
|
|
3591
3713
|
name: member.name
|
|
3592
3714
|
}
|
|
@@ -3594,7 +3716,7 @@ var ManagedBoardBlock = ({
|
|
|
3594
3716
|
MemberSocialLink,
|
|
3595
3717
|
{
|
|
3596
3718
|
href: member.linkedinHandle,
|
|
3597
|
-
icon:
|
|
3719
|
+
icon: import_core_free_icons21.LinkedinIcon,
|
|
3598
3720
|
label: "LinkedIn",
|
|
3599
3721
|
name: member.name
|
|
3600
3722
|
}
|
|
@@ -3770,7 +3892,7 @@ var PortfolioHero = ({
|
|
|
3770
3892
|
var import_react63 = __toESM(require("react"));
|
|
3771
3893
|
var import_image8 = __toESM(require("next/image"));
|
|
3772
3894
|
var import_react64 = require("@hugeicons/react");
|
|
3773
|
-
var
|
|
3895
|
+
var import_core_free_icons22 = require("@hugeicons/core-free-icons");
|
|
3774
3896
|
var GifFeatureCard = ({
|
|
3775
3897
|
gifSrc,
|
|
3776
3898
|
title,
|
|
@@ -3782,7 +3904,7 @@ var GifFeatureCard = ({
|
|
|
3782
3904
|
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
3905
|
import_react64.HugeiconsIcon,
|
|
3784
3906
|
{
|
|
3785
|
-
icon:
|
|
3907
|
+
icon: import_core_free_icons22.Loading03Icon,
|
|
3786
3908
|
size: 32,
|
|
3787
3909
|
className: "animate-spin text-white"
|
|
3788
3910
|
}
|
|
@@ -3864,10 +3986,10 @@ var MedicalFeatureStatsBlock = ({
|
|
|
3864
3986
|
var import_react66 = __toESM(require("react"));
|
|
3865
3987
|
var import_image10 = __toESM(require("next/image"));
|
|
3866
3988
|
var import_react67 = require("@hugeicons/react");
|
|
3867
|
-
var
|
|
3989
|
+
var import_core_free_icons23 = require("@hugeicons/core-free-icons");
|
|
3868
3990
|
var ImageWithLoader = ({ src, alt, className, sizes, priority = false }) => {
|
|
3869
3991
|
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:
|
|
3992
|
+
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
3993
|
import_image10.default,
|
|
3872
3994
|
{
|
|
3873
3995
|
src,
|
|
@@ -3959,7 +4081,7 @@ var ConsultantShowcase = ({
|
|
|
3959
4081
|
var import_react68 = __toESM(require("react"));
|
|
3960
4082
|
var import_image11 = __toESM(require("next/image"));
|
|
3961
4083
|
var import_react69 = require("@hugeicons/react");
|
|
3962
|
-
var
|
|
4084
|
+
var import_core_free_icons24 = require("@hugeicons/core-free-icons");
|
|
3963
4085
|
var ContentGridBlock = ({
|
|
3964
4086
|
header,
|
|
3965
4087
|
leftCard,
|
|
@@ -4032,7 +4154,7 @@ var ManagedProjectsBlock = ({
|
|
|
4032
4154
|
// src/components/UniversalVerificationPage.tsx
|
|
4033
4155
|
var import_react71 = __toESM(require("react"));
|
|
4034
4156
|
var import_react72 = require("@hugeicons/react");
|
|
4035
|
-
var
|
|
4157
|
+
var import_core_free_icons25 = require("@hugeicons/core-free-icons");
|
|
4036
4158
|
var VerificationRow = ({
|
|
4037
4159
|
icon,
|
|
4038
4160
|
title,
|
|
@@ -4050,14 +4172,14 @@ var VerificationRow = ({
|
|
|
4050
4172
|
case "APPROVED":
|
|
4051
4173
|
statusText = "Completed";
|
|
4052
4174
|
statusColor = "text-stone-600";
|
|
4053
|
-
StatusIcon =
|
|
4175
|
+
StatusIcon = import_core_free_icons25.CheckmarkCircle01Icon;
|
|
4054
4176
|
bg = "bg-stone-50";
|
|
4055
4177
|
iconColor = "text-green-500";
|
|
4056
4178
|
break;
|
|
4057
4179
|
case "PENDING":
|
|
4058
4180
|
statusText = "Awaiting Approval";
|
|
4059
4181
|
statusColor = "text-stone-500";
|
|
4060
|
-
StatusIcon =
|
|
4182
|
+
StatusIcon = import_core_free_icons25.Time02Icon;
|
|
4061
4183
|
bg = "bg-stone-50";
|
|
4062
4184
|
iconColor = "text-orange-500";
|
|
4063
4185
|
break;
|
|
@@ -4065,7 +4187,7 @@ var VerificationRow = ({
|
|
|
4065
4187
|
statusText = "Action required to fix issue";
|
|
4066
4188
|
statusColor = "text-stone-500";
|
|
4067
4189
|
bg = "bg-stone-50";
|
|
4068
|
-
StatusIcon =
|
|
4190
|
+
StatusIcon = import_core_free_icons25.InformationCircleIcon;
|
|
4069
4191
|
iconColor = "text-[#d97757]";
|
|
4070
4192
|
break;
|
|
4071
4193
|
case "ACTION_REQUIRED":
|
|
@@ -4073,7 +4195,7 @@ var VerificationRow = ({
|
|
|
4073
4195
|
statusText = "Start verification";
|
|
4074
4196
|
statusColor = "text-stone-500";
|
|
4075
4197
|
bg = "bg-stone-50";
|
|
4076
|
-
StatusIcon =
|
|
4198
|
+
StatusIcon = import_core_free_icons25.InformationCircleIcon;
|
|
4077
4199
|
iconColor = "text-stone-400";
|
|
4078
4200
|
break;
|
|
4079
4201
|
}
|
|
@@ -4086,7 +4208,7 @@ var VerificationRow = ({
|
|
|
4086
4208
|
},
|
|
4087
4209
|
/* @__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
4210
|
/* @__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:
|
|
4211
|
+
/* @__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
4212
|
);
|
|
4091
4213
|
};
|
|
4092
4214
|
var UniversalVerificationPage = ({
|
|
@@ -4105,12 +4227,12 @@ var UniversalVerificationPage = ({
|
|
|
4105
4227
|
onClick: onBack,
|
|
4106
4228
|
className: "flex items-center gap-2 text-stone-500 hover:text-black transition-colors text-sm outline-none"
|
|
4107
4229
|
},
|
|
4108
|
-
/* @__PURE__ */ import_react71.default.createElement(import_react72.HugeiconsIcon, { icon:
|
|
4230
|
+
/* @__PURE__ */ import_react71.default.createElement(import_react72.HugeiconsIcon, { icon: import_core_free_icons25.ArrowLeft01Icon, size: 16 }),
|
|
4109
4231
|
" Back"
|
|
4110
4232
|
)), /* @__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
4233
|
VerificationRow,
|
|
4112
4234
|
{
|
|
4113
|
-
icon:
|
|
4235
|
+
icon: import_core_free_icons25.Mail01Icon,
|
|
4114
4236
|
title: "Email Verification",
|
|
4115
4237
|
status: emailStatus,
|
|
4116
4238
|
isLoading: activeLoadingType === "EMAIL",
|
|
@@ -4119,7 +4241,7 @@ var UniversalVerificationPage = ({
|
|
|
4119
4241
|
), /* @__PURE__ */ import_react71.default.createElement(
|
|
4120
4242
|
VerificationRow,
|
|
4121
4243
|
{
|
|
4122
|
-
icon:
|
|
4244
|
+
icon: import_core_free_icons25.SmartPhone01Icon,
|
|
4123
4245
|
title: "Phone Verification",
|
|
4124
4246
|
status: phoneStatus,
|
|
4125
4247
|
isLoading: activeLoadingType === "PHONE",
|
|
@@ -4128,7 +4250,7 @@ var UniversalVerificationPage = ({
|
|
|
4128
4250
|
), /* @__PURE__ */ import_react71.default.createElement(
|
|
4129
4251
|
VerificationRow,
|
|
4130
4252
|
{
|
|
4131
|
-
icon:
|
|
4253
|
+
icon: import_core_free_icons25.UserIcon,
|
|
4132
4254
|
title: "Identity Verification",
|
|
4133
4255
|
status: identityStatus,
|
|
4134
4256
|
isLoading: activeLoadingType === "IDENTITY",
|
|
@@ -4145,17 +4267,17 @@ var import_react_hot_toast10 = __toESM(require("react-hot-toast"));
|
|
|
4145
4267
|
var import_react_confetti = __toESM(require("react-confetti"));
|
|
4146
4268
|
var import_react_use = require("react-use");
|
|
4147
4269
|
var import_react74 = require("@hugeicons/react");
|
|
4148
|
-
var
|
|
4270
|
+
var import_core_free_icons26 = require("@hugeicons/core-free-icons");
|
|
4149
4271
|
var formatWeb3Name = (name) => {
|
|
4150
4272
|
if (!name) return "";
|
|
4151
4273
|
return name.toLowerCase().replace(/\b\w/g, (c) => c.toUpperCase());
|
|
4152
4274
|
};
|
|
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:
|
|
4275
|
+
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
4276
|
var AvatarLogo = ({ src, alt, name, sizeClass = "w-12 h-12" }) => {
|
|
4155
4277
|
const [isLoaded, setIsLoaded] = (0, import_react73.useState)(false);
|
|
4156
4278
|
const fallbackUrl = `/api/avatar/?name=${encodeURIComponent(name || " ")}&background=ffffff&color=000000&size=100&font-size=0.33`;
|
|
4157
4279
|
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:
|
|
4280
|
+
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
4281
|
};
|
|
4160
4282
|
var UniversalRewardPage = ({
|
|
4161
4283
|
leaderboardToday,
|
|
@@ -4205,7 +4327,7 @@ var UniversalRewardPage = ({
|
|
|
4205
4327
|
setIsClaiming(false);
|
|
4206
4328
|
}
|
|
4207
4329
|
};
|
|
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:
|
|
4330
|
+
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
4331
|
const isActive = activeTabIndex === idx;
|
|
4210
4332
|
return /* @__PURE__ */ import_react73.default.createElement(
|
|
4211
4333
|
"button",
|
|
@@ -4225,7 +4347,7 @@ var UniversalRewardPage = ({
|
|
|
4225
4347
|
onClick: () => setSelectedReward(reward),
|
|
4226
4348
|
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
4349
|
},
|
|
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:
|
|
4350
|
+
/* @__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
4351
|
/* @__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
4352
|
);
|
|
4231
4353
|
}))), 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 +4374,8 @@ var UniversalRewardPage = ({
|
|
|
4252
4374
|
var import_react75 = __toESM(require("react"));
|
|
4253
4375
|
var import_react_hot_toast11 = __toESM(require("react-hot-toast"));
|
|
4254
4376
|
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:
|
|
4377
|
+
var import_core_free_icons27 = require("@hugeicons/core-free-icons");
|
|
4378
|
+
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
4379
|
var formatWeb3Name2 = (name) => {
|
|
4258
4380
|
if (!name) return "";
|
|
4259
4381
|
return name.toLowerCase().replace(/\b\w/g, (c) => c.toUpperCase());
|
|
@@ -4288,16 +4410,16 @@ var UniversalReferralPage = ({
|
|
|
4288
4410
|
const [isLoaded, setIsLoaded] = (0, import_react75.useState)(false);
|
|
4289
4411
|
const fallbackUrl = `/api/avatar/?name=${encodeURIComponent(name || " ")}&background=e0e0e0&color=000000&size=100&font-size=0.33`;
|
|
4290
4412
|
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:
|
|
4413
|
+
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
4414
|
};
|
|
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:
|
|
4415
|
+
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
4416
|
"button",
|
|
4295
4417
|
{
|
|
4296
4418
|
onClick: handleCopyCode,
|
|
4297
4419
|
disabled: isLoading || !referralCode,
|
|
4298
4420
|
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
4421
|
},
|
|
4300
|
-
/* @__PURE__ */ import_react75.default.createElement(import_react76.HugeiconsIcon, { icon:
|
|
4422
|
+
/* @__PURE__ */ import_react75.default.createElement(import_react76.HugeiconsIcon, { icon: import_core_free_icons27.Copy01Icon, size: 18 })
|
|
4301
4423
|
)), /* @__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
4424
|
"div",
|
|
4303
4425
|
{
|
|
@@ -4320,7 +4442,7 @@ var UniversalReferralPage = ({
|
|
|
4320
4442
|
disabled: currentPage <= 1 || isLoading,
|
|
4321
4443
|
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
4444
|
},
|
|
4323
|
-
/* @__PURE__ */ import_react75.default.createElement(import_react76.HugeiconsIcon, { icon:
|
|
4445
|
+
/* @__PURE__ */ import_react75.default.createElement(import_react76.HugeiconsIcon, { icon: import_core_free_icons27.ArrowLeft01Icon, size: 14 })
|
|
4324
4446
|
), /* @__PURE__ */ import_react75.default.createElement(
|
|
4325
4447
|
"button",
|
|
4326
4448
|
{
|
|
@@ -4328,7 +4450,7 @@ var UniversalReferralPage = ({
|
|
|
4328
4450
|
disabled: currentPage >= totalPages || isLoading || totalPages === 0,
|
|
4329
4451
|
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
4452
|
},
|
|
4331
|
-
/* @__PURE__ */ import_react75.default.createElement(import_react76.HugeiconsIcon, { icon:
|
|
4453
|
+
/* @__PURE__ */ import_react75.default.createElement(import_react76.HugeiconsIcon, { icon: import_core_free_icons27.ArrowRight01Icon, size: 14 })
|
|
4332
4454
|
)))))));
|
|
4333
4455
|
};
|
|
4334
4456
|
|
|
@@ -4337,7 +4459,7 @@ var import_react77 = __toESM(require("react"));
|
|
|
4337
4459
|
var import_react_confetti2 = __toESM(require("react-confetti"));
|
|
4338
4460
|
var import_react_use2 = require("react-use");
|
|
4339
4461
|
var import_react78 = require("@hugeicons/react");
|
|
4340
|
-
var
|
|
4462
|
+
var import_core_free_icons28 = require("@hugeicons/core-free-icons");
|
|
4341
4463
|
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
4464
|
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
4465
|
var formatTierName = (name) => {
|
|
@@ -4426,9 +4548,9 @@ var UniversalCardActionPage = ({
|
|
|
4426
4548
|
onClick: onBackHandler,
|
|
4427
4549
|
className: "flex items-center gap-2 text-stone-500 hover:text-black transition-colors text-sm outline-none"
|
|
4428
4550
|
},
|
|
4429
|
-
/* @__PURE__ */ import_react77.default.createElement(import_react78.HugeiconsIcon, { icon:
|
|
4551
|
+
/* @__PURE__ */ import_react77.default.createElement(import_react78.HugeiconsIcon, { icon: import_core_free_icons28.ArrowLeft01Icon, size: 16 }),
|
|
4430
4552
|
" 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:
|
|
4553
|
+
)), /* @__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
4554
|
const isCurrent = tier.tierName === currentTier;
|
|
4433
4555
|
const isCardDisabled = hasPreordered && !isCurrent;
|
|
4434
4556
|
const isHighlighted = hasPreordered && isCurrent;
|
|
@@ -4450,7 +4572,7 @@ var UniversalCardActionPage = ({
|
|
|
4450
4572
|
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
4573
|
}
|
|
4452
4574
|
),
|
|
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:
|
|
4575
|
+
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
4576
|
/* @__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
4577
|
/* @__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
4578
|
ThreeDActionButton,
|
|
@@ -4490,7 +4612,7 @@ var UniversalCardActionPage = ({
|
|
|
4490
4612
|
onClick: () => setSelectedTier(null),
|
|
4491
4613
|
className: "text-stone-400 hover:text-black transition-colors outline-none disabled:opacity-50"
|
|
4492
4614
|
},
|
|
4493
|
-
/* @__PURE__ */ import_react77.default.createElement(import_react78.HugeiconsIcon, { icon:
|
|
4615
|
+
/* @__PURE__ */ import_react77.default.createElement(import_react78.HugeiconsIcon, { icon: import_core_free_icons28.CancelCircleIcon, size: 18 })
|
|
4494
4616
|
)), /* @__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
4617
|
ThreeDActionButton,
|
|
4496
4618
|
{
|
|
@@ -4525,7 +4647,7 @@ var UniversalCardActionPage = ({
|
|
|
4525
4647
|
// src/components/PinDialerBottomSheet.tsx
|
|
4526
4648
|
var import_react79 = __toESM(require("react"));
|
|
4527
4649
|
var import_react80 = require("@hugeicons/react");
|
|
4528
|
-
var
|
|
4650
|
+
var import_core_free_icons29 = require("@hugeicons/core-free-icons");
|
|
4529
4651
|
var PinDialerBottomSheet = ({
|
|
4530
4652
|
isOpen,
|
|
4531
4653
|
title = "Action Required",
|
|
@@ -4560,7 +4682,7 @@ var PinDialerBottomSheet = ({
|
|
|
4560
4682
|
disabled: isVerifying,
|
|
4561
4683
|
className: "text-stone-400 hover:text-black transition-colors outline-none disabled:opacity-50"
|
|
4562
4684
|
},
|
|
4563
|
-
/* @__PURE__ */ import_react79.default.createElement(import_react80.HugeiconsIcon, { icon:
|
|
4685
|
+
/* @__PURE__ */ import_react79.default.createElement(import_react80.HugeiconsIcon, { icon: import_core_free_icons29.CancelCircleIcon, size: 20 })
|
|
4564
4686
|
)), /* @__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
4687
|
TextInput,
|
|
4566
4688
|
{
|
|
@@ -4588,7 +4710,7 @@ var PinDialerBottomSheet = ({
|
|
|
4588
4710
|
var import_react81 = __toESM(require("react"));
|
|
4589
4711
|
var import_react_hot_toast12 = __toESM(require("react-hot-toast"));
|
|
4590
4712
|
var import_react82 = require("@hugeicons/react");
|
|
4591
|
-
var
|
|
4713
|
+
var import_core_free_icons30 = require("@hugeicons/core-free-icons");
|
|
4592
4714
|
var CircularLogo = ({ src, alt, fallbackText }) => {
|
|
4593
4715
|
const [isLoaded, setIsLoaded] = (0, import_react81.useState)(false);
|
|
4594
4716
|
const [hasError, setHasError] = (0, import_react81.useState)(false);
|
|
@@ -4764,7 +4886,7 @@ var UniversalBuyCryptoPage = ({
|
|
|
4764
4886
|
}
|
|
4765
4887
|
};
|
|
4766
4888
|
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:
|
|
4889
|
+
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
4890
|
"input",
|
|
4769
4891
|
{
|
|
4770
4892
|
type: "text",
|
|
@@ -4841,7 +4963,7 @@ var UniversalBuyCryptoPage = ({
|
|
|
4841
4963
|
},
|
|
4842
4964
|
/* @__PURE__ */ import_react81.default.createElement(CircularLogo, { src: c.logoUrl, alt: c.name, fallbackText: c.code }),
|
|
4843
4965
|
/* @__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:
|
|
4966
|
+
isSelected && /* @__PURE__ */ import_react81.default.createElement(import_react82.HugeiconsIcon, { icon: import_core_free_icons30.CheckmarkCircle02Icon, size: 16, className: "text-black" })
|
|
4845
4967
|
);
|
|
4846
4968
|
}))))), 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
4969
|
const isSelected = net.id === selectedNetwork.id;
|
|
@@ -4857,7 +4979,7 @@ var UniversalBuyCryptoPage = ({
|
|
|
4857
4979
|
},
|
|
4858
4980
|
/* @__PURE__ */ import_react81.default.createElement(CircularLogo, { src: net.logoUrl || selectedCrypto.logoUrl, alt: net.name, fallbackText: net.symbol }),
|
|
4859
4981
|
/* @__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:
|
|
4982
|
+
isSelected && /* @__PURE__ */ import_react81.default.createElement(import_react82.HugeiconsIcon, { icon: import_core_free_icons30.CheckmarkCircle02Icon, size: 16, className: "text-black" })
|
|
4861
4983
|
);
|
|
4862
4984
|
}))))));
|
|
4863
4985
|
};
|
|
@@ -4865,7 +4987,7 @@ var UniversalBuyCryptoPage = ({
|
|
|
4865
4987
|
// src/components/UniversalHuddlesPage.tsx
|
|
4866
4988
|
var import_react83 = __toESM(require("react"));
|
|
4867
4989
|
var import_react84 = require("@hugeicons/react");
|
|
4868
|
-
var
|
|
4990
|
+
var import_core_free_icons31 = require("@hugeicons/core-free-icons");
|
|
4869
4991
|
var HuddleAvatar = ({ timeString, status, sizeClass = "w-10 h-10" }) => {
|
|
4870
4992
|
const getStatusColor = () => {
|
|
4871
4993
|
switch (status?.toUpperCase()) {
|
|
@@ -4890,9 +5012,9 @@ var HuddleAvatar = ({ timeString, status, sizeClass = "w-10 h-10" }) => {
|
|
|
4890
5012
|
month = parts[1].substring(0, 3).toUpperCase();
|
|
4891
5013
|
}
|
|
4892
5014
|
}
|
|
4893
|
-
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-
|
|
5015
|
+
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
5016
|
};
|
|
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:
|
|
5017
|
+
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
5018
|
var UniversalHuddlesPage = ({
|
|
4897
5019
|
headerTitle,
|
|
4898
5020
|
headerDescription,
|
|
@@ -4920,7 +5042,7 @@ var UniversalHuddlesPage = ({
|
|
|
4920
5042
|
},
|
|
4921
5043
|
/* @__PURE__ */ import_react83.default.createElement(HuddleAvatar, { timeString: huddle.timeString, status: huddle.status }),
|
|
4922
5044
|
/* @__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:
|
|
5045
|
+
/* @__PURE__ */ import_react83.default.createElement(import_react84.HugeiconsIcon, { icon: import_core_free_icons31.ArrowRight01Icon, size: 14, className: "shrink-0 text-stone-400" })
|
|
4924
5046
|
))), /* @__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
5047
|
"button",
|
|
4926
5048
|
{
|
|
@@ -4928,7 +5050,7 @@ var UniversalHuddlesPage = ({
|
|
|
4928
5050
|
disabled: currentPage <= 1 || isLoading,
|
|
4929
5051
|
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
5052
|
},
|
|
4931
|
-
/* @__PURE__ */ import_react83.default.createElement(import_react84.HugeiconsIcon, { icon:
|
|
5053
|
+
/* @__PURE__ */ import_react83.default.createElement(import_react84.HugeiconsIcon, { icon: import_core_free_icons31.ArrowLeft01Icon, size: 14 })
|
|
4932
5054
|
), /* @__PURE__ */ import_react83.default.createElement(
|
|
4933
5055
|
"button",
|
|
4934
5056
|
{
|
|
@@ -4936,7 +5058,7 @@ var UniversalHuddlesPage = ({
|
|
|
4936
5058
|
disabled: currentPage >= totalPages || isLoading || totalPages === 0,
|
|
4937
5059
|
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
5060
|
},
|
|
4939
|
-
/* @__PURE__ */ import_react83.default.createElement(import_react84.HugeiconsIcon, { icon:
|
|
5061
|
+
/* @__PURE__ */ import_react83.default.createElement(import_react84.HugeiconsIcon, { icon: import_core_free_icons31.ArrowRight01Icon, size: 14 })
|
|
4940
5062
|
)))))));
|
|
4941
5063
|
};
|
|
4942
5064
|
|
|
@@ -4944,7 +5066,7 @@ var UniversalHuddlesPage = ({
|
|
|
4944
5066
|
var import_react85 = __toESM(require("react"));
|
|
4945
5067
|
var import_react86 = require("@hugeicons/react");
|
|
4946
5068
|
var import_react_hot_toast13 = __toESM(require("react-hot-toast"));
|
|
4947
|
-
var
|
|
5069
|
+
var import_core_free_icons32 = require("@hugeicons/core-free-icons");
|
|
4948
5070
|
var MemberAvatar2 = ({ src, status }) => {
|
|
4949
5071
|
const [loaded, setLoaded] = (0, import_react85.useState)(false);
|
|
4950
5072
|
const [error, setError] = (0, import_react85.useState)(false);
|
|
@@ -4964,7 +5086,7 @@ var MemberAvatar2 = ({ src, status }) => {
|
|
|
4964
5086
|
return "bg-stone-200";
|
|
4965
5087
|
}
|
|
4966
5088
|
};
|
|
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:
|
|
5089
|
+
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
5090
|
"img",
|
|
4969
5091
|
{
|
|
4970
5092
|
src: finalSrc,
|
|
@@ -4975,7 +5097,7 @@ var MemberAvatar2 = ({ src, status }) => {
|
|
|
4975
5097
|
}
|
|
4976
5098
|
)), /* @__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
5099
|
};
|
|
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:
|
|
5100
|
+
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
5101
|
var UniversalMembersPage = ({
|
|
4980
5102
|
headerTitle,
|
|
4981
5103
|
headerDescription,
|
|
@@ -5075,7 +5197,7 @@ var UniversalMembersPage = ({
|
|
|
5075
5197
|
onClose: () => setMemberToRemove(null),
|
|
5076
5198
|
onConfirm: handleConfirmRemove
|
|
5077
5199
|
}
|
|
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:
|
|
5200
|
+
), !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
5201
|
"input",
|
|
5080
5202
|
{
|
|
5081
5203
|
type: "text",
|
|
@@ -5090,14 +5212,14 @@ var UniversalMembersPage = ({
|
|
|
5090
5212
|
onClick: () => setIsStatusModalOpen(true),
|
|
5091
5213
|
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
5214
|
},
|
|
5093
|
-
/* @__PURE__ */ import_react85.default.createElement(import_react86.HugeiconsIcon, { icon:
|
|
5215
|
+
/* @__PURE__ */ import_react85.default.createElement(import_react86.HugeiconsIcon, { icon: import_core_free_icons32.SearchList02Icon, size: 16 })
|
|
5094
5216
|
), /* @__PURE__ */ import_react85.default.createElement(
|
|
5095
5217
|
"button",
|
|
5096
5218
|
{
|
|
5097
5219
|
onClick: () => setIsRoleModalOpen(true),
|
|
5098
5220
|
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
5221
|
},
|
|
5100
|
-
/* @__PURE__ */ import_react85.default.createElement(import_react86.HugeiconsIcon, { icon:
|
|
5222
|
+
/* @__PURE__ */ import_react85.default.createElement(import_react86.HugeiconsIcon, { icon: import_core_free_icons32.ListSettingIcon, size: 16 })
|
|
5101
5223
|
))), /* @__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
5224
|
"button",
|
|
5103
5225
|
{
|
|
@@ -5165,7 +5287,7 @@ var UniversalMembersPage = ({
|
|
|
5165
5287
|
disabled: currentPage <= 1 || isListLoading,
|
|
5166
5288
|
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
5289
|
},
|
|
5168
|
-
/* @__PURE__ */ import_react85.default.createElement(import_react86.HugeiconsIcon, { icon:
|
|
5290
|
+
/* @__PURE__ */ import_react85.default.createElement(import_react86.HugeiconsIcon, { icon: import_core_free_icons32.ArrowLeft01Icon, size: 14 })
|
|
5169
5291
|
), /* @__PURE__ */ import_react85.default.createElement(
|
|
5170
5292
|
"button",
|
|
5171
5293
|
{
|
|
@@ -5173,7 +5295,7 @@ var UniversalMembersPage = ({
|
|
|
5173
5295
|
disabled: currentPage >= totalPages || isListLoading || totalPages === 0,
|
|
5174
5296
|
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
5297
|
},
|
|
5176
|
-
/* @__PURE__ */ import_react85.default.createElement(import_react86.HugeiconsIcon, { icon:
|
|
5298
|
+
/* @__PURE__ */ import_react85.default.createElement(import_react86.HugeiconsIcon, { icon: import_core_free_icons32.ArrowRight01Icon, size: 14 })
|
|
5177
5299
|
)))))), 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
5300
|
"button",
|
|
5179
5301
|
{
|
|
@@ -5204,13 +5326,13 @@ var import_react87 = __toESM(require("react"));
|
|
|
5204
5326
|
var import_navigation6 = require("next/navigation");
|
|
5205
5327
|
var import_react88 = require("@hugeicons/react");
|
|
5206
5328
|
var import_react_hot_toast14 = __toESM(require("react-hot-toast"));
|
|
5207
|
-
var
|
|
5329
|
+
var import_core_free_icons33 = require("@hugeicons/core-free-icons");
|
|
5208
5330
|
var OrgAvatar = ({ src, sizeClass = "w-10 h-10" }) => {
|
|
5209
5331
|
const [loaded, setLoaded] = (0, import_react87.useState)(false);
|
|
5210
5332
|
const [error, setError] = (0, import_react87.useState)(false);
|
|
5211
5333
|
const defaultAvatar = "https://storage.googleapis.com/retina-cloud-v2/assets/images/office_a.avif";
|
|
5212
5334
|
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:
|
|
5335
|
+
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
5336
|
"img",
|
|
5215
5337
|
{
|
|
5216
5338
|
src: finalSrc,
|
|
@@ -5286,7 +5408,7 @@ var UniversalHome2 = ({
|
|
|
5286
5408
|
onClose: () => setShowLogoutConfirm(false),
|
|
5287
5409
|
onConfirm: confirmLogout
|
|
5288
5410
|
}
|
|
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:
|
|
5411
|
+
), /* @__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
5412
|
"img",
|
|
5291
5413
|
{
|
|
5292
5414
|
src: finalAvatarSrc,
|
|
@@ -5300,7 +5422,7 @@ var UniversalHome2 = ({
|
|
|
5300
5422
|
onClick: () => router.push("/app/ai"),
|
|
5301
5423
|
className: "relative w-10 h-10 flex items-center justify-center rounded-full bg-white outline-none hover:bg-stone-50 transition-colors"
|
|
5302
5424
|
},
|
|
5303
|
-
/* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon:
|
|
5425
|
+
/* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon: import_core_free_icons33.Robot01Icon, size: 20, className: "text-black" })
|
|
5304
5426
|
), /* @__PURE__ */ import_react87.default.createElement(
|
|
5305
5427
|
"button",
|
|
5306
5428
|
{
|
|
@@ -5310,7 +5432,7 @@ var UniversalHome2 = ({
|
|
|
5310
5432
|
},
|
|
5311
5433
|
className: "relative w-10 h-10 flex items-center justify-center rounded-full bg-white outline-none hover:bg-stone-50 transition-colors"
|
|
5312
5434
|
},
|
|
5313
|
-
/* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon:
|
|
5435
|
+
/* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon: import_core_free_icons33.Notification01Icon, size: 20, className: "text-black" }),
|
|
5314
5436
|
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
5437
|
))), /* @__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
5438
|
"div",
|
|
@@ -5318,7 +5440,7 @@ var UniversalHome2 = ({
|
|
|
5318
5440
|
onClick: createHuddleAction?.onClick,
|
|
5319
5441
|
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
5442
|
},
|
|
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:
|
|
5443
|
+
/* @__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
5444
|
/* @__PURE__ */ import_react87.default.createElement(
|
|
5323
5445
|
"img",
|
|
5324
5446
|
{
|
|
@@ -5333,7 +5455,7 @@ var UniversalHome2 = ({
|
|
|
5333
5455
|
onClick: joinHuddleAction?.onClick,
|
|
5334
5456
|
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
5457
|
},
|
|
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:
|
|
5458
|
+
/* @__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
5459
|
/* @__PURE__ */ import_react87.default.createElement(
|
|
5338
5460
|
"img",
|
|
5339
5461
|
{
|
|
@@ -5347,7 +5469,7 @@ var UniversalHome2 = ({
|
|
|
5347
5469
|
{
|
|
5348
5470
|
...huddlesProps
|
|
5349
5471
|
}
|
|
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:
|
|
5472
|
+
)), 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
5473
|
"button",
|
|
5352
5474
|
{
|
|
5353
5475
|
key: org.id,
|
|
@@ -5369,16 +5491,16 @@ var UniversalHome2 = ({
|
|
|
5369
5491
|
},
|
|
5370
5492
|
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
5493
|
},
|
|
5372
|
-
/* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon:
|
|
5494
|
+
/* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon: import_core_free_icons33.Logout01Icon, size: 15 }),
|
|
5373
5495
|
"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:
|
|
5496
|
+
)))), 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
5497
|
"button",
|
|
5376
5498
|
{
|
|
5377
5499
|
onClick: () => handleResolve("ACCEPTED"),
|
|
5378
5500
|
disabled: isResolving || selectedNotif.meta_json?.completed,
|
|
5379
5501
|
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
5502
|
},
|
|
5381
|
-
isResolving ? /* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon:
|
|
5503
|
+
isResolving ? /* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon: import_core_free_icons33.Loading03Icon, className: "animate-spin", size: 16 }) : "Accept"
|
|
5382
5504
|
), /* @__PURE__ */ import_react87.default.createElement(
|
|
5383
5505
|
"button",
|
|
5384
5506
|
{
|
|
@@ -5406,7 +5528,7 @@ var UniversalHome2 = ({
|
|
|
5406
5528
|
onClick: () => onNotificationPageChange?.(notificationPage - 1),
|
|
5407
5529
|
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
5530
|
},
|
|
5409
|
-
/* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon:
|
|
5531
|
+
/* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon: import_core_free_icons33.ArrowLeft01Icon, size: 12 })
|
|
5410
5532
|
), /* @__PURE__ */ import_react87.default.createElement(
|
|
5411
5533
|
"button",
|
|
5412
5534
|
{
|
|
@@ -5414,7 +5536,7 @@ var UniversalHome2 = ({
|
|
|
5414
5536
|
onClick: () => onNotificationPageChange?.(notificationPage + 1),
|
|
5415
5537
|
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
5538
|
},
|
|
5417
|
-
/* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon:
|
|
5539
|
+
/* @__PURE__ */ import_react87.default.createElement(import_react88.HugeiconsIcon, { icon: import_core_free_icons33.ArrowRight01Icon, size: 12 })
|
|
5418
5540
|
))))));
|
|
5419
5541
|
};
|
|
5420
5542
|
|
|
@@ -5422,7 +5544,7 @@ var UniversalHome2 = ({
|
|
|
5422
5544
|
var import_react89 = __toESM(require("react"));
|
|
5423
5545
|
var import_react_hot_toast15 = __toESM(require("react-hot-toast"));
|
|
5424
5546
|
var import_react90 = require("@hugeicons/react");
|
|
5425
|
-
var
|
|
5547
|
+
var import_core_free_icons34 = require("@hugeicons/core-free-icons");
|
|
5426
5548
|
var MemberAvatar3 = ({ src, status, sizeClass = "w-10 h-10" }) => {
|
|
5427
5549
|
const [loaded, setLoaded] = (0, import_react89.useState)(false);
|
|
5428
5550
|
const [error, setError] = (0, import_react89.useState)(false);
|
|
@@ -5442,14 +5564,14 @@ var MemberAvatar3 = ({ src, status, sizeClass = "w-10 h-10" }) => {
|
|
|
5442
5564
|
return "bg-stone-200";
|
|
5443
5565
|
}
|
|
5444
5566
|
};
|
|
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:
|
|
5567
|
+
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
5568
|
};
|
|
5447
5569
|
var OrgAvatar2 = ({ src, sizeClass = "w-10 h-10" }) => {
|
|
5448
5570
|
const [loaded, setLoaded] = (0, import_react89.useState)(false);
|
|
5449
5571
|
const [error, setError] = (0, import_react89.useState)(false);
|
|
5450
5572
|
const defaultAvatar = "https://storage.googleapis.com/retina-cloud-v2/assets/images/office_a.avif";
|
|
5451
5573
|
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:
|
|
5574
|
+
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
5575
|
"img",
|
|
5454
5576
|
{
|
|
5455
5577
|
src: finalSrc,
|
|
@@ -5460,7 +5582,7 @@ var OrgAvatar2 = ({ src, sizeClass = "w-10 h-10" }) => {
|
|
|
5460
5582
|
}
|
|
5461
5583
|
)));
|
|
5462
5584
|
};
|
|
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:
|
|
5585
|
+
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
5586
|
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
5587
|
var UniversalSettings = ({
|
|
5466
5588
|
accountType,
|
|
@@ -5728,7 +5850,7 @@ var UniversalSettings = ({
|
|
|
5728
5850
|
const isOrgSaveDisabled = isSavingOrg || !canManage || isCheckingSlug || !hasOrgChanges || orgName.length < 3 || orgSlug.length < 3 || orgSlug !== initialOrgSlug && slugAvailable === false;
|
|
5729
5851
|
const hasProfileChanges = `${firstName} ${lastName}`.trim() !== initialFullName || jobTitle !== initialJobTitle || description !== initialDescription || avatarUrl !== initialAvatarUrl;
|
|
5730
5852
|
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:
|
|
5853
|
+
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
5854
|
setActiveTab("MEMBERS");
|
|
5733
5855
|
setExpandedId(null);
|
|
5734
5856
|
setIsInviteMode(false);
|
|
@@ -5745,16 +5867,16 @@ var UniversalSettings = ({
|
|
|
5745
5867
|
onClose: () => setMemberToRemove(null),
|
|
5746
5868
|
onConfirm: handleConfirmRemove
|
|
5747
5869
|
}
|
|
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:
|
|
5870
|
+
), !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
5871
|
"button",
|
|
5750
5872
|
{
|
|
5751
5873
|
onClick: () => setExpandedId(null),
|
|
5752
5874
|
disabled: isUpdatingRole,
|
|
5753
5875
|
className: "flex items-center gap-2 text-[#d97757] hover:text-[#d97757] transition-colors text-sm outline-none disabled:opacity-50"
|
|
5754
5876
|
},
|
|
5755
|
-
/* @__PURE__ */ import_react89.default.createElement(import_react90.HugeiconsIcon, { icon:
|
|
5877
|
+
/* @__PURE__ */ import_react89.default.createElement(import_react90.HugeiconsIcon, { icon: import_core_free_icons34.ArrowLeft01Icon, size: 16 }),
|
|
5756
5878
|
" 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:
|
|
5879
|
+
)), /* @__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
5880
|
"button",
|
|
5759
5881
|
{
|
|
5760
5882
|
onClick: () => setMemberToRemove(activeExpandedMember),
|
|
@@ -5765,12 +5887,12 @@ var UniversalSettings = ({
|
|
|
5765
5887
|
))))))) : /* @__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
5888
|
setIsInviteMode(false);
|
|
5767
5889
|
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:
|
|
5890
|
+
}, 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
5891
|
setOrgName(initialOrgName || "");
|
|
5770
5892
|
setOrgSlug(initialOrgSlug || "");
|
|
5771
5893
|
setOrgAvatarUrl(initialOrgAvatarUrl || "");
|
|
5772
5894
|
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:
|
|
5895
|
+
}, 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
5896
|
"textarea",
|
|
5775
5897
|
{
|
|
5776
5898
|
value: description,
|
|
@@ -5780,19 +5902,19 @@ var UniversalSettings = ({
|
|
|
5780
5902
|
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
5903
|
maxLength: 300
|
|
5782
5904
|
}
|
|
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:
|
|
5905
|
+
)), /* @__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
5906
|
};
|
|
5785
5907
|
|
|
5786
5908
|
// src/components/UniversalCreateHuddle.tsx
|
|
5787
5909
|
var import_react91 = __toESM(require("react"));
|
|
5788
5910
|
var import_react_hot_toast16 = __toESM(require("react-hot-toast"));
|
|
5789
5911
|
var import_react92 = require("@hugeicons/react");
|
|
5790
|
-
var
|
|
5912
|
+
var import_core_free_icons35 = require("@hugeicons/core-free-icons");
|
|
5791
5913
|
var MemberAvatar4 = ({ src, sizeClass = "w-10 h-10" }) => {
|
|
5792
5914
|
const [loaded, setLoaded] = (0, import_react91.useState)(false);
|
|
5793
5915
|
const [error, setError] = (0, import_react91.useState)(false);
|
|
5794
5916
|
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:
|
|
5917
|
+
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
5918
|
"img",
|
|
5797
5919
|
{
|
|
5798
5920
|
src: error || !src ? defaultAvatar : src,
|
|
@@ -5892,7 +6014,7 @@ var UniversalCreateHuddle = ({
|
|
|
5892
6014
|
setIsSubmitting(false);
|
|
5893
6015
|
}
|
|
5894
6016
|
};
|
|
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:
|
|
6017
|
+
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
6018
|
TextInput,
|
|
5897
6019
|
{
|
|
5898
6020
|
label: "Huddle Subject",
|
|
@@ -5908,7 +6030,7 @@ var UniversalCreateHuddle = ({
|
|
|
5908
6030
|
onClick: () => canManage && !isSubmitting && setCalendarMode("DATE"),
|
|
5909
6031
|
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
6032
|
},
|
|
5911
|
-
/* @__PURE__ */ import_react91.default.createElement(import_react92.HugeiconsIcon, { icon:
|
|
6033
|
+
/* @__PURE__ */ import_react91.default.createElement(import_react92.HugeiconsIcon, { icon: import_core_free_icons35.Calendar01Icon, size: 16, className: "text-stone-400 absolute left-0" }),
|
|
5912
6034
|
/* @__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
6035
|
)), /* @__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
6036
|
"div",
|
|
@@ -5916,7 +6038,7 @@ var UniversalCreateHuddle = ({
|
|
|
5916
6038
|
onClick: () => canManage && !isSubmitting && setCalendarMode("TIME"),
|
|
5917
6039
|
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
6040
|
},
|
|
5919
|
-
/* @__PURE__ */ import_react91.default.createElement(import_react92.HugeiconsIcon, { icon:
|
|
6041
|
+
/* @__PURE__ */ import_react91.default.createElement(import_react92.HugeiconsIcon, { icon: import_core_free_icons35.Clock01Icon, size: 16, className: "text-stone-400 absolute left-0" }),
|
|
5920
6042
|
/* @__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
6043
|
)), /* @__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
6044
|
"div",
|
|
@@ -5924,7 +6046,7 @@ var UniversalCreateHuddle = ({
|
|
|
5924
6046
|
onClick: () => canManage && !isSubmitting && setShowTimezoneModal(true),
|
|
5925
6047
|
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
6048
|
},
|
|
5927
|
-
/* @__PURE__ */ import_react91.default.createElement(import_react92.HugeiconsIcon, { icon:
|
|
6049
|
+
/* @__PURE__ */ import_react91.default.createElement(import_react92.HugeiconsIcon, { icon: import_core_free_icons35.Globe02Icon, size: 16, className: "text-stone-400 absolute left-0" }),
|
|
5928
6050
|
/* @__PURE__ */ import_react91.default.createElement("span", { className: "w-full pl-8 text-sm text-black truncate block" }, timezone)
|
|
5929
6051
|
))), /* @__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
6052
|
"button",
|
|
@@ -5973,7 +6095,7 @@ var UniversalCreateHuddle = ({
|
|
|
5973
6095
|
onSelect: (tz) => setTimezone(tz),
|
|
5974
6096
|
showSearch: true
|
|
5975
6097
|
}
|
|
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:
|
|
6098
|
+
)), 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
6099
|
"input",
|
|
5978
6100
|
{
|
|
5979
6101
|
type: "text",
|
|
@@ -5982,7 +6104,7 @@ var UniversalCreateHuddle = ({
|
|
|
5982
6104
|
onChange: handleSearchInput,
|
|
5983
6105
|
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
6106
|
}
|
|
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:
|
|
6107
|
+
))), /* @__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
6108
|
const isChecked = selectedParticipants.has(member.userId);
|
|
5987
6109
|
return /* @__PURE__ */ import_react91.default.createElement(
|
|
5988
6110
|
"div",
|
|
@@ -5992,7 +6114,7 @@ var UniversalCreateHuddle = ({
|
|
|
5992
6114
|
className: "flex items-center justify-between p-3 rounded-xl cursor-pointer hover:bg-stone-50 transition-colors select-none"
|
|
5993
6115
|
},
|
|
5994
6116
|
/* @__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:
|
|
6117
|
+
/* @__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
6118
|
);
|
|
5997
6119
|
})), /* @__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
6120
|
"button",
|
|
@@ -6001,7 +6123,7 @@ var UniversalCreateHuddle = ({
|
|
|
6001
6123
|
onClick: () => onMembersPageChange(membersCurrentPage - 1),
|
|
6002
6124
|
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
6125
|
},
|
|
6004
|
-
/* @__PURE__ */ import_react91.default.createElement(import_react92.HugeiconsIcon, { icon:
|
|
6126
|
+
/* @__PURE__ */ import_react91.default.createElement(import_react92.HugeiconsIcon, { icon: import_core_free_icons35.ArrowLeft01Icon, size: 12 })
|
|
6005
6127
|
), /* @__PURE__ */ import_react91.default.createElement(
|
|
6006
6128
|
"button",
|
|
6007
6129
|
{
|
|
@@ -6009,7 +6131,7 @@ var UniversalCreateHuddle = ({
|
|
|
6009
6131
|
onClick: () => onMembersPageChange(membersCurrentPage + 1),
|
|
6010
6132
|
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
6133
|
},
|
|
6012
|
-
/* @__PURE__ */ import_react91.default.createElement(import_react92.HugeiconsIcon, { icon:
|
|
6134
|
+
/* @__PURE__ */ import_react91.default.createElement(import_react92.HugeiconsIcon, { icon: import_core_free_icons35.ArrowRight01Icon, size: 12 })
|
|
6013
6135
|
))))));
|
|
6014
6136
|
};
|
|
6015
6137
|
|
|
@@ -6017,7 +6139,7 @@ var UniversalCreateHuddle = ({
|
|
|
6017
6139
|
var import_react93 = __toESM(require("react"));
|
|
6018
6140
|
var import_navigation7 = require("next/navigation");
|
|
6019
6141
|
var import_react94 = require("@hugeicons/react");
|
|
6020
|
-
var
|
|
6142
|
+
var import_core_free_icons36 = require("@hugeicons/core-free-icons");
|
|
6021
6143
|
var MONTHS2 = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
|
|
6022
6144
|
var DAYS_OF_WEEK2 = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"];
|
|
6023
6145
|
var HuddleAvatar2 = ({ timeString, status, sizeClass = "w-10 h-10" }) => {
|
|
@@ -6044,7 +6166,7 @@ var HuddleAvatar2 = ({ timeString, status, sizeClass = "w-10 h-10" }) => {
|
|
|
6044
6166
|
month = parts[1].substring(0, 3).toUpperCase();
|
|
6045
6167
|
}
|
|
6046
6168
|
}
|
|
6047
|
-
return /* @__PURE__ */ import_react93.default.createElement("div", { className: `relative shrink-0 aspect-square ${sizeClass}` }, /* @__PURE__ */ import_react93.default.createElement("div", { className: "w-full h-full aspect-square rounded-lg bg-neutral-
|
|
6169
|
+
return /* @__PURE__ */ import_react93.default.createElement("div", { className: `relative shrink-0 aspect-square ${sizeClass}` }, /* @__PURE__ */ import_react93.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_react93.default.createElement("span", { className: "text-[9px] tracking-wider leading-tight", style: { color: "#d97757" } }, month), /* @__PURE__ */ import_react93.default.createElement("span", { className: "text-sm text-black leading-tight" }, day)), /* @__PURE__ */ import_react93.default.createElement("div", { className: `absolute -bottom-1 -right-1 w-3 h-3 rounded-full border-2 border-white z-10 ${getStatusColor()}` }));
|
|
6048
6170
|
};
|
|
6049
6171
|
var HomeHuddleCalendar = ({
|
|
6050
6172
|
huddles = [],
|
|
@@ -6112,7 +6234,7 @@ var HomeHuddleCalendar = ({
|
|
|
6112
6234
|
(e) => e.dateObj && e.dateObj.toDateString() === selectedDate.toDateString()
|
|
6113
6235
|
);
|
|
6114
6236
|
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:
|
|
6237
|
+
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
6238
|
"input",
|
|
6117
6239
|
{
|
|
6118
6240
|
type: "text",
|
|
@@ -6121,20 +6243,20 @@ var HomeHuddleCalendar = ({
|
|
|
6121
6243
|
onChange: handleSearchInput,
|
|
6122
6244
|
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
6245
|
}
|
|
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:
|
|
6246
|
+
)), /* @__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
6247
|
"button",
|
|
6126
6248
|
{
|
|
6127
6249
|
onClick: handlePrevMonth,
|
|
6128
6250
|
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
6251
|
},
|
|
6130
|
-
/* @__PURE__ */ import_react93.default.createElement(import_react94.HugeiconsIcon, { icon:
|
|
6252
|
+
/* @__PURE__ */ import_react93.default.createElement(import_react94.HugeiconsIcon, { icon: import_core_free_icons36.ArrowLeft01Icon, size: 16, className: "text-black" })
|
|
6131
6253
|
), /* @__PURE__ */ import_react93.default.createElement(
|
|
6132
6254
|
"button",
|
|
6133
6255
|
{
|
|
6134
6256
|
onClick: handleNextMonth,
|
|
6135
6257
|
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
6258
|
},
|
|
6137
|
-
/* @__PURE__ */ import_react93.default.createElement(import_react94.HugeiconsIcon, { icon:
|
|
6259
|
+
/* @__PURE__ */ import_react93.default.createElement(import_react94.HugeiconsIcon, { icon: import_core_free_icons36.ArrowRight01Icon, size: 16, className: "text-black" })
|
|
6138
6260
|
))), /* @__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
6261
|
const day = i + 1;
|
|
6140
6262
|
const thisDate = new Date(viewYear, viewMonth, day);
|
|
@@ -6157,7 +6279,7 @@ var HomeHuddleCalendar = ({
|
|
|
6157
6279
|
dayEventsCount
|
|
6158
6280
|
)
|
|
6159
6281
|
));
|
|
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:
|
|
6282
|
+
}))), /* @__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
6283
|
"div",
|
|
6162
6284
|
{
|
|
6163
6285
|
key: huddle.id,
|
|
@@ -6166,7 +6288,7 @@ var HomeHuddleCalendar = ({
|
|
|
6166
6288
|
},
|
|
6167
6289
|
/* @__PURE__ */ import_react93.default.createElement(HuddleAvatar2, { timeString: huddle.timeString, status: huddle.status }),
|
|
6168
6290
|
/* @__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:
|
|
6291
|
+
/* @__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
6292
|
)))), 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
6293
|
"button",
|
|
6172
6294
|
{
|
|
@@ -6174,7 +6296,7 @@ var HomeHuddleCalendar = ({
|
|
|
6174
6296
|
disabled: currentPage <= 1,
|
|
6175
6297
|
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
6298
|
},
|
|
6177
|
-
/* @__PURE__ */ import_react93.default.createElement(import_react94.HugeiconsIcon, { icon:
|
|
6299
|
+
/* @__PURE__ */ import_react93.default.createElement(import_react94.HugeiconsIcon, { icon: import_core_free_icons36.ArrowLeft01Icon, size: 14 })
|
|
6178
6300
|
), /* @__PURE__ */ import_react93.default.createElement(
|
|
6179
6301
|
"button",
|
|
6180
6302
|
{
|
|
@@ -6182,7 +6304,7 @@ var HomeHuddleCalendar = ({
|
|
|
6182
6304
|
disabled: currentPage >= totalPages || totalPages === 0,
|
|
6183
6305
|
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
6306
|
},
|
|
6185
|
-
/* @__PURE__ */ import_react93.default.createElement(import_react94.HugeiconsIcon, { icon:
|
|
6307
|
+
/* @__PURE__ */ import_react93.default.createElement(import_react94.HugeiconsIcon, { icon: import_core_free_icons36.ArrowRight01Icon, size: 14 })
|
|
6186
6308
|
))), /* @__PURE__ */ import_react93.default.createElement(
|
|
6187
6309
|
ReusableOptions,
|
|
6188
6310
|
{
|