@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 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-4xl overflow-hidden p-8 flex flex-col min-h-75 transition-all duration-300 group text-left ${getBgStyle()} ${f.size}`
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, { useState as useState20, useEffect as useEffect11, useRef as useRef6 } from "react";
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-4xl overflow-hidden p-8 flex flex-col min-h-75 transition-all duration-300 group text-left ${getBgStyle()} ${f.size}`
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 useState21 } from "react";
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] = useState21(false);
2956
- const [isSubmitting, setIsSubmitting] = useState21(false);
2957
- const [isPasscodeModalOpen, setIsPasscodeModalOpen] = useState21(false);
2958
- const [oldPasscode, setOldPasscode] = useState21("");
2959
- const [newPasscode, setNewPasscode] = useState21("");
2960
- const [confirmPasscode, setConfirmPasscode] = useState21("");
2961
- const [isPasscodeSubmitting, setIsPasscodeSubmitting] = useState21(false);
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 useRef7, useState as useState22, useEffect as useEffect12 } from "react";
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] = useState22(true);
3144
- const [isFgLoading, setIsFgLoading] = useState22(!!feature.image);
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 = useRef7(null);
3183
- const [canScrollLeft, setCanScrollLeft] = useState22(false);
3184
- const [canScrollRight, setCanScrollRight] = useState22(true);
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
- useEffect12(() => {
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 useState23, useEffect as useEffect13, useRef as useRef8 } from "react";
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] = useState23(false);
3282
- const titleRef = useRef8(null);
3283
- useEffect13(() => {
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 useState24, useEffect as useEffect14 } from "react";
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] = useState24(false);
3327
- useEffect14(() => {
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 useState25, useEffect as useEffect15, useRef as useRef9 } from "react";
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] = useState25(false);
3400
- const [activeTabIndex, setActiveTabIndex] = useState25(0);
3401
- const titleRef = useRef9(null);
3402
- useEffect15(() => {
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 useEffect16, useRef as useRef10 } from "react";
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 = useRef10(null);
3624
- useEffect16(() => {
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 useState26 } from "react";
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] = useState26(true);
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 useState27, useEffect as useEffect17, useRef as useRef11 } from "react";
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] = useState27(false);
3762
- const titleRef = useRef11(null);
3763
- useEffect17(() => {
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 useState28 } from "react";
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] = useState28(true);
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] = useState28(0);
3828
- const [touchStart, setTouchStart] = useState28(null);
3829
- const [touchEnd, setTouchEnd] = useState28(null);
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 useState29 } from "react";
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 useState30 } from "react";
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] = useState30(false);
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] = useState30(1);
4103
+ const [activeTabIndex, setActiveTabIndex] = useState29(1);
4125
4104
  const tabs = [{ label: "Today" }, { label: "Week" }, { label: "Month" }];
4126
- const [selectedReward, setSelectedReward] = useState30(null);
4127
- const [isClaiming, setIsClaiming] = useState30(false);
4128
- const [showConfetti, setShowConfetti] = useState30(false);
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 useState31 } from "react";
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] = useState31(false);
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 useState32 } from "react";
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] = useState32(null);
4344
- const [intendedAction, setIntendedAction] = useState32(null);
4345
- const [isProcessing, setIsProcessing] = useState32(false);
4346
- const [showConfetti, setShowConfetti] = useState32(false);
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 useState33, useEffect as useEffect18 } from "react";
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] = useState33("");
4497
- useEffect18(() => {
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 useState34, useEffect as useEffect19, useRef as useRef12, useCallback } from "react";
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] = useState34(false);
4557
- const [hasError, setHasError] = useState34(false);
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] = useState34(() => {
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] = useState34(() => {
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] = useState34("");
4622
- const [cryptoAmount, setCryptoAmount] = useState34("");
4623
- const [activeSource, setActiveSource] = useState34("FIAT");
4624
- const [isCalculating, setIsCalculating] = useState34(false);
4625
- const [rateDisplay, setRateDisplay] = useState34(null);
4626
- const [currentRateKey, setCurrentRateKey] = useState34(null);
4627
- const [recipientAddress, setRecipientAddress] = useState34(defaultRecipientAddress);
4628
- const [isAddressValid, setIsAddressValid] = useState34(false);
4629
- const [isCryptoDialogOpen, setIsCryptoDialogOpen] = useState34(false);
4630
- const [isNetworkDialogOpen, setIsNetworkDialogOpen] = useState34(false);
4631
- const [isSubmitting, setIsSubmitting] = useState34(false);
4632
- const debounceTimerRef = useRef12(null);
4633
- useEffect19(() => {
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
- useEffect19(() => {
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 useState35 } from "react";
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] = useState35(false);
4838
- const [error, setError] = useState35(false);
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 useState36, useEffect as useEffect20, useRef as useRef13 } from "react";
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] = useState36(false);
4928
- const [error, setError] = useState36(false);
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] = useState36(null);
4977
- const [memberToRemove, setMemberToRemove] = useState36(null);
4978
- const [isRemoving, setIsRemoving] = useState36(false);
4979
- const [isInviteMode, setIsInviteMode] = useState36(false);
4980
- const [inviteEmail, setInviteEmail] = useState36("");
4981
- const [isInviting, setIsInviting] = useState36(false);
4982
- const [localSearchQuery, setLocalSearchQuery] = useState36(searchQuery);
4983
- const [isTyping, setIsTyping] = useState36(false);
4984
- const [isStatusModalOpen, setIsStatusModalOpen] = useState36(false);
4985
- const [isRoleModalOpen, setIsRoleModalOpen] = useState36(false);
4986
- const statusDropdownRef = useRef13(null);
4987
- const roleDropdownRef = useRef13(null);
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
- useEffect20(() => {
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
- useEffect20(() => {
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
- useEffect20(() => {
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 useState37 } from "react";
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] = useState37(false);
5198
- const [error, setError] = useState37(false);
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] = useState37(false);
5232
- const [showNotifDialog, setShowNotifDialog] = useState37(false);
5233
- const [showOrgSwitcher, setShowOrgSwitcher] = useState37(false);
5234
- const [selectedNotif, setSelectedNotif] = useState37(null);
5235
- const [isResolving, setIsResolving] = useState37(false);
5236
- const [showLogoutConfirm, setShowLogoutConfirm] = useState37(false);
5237
- const [isLoggingOut, setIsLoggingOut] = useState37(false);
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 useState38, useEffect as useEffect21, useRef as useRef14 } from "react";
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] = useState38(false);
5426
- const [error, setError] = useState38(false);
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] = useState38(isOrg ? "MEMBERS" : "ACCOUNT");
5486
- const [expandedId, setExpandedId] = useState38(null);
5487
- const [memberToRemove, setMemberToRemove] = useState38(null);
5488
- const [isRemoving, setIsRemoving] = useState38(false);
5489
- const [isInviteMode, setIsInviteMode] = useState38(false);
5490
- const [inviteEmail, setInviteEmail] = useState38("");
5491
- const [isInviting, setIsInviting] = useState38(false);
5492
- const [localSearchQuery, setLocalSearchQuery] = useState38(membersSearchQuery);
5493
- const [isTyping, setIsTyping] = useState38(false);
5494
- const isFirstSearchMount = useRef14(true);
5495
- const [isStatusModalOpen, setIsStatusModalOpen] = useState38(false);
5496
- const [isRoleModalOpen, setIsRoleModalOpen] = useState38(false);
5497
- const [roleEditTarget, setRoleEditTarget] = useState38(null);
5498
- const [isUpdatingRole, setIsUpdatingRole] = useState38(false);
5499
- const [orgName, setOrgName] = useState38(initialOrgName);
5500
- const [orgSlug, setOrgSlug] = useState38(initialOrgSlug);
5501
- const [firstName, setFirstName] = useState38("");
5502
- const [lastName, setLastName] = useState38("");
5503
- const [isCheckingSlug, setIsCheckingSlug] = useState38(false);
5504
- const [slugAvailable, setSlugAvailable] = useState38(null);
5505
- const [isSavingOrg, setIsSavingOrg] = useState38(false);
5506
- const [isSavingProfile, setIsSavingProfile] = useState38(false);
5507
- useEffect21(() => {
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
- useEffect21(() => {
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
- useEffect21(() => {
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 useState39, useEffect as useEffect22, useRef as useRef15 } from "react";
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] = useState39(false);
5682
- const [error, setError] = useState39(false);
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] = useState39(() => {
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] = useState39("");
5731
- const [isPrivate, setIsPrivate] = useState39(false);
5732
- const [timezone, setTimezone] = useState39("UTC");
5733
- useEffect22(() => {
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] = useState39(null);
5740
- const [showTimezoneModal, setShowTimezoneModal] = useState39(false);
5741
- const [showMembersModal, setShowMembersModal] = useState39(false);
5742
- const [selectedParticipants, setSelectedParticipants] = useState39(/* @__PURE__ */ new Set());
5743
- const [isSubmitting, setIsSubmitting] = useState39(false);
5744
- const [localSearchQuery, setLocalSearchQuery] = useState39(membersSearchQuery);
5745
- const [isTyping, setIsTyping] = useState39(false);
5746
- const typingTimer = useRef15(null);
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);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@retinalabsllc/zairusjs",
3
- "version": "16.3.3",
3
+ "version": "16.3.4",
4
4
  "description": "A perceptive, Ai data driven Next.js UI component library.",
5
5
  "author": "Retina Labs Company",
6
6
  "license": "MIT",