@retinalabsllc/zairusjs 16.3.3 → 16.3.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 +1 -22
- package/dist/index.mjs +154 -175
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -2883,30 +2883,9 @@ var HeroSection = ({
|
|
|
2883
2883
|
var import_react46 = __toESM(require("react"));
|
|
2884
2884
|
var import_react47 = require("@hugeicons/react");
|
|
2885
2885
|
var AppBento2 = ({ tagline, headline, features }) => {
|
|
2886
|
-
const [isAnimating, setIsAnimating] = (0, import_react46.useState)(false);
|
|
2887
|
-
const titleRef = (0, import_react46.useRef)(null);
|
|
2888
|
-
(0, import_react46.useEffect)(() => {
|
|
2889
|
-
const observer = new IntersectionObserver(
|
|
2890
|
-
([entry]) => {
|
|
2891
|
-
if (entry.isIntersecting) {
|
|
2892
|
-
if (entry.boundingClientRect.top > 0) {
|
|
2893
|
-
setIsAnimating(true);
|
|
2894
|
-
}
|
|
2895
|
-
} else {
|
|
2896
|
-
setIsAnimating(false);
|
|
2897
|
-
}
|
|
2898
|
-
},
|
|
2899
|
-
{ threshold: 0.1 }
|
|
2900
|
-
);
|
|
2901
|
-
if (titleRef.current) {
|
|
2902
|
-
observer.observe(titleRef.current);
|
|
2903
|
-
}
|
|
2904
|
-
return () => observer.disconnect();
|
|
2905
|
-
}, []);
|
|
2906
2886
|
return /* @__PURE__ */ import_react46.default.createElement("div", { className: "w-full py-16" }, /* @__PURE__ */ import_react46.default.createElement("div", { className: "w-full flex justify-center px-4" }, /* @__PURE__ */ import_react46.default.createElement("div", { className: "max-w-6xl w-full" }, /* @__PURE__ */ import_react46.default.createElement("div", { className: "relative overflow-hidden mb-12 text-left" }, /* @__PURE__ */ import_react46.default.createElement("div", { className: "relative z-10" }, /* @__PURE__ */ import_react46.default.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500 block mb-4 " }, tagline), /* @__PURE__ */ import_react46.default.createElement(
|
|
2907
2887
|
"h2",
|
|
2908
2888
|
{
|
|
2909
|
-
ref: titleRef,
|
|
2910
2889
|
className: "text-3xl tracking-tight text-black leading-[1.1]"
|
|
2911
2890
|
},
|
|
2912
2891
|
headline
|
|
@@ -2927,7 +2906,7 @@ var AppBento2 = ({ tagline, headline, features }) => {
|
|
|
2927
2906
|
"div",
|
|
2928
2907
|
{
|
|
2929
2908
|
key: i,
|
|
2930
|
-
className: `relative rounded-
|
|
2909
|
+
className: `relative rounded-2xl overflow-hidden p-8 flex flex-col min-h-75 transition-all duration-300 group text-left ${getBgStyle()}`
|
|
2931
2910
|
},
|
|
2932
2911
|
/* @__PURE__ */ import_react46.default.createElement("div", { className: "absolute inset-0 overflow-hidden pointer-events-none z-0" }, /* @__PURE__ */ import_react46.default.createElement("div", { className: `absolute -bottom-8 -right-8 transform group-hover:scale-110 transition-transform duration-700 ease-out ${isBrand ? "text-white/10" : "text-black/5"}` }, /* @__PURE__ */ import_react46.default.createElement(import_react47.HugeiconsIcon, { icon: f.icon, size: 180 }))),
|
|
2933
2912
|
/* @__PURE__ */ import_react46.default.createElement("div", { className: "relative z-10 w-full h-full flex flex-col pointer-events-auto" }, /* @__PURE__ */ import_react46.default.createElement("div", { className: "flex items-center justify-between mb-8" }, /* @__PURE__ */ import_react46.default.createElement("span", { className: `text-[9px] tracking-widest ${labelColor}` }, f.label), /* @__PURE__ */ import_react46.default.createElement("div", { className: `p-2 rounded-full transition-colors ${isBrand ? "bg-white/20" : "bg-neutral-100"}` }, /* @__PURE__ */ import_react46.default.createElement(import_react47.HugeiconsIcon, { icon: f.icon, size: 20, className: textColor }))), /* @__PURE__ */ import_react46.default.createElement("div", { className: "mt-auto" }, /* @__PURE__ */ import_react46.default.createElement("h3", { className: `text-xl mb-2 tracking-tight ${textColor}` }, f.title), /* @__PURE__ */ import_react46.default.createElement("p", { className: `text-[13px] leading-relaxed max-w-sm ${subTextColor}` }, f.desc)))
|
package/dist/index.mjs
CHANGED
|
@@ -2873,33 +2873,12 @@ var HeroSection = ({
|
|
|
2873
2873
|
};
|
|
2874
2874
|
|
|
2875
2875
|
// src/components/AppBento2.tsx
|
|
2876
|
-
import React27
|
|
2876
|
+
import React27 from "react";
|
|
2877
2877
|
import { HugeiconsIcon as HugeiconsIcon20 } from "@hugeicons/react";
|
|
2878
2878
|
var AppBento2 = ({ tagline, headline, features }) => {
|
|
2879
|
-
const [isAnimating, setIsAnimating] = useState20(false);
|
|
2880
|
-
const titleRef = useRef6(null);
|
|
2881
|
-
useEffect11(() => {
|
|
2882
|
-
const observer = new IntersectionObserver(
|
|
2883
|
-
([entry]) => {
|
|
2884
|
-
if (entry.isIntersecting) {
|
|
2885
|
-
if (entry.boundingClientRect.top > 0) {
|
|
2886
|
-
setIsAnimating(true);
|
|
2887
|
-
}
|
|
2888
|
-
} else {
|
|
2889
|
-
setIsAnimating(false);
|
|
2890
|
-
}
|
|
2891
|
-
},
|
|
2892
|
-
{ threshold: 0.1 }
|
|
2893
|
-
);
|
|
2894
|
-
if (titleRef.current) {
|
|
2895
|
-
observer.observe(titleRef.current);
|
|
2896
|
-
}
|
|
2897
|
-
return () => observer.disconnect();
|
|
2898
|
-
}, []);
|
|
2899
2879
|
return /* @__PURE__ */ React27.createElement("div", { className: "w-full py-16" }, /* @__PURE__ */ React27.createElement("div", { className: "w-full flex justify-center px-4" }, /* @__PURE__ */ React27.createElement("div", { className: "max-w-6xl w-full" }, /* @__PURE__ */ React27.createElement("div", { className: "relative overflow-hidden mb-12 text-left" }, /* @__PURE__ */ React27.createElement("div", { className: "relative z-10" }, /* @__PURE__ */ React27.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500 block mb-4 " }, tagline), /* @__PURE__ */ React27.createElement(
|
|
2900
2880
|
"h2",
|
|
2901
2881
|
{
|
|
2902
|
-
ref: titleRef,
|
|
2903
2882
|
className: "text-3xl tracking-tight text-black leading-[1.1]"
|
|
2904
2883
|
},
|
|
2905
2884
|
headline
|
|
@@ -2920,7 +2899,7 @@ var AppBento2 = ({ tagline, headline, features }) => {
|
|
|
2920
2899
|
"div",
|
|
2921
2900
|
{
|
|
2922
2901
|
key: i,
|
|
2923
|
-
className: `relative rounded-
|
|
2902
|
+
className: `relative rounded-2xl overflow-hidden p-8 flex flex-col min-h-75 transition-all duration-300 group text-left ${getBgStyle()}`
|
|
2924
2903
|
},
|
|
2925
2904
|
/* @__PURE__ */ React27.createElement("div", { className: "absolute inset-0 overflow-hidden pointer-events-none z-0" }, /* @__PURE__ */ React27.createElement("div", { className: `absolute -bottom-8 -right-8 transform group-hover:scale-110 transition-transform duration-700 ease-out ${isBrand ? "text-white/10" : "text-black/5"}` }, /* @__PURE__ */ React27.createElement(HugeiconsIcon20, { icon: f.icon, size: 180 }))),
|
|
2926
2905
|
/* @__PURE__ */ React27.createElement("div", { className: "relative z-10 w-full h-full flex flex-col pointer-events-auto" }, /* @__PURE__ */ React27.createElement("div", { className: "flex items-center justify-between mb-8" }, /* @__PURE__ */ React27.createElement("span", { className: `text-[9px] tracking-widest ${labelColor}` }, f.label), /* @__PURE__ */ React27.createElement("div", { className: `p-2 rounded-full transition-colors ${isBrand ? "bg-white/20" : "bg-neutral-100"}` }, /* @__PURE__ */ React27.createElement(HugeiconsIcon20, { icon: f.icon, size: 20, className: textColor }))), /* @__PURE__ */ React27.createElement("div", { className: "mt-auto" }, /* @__PURE__ */ React27.createElement("h3", { className: `text-xl mb-2 tracking-tight ${textColor}` }, f.title), /* @__PURE__ */ React27.createElement("p", { className: `text-[13px] leading-relaxed max-w-sm ${subTextColor}` }, f.desc)))
|
|
@@ -2929,7 +2908,7 @@ var AppBento2 = ({ tagline, headline, features }) => {
|
|
|
2929
2908
|
};
|
|
2930
2909
|
|
|
2931
2910
|
// src/components/UniversalSecurityPage.tsx
|
|
2932
|
-
import React28, { useState as
|
|
2911
|
+
import React28, { useState as useState20 } from "react";
|
|
2933
2912
|
import toast8 from "react-hot-toast";
|
|
2934
2913
|
import { HugeiconsIcon as HugeiconsIcon21 } from "@hugeicons/react";
|
|
2935
2914
|
import {
|
|
@@ -2952,13 +2931,13 @@ var UniversalSecurityPage = ({
|
|
|
2952
2931
|
onVerifyAndEnablePasskey,
|
|
2953
2932
|
onDisablePasskey
|
|
2954
2933
|
}) => {
|
|
2955
|
-
const [showPasskeyModal, setShowPasskeyModal] =
|
|
2956
|
-
const [isSubmitting, setIsSubmitting] =
|
|
2957
|
-
const [isPasscodeModalOpen, setIsPasscodeModalOpen] =
|
|
2958
|
-
const [oldPasscode, setOldPasscode] =
|
|
2959
|
-
const [newPasscode, setNewPasscode] =
|
|
2960
|
-
const [confirmPasscode, setConfirmPasscode] =
|
|
2961
|
-
const [isPasscodeSubmitting, setIsPasscodeSubmitting] =
|
|
2934
|
+
const [showPasskeyModal, setShowPasskeyModal] = useState20(false);
|
|
2935
|
+
const [isSubmitting, setIsSubmitting] = useState20(false);
|
|
2936
|
+
const [isPasscodeModalOpen, setIsPasscodeModalOpen] = useState20(false);
|
|
2937
|
+
const [oldPasscode, setOldPasscode] = useState20("");
|
|
2938
|
+
const [newPasscode, setNewPasscode] = useState20("");
|
|
2939
|
+
const [confirmPasscode, setConfirmPasscode] = useState20("");
|
|
2940
|
+
const [isPasscodeSubmitting, setIsPasscodeSubmitting] = useState20(false);
|
|
2962
2941
|
const handleTogglePasskey = () => {
|
|
2963
2942
|
if (isPasskeyLoading) return;
|
|
2964
2943
|
if (hasPasskey) {
|
|
@@ -3135,13 +3114,13 @@ var MenuRow3 = ({
|
|
|
3135
3114
|
);
|
|
3136
3115
|
|
|
3137
3116
|
// src/components/FeatureScroll.tsx
|
|
3138
|
-
import React29, { useRef as
|
|
3117
|
+
import React29, { useRef as useRef6, useState as useState21, useEffect as useEffect11 } from "react";
|
|
3139
3118
|
import Image4 from "next/image";
|
|
3140
3119
|
import { HugeiconsIcon as HugeiconsIcon22 } from "@hugeicons/react";
|
|
3141
3120
|
import { ArrowLeft01Icon as ArrowLeft01Icon9, ArrowRight01Icon as ArrowRight01Icon8, Loading03Icon as Loading03Icon13 } from "@hugeicons/core-free-icons";
|
|
3142
3121
|
var FeatureCard = ({ feature, bgImage }) => {
|
|
3143
|
-
const [isBgLoading, setIsBgLoading] =
|
|
3144
|
-
const [isFgLoading, setIsFgLoading] =
|
|
3122
|
+
const [isBgLoading, setIsBgLoading] = useState21(true);
|
|
3123
|
+
const [isFgLoading, setIsFgLoading] = useState21(!!feature.image);
|
|
3145
3124
|
return /* @__PURE__ */ React29.createElement("div", { className: "flex flex-col shrink-0 w-[90vw] sm:w-150 snap-center md:snap-start group cursor-grab active:cursor-grabbing" }, /* @__PURE__ */ React29.createElement("div", { className: "relative w-full aspect-16/10 bg-neutral-100 rounded-2xl overflow-hidden mb-6 flex items-center justify-center" }, /* @__PURE__ */ React29.createElement(
|
|
3146
3125
|
Image4,
|
|
3147
3126
|
{
|
|
@@ -3179,9 +3158,9 @@ var FeatureCard = ({ feature, bgImage }) => {
|
|
|
3179
3158
|
))), /* @__PURE__ */ React29.createElement("div", { className: "flex flex-col text-left pr-4" }, /* @__PURE__ */ React29.createElement("h3", { className: " text-xl tracking-tight text-black mb-2" }, feature.title), /* @__PURE__ */ React29.createElement("p", { className: "text-[13px] leading-relaxed text-neutral-600 max-w-[90%]" }, feature.desc)));
|
|
3180
3159
|
};
|
|
3181
3160
|
var FeatureScroll = ({ tagline, headline, features }) => {
|
|
3182
|
-
const scrollRef =
|
|
3183
|
-
const [canScrollLeft, setCanScrollLeft] =
|
|
3184
|
-
const [canScrollRight, setCanScrollRight] =
|
|
3161
|
+
const scrollRef = useRef6(null);
|
|
3162
|
+
const [canScrollLeft, setCanScrollLeft] = useState21(false);
|
|
3163
|
+
const [canScrollRight, setCanScrollRight] = useState21(true);
|
|
3185
3164
|
const checkScroll = () => {
|
|
3186
3165
|
if (scrollRef.current) {
|
|
3187
3166
|
const { scrollLeft, scrollWidth, clientWidth } = scrollRef.current;
|
|
@@ -3189,7 +3168,7 @@ var FeatureScroll = ({ tagline, headline, features }) => {
|
|
|
3189
3168
|
setCanScrollRight(scrollLeft < scrollWidth - clientWidth - 2);
|
|
3190
3169
|
}
|
|
3191
3170
|
};
|
|
3192
|
-
|
|
3171
|
+
useEffect11(() => {
|
|
3193
3172
|
checkScroll();
|
|
3194
3173
|
window.addEventListener("resize", checkScroll);
|
|
3195
3174
|
return () => window.removeEventListener("resize", checkScroll);
|
|
@@ -3270,7 +3249,7 @@ var PlatformFeatures = ({
|
|
|
3270
3249
|
};
|
|
3271
3250
|
|
|
3272
3251
|
// src/components/ManagedDocument.tsx
|
|
3273
|
-
import React31, { useState as
|
|
3252
|
+
import React31, { useState as useState22, useEffect as useEffect12, useRef as useRef7 } from "react";
|
|
3274
3253
|
var ManagedDocument = ({
|
|
3275
3254
|
tagline,
|
|
3276
3255
|
title,
|
|
@@ -3278,9 +3257,9 @@ var ManagedDocument = ({
|
|
|
3278
3257
|
contactText,
|
|
3279
3258
|
contactEmail
|
|
3280
3259
|
}) => {
|
|
3281
|
-
const [isAnimating, setIsAnimating] =
|
|
3282
|
-
const titleRef =
|
|
3283
|
-
|
|
3260
|
+
const [isAnimating, setIsAnimating] = useState22(false);
|
|
3261
|
+
const titleRef = useRef7(null);
|
|
3262
|
+
useEffect12(() => {
|
|
3284
3263
|
const observer = new IntersectionObserver(
|
|
3285
3264
|
([entry]) => {
|
|
3286
3265
|
if (entry.isIntersecting) {
|
|
@@ -3320,11 +3299,11 @@ var ManagedDocument = ({
|
|
|
3320
3299
|
};
|
|
3321
3300
|
|
|
3322
3301
|
// src/components/ManagedContactBlock.tsx
|
|
3323
|
-
import React32, { useState as
|
|
3302
|
+
import React32, { useState as useState23, useEffect as useEffect13 } from "react";
|
|
3324
3303
|
import { HugeiconsIcon as HugeiconsIcon24 } from "@hugeicons/react";
|
|
3325
3304
|
var SecureEmail = ({ user, domain, className }) => {
|
|
3326
|
-
const [isMounted, setIsMounted] =
|
|
3327
|
-
|
|
3305
|
+
const [isMounted, setIsMounted] = useState23(false);
|
|
3306
|
+
useEffect13(() => {
|
|
3328
3307
|
setIsMounted(true);
|
|
3329
3308
|
}, []);
|
|
3330
3309
|
if (!isMounted) {
|
|
@@ -3385,7 +3364,7 @@ var ManagedContactBlock = ({
|
|
|
3385
3364
|
};
|
|
3386
3365
|
|
|
3387
3366
|
// src/components/ManagedPricingBlock.tsx
|
|
3388
|
-
import React33, { useState as
|
|
3367
|
+
import React33, { useState as useState24, useEffect as useEffect14, useRef as useRef8 } from "react";
|
|
3389
3368
|
import Link7 from "next/link";
|
|
3390
3369
|
import Image5 from "next/image";
|
|
3391
3370
|
var CheckIcon = ({ className = "" }) => /* @__PURE__ */ React33.createElement("svg", { viewBox: "0 0 24 24", fill: "none", className: `w-4 h-4 shrink-0 ${className}`, xmlns: "http://www.w3.org/2000/svg" }, /* @__PURE__ */ React33.createElement("circle", { cx: "12", cy: "12", r: "10", fill: "black" }), /* @__PURE__ */ React33.createElement("path", { d: "M8 12L11 15L16 9", stroke: "white", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }));
|
|
@@ -3396,10 +3375,10 @@ var ManagedPricingBlock = ({
|
|
|
3396
3375
|
plans = [],
|
|
3397
3376
|
tabs
|
|
3398
3377
|
}) => {
|
|
3399
|
-
const [isAnimating, setIsAnimating] =
|
|
3400
|
-
const [activeTabIndex, setActiveTabIndex] =
|
|
3401
|
-
const titleRef =
|
|
3402
|
-
|
|
3378
|
+
const [isAnimating, setIsAnimating] = useState24(false);
|
|
3379
|
+
const [activeTabIndex, setActiveTabIndex] = useState24(0);
|
|
3380
|
+
const titleRef = useRef8(null);
|
|
3381
|
+
useEffect14(() => {
|
|
3403
3382
|
const observer = new IntersectionObserver(
|
|
3404
3383
|
([entry]) => {
|
|
3405
3384
|
if (entry.isIntersecting) {
|
|
@@ -3614,14 +3593,14 @@ var ManagedNewsletterSplitBlock = ({
|
|
|
3614
3593
|
};
|
|
3615
3594
|
|
|
3616
3595
|
// src/components/PortfolioHero.tsx
|
|
3617
|
-
import React37, { useEffect as
|
|
3596
|
+
import React37, { useEffect as useEffect15, useRef as useRef9 } from "react";
|
|
3618
3597
|
import Link8 from "next/link";
|
|
3619
3598
|
import Image8 from "next/image";
|
|
3620
3599
|
import { HugeiconsIcon as HugeiconsIcon26 } from "@hugeicons/react";
|
|
3621
3600
|
import { ArrowRight01Icon as ArrowRight01Icon9 } from "@hugeicons/core-free-icons";
|
|
3622
3601
|
var useScrollAnimation = () => {
|
|
3623
|
-
const elementRef =
|
|
3624
|
-
|
|
3602
|
+
const elementRef = useRef9(null);
|
|
3603
|
+
useEffect15(() => {
|
|
3625
3604
|
const el = elementRef.current;
|
|
3626
3605
|
if (!el) return;
|
|
3627
3606
|
const observer = new IntersectionObserver(
|
|
@@ -3705,7 +3684,7 @@ var PortfolioHero = ({
|
|
|
3705
3684
|
};
|
|
3706
3685
|
|
|
3707
3686
|
// src/components/GifFeatureCard.tsx
|
|
3708
|
-
import React38, { useState as
|
|
3687
|
+
import React38, { useState as useState25 } from "react";
|
|
3709
3688
|
import Image9 from "next/image";
|
|
3710
3689
|
import { HugeiconsIcon as HugeiconsIcon27 } from "@hugeicons/react";
|
|
3711
3690
|
import { Loading03Icon as Loading03Icon14 } from "@hugeicons/core-free-icons";
|
|
@@ -3716,7 +3695,7 @@ var GifFeatureCard = ({
|
|
|
3716
3695
|
alt = "Feature animation",
|
|
3717
3696
|
className = "aspect-video"
|
|
3718
3697
|
}) => {
|
|
3719
|
-
const [isLoading, setIsLoading] =
|
|
3698
|
+
const [isLoading, setIsLoading] = useState25(true);
|
|
3720
3699
|
return /* @__PURE__ */ React38.createElement("div", { className: `relative w-full bg-black overflow-hidden shadow-2xl ${className}` }, isLoading && /* @__PURE__ */ React38.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-20 bg-black" }, /* @__PURE__ */ React38.createElement(
|
|
3721
3700
|
HugeiconsIcon27,
|
|
3722
3701
|
{
|
|
@@ -3749,7 +3728,7 @@ var GifFeatureCard = ({
|
|
|
3749
3728
|
};
|
|
3750
3729
|
|
|
3751
3730
|
// src/components/MedicalFeatureStatsBlock.tsx
|
|
3752
|
-
import React39, { useState as
|
|
3731
|
+
import React39, { useState as useState26, useEffect as useEffect16, useRef as useRef10 } from "react";
|
|
3753
3732
|
import Image10 from "next/image";
|
|
3754
3733
|
var MedicalFeatureStatsBlock = ({
|
|
3755
3734
|
bottomHeadline,
|
|
@@ -3758,9 +3737,9 @@ var MedicalFeatureStatsBlock = ({
|
|
|
3758
3737
|
trustText,
|
|
3759
3738
|
stats
|
|
3760
3739
|
}) => {
|
|
3761
|
-
const [isAnimating, setIsAnimating] =
|
|
3762
|
-
const titleRef =
|
|
3763
|
-
|
|
3740
|
+
const [isAnimating, setIsAnimating] = useState26(false);
|
|
3741
|
+
const titleRef = useRef10(null);
|
|
3742
|
+
useEffect16(() => {
|
|
3764
3743
|
const observer = new IntersectionObserver(
|
|
3765
3744
|
([entry]) => {
|
|
3766
3745
|
if (entry.isIntersecting) {
|
|
@@ -3799,12 +3778,12 @@ var MedicalFeatureStatsBlock = ({
|
|
|
3799
3778
|
};
|
|
3800
3779
|
|
|
3801
3780
|
// src/components/ConsultantShowcase.tsx
|
|
3802
|
-
import React40, { useState as
|
|
3781
|
+
import React40, { useState as useState27 } from "react";
|
|
3803
3782
|
import Image11 from "next/image";
|
|
3804
3783
|
import { HugeiconsIcon as HugeiconsIcon28 } from "@hugeicons/react";
|
|
3805
3784
|
import { Loading03Icon as Loading03Icon15 } from "@hugeicons/core-free-icons";
|
|
3806
3785
|
var ImageWithLoader = ({ src, alt, className, sizes, priority = false }) => {
|
|
3807
|
-
const [isLoading, setIsLoading] =
|
|
3786
|
+
const [isLoading, setIsLoading] = useState27(true);
|
|
3808
3787
|
return /* @__PURE__ */ React40.createElement("div", { className: `absolute inset-0 bg-neutral-800 ${className}` }, isLoading && /* @__PURE__ */ React40.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-20 bg-neutral-800/50 backdrop-blur-md transition-opacity duration-300" }, /* @__PURE__ */ React40.createElement(HugeiconsIcon28, { icon: Loading03Icon15, size: 24, className: "animate-spin text-white/50" })), /* @__PURE__ */ React40.createElement(
|
|
3809
3788
|
Image11,
|
|
3810
3789
|
{
|
|
@@ -3824,9 +3803,9 @@ var ImageWithLoader = ({ src, alt, className, sizes, priority = false }) => {
|
|
|
3824
3803
|
var ConsultantShowcase = ({
|
|
3825
3804
|
profiles
|
|
3826
3805
|
}) => {
|
|
3827
|
-
const [currentIndex, setCurrentIndex] =
|
|
3828
|
-
const [touchStart, setTouchStart] =
|
|
3829
|
-
const [touchEnd, setTouchEnd] =
|
|
3806
|
+
const [currentIndex, setCurrentIndex] = useState27(0);
|
|
3807
|
+
const [touchStart, setTouchStart] = useState27(null);
|
|
3808
|
+
const [touchEnd, setTouchEnd] = useState27(null);
|
|
3830
3809
|
const nextSlide = () => {
|
|
3831
3810
|
setCurrentIndex((prev) => prev === profiles.length - 1 ? 0 : prev + 1);
|
|
3832
3811
|
};
|
|
@@ -3894,7 +3873,7 @@ var ConsultantShowcase = ({
|
|
|
3894
3873
|
};
|
|
3895
3874
|
|
|
3896
3875
|
// src/components/ContentGridBlock.tsx
|
|
3897
|
-
import React41, { useState as
|
|
3876
|
+
import React41, { useState as useState28 } from "react";
|
|
3898
3877
|
import Image12 from "next/image";
|
|
3899
3878
|
import { HugeiconsIcon as HugeiconsIcon29 } from "@hugeicons/react";
|
|
3900
3879
|
import { Loading03Icon as Loading03Icon16 } from "@hugeicons/core-free-icons";
|
|
@@ -4086,7 +4065,7 @@ var UniversalVerificationPage = ({
|
|
|
4086
4065
|
};
|
|
4087
4066
|
|
|
4088
4067
|
// src/components/UniversalRewardPage.tsx
|
|
4089
|
-
import React44, { useState as
|
|
4068
|
+
import React44, { useState as useState29 } from "react";
|
|
4090
4069
|
import axios from "axios";
|
|
4091
4070
|
import toast9 from "react-hot-toast";
|
|
4092
4071
|
import Confetti from "react-confetti";
|
|
@@ -4103,7 +4082,7 @@ var formatWeb3Name = (name) => {
|
|
|
4103
4082
|
};
|
|
4104
4083
|
var PageSpinner4 = () => /* @__PURE__ */ React44.createElement("div", { className: "flex justify-center items-center py-12 w-full" }, /* @__PURE__ */ React44.createElement(HugeiconsIcon31, { icon: Loading03Icon18, size: 32, className: "animate-spin mb-4 text-black" }));
|
|
4105
4084
|
var AvatarLogo = ({ src, alt, name, sizeClass = "w-12 h-12" }) => {
|
|
4106
|
-
const [isLoaded, setIsLoaded] =
|
|
4085
|
+
const [isLoaded, setIsLoaded] = useState29(false);
|
|
4107
4086
|
const fallbackUrl = `/api/avatar/?name=${encodeURIComponent(name || " ")}&background=ffffff&color=000000&size=100&font-size=0.33`;
|
|
4108
4087
|
const finalSrc = src || fallbackUrl;
|
|
4109
4088
|
return /* @__PURE__ */ React44.createElement("div", { className: `relative shrink-0 rounded-full bg-neutral-100 flex items-center justify-center overflow-hidden border-[3px] border-white ${sizeClass}` }, !isLoaded && /* @__PURE__ */ React44.createElement(HugeiconsIcon31, { icon: Loading03Icon18, size: 16, className: "animate-spin text-neutral-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"}` }));
|
|
@@ -4121,11 +4100,11 @@ var UniversalRewardPage = ({
|
|
|
4121
4100
|
const onBackHandler = onBack ?? (() => {
|
|
4122
4101
|
if (typeof window !== "undefined") window.history.back();
|
|
4123
4102
|
});
|
|
4124
|
-
const [activeTabIndex, setActiveTabIndex] =
|
|
4103
|
+
const [activeTabIndex, setActiveTabIndex] = useState29(1);
|
|
4125
4104
|
const tabs = [{ label: "Today" }, { label: "Week" }, { label: "Month" }];
|
|
4126
|
-
const [selectedReward, setSelectedReward] =
|
|
4127
|
-
const [isClaiming, setIsClaiming] =
|
|
4128
|
-
const [showConfetti, setShowConfetti] =
|
|
4105
|
+
const [selectedReward, setSelectedReward] = useState29(null);
|
|
4106
|
+
const [isClaiming, setIsClaiming] = useState29(false);
|
|
4107
|
+
const [showConfetti, setShowConfetti] = useState29(false);
|
|
4129
4108
|
const getActiveLeaderboard = () => {
|
|
4130
4109
|
if (activeTabIndex === 0) return leaderboardToday || [];
|
|
4131
4110
|
if (activeTabIndex === 1) return leaderboardWeek || [];
|
|
@@ -4200,7 +4179,7 @@ var UniversalRewardPage = ({
|
|
|
4200
4179
|
};
|
|
4201
4180
|
|
|
4202
4181
|
// src/components/UniversalReferralPage.tsx
|
|
4203
|
-
import React45, { useState as
|
|
4182
|
+
import React45, { useState as useState30 } from "react";
|
|
4204
4183
|
import toast10 from "react-hot-toast";
|
|
4205
4184
|
import { HugeiconsIcon as HugeiconsIcon32 } from "@hugeicons/react";
|
|
4206
4185
|
import {
|
|
@@ -4241,7 +4220,7 @@ var UniversalReferralPage = ({
|
|
|
4241
4220
|
}
|
|
4242
4221
|
};
|
|
4243
4222
|
const AvatarLogo2 = ({ src, alt, name, sizeClass = "w-10 h-10" }) => {
|
|
4244
|
-
const [isLoaded, setIsLoaded] =
|
|
4223
|
+
const [isLoaded, setIsLoaded] = useState30(false);
|
|
4245
4224
|
const fallbackUrl = `/api/avatar/?name=${encodeURIComponent(name || " ")}&background=e0e0e0&color=000000&size=100&font-size=0.33`;
|
|
4246
4225
|
const finalSrc = src || fallbackUrl;
|
|
4247
4226
|
return /* @__PURE__ */ React45.createElement("div", { className: `relative shrink-0 rounded-full bg-neutral-100 flex items-center justify-center overflow-hidden border-2 border-white ${sizeClass}` }, !isLoaded && /* @__PURE__ */ React45.createElement(HugeiconsIcon32, { icon: Loading03Icon19, size: 16, className: "animate-spin text-neutral-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"}` }));
|
|
@@ -4289,7 +4268,7 @@ var UniversalReferralPage = ({
|
|
|
4289
4268
|
};
|
|
4290
4269
|
|
|
4291
4270
|
// src/components/UniversalCardActionPage.tsx
|
|
4292
|
-
import React46, { useState as
|
|
4271
|
+
import React46, { useState as useState31 } from "react";
|
|
4293
4272
|
import Confetti2 from "react-confetti";
|
|
4294
4273
|
import { useWindowSize as useWindowSize2 } from "react-use";
|
|
4295
4274
|
import { HugeiconsIcon as HugeiconsIcon33 } from "@hugeicons/react";
|
|
@@ -4340,10 +4319,10 @@ var UniversalCardActionPage = ({
|
|
|
4340
4319
|
if (typeof window !== "undefined") window.history.back();
|
|
4341
4320
|
});
|
|
4342
4321
|
const { width, height } = useWindowSize2();
|
|
4343
|
-
const [selectedTier, setSelectedTier] =
|
|
4344
|
-
const [intendedAction, setIntendedAction] =
|
|
4345
|
-
const [isProcessing, setIsProcessing] =
|
|
4346
|
-
const [showConfetti, setShowConfetti] =
|
|
4322
|
+
const [selectedTier, setSelectedTier] = useState31(null);
|
|
4323
|
+
const [intendedAction, setIntendedAction] = useState31(null);
|
|
4324
|
+
const [isProcessing, setIsProcessing] = useState31(false);
|
|
4325
|
+
const [showConfetti, setShowConfetti] = useState31(false);
|
|
4347
4326
|
const availableTiers = tiers.filter((t) => t.isAvailable || t.acceptPreorder || t.acceptWaitlist);
|
|
4348
4327
|
const handleTierClick = (tier, explicitAction) => {
|
|
4349
4328
|
setSelectedTier(tier);
|
|
@@ -4483,7 +4462,7 @@ var UniversalCardActionPage = ({
|
|
|
4483
4462
|
};
|
|
4484
4463
|
|
|
4485
4464
|
// src/components/PinDialerBottomSheet.tsx
|
|
4486
|
-
import React47, { useState as
|
|
4465
|
+
import React47, { useState as useState32, useEffect as useEffect17 } from "react";
|
|
4487
4466
|
import { HugeiconsIcon as HugeiconsIcon34 } from "@hugeicons/react";
|
|
4488
4467
|
import { CancelCircleIcon as CancelCircleIcon10 } from "@hugeicons/core-free-icons";
|
|
4489
4468
|
var PinDialerBottomSheet = ({
|
|
@@ -4493,8 +4472,8 @@ var PinDialerBottomSheet = ({
|
|
|
4493
4472
|
onClose,
|
|
4494
4473
|
onComplete
|
|
4495
4474
|
}) => {
|
|
4496
|
-
const [pin, setPin] =
|
|
4497
|
-
|
|
4475
|
+
const [pin, setPin] = useState32("");
|
|
4476
|
+
useEffect17(() => {
|
|
4498
4477
|
setPin("");
|
|
4499
4478
|
}, [isOpen]);
|
|
4500
4479
|
const handleSubmit = (e) => {
|
|
@@ -4545,7 +4524,7 @@ var PinDialerBottomSheet = ({
|
|
|
4545
4524
|
};
|
|
4546
4525
|
|
|
4547
4526
|
// src/components/UniversalBuyCryptoPage.tsx
|
|
4548
|
-
import React48, { useState as
|
|
4527
|
+
import React48, { useState as useState33, useEffect as useEffect18, useRef as useRef11, useCallback } from "react";
|
|
4549
4528
|
import toast11 from "react-hot-toast";
|
|
4550
4529
|
import { HugeiconsIcon as HugeiconsIcon35 } from "@hugeicons/react";
|
|
4551
4530
|
import {
|
|
@@ -4553,8 +4532,8 @@ import {
|
|
|
4553
4532
|
CheckmarkCircle02Icon
|
|
4554
4533
|
} from "@hugeicons/core-free-icons";
|
|
4555
4534
|
var CircularLogo = ({ src, alt, fallbackText }) => {
|
|
4556
|
-
const [isLoaded, setIsLoaded] =
|
|
4557
|
-
const [hasError, setHasError] =
|
|
4535
|
+
const [isLoaded, setIsLoaded] = useState33(false);
|
|
4536
|
+
const [hasError, setHasError] = useState33(false);
|
|
4558
4537
|
return /* @__PURE__ */ React48.createElement("div", { className: "relative w-5 h-5 rounded-full overflow-hidden bg-neutral-100 flex items-center justify-center shrink-0" }, !hasError && src ? /* @__PURE__ */ React48.createElement(React48.Fragment, null, !isLoaded && /* @__PURE__ */ React48.createElement("div", { className: "absolute inset-0 bg-neutral-200 animate-pulse" }), /* @__PURE__ */ React48.createElement(
|
|
4559
4538
|
"img",
|
|
4560
4539
|
{
|
|
@@ -4604,33 +4583,33 @@ var UniversalBuyCryptoPage = ({
|
|
|
4604
4583
|
const onBackHandler = onBack ?? (() => {
|
|
4605
4584
|
if (typeof window !== "undefined") window.history.back();
|
|
4606
4585
|
});
|
|
4607
|
-
const [selectedCrypto, setSelectedCrypto] =
|
|
4586
|
+
const [selectedCrypto, setSelectedCrypto] = useState33(() => {
|
|
4608
4587
|
if (defaultCryptoCode) {
|
|
4609
4588
|
const found = cryptoOptions.find((c) => c.code === defaultCryptoCode);
|
|
4610
4589
|
if (found) return found;
|
|
4611
4590
|
}
|
|
4612
4591
|
return cryptoOptions[0];
|
|
4613
4592
|
});
|
|
4614
|
-
const [selectedNetwork, setSelectedNetwork] =
|
|
4593
|
+
const [selectedNetwork, setSelectedNetwork] = useState33(() => {
|
|
4615
4594
|
if (defaultNetworkId && selectedCrypto?.networks) {
|
|
4616
4595
|
const foundNet = selectedCrypto.networks.find((n) => n.id === defaultNetworkId);
|
|
4617
4596
|
if (foundNet) return foundNet;
|
|
4618
4597
|
}
|
|
4619
4598
|
return selectedCrypto?.networks?.[0] || { id: "polygon", name: "Polygon", symbol: "POLYGON" };
|
|
4620
4599
|
});
|
|
4621
|
-
const [fiatAmount, setFiatAmount] =
|
|
4622
|
-
const [cryptoAmount, setCryptoAmount] =
|
|
4623
|
-
const [activeSource, setActiveSource] =
|
|
4624
|
-
const [isCalculating, setIsCalculating] =
|
|
4625
|
-
const [rateDisplay, setRateDisplay] =
|
|
4626
|
-
const [currentRateKey, setCurrentRateKey] =
|
|
4627
|
-
const [recipientAddress, setRecipientAddress] =
|
|
4628
|
-
const [isAddressValid, setIsAddressValid] =
|
|
4629
|
-
const [isCryptoDialogOpen, setIsCryptoDialogOpen] =
|
|
4630
|
-
const [isNetworkDialogOpen, setIsNetworkDialogOpen] =
|
|
4631
|
-
const [isSubmitting, setIsSubmitting] =
|
|
4632
|
-
const debounceTimerRef =
|
|
4633
|
-
|
|
4600
|
+
const [fiatAmount, setFiatAmount] = useState33("");
|
|
4601
|
+
const [cryptoAmount, setCryptoAmount] = useState33("");
|
|
4602
|
+
const [activeSource, setActiveSource] = useState33("FIAT");
|
|
4603
|
+
const [isCalculating, setIsCalculating] = useState33(false);
|
|
4604
|
+
const [rateDisplay, setRateDisplay] = useState33(null);
|
|
4605
|
+
const [currentRateKey, setCurrentRateKey] = useState33(null);
|
|
4606
|
+
const [recipientAddress, setRecipientAddress] = useState33(defaultRecipientAddress);
|
|
4607
|
+
const [isAddressValid, setIsAddressValid] = useState33(false);
|
|
4608
|
+
const [isCryptoDialogOpen, setIsCryptoDialogOpen] = useState33(false);
|
|
4609
|
+
const [isNetworkDialogOpen, setIsNetworkDialogOpen] = useState33(false);
|
|
4610
|
+
const [isSubmitting, setIsSubmitting] = useState33(false);
|
|
4611
|
+
const debounceTimerRef = useRef11(null);
|
|
4612
|
+
useEffect18(() => {
|
|
4634
4613
|
if (selectedCrypto?.networks?.length > 0) {
|
|
4635
4614
|
const exists = selectedCrypto.networks.find((n) => n.id === selectedNetwork.id);
|
|
4636
4615
|
if (!exists) {
|
|
@@ -4638,7 +4617,7 @@ var UniversalBuyCryptoPage = ({
|
|
|
4638
4617
|
}
|
|
4639
4618
|
}
|
|
4640
4619
|
}, [selectedCrypto]);
|
|
4641
|
-
|
|
4620
|
+
useEffect18(() => {
|
|
4642
4621
|
if (!recipientAddress.trim()) {
|
|
4643
4622
|
setIsAddressValid(false);
|
|
4644
4623
|
return;
|
|
@@ -4826,7 +4805,7 @@ var UniversalBuyCryptoPage = ({
|
|
|
4826
4805
|
};
|
|
4827
4806
|
|
|
4828
4807
|
// src/components/UniversalHuddlesPage.tsx
|
|
4829
|
-
import React49, { useState as
|
|
4808
|
+
import React49, { useState as useState34 } from "react";
|
|
4830
4809
|
import { HugeiconsIcon as HugeiconsIcon36 } from "@hugeicons/react";
|
|
4831
4810
|
import {
|
|
4832
4811
|
ArrowLeft01Icon as ArrowLeft01Icon15,
|
|
@@ -4834,8 +4813,8 @@ import {
|
|
|
4834
4813
|
Loading03Icon as Loading03Icon22
|
|
4835
4814
|
} from "@hugeicons/core-free-icons";
|
|
4836
4815
|
var HuddleAvatar = ({ src, status, sizeClass = "w-10 h-10" }) => {
|
|
4837
|
-
const [loaded, setLoaded] =
|
|
4838
|
-
const [error, setError] =
|
|
4816
|
+
const [loaded, setLoaded] = useState34(false);
|
|
4817
|
+
const [error, setError] = useState34(false);
|
|
4839
4818
|
const defaultAvatar = "https://storage.googleapis.com/retina-cloud-v2/assets/images/default_a.avif";
|
|
4840
4819
|
const finalSrc = error || !src ? defaultAvatar : src;
|
|
4841
4820
|
const getStatusColor = () => {
|
|
@@ -4912,7 +4891,7 @@ var UniversalHuddlesPage = ({
|
|
|
4912
4891
|
};
|
|
4913
4892
|
|
|
4914
4893
|
// src/components/UniversalMembersPage.tsx
|
|
4915
|
-
import React50, { useState as
|
|
4894
|
+
import React50, { useState as useState35, useEffect as useEffect19, useRef as useRef12 } from "react";
|
|
4916
4895
|
import { HugeiconsIcon as HugeiconsIcon37 } from "@hugeicons/react";
|
|
4917
4896
|
import toast12 from "react-hot-toast";
|
|
4918
4897
|
import {
|
|
@@ -4924,8 +4903,8 @@ import {
|
|
|
4924
4903
|
ListSettingIcon as ListSettingIcon2
|
|
4925
4904
|
} from "@hugeicons/core-free-icons";
|
|
4926
4905
|
var MemberAvatar2 = ({ src, status }) => {
|
|
4927
|
-
const [loaded, setLoaded] =
|
|
4928
|
-
const [error, setError] =
|
|
4906
|
+
const [loaded, setLoaded] = useState35(false);
|
|
4907
|
+
const [error, setError] = useState35(false);
|
|
4929
4908
|
const defaultAvatar = "https://storage.googleapis.com/retina-cloud-v2/assets/images/avatar.avif";
|
|
4930
4909
|
const finalSrc = error || !src ? defaultAvatar : src;
|
|
4931
4910
|
const getStatusColor = () => {
|
|
@@ -4973,20 +4952,20 @@ var UniversalMembersPage = ({
|
|
|
4973
4952
|
onRemoveMember,
|
|
4974
4953
|
onInviteMember
|
|
4975
4954
|
}) => {
|
|
4976
|
-
const [expandedId, setExpandedId] =
|
|
4977
|
-
const [memberToRemove, setMemberToRemove] =
|
|
4978
|
-
const [isRemoving, setIsRemoving] =
|
|
4979
|
-
const [isInviteMode, setIsInviteMode] =
|
|
4980
|
-
const [inviteEmail, setInviteEmail] =
|
|
4981
|
-
const [isInviting, setIsInviting] =
|
|
4982
|
-
const [localSearchQuery, setLocalSearchQuery] =
|
|
4983
|
-
const [isTyping, setIsTyping] =
|
|
4984
|
-
const [isStatusModalOpen, setIsStatusModalOpen] =
|
|
4985
|
-
const [isRoleModalOpen, setIsRoleModalOpen] =
|
|
4986
|
-
const statusDropdownRef =
|
|
4987
|
-
const roleDropdownRef =
|
|
4955
|
+
const [expandedId, setExpandedId] = useState35(null);
|
|
4956
|
+
const [memberToRemove, setMemberToRemove] = useState35(null);
|
|
4957
|
+
const [isRemoving, setIsRemoving] = useState35(false);
|
|
4958
|
+
const [isInviteMode, setIsInviteMode] = useState35(false);
|
|
4959
|
+
const [inviteEmail, setInviteEmail] = useState35("");
|
|
4960
|
+
const [isInviting, setIsInviting] = useState35(false);
|
|
4961
|
+
const [localSearchQuery, setLocalSearchQuery] = useState35(searchQuery);
|
|
4962
|
+
const [isTyping, setIsTyping] = useState35(false);
|
|
4963
|
+
const [isStatusModalOpen, setIsStatusModalOpen] = useState35(false);
|
|
4964
|
+
const [isRoleModalOpen, setIsRoleModalOpen] = useState35(false);
|
|
4965
|
+
const statusDropdownRef = useRef12(null);
|
|
4966
|
+
const roleDropdownRef = useRef12(null);
|
|
4988
4967
|
const cleanEmailId = (val) => val.toLowerCase().replace(/[^a-z0-9@._-]/g, "");
|
|
4989
|
-
|
|
4968
|
+
useEffect19(() => {
|
|
4990
4969
|
function handleClickOutside(event) {
|
|
4991
4970
|
if (statusDropdownRef.current && !statusDropdownRef.current.contains(event.target)) {
|
|
4992
4971
|
setIsStatusModalOpen(false);
|
|
@@ -4998,7 +4977,7 @@ var UniversalMembersPage = ({
|
|
|
4998
4977
|
document.addEventListener("mousedown", handleClickOutside);
|
|
4999
4978
|
return () => document.removeEventListener("mousedown", handleClickOutside);
|
|
5000
4979
|
}, []);
|
|
5001
|
-
|
|
4980
|
+
useEffect19(() => {
|
|
5002
4981
|
setIsTyping(true);
|
|
5003
4982
|
const handler = setTimeout(() => {
|
|
5004
4983
|
onSearchChange(localSearchQuery);
|
|
@@ -5006,7 +4985,7 @@ var UniversalMembersPage = ({
|
|
|
5006
4985
|
}, 600);
|
|
5007
4986
|
return () => clearTimeout(handler);
|
|
5008
4987
|
}, [localSearchQuery, onSearchChange]);
|
|
5009
|
-
|
|
4988
|
+
useEffect19(() => {
|
|
5010
4989
|
if (searchQuery === "" && localSearchQuery !== "") {
|
|
5011
4990
|
setLocalSearchQuery("");
|
|
5012
4991
|
}
|
|
@@ -5178,7 +5157,7 @@ var UniversalMembersPage = ({
|
|
|
5178
5157
|
};
|
|
5179
5158
|
|
|
5180
5159
|
// src/components/UniversalHome2.tsx
|
|
5181
|
-
import React51, { useState as
|
|
5160
|
+
import React51, { useState as useState36 } from "react";
|
|
5182
5161
|
import { useRouter as useRouter3 } from "next/navigation";
|
|
5183
5162
|
import { HugeiconsIcon as HugeiconsIcon38 } from "@hugeicons/react";
|
|
5184
5163
|
import toast13 from "react-hot-toast";
|
|
@@ -5194,8 +5173,8 @@ import {
|
|
|
5194
5173
|
Tick02Icon as Tick02Icon2
|
|
5195
5174
|
} from "@hugeicons/core-free-icons";
|
|
5196
5175
|
var OrgAvatar = ({ src, sizeClass = "w-10 h-10" }) => {
|
|
5197
|
-
const [loaded, setLoaded] =
|
|
5198
|
-
const [error, setError] =
|
|
5176
|
+
const [loaded, setLoaded] = useState36(false);
|
|
5177
|
+
const [error, setError] = useState36(false);
|
|
5199
5178
|
const defaultAvatar = "https://storage.googleapis.com/retina-cloud-v2/assets/images/office_a.avif";
|
|
5200
5179
|
const finalSrc = error || !src ? defaultAvatar : src;
|
|
5201
5180
|
return /* @__PURE__ */ React51.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ React51.createElement("div", { className: "w-full h-full rounded-lg bg-neutral-100 flex items-center justify-center overflow-hidden" }, !loaded && !error && /* @__PURE__ */ React51.createElement(HugeiconsIcon38, { icon: Loading03Icon24, className: "animate-spin text-neutral-400 absolute", size: 14 }), /* @__PURE__ */ React51.createElement(
|
|
@@ -5228,13 +5207,13 @@ var UniversalHome2 = ({
|
|
|
5228
5207
|
huddlesProps,
|
|
5229
5208
|
onLogout
|
|
5230
5209
|
}) => {
|
|
5231
|
-
const [isAvatarLoaded, setIsAvatarLoaded] =
|
|
5232
|
-
const [showNotifDialog, setShowNotifDialog] =
|
|
5233
|
-
const [showOrgSwitcher, setShowOrgSwitcher] =
|
|
5234
|
-
const [selectedNotif, setSelectedNotif] =
|
|
5235
|
-
const [isResolving, setIsResolving] =
|
|
5236
|
-
const [showLogoutConfirm, setShowLogoutConfirm] =
|
|
5237
|
-
const [isLoggingOut, setIsLoggingOut] =
|
|
5210
|
+
const [isAvatarLoaded, setIsAvatarLoaded] = useState36(false);
|
|
5211
|
+
const [showNotifDialog, setShowNotifDialog] = useState36(false);
|
|
5212
|
+
const [showOrgSwitcher, setShowOrgSwitcher] = useState36(false);
|
|
5213
|
+
const [selectedNotif, setSelectedNotif] = useState36(null);
|
|
5214
|
+
const [isResolving, setIsResolving] = useState36(false);
|
|
5215
|
+
const [showLogoutConfirm, setShowLogoutConfirm] = useState36(false);
|
|
5216
|
+
const [isLoggingOut, setIsLoggingOut] = useState36(false);
|
|
5238
5217
|
const router = useRouter3();
|
|
5239
5218
|
const fallbackAvatarUrl = "https://storage.googleapis.com/retina-cloud-v2/assets/images/avatar.avif";
|
|
5240
5219
|
const finalAvatarSrc = avatarSrc || fallbackAvatarUrl;
|
|
@@ -5407,7 +5386,7 @@ var UniversalHome2 = ({
|
|
|
5407
5386
|
};
|
|
5408
5387
|
|
|
5409
5388
|
// src/components/UniversalSettings.tsx
|
|
5410
|
-
import React52, { useState as
|
|
5389
|
+
import React52, { useState as useState37, useEffect as useEffect20, useRef as useRef13 } from "react";
|
|
5411
5390
|
import toast14 from "react-hot-toast";
|
|
5412
5391
|
import { HugeiconsIcon as HugeiconsIcon39 } from "@hugeicons/react";
|
|
5413
5392
|
import {
|
|
@@ -5422,8 +5401,8 @@ import {
|
|
|
5422
5401
|
PlusSignIcon as PlusSignIcon3
|
|
5423
5402
|
} from "@hugeicons/core-free-icons";
|
|
5424
5403
|
var MemberAvatar3 = ({ src, status, sizeClass = "w-10 h-10" }) => {
|
|
5425
|
-
const [loaded, setLoaded] =
|
|
5426
|
-
const [error, setError] =
|
|
5404
|
+
const [loaded, setLoaded] = useState37(false);
|
|
5405
|
+
const [error, setError] = useState37(false);
|
|
5427
5406
|
const defaultAvatar = "https://storage.googleapis.com/retina-cloud-v2/assets/images/avatar.avif";
|
|
5428
5407
|
const finalSrc = error || !src ? defaultAvatar : src;
|
|
5429
5408
|
const getStatusColor = () => {
|
|
@@ -5482,36 +5461,36 @@ var UniversalSettings = ({
|
|
|
5482
5461
|
});
|
|
5483
5462
|
const isOrg = accountType === "ORGANIZATION";
|
|
5484
5463
|
const canManage = userRole === "ADMIN" || userRole === "MANAGER";
|
|
5485
|
-
const [activeTab, setActiveTab] =
|
|
5486
|
-
const [expandedId, setExpandedId] =
|
|
5487
|
-
const [memberToRemove, setMemberToRemove] =
|
|
5488
|
-
const [isRemoving, setIsRemoving] =
|
|
5489
|
-
const [isInviteMode, setIsInviteMode] =
|
|
5490
|
-
const [inviteEmail, setInviteEmail] =
|
|
5491
|
-
const [isInviting, setIsInviting] =
|
|
5492
|
-
const [localSearchQuery, setLocalSearchQuery] =
|
|
5493
|
-
const [isTyping, setIsTyping] =
|
|
5494
|
-
const isFirstSearchMount =
|
|
5495
|
-
const [isStatusModalOpen, setIsStatusModalOpen] =
|
|
5496
|
-
const [isRoleModalOpen, setIsRoleModalOpen] =
|
|
5497
|
-
const [roleEditTarget, setRoleEditTarget] =
|
|
5498
|
-
const [isUpdatingRole, setIsUpdatingRole] =
|
|
5499
|
-
const [orgName, setOrgName] =
|
|
5500
|
-
const [orgSlug, setOrgSlug] =
|
|
5501
|
-
const [firstName, setFirstName] =
|
|
5502
|
-
const [lastName, setLastName] =
|
|
5503
|
-
const [isCheckingSlug, setIsCheckingSlug] =
|
|
5504
|
-
const [slugAvailable, setSlugAvailable] =
|
|
5505
|
-
const [isSavingOrg, setIsSavingOrg] =
|
|
5506
|
-
const [isSavingProfile, setIsSavingProfile] =
|
|
5507
|
-
|
|
5464
|
+
const [activeTab, setActiveTab] = useState37(isOrg ? "MEMBERS" : "ACCOUNT");
|
|
5465
|
+
const [expandedId, setExpandedId] = useState37(null);
|
|
5466
|
+
const [memberToRemove, setMemberToRemove] = useState37(null);
|
|
5467
|
+
const [isRemoving, setIsRemoving] = useState37(false);
|
|
5468
|
+
const [isInviteMode, setIsInviteMode] = useState37(false);
|
|
5469
|
+
const [inviteEmail, setInviteEmail] = useState37("");
|
|
5470
|
+
const [isInviting, setIsInviting] = useState37(false);
|
|
5471
|
+
const [localSearchQuery, setLocalSearchQuery] = useState37(membersSearchQuery);
|
|
5472
|
+
const [isTyping, setIsTyping] = useState37(false);
|
|
5473
|
+
const isFirstSearchMount = useRef13(true);
|
|
5474
|
+
const [isStatusModalOpen, setIsStatusModalOpen] = useState37(false);
|
|
5475
|
+
const [isRoleModalOpen, setIsRoleModalOpen] = useState37(false);
|
|
5476
|
+
const [roleEditTarget, setRoleEditTarget] = useState37(null);
|
|
5477
|
+
const [isUpdatingRole, setIsUpdatingRole] = useState37(false);
|
|
5478
|
+
const [orgName, setOrgName] = useState37(initialOrgName);
|
|
5479
|
+
const [orgSlug, setOrgSlug] = useState37(initialOrgSlug);
|
|
5480
|
+
const [firstName, setFirstName] = useState37("");
|
|
5481
|
+
const [lastName, setLastName] = useState37("");
|
|
5482
|
+
const [isCheckingSlug, setIsCheckingSlug] = useState37(false);
|
|
5483
|
+
const [slugAvailable, setSlugAvailable] = useState37(null);
|
|
5484
|
+
const [isSavingOrg, setIsSavingOrg] = useState37(false);
|
|
5485
|
+
const [isSavingProfile, setIsSavingProfile] = useState37(false);
|
|
5486
|
+
useEffect20(() => {
|
|
5508
5487
|
setOrgName(initialOrgName || "");
|
|
5509
5488
|
setOrgSlug(initialOrgSlug || "");
|
|
5510
5489
|
const parts = (initialFullName || "").split(" ");
|
|
5511
5490
|
setFirstName(parts[0] || "");
|
|
5512
5491
|
setLastName(parts.slice(1).join(" ") || "");
|
|
5513
5492
|
}, [initialOrgName, initialOrgSlug, initialFullName]);
|
|
5514
|
-
|
|
5493
|
+
useEffect20(() => {
|
|
5515
5494
|
if (activeTab !== "MEMBERS") return;
|
|
5516
5495
|
if (isFirstSearchMount.current) {
|
|
5517
5496
|
isFirstSearchMount.current = false;
|
|
@@ -5568,7 +5547,7 @@ var UniversalSettings = ({
|
|
|
5568
5547
|
}
|
|
5569
5548
|
};
|
|
5570
5549
|
const activeExpandedMember = expandedId ? members.find((m) => m.id === expandedId) : null;
|
|
5571
|
-
|
|
5550
|
+
useEffect20(() => {
|
|
5572
5551
|
if (!isOrg || !orgSlug || orgSlug === initialOrgSlug) {
|
|
5573
5552
|
setSlugAvailable(null);
|
|
5574
5553
|
setIsCheckingSlug(false);
|
|
@@ -5663,7 +5642,7 @@ var UniversalSettings = ({
|
|
|
5663
5642
|
};
|
|
5664
5643
|
|
|
5665
5644
|
// src/components/UniversalCreateHuddle.tsx
|
|
5666
|
-
import React53, { useState as
|
|
5645
|
+
import React53, { useState as useState38, useEffect as useEffect21, useRef as useRef14 } from "react";
|
|
5667
5646
|
import toast15 from "react-hot-toast";
|
|
5668
5647
|
import { HugeiconsIcon as HugeiconsIcon40 } from "@hugeicons/react";
|
|
5669
5648
|
import {
|
|
@@ -5678,8 +5657,8 @@ import {
|
|
|
5678
5657
|
CircleLock02Icon as CircleLock02Icon4
|
|
5679
5658
|
} from "@hugeicons/core-free-icons";
|
|
5680
5659
|
var MemberAvatar4 = ({ src, sizeClass = "w-10 h-10" }) => {
|
|
5681
|
-
const [loaded, setLoaded] =
|
|
5682
|
-
const [error, setError] =
|
|
5660
|
+
const [loaded, setLoaded] = useState38(false);
|
|
5661
|
+
const [error, setError] = useState38(false);
|
|
5683
5662
|
const defaultAvatar = "https://storage.googleapis.com/retina-cloud-v2/assets/images/avatar.avif";
|
|
5684
5663
|
return /* @__PURE__ */ React53.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ React53.createElement("div", { className: "w-full h-full rounded-lg bg-neutral-100 flex items-center justify-center overflow-hidden" }, !loaded && !error && /* @__PURE__ */ React53.createElement(HugeiconsIcon40, { icon: Loading03Icon26, className: "animate-spin text-neutral-400 absolute", size: 14 }), /* @__PURE__ */ React53.createElement(
|
|
5685
5664
|
"img",
|
|
@@ -5722,28 +5701,28 @@ var UniversalCreateHuddle = ({
|
|
|
5722
5701
|
onCreateSubmit
|
|
5723
5702
|
}) => {
|
|
5724
5703
|
const canManage = userRole === "ADMIN" || userRole === "MANAGER";
|
|
5725
|
-
const [huddleDate, setHuddleDate] =
|
|
5704
|
+
const [huddleDate, setHuddleDate] = useState38(() => {
|
|
5726
5705
|
const d = /* @__PURE__ */ new Date();
|
|
5727
5706
|
d.setHours(d.getHours() + 1, 0, 0, 0);
|
|
5728
5707
|
return d;
|
|
5729
5708
|
});
|
|
5730
|
-
const [title, setTitle] =
|
|
5731
|
-
const [isPrivate, setIsPrivate] =
|
|
5732
|
-
const [timezone, setTimezone] =
|
|
5733
|
-
|
|
5709
|
+
const [title, setTitle] = useState38("");
|
|
5710
|
+
const [isPrivate, setIsPrivate] = useState38(false);
|
|
5711
|
+
const [timezone, setTimezone] = useState38("UTC");
|
|
5712
|
+
useEffect21(() => {
|
|
5734
5713
|
try {
|
|
5735
5714
|
setTimezone(Intl.DateTimeFormat().resolvedOptions().timeZone);
|
|
5736
5715
|
} catch (e) {
|
|
5737
5716
|
}
|
|
5738
5717
|
}, []);
|
|
5739
|
-
const [calendarMode, setCalendarMode] =
|
|
5740
|
-
const [showTimezoneModal, setShowTimezoneModal] =
|
|
5741
|
-
const [showMembersModal, setShowMembersModal] =
|
|
5742
|
-
const [selectedParticipants, setSelectedParticipants] =
|
|
5743
|
-
const [isSubmitting, setIsSubmitting] =
|
|
5744
|
-
const [localSearchQuery, setLocalSearchQuery] =
|
|
5745
|
-
const [isTyping, setIsTyping] =
|
|
5746
|
-
const typingTimer =
|
|
5718
|
+
const [calendarMode, setCalendarMode] = useState38(null);
|
|
5719
|
+
const [showTimezoneModal, setShowTimezoneModal] = useState38(false);
|
|
5720
|
+
const [showMembersModal, setShowMembersModal] = useState38(false);
|
|
5721
|
+
const [selectedParticipants, setSelectedParticipants] = useState38(/* @__PURE__ */ new Set());
|
|
5722
|
+
const [isSubmitting, setIsSubmitting] = useState38(false);
|
|
5723
|
+
const [localSearchQuery, setLocalSearchQuery] = useState38(membersSearchQuery);
|
|
5724
|
+
const [isTyping, setIsTyping] = useState38(false);
|
|
5725
|
+
const typingTimer = useRef14(null);
|
|
5747
5726
|
const handleSearchInput = (e) => {
|
|
5748
5727
|
const val = e.target.value;
|
|
5749
5728
|
setLocalSearchQuery(val);
|