@retinalabsllc/zairusjs 9.0.40 → 9.0.50

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.mjs CHANGED
@@ -593,49 +593,206 @@ var Footer = ({
593
593
  };
594
594
 
595
595
  // src/components/MobileNav.tsx
596
- import React7 from "react";
596
+ import React8, { useState as useState5 } from "react";
597
597
  import Link4 from "next/link";
598
- import { usePathname as usePathname2 } from "next/navigation";
598
+ import { usePathname as usePathname2, useRouter } from "next/navigation";
599
+ import { HugeiconsIcon as HugeiconsIcon4 } from "@hugeicons/react";
600
+ import {
601
+ SidebarLeft01Icon,
602
+ ArrowLeft01Icon,
603
+ LogoutCircle02Icon,
604
+ Notification01Icon
605
+ } from "@hugeicons/core-free-icons";
606
+
607
+ // src/components/ConfirmationDialog.tsx
608
+ import React7 from "react";
599
609
  import { HugeiconsIcon as HugeiconsIcon3 } from "@hugeicons/react";
600
- var MobileNav = ({ items }) => {
610
+ import { Loading03Icon as Loading03Icon2 } from "@hugeicons/core-free-icons";
611
+ var ConfirmationDialog = ({
612
+ isOpen,
613
+ title,
614
+ message,
615
+ confirmText = "Confirm",
616
+ cancelText = "Cancel",
617
+ isProcessing = false,
618
+ isDestructive = true,
619
+ onClose,
620
+ onConfirm
621
+ }) => {
622
+ if (!isOpen) return null;
623
+ return /* @__PURE__ */ React7.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React7.createElement(
624
+ "div",
625
+ {
626
+ className: "absolute inset-0 bg-black/40 ",
627
+ onClick: () => !isProcessing && onClose()
628
+ }
629
+ ), /* @__PURE__ */ React7.createElement("div", { className: "relative w-72 bg-white rounded-2xl flex flex-col items-center overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200" }, /* @__PURE__ */ React7.createElement("div", { className: "p-6 pb-4 text-center w-full" }, /* @__PURE__ */ React7.createElement("h3", { className: "text-[17px] text-black tracking-tight mb-2" }, title), /* @__PURE__ */ React7.createElement("p", { className: "text-[12px] text-neutral-500 leading-relaxed px-2" }, message)), /* @__PURE__ */ React7.createElement("div", { className: "w-full flex" }, /* @__PURE__ */ React7.createElement(
630
+ "button",
631
+ {
632
+ onClick: onClose,
633
+ disabled: isProcessing,
634
+ className: "flex-1 py-4 text-[14px] text-neutral-500 hover:bg-neutral-50 transition-colors disabled:opacity-50 outline-none "
635
+ },
636
+ cancelText
637
+ ), /* @__PURE__ */ React7.createElement(
638
+ "button",
639
+ {
640
+ onClick: onConfirm,
641
+ disabled: isProcessing,
642
+ className: `flex-1 py-4 text-[13px] transition-colors disabled:opacity-50 flex justify-center items-center outline-none ${isDestructive ? "text-red-500 hover:bg-red-50" : "text-black hover:bg-neutral-50"}`
643
+ },
644
+ isProcessing ? /* @__PURE__ */ React7.createElement(HugeiconsIcon3, { icon: Loading03Icon2, className: "animate-spin", size: 18 }) : confirmText
645
+ ))));
646
+ };
647
+
648
+ // src/components/MobileNav.tsx
649
+ var MobileNav = ({
650
+ items,
651
+ web3Address,
652
+ web3Avatar,
653
+ userInitials = "U",
654
+ unreadCount = 0,
655
+ onOpenNotifications,
656
+ onLogout
657
+ }) => {
601
658
  const pathname = usePathname2();
659
+ const router = useRouter();
660
+ const [isCollapsed, setIsCollapsed] = useState5(false);
661
+ const [showLogoutDialog, setShowLogoutDialog] = useState5(false);
662
+ const [isLoggingOut, setIsLoggingOut] = useState5(false);
602
663
  if (!items || items.length === 0) return null;
603
- return /* @__PURE__ */ React7.createElement("div", { className: "fixed bottom-6 inset-x-0 z-100 flex justify-center pointer-events-none px-3 animate-in slide-in-from-bottom-8 fade-in duration-500" }, /* @__PURE__ */ React7.createElement("nav", { className: "pointer-events-auto w-full max-w-sm bg-white/50 backdrop-blur-xl shadow-[0_8px_30px_rgb(0,0,0,0.08)] rounded-full px-6 py-2.5 flex items-center justify-between" }, items.map((item) => {
604
- const isActive = item.href === "/" ? pathname === "/" : pathname?.startsWith(item.href);
605
- return /* @__PURE__ */ React7.createElement(
664
+ const isItemActive = (href) => {
665
+ if (href === "/" || href === "/app") {
666
+ return pathname === "/" || pathname === "/app";
667
+ }
668
+ return pathname?.startsWith(href);
669
+ };
670
+ const isChildRoute = pathname !== "/" && pathname !== "/app" && !items.some((item) => item.href === pathname);
671
+ const handleLogout = async () => {
672
+ setIsLoggingOut(true);
673
+ try {
674
+ if (onLogout) await onLogout();
675
+ } finally {
676
+ setIsLoggingOut(false);
677
+ setShowLogoutDialog(false);
678
+ }
679
+ };
680
+ const handleCopyWallet = () => {
681
+ if (web3Address) {
682
+ navigator.clipboard.writeText(web3Address);
683
+ }
684
+ };
685
+ return /* @__PURE__ */ React8.createElement(React8.Fragment, null, /* @__PURE__ */ React8.createElement(
686
+ "aside",
687
+ {
688
+ className: `hidden md:flex fixed top-0 left-0 h-screen bg-white border-r border-neutral-100 flex-col transition-all duration-300 z-40 ${isCollapsed ? "w-20" : "w-64"}`
689
+ },
690
+ /* @__PURE__ */ React8.createElement("div", { className: `p-5 flex items-center shrink-0 ${isCollapsed ? "justify-center" : "justify-start"}` }, /* @__PURE__ */ React8.createElement("div", { className: "flex items-center gap-3 w-full" }, /* @__PURE__ */ React8.createElement("div", { className: "w-10 h-10 rounded-full flex items-center justify-center shrink-0 border border-neutral-100 bg-neutral-50 overflow-hidden" }, web3Avatar ? /* @__PURE__ */ React8.createElement("img", { src: web3Avatar, alt: "Avatar", className: "w-full h-full object-cover" }) : /* @__PURE__ */ React8.createElement("span", { className: "text-[12px] font-medium text-black uppercase" }, userInitials)), !isCollapsed && /* @__PURE__ */ React8.createElement("div", { className: "flex flex-col min-w-0" }, /* @__PURE__ */ React8.createElement("span", { className: "text-[14px] font-medium text-black truncate" }, "Aeona Profile"), web3Address && /* @__PURE__ */ React8.createElement(
691
+ "span",
692
+ {
693
+ onClick: handleCopyWallet,
694
+ className: "text-[10px] text-neutral-500 truncate cursor-pointer hover:text-black transition-colors"
695
+ },
696
+ web3Address
697
+ )))),
698
+ /* @__PURE__ */ React8.createElement("nav", { className: "flex-1 py-4 flex flex-col gap-2 px-3 overflow-y-auto custom-scrollbar" }, items.map((item) => {
699
+ const active = isItemActive(item.href);
700
+ return /* @__PURE__ */ React8.createElement(
701
+ Link4,
702
+ {
703
+ key: item.label,
704
+ href: item.href,
705
+ className: `flex items-center gap-3 px-3 py-2.5 rounded-xl transition-all outline-none group shrink-0 ${active ? "bg-neutral-100 text-black" : "text-neutral-500 hover:bg-neutral-50 hover:text-black"}`,
706
+ title: isCollapsed ? item.label : void 0
707
+ },
708
+ /* @__PURE__ */ React8.createElement(
709
+ HugeiconsIcon4,
710
+ {
711
+ icon: item.icon,
712
+ size: 20,
713
+ className: `shrink-0 transition-colors ${active ? "text-black" : "text-neutral-400 group-hover:text-black"}`
714
+ }
715
+ ),
716
+ !isCollapsed && /* @__PURE__ */ React8.createElement("span", { className: `text-[13px] font-medium tracking-wide truncate ${active ? "text-black" : ""}` }, item.label)
717
+ );
718
+ })),
719
+ /* @__PURE__ */ React8.createElement("div", { className: "p-4 shrink-0 flex flex-col gap-2 border-t border-neutral-50" }, /* @__PURE__ */ React8.createElement(
720
+ "button",
721
+ {
722
+ onClick: () => setShowLogoutDialog(true),
723
+ className: `flex items-center gap-3 px-3 py-2.5 rounded-xl transition-all outline-none group text-neutral-500 hover:bg-neutral-50 hover:text-red-500 ${isCollapsed ? "justify-center" : ""}`,
724
+ title: isCollapsed ? "Log Out" : void 0
725
+ },
726
+ /* @__PURE__ */ React8.createElement(HugeiconsIcon4, { icon: LogoutCircle02Icon, size: 20, className: "shrink-0 transition-colors" }),
727
+ !isCollapsed && /* @__PURE__ */ React8.createElement("span", { className: "text-[13px] font-medium tracking-wide" }, "Log Out")
728
+ ), /* @__PURE__ */ React8.createElement(
729
+ "button",
730
+ {
731
+ onClick: () => setIsCollapsed(!isCollapsed),
732
+ className: `flex items-center gap-3 px-3 py-2.5 rounded-xl transition-all outline-none group text-neutral-400 hover:bg-neutral-50 hover:text-black ${isCollapsed ? "justify-center" : ""}`
733
+ },
734
+ /* @__PURE__ */ React8.createElement(HugeiconsIcon4, { icon: SidebarLeft01Icon, size: 20, className: "shrink-0 transition-colors" }),
735
+ !isCollapsed && /* @__PURE__ */ React8.createElement("span", { className: "text-[13px] font-medium tracking-wide" }, "Collapse")
736
+ ))
737
+ ), /* @__PURE__ */ React8.createElement("div", { className: "md:hidden fixed top-3 inset-x-0 z-50 flex justify-center pointer-events-none px-2.5" }, /* @__PURE__ */ React8.createElement("header", { className: "pointer-events-auto w-full max-w-sm backdrop-blur-xl bg-white/65 rounded-full p-2 flex items-center justify-between" }, /* @__PURE__ */ React8.createElement("div", { className: "flex items-center gap-2" }, isChildRoute && /* @__PURE__ */ React8.createElement(
738
+ "button",
739
+ {
740
+ onClick: () => router.back(),
741
+ className: "w-8 h-8 rounded-full bg-white flex items-center justify-center text-neutral-600 hover:text-black transition-colors outline-none shrink-0 border border-neutral-100"
742
+ },
743
+ /* @__PURE__ */ React8.createElement(HugeiconsIcon4, { icon: ArrowLeft01Icon, size: 16 })
744
+ ), web3Address && /* @__PURE__ */ React8.createElement(
745
+ "div",
746
+ {
747
+ onClick: handleCopyWallet,
748
+ className: "flex items-center gap-2 bg-white rounded-full p-1 pr-3 cursor-pointer hover:bg-neutral-50 transition-colors border border-neutral-100"
749
+ },
750
+ web3Avatar ? /* @__PURE__ */ React8.createElement("img", { src: web3Avatar, alt: "Avatar", className: "w-6 h-6 rounded-full object-cover shrink-0" }) : /* @__PURE__ */ React8.createElement("div", { className: "w-6 h-6 rounded-full bg-neutral-100 flex items-center justify-center text-[10px] font-medium text-black shrink-0" }, userInitials),
751
+ /* @__PURE__ */ React8.createElement("span", { className: "text-[12px] font-medium text-black truncate max-w-24 sm:max-w-40" }, web3Address)
752
+ )), /* @__PURE__ */ React8.createElement(
753
+ "button",
754
+ {
755
+ onClick: onOpenNotifications,
756
+ className: "relative w-8 h-8 shrink-0 bg-white rounded-full flex items-center justify-center text-neutral-600 hover:text-black transition-colors outline-none mr-1 border border-neutral-100"
757
+ },
758
+ /* @__PURE__ */ React8.createElement(HugeiconsIcon4, { icon: Notification01Icon, size: 16 }),
759
+ unreadCount > 0 && /* @__PURE__ */ React8.createElement("span", { className: "absolute top-1 right-1.5 w-2 h-2 bg-blue-600 rounded-full border-2 border-white" })
760
+ ))), /* @__PURE__ */ React8.createElement("div", { className: "md:hidden fixed bottom-6 inset-x-0 z-100 flex justify-center pointer-events-none px-3 animate-in slide-in-from-bottom-8 fade-in duration-500" }, /* @__PURE__ */ React8.createElement("nav", { className: "pointer-events-auto w-full max-w-sm bg-white/65 backdrop-blur-xl shadow-[0_8px_30px_rgb(0,0,0,0.08)] rounded-full px-6 py-2.5 flex items-center justify-between border border-white/50" }, items.map((item) => {
761
+ const active = isItemActive(item.href);
762
+ return /* @__PURE__ */ React8.createElement(
606
763
  Link4,
607
764
  {
608
765
  key: item.label,
609
766
  href: item.href,
610
767
  className: "flex flex-col items-center justify-center gap-1 min-w-14 transition-transform active:scale-95 outline-none"
611
768
  },
612
- /* @__PURE__ */ React7.createElement("div", { className: `transition-colors duration-300 ${isActive ? "text-black" : "text-neutral-400 hover:text-neutral-600"}` }, /* @__PURE__ */ React7.createElement(
613
- HugeiconsIcon3,
614
- {
615
- icon: item.icon,
616
- size: 20
617
- }
618
- )),
619
- /* @__PURE__ */ React7.createElement(
620
- "span",
621
- {
622
- className: `text-[9px] tracking-wide transition-colors duration-300 ${isActive ? "text-black" : "text-neutral-400"}`
623
- },
624
- item.label
625
- )
769
+ /* @__PURE__ */ React8.createElement("div", { className: `transition-colors duration-300 ${active ? "text-black" : "text-neutral-400 hover:text-neutral-600"}` }, /* @__PURE__ */ React8.createElement(HugeiconsIcon4, { icon: item.icon, size: 20 })),
770
+ /* @__PURE__ */ React8.createElement("span", { className: `text-[9px] tracking-wide font-medium transition-colors duration-300 ${active ? "text-black" : "text-neutral-400"}` }, item.label)
626
771
  );
627
- })));
772
+ }))), /* @__PURE__ */ React8.createElement(
773
+ ConfirmationDialog,
774
+ {
775
+ isOpen: showLogoutDialog,
776
+ title: "Secure Logout",
777
+ message: "Are you sure you want to log out? You will need to authenticate to return.",
778
+ confirmText: "Log Out",
779
+ isDestructive: true,
780
+ isProcessing: isLoggingOut,
781
+ onClose: () => setShowLogoutDialog(false),
782
+ onConfirm: handleLogout
783
+ }
784
+ ));
628
785
  };
629
786
 
630
787
  // src/components/UniversalOrganizationPage.tsx
631
- import React11, { useState as useState6, useEffect as useEffect4 } from "react";
788
+ import React12, { useState as useState7, useEffect as useEffect4 } from "react";
632
789
  import toast2 from "react-hot-toast";
633
790
 
634
791
  // src/components/ManagedToaster.tsx
635
- import React8 from "react";
792
+ import React9 from "react";
636
793
  import { Toaster } from "react-hot-toast";
637
794
  var ManagedToaster = () => {
638
- return /* @__PURE__ */ React8.createElement(
795
+ return /* @__PURE__ */ React9.createElement(
639
796
  Toaster,
640
797
  {
641
798
  position: "top-right",
@@ -667,7 +824,7 @@ var ManagedToaster = () => {
667
824
  };
668
825
 
669
826
  // src/components/ReusableInputs.tsx
670
- import React9 from "react";
827
+ import React10 from "react";
671
828
  var TextInput = ({
672
829
  label,
673
830
  value,
@@ -678,7 +835,7 @@ var TextInput = ({
678
835
  readOnly,
679
836
  type = "text",
680
837
  onClick
681
- }) => /* @__PURE__ */ React9.createElement("div", { className: "space-y-2 flex-1 w-full", onClick }, label && /* @__PURE__ */ React9.createElement("label", { className: "text-[11px] text-neutral-400 tracking-[0.2em] block " }, label), /* @__PURE__ */ React9.createElement(
838
+ }) => /* @__PURE__ */ React10.createElement("div", { className: "space-y-2 flex-1 w-full", onClick }, label && /* @__PURE__ */ React10.createElement("label", { className: "text-[11px] text-neutral-400 tracking-[0.2em] block " }, label), /* @__PURE__ */ React10.createElement(
682
839
  "input",
683
840
  {
684
841
  type,
@@ -699,7 +856,7 @@ var NumberInput = ({
699
856
  placeholder,
700
857
  maxLength,
701
858
  disabled
702
- }) => /* @__PURE__ */ React9.createElement("div", { className: "space-y-2 flex-1 w-full" }, label && /* @__PURE__ */ React9.createElement("label", { className: "text-[11px] text-neutral-400 tracking-[0.2em] block " }, label), /* @__PURE__ */ React9.createElement(
859
+ }) => /* @__PURE__ */ React10.createElement("div", { className: "space-y-2 flex-1 w-full" }, label && /* @__PURE__ */ React10.createElement("label", { className: "text-[11px] text-neutral-400 tracking-[0.2em] block " }, label), /* @__PURE__ */ React10.createElement(
703
860
  "input",
704
861
  {
705
862
  type: "text",
@@ -717,8 +874,8 @@ var NumberInput = ({
717
874
  ));
718
875
 
719
876
  // src/components/Banner.tsx
720
- import React10, { useState as useState5 } from "react";
721
- import { HugeiconsIcon as HugeiconsIcon4 } from "@hugeicons/react";
877
+ import React11, { useState as useState6 } from "react";
878
+ import { HugeiconsIcon as HugeiconsIcon5 } from "@hugeicons/react";
722
879
  import {
723
880
  Alert02Icon,
724
881
  CheckmarkBadge01Icon,
@@ -734,7 +891,7 @@ var Banner = ({
734
891
  onDismiss,
735
892
  action
736
893
  }) => {
737
- const [isVisible, setIsVisible] = useState5(true);
894
+ const [isVisible, setIsVisible] = useState6(true);
738
895
  if (!isVisible) return null;
739
896
  const handleDismiss = () => {
740
897
  setIsVisible(false);
@@ -768,23 +925,23 @@ var Banner = ({
768
925
  };
769
926
  const currentConfig = config[type];
770
927
  const IconToUse = icon || currentConfig.defaultIcon;
771
- return /* @__PURE__ */ React10.createElement("div", { className: `relative w-full rounded-2xl p-4 flex items-start gap-4 transition-all duration-300 animate-in fade-in slide-in-from-top-2 ${currentConfig.bg}` }, /* @__PURE__ */ React10.createElement("div", { className: "flex-1 flex flex-col min-w-0" }, /* @__PURE__ */ React10.createElement("h4", { className: `text-sm tracking-tight mb-1 ${currentConfig.titleColor}` }, title), /* @__PURE__ */ React10.createElement("p", { className: `text-xs leading-relaxed ${currentConfig.msgColor}` }, message), action && /* @__PURE__ */ React10.createElement("div", { className: "mt-3" }, action)), isDismissible && /* @__PURE__ */ React10.createElement(
928
+ return /* @__PURE__ */ React11.createElement("div", { className: `relative w-full rounded-2xl p-4 flex items-start gap-4 transition-all duration-300 animate-in fade-in slide-in-from-top-2 ${currentConfig.bg}` }, /* @__PURE__ */ React11.createElement("div", { className: "flex-1 flex flex-col min-w-0" }, /* @__PURE__ */ React11.createElement("h4", { className: `text-sm tracking-tight mb-1 ${currentConfig.titleColor}` }, title), /* @__PURE__ */ React11.createElement("p", { className: `text-xs leading-relaxed ${currentConfig.msgColor}` }, message), action && /* @__PURE__ */ React11.createElement("div", { className: "mt-3" }, action)), isDismissible && /* @__PURE__ */ React11.createElement(
772
929
  "button",
773
930
  {
774
931
  onClick: handleDismiss,
775
932
  className: `absolute top-3 right-3 p-1.5 rounded-full transition-colors outline-none shrink-0 ${currentConfig.closeHover}`,
776
933
  "aria-label": "Dismiss banner"
777
934
  },
778
- /* @__PURE__ */ React10.createElement(HugeiconsIcon4, { icon: Cancel01Icon, size: 16 })
935
+ /* @__PURE__ */ React11.createElement(HugeiconsIcon5, { icon: Cancel01Icon, size: 16 })
779
936
  ));
780
937
  };
781
938
 
782
939
  // src/components/UniversalOrganizationPage.tsx
783
- import { HugeiconsIcon as HugeiconsIcon5 } from "@hugeicons/react";
940
+ import { HugeiconsIcon as HugeiconsIcon6 } from "@hugeicons/react";
784
941
  import {
785
942
  CircleLock02Icon
786
943
  } from "@hugeicons/core-free-icons";
787
- var InputSpinner2 = () => /* @__PURE__ */ React11.createElement("svg", { className: "animate-spin h-4 w-4 text-neutral-400", xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24" }, /* @__PURE__ */ React11.createElement("circle", { className: "opacity-25", cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4" }), /* @__PURE__ */ React11.createElement("path", { className: "opacity-75", fill: "currentColor", d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z" }));
944
+ var InputSpinner2 = () => /* @__PURE__ */ React12.createElement("svg", { className: "animate-spin h-4 w-4 text-neutral-400", xmlns: "http://www.w3.org/2000/svg", fill: "none", viewBox: "0 0 24 24" }, /* @__PURE__ */ React12.createElement("circle", { className: "opacity-25", cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4" }), /* @__PURE__ */ React12.createElement("path", { className: "opacity-75", fill: "currentColor", d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z" }));
788
945
  var UniversalOrganizationPage = ({
789
946
  initialOrgName,
790
947
  initialSlug,
@@ -797,12 +954,12 @@ var UniversalOrganizationPage = ({
797
954
  onCheckSlugAvailability
798
955
  }) => {
799
956
  const resolvedInitialUsername = initialUsername || initialSlug;
800
- const [web3Name, setWeb3Name] = useState6(initialOrgName);
801
- const [username, setUsername] = useState6(resolvedInitialUsername);
802
- const [slug, setSlug] = useState6(initialSlug);
803
- const [isCheckingSlug, setIsCheckingSlug] = useState6(false);
804
- const [slugAvailable, setSlugAvailable] = useState6(null);
805
- const [isSubmitting, setIsSubmitting] = useState6(false);
957
+ const [web3Name, setWeb3Name] = useState7(initialOrgName);
958
+ const [username, setUsername] = useState7(resolvedInitialUsername);
959
+ const [slug, setSlug] = useState7(initialSlug);
960
+ const [isCheckingSlug, setIsCheckingSlug] = useState7(false);
961
+ const [slugAvailable, setSlugAvailable] = useState7(null);
962
+ const [isSubmitting, setIsSubmitting] = useState7(false);
806
963
  useEffect4(() => {
807
964
  setWeb3Name(initialOrgName || "");
808
965
  setSlug(initialSlug || "");
@@ -872,7 +1029,7 @@ var UniversalOrganizationPage = ({
872
1029
  };
873
1030
  const hasChanges = web3Name !== initialOrgName || slug !== initialSlug || username !== resolvedInitialUsername;
874
1031
  const isSaveDisabled = isSubmitting || isReadOnly || isCheckingSlug || !hasChanges || web3Name.length < 3 || slug.length < 3 || username.length < 3 || slug !== initialSlug && slugAvailable === false;
875
- return /* @__PURE__ */ React11.createElement("div", { className: "flex flex-col gap-8 animate-in max-w-5xl rounded-2xl p-6 bg-white fade-in duration-300" }, /* @__PURE__ */ React11.createElement(ManagedToaster, null), /* @__PURE__ */ React11.createElement("div", { className: "flex items-start justify-between gap-4" }, /* @__PURE__ */ React11.createElement("div", null, /* @__PURE__ */ React11.createElement("h1", { className: "text-black text-xl mb-1 tracking-tight" }, "Public Profile"), /* @__PURE__ */ React11.createElement("p", { className: "text-xs text-neutral-500" }, "Manage your financial payment handle identifiers and global public cryptographic signature identity details.")), isReadOnly && /* @__PURE__ */ React11.createElement("span", { className: "p-2 w-9 h-9 bg-neutral-100 text-neutral-400 rounded-full shrink-0" }, /* @__PURE__ */ React11.createElement(HugeiconsIcon5, { icon: CircleLock02Icon, size: 18, className: "text-current" }))), bannerProps && /* @__PURE__ */ React11.createElement(Banner, { ...bannerProps }), /* @__PURE__ */ React11.createElement("div", { className: "w-full max-w-5xl" }, /* @__PURE__ */ React11.createElement("form", { className: "flex flex-col gap-8", onSubmit: handleSave, autoComplete: "off" }, /* @__PURE__ */ React11.createElement(
1032
+ return /* @__PURE__ */ React12.createElement("div", { className: "flex flex-col gap-8 animate-in max-w-5xl rounded-2xl p-6 bg-white fade-in duration-300" }, /* @__PURE__ */ React12.createElement(ManagedToaster, null), /* @__PURE__ */ React12.createElement("div", { className: "flex items-start justify-between gap-4" }, /* @__PURE__ */ React12.createElement("div", null, /* @__PURE__ */ React12.createElement("h1", { className: "text-black text-xl mb-1 tracking-tight" }, "Public Profile"), /* @__PURE__ */ React12.createElement("p", { className: "text-xs text-neutral-500" }, "Manage your financial payment handle identifiers and global public cryptographic signature identity details.")), isReadOnly && /* @__PURE__ */ React12.createElement("span", { className: "p-2 w-9 h-9 bg-neutral-100 text-neutral-400 rounded-full shrink-0" }, /* @__PURE__ */ React12.createElement(HugeiconsIcon6, { icon: CircleLock02Icon, size: 18, className: "text-current" }))), bannerProps && /* @__PURE__ */ React12.createElement(Banner, { ...bannerProps }), /* @__PURE__ */ React12.createElement("div", { className: "w-full max-w-5xl" }, /* @__PURE__ */ React12.createElement("form", { className: "flex flex-col gap-8", onSubmit: handleSave, autoComplete: "off" }, /* @__PURE__ */ React12.createElement(
876
1033
  TextInput,
877
1034
  {
878
1035
  label: "Display Name",
@@ -882,7 +1039,7 @@ var UniversalOrganizationPage = ({
882
1039
  placeholder: "Sovereign User",
883
1040
  maxLength: 50
884
1041
  }
885
- ), /* @__PURE__ */ React11.createElement(
1042
+ ), /* @__PURE__ */ React12.createElement(
886
1043
  TextInput,
887
1044
  {
888
1045
  label: "Digital Identity",
@@ -892,7 +1049,7 @@ var UniversalOrganizationPage = ({
892
1049
  placeholder: "sovereignuser",
893
1050
  maxLength: 30
894
1051
  }
895
- ), /* @__PURE__ */ React11.createElement("div", { className: "space-y-1.5 relative w-full" }, /* @__PURE__ */ React11.createElement("label", { className: "text-[11px] text-neutral-400 tracking-[0.2em] block" }, "Wallet Username"), /* @__PURE__ */ React11.createElement("div", { className: "flex items-center relative w-full border-b border-neutral-100 focus-within:border-black transition-all duration-300" }, /* @__PURE__ */ React11.createElement(
1052
+ ), /* @__PURE__ */ React12.createElement("div", { className: "space-y-1.5 relative w-full" }, /* @__PURE__ */ React12.createElement("label", { className: "text-[11px] text-neutral-400 tracking-[0.2em] block" }, "Wallet Username"), /* @__PURE__ */ React12.createElement("div", { className: "flex items-center relative w-full border-b border-neutral-100 focus-within:border-black transition-all duration-300" }, /* @__PURE__ */ React12.createElement(
896
1053
  "input",
897
1054
  {
898
1055
  type: "text",
@@ -904,7 +1061,7 @@ var UniversalOrganizationPage = ({
904
1061
  className: "w-full px-2 py-3 text-sm bg-transparent text-black outline-none disabled:opacity-50 disabled:cursor-not-allowed",
905
1062
  placeholder: "sovereign-user-handle"
906
1063
  }
907
- ), /* @__PURE__ */ React11.createElement("span", { className: "text-neutral-400 text-sm py-3 pr-8 shrink-0 whitespace-nowrap" }, slugPrefixUrl), /* @__PURE__ */ React11.createElement("div", { className: "absolute right-2 top-1/2 -translate-y-1/2" }, isCheckingSlug && /* @__PURE__ */ React11.createElement(InputSpinner2, null), !isCheckingSlug && !isReadOnly && slug !== initialSlug && slug.length >= 3 && slugAvailable === false && /* @__PURE__ */ React11.createElement("span", { className: "inline-flex items-center justify-center w-4 h-4 rounded-full bg-red-100" }, /* @__PURE__ */ React11.createElement("svg", { className: "w-2 h-2 text-red-600", viewBox: "0 0 20 20", fill: "currentColor" }, /* @__PURE__ */ React11.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" }))), !isCheckingSlug && !isReadOnly && slug !== initialSlug && slug.length >= 3 && slugAvailable === true && /* @__PURE__ */ React11.createElement("span", { className: "inline-flex items-center justify-center w-4 h-4 rounded-full bg-green-100" }, /* @__PURE__ */ React11.createElement("svg", { className: "w-2 h-2 text-green-600", viewBox: "0 0 20 20", fill: "currentColor" }, /* @__PURE__ */ React11.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M16.707 5.293a1 1 0 00-1.414 0L8 12.586 4.707 9.293a1 1 0 10-1.414 1.414l4 4a1 1 0 001.414 0l8-8a1 1 0 000-1.414z" })))))), /* @__PURE__ */ React11.createElement("div", { className: "pt-8 mt-2 flex items-center gap-4" }, /* @__PURE__ */ React11.createElement(
1064
+ ), /* @__PURE__ */ React12.createElement("span", { className: "text-neutral-400 text-sm py-3 pr-8 shrink-0 whitespace-nowrap" }, slugPrefixUrl), /* @__PURE__ */ React12.createElement("div", { className: "absolute right-2 top-1/2 -translate-y-1/2" }, isCheckingSlug && /* @__PURE__ */ React12.createElement(InputSpinner2, null), !isCheckingSlug && !isReadOnly && slug !== initialSlug && slug.length >= 3 && slugAvailable === false && /* @__PURE__ */ React12.createElement("span", { className: "inline-flex items-center justify-center w-4 h-4 rounded-full bg-red-100" }, /* @__PURE__ */ React12.createElement("svg", { className: "w-2 h-2 text-red-600", viewBox: "0 0 20 20", fill: "currentColor" }, /* @__PURE__ */ React12.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z" }))), !isCheckingSlug && !isReadOnly && slug !== initialSlug && slug.length >= 3 && slugAvailable === true && /* @__PURE__ */ React12.createElement("span", { className: "inline-flex items-center justify-center w-4 h-4 rounded-full bg-green-100" }, /* @__PURE__ */ React12.createElement("svg", { className: "w-2 h-2 text-green-600", viewBox: "0 0 20 20", fill: "currentColor" }, /* @__PURE__ */ React12.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M16.707 5.293a1 1 0 00-1.414 0L8 12.586 4.707 9.293a1 1 0 10-1.414 1.414l4 4a1 1 0 001.414 0l8-8a1 1 0 000-1.414z" })))))), /* @__PURE__ */ React12.createElement("div", { className: "pt-8 mt-2 flex items-center gap-4" }, /* @__PURE__ */ React12.createElement(
908
1065
  ThreeDActionButton,
909
1066
  {
910
1067
  type: "submit",
@@ -913,7 +1070,7 @@ var UniversalOrganizationPage = ({
913
1070
  className: "min-w-32"
914
1071
  },
915
1072
  "Save Changes"
916
- ), hasChanges && !isSubmitting && !isReadOnly && /* @__PURE__ */ React11.createElement(
1073
+ ), hasChanges && !isSubmitting && !isReadOnly && /* @__PURE__ */ React12.createElement(
917
1074
  "button",
918
1075
  {
919
1076
  type: "button",
@@ -929,13 +1086,13 @@ var UniversalOrganizationPage = ({
929
1086
  };
930
1087
 
931
1088
  // src/components/UniversalProfileSettings.tsx
932
- import React12, { useState as useState7, useEffect as useEffect5 } from "react";
1089
+ import React13, { useState as useState8, useEffect as useEffect5 } from "react";
933
1090
  import toast3 from "react-hot-toast";
934
- import { HugeiconsIcon as HugeiconsIcon6 } from "@hugeicons/react";
1091
+ import { HugeiconsIcon as HugeiconsIcon7 } from "@hugeicons/react";
935
1092
  import {
936
1093
  CircleLock02Icon as CircleLock02Icon2,
937
1094
  CancelCircleIcon,
938
- Loading03Icon as Loading03Icon2,
1095
+ Loading03Icon as Loading03Icon3,
939
1096
  LockKeyIcon
940
1097
  } from "@hugeicons/core-free-icons";
941
1098
  var UniversalProfileSettings = ({
@@ -951,14 +1108,14 @@ var UniversalProfileSettings = ({
951
1108
  onSavePin,
952
1109
  onSaveProfile
953
1110
  }) => {
954
- const [firstName, setFirstName] = useState7(initialFirstName);
955
- const [lastName, setLastName] = useState7(initialLastName);
956
- const [isSubmitting, setIsSubmitting] = useState7(false);
957
- const [isPinModalOpen, setIsPinModalOpen] = useState7(false);
958
- const [oldPin, setOldPin] = useState7("");
959
- const [newPin, setNewPin] = useState7("");
960
- const [confirmPin, setConfirmPin] = useState7("");
961
- const [isPinSubmitting, setIsPinSubmitting] = useState7(false);
1111
+ const [firstName, setFirstName] = useState8(initialFirstName);
1112
+ const [lastName, setLastName] = useState8(initialLastName);
1113
+ const [isSubmitting, setIsSubmitting] = useState8(false);
1114
+ const [isPinModalOpen, setIsPinModalOpen] = useState8(false);
1115
+ const [oldPin, setOldPin] = useState8("");
1116
+ const [newPin, setNewPin] = useState8("");
1117
+ const [confirmPin, setConfirmPin] = useState8("");
1118
+ const [isPinSubmitting, setIsPinSubmitting] = useState8(false);
962
1119
  useEffect5(() => {
963
1120
  setFirstName(initialFirstName || "");
964
1121
  setLastName(initialLastName || "");
@@ -1025,7 +1182,7 @@ var UniversalProfileSettings = ({
1025
1182
  };
1026
1183
  const hasChanges = firstName !== initialFirstName || lastName !== initialLastName;
1027
1184
  const isSaveDisabled = isSubmitting || isReadOnly || !hasChanges || firstName.trim().length === 0 || lastName.trim().length === 0;
1028
- return /* @__PURE__ */ React12.createElement("div", { className: "flex flex-col max-w-5xl rounded-2xl p-6 bg-white gap-8 animate-in fade-in duration-300" }, /* @__PURE__ */ React12.createElement(ManagedToaster, null), /* @__PURE__ */ React12.createElement("div", { className: "flex flex-col sm:flex-row sm:items-start justify-between gap-3 sm:gap-4" }, /* @__PURE__ */ React12.createElement("div", { className: "min-w-0" }, /* @__PURE__ */ React12.createElement("h1", { className: "text-black text-xl mb-1 truncate tracking-tight" }, "Personal Settings"), /* @__PURE__ */ React12.createElement("p", { className: "text-xs text-neutral-500 truncate" }, "Manage your personal account profile.")), isReadOnly && /* @__PURE__ */ React12.createElement("span", { className: "p-2 w-9 h-9 bg-neutral-100 text-neutral-400 rounded-full shrink-0" }, /* @__PURE__ */ React12.createElement(HugeiconsIcon6, { icon: CircleLock02Icon2, size: 18, className: "text-current" }))), bannerProps && /* @__PURE__ */ React12.createElement(Banner, { ...bannerProps }), /* @__PURE__ */ React12.createElement("div", { className: "w-full max-w-5xl" }, /* @__PURE__ */ React12.createElement("form", { className: "flex flex-col gap-8", onSubmit: handleSave, autoComplete: "off" }, /* @__PURE__ */ React12.createElement("div", { className: "flex flex-col sm:flex-row gap-6" }, /* @__PURE__ */ React12.createElement("div", { className: "flex-1 min-w-0" }, /* @__PURE__ */ React12.createElement(
1185
+ return /* @__PURE__ */ React13.createElement("div", { className: "flex flex-col max-w-5xl rounded-2xl p-6 bg-white gap-8 animate-in fade-in duration-300" }, /* @__PURE__ */ React13.createElement(ManagedToaster, null), /* @__PURE__ */ React13.createElement("div", { className: "flex flex-col sm:flex-row sm:items-start justify-between gap-3 sm:gap-4" }, /* @__PURE__ */ React13.createElement("div", { className: "min-w-0" }, /* @__PURE__ */ React13.createElement("h1", { className: "text-black text-xl mb-1 truncate tracking-tight" }, "Personal Settings"), /* @__PURE__ */ React13.createElement("p", { className: "text-xs text-neutral-500 truncate" }, "Manage your personal account profile.")), isReadOnly && /* @__PURE__ */ React13.createElement("span", { className: "p-2 w-9 h-9 bg-neutral-100 text-neutral-400 rounded-full shrink-0" }, /* @__PURE__ */ React13.createElement(HugeiconsIcon7, { icon: CircleLock02Icon2, size: 18, className: "text-current" }))), bannerProps && /* @__PURE__ */ React13.createElement(Banner, { ...bannerProps }), /* @__PURE__ */ React13.createElement("div", { className: "w-full max-w-5xl" }, /* @__PURE__ */ React13.createElement("form", { className: "flex flex-col gap-8", onSubmit: handleSave, autoComplete: "off" }, /* @__PURE__ */ React13.createElement("div", { className: "flex flex-col sm:flex-row gap-6" }, /* @__PURE__ */ React13.createElement("div", { className: "flex-1 min-w-0" }, /* @__PURE__ */ React13.createElement(
1029
1186
  TextInput,
1030
1187
  {
1031
1188
  label: "First Name",
@@ -1034,7 +1191,7 @@ var UniversalProfileSettings = ({
1034
1191
  disabled: isReadOnly || isSubmitting,
1035
1192
  placeholder: "System"
1036
1193
  }
1037
- )), /* @__PURE__ */ React12.createElement("div", { className: "flex-1 min-w-0" }, /* @__PURE__ */ React12.createElement(
1194
+ )), /* @__PURE__ */ React13.createElement("div", { className: "flex-1 min-w-0" }, /* @__PURE__ */ React13.createElement(
1038
1195
  TextInput,
1039
1196
  {
1040
1197
  label: "Last Name",
@@ -1043,7 +1200,7 @@ var UniversalProfileSettings = ({
1043
1200
  disabled: isReadOnly || isSubmitting,
1044
1201
  placeholder: "Admin"
1045
1202
  }
1046
- ))), /* @__PURE__ */ React12.createElement("div", { className: "space-y-2 min-w-0" }, /* @__PURE__ */ React12.createElement(
1203
+ ))), /* @__PURE__ */ React13.createElement("div", { className: "space-y-2 min-w-0" }, /* @__PURE__ */ React13.createElement(
1047
1204
  TextInput,
1048
1205
  {
1049
1206
  label: "Email ID",
@@ -1052,7 +1209,7 @@ var UniversalProfileSettings = ({
1052
1209
  },
1053
1210
  disabled: true
1054
1211
  }
1055
- ), /* @__PURE__ */ React12.createElement("p", { className: "text-[11px] text-neutral-500 mt-1 truncate" }, "To change your email address, please contact support.")), /* @__PURE__ */ React12.createElement("div", { className: "flex flex-col sm:flex-row sm:items-center justify-between pt-8 mt-2 gap-6 sm:gap-4" }, /* @__PURE__ */ React12.createElement("div", { className: "flex items-center gap-6 min-w-0" }, /* @__PURE__ */ React12.createElement("div", { className: "min-w-0" }, /* @__PURE__ */ React12.createElement("span", { className: "text-[11px] text-neutral-400 tracking-[0.2em] block truncate" }, "Account Status"), /* @__PURE__ */ React12.createElement("span", { className: "text-xs text-black block truncate" }, accountStatus)), /* @__PURE__ */ React12.createElement("div", { className: "min-w-0" }, /* @__PURE__ */ React12.createElement("span", { className: "text-[11px] text-neutral-400 tracking-[0.2em] block truncate" }, "Member Since"), /* @__PURE__ */ React12.createElement("span", { className: "text-xs text-black block truncate" }, memberSince ? new Date(memberSince).toLocaleDateString("en-US", { month: "long", day: "numeric", year: "numeric" }) : "N/A")), /* @__PURE__ */ React12.createElement("div", { className: "min-w-0 pl-4" }, /* @__PURE__ */ React12.createElement(
1212
+ ), /* @__PURE__ */ React13.createElement("p", { className: "text-[11px] text-neutral-500 mt-1 truncate" }, "To change your email address, please contact support.")), /* @__PURE__ */ React13.createElement("div", { className: "flex flex-col sm:flex-row sm:items-center justify-between pt-8 mt-2 gap-6 sm:gap-4" }, /* @__PURE__ */ React13.createElement("div", { className: "flex items-center gap-6 min-w-0" }, /* @__PURE__ */ React13.createElement("div", { className: "min-w-0" }, /* @__PURE__ */ React13.createElement("span", { className: "text-[11px] text-neutral-400 tracking-[0.2em] block truncate" }, "Account Status"), /* @__PURE__ */ React13.createElement("span", { className: "text-xs text-black block truncate" }, accountStatus)), /* @__PURE__ */ React13.createElement("div", { className: "min-w-0" }, /* @__PURE__ */ React13.createElement("span", { className: "text-[11px] text-neutral-400 tracking-[0.2em] block truncate" }, "Member Since"), /* @__PURE__ */ React13.createElement("span", { className: "text-xs text-black block truncate" }, memberSince ? new Date(memberSince).toLocaleDateString("en-US", { month: "long", day: "numeric", year: "numeric" }) : "N/A")), /* @__PURE__ */ React13.createElement("div", { className: "min-w-0 pl-4" }, /* @__PURE__ */ React13.createElement(
1056
1213
  "button",
1057
1214
  {
1058
1215
  type: "button",
@@ -1060,8 +1217,8 @@ var UniversalProfileSettings = ({
1060
1217
  "aria-label": "PIN Settings",
1061
1218
  className: "w-9 h-9 flex items-center justify-center border border-neutral-200 rounded-full text-black hover:bg-neutral-50 transition-colors outline-none"
1062
1219
  },
1063
- /* @__PURE__ */ React12.createElement(HugeiconsIcon6, { icon: LockKeyIcon, size: 17, className: "text-black" })
1064
- ))), /* @__PURE__ */ React12.createElement("div", { className: "flex flex-col-reverse sm:flex-row items-center gap-3 sm:gap-4 w-full sm:w-auto shrink-0" }, hasChanges && !isSubmitting && !isReadOnly && /* @__PURE__ */ React12.createElement(
1220
+ /* @__PURE__ */ React13.createElement(HugeiconsIcon7, { icon: LockKeyIcon, size: 17, className: "text-black" })
1221
+ ))), /* @__PURE__ */ React13.createElement("div", { className: "flex flex-col-reverse sm:flex-row items-center gap-3 sm:gap-4 w-full sm:w-auto shrink-0" }, hasChanges && !isSubmitting && !isReadOnly && /* @__PURE__ */ React13.createElement(
1065
1222
  "button",
1066
1223
  {
1067
1224
  type: "button",
@@ -1072,7 +1229,7 @@ var UniversalProfileSettings = ({
1072
1229
  className: "text-[11px] tracking-widest text-neutral-400 hover:text-black transition-colors w-full sm:w-auto py-2 sm:py-0 outline-none"
1073
1230
  },
1074
1231
  "Cancel"
1075
- ), /* @__PURE__ */ React12.createElement(
1232
+ ), /* @__PURE__ */ React13.createElement(
1076
1233
  ThreeDActionButton,
1077
1234
  {
1078
1235
  type: "submit",
@@ -1081,7 +1238,7 @@ var UniversalProfileSettings = ({
1081
1238
  className: "min-w-32 w-full sm:w-auto"
1082
1239
  },
1083
1240
  "Save Changes"
1084
- ))))), isPinModalOpen && /* @__PURE__ */ React12.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React12.createElement("div", { className: "absolute inset-0 bg-black/40", onClick: closePinModal }), /* @__PURE__ */ React12.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200" }, /* @__PURE__ */ React12.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, /* @__PURE__ */ React12.createElement("h3", { className: "text-[15px] text-black tracking-tight" }, hasPin ? "Change PIN" : "Create PIN"), /* @__PURE__ */ React12.createElement("button", { onClick: closePinModal, disabled: isPinSubmitting, className: "text-neutral-400 hover:text-black transition-colors outline-none disabled:opacity-50" }, /* @__PURE__ */ React12.createElement(HugeiconsIcon6, { icon: CancelCircleIcon, size: 18 }))), /* @__PURE__ */ React12.createElement("div", { className: "p-6" }, isPinLoading ? /* @__PURE__ */ React12.createElement("div", { className: "flex flex-col items-center justify-center py-10" }, /* @__PURE__ */ React12.createElement(HugeiconsIcon6, { icon: Loading03Icon2, size: 28, className: "animate-spin text-neutral-400 mb-4" })) : /* @__PURE__ */ React12.createElement("form", { onSubmit: handlePinSubmit, className: "flex flex-col gap-6" }, hasPin && /* @__PURE__ */ React12.createElement(
1241
+ ))))), isPinModalOpen && /* @__PURE__ */ React13.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React13.createElement("div", { className: "absolute inset-0 bg-black/40", onClick: closePinModal }), /* @__PURE__ */ React13.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200" }, /* @__PURE__ */ React13.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, /* @__PURE__ */ React13.createElement("h3", { className: "text-[15px] text-black tracking-tight" }, hasPin ? "Change PIN" : "Create PIN"), /* @__PURE__ */ React13.createElement("button", { onClick: closePinModal, disabled: isPinSubmitting, className: "text-neutral-400 hover:text-black transition-colors outline-none disabled:opacity-50" }, /* @__PURE__ */ React13.createElement(HugeiconsIcon7, { icon: CancelCircleIcon, size: 18 }))), /* @__PURE__ */ React13.createElement("div", { className: "p-6" }, isPinLoading ? /* @__PURE__ */ React13.createElement("div", { className: "flex flex-col items-center justify-center py-10" }, /* @__PURE__ */ React13.createElement(HugeiconsIcon7, { icon: Loading03Icon3, size: 28, className: "animate-spin text-neutral-400 mb-4" })) : /* @__PURE__ */ React13.createElement("form", { onSubmit: handlePinSubmit, className: "flex flex-col gap-6" }, hasPin && /* @__PURE__ */ React13.createElement(
1085
1242
  TextInput,
1086
1243
  {
1087
1244
  type: "password",
@@ -1092,7 +1249,7 @@ var UniversalProfileSettings = ({
1092
1249
  onChange: (val) => handlePinInput(val, setOldPin),
1093
1250
  placeholder: "\u2022\u2022\u2022\u2022"
1094
1251
  }
1095
- ), /* @__PURE__ */ React12.createElement(
1252
+ ), /* @__PURE__ */ React13.createElement(
1096
1253
  TextInput,
1097
1254
  {
1098
1255
  type: "password",
@@ -1103,7 +1260,7 @@ var UniversalProfileSettings = ({
1103
1260
  onChange: (val) => handlePinInput(val, setNewPin),
1104
1261
  placeholder: "\u2022\u2022\u2022\u2022"
1105
1262
  }
1106
- ), /* @__PURE__ */ React12.createElement(
1263
+ ), /* @__PURE__ */ React13.createElement(
1107
1264
  TextInput,
1108
1265
  {
1109
1266
  type: "password",
@@ -1114,7 +1271,7 @@ var UniversalProfileSettings = ({
1114
1271
  onChange: (val) => handlePinInput(val, setConfirmPin),
1115
1272
  placeholder: "\u2022\u2022\u2022\u2022"
1116
1273
  }
1117
- ), /* @__PURE__ */ React12.createElement("div", { className: "pt-2" }, /* @__PURE__ */ React12.createElement(
1274
+ ), /* @__PURE__ */ React13.createElement("div", { className: "pt-2" }, /* @__PURE__ */ React13.createElement(
1118
1275
  ThreeDActionButton,
1119
1276
  {
1120
1277
  type: "submit",
@@ -1127,14 +1284,14 @@ var UniversalProfileSettings = ({
1127
1284
  };
1128
1285
 
1129
1286
  // src/components/UniversalErrorView.tsx
1130
- import React14 from "react";
1131
- import { HugeiconsIcon as HugeiconsIcon8 } from "@hugeicons/react";
1287
+ import React15 from "react";
1288
+ import { HugeiconsIcon as HugeiconsIcon9 } from "@hugeicons/react";
1132
1289
  import { ConfusedIcon } from "@hugeicons/core-free-icons";
1133
1290
 
1134
1291
  // src/components/PageSpinner.tsx
1135
- import React13 from "react";
1136
- import { HugeiconsIcon as HugeiconsIcon7 } from "@hugeicons/react";
1137
- import { Loading03Icon as Loading03Icon3 } from "@hugeicons/core-free-icons";
1292
+ import React14 from "react";
1293
+ import { HugeiconsIcon as HugeiconsIcon8 } from "@hugeicons/react";
1294
+ import { Loading03Icon as Loading03Icon4 } from "@hugeicons/core-free-icons";
1138
1295
  var PageSpinner = ({
1139
1296
  className = "",
1140
1297
  iconClassName = "text-black",
@@ -1142,10 +1299,10 @@ var PageSpinner = ({
1142
1299
  }) => {
1143
1300
  return (
1144
1301
  // z-[100] ensures it sits above absolute headers and modals
1145
- /* @__PURE__ */ React13.createElement("div", { className: `fixed inset-0 z-100 flex flex-col items-center justify-center w-full h-full pointer-events-none ${className}` }, /* @__PURE__ */ React13.createElement(
1146
- HugeiconsIcon7,
1302
+ /* @__PURE__ */ React14.createElement("div", { className: `fixed inset-0 z-100 flex flex-col items-center justify-center w-full h-full pointer-events-none ${className}` }, /* @__PURE__ */ React14.createElement(
1303
+ HugeiconsIcon8,
1147
1304
  {
1148
- icon: Loading03Icon3,
1305
+ icon: Loading03Icon4,
1149
1306
  size,
1150
1307
  className: `animate-spin mb-4 ${iconClassName}`
1151
1308
  }
@@ -1165,7 +1322,7 @@ var UniversalErrorView = ({
1165
1322
  returnLabel = "Return to Workspace"
1166
1323
  }) => {
1167
1324
  if (isBooting || isLoading && !activeData) {
1168
- return /* @__PURE__ */ React14.createElement("div", { className: "flex items-center justify-center h-screen w-full bg-white" }, /* @__PURE__ */ React14.createElement(PageSpinner, null));
1325
+ return /* @__PURE__ */ React15.createElement("div", { className: "flex items-center justify-center h-screen w-full bg-white" }, /* @__PURE__ */ React15.createElement(PageSpinner, null));
1169
1326
  }
1170
1327
  if (!isLoading && (!activeData || activeError)) {
1171
1328
  const errorString = typeof activeError === "string" ? activeError : JSON.stringify(activeError || "");
@@ -1184,7 +1341,7 @@ var UniversalErrorView = ({
1184
1341
  title = "Access Restricted";
1185
1342
  description = apiMessage || `You have insufficient permissions to view this ${envName}. Please contact your administrator.`;
1186
1343
  }
1187
- return /* @__PURE__ */ React14.createElement("div", { className: "flex flex-col items-center justify-center h-screen w-full px-4 animate-in fade-in duration-500" }, /* @__PURE__ */ React14.createElement("div", { className: "mb-4 flex justify-center" }, /* @__PURE__ */ React14.createElement(HugeiconsIcon8, { icon: IconComponent, size: 48, className: "text-neutral-300" })), /* @__PURE__ */ React14.createElement("h2", { className: "text-lg text-black tracking-tight " }, title), /* @__PURE__ */ React14.createElement("p", { className: "text-xs mt-2 mb-8 text-neutral-500 max-w-sm text-center leading-relaxed" }, description), /* @__PURE__ */ React14.createElement("div", { className: "flex flex-col sm:flex-row items-center gap-3 w-full justify-center sm:w-auto" }, isNotFoundError || isPermissionError ? /* @__PURE__ */ React14.createElement(
1344
+ return /* @__PURE__ */ React15.createElement("div", { className: "flex flex-col items-center justify-center h-screen w-full px-4 animate-in fade-in duration-500" }, /* @__PURE__ */ React15.createElement("div", { className: "mb-4 flex justify-center" }, /* @__PURE__ */ React15.createElement(HugeiconsIcon9, { icon: IconComponent, size: 48, className: "text-neutral-300" })), /* @__PURE__ */ React15.createElement("h2", { className: "text-lg text-black tracking-tight " }, title), /* @__PURE__ */ React15.createElement("p", { className: "text-xs mt-2 mb-8 text-neutral-500 max-w-sm text-center leading-relaxed" }, description), /* @__PURE__ */ React15.createElement("div", { className: "flex flex-col sm:flex-row items-center gap-3 w-full justify-center sm:w-auto" }, isNotFoundError || isPermissionError ? /* @__PURE__ */ React15.createElement(
1188
1345
  "button",
1189
1346
  {
1190
1347
  onClick: () => window.location.href = returnUrl,
@@ -1193,14 +1350,14 @@ var UniversalErrorView = ({
1193
1350
  returnLabel
1194
1351
  ) : (
1195
1352
  // Soft errors (Network timeouts) allow them to retry or optionally retreat
1196
- /* @__PURE__ */ React14.createElement(React14.Fragment, null, envName.toLowerCase().includes("application") && /* @__PURE__ */ React14.createElement(
1353
+ /* @__PURE__ */ React15.createElement(React15.Fragment, null, envName.toLowerCase().includes("application") && /* @__PURE__ */ React15.createElement(
1197
1354
  "button",
1198
1355
  {
1199
1356
  onClick: () => window.location.href = returnUrl,
1200
1357
  className: "px-6 py-2 bg-transparent border border-neutral-200 text-neutral-500 hover:text-black hover:bg-neutral-50 rounded-full text-[11px] tracking-widest transition-colors w-full sm:w-auto outline-none "
1201
1358
  },
1202
1359
  "Back Home"
1203
- ), /* @__PURE__ */ React14.createElement(
1360
+ ), /* @__PURE__ */ React15.createElement(
1204
1361
  "button",
1205
1362
  {
1206
1363
  onClick: onRetry,
@@ -1215,13 +1372,13 @@ var UniversalErrorView = ({
1215
1372
  };
1216
1373
 
1217
1374
  // src/components/UniversalTransactionPage.tsx
1218
- import React15, { useState as useState8, useEffect as useEffect6, useRef as useRef3 } from "react";
1219
- import { HugeiconsIcon as HugeiconsIcon9 } from "@hugeicons/react";
1375
+ import React16, { useState as useState9, useEffect as useEffect6, useRef as useRef3 } from "react";
1376
+ import { HugeiconsIcon as HugeiconsIcon10 } from "@hugeicons/react";
1220
1377
  import toast4 from "react-hot-toast";
1221
1378
  import {
1222
- ArrowLeft01Icon,
1379
+ ArrowLeft01Icon as ArrowLeft01Icon2,
1223
1380
  ArrowRight01Icon,
1224
- Loading03Icon as Loading03Icon4,
1381
+ Loading03Icon as Loading03Icon5,
1225
1382
  ArrowDownRight01Icon,
1226
1383
  ArrowUpRight01Icon,
1227
1384
  Search01Icon,
@@ -1229,7 +1386,7 @@ import {
1229
1386
  ListSettingIcon,
1230
1387
  CancelCircleIcon as CancelCircleIcon2
1231
1388
  } from "@hugeicons/core-free-icons";
1232
- var PageSpinner2 = () => /* @__PURE__ */ React15.createElement("div", { className: "flex justify-center items-center py-12" }, /* @__PURE__ */ React15.createElement(HugeiconsIcon9, { icon: Loading03Icon4, size: 32, className: "animate-spin mb-4 text-black" }));
1389
+ var PageSpinner2 = () => /* @__PURE__ */ React16.createElement("div", { className: "flex justify-center items-center py-12" }, /* @__PURE__ */ React16.createElement(HugeiconsIcon10, { icon: Loading03Icon5, size: 32, className: "animate-spin mb-4 text-black" }));
1233
1390
  var formatDate = (dateInput) => {
1234
1391
  const d = new Date(dateInput);
1235
1392
  const day = d.getDate();
@@ -1264,12 +1421,12 @@ var UniversalTransactionPage = ({
1264
1421
  onReportTransaction,
1265
1422
  onGenerateReceipt
1266
1423
  }) => {
1267
- const [selectedTransaction, setSelectedTransaction] = useState8(null);
1268
- const [isGeneratingReceipt, setIsGeneratingReceipt] = useState8(false);
1269
- const [localSearchQuery, setLocalSearchQuery] = useState8(searchQuery);
1270
- const [isTyping, setIsTyping] = useState8(false);
1271
- const [isDirectionModalOpen, setIsDirectionModalOpen] = useState8(false);
1272
- const [isTypeModalOpen, setIsTypeModalOpen] = useState8(false);
1424
+ const [selectedTransaction, setSelectedTransaction] = useState9(null);
1425
+ const [isGeneratingReceipt, setIsGeneratingReceipt] = useState9(false);
1426
+ const [localSearchQuery, setLocalSearchQuery] = useState9(searchQuery);
1427
+ const [isTyping, setIsTyping] = useState9(false);
1428
+ const [isDirectionModalOpen, setIsDirectionModalOpen] = useState9(false);
1429
+ const [isTypeModalOpen, setIsTypeModalOpen] = useState9(false);
1273
1430
  const directionDropdownRef = useRef3(null);
1274
1431
  const typeDropdownRef = useRef3(null);
1275
1432
  useEffect6(() => {
@@ -1315,7 +1472,7 @@ var UniversalTransactionPage = ({
1315
1472
  }
1316
1473
  };
1317
1474
  const isListLoading = isLoading || isTyping;
1318
- return /* @__PURE__ */ React15.createElement("div", { className: "flex flex-col gap-6 animate-in max-w-5xl fade-in duration-300" }, /* @__PURE__ */ React15.createElement(ManagedToaster, null), !hideControls && /* @__PURE__ */ React15.createElement("div", { className: "flex flex-col sm:flex-row items-center justify-between gap-4 w-full" }, /* @__PURE__ */ React15.createElement("div", { className: "relative w-full sm:w-96" }, /* @__PURE__ */ React15.createElement("div", { className: "absolute inset-y-0 left-0 pl-4 flex items-center pointer-events-none" }, /* @__PURE__ */ React15.createElement(HugeiconsIcon9, { icon: Search01Icon, size: 16, className: "text-neutral-400" })), /* @__PURE__ */ React15.createElement(
1475
+ return /* @__PURE__ */ React16.createElement("div", { className: "flex flex-col gap-6 animate-in max-w-5xl fade-in duration-300" }, /* @__PURE__ */ React16.createElement(ManagedToaster, null), !hideControls && /* @__PURE__ */ React16.createElement("div", { className: "flex flex-col sm:flex-row items-center justify-between gap-4 w-full" }, /* @__PURE__ */ React16.createElement("div", { className: "relative w-full sm:w-96" }, /* @__PURE__ */ React16.createElement("div", { className: "absolute inset-y-0 left-0 pl-4 flex items-center pointer-events-none" }, /* @__PURE__ */ React16.createElement(HugeiconsIcon10, { icon: Search01Icon, size: 16, className: "text-neutral-400" })), /* @__PURE__ */ React16.createElement(
1319
1476
  "input",
1320
1477
  {
1321
1478
  type: "text",
@@ -1324,53 +1481,53 @@ var UniversalTransactionPage = ({
1324
1481
  onChange: (e) => setLocalSearchQuery(e.target.value),
1325
1482
  className: "w-full pl-10 pr-4 py-2 bg-white rounded-full text-[13px] text-black placeholder-neutral-400 outline-none transition-colors focus:border-black"
1326
1483
  }
1327
- )), /* @__PURE__ */ React15.createElement("div", { className: "flex items-center gap-3 w-auto pb-0" }, /* @__PURE__ */ React15.createElement(
1484
+ )), /* @__PURE__ */ React16.createElement("div", { className: "flex items-center gap-3 w-auto pb-0" }, /* @__PURE__ */ React16.createElement(
1328
1485
  "button",
1329
1486
  {
1330
1487
  onClick: () => setIsDirectionModalOpen(true),
1331
1488
  "aria-label": "Filter by payment type",
1332
1489
  className: "flex items-center justify-center bg-white w-10 h-10 rounded-full text-neutral-500 hover:text-black transition-colors outline-none"
1333
1490
  },
1334
- /* @__PURE__ */ React15.createElement(HugeiconsIcon9, { icon: SearchList02Icon, size: 16 })
1335
- ), /* @__PURE__ */ React15.createElement(
1491
+ /* @__PURE__ */ React16.createElement(HugeiconsIcon10, { icon: SearchList02Icon, size: 16 })
1492
+ ), /* @__PURE__ */ React16.createElement(
1336
1493
  "button",
1337
1494
  {
1338
1495
  onClick: () => setIsTypeModalOpen(true),
1339
1496
  "aria-label": "Filter by transaction type",
1340
1497
  className: "flex items-center justify-center bg-white w-10 h-10 rounded-full text-neutral-500 hover:text-black transition-colors outline-none"
1341
1498
  },
1342
- /* @__PURE__ */ React15.createElement(HugeiconsIcon9, { icon: ListSettingIcon, size: 16 })
1343
- ))), /* @__PURE__ */ React15.createElement("div", { className: "flex flex-col gap-8 p-6 rounded-2xl bg-white w-full" }, /* @__PURE__ */ React15.createElement("div", { className: "flex flex-col sm:flex-row sm:items-start justify-between gap-4" }, /* @__PURE__ */ React15.createElement("div", null, /* @__PURE__ */ React15.createElement("h1", { className: "text-black text-xl mb-1 tracking-tight" }, headerTitle), headerDescription && /* @__PURE__ */ React15.createElement("p", { className: "text-xs text-neutral-500" }, headerDescription))), /* @__PURE__ */ React15.createElement("div", { className: "w-full overflow-hidden" }, isListLoading ? /* @__PURE__ */ React15.createElement(PageSpinner2, null) : /* @__PURE__ */ React15.createElement("div", { className: "flex flex-col min-w-0" }, /* @__PURE__ */ React15.createElement("div", null, transactions.length === 0 ? /* @__PURE__ */ React15.createElement("p", { className: "text-xs text-neutral-400 py-6 text-center" }, "No transactions found") : transactions.map((tx) => /* @__PURE__ */ React15.createElement(
1499
+ /* @__PURE__ */ React16.createElement(HugeiconsIcon10, { icon: ListSettingIcon, size: 16 })
1500
+ ))), /* @__PURE__ */ React16.createElement("div", { className: "flex flex-col gap-8 p-6 rounded-2xl bg-white w-full" }, /* @__PURE__ */ React16.createElement("div", { className: "flex flex-col sm:flex-row sm:items-start justify-between gap-4" }, /* @__PURE__ */ React16.createElement("div", null, /* @__PURE__ */ React16.createElement("h1", { className: "text-black text-xl mb-1 tracking-tight" }, headerTitle), headerDescription && /* @__PURE__ */ React16.createElement("p", { className: "text-xs text-neutral-500" }, headerDescription))), /* @__PURE__ */ React16.createElement("div", { className: "w-full overflow-hidden" }, isListLoading ? /* @__PURE__ */ React16.createElement(PageSpinner2, null) : /* @__PURE__ */ React16.createElement("div", { className: "flex flex-col min-w-0" }, /* @__PURE__ */ React16.createElement("div", null, transactions.length === 0 ? /* @__PURE__ */ React16.createElement("p", { className: "text-xs text-neutral-400 py-6 text-center" }, "No transactions found") : transactions.map((tx) => /* @__PURE__ */ React16.createElement(
1344
1501
  "div",
1345
1502
  {
1346
1503
  key: tx.id,
1347
1504
  onClick: () => setSelectedTransaction(tx),
1348
1505
  className: "flex items-center justify-between py-4 hover:bg-neutral-50 transition-colors cursor-pointer group min-w-0 px-3 -mx-3 rounded-xl"
1349
1506
  },
1350
- /* @__PURE__ */ React15.createElement("div", { className: "flex items-center gap-4 min-w-0 flex-1" }, /* @__PURE__ */ React15.createElement("div", { className: `w-10 h-10 shrink-0 rounded-full flex items-center justify-center bg-neutral-100 text-black` }, /* @__PURE__ */ React15.createElement(HugeiconsIcon9, { icon: tx.direction === "CREDIT" ? ArrowDownRight01Icon : ArrowUpRight01Icon, size: 18 })), /* @__PURE__ */ React15.createElement("div", { className: "min-w-0 flex-1 flex flex-col gap-1" }, /* @__PURE__ */ React15.createElement("p", { className: "text-[13px] text-black truncate" }, getDisplayName(tx)), /* @__PURE__ */ React15.createElement("p", { className: `text-[13px] text-neutral-500 truncate transition-all duration-300 ${hideBalanceAmounts ? "blur-sm opacity-40 select-none" : ""}` }, tx.direction === "CREDIT" ? "+" : "-", tx.amount, " ", tx.currency))),
1351
- /* @__PURE__ */ React15.createElement("div", { className: "shrink-0 flex flex-col items-end gap-1 text-right" }, /* @__PURE__ */ React15.createElement("span", { className: "text-[11px] text-neutral-400" }, formatDate(tx.createdAt)), /* @__PURE__ */ React15.createElement("span", { className: "text-[11px] text-neutral-400 capitalize" }, tx.direction.toLowerCase()))
1352
- ))), !hidePagination && /* @__PURE__ */ React15.createElement("div", { className: "flex items-center justify-between pt-6 mt-2 " }, /* @__PURE__ */ React15.createElement("span", { className: "text-[11px] text-neutral-400 tracking-[0.2em]" }, "Page ", currentPage, " of ", totalPages === 0 ? 1 : totalPages), /* @__PURE__ */ React15.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React15.createElement(
1507
+ /* @__PURE__ */ React16.createElement("div", { className: "flex items-center gap-4 min-w-0 flex-1" }, /* @__PURE__ */ React16.createElement("div", { className: `w-10 h-10 shrink-0 rounded-full flex items-center justify-center bg-neutral-100 text-black` }, /* @__PURE__ */ React16.createElement(HugeiconsIcon10, { icon: tx.direction === "CREDIT" ? ArrowDownRight01Icon : ArrowUpRight01Icon, size: 18 })), /* @__PURE__ */ React16.createElement("div", { className: "min-w-0 flex-1 flex flex-col gap-1" }, /* @__PURE__ */ React16.createElement("p", { className: "text-[13px] text-black truncate" }, getDisplayName(tx)), /* @__PURE__ */ React16.createElement("p", { className: `text-[13px] text-neutral-500 truncate transition-all duration-300 ${hideBalanceAmounts ? "blur-sm opacity-40 select-none" : ""}` }, tx.direction === "CREDIT" ? "+" : "-", tx.amount, " ", tx.currency))),
1508
+ /* @__PURE__ */ React16.createElement("div", { className: "shrink-0 flex flex-col items-end gap-1 text-right" }, /* @__PURE__ */ React16.createElement("span", { className: "text-[11px] text-neutral-400" }, formatDate(tx.createdAt)), /* @__PURE__ */ React16.createElement("span", { className: "text-[11px] text-neutral-400 capitalize" }, tx.direction.toLowerCase()))
1509
+ ))), !hidePagination && /* @__PURE__ */ React16.createElement("div", { className: "flex items-center justify-between pt-6 mt-2 " }, /* @__PURE__ */ React16.createElement("span", { className: "text-[11px] text-neutral-400 tracking-[0.2em]" }, "Page ", currentPage, " of ", totalPages === 0 ? 1 : totalPages), /* @__PURE__ */ React16.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React16.createElement(
1353
1510
  "button",
1354
1511
  {
1355
1512
  onClick: () => onPageChange(currentPage - 1),
1356
1513
  disabled: currentPage <= 1 || isListLoading,
1357
1514
  className: "p-2 bg-white border border-neutral-200 rounded-full text-black hover:bg-neutral-50 disabled:opacity-30 disabled:cursor-not-allowed transition-all outline-none"
1358
1515
  },
1359
- /* @__PURE__ */ React15.createElement(HugeiconsIcon9, { icon: ArrowLeft01Icon, size: 14 })
1360
- ), /* @__PURE__ */ React15.createElement(
1516
+ /* @__PURE__ */ React16.createElement(HugeiconsIcon10, { icon: ArrowLeft01Icon2, size: 14 })
1517
+ ), /* @__PURE__ */ React16.createElement(
1361
1518
  "button",
1362
1519
  {
1363
1520
  onClick: () => onPageChange(currentPage + 1),
1364
1521
  disabled: currentPage >= totalPages || isListLoading || totalPages === 0,
1365
1522
  className: "p-2 bg-white border border-neutral-200 rounded-full text-black hover:bg-neutral-50 disabled:opacity-30 disabled:cursor-not-allowed transition-all outline-none"
1366
1523
  },
1367
- /* @__PURE__ */ React15.createElement(HugeiconsIcon9, { icon: ArrowRight01Icon, size: 14 })
1368
- )))))), selectedTransaction && /* @__PURE__ */ React15.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React15.createElement("div", { className: "absolute inset-0 bg-black/40 ", onClick: () => setSelectedTransaction(null) }), /* @__PURE__ */ React15.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200 max-h-[90vh]" }, /* @__PURE__ */ React15.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, /* @__PURE__ */ React15.createElement("h3", { className: "text-[15px] text-black tracking-tight" }, "Details"), /* @__PURE__ */ React15.createElement("button", { onClick: () => setSelectedTransaction(null), className: "text-neutral-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React15.createElement(HugeiconsIcon9, { icon: CancelCircleIcon2, size: 18 }))), /* @__PURE__ */ React15.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-6" }, /* @__PURE__ */ React15.createElement("div", { className: "flex flex-col items-center justify-center mb-4" }, /* @__PURE__ */ React15.createElement("div", { className: `w-12 h-12 rounded-full flex items-center justify-center mb-4 bg-neutral-100 text-black` }, /* @__PURE__ */ React15.createElement(HugeiconsIcon9, { icon: selectedTransaction.direction === "CREDIT" ? ArrowDownRight01Icon : ArrowUpRight01Icon, size: 20 })), /* @__PURE__ */ React15.createElement("h2", { className: `text-2xl text-black mb-2 transition-all duration-300 ${hideBalanceAmounts ? "blur-[6px] opacity-40 select-none" : ""}` }, selectedTransaction.direction === "CREDIT" ? "+" : "-", selectedTransaction.amount, " ", selectedTransaction.currency), /* @__PURE__ */ React15.createElement("span", { className: "text-[9px] tracking-widest text-neutral-500 px-4 py-1.5 rounded-full bg-neutral-50" }, selectedTransaction.status)), /* @__PURE__ */ React15.createElement("div", { className: "grid grid-cols-1 gap-y-8 gap-x-4 mb-10 mt-6" }, /* @__PURE__ */ React15.createElement("div", null, /* @__PURE__ */ React15.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Reference ID"), /* @__PURE__ */ React15.createElement("span", { className: "text-[13px] text-black break-all" }, selectedTransaction.reference)), /* @__PURE__ */ React15.createElement("div", null, /* @__PURE__ */ React15.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Date & Time"), /* @__PURE__ */ React15.createElement("span", { className: "text-[13px] text-black" }, formatDate(selectedTransaction.createdAt), " at ", formatTime(selectedTransaction.createdAt))), /* @__PURE__ */ React15.createElement("div", null, /* @__PURE__ */ React15.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Transaction Type"), /* @__PURE__ */ React15.createElement("span", { className: "text-[13px] text-black capitalize" }, selectedTransaction.type.replace("_", " ").toLowerCase())), /* @__PURE__ */ React15.createElement("div", null, /* @__PURE__ */ React15.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Flow Direction"), /* @__PURE__ */ React15.createElement("span", { className: "text-[13px] text-black capitalize" }, selectedTransaction.direction.toLowerCase())), selectedTransaction.metadata?.fromAddress && selectedTransaction.metadata?.toAddress && /* @__PURE__ */ React15.createElement("div", null, /* @__PURE__ */ React15.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Transfer Route"), /* @__PURE__ */ React15.createElement("div", { className: "flex items-center gap-2 text-[13px] text-black" }, /* @__PURE__ */ React15.createElement("span", { className: "truncate " }, truncateAddress(String(selectedTransaction.metadata.fromAddress))), /* @__PURE__ */ React15.createElement("span", { className: "text-neutral-400" }, "\u2192"), /* @__PURE__ */ React15.createElement("span", { className: "truncate " }, truncateAddress(String(selectedTransaction.metadata.toAddress))))), selectedTransaction.metadata && Object.entries(selectedTransaction.metadata).map(([key, value]) => {
1524
+ /* @__PURE__ */ React16.createElement(HugeiconsIcon10, { icon: ArrowRight01Icon, size: 14 })
1525
+ )))))), selectedTransaction && /* @__PURE__ */ React16.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React16.createElement("div", { className: "absolute inset-0 bg-black/40 ", onClick: () => setSelectedTransaction(null) }), /* @__PURE__ */ React16.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200 max-h-[90vh]" }, /* @__PURE__ */ React16.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, /* @__PURE__ */ React16.createElement("h3", { className: "text-[15px] text-black tracking-tight" }, "Details"), /* @__PURE__ */ React16.createElement("button", { onClick: () => setSelectedTransaction(null), className: "text-neutral-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React16.createElement(HugeiconsIcon10, { icon: CancelCircleIcon2, size: 18 }))), /* @__PURE__ */ React16.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-6" }, /* @__PURE__ */ React16.createElement("div", { className: "flex flex-col items-center justify-center mb-4" }, /* @__PURE__ */ React16.createElement("div", { className: `w-12 h-12 rounded-full flex items-center justify-center mb-4 bg-neutral-100 text-black` }, /* @__PURE__ */ React16.createElement(HugeiconsIcon10, { icon: selectedTransaction.direction === "CREDIT" ? ArrowDownRight01Icon : ArrowUpRight01Icon, size: 20 })), /* @__PURE__ */ React16.createElement("h2", { className: `text-2xl text-black mb-2 transition-all duration-300 ${hideBalanceAmounts ? "blur-[6px] opacity-40 select-none" : ""}` }, selectedTransaction.direction === "CREDIT" ? "+" : "-", selectedTransaction.amount, " ", selectedTransaction.currency), /* @__PURE__ */ React16.createElement("span", { className: "text-[9px] tracking-widest text-neutral-500 px-4 py-1.5 rounded-full bg-neutral-50" }, selectedTransaction.status)), /* @__PURE__ */ React16.createElement("div", { className: "grid grid-cols-1 gap-y-8 gap-x-4 mb-10 mt-6" }, /* @__PURE__ */ React16.createElement("div", null, /* @__PURE__ */ React16.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Reference ID"), /* @__PURE__ */ React16.createElement("span", { className: "text-[13px] text-black break-all" }, selectedTransaction.reference)), /* @__PURE__ */ React16.createElement("div", null, /* @__PURE__ */ React16.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Date & Time"), /* @__PURE__ */ React16.createElement("span", { className: "text-[13px] text-black" }, formatDate(selectedTransaction.createdAt), " at ", formatTime(selectedTransaction.createdAt))), /* @__PURE__ */ React16.createElement("div", null, /* @__PURE__ */ React16.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Transaction Type"), /* @__PURE__ */ React16.createElement("span", { className: "text-[13px] text-black capitalize" }, selectedTransaction.type.replace("_", " ").toLowerCase())), /* @__PURE__ */ React16.createElement("div", null, /* @__PURE__ */ React16.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Flow Direction"), /* @__PURE__ */ React16.createElement("span", { className: "text-[13px] text-black capitalize" }, selectedTransaction.direction.toLowerCase())), selectedTransaction.metadata?.fromAddress && selectedTransaction.metadata?.toAddress && /* @__PURE__ */ React16.createElement("div", null, /* @__PURE__ */ React16.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Transfer Route"), /* @__PURE__ */ React16.createElement("div", { className: "flex items-center gap-2 text-[13px] text-black" }, /* @__PURE__ */ React16.createElement("span", { className: "truncate " }, truncateAddress(String(selectedTransaction.metadata.fromAddress))), /* @__PURE__ */ React16.createElement("span", { className: "text-neutral-400" }, "\u2192"), /* @__PURE__ */ React16.createElement("span", { className: "truncate " }, truncateAddress(String(selectedTransaction.metadata.toAddress))))), selectedTransaction.metadata && Object.entries(selectedTransaction.metadata).map(([key, value]) => {
1369
1526
  if (key === "fromAddress" || key === "toAddress") return null;
1370
1527
  if (value === null || value === void 0 || typeof value === "object") return null;
1371
1528
  const formattedKey = key.replace(/([A-Z])/g, " $1").replace(/^./, (str) => str.toUpperCase());
1372
- return /* @__PURE__ */ React15.createElement("div", { key }, /* @__PURE__ */ React15.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, formattedKey), /* @__PURE__ */ React15.createElement("span", { className: "text-[13px] text-black break-all" }, String(value)));
1373
- })), /* @__PURE__ */ React15.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ React15.createElement(
1529
+ return /* @__PURE__ */ React16.createElement("div", { key }, /* @__PURE__ */ React16.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, formattedKey), /* @__PURE__ */ React16.createElement("span", { className: "text-[13px] text-black break-all" }, String(value)));
1530
+ })), /* @__PURE__ */ React16.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ React16.createElement(
1374
1531
  ThreeDActionButton,
1375
1532
  {
1376
1533
  onClick: handleGenerateReceipt,
@@ -1378,14 +1535,14 @@ var UniversalTransactionPage = ({
1378
1535
  className: "w-full py-3 text-[14px]"
1379
1536
  },
1380
1537
  "Generate Receipt"
1381
- ), /* @__PURE__ */ React15.createElement(
1538
+ ), /* @__PURE__ */ React16.createElement(
1382
1539
  "button",
1383
1540
  {
1384
1541
  onClick: () => onReportTransaction && onReportTransaction(selectedTransaction),
1385
1542
  className: "w-full flex items-center justify-center py-2.5 rounded-full border border-neutral-200 text-black hover:bg-neutral-50 transition-colors outline-none text-[13px] tracking-wide mt-2"
1386
1543
  },
1387
1544
  "Report Transaction"
1388
- ), selectedTransaction.type === "WALLET_TRANSACTION" && /* @__PURE__ */ React15.createElement(
1545
+ ), selectedTransaction.type === "WALLET_TRANSACTION" && /* @__PURE__ */ React16.createElement(
1389
1546
  "a",
1390
1547
  {
1391
1548
  href: `https://basescan.org/tx/${selectedTransaction.reference}`,
@@ -1394,7 +1551,7 @@ var UniversalTransactionPage = ({
1394
1551
  className: "w-full flex items-center justify-center py-2.5 rounded-full border border-neutral-200 text-black hover:bg-neutral-50 transition-colors outline-none text-[13px] tracking-wide mt-2"
1395
1552
  },
1396
1553
  "View in block explorer"
1397
- ))))), isDirectionModalOpen && /* @__PURE__ */ React15.createElement("div", { className: "fixed inset-0 z-110 flex items-center justify-center p-4" }, /* @__PURE__ */ React15.createElement("div", { className: "absolute inset-0 bg-black/40 ", onClick: () => setIsDirectionModalOpen(false) }), /* @__PURE__ */ React15.createElement("div", { ref: directionDropdownRef, className: "relative w-72 bg-white shadow-2xl rounded-2xl flex flex-col items-center overflow-hidden animate-in zoom-in-95 duration-200" }, /* @__PURE__ */ React15.createElement("div", { className: "p-6 text-center w-full mb-2" }, /* @__PURE__ */ React15.createElement("h3", { className: "text-[14px] text-black tracking-tight" }, "Payment Type")), /* @__PURE__ */ React15.createElement("div", { className: "w-full flex flex-col pl-2 pr-2 gap-1" }, ["ALL", "CREDIT", "DEBIT"].map((option) => /* @__PURE__ */ React15.createElement(
1554
+ ))))), isDirectionModalOpen && /* @__PURE__ */ React16.createElement("div", { className: "fixed inset-0 z-110 flex items-center justify-center p-4" }, /* @__PURE__ */ React16.createElement("div", { className: "absolute inset-0 bg-black/40 ", onClick: () => setIsDirectionModalOpen(false) }), /* @__PURE__ */ React16.createElement("div", { ref: directionDropdownRef, className: "relative w-72 bg-white shadow-2xl rounded-2xl flex flex-col items-center overflow-hidden animate-in zoom-in-95 duration-200" }, /* @__PURE__ */ React16.createElement("div", { className: "p-6 text-center w-full mb-2" }, /* @__PURE__ */ React16.createElement("h3", { className: "text-[14px] text-black tracking-tight" }, "Payment Type")), /* @__PURE__ */ React16.createElement("div", { className: "w-full flex flex-col pl-2 pr-2 gap-1" }, ["ALL", "CREDIT", "DEBIT"].map((option) => /* @__PURE__ */ React16.createElement(
1398
1555
  "button",
1399
1556
  {
1400
1557
  key: option,
@@ -1404,19 +1561,19 @@ var UniversalTransactionPage = ({
1404
1561
  },
1405
1562
  className: `text-left px-4 py-3 text-[11px] tracking-wide transition-colors rounded-full flex items-center justify-between outline-none ${activeDirectionFilter === option ? "bg-neutral-100 text-black " : "text-neutral-500 hover:bg-neutral-50 hover:text-black"}`
1406
1563
  },
1407
- /* @__PURE__ */ React15.createElement("span", { className: "truncate pr-2" }, option.charAt(0).toUpperCase() + option.slice(1).toLowerCase())
1408
- ))), /* @__PURE__ */ React15.createElement("div", { className: "w-full flex mt-2 " }, /* @__PURE__ */ React15.createElement(
1564
+ /* @__PURE__ */ React16.createElement("span", { className: "truncate pr-2" }, option.charAt(0).toUpperCase() + option.slice(1).toLowerCase())
1565
+ ))), /* @__PURE__ */ React16.createElement("div", { className: "w-full flex mt-2 " }, /* @__PURE__ */ React16.createElement(
1409
1566
  "button",
1410
1567
  {
1411
1568
  onClick: () => setIsDirectionModalOpen(false),
1412
1569
  className: "w-full py-4 text-[13px] text-neutral-500 hover:text-black transition-colors outline-none "
1413
1570
  },
1414
1571
  "Cancel"
1415
- )))), isTypeModalOpen && /* @__PURE__ */ React15.createElement("div", { className: "fixed inset-0 z-110 flex items-center justify-center p-4" }, /* @__PURE__ */ React15.createElement("div", { className: "absolute inset-0 bg-black/40 ", onClick: () => setIsTypeModalOpen(false) }), /* @__PURE__ */ React15.createElement("div", { ref: typeDropdownRef, className: "relative w-72 bg-white shadow-2xl rounded-2xl flex flex-col items-center overflow-hidden animate-in zoom-in-95 duration-200" }, /* @__PURE__ */ React15.createElement("div", { className: "p-6 text-center w-full mb-2" }, /* @__PURE__ */ React15.createElement("h3", { className: "text-[14px] text-black tracking-tight" }, "Transactions Type")), /* @__PURE__ */ React15.createElement("div", { className: "w-full flex flex-col pl-2 pr-2 gap-1" }, [
1572
+ )))), isTypeModalOpen && /* @__PURE__ */ React16.createElement("div", { className: "fixed inset-0 z-110 flex items-center justify-center p-4" }, /* @__PURE__ */ React16.createElement("div", { className: "absolute inset-0 bg-black/40 ", onClick: () => setIsTypeModalOpen(false) }), /* @__PURE__ */ React16.createElement("div", { ref: typeDropdownRef, className: "relative w-72 bg-white shadow-2xl rounded-2xl flex flex-col items-center overflow-hidden animate-in zoom-in-95 duration-200" }, /* @__PURE__ */ React16.createElement("div", { className: "p-6 text-center w-full mb-2" }, /* @__PURE__ */ React16.createElement("h3", { className: "text-[14px] text-black tracking-tight" }, "Transactions Type")), /* @__PURE__ */ React16.createElement("div", { className: "w-full flex flex-col pl-2 pr-2 gap-1" }, [
1416
1573
  { label: "All Transactions", value: "ALL" },
1417
1574
  { label: "Wallet Transactions", value: "WALLET_TRANSACTION" },
1418
1575
  { label: "Card Transactions", value: "CARD_TRANSACTION" }
1419
- ].map((option) => /* @__PURE__ */ React15.createElement(
1576
+ ].map((option) => /* @__PURE__ */ React16.createElement(
1420
1577
  "button",
1421
1578
  {
1422
1579
  key: option.value,
@@ -1426,8 +1583,8 @@ var UniversalTransactionPage = ({
1426
1583
  },
1427
1584
  className: `text-left px-4 py-3 text-[11px] tracking-wide transition-colors rounded-full flex items-center justify-between outline-none ${activeTypeFilter === option.value ? "bg-neutral-100 text-black " : "text-neutral-500 hover:bg-neutral-50 hover:text-black"}`
1428
1585
  },
1429
- /* @__PURE__ */ React15.createElement("span", { className: "truncate pr-2" }, option.label.charAt(0).toUpperCase() + option.label.slice(1).toLowerCase())
1430
- ))), /* @__PURE__ */ React15.createElement("div", { className: "w-full flex mt-2 " }, /* @__PURE__ */ React15.createElement(
1586
+ /* @__PURE__ */ React16.createElement("span", { className: "truncate pr-2" }, option.label.charAt(0).toUpperCase() + option.label.slice(1).toLowerCase())
1587
+ ))), /* @__PURE__ */ React16.createElement("div", { className: "w-full flex mt-2 " }, /* @__PURE__ */ React16.createElement(
1431
1588
  "button",
1432
1589
  {
1433
1590
  onClick: () => setIsTypeModalOpen(false),
@@ -1438,8 +1595,8 @@ var UniversalTransactionPage = ({
1438
1595
  };
1439
1596
 
1440
1597
  // src/components/UniversalHomeView.tsx
1441
- import React16, { useState as useState9, useEffect as useEffect7 } from "react";
1442
- import { HugeiconsIcon as HugeiconsIcon10 } from "@hugeicons/react";
1598
+ import React17, { useState as useState10, useEffect as useEffect7 } from "react";
1599
+ import { HugeiconsIcon as HugeiconsIcon11 } from "@hugeicons/react";
1443
1600
  import { ViewOffSlashIcon, ViewIcon } from "@hugeicons/core-free-icons";
1444
1601
  var UniversalHomeView = ({
1445
1602
  balanceLabel = "Your Balance",
@@ -1449,8 +1606,8 @@ var UniversalHomeView = ({
1449
1606
  secondaryAction,
1450
1607
  transactionsProps
1451
1608
  }) => {
1452
- const [displayAmount, setDisplayAmount] = useState9("0.00");
1453
- const [isBalanceHidden, setIsBalanceHidden] = useState9(false);
1609
+ const [displayAmount, setDisplayAmount] = useState10("0.00");
1610
+ const [isBalanceHidden, setIsBalanceHidden] = useState10(false);
1454
1611
  useEffect7(() => {
1455
1612
  const target = parseFloat(balanceAmount.replace(/,/g, ""));
1456
1613
  if (isNaN(target)) {
@@ -1480,29 +1637,29 @@ var UniversalHomeView = ({
1480
1637
  requestAnimationFrame(step);
1481
1638
  }, [balanceAmount]);
1482
1639
  const [intPart, decPart] = displayAmount.includes(".") ? displayAmount.split(".") : [displayAmount, "00"];
1483
- return /* @__PURE__ */ React16.createElement("div", { className: "w-full max-w-5xl mx-auto flex flex-col animate-in fade-in duration-300" }, /* @__PURE__ */ React16.createElement("div", { className: "relative flex items-start justify-between w-full pt-4 pb-8" }, /* @__PURE__ */ React16.createElement("div", { className: "flex flex-col items-start text-left z-10 w-full" }, /* @__PURE__ */ React16.createElement("div", { className: "flex items-center gap-2 mb-1.5" }, /* @__PURE__ */ React16.createElement("span", { className: "text-[12px] sm:text-[13px] text-neutral-500" }, balanceLabel), /* @__PURE__ */ React16.createElement(
1640
+ return /* @__PURE__ */ React17.createElement("div", { className: "w-full max-w-5xl mx-auto flex flex-col animate-in fade-in duration-300" }, /* @__PURE__ */ React17.createElement("div", { className: "relative flex items-start justify-between w-full pt-4 pb-8" }, /* @__PURE__ */ React17.createElement("div", { className: "flex flex-col items-start text-left z-10 w-full" }, /* @__PURE__ */ React17.createElement("div", { className: "flex items-center gap-2 mb-1.5" }, /* @__PURE__ */ React17.createElement("span", { className: "text-[12px] sm:text-[13px] text-neutral-500" }, balanceLabel), /* @__PURE__ */ React17.createElement(
1484
1641
  "button",
1485
1642
  {
1486
1643
  onClick: () => setIsBalanceHidden(!isBalanceHidden),
1487
1644
  className: "text-neutral-400 hover:text-black transition-colors outline-none"
1488
1645
  },
1489
- /* @__PURE__ */ React16.createElement(HugeiconsIcon10, { icon: isBalanceHidden ? ViewIcon : ViewOffSlashIcon, size: 14 })
1490
- )), /* @__PURE__ */ React16.createElement("h1", { className: `text-3xl sm:text-4xl md:text-5xl text-black tracking-tight mb-5 tabular-nums flex items-baseline transition-all duration-300 ${isBalanceHidden ? "blur-sm opacity-40 select-none" : ""}` }, /* @__PURE__ */ React16.createElement("span", { className: "text-xl sm:text-2xl text-neutral-400 mr-1" }, balanceCurrency), intPart, /* @__PURE__ */ React16.createElement("span", { className: "text-xl sm:text-2xl text-neutral-400" }, ".", decPart)), /* @__PURE__ */ React16.createElement("div", { className: "flex items-center gap-3" }, primaryAction && /* @__PURE__ */ React16.createElement(
1646
+ /* @__PURE__ */ React17.createElement(HugeiconsIcon11, { icon: isBalanceHidden ? ViewIcon : ViewOffSlashIcon, size: 14 })
1647
+ )), /* @__PURE__ */ React17.createElement("h1", { className: `text-3xl sm:text-4xl md:text-5xl text-black tracking-tight mb-5 tabular-nums flex items-baseline transition-all duration-300 ${isBalanceHidden ? "blur-sm opacity-40 select-none" : ""}` }, /* @__PURE__ */ React17.createElement("span", { className: "text-xl sm:text-2xl text-neutral-400 mr-1" }, balanceCurrency), intPart, /* @__PURE__ */ React17.createElement("span", { className: "text-xl sm:text-2xl text-neutral-400" }, ".", decPart)), /* @__PURE__ */ React17.createElement("div", { className: "flex items-center gap-3" }, primaryAction && /* @__PURE__ */ React17.createElement(
1491
1648
  ThreeDActionButton,
1492
1649
  {
1493
1650
  onClick: primaryAction.onClick,
1494
1651
  className: "px-6 py-2.5 sm:px-8 sm:py-2.5"
1495
1652
  },
1496
- /* @__PURE__ */ React16.createElement("span", { className: "flex items-center gap-1.5 text-[13px] tracking-wide " }, primaryAction.label, primaryAction.icon && /* @__PURE__ */ React16.createElement(HugeiconsIcon10, { icon: primaryAction.icon, size: 16 }))
1497
- ), secondaryAction && /* @__PURE__ */ React16.createElement(
1653
+ /* @__PURE__ */ React17.createElement("span", { className: "flex items-center gap-1.5 text-[13px] tracking-wide " }, primaryAction.label, primaryAction.icon && /* @__PURE__ */ React17.createElement(HugeiconsIcon11, { icon: primaryAction.icon, size: 16 }))
1654
+ ), secondaryAction && /* @__PURE__ */ React17.createElement(
1498
1655
  "button",
1499
1656
  {
1500
1657
  onClick: secondaryAction.onClick,
1501
1658
  className: "flex items-center gap-1.5 px-6 py-2.5 sm:px-8 sm:py-2.5 rounded-full border border-neutral-200 text-black hover:bg-neutral-50 transition-colors outline-none"
1502
1659
  },
1503
- /* @__PURE__ */ React16.createElement("span", { className: "text-[13px] tracking-wide " }, secondaryAction.label),
1504
- secondaryAction.icon && /* @__PURE__ */ React16.createElement(HugeiconsIcon10, { icon: secondaryAction.icon, size: 16 })
1505
- )))), /* @__PURE__ */ React16.createElement("div", { className: "w-full mt-2" }, /* @__PURE__ */ React16.createElement(
1660
+ /* @__PURE__ */ React17.createElement("span", { className: "text-[13px] tracking-wide " }, secondaryAction.label),
1661
+ secondaryAction.icon && /* @__PURE__ */ React17.createElement(HugeiconsIcon11, { icon: secondaryAction.icon, size: 16 })
1662
+ )))), /* @__PURE__ */ React17.createElement("div", { className: "w-full mt-2" }, /* @__PURE__ */ React17.createElement(
1506
1663
  UniversalTransactionPage,
1507
1664
  {
1508
1665
  ...transactionsProps,
@@ -1514,18 +1671,18 @@ var UniversalHomeView = ({
1514
1671
  };
1515
1672
 
1516
1673
  // src/components/UniversalWalletPage.tsx
1517
- import React17, { useState as useState10 } from "react";
1674
+ import React18, { useState as useState11 } from "react";
1518
1675
  import toast5 from "react-hot-toast";
1519
- import { HugeiconsIcon as HugeiconsIcon11 } from "@hugeicons/react";
1676
+ import { HugeiconsIcon as HugeiconsIcon12 } from "@hugeicons/react";
1520
1677
  import {
1521
1678
  Search01Icon as Search01Icon2,
1522
1679
  CancelCircleIcon as CancelCircleIcon3,
1523
- Loading03Icon as Loading03Icon5
1680
+ Loading03Icon as Loading03Icon6
1524
1681
  } from "@hugeicons/core-free-icons";
1525
- var PageSpinner3 = () => /* @__PURE__ */ React17.createElement("div", { className: "flex justify-center items-center py-12" }, /* @__PURE__ */ React17.createElement(HugeiconsIcon11, { icon: Loading03Icon5, size: 32, className: "animate-spin mb-4 text-black" }));
1682
+ var PageSpinner3 = () => /* @__PURE__ */ React18.createElement("div", { className: "flex justify-center items-center py-12" }, /* @__PURE__ */ React18.createElement(HugeiconsIcon12, { icon: Loading03Icon6, size: 32, className: "animate-spin mb-4 text-black" }));
1526
1683
  var WalletLogo = ({ src, alt, sizeClass = "w-10 h-10" }) => {
1527
- const [isLoaded, setIsLoaded] = useState10(false);
1528
- return /* @__PURE__ */ React17.createElement("div", { className: `relative shrink-0 rounded-full bg-neutral-100 flex items-center justify-center overflow-hidden ${sizeClass}` }, !isLoaded && /* @__PURE__ */ React17.createElement(HugeiconsIcon11, { icon: Loading03Icon5, size: 16, className: "animate-spin text-neutral-400 absolute" }), /* @__PURE__ */ React17.createElement(
1684
+ const [isLoaded, setIsLoaded] = useState11(false);
1685
+ return /* @__PURE__ */ React18.createElement("div", { className: `relative shrink-0 rounded-full bg-neutral-100 flex items-center justify-center overflow-hidden ${sizeClass}` }, !isLoaded && /* @__PURE__ */ React18.createElement(HugeiconsIcon12, { icon: Loading03Icon6, size: 16, className: "animate-spin text-neutral-400 absolute" }), /* @__PURE__ */ React18.createElement(
1529
1686
  "img",
1530
1687
  {
1531
1688
  src,
@@ -1547,8 +1704,8 @@ var UniversalWalletPage = ({
1547
1704
  onDownloadPayId,
1548
1705
  onCopyAddress
1549
1706
  }) => {
1550
- const [selectedWallet, setSelectedWallet] = useState10(null);
1551
- const [localSearchQuery, setLocalSearchQuery] = useState10("");
1707
+ const [selectedWallet, setSelectedWallet] = useState11(null);
1708
+ const [localSearchQuery, setLocalSearchQuery] = useState11("");
1552
1709
  const filteredWallets = wallets.filter((wallet) => {
1553
1710
  const q = localSearchQuery.toLowerCase();
1554
1711
  return wallet.name.toLowerCase().includes(q) || wallet.currency.toLowerCase().includes(q) || wallet.network.toLowerCase().includes(q);
@@ -1561,7 +1718,7 @@ var UniversalWalletPage = ({
1561
1718
  }
1562
1719
  toast5.success("Address copied to clipboard");
1563
1720
  };
1564
- return /* @__PURE__ */ React17.createElement("div", { className: "flex flex-col gap-6 animate-in max-w-5xl fade-in duration-300" }, /* @__PURE__ */ React17.createElement(ManagedToaster, null), !hideControls && /* @__PURE__ */ React17.createElement("div", { className: "flex flex-col sm:flex-row items-center justify-between gap-4 w-full" }, /* @__PURE__ */ React17.createElement("div", { className: "relative w-full sm:w-96" }, /* @__PURE__ */ React17.createElement("div", { className: "absolute inset-y-0 left-0 pl-4 flex items-center pointer-events-none" }, /* @__PURE__ */ React17.createElement(HugeiconsIcon11, { icon: Search01Icon2, size: 16, className: "text-neutral-400" })), /* @__PURE__ */ React17.createElement(
1721
+ return /* @__PURE__ */ React18.createElement("div", { className: "flex flex-col gap-6 animate-in max-w-5xl fade-in duration-300" }, /* @__PURE__ */ React18.createElement(ManagedToaster, null), !hideControls && /* @__PURE__ */ React18.createElement("div", { className: "flex flex-col sm:flex-row items-center justify-between gap-4 w-full" }, /* @__PURE__ */ React18.createElement("div", { className: "relative w-full sm:w-96" }, /* @__PURE__ */ React18.createElement("div", { className: "absolute inset-y-0 left-0 pl-4 flex items-center pointer-events-none" }, /* @__PURE__ */ React18.createElement(HugeiconsIcon12, { icon: Search01Icon2, size: 16, className: "text-neutral-400" })), /* @__PURE__ */ React18.createElement(
1565
1722
  "input",
1566
1723
  {
1567
1724
  type: "text",
@@ -1570,16 +1727,16 @@ var UniversalWalletPage = ({
1570
1727
  onChange: (e) => setLocalSearchQuery(e.target.value),
1571
1728
  className: "w-full pl-10 pr-4 py-2 bg-white rounded-full text-[13px] text-black placeholder-neutral-400 outline-none transition-all duration-300 focus:border-black"
1572
1729
  }
1573
- ))), /* @__PURE__ */ React17.createElement("div", { className: "flex flex-col gap-8 p-6 rounded-2xl bg-white w-full" }, /* @__PURE__ */ React17.createElement("div", { className: "flex flex-col sm:flex-row sm:items-start justify-between gap-4" }, /* @__PURE__ */ React17.createElement("div", null, /* @__PURE__ */ React17.createElement("h1", { className: "text-black text-xl mb-1 tracking-tight" }, headerTitle), headerDescription && /* @__PURE__ */ React17.createElement("p", { className: "text-xs text-neutral-500" }, headerDescription))), /* @__PURE__ */ React17.createElement("div", { className: "w-full overflow-hidden" }, isLoading ? /* @__PURE__ */ React17.createElement(PageSpinner3, null) : /* @__PURE__ */ React17.createElement("div", { className: "flex flex-col min-w-0" }, /* @__PURE__ */ React17.createElement("div", null, filteredWallets.length === 0 ? /* @__PURE__ */ React17.createElement("p", { className: "text-xs text-neutral-400 py-6 text-center" }, "No wallets found") : filteredWallets.map((wallet) => /* @__PURE__ */ React17.createElement(
1730
+ ))), /* @__PURE__ */ React18.createElement("div", { className: "flex flex-col gap-8 p-6 rounded-2xl bg-white w-full" }, /* @__PURE__ */ React18.createElement("div", { className: "flex flex-col sm:flex-row sm:items-start justify-between gap-4" }, /* @__PURE__ */ React18.createElement("div", null, /* @__PURE__ */ React18.createElement("h1", { className: "text-black text-xl mb-1 tracking-tight" }, headerTitle), headerDescription && /* @__PURE__ */ React18.createElement("p", { className: "text-xs text-neutral-500" }, headerDescription))), /* @__PURE__ */ React18.createElement("div", { className: "w-full overflow-hidden" }, isLoading ? /* @__PURE__ */ React18.createElement(PageSpinner3, null) : /* @__PURE__ */ React18.createElement("div", { className: "flex flex-col min-w-0" }, /* @__PURE__ */ React18.createElement("div", null, filteredWallets.length === 0 ? /* @__PURE__ */ React18.createElement("p", { className: "text-xs text-neutral-400 py-6 text-center" }, "No wallets found") : filteredWallets.map((wallet) => /* @__PURE__ */ React18.createElement(
1574
1731
  "div",
1575
1732
  {
1576
1733
  key: wallet.id,
1577
1734
  onClick: () => setSelectedWallet(wallet),
1578
1735
  className: "flex items-center justify-between py-4 hover:bg-neutral-50 transition-colors cursor-pointer group min-w-0 px-3 -mx-3 rounded-xl"
1579
1736
  },
1580
- /* @__PURE__ */ React17.createElement("div", { className: "flex items-center gap-4 min-w-0 flex-1" }, /* @__PURE__ */ React17.createElement(WalletLogo, { src: wallet.logoSrc, alt: wallet.name }), /* @__PURE__ */ React17.createElement("div", { className: "min-w-0 flex-1 flex flex-col gap-1" }, /* @__PURE__ */ React17.createElement("p", { className: "text-[13px] text-black truncate " }, wallet.name), /* @__PURE__ */ React17.createElement("p", { className: `text-[13px] text-neutral-500 truncate transition-all duration-300 ${hideBalanceAmounts ? "blur-sm opacity-40 select-none" : ""}` }, wallet.balance, " ", wallet.currency))),
1581
- /* @__PURE__ */ React17.createElement("div", { className: "shrink-0 flex flex-col items-end gap-1 text-right" }, /* @__PURE__ */ React17.createElement("span", { className: "text-[10px] tracking-wide text-neutral-600 bg-neutral-100 px-2.5 py-1 rounded-full " }, wallet.network))
1582
- )))))), selectedWallet && /* @__PURE__ */ React17.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React17.createElement("div", { className: "absolute inset-0 bg-black/40 ", onClick: () => setSelectedWallet(null) }), /* @__PURE__ */ React17.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200 max-h-[90vh]" }, /* @__PURE__ */ React17.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, /* @__PURE__ */ React17.createElement("h3", { className: "text-[15px] text-black tracking-tight" }, "Wallet Details"), /* @__PURE__ */ React17.createElement("button", { onClick: () => setSelectedWallet(null), className: "text-neutral-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React17.createElement(HugeiconsIcon11, { icon: CancelCircleIcon3, size: 18 }))), /* @__PURE__ */ React17.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-6 pt-6" }, /* @__PURE__ */ React17.createElement("div", { className: "flex flex-col items-center justify-center mb-6" }, /* @__PURE__ */ React17.createElement(WalletLogo, { src: selectedWallet.logoSrc, alt: selectedWallet.name, sizeClass: "w-14 h-14 mb-4" }), /* @__PURE__ */ React17.createElement("h2", { className: `text-2xl text-black mb-2 transition-all duration-300 ${hideBalanceAmounts ? "blur-[6px] opacity-40 select-none" : ""}` }, selectedWallet.balance, " ", selectedWallet.currency), /* @__PURE__ */ React17.createElement("span", { className: "text-[9px] tracking-widest text-neutral-500 px-4 py-1.5 rounded-full border border-neutral-200 uppercase mt-1 " }, selectedWallet.network, " NETWORK")), renderQrCode && /* @__PURE__ */ React17.createElement("div", { className: "w-full flex justify-center mb-6 mix-blend-multiply" }, renderQrCode(selectedWallet)), /* @__PURE__ */ React17.createElement("div", { className: "grid grid-cols-1 gap-y-6 gap-x-4 mb-10" }, /* @__PURE__ */ React17.createElement("div", null, /* @__PURE__ */ React17.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Wallet Address"), /* @__PURE__ */ React17.createElement("span", { className: "text-[13px] text-black break-all " }, selectedWallet.address)), /* @__PURE__ */ React17.createElement("div", null, /* @__PURE__ */ React17.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Wallet Name"), /* @__PURE__ */ React17.createElement("span", { className: "text-[13px] text-black" }, selectedWallet.name))), /* @__PURE__ */ React17.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ React17.createElement(
1737
+ /* @__PURE__ */ React18.createElement("div", { className: "flex items-center gap-4 min-w-0 flex-1" }, /* @__PURE__ */ React18.createElement(WalletLogo, { src: wallet.logoSrc, alt: wallet.name }), /* @__PURE__ */ React18.createElement("div", { className: "min-w-0 flex-1 flex flex-col gap-1" }, /* @__PURE__ */ React18.createElement("p", { className: "text-[13px] text-black truncate " }, wallet.name), /* @__PURE__ */ React18.createElement("p", { className: `text-[13px] text-neutral-500 truncate transition-all duration-300 ${hideBalanceAmounts ? "blur-sm opacity-40 select-none" : ""}` }, wallet.balance, " ", wallet.currency))),
1738
+ /* @__PURE__ */ React18.createElement("div", { className: "shrink-0 flex flex-col items-end gap-1 text-right" }, /* @__PURE__ */ React18.createElement("span", { className: "text-[10px] tracking-wide text-neutral-600 bg-neutral-100 px-2.5 py-1 rounded-full " }, wallet.network))
1739
+ )))))), selectedWallet && /* @__PURE__ */ React18.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React18.createElement("div", { className: "absolute inset-0 bg-black/40 ", onClick: () => setSelectedWallet(null) }), /* @__PURE__ */ React18.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200 max-h-[90vh]" }, /* @__PURE__ */ React18.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, /* @__PURE__ */ React18.createElement("h3", { className: "text-[15px] text-black tracking-tight" }, "Wallet Details"), /* @__PURE__ */ React18.createElement("button", { onClick: () => setSelectedWallet(null), className: "text-neutral-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React18.createElement(HugeiconsIcon12, { icon: CancelCircleIcon3, size: 18 }))), /* @__PURE__ */ React18.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-6 pt-6" }, /* @__PURE__ */ React18.createElement("div", { className: "flex flex-col items-center justify-center mb-6" }, /* @__PURE__ */ React18.createElement(WalletLogo, { src: selectedWallet.logoSrc, alt: selectedWallet.name, sizeClass: "w-14 h-14 mb-4" }), /* @__PURE__ */ React18.createElement("h2", { className: `text-2xl text-black mb-2 transition-all duration-300 ${hideBalanceAmounts ? "blur-[6px] opacity-40 select-none" : ""}` }, selectedWallet.balance, " ", selectedWallet.currency), /* @__PURE__ */ React18.createElement("span", { className: "text-[9px] tracking-widest text-neutral-500 px-4 py-1.5 rounded-full border border-neutral-200 uppercase mt-1 " }, selectedWallet.network, " NETWORK")), renderQrCode && /* @__PURE__ */ React18.createElement("div", { className: "w-full flex justify-center mb-6 mix-blend-multiply" }, renderQrCode(selectedWallet)), /* @__PURE__ */ React18.createElement("div", { className: "grid grid-cols-1 gap-y-6 gap-x-4 mb-10" }, /* @__PURE__ */ React18.createElement("div", null, /* @__PURE__ */ React18.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Wallet Address"), /* @__PURE__ */ React18.createElement("span", { className: "text-[13px] text-black break-all " }, selectedWallet.address)), /* @__PURE__ */ React18.createElement("div", null, /* @__PURE__ */ React18.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Wallet Name"), /* @__PURE__ */ React18.createElement("span", { className: "text-[13px] text-black" }, selectedWallet.name))), /* @__PURE__ */ React18.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ React18.createElement(
1583
1740
  ThreeDActionButton,
1584
1741
  {
1585
1742
  onClick: () => onDownloadPayId && onDownloadPayId(selectedWallet),
@@ -1587,7 +1744,7 @@ var UniversalWalletPage = ({
1587
1744
  className: "w-full py-3 text-[13px]"
1588
1745
  },
1589
1746
  "Generate Statement"
1590
- ), /* @__PURE__ */ React17.createElement(
1747
+ ), /* @__PURE__ */ React18.createElement(
1591
1748
  "button",
1592
1749
  {
1593
1750
  onClick: () => handleCopy(selectedWallet),
@@ -1598,7 +1755,7 @@ var UniversalWalletPage = ({
1598
1755
  };
1599
1756
 
1600
1757
  // src/components/UniversalCardPage.tsx
1601
- import React21, { useState as useState12, useEffect as useEffect9 } from "react";
1758
+ import React21, { useState as useState13, useEffect as useEffect9 } from "react";
1602
1759
  import { HugeiconsIcon as HugeiconsIcon15 } from "@hugeicons/react";
1603
1760
  import {
1604
1761
  SnowIcon,
@@ -1609,49 +1766,8 @@ import {
1609
1766
  Loading03Icon as Loading03Icon8
1610
1767
  } from "@hugeicons/core-free-icons";
1611
1768
 
1612
- // src/components/ConfirmationDialog.tsx
1613
- import React18 from "react";
1614
- import { HugeiconsIcon as HugeiconsIcon12 } from "@hugeicons/react";
1615
- import { Loading03Icon as Loading03Icon6 } from "@hugeicons/core-free-icons";
1616
- var ConfirmationDialog = ({
1617
- isOpen,
1618
- title,
1619
- message,
1620
- confirmText = "Confirm",
1621
- cancelText = "Cancel",
1622
- isProcessing = false,
1623
- isDestructive = true,
1624
- onClose,
1625
- onConfirm
1626
- }) => {
1627
- if (!isOpen) return null;
1628
- return /* @__PURE__ */ React18.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React18.createElement(
1629
- "div",
1630
- {
1631
- className: "absolute inset-0 bg-black/40 ",
1632
- onClick: () => !isProcessing && onClose()
1633
- }
1634
- ), /* @__PURE__ */ React18.createElement("div", { className: "relative w-72 bg-white rounded-2xl flex flex-col items-center overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200" }, /* @__PURE__ */ React18.createElement("div", { className: "p-6 pb-4 text-center w-full" }, /* @__PURE__ */ React18.createElement("h3", { className: "text-[17px] text-black tracking-tight mb-2" }, title), /* @__PURE__ */ React18.createElement("p", { className: "text-[12px] text-neutral-500 leading-relaxed px-2" }, message)), /* @__PURE__ */ React18.createElement("div", { className: "w-full flex" }, /* @__PURE__ */ React18.createElement(
1635
- "button",
1636
- {
1637
- onClick: onClose,
1638
- disabled: isProcessing,
1639
- className: "flex-1 py-4 text-[14px] text-neutral-500 hover:bg-neutral-50 transition-colors disabled:opacity-50 outline-none "
1640
- },
1641
- cancelText
1642
- ), /* @__PURE__ */ React18.createElement(
1643
- "button",
1644
- {
1645
- onClick: onConfirm,
1646
- disabled: isProcessing,
1647
- className: `flex-1 py-4 text-[13px] transition-colors disabled:opacity-50 flex justify-center items-center outline-none ${isDestructive ? "text-red-500 hover:bg-red-50" : "text-black hover:bg-neutral-50"}`
1648
- },
1649
- isProcessing ? /* @__PURE__ */ React18.createElement(HugeiconsIcon12, { icon: Loading03Icon6, className: "animate-spin", size: 18 }) : confirmText
1650
- ))));
1651
- };
1652
-
1653
1769
  // src/components/PinDialerBottomSheet.tsx
1654
- import React19, { useState as useState11, useEffect as useEffect8 } from "react";
1770
+ import React19, { useState as useState12, useEffect as useEffect8 } from "react";
1655
1771
  import { HugeiconsIcon as HugeiconsIcon13 } from "@hugeicons/react";
1656
1772
  import { Loading03Icon as Loading03Icon7, CancelCircleIcon as CancelCircleIcon4, LessThanIcon } from "@hugeicons/core-free-icons";
1657
1773
  var PinDialerBottomSheet = ({
@@ -1661,7 +1777,7 @@ var PinDialerBottomSheet = ({
1661
1777
  onClose,
1662
1778
  onComplete
1663
1779
  }) => {
1664
- const [pin, setPin] = useState11("");
1780
+ const [pin, setPin] = useState12("");
1665
1781
  useEffect8(() => {
1666
1782
  setPin("");
1667
1783
  }, [isOpen]);
@@ -1774,23 +1890,23 @@ var UniversalCardPage = ({
1774
1890
  onDelete,
1775
1891
  onCardAction
1776
1892
  }) => {
1777
- const [activeTabIndex, setActiveTabIndex] = useState12(0);
1893
+ const [activeTabIndex, setActiveTabIndex] = useState13(0);
1778
1894
  const activeCard = cards[activeTabIndex];
1779
1895
  useEffect9(() => {
1780
1896
  setIsFlipped(false);
1781
1897
  setIsRevealed(false);
1782
1898
  }, [activeTabIndex]);
1783
- const [isFlipped, setIsFlipped] = useState12(false);
1784
- const [isBgLoaded, setIsBgLoaded] = useState12(false);
1785
- const [isRevealed, setIsRevealed] = useState12(false);
1786
- const [isRevealing, setIsRevealing] = useState12(false);
1787
- const [isFreezing, setIsFreezing] = useState12(false);
1788
- const [isOverlayActionLoading, setIsOverlayActionLoading] = useState12(false);
1789
- const [showDeleteDialog, setShowDeleteDialog] = useState12(false);
1790
- const [isDeleting, setIsDeleting] = useState12(false);
1791
- const [showPinDialer, setShowPinDialer] = useState12(false);
1792
- const [showCardActionDialog, setShowCardActionDialog] = useState12(false);
1793
- const [cardActionType, setCardActionType] = useState12("ACTIVATE");
1899
+ const [isFlipped, setIsFlipped] = useState13(false);
1900
+ const [isBgLoaded, setIsBgLoaded] = useState13(false);
1901
+ const [isRevealed, setIsRevealed] = useState13(false);
1902
+ const [isRevealing, setIsRevealing] = useState13(false);
1903
+ const [isFreezing, setIsFreezing] = useState13(false);
1904
+ const [isOverlayActionLoading, setIsOverlayActionLoading] = useState13(false);
1905
+ const [showDeleteDialog, setShowDeleteDialog] = useState13(false);
1906
+ const [isDeleting, setIsDeleting] = useState13(false);
1907
+ const [showPinDialer, setShowPinDialer] = useState13(false);
1908
+ const [showCardActionDialog, setShowCardActionDialog] = useState13(false);
1909
+ const [cardActionType, setCardActionType] = useState13("ACTIVATE");
1794
1910
  useEffect9(() => {
1795
1911
  setIsBgLoaded(false);
1796
1912
  if (!activeCard?.cardBgSrc) return;
@@ -1891,14 +2007,14 @@ var UniversalCardPage = ({
1891
2007
  }
1892
2008
  },
1893
2009
  !isBgLoaded && /* @__PURE__ */ React21.createElement("div", { className: "absolute inset-0 w-full h-full bg-white rounded-2xl flex items-center justify-center z-50 " }, /* @__PURE__ */ React21.createElement(HugeiconsIcon15, { icon: Loading03Icon8, size: 28, className: "animate-spin text-black" })),
1894
- !isActivated && isBgLoaded && /* @__PURE__ */ React21.createElement("div", { className: "absolute inset-0 z-40 w-full h-full rounded-2xl backdrop-blur-md bg-white/20 flex flex-col items-center justify-center border border-white/30", style: { transform: "translateZ(1px)" } }, isUnactivated && /* @__PURE__ */ React21.createElement(
2010
+ !isActivated && isBgLoaded && /* @__PURE__ */ React21.createElement("div", { className: "absolute inset-0 z-40 w-full h-full rounded-2xl backdrop-blur-sm bg-white/20 flex flex-col items-center justify-center border border-white/30", style: { transform: "translateZ(1px)" } }, isUnactivated && /* @__PURE__ */ React21.createElement(
1895
2011
  "button",
1896
2012
  {
1897
2013
  onClick: (e) => {
1898
2014
  e.stopPropagation();
1899
2015
  handleOverlayActionClick("ACTIVATE");
1900
2016
  },
1901
- className: "px-6 py-2.5 bg-black text-white text-[12px] font-medium rounded-full hover:bg-neutral-800 transition-all outline-none active:scale-95"
2017
+ className: "px-6 py-2.5 bg-white/35 text-black text-[12px] font-medium rounded-full transition-all outline-none active:scale-95"
1902
2018
  },
1903
2019
  "Activate Card"
1904
2020
  ), isDead && /* @__PURE__ */ React21.createElement(
@@ -1908,7 +2024,7 @@ var UniversalCardPage = ({
1908
2024
  e.stopPropagation();
1909
2025
  handleOverlayActionClick("CREATE");
1910
2026
  },
1911
- className: "px-6 py-2.5 bg-black text-white text-[12px] font-medium rounded-full hover:bg-neutral-800 transition-all outline-none active:scale-95"
2027
+ className: "px-6 py-2.5 bg-white/35 text-black text-[12px] font-medium rounded-full transition-all outline-none active:scale-95"
1912
2028
  },
1913
2029
  "Create Card"
1914
2030
  ), isFrozen && /* @__PURE__ */ React21.createElement(
@@ -1919,7 +2035,7 @@ var UniversalCardPage = ({
1919
2035
  handleOverlayUnfreeze();
1920
2036
  },
1921
2037
  disabled: isOverlayActionLoading,
1922
- className: "px-6 py-2.5 bg-white text-black text-[12px] font-medium rounded-full hover:bg-neutral-100 transition-all outline-none active:scale-95 flex items-center gap-2 disabled:opacity-80"
2038
+ className: "px-6 py-2.5 bg-white/35 text-black text-[12px] font-medium rounded-full transition-all outline-none active:scale-95 flex items-center gap-2 disabled:opacity-80"
1923
2039
  },
1924
2040
  isOverlayActionLoading ? /* @__PURE__ */ React21.createElement(HugeiconsIcon15, { icon: Loading03Icon8, size: 16, className: "animate-spin" }) : "Unfreeze Card"
1925
2041
  )),
@@ -2078,7 +2194,7 @@ var MenuRow = ({
2078
2194
  );
2079
2195
 
2080
2196
  // src/components/UniversalProfilePage.tsx
2081
- import React22, { useState as useState13 } from "react";
2197
+ import React22, { useState as useState14 } from "react";
2082
2198
  import { HugeiconsIcon as HugeiconsIcon16 } from "@hugeicons/react";
2083
2199
  import {
2084
2200
  UserIcon,
@@ -2087,7 +2203,7 @@ import {
2087
2203
  MessageQuestionIcon,
2088
2204
  UserIdVerificationIcon,
2089
2205
  FileDownloadIcon,
2090
- LogoutCircle02Icon,
2206
+ LogoutCircle02Icon as LogoutCircle02Icon2,
2091
2207
  UserRemove01Icon,
2092
2208
  ArrowRight01Icon as ArrowRight01Icon3,
2093
2209
  Loading03Icon as Loading03Icon9,
@@ -2106,9 +2222,9 @@ var UniversalProfilePage = ({
2106
2222
  onLogoutTap,
2107
2223
  onDeleteTap
2108
2224
  }) => {
2109
- const [isAvatarLoaded, setIsAvatarLoaded] = useState13(false);
2110
- const [showLogoutDialog, setShowLogoutDialog] = useState13(false);
2111
- const [isLoggingOut, setIsLoggingOut] = useState13(false);
2225
+ const [isAvatarLoaded, setIsAvatarLoaded] = useState14(false);
2226
+ const [showLogoutDialog, setShowLogoutDialog] = useState14(false);
2227
+ const [isLoggingOut, setIsLoggingOut] = useState14(false);
2112
2228
  const handleConfirmLogout = async () => {
2113
2229
  setIsLoggingOut(true);
2114
2230
  try {
@@ -2180,7 +2296,7 @@ var UniversalProfilePage = ({
2180
2296
  ), /* @__PURE__ */ React22.createElement(
2181
2297
  MenuRow2,
2182
2298
  {
2183
- icon: LogoutCircle02Icon,
2299
+ icon: LogoutCircle02Icon2,
2184
2300
  title: "LogOut",
2185
2301
  subtitle: "End your session",
2186
2302
  onClick: () => setShowLogoutDialog(true),
@@ -2221,16 +2337,16 @@ var MenuRow2 = ({ icon, title, subtitle, onClick, iconColor = "text-black", titl
2221
2337
  );
2222
2338
 
2223
2339
  // src/components/HeroSection.tsx
2224
- import React24, { useState as useState15, useEffect as useEffect10, useRef as useRef4 } from "react";
2340
+ import React24, { useState as useState16, useEffect as useEffect10, useRef as useRef4 } from "react";
2225
2341
  import Link5 from "next/link";
2226
2342
  import Image3 from "next/image";
2227
2343
 
2228
2344
  // src/components/WaitlistDialog.tsx
2229
- import React23, { useState as useState14 } from "react";
2345
+ import React23, { useState as useState15 } from "react";
2230
2346
  import { toast as toast6 } from "react-hot-toast";
2231
2347
  var WaitlistDialog = ({ isOpen, onClose }) => {
2232
- const [email, setEmail] = useState14("");
2233
- const [isLoading, setIsLoading] = useState14(false);
2348
+ const [email, setEmail] = useState15("");
2349
+ const [isLoading, setIsLoading] = useState15(false);
2234
2350
  if (!isOpen) return null;
2235
2351
  const handleSubmit = async (e) => {
2236
2352
  e.preventDefault();
@@ -2334,8 +2450,8 @@ var HeroSection = ({
2334
2450
  bgImageSrc,
2335
2451
  isWaitlist = false
2336
2452
  }) => {
2337
- const [isAnimating, setIsAnimating] = useState15(false);
2338
- const [isWaitlistOpen, setIsWaitlistOpen] = useState15(false);
2453
+ const [isAnimating, setIsAnimating] = useState16(false);
2454
+ const [isWaitlistOpen, setIsWaitlistOpen] = useState16(false);
2339
2455
  const titleRef = useRef4(null);
2340
2456
  useEffect10(() => {
2341
2457
  const observer = new IntersectionObserver(
@@ -2430,10 +2546,10 @@ var HeroSection = ({
2430
2546
  };
2431
2547
 
2432
2548
  // src/components/AppBento2.tsx
2433
- import React25, { useState as useState16, useEffect as useEffect11, useRef as useRef5 } from "react";
2549
+ import React25, { useState as useState17, useEffect as useEffect11, useRef as useRef5 } from "react";
2434
2550
  import { HugeiconsIcon as HugeiconsIcon17 } from "@hugeicons/react";
2435
2551
  var AppBento2 = ({ tagline, headline, features }) => {
2436
- const [isAnimating, setIsAnimating] = useState16(false);
2552
+ const [isAnimating, setIsAnimating] = useState17(false);
2437
2553
  const titleRef = useRef5(null);
2438
2554
  useEffect11(() => {
2439
2555
  const observer = new IntersectionObserver(
@@ -2505,13 +2621,13 @@ var AppBento2 = ({ tagline, headline, features }) => {
2505
2621
  };
2506
2622
 
2507
2623
  // src/components/FeatureScroll.tsx
2508
- import React26, { useRef as useRef6, useState as useState17, useEffect as useEffect12 } from "react";
2624
+ import React26, { useRef as useRef6, useState as useState18, useEffect as useEffect12 } from "react";
2509
2625
  import Image4 from "next/image";
2510
2626
  import { HugeiconsIcon as HugeiconsIcon18 } from "@hugeicons/react";
2511
- import { ArrowLeft01Icon as ArrowLeft01Icon2, ArrowRight01Icon as ArrowRight01Icon4, Loading03Icon as Loading03Icon10 } from "@hugeicons/core-free-icons";
2627
+ import { ArrowLeft01Icon as ArrowLeft01Icon3, ArrowRight01Icon as ArrowRight01Icon4, Loading03Icon as Loading03Icon10 } from "@hugeicons/core-free-icons";
2512
2628
  var FeatureCard = ({ feature, bgImage }) => {
2513
- const [isBgLoading, setIsBgLoading] = useState17(true);
2514
- const [isFgLoading, setIsFgLoading] = useState17(!!feature.image);
2629
+ const [isBgLoading, setIsBgLoading] = useState18(true);
2630
+ const [isFgLoading, setIsFgLoading] = useState18(!!feature.image);
2515
2631
  return /* @__PURE__ */ React26.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__ */ React26.createElement("div", { className: "relative w-full aspect-16/10 bg-neutral-100 rounded-2xl overflow-hidden mb-6 flex items-center justify-center" }, /* @__PURE__ */ React26.createElement(
2516
2632
  Image4,
2517
2633
  {
@@ -2550,8 +2666,8 @@ var FeatureCard = ({ feature, bgImage }) => {
2550
2666
  };
2551
2667
  var FeatureScroll = ({ tagline, headline, features }) => {
2552
2668
  const scrollRef = useRef6(null);
2553
- const [canScrollLeft, setCanScrollLeft] = useState17(false);
2554
- const [canScrollRight, setCanScrollRight] = useState17(true);
2669
+ const [canScrollLeft, setCanScrollLeft] = useState18(false);
2670
+ const [canScrollRight, setCanScrollRight] = useState18(true);
2555
2671
  const checkScroll = () => {
2556
2672
  if (scrollRef.current) {
2557
2673
  const { scrollLeft, scrollWidth, clientWidth } = scrollRef.current;
@@ -2583,7 +2699,7 @@ var FeatureScroll = ({ tagline, headline, features }) => {
2583
2699
  className: "p-4 border border-neutral-200 rounded-full text-neutral-500 hover:text-black hover:border-black disabled:opacity-30 disabled:hover:border-neutral-200 disabled:hover:text-neutral-500 disabled:cursor-not-allowed transition-all outline-none",
2584
2700
  "aria-label": "Previous feature"
2585
2701
  },
2586
- /* @__PURE__ */ React26.createElement(HugeiconsIcon18, { icon: ArrowLeft01Icon2, size: 20 })
2702
+ /* @__PURE__ */ React26.createElement(HugeiconsIcon18, { icon: ArrowLeft01Icon3, size: 20 })
2587
2703
  ), /* @__PURE__ */ React26.createElement(
2588
2704
  "button",
2589
2705
  {
@@ -2608,7 +2724,7 @@ var FeatureScroll = ({ tagline, headline, features }) => {
2608
2724
  disabled: !canScrollLeft,
2609
2725
  className: "p-4 border border-neutral-200 rounded-full text-neutral-500 hover:text-black hover:border-black disabled:opacity-30 transition-all outline-none"
2610
2726
  },
2611
- /* @__PURE__ */ React26.createElement(HugeiconsIcon18, { icon: ArrowLeft01Icon2, size: 20 })
2727
+ /* @__PURE__ */ React26.createElement(HugeiconsIcon18, { icon: ArrowLeft01Icon3, size: 20 })
2612
2728
  ), /* @__PURE__ */ React26.createElement(
2613
2729
  "button",
2614
2730
  {
@@ -2642,7 +2758,7 @@ var PlatformFeatures = ({
2642
2758
  };
2643
2759
 
2644
2760
  // src/components/ManagedDocument.tsx
2645
- import React28, { useState as useState18, useEffect as useEffect13, useRef as useRef7 } from "react";
2761
+ import React28, { useState as useState19, useEffect as useEffect13, useRef as useRef7 } from "react";
2646
2762
  var ManagedDocument = ({
2647
2763
  tagline,
2648
2764
  title,
@@ -2650,7 +2766,7 @@ var ManagedDocument = ({
2650
2766
  contactText,
2651
2767
  contactEmail
2652
2768
  }) => {
2653
- const [isAnimating, setIsAnimating] = useState18(false);
2769
+ const [isAnimating, setIsAnimating] = useState19(false);
2654
2770
  const titleRef = useRef7(null);
2655
2771
  useEffect13(() => {
2656
2772
  const observer = new IntersectionObserver(
@@ -2692,10 +2808,10 @@ var ManagedDocument = ({
2692
2808
  };
2693
2809
 
2694
2810
  // src/components/ManagedContactBlock.tsx
2695
- import React29, { useState as useState19, useEffect as useEffect14 } from "react";
2811
+ import React29, { useState as useState20, useEffect as useEffect14 } from "react";
2696
2812
  import { HugeiconsIcon as HugeiconsIcon20 } from "@hugeicons/react";
2697
2813
  var SecureEmail = ({ user, domain, className }) => {
2698
- const [isMounted, setIsMounted] = useState19(false);
2814
+ const [isMounted, setIsMounted] = useState20(false);
2699
2815
  useEffect14(() => {
2700
2816
  setIsMounted(true);
2701
2817
  }, []);
@@ -2751,7 +2867,7 @@ var ManagedContactBlock = ({
2751
2867
  };
2752
2868
 
2753
2869
  // src/components/ManagedPricingBlock.tsx
2754
- import React30, { useState as useState20, useEffect as useEffect15, useRef as useRef8 } from "react";
2870
+ import React30, { useState as useState21, useEffect as useEffect15, useRef as useRef8 } from "react";
2755
2871
  import Link6 from "next/link";
2756
2872
  import Image5 from "next/image";
2757
2873
  var CheckIcon = ({ className = "" }) => /* @__PURE__ */ React30.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__ */ React30.createElement("circle", { cx: "12", cy: "12", r: "10", fill: "black" }), /* @__PURE__ */ React30.createElement("path", { d: "M8 12L11 15L16 9", stroke: "white", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }));
@@ -2762,8 +2878,8 @@ var ManagedPricingBlock = ({
2762
2878
  plans = [],
2763
2879
  tabs
2764
2880
  }) => {
2765
- const [isAnimating, setIsAnimating] = useState20(false);
2766
- const [activeTabIndex, setActiveTabIndex] = useState20(0);
2881
+ const [isAnimating, setIsAnimating] = useState21(false);
2882
+ const [activeTabIndex, setActiveTabIndex] = useState21(0);
2767
2883
  const titleRef = useRef8(null);
2768
2884
  useEffect15(() => {
2769
2885
  const observer = new IntersectionObserver(
@@ -3072,7 +3188,7 @@ var PortfolioHero = ({
3072
3188
  };
3073
3189
 
3074
3190
  // src/components/GifFeatureCard.tsx
3075
- import React35, { useState as useState21 } from "react";
3191
+ import React35, { useState as useState22 } from "react";
3076
3192
  import Image9 from "next/image";
3077
3193
  import { HugeiconsIcon as HugeiconsIcon23 } from "@hugeicons/react";
3078
3194
  import { Loading03Icon as Loading03Icon11 } from "@hugeicons/core-free-icons";
@@ -3083,7 +3199,7 @@ var GifFeatureCard = ({
3083
3199
  alt = "Feature animation",
3084
3200
  className = "aspect-video"
3085
3201
  }) => {
3086
- const [isLoading, setIsLoading] = useState21(true);
3202
+ const [isLoading, setIsLoading] = useState22(true);
3087
3203
  return /* @__PURE__ */ React35.createElement("div", { className: `relative w-full bg-black overflow-hidden shadow-2xl ${className}` }, isLoading && /* @__PURE__ */ React35.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-20 bg-black" }, /* @__PURE__ */ React35.createElement(
3088
3204
  HugeiconsIcon23,
3089
3205
  {
@@ -3116,7 +3232,7 @@ var GifFeatureCard = ({
3116
3232
  };
3117
3233
 
3118
3234
  // src/components/MedicalFeatureStatsBlock.tsx
3119
- import React36, { useState as useState22, useEffect as useEffect17, useRef as useRef10 } from "react";
3235
+ import React36, { useState as useState23, useEffect as useEffect17, useRef as useRef10 } from "react";
3120
3236
  import Image10 from "next/image";
3121
3237
  var MedicalFeatureStatsBlock = ({
3122
3238
  bottomHeadline,
@@ -3125,7 +3241,7 @@ var MedicalFeatureStatsBlock = ({
3125
3241
  trustText,
3126
3242
  stats
3127
3243
  }) => {
3128
- const [isAnimating, setIsAnimating] = useState22(false);
3244
+ const [isAnimating, setIsAnimating] = useState23(false);
3129
3245
  const titleRef = useRef10(null);
3130
3246
  useEffect17(() => {
3131
3247
  const observer = new IntersectionObserver(
@@ -3166,12 +3282,12 @@ var MedicalFeatureStatsBlock = ({
3166
3282
  };
3167
3283
 
3168
3284
  // src/components/ConsultantShowcase.tsx
3169
- import React37, { useState as useState23 } from "react";
3285
+ import React37, { useState as useState24 } from "react";
3170
3286
  import Image11 from "next/image";
3171
3287
  import { HugeiconsIcon as HugeiconsIcon24 } from "@hugeicons/react";
3172
3288
  import { Loading03Icon as Loading03Icon12 } from "@hugeicons/core-free-icons";
3173
3289
  var ImageWithLoader = ({ src, alt, className, sizes, priority = false }) => {
3174
- const [isLoading, setIsLoading] = useState23(true);
3290
+ const [isLoading, setIsLoading] = useState24(true);
3175
3291
  return /* @__PURE__ */ React37.createElement("div", { className: `absolute inset-0 bg-neutral-800 ${className}` }, isLoading && /* @__PURE__ */ React37.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__ */ React37.createElement(HugeiconsIcon24, { icon: Loading03Icon12, size: 24, className: "animate-spin text-white/50" })), /* @__PURE__ */ React37.createElement(
3176
3292
  Image11,
3177
3293
  {
@@ -3191,9 +3307,9 @@ var ImageWithLoader = ({ src, alt, className, sizes, priority = false }) => {
3191
3307
  var ConsultantShowcase = ({
3192
3308
  profiles
3193
3309
  }) => {
3194
- const [currentIndex, setCurrentIndex] = useState23(0);
3195
- const [touchStart, setTouchStart] = useState23(null);
3196
- const [touchEnd, setTouchEnd] = useState23(null);
3310
+ const [currentIndex, setCurrentIndex] = useState24(0);
3311
+ const [touchStart, setTouchStart] = useState24(null);
3312
+ const [touchEnd, setTouchEnd] = useState24(null);
3197
3313
  const nextSlide = () => {
3198
3314
  setCurrentIndex((prev) => prev === profiles.length - 1 ? 0 : prev + 1);
3199
3315
  };
@@ -3262,12 +3378,12 @@ var ConsultantShowcase = ({
3262
3378
  };
3263
3379
 
3264
3380
  // src/components/ContentGridBlock.tsx
3265
- import React38, { useState as useState24 } from "react";
3381
+ import React38, { useState as useState25 } from "react";
3266
3382
  import Image12 from "next/image";
3267
3383
  import { HugeiconsIcon as HugeiconsIcon25 } from "@hugeicons/react";
3268
3384
  import { Loading03Icon as Loading03Icon13 } from "@hugeicons/core-free-icons";
3269
3385
  var ImageWithLoader2 = ({ src, alt, className, sizes }) => {
3270
- const [isLoading, setIsLoading] = useState24(true);
3386
+ const [isLoading, setIsLoading] = useState25(true);
3271
3387
  return /* @__PURE__ */ React38.createElement("div", { className: `relative overflow-hidden bg-neutral-100 ${className}` }, isLoading && /* @__PURE__ */ React38.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-20 bg-neutral-100/50 backdrop-blur-sm transition-opacity duration-300" }, /* @__PURE__ */ React38.createElement(HugeiconsIcon25, { icon: Loading03Icon13, size: 24, className: "animate-spin text-neutral-400" })), /* @__PURE__ */ React38.createElement(
3272
3388
  Image12,
3273
3389
  {