@retinalabsllc/zairusjs 20.1.2 → 20.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +377 -380
- package/dist/index.mjs +88 -91
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1048,7 +1048,7 @@ var MobileNav = ({ items }) => {
|
|
|
1048
1048
|
/* @__PURE__ */ React12.createElement(
|
|
1049
1049
|
"span",
|
|
1050
1050
|
{
|
|
1051
|
-
className: `text-xs tracking-wide transition-colors duration-300 ${isActive ? "text-
|
|
1051
|
+
className: `text-xs tracking-wide transition-colors duration-300 ${isActive ? "text-[#d97757]" : "text-stone-600"}`
|
|
1052
1052
|
},
|
|
1053
1053
|
item.label
|
|
1054
1054
|
)
|
|
@@ -2653,7 +2653,7 @@ var UniversalSidebar = ({
|
|
|
2653
2653
|
key: item.name,
|
|
2654
2654
|
href: item.path,
|
|
2655
2655
|
onClick: (e) => onNavClick ? onNavClick(e, item.path) : void 0,
|
|
2656
|
-
className: `flex items-center justify-center w-12 h-12 mx-auto rounded-full transition-all outline-none group shrink-0 ${isCurrentRoute ? "bg-
|
|
2656
|
+
className: `flex items-center justify-center w-12 h-12 mx-auto rounded-full transition-all outline-none group shrink-0 ${isCurrentRoute ? "bg-[#d9785719] text-[#d97757]" : "text-stone-500 hover:text-black hover:bg-white/50"}`,
|
|
2657
2657
|
title: item.name
|
|
2658
2658
|
},
|
|
2659
2659
|
/* @__PURE__ */ React24.createElement(
|
|
@@ -2669,7 +2669,7 @@ var UniversalSidebar = ({
|
|
|
2669
2669
|
"button",
|
|
2670
2670
|
{
|
|
2671
2671
|
onClick: () => setShowLogoutDialog(true),
|
|
2672
|
-
className: "w-12 h-12 rounded-full flex items-center justify-center text-stone-
|
|
2672
|
+
className: "w-12 h-12 rounded-full flex items-center justify-center text-stone-600 hover:bg-white/50 transition-all outline-none"
|
|
2673
2673
|
},
|
|
2674
2674
|
/* @__PURE__ */ React24.createElement(HugeiconsIcon19, { icon: LogoutCircle02Icon2, size: 20 })
|
|
2675
2675
|
))), showLogoutAction && /* @__PURE__ */ React24.createElement(
|
|
@@ -3655,8 +3655,6 @@ var ManagedNewsletterSplitBlock = ({
|
|
|
3655
3655
|
import React37, { useEffect as useEffect16, useRef as useRef10 } from "react";
|
|
3656
3656
|
import Link8 from "next/link";
|
|
3657
3657
|
import Image8 from "next/image";
|
|
3658
|
-
import { HugeiconsIcon as HugeiconsIcon26 } from "@hugeicons/react";
|
|
3659
|
-
import { ArrowRight01Icon as ArrowRight01Icon9 } from "@hugeicons/core-free-icons";
|
|
3660
3658
|
var useScrollAnimation = () => {
|
|
3661
3659
|
const elementRef = useRef10(null);
|
|
3662
3660
|
useEffect16(() => {
|
|
@@ -3734,10 +3732,9 @@ var PortfolioHero = ({
|
|
|
3734
3732
|
Link8,
|
|
3735
3733
|
{
|
|
3736
3734
|
href: secondaryCtaHref,
|
|
3737
|
-
className: "w-full sm:w-auto inline-flex items-center justify-center gap-3 text-xs tracking-[0.2em] rounded-full px-8 py-2 bg-stone-200 transition-colors text-black hover:bg-stone-50 outline-none"
|
|
3735
|
+
className: "w-full sm:w-auto inline-flex items-center justify-center gap-3 text-xs tracking-[0.2em] rounded-full px-8 py-2.5 bg-stone-200 transition-colors text-black hover:bg-stone-50 outline-none"
|
|
3738
3736
|
},
|
|
3739
|
-
secondaryCtaText
|
|
3740
|
-
/* @__PURE__ */ React37.createElement(HugeiconsIcon26, { icon: ArrowRight01Icon9, size: 16 })
|
|
3737
|
+
secondaryCtaText
|
|
3741
3738
|
))
|
|
3742
3739
|
));
|
|
3743
3740
|
};
|
|
@@ -3745,7 +3742,7 @@ var PortfolioHero = ({
|
|
|
3745
3742
|
// src/components/GifFeatureCard.tsx
|
|
3746
3743
|
import React38, { useState as useState26 } from "react";
|
|
3747
3744
|
import Image9 from "next/image";
|
|
3748
|
-
import { HugeiconsIcon as
|
|
3745
|
+
import { HugeiconsIcon as HugeiconsIcon26 } from "@hugeicons/react";
|
|
3749
3746
|
import { Loading03Icon as Loading03Icon14 } from "@hugeicons/core-free-icons";
|
|
3750
3747
|
var GifFeatureCard = ({
|
|
3751
3748
|
gifSrc,
|
|
@@ -3756,7 +3753,7 @@ var GifFeatureCard = ({
|
|
|
3756
3753
|
}) => {
|
|
3757
3754
|
const [isLoading, setIsLoading] = useState26(true);
|
|
3758
3755
|
return /* @__PURE__ */ React38.createElement("div", { className: `relative w-full bg-black overflow-hidden ${className}` }, isLoading && /* @__PURE__ */ React38.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-20 bg-black" }, /* @__PURE__ */ React38.createElement(
|
|
3759
|
-
|
|
3756
|
+
HugeiconsIcon26,
|
|
3760
3757
|
{
|
|
3761
3758
|
icon: Loading03Icon14,
|
|
3762
3759
|
size: 32,
|
|
@@ -3839,11 +3836,11 @@ var MedicalFeatureStatsBlock = ({
|
|
|
3839
3836
|
// src/components/ConsultantShowcase.tsx
|
|
3840
3837
|
import React40, { useState as useState28 } from "react";
|
|
3841
3838
|
import Image11 from "next/image";
|
|
3842
|
-
import { HugeiconsIcon as
|
|
3839
|
+
import { HugeiconsIcon as HugeiconsIcon27 } from "@hugeicons/react";
|
|
3843
3840
|
import { Loading03Icon as Loading03Icon15 } from "@hugeicons/core-free-icons";
|
|
3844
3841
|
var ImageWithLoader = ({ src, alt, className, sizes, priority = false }) => {
|
|
3845
3842
|
const [isLoading, setIsLoading] = useState28(true);
|
|
3846
|
-
return /* @__PURE__ */ React40.createElement("div", { className: `absolute inset-0 bg-stone-800 ${className}` }, isLoading && /* @__PURE__ */ React40.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__ */ React40.createElement(
|
|
3843
|
+
return /* @__PURE__ */ React40.createElement("div", { className: `absolute inset-0 bg-stone-800 ${className}` }, isLoading && /* @__PURE__ */ React40.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__ */ React40.createElement(HugeiconsIcon27, { icon: Loading03Icon15, size: 24, className: "animate-spin text-white/50" })), /* @__PURE__ */ React40.createElement(
|
|
3847
3844
|
Image11,
|
|
3848
3845
|
{
|
|
3849
3846
|
src,
|
|
@@ -3934,7 +3931,7 @@ var ConsultantShowcase = ({
|
|
|
3934
3931
|
// src/components/ContentGridBlock.tsx
|
|
3935
3932
|
import React41, { useState as useState29 } from "react";
|
|
3936
3933
|
import Image12 from "next/image";
|
|
3937
|
-
import { HugeiconsIcon as
|
|
3934
|
+
import { HugeiconsIcon as HugeiconsIcon28 } from "@hugeicons/react";
|
|
3938
3935
|
import { Loading03Icon as Loading03Icon16 } from "@hugeicons/core-free-icons";
|
|
3939
3936
|
var ContentGridBlock = ({
|
|
3940
3937
|
header,
|
|
@@ -4007,7 +4004,7 @@ var ManagedProjectsBlock = ({
|
|
|
4007
4004
|
|
|
4008
4005
|
// src/components/UniversalVerificationPage.tsx
|
|
4009
4006
|
import React43 from "react";
|
|
4010
|
-
import { HugeiconsIcon as
|
|
4007
|
+
import { HugeiconsIcon as HugeiconsIcon29 } from "@hugeicons/react";
|
|
4011
4008
|
import {
|
|
4012
4009
|
ArrowLeft01Icon as ArrowLeft01Icon10,
|
|
4013
4010
|
Mail01Icon,
|
|
@@ -4069,9 +4066,9 @@ var VerificationRow = ({
|
|
|
4069
4066
|
onClick: isDisabled ? void 0 : onClick,
|
|
4070
4067
|
className: `flex items-center p-4 transition-colors ${!isLast ? "" : ""} ${isDisabled ? "opacity-70 cursor-default" : "cursor-pointer hover:bg-stone-50"}`
|
|
4071
4068
|
},
|
|
4072
|
-
/* @__PURE__ */ React43.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__ */ React43.createElement(
|
|
4069
|
+
/* @__PURE__ */ React43.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__ */ React43.createElement(HugeiconsIcon29, { icon, size: 16, className: "text-black" })),
|
|
4073
4070
|
/* @__PURE__ */ React43.createElement("div", { className: "flex-1 min-w-0" }, /* @__PURE__ */ React43.createElement("p", { className: "text-sm truncate text-black" }, title), /* @__PURE__ */ React43.createElement("p", { className: `text-xs inline-flex items-center ${bg} rounded-full px-2 py-1 ${statusColor} mt-0.5` }, statusText)),
|
|
4074
|
-
/* @__PURE__ */ React43.createElement("div", { className: "shrink-0 ml-2" }, isLoading ? /* @__PURE__ */ React43.createElement(
|
|
4071
|
+
/* @__PURE__ */ React43.createElement("div", { className: "shrink-0 ml-2" }, isLoading ? /* @__PURE__ */ React43.createElement(HugeiconsIcon29, { icon: Loading03Icon17, size: 20, className: "animate-spin text-black" }) : /* @__PURE__ */ React43.createElement(HugeiconsIcon29, { icon: StatusIcon, size: 20, className: iconColor }))
|
|
4075
4072
|
);
|
|
4076
4073
|
};
|
|
4077
4074
|
var UniversalVerificationPage = ({
|
|
@@ -4090,7 +4087,7 @@ var UniversalVerificationPage = ({
|
|
|
4090
4087
|
onClick: onBack,
|
|
4091
4088
|
className: "flex items-center gap-2 text-stone-500 hover:text-black transition-colors text-sm outline-none"
|
|
4092
4089
|
},
|
|
4093
|
-
/* @__PURE__ */ React43.createElement(
|
|
4090
|
+
/* @__PURE__ */ React43.createElement(HugeiconsIcon29, { icon: ArrowLeft01Icon10, size: 16 }),
|
|
4094
4091
|
" Back"
|
|
4095
4092
|
)), /* @__PURE__ */ React43.createElement("div", { className: "w-full flex flex-col gap-4 mb-8" }, /* @__PURE__ */ React43.createElement("div", { className: "w-full bg-white rounded-2xl overflow-hidden" }, /* @__PURE__ */ React43.createElement(
|
|
4096
4093
|
VerificationRow,
|
|
@@ -4129,7 +4126,7 @@ import axios from "axios";
|
|
|
4129
4126
|
import toast9 from "react-hot-toast";
|
|
4130
4127
|
import Confetti from "react-confetti";
|
|
4131
4128
|
import { useWindowSize } from "react-use";
|
|
4132
|
-
import { HugeiconsIcon as
|
|
4129
|
+
import { HugeiconsIcon as HugeiconsIcon30 } from "@hugeicons/react";
|
|
4133
4130
|
import {
|
|
4134
4131
|
GiftIcon,
|
|
4135
4132
|
Loading03Icon as Loading03Icon18,
|
|
@@ -4139,12 +4136,12 @@ var formatWeb3Name = (name) => {
|
|
|
4139
4136
|
if (!name) return "";
|
|
4140
4137
|
return name.toLowerCase().replace(/\b\w/g, (c) => c.toUpperCase());
|
|
4141
4138
|
};
|
|
4142
|
-
var PageSpinner4 = () => /* @__PURE__ */ React44.createElement("div", { className: "flex justify-center items-center py-12 w-full" }, /* @__PURE__ */ React44.createElement(
|
|
4139
|
+
var PageSpinner4 = () => /* @__PURE__ */ React44.createElement("div", { className: "flex justify-center items-center py-12 w-full" }, /* @__PURE__ */ React44.createElement(HugeiconsIcon30, { icon: Loading03Icon18, size: 32, className: "animate-spin mb-4 text-black" }));
|
|
4143
4140
|
var AvatarLogo = ({ src, alt, name, sizeClass = "w-12 h-12" }) => {
|
|
4144
4141
|
const [isLoaded, setIsLoaded] = useState30(false);
|
|
4145
4142
|
const fallbackUrl = `/api/avatar/?name=${encodeURIComponent(name || " ")}&background=ffffff&color=000000&size=100&font-size=0.33`;
|
|
4146
4143
|
const finalSrc = src || fallbackUrl;
|
|
4147
|
-
return /* @__PURE__ */ React44.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__ */ React44.createElement(
|
|
4144
|
+
return /* @__PURE__ */ React44.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__ */ React44.createElement(HugeiconsIcon30, { icon: Loading03Icon18, size: 16, className: "animate-spin text-stone-400 absolute" }), /* @__PURE__ */ React44.createElement("img", { src: finalSrc, alt, onLoad: () => setIsLoaded(true), className: `w-full h-full object-cover transition-opacity duration-300 ${isLoaded ? "opacity-100" : "opacity-0"}` }));
|
|
4148
4145
|
};
|
|
4149
4146
|
var UniversalRewardPage = ({
|
|
4150
4147
|
leaderboardToday,
|
|
@@ -4194,7 +4191,7 @@ var UniversalRewardPage = ({
|
|
|
4194
4191
|
setIsClaiming(false);
|
|
4195
4192
|
}
|
|
4196
4193
|
};
|
|
4197
|
-
return /* @__PURE__ */ React44.createElement("div", null, /* @__PURE__ */ React44.createElement("div", { className: "mb-6 flex max-w-3xl w-full mx-auto items-center px-1" }, /* @__PURE__ */ React44.createElement("button", { onClick: onBackHandler, className: "flex items-center gap-2 text-stone-500 hover:text-black transition-colors text-sm outline-none" }, /* @__PURE__ */ React44.createElement(
|
|
4194
|
+
return /* @__PURE__ */ React44.createElement("div", null, /* @__PURE__ */ React44.createElement("div", { className: "mb-6 flex max-w-3xl w-full mx-auto items-center px-1" }, /* @__PURE__ */ React44.createElement("button", { onClick: onBackHandler, className: "flex items-center gap-2 text-stone-500 hover:text-black transition-colors text-sm outline-none" }, /* @__PURE__ */ React44.createElement(HugeiconsIcon30, { icon: ArrowLeft01Icon11, size: 16 }), " Back")), /* @__PURE__ */ React44.createElement("div", { className: "w-full max-w-3xl mx-auto flex flex-col animate-in fade-in duration-300" }, /* @__PURE__ */ React44.createElement(ManagedToaster, null), showConfetti && /* @__PURE__ */ React44.createElement("div", { className: "fixed inset-0 z-200 pointer-events-none" }, /* @__PURE__ */ React44.createElement(Confetti, { width, height, recycle: false, numberOfPieces: 500, gravity: 0.15 })), isLoading ? /* @__PURE__ */ React44.createElement(PageSpinner4, null) : /* @__PURE__ */ React44.createElement(React44.Fragment, null, /* @__PURE__ */ React44.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__ */ React44.createElement("div", { className: "flex flex-col items-center w-1/3 z-10" }, secondPlace ? /* @__PURE__ */ React44.createElement(React44.Fragment, null, /* @__PURE__ */ React44.createElement("span", { className: "text-black text-xs mb-2 truncate max-w-full px-1" }, formatWeb3Name(secondPlace.profile.web3Name)), /* @__PURE__ */ React44.createElement("div", { className: "relative shrink-0 mb-3" }, /* @__PURE__ */ React44.createElement(AvatarLogo, { src: secondPlace.profile.avatarUrl, alt: secondPlace.profile.username, name: formatWeb3Name(secondPlace.profile.web3Name), sizeClass: "w-14 h-14" }), /* @__PURE__ */ React44.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__ */ React44.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__ */ React44.createElement("span", { className: "text-stone-800/30 text-2xl " }, "2nd"))) : /* @__PURE__ */ React44.createElement("div", { className: "w-full bg-linear-to-t from-stone-200 to-stone-100 rounded-t-xl h-24 mt-auto" })), /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col items-center w-1/3 z-20 -mt-8" }, firstPlace ? /* @__PURE__ */ React44.createElement(React44.Fragment, null, /* @__PURE__ */ React44.createElement("span", { className: "text-black text-xs mb-2 truncate max-w-full px-1" }, formatWeb3Name(firstPlace.profile.web3Name)), /* @__PURE__ */ React44.createElement("div", { className: "relative shrink-0 mb-3" }, /* @__PURE__ */ React44.createElement(AvatarLogo, { src: firstPlace.profile.avatarUrl, alt: firstPlace.profile.username, name: formatWeb3Name(firstPlace.profile.web3Name), sizeClass: "w-17 h-17" }), /* @__PURE__ */ React44.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__ */ React44.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__ */ React44.createElement("span", { className: "text-white/40 text-3xl tracking-widest" }, "1st"))) : /* @__PURE__ */ React44.createElement("div", { className: "w-full bg-linear-to-t from-stone-200 to-stone-100 rounded-t-xl h-32 mt-auto" })), /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col items-center w-1/3 z-10" }, thirdPlace ? /* @__PURE__ */ React44.createElement(React44.Fragment, null, /* @__PURE__ */ React44.createElement("span", { className: "text-black text-xs mb-2 truncate max-w-full px-1" }, formatWeb3Name(thirdPlace.profile.web3Name)), /* @__PURE__ */ React44.createElement("div", { className: "relative shrink-0 mb-3" }, /* @__PURE__ */ React44.createElement(AvatarLogo, { src: thirdPlace.profile.avatarUrl, alt: thirdPlace.profile.username, name: formatWeb3Name(thirdPlace.profile.web3Name), sizeClass: "w-12 h-12" }), /* @__PURE__ */ React44.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__ */ React44.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__ */ React44.createElement("span", { className: "text-stone-800/30 text-xl " }, "3rd"))) : /* @__PURE__ */ React44.createElement("div", { className: "w-full bg-linear-to-t from-stone-200 to-stone-100 rounded-t-xl h-20 mt-auto" }))), /* @__PURE__ */ React44.createElement("div", { className: "flex items-center justify-center mb-6 sm:mb-8 w-full animate-in fade-in duration-300 px-2" }, /* @__PURE__ */ React44.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) => {
|
|
4198
4195
|
const isActive = activeTabIndex === idx;
|
|
4199
4196
|
return /* @__PURE__ */ React44.createElement(
|
|
4200
4197
|
"button",
|
|
@@ -4214,7 +4211,7 @@ var UniversalRewardPage = ({
|
|
|
4214
4211
|
onClick: () => setSelectedReward(reward),
|
|
4215
4212
|
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"
|
|
4216
4213
|
},
|
|
4217
|
-
/* @__PURE__ */ React44.createElement("div", { className: "flex items-center gap-4 min-w-0 flex-1" }, /* @__PURE__ */ React44.createElement("div", { className: "w-10 h-10 shrink-0 rounded-full flex items-center justify-center border border-stone-200 text-black" }, /* @__PURE__ */ React44.createElement(
|
|
4214
|
+
/* @__PURE__ */ React44.createElement("div", { className: "flex items-center gap-4 min-w-0 flex-1" }, /* @__PURE__ */ React44.createElement("div", { className: "w-10 h-10 shrink-0 rounded-full flex items-center justify-center border border-stone-200 text-black" }, /* @__PURE__ */ React44.createElement(HugeiconsIcon30, { icon: GiftIcon, size: 16 })), /* @__PURE__ */ React44.createElement("div", { className: "min-w-0 flex-1 flex flex-col items-start gap-0.5 pr-4" }, /* @__PURE__ */ React44.createElement("p", { className: "text-sm text-black truncate w-full" }, reward.title), /* @__PURE__ */ React44.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))),
|
|
4218
4215
|
/* @__PURE__ */ React44.createElement("div", { className: "shrink-0 flex flex-col items-end gap-1" }, /* @__PURE__ */ React44.createElement("span", { className: "text-sm text-black" }, reward.amount))
|
|
4219
4216
|
);
|
|
4220
4217
|
}))), remainingLeaderboard.length > 0 && /* @__PURE__ */ React44.createElement("div", { className: "bg-white rounded-2xl p-6 " }, /* @__PURE__ */ React44.createElement("h2", { className: "text-black text-lg mb-4 tracking-tight" }, "Leaderboard"), /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col" }, remainingLeaderboard.map((lb) => /* @__PURE__ */ React44.createElement("div", { key: lb.profile.username, className: "flex items-center justify-between py-3 min-w-0" }, /* @__PURE__ */ React44.createElement("div", { className: "flex items-center gap-4 min-w-0 flex-1" }, /* @__PURE__ */ React44.createElement("div", { className: "text-xs text-stone-400 w-4" }, lb.position), /* @__PURE__ */ React44.createElement(AvatarLogo, { src: lb.profile.avatarUrl, alt: lb.profile.username, name: formatWeb3Name(lb.profile.web3Name), sizeClass: "w-9 h-9" }), /* @__PURE__ */ React44.createElement("div", { className: "min-w-0 flex-1 flex flex-col" }, /* @__PURE__ */ React44.createElement("p", { className: "text-sm text-black truncate" }, formatWeb3Name(lb.profile.web3Name)), /* @__PURE__ */ React44.createElement("p", { className: "text-xs text-stone-400 truncate" }, "@", lb.profile.username))), /* @__PURE__ */ React44.createElement("div", { className: "shrink-0 text-sm text-black" }, lb.amount))))))), selectedReward && /* @__PURE__ */ React44.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React44.createElement("div", { className: "absolute inset-0 bg-black/40", onClick: () => !isClaiming && setSelectedReward(null) }), /* @__PURE__ */ React44.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__ */ React44.createElement("div", { className: "flex-1 p-6 flex flex-col items-center text-center mt-2" }, /* @__PURE__ */ React44.createElement("h2", { className: "text-xl text-black mb-2" }, selectedReward.title), /* @__PURE__ */ React44.createElement("p", { className: "text-sm text-stone-500 mb-6 leading-relaxed" }, selectedReward.description), selectedReward.progressText && /* @__PURE__ */ React44.createElement("div", { className: "w-full mb-6" }, /* @__PURE__ */ React44.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__ */ React44.createElement("div", { className: " w-full rounded-xl p-4 mb-8 flex flex-col items-center" }, /* @__PURE__ */ React44.createElement("span", { className: "text-xs tracking-widest text-stone-400 mb-1" }, "Reward Value"), /* @__PURE__ */ React44.createElement("span", { className: "text-3xl text-black " }, selectedReward.amount)), /* @__PURE__ */ React44.createElement("div", { className: "flex flex-col gap-3 w-full" }, /* @__PURE__ */ React44.createElement(
|
|
@@ -4240,14 +4237,14 @@ var UniversalRewardPage = ({
|
|
|
4240
4237
|
// src/components/UniversalReferralPage.tsx
|
|
4241
4238
|
import React45, { useState as useState31 } from "react";
|
|
4242
4239
|
import toast10 from "react-hot-toast";
|
|
4243
|
-
import { HugeiconsIcon as
|
|
4240
|
+
import { HugeiconsIcon as HugeiconsIcon31 } from "@hugeicons/react";
|
|
4244
4241
|
import {
|
|
4245
4242
|
ArrowLeft01Icon as ArrowLeft01Icon12,
|
|
4246
|
-
ArrowRight01Icon as
|
|
4243
|
+
ArrowRight01Icon as ArrowRight01Icon9,
|
|
4247
4244
|
Loading03Icon as Loading03Icon19,
|
|
4248
4245
|
Copy01Icon as Copy01Icon4
|
|
4249
4246
|
} from "@hugeicons/core-free-icons";
|
|
4250
|
-
var PageSpinner5 = () => /* @__PURE__ */ React45.createElement("div", { className: "flex justify-center items-center py-12" }, /* @__PURE__ */ React45.createElement(
|
|
4247
|
+
var PageSpinner5 = () => /* @__PURE__ */ React45.createElement("div", { className: "flex justify-center items-center py-12" }, /* @__PURE__ */ React45.createElement(HugeiconsIcon31, { icon: Loading03Icon19, size: 32, className: "animate-spin mb-4 text-black" }));
|
|
4251
4248
|
var formatWeb3Name2 = (name) => {
|
|
4252
4249
|
if (!name) return "";
|
|
4253
4250
|
return name.toLowerCase().replace(/\b\w/g, (c) => c.toUpperCase());
|
|
@@ -4282,16 +4279,16 @@ var UniversalReferralPage = ({
|
|
|
4282
4279
|
const [isLoaded, setIsLoaded] = useState31(false);
|
|
4283
4280
|
const fallbackUrl = `/api/avatar/?name=${encodeURIComponent(name || " ")}&background=e0e0e0&color=000000&size=100&font-size=0.33`;
|
|
4284
4281
|
const finalSrc = src || fallbackUrl;
|
|
4285
|
-
return /* @__PURE__ */ React45.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__ */ React45.createElement(
|
|
4282
|
+
return /* @__PURE__ */ React45.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__ */ React45.createElement(HugeiconsIcon31, { icon: Loading03Icon19, size: 16, className: "animate-spin text-stone-400 absolute" }), /* @__PURE__ */ React45.createElement("img", { src: finalSrc, alt, onLoad: () => setIsLoaded(true), className: `w-full h-full object-cover transition-opacity duration-300 ${isLoaded ? "opacity-100" : "opacity-0"}` }));
|
|
4286
4283
|
};
|
|
4287
|
-
return /* @__PURE__ */ React45.createElement("div", { className: "w-full max-w-3xl mx-auto flex flex-col animate-in fade-in duration-300" }, /* @__PURE__ */ React45.createElement(ManagedToaster, null), /* @__PURE__ */ React45.createElement("div", { className: "mb-6 flex w-full items-center px-1" }, /* @__PURE__ */ React45.createElement("button", { onClick: onBackHandler, className: "flex items-center gap-2 text-stone-500 hover:text-black transition-colors text-sm outline-none" }, /* @__PURE__ */ React45.createElement(
|
|
4284
|
+
return /* @__PURE__ */ React45.createElement("div", { className: "w-full max-w-3xl mx-auto flex flex-col animate-in fade-in duration-300" }, /* @__PURE__ */ React45.createElement(ManagedToaster, null), /* @__PURE__ */ React45.createElement("div", { className: "mb-6 flex w-full items-center px-1" }, /* @__PURE__ */ React45.createElement("button", { onClick: onBackHandler, className: "flex items-center gap-2 text-stone-500 hover:text-black transition-colors text-sm outline-none" }, /* @__PURE__ */ React45.createElement(HugeiconsIcon31, { icon: ArrowLeft01Icon12, size: 16 }), " Back")), /* @__PURE__ */ React45.createElement("div", { className: "flex flex-col gap-4 mb-6 px-1" }, /* @__PURE__ */ React45.createElement("div", null, /* @__PURE__ */ React45.createElement("h1", { className: "text-black text-xl mb-1 tracking-tight" }, "Your Referrals"), /* @__PURE__ */ React45.createElement("p", { className: "text-xs text-stone-500" }, "Invite friends and earn rewards when they verify and activate cards.")), /* @__PURE__ */ React45.createElement("div", { className: "bg-[#143731] rounded-3xl p-6 relative overflow-hidden flex flex-col min-h-25 w-full mt-2" }, /* @__PURE__ */ React45.createElement("div", { className: "relative z-10 flex flex-col items-start" }, /* @__PURE__ */ React45.createElement("p", { className: "text-xs text-white leading-tight mb-1" }, /* @__PURE__ */ React45.createElement("span", { className: "text-white/60" }, "AFT Balance")), isLoading ? /* @__PURE__ */ React45.createElement("div", { className: "h-8 w-32 bg-white/10 animate-pulse rounded mt-2" }) : /* @__PURE__ */ React45.createElement("span", { className: "text-lg text-white tracking-tight mt-1" }, referralCoins)))), /* @__PURE__ */ React45.createElement("div", { className: "flex flex-col gap-6 p-4 rounded-3xl bg-white w-full" }, /* @__PURE__ */ React45.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ React45.createElement("div", { className: "border border-stone-200 rounded-xl p-4 flex items-center justify-between" }, /* @__PURE__ */ React45.createElement("div", { className: "flex flex-col gap-1" }, /* @__PURE__ */ React45.createElement("span", { className: "text-xs tracking-widest text-stone-400 " }, "Invitation Code"), isLoading && !referralCode ? /* @__PURE__ */ React45.createElement("div", { className: "h-6 w-24 bg-stone-50 animate-pulse rounded mt-1" }) : /* @__PURE__ */ React45.createElement("span", { className: "text-sm text-black tracking-widest" }, referralCode)), /* @__PURE__ */ React45.createElement(
|
|
4288
4285
|
"button",
|
|
4289
4286
|
{
|
|
4290
4287
|
onClick: handleCopyCode,
|
|
4291
4288
|
disabled: isLoading || !referralCode,
|
|
4292
4289
|
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"
|
|
4293
4290
|
},
|
|
4294
|
-
/* @__PURE__ */ React45.createElement(
|
|
4291
|
+
/* @__PURE__ */ React45.createElement(HugeiconsIcon31, { icon: Copy01Icon4, size: 18 })
|
|
4295
4292
|
)), /* @__PURE__ */ React45.createElement("div", { className: "flex items-center justify-between text-sm text-stone-500 px-1" }, /* @__PURE__ */ React45.createElement("span", null, "Total Invited: ", /* @__PURE__ */ React45.createElement("span", { className: "text-black " }, isLoading && !totalCount ? "-" : totalCount)))), /* @__PURE__ */ React45.createElement("div", { className: "w-full overflow-hidden" }, isLoading ? /* @__PURE__ */ React45.createElement(PageSpinner5, null) : /* @__PURE__ */ React45.createElement("div", { className: "flex flex-col min-w-0" }, /* @__PURE__ */ React45.createElement("div", null, referrals.length === 0 ? /* @__PURE__ */ React45.createElement("div", { className: "flex flex-col items-center justify-center py-8 opacity-50" }, /* @__PURE__ */ React45.createElement("p", { className: "text-xs text-stone-500 text-center" }, "You haven't referred anyone yet.")) : referrals.map((ref, idx) => /* @__PURE__ */ React45.createElement(
|
|
4296
4293
|
"div",
|
|
4297
4294
|
{
|
|
@@ -4314,7 +4311,7 @@ var UniversalReferralPage = ({
|
|
|
4314
4311
|
disabled: currentPage <= 1 || isLoading,
|
|
4315
4312
|
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"
|
|
4316
4313
|
},
|
|
4317
|
-
/* @__PURE__ */ React45.createElement(
|
|
4314
|
+
/* @__PURE__ */ React45.createElement(HugeiconsIcon31, { icon: ArrowLeft01Icon12, size: 14 })
|
|
4318
4315
|
), /* @__PURE__ */ React45.createElement(
|
|
4319
4316
|
"button",
|
|
4320
4317
|
{
|
|
@@ -4322,7 +4319,7 @@ var UniversalReferralPage = ({
|
|
|
4322
4319
|
disabled: currentPage >= totalPages || isLoading || totalPages === 0,
|
|
4323
4320
|
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"
|
|
4324
4321
|
},
|
|
4325
|
-
/* @__PURE__ */ React45.createElement(
|
|
4322
|
+
/* @__PURE__ */ React45.createElement(HugeiconsIcon31, { icon: ArrowRight01Icon9, size: 14 })
|
|
4326
4323
|
)))))));
|
|
4327
4324
|
};
|
|
4328
4325
|
|
|
@@ -4330,7 +4327,7 @@ var UniversalReferralPage = ({
|
|
|
4330
4327
|
import React46, { useState as useState32 } from "react";
|
|
4331
4328
|
import Confetti2 from "react-confetti";
|
|
4332
4329
|
import { useWindowSize as useWindowSize2 } from "react-use";
|
|
4333
|
-
import { HugeiconsIcon as
|
|
4330
|
+
import { HugeiconsIcon as HugeiconsIcon32 } from "@hugeicons/react";
|
|
4334
4331
|
import {
|
|
4335
4332
|
ArrowLeft01Icon as ArrowLeft01Icon13,
|
|
4336
4333
|
CancelCircleIcon as CancelCircleIcon9,
|
|
@@ -4424,9 +4421,9 @@ var UniversalCardActionPage = ({
|
|
|
4424
4421
|
onClick: onBackHandler,
|
|
4425
4422
|
className: "flex items-center gap-2 text-stone-500 hover:text-black transition-colors text-sm outline-none"
|
|
4426
4423
|
},
|
|
4427
|
-
/* @__PURE__ */ React46.createElement(
|
|
4424
|
+
/* @__PURE__ */ React46.createElement(HugeiconsIcon32, { icon: ArrowLeft01Icon13, size: 16 }),
|
|
4428
4425
|
" Back"
|
|
4429
|
-
)), /* @__PURE__ */ React46.createElement("div", { className: "flex flex-col animate-in max-w-5xl w-full mx-auto fade-in duration-300" }, /* @__PURE__ */ React46.createElement("div", { className: "w-full flex flex-col items-center text-center mb-10 px-4" }, /* @__PURE__ */ React46.createElement("span", { className: "text-xs tracking-[0.4em] text-stone-400 block mb-3" }, cardType, " CARD ACTIVATION"), /* @__PURE__ */ React46.createElement("h1", { className: "text-2xl sm:text-3xl text-black tracking-tight mb-2" }, "Select Your Tier"), /* @__PURE__ */ React46.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__ */ React46.createElement("div", { className: "flex justify-center py-20" }, /* @__PURE__ */ React46.createElement(
|
|
4426
|
+
)), /* @__PURE__ */ React46.createElement("div", { className: "flex flex-col animate-in max-w-5xl w-full mx-auto fade-in duration-300" }, /* @__PURE__ */ React46.createElement("div", { className: "w-full flex flex-col items-center text-center mb-10 px-4" }, /* @__PURE__ */ React46.createElement("span", { className: "text-xs tracking-[0.4em] text-stone-400 block mb-3" }, cardType, " CARD ACTIVATION"), /* @__PURE__ */ React46.createElement("h1", { className: "text-2xl sm:text-3xl text-black tracking-tight mb-2" }, "Select Your Tier"), /* @__PURE__ */ React46.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__ */ React46.createElement("div", { className: "flex justify-center py-20" }, /* @__PURE__ */ React46.createElement(HugeiconsIcon32, { icon: Loading03Icon20, size: 32, className: "animate-spin text-stone-300" })) : /* @__PURE__ */ React46.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) => {
|
|
4430
4427
|
const isCurrent = tier.tierName === currentTier;
|
|
4431
4428
|
const isCardDisabled = hasPreordered && !isCurrent;
|
|
4432
4429
|
const isHighlighted = hasPreordered && isCurrent;
|
|
@@ -4448,7 +4445,7 @@ var UniversalCardActionPage = ({
|
|
|
4448
4445
|
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`
|
|
4449
4446
|
}
|
|
4450
4447
|
),
|
|
4451
|
-
isThisCardLoading && /* @__PURE__ */ React46.createElement("div", { className: "absolute inset-0 z-50 flex items-center justify-center bg-white/40 backdrop-blur-[1px]" }, /* @__PURE__ */ React46.createElement(
|
|
4448
|
+
isThisCardLoading && /* @__PURE__ */ React46.createElement("div", { className: "absolute inset-0 z-50 flex items-center justify-center bg-white/40 backdrop-blur-[1px]" }, /* @__PURE__ */ React46.createElement(HugeiconsIcon32, { icon: Loading03Icon20, size: 32, className: "animate-spin text-black" })),
|
|
4452
4449
|
/* @__PURE__ */ React46.createElement("div", { className: "mb-6 relative z-10" }, /* @__PURE__ */ React46.createElement("div", { className: "flex justify-between items-start mb-1" }, /* @__PURE__ */ React46.createElement("span", { className: "text-black text-sm tracking-widest " }, formatTierName(tier.tierName)), isCurrent && !hasPreordered && /* @__PURE__ */ React46.createElement("span", { className: "text-xs bg-stone-100 text-stone-600 px-2 py-1 rounded-full tracking-wider" }, "Current")), /* @__PURE__ */ React46.createElement("div", { className: "flex items-baseline gap-1 mt-2" }, /* @__PURE__ */ React46.createElement("h3", { className: "text-3xl font-light text-black" }, tier.priceUSD === 0 ? "Free" : `$${tier.priceUSD.toFixed(2)}`), tier.priceUSD > 0 && /* @__PURE__ */ React46.createElement("span", { className: "text-xs text-stone-500" }, tier.isYearly ? "/ year" : "one-time")), /* @__PURE__ */ React46.createElement("p", { className: "text-sm text-stone-500 mt-3 min-h-12 leading-relaxed" }, tier.description)),
|
|
4453
4450
|
/* @__PURE__ */ React46.createElement("div", { className: "flex flex-col gap-2.5 mb-6 relative z-10" }, /* @__PURE__ */ React46.createElement("div", { className: isPrimaryDisabled ? "opacity-50 pointer-events-none" : "" }, /* @__PURE__ */ React46.createElement(
|
|
4454
4451
|
ThreeDActionButton,
|
|
@@ -4488,7 +4485,7 @@ var UniversalCardActionPage = ({
|
|
|
4488
4485
|
onClick: () => setSelectedTier(null),
|
|
4489
4486
|
className: "text-stone-400 hover:text-black transition-colors outline-none disabled:opacity-50"
|
|
4490
4487
|
},
|
|
4491
|
-
/* @__PURE__ */ React46.createElement(
|
|
4488
|
+
/* @__PURE__ */ React46.createElement(HugeiconsIcon32, { icon: CancelCircleIcon9, size: 18 })
|
|
4492
4489
|
)), /* @__PURE__ */ React46.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-6 relative z-10" }, /* @__PURE__ */ React46.createElement("div", { className: "flex flex-col items-center justify-center mb-6" }, /* @__PURE__ */ React46.createElement("p", { className: "text-2xl text-black mb-1" }, selectedTier.priceUSD === 0 ? "Free" : `$${selectedTier.priceUSD.toFixed(2)}`), /* @__PURE__ */ React46.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__ */ React46.createElement("div", { className: "grid grid-cols-1 gap-y-6 mb-8 mt-4" }, /* @__PURE__ */ React46.createElement("div", null, /* @__PURE__ */ React46.createElement("span", { className: "text-xs tracking-[0.2em] text-stone-400 block mb-1" }, "Action"), /* @__PURE__ */ React46.createElement("span", { className: "text-sm text-black " }, intendedAction === "upgrade" ? `Upgrade to ${formatTierName(selectedTier.tierName)}` : `Pre-order Card`)), intendedAction === "pre_order" && selectedTier.priceUSD > 0 && /* @__PURE__ */ React46.createElement("div", null, /* @__PURE__ */ React46.createElement("span", { className: "text-xs tracking-[0.2em] text-stone-400 block mb-1" }, "Payment Notice"), /* @__PURE__ */ React46.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__ */ React46.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ React46.createElement(
|
|
4493
4490
|
ThreeDActionButton,
|
|
4494
4491
|
{
|
|
@@ -4522,7 +4519,7 @@ var UniversalCardActionPage = ({
|
|
|
4522
4519
|
|
|
4523
4520
|
// src/components/PinDialerBottomSheet.tsx
|
|
4524
4521
|
import React47, { useState as useState33, useEffect as useEffect18 } from "react";
|
|
4525
|
-
import { HugeiconsIcon as
|
|
4522
|
+
import { HugeiconsIcon as HugeiconsIcon33 } from "@hugeicons/react";
|
|
4526
4523
|
import { CancelCircleIcon as CancelCircleIcon10 } from "@hugeicons/core-free-icons";
|
|
4527
4524
|
var PinDialerBottomSheet = ({
|
|
4528
4525
|
isOpen,
|
|
@@ -4558,7 +4555,7 @@ var PinDialerBottomSheet = ({
|
|
|
4558
4555
|
disabled: isVerifying,
|
|
4559
4556
|
className: "text-stone-400 hover:text-black transition-colors outline-none disabled:opacity-50"
|
|
4560
4557
|
},
|
|
4561
|
-
/* @__PURE__ */ React47.createElement(
|
|
4558
|
+
/* @__PURE__ */ React47.createElement(HugeiconsIcon33, { icon: CancelCircleIcon10, size: 20 })
|
|
4562
4559
|
)), /* @__PURE__ */ React47.createElement("div", { className: "flex flex-col px-6 pb-6 pt-2 relative" }, /* @__PURE__ */ React47.createElement("form", { onSubmit: handleSubmit, className: "flex flex-col gap-6" }, /* @__PURE__ */ React47.createElement(
|
|
4563
4560
|
TextInput,
|
|
4564
4561
|
{
|
|
@@ -4585,7 +4582,7 @@ var PinDialerBottomSheet = ({
|
|
|
4585
4582
|
// src/components/UniversalBuyCryptoPage.tsx
|
|
4586
4583
|
import React48, { useState as useState34, useEffect as useEffect19, useRef as useRef12, useCallback } from "react";
|
|
4587
4584
|
import toast11 from "react-hot-toast";
|
|
4588
|
-
import { HugeiconsIcon as
|
|
4585
|
+
import { HugeiconsIcon as HugeiconsIcon34 } from "@hugeicons/react";
|
|
4589
4586
|
import {
|
|
4590
4587
|
ArrowLeft01Icon as ArrowLeft01Icon14,
|
|
4591
4588
|
CheckmarkCircle02Icon
|
|
@@ -4765,7 +4762,7 @@ var UniversalBuyCryptoPage = ({
|
|
|
4765
4762
|
}
|
|
4766
4763
|
};
|
|
4767
4764
|
const isButtonDisabled = isSubmitting || isCalculating || !fiatAmount || !cryptoAmount || !isAddressValid || !currentRateKey;
|
|
4768
|
-
return /* @__PURE__ */ React48.createElement("div", { className: "w-full max-w-3xl mx-auto flex flex-col animate-in fade-in duration-300" }, /* @__PURE__ */ React48.createElement(ManagedToaster, null), !hideBackButton && /* @__PURE__ */ React48.createElement("div", { className: "mb-6 flex w-full items-center px-1" }, /* @__PURE__ */ React48.createElement("button", { onClick: onBackHandler, className: "flex items-center gap-2 text-stone-500 hover:text-black transition-colors text-sm outline-none" }, /* @__PURE__ */ React48.createElement(
|
|
4765
|
+
return /* @__PURE__ */ React48.createElement("div", { className: "w-full max-w-3xl mx-auto flex flex-col animate-in fade-in duration-300" }, /* @__PURE__ */ React48.createElement(ManagedToaster, null), !hideBackButton && /* @__PURE__ */ React48.createElement("div", { className: "mb-6 flex w-full items-center px-1" }, /* @__PURE__ */ React48.createElement("button", { onClick: onBackHandler, className: "flex items-center gap-2 text-stone-500 hover:text-black transition-colors text-sm outline-none" }, /* @__PURE__ */ React48.createElement(HugeiconsIcon34, { icon: ArrowLeft01Icon14, size: 16 }), " Back")), /* @__PURE__ */ React48.createElement("div", { className: "flex flex-col gap-1 mb-6 px-1" }, /* @__PURE__ */ React48.createElement("h1", { className: "text-black text-xl tracking-tight" }, "Buy Crypto"), /* @__PURE__ */ React48.createElement("p", { className: "text-xs text-stone-500" }, "Purchase digital assets instantly in your local currency with direct wallet delivery.")), /* @__PURE__ */ React48.createElement("div", { className: "flex flex-col gap-6 p-6 sm:p-8 rounded-3xl bg-white w-full " }, /* @__PURE__ */ React48.createElement("div", { className: "relative flex flex-col gap-3" }, /* @__PURE__ */ React48.createElement("div", { className: "border border-stone-200 rounded-2xl p-4 flex items-center justify-between transition-all focus-within:border-black" }, /* @__PURE__ */ React48.createElement("div", { className: "flex flex-col gap-1 flex-1 pr-3 min-w-0" }, /* @__PURE__ */ React48.createElement("span", { className: "text-xs tracking-widest text-stone-400" }, "You Pay (", fiatCurrency.code, ")"), isCalculating && activeSource === "CRYPTO" ? /* @__PURE__ */ React48.createElement("div", { className: "h-7 w-32 bg-stone-100 animate-pulse rounded-md mt-1" }) : /* @__PURE__ */ React48.createElement(
|
|
4769
4766
|
"input",
|
|
4770
4767
|
{
|
|
4771
4768
|
type: "text",
|
|
@@ -4842,7 +4839,7 @@ var UniversalBuyCryptoPage = ({
|
|
|
4842
4839
|
},
|
|
4843
4840
|
/* @__PURE__ */ React48.createElement(CircularLogo, { src: c.logoUrl, alt: c.name, fallbackText: c.code }),
|
|
4844
4841
|
/* @__PURE__ */ React48.createElement("div", { className: "flex flex-col flex-1 min-w-0" }, /* @__PURE__ */ React48.createElement("span", { className: "text-xs text-black truncate" }, c.name), /* @__PURE__ */ React48.createElement("span", { className: "text-xs text-stone-400" }, c.code)),
|
|
4845
|
-
isSelected && /* @__PURE__ */ React48.createElement(
|
|
4842
|
+
isSelected && /* @__PURE__ */ React48.createElement(HugeiconsIcon34, { icon: CheckmarkCircle02Icon, size: 16, className: "text-black" })
|
|
4846
4843
|
);
|
|
4847
4844
|
}))))), isNetworkDialogOpen && /* @__PURE__ */ React48.createElement("div", { className: "fixed inset-0 z-50 flex items-center justify-center p-4 bg-black/40" }, /* @__PURE__ */ React48.createElement("div", { className: "absolute inset-0", onClick: () => setIsNetworkDialogOpen(false) }), /* @__PURE__ */ React48.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__ */ React48.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__ */ React48.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__ */ React48.createElement("path", { d: "M18 6 6 18" }), /* @__PURE__ */ React48.createElement("path", { d: "m6 6 12 12" }))), /* @__PURE__ */ React48.createElement("div", { className: "p-6 sm:p-8" }, /* @__PURE__ */ React48.createElement("div", { className: "mb-6 mt-2" }, /* @__PURE__ */ React48.createElement("h2", { className: "text-xl text-black tracking-tight mb-2" }, "Select Network"), /* @__PURE__ */ React48.createElement("p", { className: "text-sm text-stone-500 leading-relaxed" }, "Ensure your receiving wallet supports this network.")), /* @__PURE__ */ React48.createElement("div", { className: "flex flex-col gap-2 max-h-72 overflow-y-auto custom-scrollbar pr-1" }, selectedCrypto?.networks?.map((net) => {
|
|
4848
4845
|
const isSelected = net.id === selectedNetwork.id;
|
|
@@ -4858,17 +4855,17 @@ var UniversalBuyCryptoPage = ({
|
|
|
4858
4855
|
},
|
|
4859
4856
|
/* @__PURE__ */ React48.createElement(CircularLogo, { src: net.logoUrl || selectedCrypto.logoUrl, alt: net.name, fallbackText: net.symbol }),
|
|
4860
4857
|
/* @__PURE__ */ React48.createElement("div", { className: "flex flex-col flex-1 min-w-0" }, /* @__PURE__ */ React48.createElement("span", { className: "text-xs text-black truncate" }, net.name), /* @__PURE__ */ React48.createElement("span", { className: "text-xs text-stone-400" }, net.symbol)),
|
|
4861
|
-
isSelected && /* @__PURE__ */ React48.createElement(
|
|
4858
|
+
isSelected && /* @__PURE__ */ React48.createElement(HugeiconsIcon34, { icon: CheckmarkCircle02Icon, size: 16, className: "text-black" })
|
|
4862
4859
|
);
|
|
4863
4860
|
}))))));
|
|
4864
4861
|
};
|
|
4865
4862
|
|
|
4866
4863
|
// src/components/UniversalHuddlesPage.tsx
|
|
4867
4864
|
import React49, { useState as useState35 } from "react";
|
|
4868
|
-
import { HugeiconsIcon as
|
|
4865
|
+
import { HugeiconsIcon as HugeiconsIcon35 } from "@hugeicons/react";
|
|
4869
4866
|
import {
|
|
4870
4867
|
ArrowLeft01Icon as ArrowLeft01Icon15,
|
|
4871
|
-
ArrowRight01Icon as
|
|
4868
|
+
ArrowRight01Icon as ArrowRight01Icon10,
|
|
4872
4869
|
Loading03Icon as Loading03Icon22
|
|
4873
4870
|
} from "@hugeicons/core-free-icons";
|
|
4874
4871
|
var HuddleAvatar = ({ src, status, sizeClass = "w-10 h-10" }) => {
|
|
@@ -4890,7 +4887,7 @@ var HuddleAvatar = ({ src, status, sizeClass = "w-10 h-10" }) => {
|
|
|
4890
4887
|
return "bg-stone-200";
|
|
4891
4888
|
}
|
|
4892
4889
|
};
|
|
4893
|
-
return /* @__PURE__ */ React49.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ React49.createElement("div", { className: "w-full h-full rounded-lg bg-stone-100 flex items-center justify-center overflow-hidden" }, !loaded && !error && /* @__PURE__ */ React49.createElement(
|
|
4890
|
+
return /* @__PURE__ */ React49.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ React49.createElement("div", { className: "w-full h-full rounded-lg bg-stone-100 flex items-center justify-center overflow-hidden" }, !loaded && !error && /* @__PURE__ */ React49.createElement(HugeiconsIcon35, { icon: Loading03Icon22, className: "animate-spin text-stone-400 absolute", size: 14 }), /* @__PURE__ */ React49.createElement(
|
|
4894
4891
|
"img",
|
|
4895
4892
|
{
|
|
4896
4893
|
src: finalSrc,
|
|
@@ -4901,7 +4898,7 @@ var HuddleAvatar = ({ src, status, sizeClass = "w-10 h-10" }) => {
|
|
|
4901
4898
|
}
|
|
4902
4899
|
)), /* @__PURE__ */ React49.createElement("div", { className: `absolute -bottom-1 -right-1 w-3.5 h-3.5 rounded-full border-2 border-white z-10 ${getStatusColor()}` }));
|
|
4903
4900
|
};
|
|
4904
|
-
var PageSpinner6 = () => /* @__PURE__ */ React49.createElement("div", { className: "flex justify-center items-center py-12" }, /* @__PURE__ */ React49.createElement(
|
|
4901
|
+
var PageSpinner6 = () => /* @__PURE__ */ React49.createElement("div", { className: "flex justify-center items-center py-12" }, /* @__PURE__ */ React49.createElement(HugeiconsIcon35, { icon: Loading03Icon22, size: 32, className: "animate-spin mb-4 text-black" }));
|
|
4905
4902
|
var UniversalHuddlesPage = ({
|
|
4906
4903
|
headerTitle,
|
|
4907
4904
|
headerDescription,
|
|
@@ -4929,7 +4926,7 @@ var UniversalHuddlesPage = ({
|
|
|
4929
4926
|
},
|
|
4930
4927
|
/* @__PURE__ */ React49.createElement(HuddleAvatar, { src: huddle.imageUrl, status: huddle.status }),
|
|
4931
4928
|
/* @__PURE__ */ React49.createElement("div", { className: "flex flex-col min-w-0 flex-1" }, /* @__PURE__ */ React49.createElement("p", { className: "text-sm text-black tracking-tight truncate" }, huddle.name), /* @__PURE__ */ React49.createElement("span", { className: "text-xs text-stone-500 truncate block mt-0.5" }, huddle.timeString)),
|
|
4932
|
-
/* @__PURE__ */ React49.createElement(
|
|
4929
|
+
/* @__PURE__ */ React49.createElement(HugeiconsIcon35, { icon: ArrowRight01Icon10, size: 14, className: "shrink-0 text-stone-400" })
|
|
4933
4930
|
))), /* @__PURE__ */ React49.createElement("div", { className: "flex items-center justify-between pt-6 mt-2 " }, /* @__PURE__ */ React49.createElement("span", { className: "text-xs text-stone-400 tracking-[0.2em]" }, "Page ", currentPage, " of ", totalPages === 0 ? 1 : totalPages), /* @__PURE__ */ React49.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React49.createElement(
|
|
4934
4931
|
"button",
|
|
4935
4932
|
{
|
|
@@ -4937,7 +4934,7 @@ var UniversalHuddlesPage = ({
|
|
|
4937
4934
|
disabled: currentPage <= 1 || isLoading,
|
|
4938
4935
|
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"
|
|
4939
4936
|
},
|
|
4940
|
-
/* @__PURE__ */ React49.createElement(
|
|
4937
|
+
/* @__PURE__ */ React49.createElement(HugeiconsIcon35, { icon: ArrowLeft01Icon15, size: 14 })
|
|
4941
4938
|
), /* @__PURE__ */ React49.createElement(
|
|
4942
4939
|
"button",
|
|
4943
4940
|
{
|
|
@@ -4945,17 +4942,17 @@ var UniversalHuddlesPage = ({
|
|
|
4945
4942
|
disabled: currentPage >= totalPages || isLoading || totalPages === 0,
|
|
4946
4943
|
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"
|
|
4947
4944
|
},
|
|
4948
|
-
/* @__PURE__ */ React49.createElement(
|
|
4945
|
+
/* @__PURE__ */ React49.createElement(HugeiconsIcon35, { icon: ArrowRight01Icon10, size: 14 })
|
|
4949
4946
|
)))))));
|
|
4950
4947
|
};
|
|
4951
4948
|
|
|
4952
4949
|
// src/components/UniversalMembersPage.tsx
|
|
4953
4950
|
import React50, { useState as useState36, useEffect as useEffect20, useRef as useRef13 } from "react";
|
|
4954
|
-
import { HugeiconsIcon as
|
|
4951
|
+
import { HugeiconsIcon as HugeiconsIcon36 } from "@hugeicons/react";
|
|
4955
4952
|
import toast12 from "react-hot-toast";
|
|
4956
4953
|
import {
|
|
4957
4954
|
ArrowLeft01Icon as ArrowLeft01Icon16,
|
|
4958
|
-
ArrowRight01Icon as
|
|
4955
|
+
ArrowRight01Icon as ArrowRight01Icon11,
|
|
4959
4956
|
Loading03Icon as Loading03Icon23,
|
|
4960
4957
|
Search01Icon as Search01Icon5,
|
|
4961
4958
|
SearchList02Icon as SearchList02Icon2,
|
|
@@ -4980,7 +4977,7 @@ var MemberAvatar2 = ({ src, status }) => {
|
|
|
4980
4977
|
return "bg-stone-200";
|
|
4981
4978
|
}
|
|
4982
4979
|
};
|
|
4983
|
-
return /* @__PURE__ */ React50.createElement("div", { className: "relative w-10 h-10 shrink-0" }, /* @__PURE__ */ React50.createElement("div", { className: "w-full h-full rounded-lg bg-stone-100 flex items-center justify-center overflow-hidden" }, !loaded && !error && /* @__PURE__ */ React50.createElement(
|
|
4980
|
+
return /* @__PURE__ */ React50.createElement("div", { className: "relative w-10 h-10 shrink-0" }, /* @__PURE__ */ React50.createElement("div", { className: "w-full h-full rounded-lg bg-stone-100 flex items-center justify-center overflow-hidden" }, !loaded && !error && /* @__PURE__ */ React50.createElement(HugeiconsIcon36, { icon: Loading03Icon23, className: "animate-spin text-stone-400 absolute", size: 14 }), /* @__PURE__ */ React50.createElement(
|
|
4984
4981
|
"img",
|
|
4985
4982
|
{
|
|
4986
4983
|
src: finalSrc,
|
|
@@ -4991,7 +4988,7 @@ var MemberAvatar2 = ({ src, status }) => {
|
|
|
4991
4988
|
}
|
|
4992
4989
|
)), /* @__PURE__ */ React50.createElement("div", { className: `absolute -bottom-1 -right-1 w-2.5 h-2.5 rounded-full border-2 border-white z-10 ${getStatusColor()}` }));
|
|
4993
4990
|
};
|
|
4994
|
-
var PageSpinner7 = () => /* @__PURE__ */ React50.createElement("div", { className: "flex justify-center items-center py-12" }, /* @__PURE__ */ React50.createElement(
|
|
4991
|
+
var PageSpinner7 = () => /* @__PURE__ */ React50.createElement("div", { className: "flex justify-center items-center py-12" }, /* @__PURE__ */ React50.createElement(HugeiconsIcon36, { icon: Loading03Icon23, size: 32, className: "animate-spin mb-4 text-black" }));
|
|
4995
4992
|
var UniversalMembersPage = ({
|
|
4996
4993
|
headerTitle,
|
|
4997
4994
|
headerDescription,
|
|
@@ -5091,7 +5088,7 @@ var UniversalMembersPage = ({
|
|
|
5091
5088
|
onClose: () => setMemberToRemove(null),
|
|
5092
5089
|
onConfirm: handleConfirmRemove
|
|
5093
5090
|
}
|
|
5094
|
-
), !isInviteMode && /* @__PURE__ */ React50.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__ */ React50.createElement("div", { className: "relative flex-1 min-w-0 max-w-full" }, /* @__PURE__ */ React50.createElement("div", { className: "absolute inset-y-0 left-0 pl-4 flex items-center pointer-events-none" }, /* @__PURE__ */ React50.createElement(
|
|
5091
|
+
), !isInviteMode && /* @__PURE__ */ React50.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__ */ React50.createElement("div", { className: "relative flex-1 min-w-0 max-w-full" }, /* @__PURE__ */ React50.createElement("div", { className: "absolute inset-y-0 left-0 pl-4 flex items-center pointer-events-none" }, /* @__PURE__ */ React50.createElement(HugeiconsIcon36, { icon: Search01Icon5, size: 16, className: "text-stone-400" })), /* @__PURE__ */ React50.createElement(
|
|
5095
5092
|
"input",
|
|
5096
5093
|
{
|
|
5097
5094
|
type: "text",
|
|
@@ -5106,14 +5103,14 @@ var UniversalMembersPage = ({
|
|
|
5106
5103
|
onClick: () => setIsStatusModalOpen(true),
|
|
5107
5104
|
className: "flex items-center justify-center bg-white w-9 h-9 rounded-full text-stone-500 hover:text-black transition-colors outline-none"
|
|
5108
5105
|
},
|
|
5109
|
-
/* @__PURE__ */ React50.createElement(
|
|
5106
|
+
/* @__PURE__ */ React50.createElement(HugeiconsIcon36, { icon: SearchList02Icon2, size: 16 })
|
|
5110
5107
|
), /* @__PURE__ */ React50.createElement(
|
|
5111
5108
|
"button",
|
|
5112
5109
|
{
|
|
5113
5110
|
onClick: () => setIsRoleModalOpen(true),
|
|
5114
5111
|
className: "flex items-center justify-center bg-white w-9 h-9 rounded-full text-stone-500 hover:text-black transition-colors outline-none"
|
|
5115
5112
|
},
|
|
5116
|
-
/* @__PURE__ */ React50.createElement(
|
|
5113
|
+
/* @__PURE__ */ React50.createElement(HugeiconsIcon36, { icon: ListSettingIcon2, size: 16 })
|
|
5117
5114
|
))), /* @__PURE__ */ React50.createElement("div", { className: "flex flex-col gap-8 p-6 rounded-2xl bg-white w-full" }, /* @__PURE__ */ React50.createElement("div", { className: "flex flex-row items-start justify-between gap-4" }, /* @__PURE__ */ React50.createElement("div", null, /* @__PURE__ */ React50.createElement("h1", { className: "text-black text-xl mb-1 tracking-tight" }, isInviteMode ? "Add Member" : headerTitle), headerDescription && !isInviteMode && /* @__PURE__ */ React50.createElement("p", { className: "text-xs text-stone-500" }, headerDescription)), !isInviteMode && /* @__PURE__ */ React50.createElement(
|
|
5118
5115
|
"button",
|
|
5119
5116
|
{
|
|
@@ -5181,7 +5178,7 @@ var UniversalMembersPage = ({
|
|
|
5181
5178
|
disabled: currentPage <= 1 || isListLoading,
|
|
5182
5179
|
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"
|
|
5183
5180
|
},
|
|
5184
|
-
/* @__PURE__ */ React50.createElement(
|
|
5181
|
+
/* @__PURE__ */ React50.createElement(HugeiconsIcon36, { icon: ArrowLeft01Icon16, size: 14 })
|
|
5185
5182
|
), /* @__PURE__ */ React50.createElement(
|
|
5186
5183
|
"button",
|
|
5187
5184
|
{
|
|
@@ -5189,7 +5186,7 @@ var UniversalMembersPage = ({
|
|
|
5189
5186
|
disabled: currentPage >= totalPages || isListLoading || totalPages === 0,
|
|
5190
5187
|
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"
|
|
5191
5188
|
},
|
|
5192
|
-
/* @__PURE__ */ React50.createElement(
|
|
5189
|
+
/* @__PURE__ */ React50.createElement(HugeiconsIcon36, { icon: ArrowRight01Icon11, size: 14 })
|
|
5193
5190
|
)))))), isStatusModalOpen && /* @__PURE__ */ React50.createElement("div", { className: "fixed inset-0 z-110 flex items-center justify-center p-4" }, /* @__PURE__ */ React50.createElement("div", { className: "absolute inset-0 bg-black/40", onClick: () => setIsStatusModalOpen(false) }), /* @__PURE__ */ React50.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__ */ React50.createElement("div", { className: "p-6 text-center w-full mb-2" }, /* @__PURE__ */ React50.createElement("h3", { className: "text-sm text-black tracking-tight" }, "Status Filter")), /* @__PURE__ */ React50.createElement("div", { className: "w-full flex flex-col pl-2 pr-2 gap-1" }, ["ALL", "ACTIVE", "BUSY", "OFFLINE", "AWAY"].map((option) => /* @__PURE__ */ React50.createElement(
|
|
5194
5191
|
"button",
|
|
5195
5192
|
{
|
|
@@ -5218,13 +5215,13 @@ var UniversalMembersPage = ({
|
|
|
5218
5215
|
// src/components/UniversalHome2.tsx
|
|
5219
5216
|
import React51, { useState as useState37 } from "react";
|
|
5220
5217
|
import { useRouter as useRouter3 } from "next/navigation";
|
|
5221
|
-
import { HugeiconsIcon as
|
|
5218
|
+
import { HugeiconsIcon as HugeiconsIcon37 } from "@hugeicons/react";
|
|
5222
5219
|
import toast13 from "react-hot-toast";
|
|
5223
5220
|
import {
|
|
5224
5221
|
Loading03Icon as Loading03Icon24,
|
|
5225
5222
|
Notification01Icon as Notification01Icon2,
|
|
5226
5223
|
ArrowLeft01Icon as ArrowLeft01Icon17,
|
|
5227
|
-
ArrowRight01Icon as
|
|
5224
|
+
ArrowRight01Icon as ArrowRight01Icon12,
|
|
5228
5225
|
CancelCircleIcon as CancelCircleIcon11,
|
|
5229
5226
|
ArrowUpRight01Icon as ArrowUpRight01Icon3,
|
|
5230
5227
|
Settings03Icon,
|
|
@@ -5236,7 +5233,7 @@ var OrgAvatar = ({ src, sizeClass = "w-10 h-10" }) => {
|
|
|
5236
5233
|
const [error, setError] = useState37(false);
|
|
5237
5234
|
const defaultAvatar = "https://storage.googleapis.com/retina-cloud-v2/assets/images/office_a.avif";
|
|
5238
5235
|
const finalSrc = error || !src ? defaultAvatar : src;
|
|
5239
|
-
return /* @__PURE__ */ React51.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ React51.createElement("div", { className: "w-full h-full rounded-lg bg-stone-100 flex items-center justify-center overflow-hidden" }, !loaded && !error && /* @__PURE__ */ React51.createElement(
|
|
5236
|
+
return /* @__PURE__ */ React51.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ React51.createElement("div", { className: "w-full h-full rounded-lg bg-stone-100 flex items-center justify-center overflow-hidden" }, !loaded && !error && /* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: Loading03Icon24, className: "animate-spin text-stone-400 absolute", size: 14 }), /* @__PURE__ */ React51.createElement(
|
|
5240
5237
|
"img",
|
|
5241
5238
|
{
|
|
5242
5239
|
src: finalSrc,
|
|
@@ -5312,7 +5309,7 @@ var UniversalHome2 = ({
|
|
|
5312
5309
|
onClose: () => setShowLogoutConfirm(false),
|
|
5313
5310
|
onConfirm: confirmLogout
|
|
5314
5311
|
}
|
|
5315
|
-
), /* @__PURE__ */ React51.createElement("div", { className: "flex items-center justify-between w-full pb-4" }, /* @__PURE__ */ React51.createElement("div", { className: "w-10 h-10 shrink-0 cursor-pointer", onClick: () => setShowOrgSwitcher(true) }, /* @__PURE__ */ React51.createElement("div", { className: "relative w-full h-full rounded-lg overflow-hidden bg-white flex items-center justify-center" }, !isAvatarLoaded && /* @__PURE__ */ React51.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-10 bg-white" }, /* @__PURE__ */ React51.createElement(
|
|
5312
|
+
), /* @__PURE__ */ React51.createElement("div", { className: "flex items-center justify-between w-full pb-4" }, /* @__PURE__ */ React51.createElement("div", { className: "w-10 h-10 shrink-0 cursor-pointer", onClick: () => setShowOrgSwitcher(true) }, /* @__PURE__ */ React51.createElement("div", { className: "relative w-full h-full rounded-lg overflow-hidden bg-white flex items-center justify-center" }, !isAvatarLoaded && /* @__PURE__ */ React51.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-10 bg-white" }, /* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: Loading03Icon24, size: 16, className: "animate-spin text-black" })), /* @__PURE__ */ React51.createElement(
|
|
5316
5313
|
"img",
|
|
5317
5314
|
{
|
|
5318
5315
|
src: finalAvatarSrc,
|
|
@@ -5326,7 +5323,7 @@ var UniversalHome2 = ({
|
|
|
5326
5323
|
onClick: () => router.push("/app/settings"),
|
|
5327
5324
|
className: "relative w-10 h-10 flex items-center justify-center rounded-full bg-white outline-none hover:bg-stone-50 transition-colors"
|
|
5328
5325
|
},
|
|
5329
|
-
/* @__PURE__ */ React51.createElement(
|
|
5326
|
+
/* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: Settings03Icon, size: 20, className: "text-black" })
|
|
5330
5327
|
), /* @__PURE__ */ React51.createElement(
|
|
5331
5328
|
"button",
|
|
5332
5329
|
{
|
|
@@ -5336,7 +5333,7 @@ var UniversalHome2 = ({
|
|
|
5336
5333
|
},
|
|
5337
5334
|
className: "relative w-10 h-10 flex items-center justify-center rounded-full bg-white outline-none hover:bg-stone-50 transition-colors"
|
|
5338
5335
|
},
|
|
5339
|
-
/* @__PURE__ */ React51.createElement(
|
|
5336
|
+
/* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: Notification01Icon2, size: 20, className: "text-black" }),
|
|
5340
5337
|
hasUnreadNotifs && /* @__PURE__ */ React51.createElement("span", { className: "absolute top-2.5 right-2.5 w-2 h-2 bg-red-500 rounded-full border border-white" })
|
|
5341
5338
|
))), /* @__PURE__ */ React51.createElement("div", { className: "w-full pb-6 flex flex-col gap-4" }, /* @__PURE__ */ React51.createElement("div", { className: "grid grid-cols-2 gap-2" }, /* @__PURE__ */ React51.createElement(
|
|
5342
5339
|
"div",
|
|
@@ -5344,7 +5341,7 @@ var UniversalHome2 = ({
|
|
|
5344
5341
|
onClick: createHuddleAction?.onClick,
|
|
5345
5342
|
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"
|
|
5346
5343
|
},
|
|
5347
|
-
/* @__PURE__ */ React51.createElement("div", { className: "relative z-10 flex flex-col h-full justify-between" }, /* @__PURE__ */ React51.createElement("p", { className: "text-sm sm:text-sm text-white leading-tight" }, "Create", /* @__PURE__ */ React51.createElement("br", null), /* @__PURE__ */ React51.createElement("span", { className: "text-white/70" }, "Huddle")), /* @__PURE__ */ React51.createElement("div", { className: "w-8 h-8 rounded-full bg-white/10 flex items-center justify-center" }, /* @__PURE__ */ React51.createElement(
|
|
5344
|
+
/* @__PURE__ */ React51.createElement("div", { className: "relative z-10 flex flex-col h-full justify-between" }, /* @__PURE__ */ React51.createElement("p", { className: "text-sm sm:text-sm text-white leading-tight" }, "Create", /* @__PURE__ */ React51.createElement("br", null), /* @__PURE__ */ React51.createElement("span", { className: "text-white/70" }, "Huddle")), /* @__PURE__ */ React51.createElement("div", { className: "w-8 h-8 rounded-full bg-white/10 flex items-center justify-center" }, /* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: ArrowUpRight01Icon3, size: 16, className: "text-white" }))),
|
|
5348
5345
|
/* @__PURE__ */ React51.createElement(
|
|
5349
5346
|
"img",
|
|
5350
5347
|
{
|
|
@@ -5359,7 +5356,7 @@ var UniversalHome2 = ({
|
|
|
5359
5356
|
onClick: joinHuddleAction?.onClick,
|
|
5360
5357
|
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"
|
|
5361
5358
|
},
|
|
5362
|
-
/* @__PURE__ */ React51.createElement("div", { className: "relative z-10 flex flex-col h-full justify-between" }, /* @__PURE__ */ React51.createElement("p", { className: "text-sm sm:text-sm text-black leading-tight" }, "Join", /* @__PURE__ */ React51.createElement("br", null), /* @__PURE__ */ React51.createElement("span", { className: "text-black/60" }, "Huddle")), /* @__PURE__ */ React51.createElement("div", { className: "w-8 h-8 rounded-full bg-black/5 flex items-center justify-center" }, /* @__PURE__ */ React51.createElement(
|
|
5359
|
+
/* @__PURE__ */ React51.createElement("div", { className: "relative z-10 flex flex-col h-full justify-between" }, /* @__PURE__ */ React51.createElement("p", { className: "text-sm sm:text-sm text-black leading-tight" }, "Join", /* @__PURE__ */ React51.createElement("br", null), /* @__PURE__ */ React51.createElement("span", { className: "text-black/60" }, "Huddle")), /* @__PURE__ */ React51.createElement("div", { className: "w-8 h-8 rounded-full bg-black/5 flex items-center justify-center" }, /* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: ArrowRight01Icon12, size: 16, className: "text-black" }))),
|
|
5363
5360
|
/* @__PURE__ */ React51.createElement(
|
|
5364
5361
|
"img",
|
|
5365
5362
|
{
|
|
@@ -5373,7 +5370,7 @@ var UniversalHome2 = ({
|
|
|
5373
5370
|
{
|
|
5374
5371
|
...huddlesProps
|
|
5375
5372
|
}
|
|
5376
|
-
)), showOrgSwitcher && /* @__PURE__ */ React51.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React51.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setShowOrgSwitcher(false) }), /* @__PURE__ */ React51.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__ */ React51.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, /* @__PURE__ */ React51.createElement("h3", { className: "text-sm text-black tracking-tight" }, "Switch Workspace"), /* @__PURE__ */ React51.createElement("button", { onClick: () => setShowOrgSwitcher(false), className: "text-stone-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React51.createElement(
|
|
5373
|
+
)), showOrgSwitcher && /* @__PURE__ */ React51.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React51.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setShowOrgSwitcher(false) }), /* @__PURE__ */ React51.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__ */ React51.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, /* @__PURE__ */ React51.createElement("h3", { className: "text-sm text-black tracking-tight" }, "Switch Workspace"), /* @__PURE__ */ React51.createElement("button", { onClick: () => setShowOrgSwitcher(false), className: "text-stone-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: CancelCircleIcon11, size: 18 }))), /* @__PURE__ */ React51.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-2" }, /* @__PURE__ */ React51.createElement("div", { className: "flex flex-col" }, organizations?.length === 0 ? /* @__PURE__ */ React51.createElement("div", { className: "p-8 text-center text-xs text-stone-400" }, "No organizations found.") : organizations?.map((org) => /* @__PURE__ */ React51.createElement(
|
|
5377
5374
|
"button",
|
|
5378
5375
|
{
|
|
5379
5376
|
key: org.id,
|
|
@@ -5395,16 +5392,16 @@ var UniversalHome2 = ({
|
|
|
5395
5392
|
},
|
|
5396
5393
|
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"
|
|
5397
5394
|
},
|
|
5398
|
-
/* @__PURE__ */ React51.createElement(
|
|
5395
|
+
/* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: Logout01Icon, size: 15 }),
|
|
5399
5396
|
"Log Out"
|
|
5400
|
-
)))), showNotifDialog && /* @__PURE__ */ React51.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React51.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setShowNotifDialog(false) }), /* @__PURE__ */ React51.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__ */ React51.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, selectedNotif ? /* @__PURE__ */ React51.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__ */ React51.createElement(
|
|
5397
|
+
)))), showNotifDialog && /* @__PURE__ */ React51.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React51.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setShowNotifDialog(false) }), /* @__PURE__ */ React51.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__ */ React51.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, selectedNotif ? /* @__PURE__ */ React51.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__ */ React51.createElement(HugeiconsIcon37, { icon: ArrowLeft01Icon17, size: 14 }), " Back") : /* @__PURE__ */ React51.createElement("h3", { className: "text-sm text-black tracking-tight flex items-center gap-2" }, "Notifications"), /* @__PURE__ */ React51.createElement("button", { onClick: () => setShowNotifDialog(false), disabled: isResolving, className: "text-stone-400 hover:text-black transition-colors outline-none disabled:opacity-50" }, /* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: CancelCircleIcon11, size: 18 }))), /* @__PURE__ */ React51.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-2 relative" }, isNotifsLoading && !selectedNotif && /* @__PURE__ */ React51.createElement("div", { className: "absolute inset-0 z-10 flex items-center justify-center" }, /* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: Loading03Icon24, size: 28, className: "animate-spin text-black" })), selectedNotif ? /* @__PURE__ */ React51.createElement("div", { className: "p-4 text-left" }, selectedNotif.type === "HUDDLE_INVITE" && selectedNotif.meta_json?.action === "RESOLVE_INVITE" && selectedNotif.meta_json?.completed ? /* @__PURE__ */ React51.createElement("div", { className: "mb-2" }, /* @__PURE__ */ React51.createElement("span", { className: "inline-flex items-center gap-1.5 px-3 py-1 rounded-full bg-emerald-50 text-emerald-600 text-xs tracking-wide" }, /* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: Tick02Icon2, size: 12 }), " Action Completed")) : /* @__PURE__ */ React51.createElement("h4", { className: "text-sm text-black mb-1" }, selectedNotif.title), /* @__PURE__ */ React51.createElement("span", { className: "text-xs text-stone-400 tracking-widest mb-4 block" }, formatNotifDate(selectedNotif.createdAt)), /* @__PURE__ */ React51.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__ */ React51.createElement("div", { className: `mt-8 flex gap-3 pt-6 ${selectedNotif.meta_json?.completed ? "opacity-40 pointer-events-none cursor-not-allowed" : ""}` }, /* @__PURE__ */ React51.createElement(
|
|
5401
5398
|
"button",
|
|
5402
5399
|
{
|
|
5403
5400
|
onClick: () => handleResolve("ACCEPTED"),
|
|
5404
5401
|
disabled: isResolving || selectedNotif.meta_json?.completed,
|
|
5405
5402
|
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"
|
|
5406
5403
|
},
|
|
5407
|
-
isResolving ? /* @__PURE__ */ React51.createElement(
|
|
5404
|
+
isResolving ? /* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: Loading03Icon24, className: "animate-spin", size: 16 }) : "Accept"
|
|
5408
5405
|
), /* @__PURE__ */ React51.createElement(
|
|
5409
5406
|
"button",
|
|
5410
5407
|
{
|
|
@@ -5432,7 +5429,7 @@ var UniversalHome2 = ({
|
|
|
5432
5429
|
onClick: () => onNotificationPageChange?.(notificationPage - 1),
|
|
5433
5430
|
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"
|
|
5434
5431
|
},
|
|
5435
|
-
/* @__PURE__ */ React51.createElement(
|
|
5432
|
+
/* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: ArrowLeft01Icon17, size: 12 })
|
|
5436
5433
|
), /* @__PURE__ */ React51.createElement(
|
|
5437
5434
|
"button",
|
|
5438
5435
|
{
|
|
@@ -5440,17 +5437,17 @@ var UniversalHome2 = ({
|
|
|
5440
5437
|
onClick: () => onNotificationPageChange?.(notificationPage + 1),
|
|
5441
5438
|
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"
|
|
5442
5439
|
},
|
|
5443
|
-
/* @__PURE__ */ React51.createElement(
|
|
5440
|
+
/* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: ArrowRight01Icon12, size: 12 })
|
|
5444
5441
|
))))));
|
|
5445
5442
|
};
|
|
5446
5443
|
|
|
5447
5444
|
// src/components/UniversalSettings.tsx
|
|
5448
5445
|
import React52, { useState as useState38, useEffect as useEffect21, useRef as useRef14 } from "react";
|
|
5449
5446
|
import toast14 from "react-hot-toast";
|
|
5450
|
-
import { HugeiconsIcon as
|
|
5447
|
+
import { HugeiconsIcon as HugeiconsIcon38 } from "@hugeicons/react";
|
|
5451
5448
|
import {
|
|
5452
5449
|
ArrowLeft01Icon as ArrowLeft01Icon18,
|
|
5453
|
-
ArrowRight01Icon as
|
|
5450
|
+
ArrowRight01Icon as ArrowRight01Icon13,
|
|
5454
5451
|
Loading03Icon as Loading03Icon25,
|
|
5455
5452
|
Search01Icon as Search01Icon6,
|
|
5456
5453
|
SearchList02Icon as SearchList02Icon3,
|
|
@@ -5478,9 +5475,9 @@ var MemberAvatar3 = ({ src, status, sizeClass = "w-10 h-10" }) => {
|
|
|
5478
5475
|
return "bg-stone-200";
|
|
5479
5476
|
}
|
|
5480
5477
|
};
|
|
5481
|
-
return /* @__PURE__ */ React52.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ React52.createElement("div", { className: "w-full h-full rounded-lg bg-stone-100 flex items-center justify-center overflow-hidden" }, !loaded && !error && /* @__PURE__ */ React52.createElement(
|
|
5478
|
+
return /* @__PURE__ */ React52.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ React52.createElement("div", { className: "w-full h-full rounded-lg bg-stone-100 flex items-center justify-center overflow-hidden" }, !loaded && !error && /* @__PURE__ */ React52.createElement(HugeiconsIcon38, { icon: Loading03Icon25, className: "animate-spin text-stone-400 absolute", size: 14 }), /* @__PURE__ */ React52.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__ */ React52.createElement("div", { className: `absolute -bottom-1 -right-1 w-3.5 h-3.5 rounded-full border-2 border-white z-10 ${getStatusColor()}` }));
|
|
5482
5479
|
};
|
|
5483
|
-
var PageSpinner8 = () => /* @__PURE__ */ React52.createElement("div", { className: "flex justify-center items-center py-12" }, /* @__PURE__ */ React52.createElement(
|
|
5480
|
+
var PageSpinner8 = () => /* @__PURE__ */ React52.createElement("div", { className: "flex justify-center items-center py-12" }, /* @__PURE__ */ React52.createElement(HugeiconsIcon38, { icon: Loading03Icon25, size: 32, className: "animate-spin mb-4 text-black" }));
|
|
5484
5481
|
var InputSpinner3 = () => /* @__PURE__ */ React52.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__ */ React52.createElement("circle", { className: "opacity-25", cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4" }), /* @__PURE__ */ React52.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" }));
|
|
5485
5482
|
var UniversalSettings = ({
|
|
5486
5483
|
accountType,
|
|
@@ -5666,7 +5663,7 @@ var UniversalSettings = ({
|
|
|
5666
5663
|
const isOrgSaveDisabled = isSavingOrg || !canManage || isCheckingSlug || !hasOrgChanges || orgName.length < 3 || orgSlug.length < 3 || orgSlug !== initialOrgSlug && slugAvailable === false;
|
|
5667
5664
|
const hasProfileChanges = `${firstName} ${lastName}`.trim() !== initialFullName;
|
|
5668
5665
|
const isProfileSaveDisabled = isSavingProfile || !hasProfileChanges || firstName.length < 2 || lastName.length < 2;
|
|
5669
|
-
return /* @__PURE__ */ React52.createElement("div", { className: "w-full max-w-3xl mx-auto flex flex-col animate-in fade-in duration-300" }, /* @__PURE__ */ React52.createElement(ManagedToaster, null), /* @__PURE__ */ React52.createElement("div", { className: "mb-6 flex w-full items-center px-1" }, /* @__PURE__ */ React52.createElement("button", { onClick: onBackHandler, className: "flex items-center gap-2 text-[#d97757] hover:text-[#d97757] transition-colors text-sm outline-none" }, /* @__PURE__ */ React52.createElement(
|
|
5666
|
+
return /* @__PURE__ */ React52.createElement("div", { className: "w-full max-w-3xl mx-auto flex flex-col animate-in fade-in duration-300" }, /* @__PURE__ */ React52.createElement(ManagedToaster, null), /* @__PURE__ */ React52.createElement("div", { className: "mb-6 flex w-full items-center px-1" }, /* @__PURE__ */ React52.createElement("button", { onClick: onBackHandler, className: "flex items-center gap-2 text-[#d97757] hover:text-[#d97757] transition-colors text-sm outline-none" }, /* @__PURE__ */ React52.createElement(HugeiconsIcon38, { icon: ArrowLeft01Icon18, size: 16 }), " Back")), /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col gap-1 mb-8 px-1" }, /* @__PURE__ */ React52.createElement("h1", { className: "text-black text-xl tracking-tight" }, "System Settings"), /* @__PURE__ */ React52.createElement("p", { className: "text-xs text-stone-500" }, "Manage your workspace identity, team configurations, and AI billing parameters.")), /* @__PURE__ */ React52.createElement("div", { className: "flex items-center gap-6 mb-6 overflow-x-auto custom-scrollbar px-1" }, isOrg && /* @__PURE__ */ React52.createElement("button", { onClick: () => {
|
|
5670
5667
|
setActiveTab("MEMBERS");
|
|
5671
5668
|
setExpandedId(null);
|
|
5672
5669
|
setIsInviteMode(false);
|
|
@@ -5683,7 +5680,7 @@ var UniversalSettings = ({
|
|
|
5683
5680
|
onClose: () => setMemberToRemove(null),
|
|
5684
5681
|
onConfirm: handleConfirmRemove
|
|
5685
5682
|
}
|
|
5686
|
-
), !isInviteMode && !activeExpandedMember && /* @__PURE__ */ React52.createElement("div", { className: "flex flex-row flex-nowrap mb-4 items-center justify-between gap-4 w-full px-1" }, /* @__PURE__ */ React52.createElement("div", { className: "relative flex-1 min-w-0 max-w-full" }, /* @__PURE__ */ React52.createElement("div", { className: "absolute inset-y-0 left-0 pl-4 flex items-center pointer-events-none" }, /* @__PURE__ */ React52.createElement(
|
|
5683
|
+
), !isInviteMode && !activeExpandedMember && /* @__PURE__ */ React52.createElement("div", { className: "flex flex-row flex-nowrap mb-4 items-center justify-between gap-4 w-full px-1" }, /* @__PURE__ */ React52.createElement("div", { className: "relative flex-1 min-w-0 max-w-full" }, /* @__PURE__ */ React52.createElement("div", { className: "absolute inset-y-0 left-0 pl-4 flex items-center pointer-events-none" }, /* @__PURE__ */ React52.createElement(HugeiconsIcon38, { icon: Search01Icon6, size: 16, className: "text-stone-400" })), /* @__PURE__ */ React52.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-black" })), /* @__PURE__ */ React52.createElement("div", { className: "flex items-center gap-3 w-auto pb-0 shrink-0" }, /* @__PURE__ */ React52.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__ */ React52.createElement(HugeiconsIcon38, { icon: SearchList02Icon3, size: 16 })), /* @__PURE__ */ React52.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__ */ React52.createElement(HugeiconsIcon38, { icon: ListSettingIcon3, size: 16 })))), /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col gap-8 p-6 rounded-2xl bg-white w-full" }, activeExpandedMember ? /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col animate-in fade-in zoom-in-95 duration-300 w-full" }, /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col gap-1 mb-8" }, /* @__PURE__ */ React52.createElement("h2", { className: "text-black text-xl tracking-tight" }, "Member Profile"), /* @__PURE__ */ React52.createElement("p", { className: "text-xs text-stone-500" }, "View and manage this member's access privileges.")), /* @__PURE__ */ React52.createElement("div", { className: "flex items-center gap-4 mb-8" }, /* @__PURE__ */ React52.createElement(MemberAvatar3, { src: activeExpandedMember.avatarUrl, status: activeExpandedMember.status, sizeClass: "w-14 h-14" }), /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col min-w-0" }, /* @__PURE__ */ React52.createElement("span", { className: "text-sm text-black tracking-tight truncate" }, activeExpandedMember.fullName), /* @__PURE__ */ React52.createElement("div", { className: "flex items-center gap-2 mt-0.5" }, /* @__PURE__ */ React52.createElement("span", { className: "text-xs text-stone-500 capitalize" }, activeExpandedMember.role.toLowerCase()), canManage && !activeExpandedMember.isRootAdmin && (isUpdatingRole ? /* @__PURE__ */ React52.createElement(HugeiconsIcon38, { icon: Loading03Icon25, size: 12, className: "animate-spin text-stone-400 ml-1" }) : /* @__PURE__ */ React52.createElement("button", { onClick: () => setRoleEditTarget(activeExpandedMember), className: "text-xs text-[#d97757] hover:underline outline-none" }, "Edit"))))), /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col sm:flex-row gap-3 pt-6 " }, canManage && !activeExpandedMember.isRootAdmin && /* @__PURE__ */ React52.createElement(
|
|
5687
5684
|
"button",
|
|
5688
5685
|
{
|
|
5689
5686
|
onClick: () => setMemberToRemove(activeExpandedMember),
|
|
@@ -5694,19 +5691,19 @@ var UniversalSettings = ({
|
|
|
5694
5691
|
), /* @__PURE__ */ React52.createElement("button", { onClick: () => setExpandedId(null), disabled: isUpdatingRole, className: "w-full sm:flex-1 py-2.5 bg-white border border-stone-200 text-black hover:bg-stone-100 rounded-full text-xs tracking-wide transition-colors outline-none disabled:opacity-50" }, "Close Profile"))) : /* @__PURE__ */ React52.createElement(React52.Fragment, null, /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col gap-1" }, /* @__PURE__ */ React52.createElement("div", { className: "flex flex-row items-center justify-between gap-4" }, /* @__PURE__ */ React52.createElement("h2", { className: "text-black text-xl tracking-tight" }, isInviteMode ? "Add Member" : "Team Directory"), !isInviteMode && canManage && /* @__PURE__ */ React52.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__ */ React52.createElement("p", { className: "text-xs text-stone-500" }, "Manage members and access controls across your organization.")), /* @__PURE__ */ React52.createElement("div", { className: "w-full overflow-hidden" }, isInviteMode ? /* @__PURE__ */ React52.createElement("form", { onSubmit: handleInviteSubmit, className: "flex flex-col gap-8 animate-in fade-in duration-300" }, /* @__PURE__ */ React52.createElement("div", { className: "space-y-1.5 mt-2" }, /* @__PURE__ */ React52.createElement("label", { className: "text-xs text-stone-400 tracking-[0.2em] block" }, "Email Address"), /* @__PURE__ */ React52.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__ */ React52.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ React52.createElement(ThreeDActionButton, { type: "submit", disabled: inviteEmail.length < 5 || isInviting, isLoading: isInviting, className: "w-full" }, "Send Invitation"), /* @__PURE__ */ React52.createElement("button", { type: "button", onClick: () => {
|
|
5695
5692
|
setIsInviteMode(false);
|
|
5696
5693
|
setInviteEmail("");
|
|
5697
|
-
}, 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__ */ React52.createElement(PageSpinner8, null) : /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col min-w-0 animate-in fade-in duration-300" }, /* @__PURE__ */ React52.createElement("div", null, members.length === 0 ? /* @__PURE__ */ React52.createElement("p", { className: "text-xs text-stone-400 py-6 text-center" }, "No members found") : members.map((member) => /* @__PURE__ */ React52.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__ */ React52.createElement("div", { className: "flex items-center gap-4 min-w-0 flex-1" }, /* @__PURE__ */ React52.createElement(MemberAvatar3, { src: member.avatarUrl, status: member.status }), /* @__PURE__ */ React52.createElement("div", { className: "min-w-0 flex-1 flex flex-col gap-0.5" }, /* @__PURE__ */ React52.createElement("p", { className: "text-sm text-black truncate" }, member.fullName), /* @__PURE__ */ React52.createElement("p", { className: "text-xs text-stone-500 capitalize truncate" }, member.role.toLowerCase())))))), /* @__PURE__ */ React52.createElement("div", { className: "flex items-center justify-between pt-6 mt-2 " }, /* @__PURE__ */ React52.createElement("span", { className: "text-xs text-stone-400 tracking-[0.2em]" }, "Page ", membersCurrentPage, " of ", membersTotalPages === 0 ? 1 : membersTotalPages), /* @__PURE__ */ React52.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React52.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__ */ React52.createElement(
|
|
5694
|
+
}, 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__ */ React52.createElement(PageSpinner8, null) : /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col min-w-0 animate-in fade-in duration-300" }, /* @__PURE__ */ React52.createElement("div", null, members.length === 0 ? /* @__PURE__ */ React52.createElement("p", { className: "text-xs text-stone-400 py-6 text-center" }, "No members found") : members.map((member) => /* @__PURE__ */ React52.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__ */ React52.createElement("div", { className: "flex items-center gap-4 min-w-0 flex-1" }, /* @__PURE__ */ React52.createElement(MemberAvatar3, { src: member.avatarUrl, status: member.status }), /* @__PURE__ */ React52.createElement("div", { className: "min-w-0 flex-1 flex flex-col gap-0.5" }, /* @__PURE__ */ React52.createElement("p", { className: "text-sm text-black truncate" }, member.fullName), /* @__PURE__ */ React52.createElement("p", { className: "text-xs text-stone-500 capitalize truncate" }, member.role.toLowerCase())))))), /* @__PURE__ */ React52.createElement("div", { className: "flex items-center justify-between pt-6 mt-2 " }, /* @__PURE__ */ React52.createElement("span", { className: "text-xs text-stone-400 tracking-[0.2em]" }, "Page ", membersCurrentPage, " of ", membersTotalPages === 0 ? 1 : membersTotalPages), /* @__PURE__ */ React52.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React52.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__ */ React52.createElement(HugeiconsIcon38, { icon: ArrowLeft01Icon18, size: 14 })), /* @__PURE__ */ React52.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__ */ React52.createElement(HugeiconsIcon38, { icon: ArrowRight01Icon13, size: 14 })))))))), /* @__PURE__ */ React52.createElement(ReusableOptions, { isOpen: isStatusModalOpen, onClose: () => setIsStatusModalOpen(false), title: "Status Filter", options: ["ALL", "ACTIVE", "BUSY", "OFFLINE", "AWAY"], selectedOption: activeStatusFilter, onSelect: (status) => onStatusFilterChange(status) }), /* @__PURE__ */ React52.createElement(ReusableOptions, { isOpen: isRoleModalOpen, onClose: () => setIsRoleModalOpen(false), title: "Role Filter", options: ["ALL", "ADMIN", "MANAGER", "MEMBER", "GUEST"], selectedOption: activeRoleFilter, onSelect: (role) => onRoleFilterChange(role) }), /* @__PURE__ */ React52.createElement(ReusableOptions, { isOpen: !!roleEditTarget, onClose: () => setRoleEditTarget(null), title: "Modify Access Role", options: ["ADMIN", "MANAGER", "MEMBER"], selectedOption: roleEditTarget?.role || "", onSelect: handleRoleUpdate })), activeTab === "ORGANIZATION" && isOrg && /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col gap-8 animate-in rounded-2xl p-6 bg-white fade-in duration-300" }, /* @__PURE__ */ React52.createElement("div", { className: "flex items-start justify-between gap-4" }, /* @__PURE__ */ React52.createElement("div", null, /* @__PURE__ */ React52.createElement("h2", { className: "text-black text-xl mb-1 tracking-tight" }, "Workspace Details"), /* @__PURE__ */ React52.createElement("p", { className: "text-xs text-stone-500" }, "Manage your organizational identity and handles.")), !canManage && /* @__PURE__ */ React52.createElement("span", { className: "p-2 w-9 h-9 bg-stone-100 text-stone-400 rounded-full shrink-0" }, /* @__PURE__ */ React52.createElement(HugeiconsIcon38, { icon: CircleLock02Icon3, size: 18, className: "text-current" }))), /* @__PURE__ */ React52.createElement("form", { className: "flex flex-col gap-8 w-full max-w-5xl", onSubmit: handleSaveOrganization, autoComplete: "off" }, /* @__PURE__ */ React52.createElement(TextInput, { label: "Workspace Name", value: orgName, onChange: handleOrgNameChange, disabled: !canManage || isSavingOrg, placeholder: "Acme Corporation", maxLength: 50 }), /* @__PURE__ */ React52.createElement("div", { className: "space-y-1.5 relative w-full" }, /* @__PURE__ */ React52.createElement("label", { className: "text-xs text-stone-400 tracking-[0.2em] block" }, "Workspace Handle"), /* @__PURE__ */ React52.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__ */ React52.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__ */ React52.createElement("div", { className: "absolute right-2 top-1/2 -translate-y-1/2" }, isCheckingSlug && /* @__PURE__ */ React52.createElement(InputSpinner3, null), !isCheckingSlug && canManage && orgSlug !== initialOrgSlug && orgSlug.length >= 3 && slugAvailable === false && /* @__PURE__ */ React52.createElement("span", { className: "inline-flex items-center justify-center w-4 h-4 rounded-full bg-red-100" }, /* @__PURE__ */ React52.createElement("svg", { className: "w-2 h-2 text-red-600", viewBox: "0 0 20 20", fill: "currentColor" }, /* @__PURE__ */ React52.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__ */ React52.createElement("span", { className: "inline-flex items-center justify-center w-4 h-4 rounded-full bg-green-100" }, /* @__PURE__ */ React52.createElement("svg", { className: "w-2 h-2 text-green-600", viewBox: "0 0 20 20", fill: "currentColor" }, /* @__PURE__ */ React52.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__ */ React52.createElement("div", { className: "pt-8 mt-2 flex items-center gap-4" }, /* @__PURE__ */ React52.createElement(ThreeDActionButton, { type: "submit", disabled: isOrgSaveDisabled, isLoading: isSavingOrg, className: "min-w-32" }, "Save Changes"), hasOrgChanges && !isSavingOrg && canManage && /* @__PURE__ */ React52.createElement("button", { type: "button", onClick: () => {
|
|
5698
5695
|
setOrgName(initialOrgName || "");
|
|
5699
5696
|
setOrgSlug(initialOrgSlug || "");
|
|
5700
|
-
}, className: "text-xs tracking-widest text-stone-400 hover:text-black transition-colors outline-none" }, "Cancel")))), activeTab === "ACCOUNT" && /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col gap-6 animate-in fade-in duration-300" }, /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col gap-8 rounded-2xl p-6 bg-white w-full" }, /* @__PURE__ */ React52.createElement("div", { className: "flex items-start justify-between gap-4" }, /* @__PURE__ */ React52.createElement("div", null, /* @__PURE__ */ React52.createElement("h2", { className: "text-black text-xl mb-1 tracking-tight" }, "Personal Identity"), /* @__PURE__ */ React52.createElement("p", { className: "text-xs text-stone-500" }, "Update your system display name and contact email."))), /* @__PURE__ */ React52.createElement("form", { className: "flex flex-col gap-6 w-full max-w-5xl", onSubmit: handleSaveProfile, autoComplete: "off" }, /* @__PURE__ */ React52.createElement("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-6" }, /* @__PURE__ */ React52.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__ */ React52.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__ */ React52.createElement("div", { className: "space-y-1.5 w-full" }, /* @__PURE__ */ React52.createElement("label", { className: "text-xs text-stone-400 tracking-[0.2em] block" }, "Email Address"), /* @__PURE__ */ React52.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__ */ React52.createElement("div", { className: "pt-4 flex items-center gap-4" }, /* @__PURE__ */ React52.createElement(ThreeDActionButton, { type: "submit", disabled: isProfileSaveDisabled, isLoading: isSavingProfile, className: "min-w-32" }, "Update Identity")))), /* @__PURE__ */ React52.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__ */ React52.createElement("div", { className: "flex flex-col items-start max-w-sm" }, /* @__PURE__ */ React52.createElement("p", { className: "text-xs text-stone-400 tracking-[0.2em] mb-2 uppercase" }, "AI Credits Balance"), isBillingLoading ? /* @__PURE__ */ React52.createElement("div", { className: "h-8 w-32 bg-stone-100 animate-pulse rounded mt-1" }) : /* @__PURE__ */ React52.createElement("div", { className: "flex items-center gap-2 mt-1" }, /* @__PURE__ */ React52.createElement(
|
|
5697
|
+
}, className: "text-xs tracking-widest text-stone-400 hover:text-black transition-colors outline-none" }, "Cancel")))), activeTab === "ACCOUNT" && /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col gap-6 animate-in fade-in duration-300" }, /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col gap-8 rounded-2xl p-6 bg-white w-full" }, /* @__PURE__ */ React52.createElement("div", { className: "flex items-start justify-between gap-4" }, /* @__PURE__ */ React52.createElement("div", null, /* @__PURE__ */ React52.createElement("h2", { className: "text-black text-xl mb-1 tracking-tight" }, "Personal Identity"), /* @__PURE__ */ React52.createElement("p", { className: "text-xs text-stone-500" }, "Update your system display name and contact email."))), /* @__PURE__ */ React52.createElement("form", { className: "flex flex-col gap-6 w-full max-w-5xl", onSubmit: handleSaveProfile, autoComplete: "off" }, /* @__PURE__ */ React52.createElement("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-6" }, /* @__PURE__ */ React52.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__ */ React52.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__ */ React52.createElement("div", { className: "space-y-1.5 w-full" }, /* @__PURE__ */ React52.createElement("label", { className: "text-xs text-stone-400 tracking-[0.2em] block" }, "Email Address"), /* @__PURE__ */ React52.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__ */ React52.createElement("div", { className: "pt-4 flex items-center gap-4" }, /* @__PURE__ */ React52.createElement(ThreeDActionButton, { type: "submit", disabled: isProfileSaveDisabled, isLoading: isSavingProfile, className: "min-w-32" }, "Update Identity")))), /* @__PURE__ */ React52.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__ */ React52.createElement("div", { className: "flex flex-col items-start max-w-sm" }, /* @__PURE__ */ React52.createElement("p", { className: "text-xs text-stone-400 tracking-[0.2em] mb-2 uppercase" }, "AI Credits Balance"), isBillingLoading ? /* @__PURE__ */ React52.createElement("div", { className: "h-8 w-32 bg-stone-100 animate-pulse rounded mt-1" }) : /* @__PURE__ */ React52.createElement("div", { className: "flex items-center gap-2 mt-1" }, /* @__PURE__ */ React52.createElement(HugeiconsIcon38, { icon: Coins01Icon, size: 28, className: "text-[#d97757]" }), /* @__PURE__ */ React52.createElement("span", { className: "text-3xl text-black tracking-tight" }, aiCredits)), /* @__PURE__ */ React52.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__ */ React52.createElement("button", { onClick: onTopUp, className: "w-12 h-12 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__ */ React52.createElement(HugeiconsIcon38, { icon: PlusSignIcon3, size: 20 })))));
|
|
5701
5698
|
};
|
|
5702
5699
|
|
|
5703
5700
|
// src/components/UniversalCreateHuddle.tsx
|
|
5704
5701
|
import React53, { useState as useState39, useEffect as useEffect22, useRef as useRef15 } from "react";
|
|
5705
5702
|
import toast15 from "react-hot-toast";
|
|
5706
|
-
import { HugeiconsIcon as
|
|
5703
|
+
import { HugeiconsIcon as HugeiconsIcon39 } from "@hugeicons/react";
|
|
5707
5704
|
import {
|
|
5708
5705
|
ArrowLeft01Icon as ArrowLeft01Icon19,
|
|
5709
|
-
ArrowRight01Icon as
|
|
5706
|
+
ArrowRight01Icon as ArrowRight01Icon14,
|
|
5710
5707
|
Loading03Icon as Loading03Icon26,
|
|
5711
5708
|
Search01Icon as Search01Icon7,
|
|
5712
5709
|
Calendar01Icon as Calendar01Icon2,
|
|
@@ -5719,7 +5716,7 @@ var MemberAvatar4 = ({ src, sizeClass = "w-10 h-10" }) => {
|
|
|
5719
5716
|
const [loaded, setLoaded] = useState39(false);
|
|
5720
5717
|
const [error, setError] = useState39(false);
|
|
5721
5718
|
const defaultAvatar = "https://storage.googleapis.com/retina-cloud-v2/assets/images/avatar.avif";
|
|
5722
|
-
return /* @__PURE__ */ React53.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ React53.createElement("div", { className: "w-full h-full rounded-lg bg-stone-100 flex items-center justify-center overflow-hidden" }, !loaded && !error && /* @__PURE__ */ React53.createElement(
|
|
5719
|
+
return /* @__PURE__ */ React53.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ React53.createElement("div", { className: "w-full h-full rounded-lg bg-stone-100 flex items-center justify-center overflow-hidden" }, !loaded && !error && /* @__PURE__ */ React53.createElement(HugeiconsIcon39, { icon: Loading03Icon26, className: "animate-spin text-stone-400 absolute", size: 14 }), /* @__PURE__ */ React53.createElement(
|
|
5723
5720
|
"img",
|
|
5724
5721
|
{
|
|
5725
5722
|
src: error || !src ? defaultAvatar : src,
|
|
@@ -5819,7 +5816,7 @@ var UniversalCreateHuddle = ({
|
|
|
5819
5816
|
setIsSubmitting(false);
|
|
5820
5817
|
}
|
|
5821
5818
|
};
|
|
5822
|
-
return /* @__PURE__ */ React53.createElement("div", { className: "w-full max-w-3xl mx-auto flex flex-col animate-in fade-in duration-300 relative" }, /* @__PURE__ */ React53.createElement(ManagedToaster, null), /* @__PURE__ */ React53.createElement("div", { className: "mb-6 flex w-full items-center px-1" }, /* @__PURE__ */ React53.createElement("a", { href: onBackHref, className: "flex items-center gap-2 text-[#d97757] hover:text-[#d97757] transition-colors text-sm outline-none" }, /* @__PURE__ */ React53.createElement(
|
|
5819
|
+
return /* @__PURE__ */ React53.createElement("div", { className: "w-full max-w-3xl mx-auto flex flex-col animate-in fade-in duration-300 relative" }, /* @__PURE__ */ React53.createElement(ManagedToaster, null), /* @__PURE__ */ React53.createElement("div", { className: "mb-6 flex w-full items-center px-1" }, /* @__PURE__ */ React53.createElement("a", { href: onBackHref, className: "flex items-center gap-2 text-[#d97757] hover:text-[#d97757] transition-colors text-sm outline-none" }, /* @__PURE__ */ React53.createElement(HugeiconsIcon39, { icon: ArrowLeft01Icon19, size: 16 }), " Back")), /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col gap-1 mb-8 px-1" }, /* @__PURE__ */ React53.createElement("h1", { className: "text-black text-xl tracking-tight" }, "Create Huddle"), /* @__PURE__ */ React53.createElement("p", { className: "text-xs text-stone-500" }, "Schedule a new workspace huddle and manage participant access.")), /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col gap-8 animate-in rounded-2xl p-6 bg-white fade-in duration-300" }, /* @__PURE__ */ React53.createElement("form", { className: "flex flex-col gap-8", onSubmit: handleSubmit, autoComplete: "off" }, !canManage && /* @__PURE__ */ React53.createElement("div", { className: "flex items-start gap-3 p-4 bg-stone-50 rounded-xl" }, /* @__PURE__ */ React53.createElement(HugeiconsIcon39, { icon: CircleLock02Icon4, size: 20, className: "text-stone-500 shrink-0 mt-0.5" }), /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col" }, /* @__PURE__ */ React53.createElement("span", { className: "text-sm text-black tracking-tight" }, "Access Restricted"), /* @__PURE__ */ React53.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__ */ React53.createElement(
|
|
5823
5820
|
TextInput,
|
|
5824
5821
|
{
|
|
5825
5822
|
label: "Huddle Subject",
|
|
@@ -5835,7 +5832,7 @@ var UniversalCreateHuddle = ({
|
|
|
5835
5832
|
onClick: () => canManage && !isSubmitting && setCalendarMode("DATE"),
|
|
5836
5833
|
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"}`
|
|
5837
5834
|
},
|
|
5838
|
-
/* @__PURE__ */ React53.createElement(
|
|
5835
|
+
/* @__PURE__ */ React53.createElement(HugeiconsIcon39, { icon: Calendar01Icon2, size: 16, className: "text-stone-400 absolute left-0" }),
|
|
5839
5836
|
/* @__PURE__ */ React53.createElement("span", { className: "w-full pl-8 text-sm text-black truncate block" }, huddleDate.toLocaleDateString("en-GB", { day: "2-digit", month: "short", year: "numeric" }))
|
|
5840
5837
|
)), /* @__PURE__ */ React53.createElement("div", { className: "space-y-1.5 w-full" }, /* @__PURE__ */ React53.createElement("label", { className: "text-xs text-stone-400 tracking-[0.2em] block" }, "Time"), /* @__PURE__ */ React53.createElement(
|
|
5841
5838
|
"div",
|
|
@@ -5843,7 +5840,7 @@ var UniversalCreateHuddle = ({
|
|
|
5843
5840
|
onClick: () => canManage && !isSubmitting && setCalendarMode("TIME"),
|
|
5844
5841
|
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"}`
|
|
5845
5842
|
},
|
|
5846
|
-
/* @__PURE__ */ React53.createElement(
|
|
5843
|
+
/* @__PURE__ */ React53.createElement(HugeiconsIcon39, { icon: Clock01Icon2, size: 16, className: "text-stone-400 absolute left-0" }),
|
|
5847
5844
|
/* @__PURE__ */ React53.createElement("span", { className: "w-full pl-8 text-sm text-black truncate block" }, huddleDate.toLocaleTimeString([], { hour: "2-digit", minute: "2-digit" }))
|
|
5848
5845
|
)), /* @__PURE__ */ React53.createElement("div", { className: "space-y-1.5 w-full" }, /* @__PURE__ */ React53.createElement("label", { className: "text-xs text-stone-400 tracking-[0.2em] block" }, "Timezone"), /* @__PURE__ */ React53.createElement(
|
|
5849
5846
|
"div",
|
|
@@ -5851,7 +5848,7 @@ var UniversalCreateHuddle = ({
|
|
|
5851
5848
|
onClick: () => canManage && !isSubmitting && setShowTimezoneModal(true),
|
|
5852
5849
|
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"}`
|
|
5853
5850
|
},
|
|
5854
|
-
/* @__PURE__ */ React53.createElement(
|
|
5851
|
+
/* @__PURE__ */ React53.createElement(HugeiconsIcon39, { icon: Globe02Icon2, size: 16, className: "text-stone-400 absolute left-0" }),
|
|
5855
5852
|
/* @__PURE__ */ React53.createElement("span", { className: "w-full pl-8 text-sm text-black truncate block" }, timezone)
|
|
5856
5853
|
))), /* @__PURE__ */ React53.createElement("div", { className: `flex items-center justify-between py-2 mt-2 ${!canManage ? "opacity-50 pointer-events-none" : ""}` }, /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col" }, /* @__PURE__ */ React53.createElement("span", { className: "text-sm text-black tracking-tight" }, "Private Huddle"), /* @__PURE__ */ React53.createElement("span", { className: "text-xs text-stone-500" }, "Only invited members can join.")), /* @__PURE__ */ React53.createElement(
|
|
5857
5854
|
"button",
|
|
@@ -5900,7 +5897,7 @@ var UniversalCreateHuddle = ({
|
|
|
5900
5897
|
onSelect: (tz) => setTimezone(tz),
|
|
5901
5898
|
showSearch: true
|
|
5902
5899
|
}
|
|
5903
|
-
)), showMembersModal && canManage && /* @__PURE__ */ React53.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React53.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setShowMembersModal(false) }), /* @__PURE__ */ React53.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__ */ React53.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, /* @__PURE__ */ React53.createElement("h3", { className: "text-sm text-black tracking-tight" }, "Select Participants"), /* @__PURE__ */ React53.createElement("button", { onClick: () => setShowMembersModal(false), className: "text-[#d97757] hover:text-[#d97757] transition-colors outline-none text-sm " }, "Done")), /* @__PURE__ */ React53.createElement("div", { className: "p-4 shrink-0 " }, /* @__PURE__ */ React53.createElement("div", { className: "relative w-full" }, /* @__PURE__ */ React53.createElement("div", { className: "absolute inset-y-0 left-0 pl-4 flex items-center pointer-events-none" }, /* @__PURE__ */ React53.createElement(
|
|
5900
|
+
)), showMembersModal && canManage && /* @__PURE__ */ React53.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React53.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setShowMembersModal(false) }), /* @__PURE__ */ React53.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__ */ React53.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, /* @__PURE__ */ React53.createElement("h3", { className: "text-sm text-black tracking-tight" }, "Select Participants"), /* @__PURE__ */ React53.createElement("button", { onClick: () => setShowMembersModal(false), className: "text-[#d97757] hover:text-[#d97757] transition-colors outline-none text-sm " }, "Done")), /* @__PURE__ */ React53.createElement("div", { className: "p-4 shrink-0 " }, /* @__PURE__ */ React53.createElement("div", { className: "relative w-full" }, /* @__PURE__ */ React53.createElement("div", { className: "absolute inset-y-0 left-0 pl-4 flex items-center pointer-events-none" }, /* @__PURE__ */ React53.createElement(HugeiconsIcon39, { icon: Search01Icon7, size: 16, className: "text-stone-400" })), /* @__PURE__ */ React53.createElement(
|
|
5904
5901
|
"input",
|
|
5905
5902
|
{
|
|
5906
5903
|
type: "text",
|
|
@@ -5909,7 +5906,7 @@ var UniversalCreateHuddle = ({
|
|
|
5909
5906
|
onChange: handleSearchInput,
|
|
5910
5907
|
className: "w-full pl-10 pr-4 py-2.5 bg-stone-100 rounded-full text-sm text-black placeholder-stone-400 outline-none focus:bg-stone-200 transition-colors"
|
|
5911
5908
|
}
|
|
5912
|
-
))), /* @__PURE__ */ React53.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-2 relative" }, isMembersLoading || isTyping ? /* @__PURE__ */ React53.createElement("div", { className: "absolute inset-0 flex items-center justify-center" }, /* @__PURE__ */ React53.createElement(
|
|
5909
|
+
))), /* @__PURE__ */ React53.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-2 relative" }, isMembersLoading || isTyping ? /* @__PURE__ */ React53.createElement("div", { className: "absolute inset-0 flex items-center justify-center" }, /* @__PURE__ */ React53.createElement(HugeiconsIcon39, { icon: Loading03Icon26, size: 28, className: "animate-spin text-black" })) : members.length === 0 ? /* @__PURE__ */ React53.createElement("div", { className: "p-8 text-center text-xs text-stone-400" }, "No members found.") : members.map((member) => {
|
|
5913
5910
|
const isChecked = selectedParticipants.has(member.userId);
|
|
5914
5911
|
return /* @__PURE__ */ React53.createElement(
|
|
5915
5912
|
"div",
|
|
@@ -5919,7 +5916,7 @@ var UniversalCreateHuddle = ({
|
|
|
5919
5916
|
className: "flex items-center justify-between p-3 rounded-xl cursor-pointer hover:bg-stone-50 transition-colors select-none"
|
|
5920
5917
|
},
|
|
5921
5918
|
/* @__PURE__ */ React53.createElement("div", { className: "flex items-center gap-3 min-w-0 flex-1" }, /* @__PURE__ */ React53.createElement(MemberAvatar4, { src: member.avatarUrl, sizeClass: "w-9 h-9" }), /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col min-w-0 flex-1" }, /* @__PURE__ */ React53.createElement("span", { className: "text-sm text-black truncate" }, member.fullName), /* @__PURE__ */ React53.createElement("span", { className: "text-xs text-stone-400 capitalize truncate" }, member.role.toLowerCase()))),
|
|
5922
|
-
/* @__PURE__ */ React53.createElement("div", { className: "shrink-0 pl-3" }, /* @__PURE__ */ React53.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__ */ React53.createElement(
|
|
5919
|
+
/* @__PURE__ */ React53.createElement("div", { className: "shrink-0 pl-3" }, /* @__PURE__ */ React53.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__ */ React53.createElement(HugeiconsIcon39, { icon: Tick02Icon3, size: 14, className: "text-white" })))
|
|
5923
5920
|
);
|
|
5924
5921
|
})), /* @__PURE__ */ React53.createElement("div", { className: "p-4 flex items-center justify-between shrink-0 bg-white" }, /* @__PURE__ */ React53.createElement("span", { className: "text-xs text-stone-400 tracking-widest" }, "Page ", membersCurrentPage, " of ", membersTotalPages === 0 ? 1 : membersTotalPages), /* @__PURE__ */ React53.createElement("div", { className: "flex gap-1" }, /* @__PURE__ */ React53.createElement(
|
|
5925
5922
|
"button",
|
|
@@ -5928,7 +5925,7 @@ var UniversalCreateHuddle = ({
|
|
|
5928
5925
|
onClick: () => onMembersPageChange(membersCurrentPage - 1),
|
|
5929
5926
|
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"
|
|
5930
5927
|
},
|
|
5931
|
-
/* @__PURE__ */ React53.createElement(
|
|
5928
|
+
/* @__PURE__ */ React53.createElement(HugeiconsIcon39, { icon: ArrowLeft01Icon19, size: 12 })
|
|
5932
5929
|
), /* @__PURE__ */ React53.createElement(
|
|
5933
5930
|
"button",
|
|
5934
5931
|
{
|
|
@@ -5936,7 +5933,7 @@ var UniversalCreateHuddle = ({
|
|
|
5936
5933
|
onClick: () => onMembersPageChange(membersCurrentPage + 1),
|
|
5937
5934
|
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"
|
|
5938
5935
|
},
|
|
5939
|
-
/* @__PURE__ */ React53.createElement(
|
|
5936
|
+
/* @__PURE__ */ React53.createElement(HugeiconsIcon39, { icon: ArrowRight01Icon14, size: 12 })
|
|
5940
5937
|
))))));
|
|
5941
5938
|
};
|
|
5942
5939
|
export {
|