@retinalabsllc/zairusjs 21.0.5 → 21.0.7

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.
Files changed (3) hide show
  1. package/dist/index.js +13 -17
  2. package/dist/index.mjs +117 -121
  3. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1058,7 +1058,7 @@ var UniversalHuddleDetails = ({
1058
1058
  className: `relative w-11 h-6 rounded-full transition-colors outline-none shrink-0 ${isPrivate ? "bg-[#d97757]" : "bg-stone-200"} ${!enableEdits && "opacity-50 cursor-not-allowed"}`
1059
1059
  },
1060
1060
  /* @__PURE__ */ import_react17.default.createElement("div", { className: `absolute top-1 left-1 bg-white w-4 h-4 rounded-full transition-transform ${isPrivate ? "translate-x-5" : "translate-x-0"}` })
1061
- )), isPrivate && /* @__PURE__ */ import_react17.default.createElement("div", { className: "flex items-center justify-between animate-in fade-in zoom-in-95 duration-200 bg-stone-50 p-4 rounded-xl" }, /* @__PURE__ */ import_react17.default.createElement("div", { className: "flex flex-col" }, /* @__PURE__ */ import_react17.default.createElement("span", { className: "text-xs text-black tracking-tight" }, "Participants"), /* @__PURE__ */ import_react17.default.createElement("span", { className: "text-xs text-[#d97757] " }, selectedParticipants.size, " added")), enableEdits && /* @__PURE__ */ import_react17.default.createElement("button", { onClick: () => setShowMembersModal(true), className: "px-4 py-2 border border-stone-200 text-black text-xs tracking-wide rounded-full hover:bg-white transition-colors outline-none bg-transparent" }, "Manage Access")), isDirty && /* @__PURE__ */ import_react17.default.createElement("div", { className: "pt-4 animate-in fade-in duration-300" }, /* @__PURE__ */ import_react17.default.createElement(ThreeDActionButton, { onClick: handleUpdate, isLoading: isSubmitting, className: "w-full sm:w-auto min-w-40" }, "Save Changes")), /* @__PURE__ */ import_react17.default.createElement("div", { className: "flex flex-col sm:flex-row items-center gap-3 pt-6 mt-2 " }, (liveStatus === "SCHEDULED" || liveStatus === "ONGOING") && /* @__PURE__ */ import_react17.default.createElement("a", { href: `/app/join/${huddle.id}`, className: "flex-1 w-full py-2.5 bg-[#d97757] text-white rounded-full text-center text-xs transition-colors hover:bg-[#d97757]/5" }, "Join Huddle"), /* @__PURE__ */ import_react17.default.createElement("a", { href: `/app/assets/${huddle.id}`, className: "flex-1 w-full py-2.5 bg-transparent border border-stone-200 text-black rounded-full text-center text-xs transition-colors hover:bg-stone-50" }, "Huddle Assets"), canDelete && liveStatus === "SCHEDULED" && /* @__PURE__ */ import_react17.default.createElement("button", { onClick: () => setConfirmDialog("CANCEL"), className: "flex-1 w-full py-2.5 bg-transparent border border-stone-200 text-black rounded-full text-center text-xs transition-colors hover:bg-stone-50" }, "Cancel Huddle"), canDelete && liveStatus !== "SCHEDULED" && /* @__PURE__ */ import_react17.default.createElement("button", { onClick: () => setConfirmDialog("DELETE"), className: "flex-1 w-full py-2.5 bg-transparent border border-stone-200 text-black rounded-full text-center text-xs transition-colors hover:bg-stone-50" }, "Delete Huddle"))), /* @__PURE__ */ import_react17.default.createElement(
1061
+ )), isPrivate && /* @__PURE__ */ import_react17.default.createElement("div", { className: "flex items-center justify-between animate-in fade-in zoom-in-95 duration-200 bg-stone-50 p-4 rounded-xl" }, /* @__PURE__ */ import_react17.default.createElement("div", { className: "flex flex-col" }, /* @__PURE__ */ import_react17.default.createElement("span", { className: "text-xs text-black tracking-tight" }, "Participants"), /* @__PURE__ */ import_react17.default.createElement("span", { className: "text-xs text-[#d97757] " }, selectedParticipants.size, " added")), enableEdits && /* @__PURE__ */ import_react17.default.createElement("button", { onClick: () => setShowMembersModal(true), className: "px-4 py-2 border border-stone-200 text-black text-xs tracking-wide rounded-full hover:bg-white transition-colors outline-none bg-transparent" }, "Manage Access")), isDirty && /* @__PURE__ */ import_react17.default.createElement("div", { className: "pt-4 animate-in fade-in duration-300" }, /* @__PURE__ */ import_react17.default.createElement(ThreeDActionButton, { onClick: handleUpdate, isLoading: isSubmitting, className: "w-full sm:w-auto min-w-40" }, "Save Changes")), /* @__PURE__ */ import_react17.default.createElement("div", { className: "flex flex-col sm:flex-row items-center gap-3 pt-6 mt-2 " }, (liveStatus === "SCHEDULED" || liveStatus === "ONGOING") && /* @__PURE__ */ import_react17.default.createElement("a", { href: `/app/huddles/room/${huddle.id}`, className: "flex-1 w-full py-2.5 bg-[#d97757] text-white rounded-full text-center text-xs transition-colors hover:bg-[#d97757]/5" }, "Join Huddle"), /* @__PURE__ */ import_react17.default.createElement("a", { href: `/app/assets/huddles/${huddle.id}`, className: "flex-1 w-full py-2.5 bg-transparent border border-stone-200 text-black rounded-full text-center text-xs transition-colors hover:bg-stone-50" }, "Huddle Assets"), canDelete && liveStatus === "SCHEDULED" && /* @__PURE__ */ import_react17.default.createElement("button", { onClick: () => setConfirmDialog("CANCEL"), className: "flex-1 w-full py-2.5 bg-transparent border border-stone-200 text-black rounded-full text-center text-xs transition-colors hover:bg-stone-50" }, "Cancel Huddle"), canDelete && liveStatus !== "SCHEDULED" && /* @__PURE__ */ import_react17.default.createElement("button", { onClick: () => setConfirmDialog("DELETE"), className: "flex-1 w-full py-2.5 bg-transparent border border-stone-200 text-black rounded-full text-center text-xs transition-colors hover:bg-stone-50" }, "Delete Huddle"))), /* @__PURE__ */ import_react17.default.createElement(
1062
1062
  CalendarPicker,
1063
1063
  {
1064
1064
  isOpen: calendarMode !== null,
@@ -1234,7 +1234,7 @@ var Banner = ({
1234
1234
  onClick: handleDismiss,
1235
1235
  className: `absolute top-3 right-3 p-1.5 rounded-full transition-colors outline-none shrink-0 ${currentConfig.closeHover}`
1236
1236
  },
1237
- /* @__PURE__ */ import_react22.default.createElement(import_react23.HugeiconsIcon, { icon: import_core_free_icons7.Cancel01Icon, size: 16 })
1237
+ /* @__PURE__ */ import_react22.default.createElement(import_react23.HugeiconsIcon, { icon: import_core_free_icons7.CancelCircleIcon, size: 16 })
1238
1238
  ));
1239
1239
  };
1240
1240
 
@@ -4866,11 +4866,7 @@ var UniversalBuyCryptoPage = ({
4866
4866
  var import_react83 = __toESM(require("react"));
4867
4867
  var import_react84 = require("@hugeicons/react");
4868
4868
  var import_core_free_icons30 = require("@hugeicons/core-free-icons");
4869
- var HuddleAvatar = ({ src, status, sizeClass = "w-10 h-10" }) => {
4870
- const [loaded, setLoaded] = (0, import_react83.useState)(false);
4871
- const [error, setError] = (0, import_react83.useState)(false);
4872
- const defaultAvatar = "https://storage.googleapis.com/retina-cloud-v2/assets/images/default_a.avif";
4873
- const finalSrc = error || !src ? defaultAvatar : src;
4869
+ var HuddleAvatar = ({ timeString, status, sizeClass = "w-10 h-10" }) => {
4874
4870
  const getStatusColor = () => {
4875
4871
  switch (status?.toUpperCase()) {
4876
4872
  case "SCHEDULED":
@@ -4885,16 +4881,16 @@ var HuddleAvatar = ({ src, status, sizeClass = "w-10 h-10" }) => {
4885
4881
  return "bg-stone-200";
4886
4882
  }
4887
4883
  };
4888
- return /* @__PURE__ */ import_react83.default.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ import_react83.default.createElement("div", { className: "w-full h-full rounded-lg bg-stone-100 flex items-center justify-center overflow-hidden" }, !loaded && !error && /* @__PURE__ */ import_react83.default.createElement(import_react84.HugeiconsIcon, { icon: import_core_free_icons30.Loading03Icon, className: "animate-spin text-stone-400 absolute", size: 14 }), /* @__PURE__ */ import_react83.default.createElement(
4889
- "img",
4890
- {
4891
- src: finalSrc,
4892
- alt: "Huddle Avatar",
4893
- className: `w-full h-full object-cover transition-opacity duration-300 ${loaded || error ? "opacity-100" : "opacity-0"}`,
4894
- onLoad: () => setLoaded(true),
4895
- onError: () => setError(true)
4884
+ let day = "--";
4885
+ let month = "---";
4886
+ if (timeString) {
4887
+ const parts = timeString.split(" ");
4888
+ if (parts.length >= 2) {
4889
+ day = parts[0];
4890
+ month = parts[1].substring(0, 3).toUpperCase();
4896
4891
  }
4897
- )), /* @__PURE__ */ import_react83.default.createElement("div", { className: `absolute -bottom-1 -right-1 w-3.5 h-3.5 rounded-full border-2 border-white z-10 ${getStatusColor()}` }));
4892
+ }
4893
+ return /* @__PURE__ */ import_react83.default.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ import_react83.default.createElement("div", { className: "w-full h-full rounded-lg bg-white flex flex-col items-center justify-center overflow-hidden" }, /* @__PURE__ */ import_react83.default.createElement("span", { className: "text-[9px] tracking-wider leading-tight", style: { color: "#d97757" } }, month), /* @__PURE__ */ import_react83.default.createElement("span", { className: "text-sm text-black leading-tight" }, day)), /* @__PURE__ */ import_react83.default.createElement("div", { className: `absolute -bottom-1 -right-1 w-3.5 h-3.5 rounded-full border-2 border-white z-10 ${getStatusColor()}` }));
4898
4894
  };
4899
4895
  var PageSpinner6 = () => /* @__PURE__ */ import_react83.default.createElement("div", { className: "flex justify-center items-center py-12" }, /* @__PURE__ */ import_react83.default.createElement(import_react84.HugeiconsIcon, { icon: import_core_free_icons30.Loading03Icon, size: 32, className: "animate-spin mb-4 text-black" }));
4900
4896
  var UniversalHuddlesPage = ({
@@ -4922,7 +4918,7 @@ var UniversalHuddlesPage = ({
4922
4918
  onClick: () => onHuddleClick(huddle.id),
4923
4919
  className: "flex flex-row items-center gap-4 py-2 hover:bg-stone-50 transition-colors cursor-pointer group min-w-0 px-3 -mx-3 rounded-xl"
4924
4920
  },
4925
- /* @__PURE__ */ import_react83.default.createElement(HuddleAvatar, { src: huddle.imageUrl, status: huddle.status }),
4921
+ /* @__PURE__ */ import_react83.default.createElement(HuddleAvatar, { timeString: huddle.timeString, status: huddle.status }),
4926
4922
  /* @__PURE__ */ import_react83.default.createElement("div", { className: "flex flex-col min-w-0 flex-1" }, /* @__PURE__ */ import_react83.default.createElement("p", { className: "text-sm text-black tracking-tight truncate" }, huddle.name), /* @__PURE__ */ import_react83.default.createElement("span", { className: "text-xs text-stone-500 truncate block mt-0.5" }, huddle.timeString)),
4927
4923
  /* @__PURE__ */ import_react83.default.createElement(import_react84.HugeiconsIcon, { icon: import_core_free_icons30.ArrowRight01Icon, size: 14, className: "shrink-0 text-stone-400" })
4928
4924
  ))), /* @__PURE__ */ import_react83.default.createElement("div", { className: "flex items-center justify-between pt-6 mt-2 " }, /* @__PURE__ */ import_react83.default.createElement("span", { className: "text-xs text-stone-400 tracking-[0.2em]" }, "Page ", currentPage, " of ", totalPages === 0 ? 1 : totalPages), /* @__PURE__ */ import_react83.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ import_react83.default.createElement(
package/dist/index.mjs CHANGED
@@ -986,7 +986,7 @@ var UniversalHuddleDetails = ({
986
986
  className: `relative w-11 h-6 rounded-full transition-colors outline-none shrink-0 ${isPrivate ? "bg-[#d97757]" : "bg-stone-200"} ${!enableEdits && "opacity-50 cursor-not-allowed"}`
987
987
  },
988
988
  /* @__PURE__ */ React11.createElement("div", { className: `absolute top-1 left-1 bg-white w-4 h-4 rounded-full transition-transform ${isPrivate ? "translate-x-5" : "translate-x-0"}` })
989
- )), isPrivate && /* @__PURE__ */ React11.createElement("div", { className: "flex items-center justify-between animate-in fade-in zoom-in-95 duration-200 bg-stone-50 p-4 rounded-xl" }, /* @__PURE__ */ React11.createElement("div", { className: "flex flex-col" }, /* @__PURE__ */ React11.createElement("span", { className: "text-xs text-black tracking-tight" }, "Participants"), /* @__PURE__ */ React11.createElement("span", { className: "text-xs text-[#d97757] " }, selectedParticipants.size, " added")), enableEdits && /* @__PURE__ */ React11.createElement("button", { onClick: () => setShowMembersModal(true), className: "px-4 py-2 border border-stone-200 text-black text-xs tracking-wide rounded-full hover:bg-white transition-colors outline-none bg-transparent" }, "Manage Access")), isDirty && /* @__PURE__ */ React11.createElement("div", { className: "pt-4 animate-in fade-in duration-300" }, /* @__PURE__ */ React11.createElement(ThreeDActionButton, { onClick: handleUpdate, isLoading: isSubmitting, className: "w-full sm:w-auto min-w-40" }, "Save Changes")), /* @__PURE__ */ React11.createElement("div", { className: "flex flex-col sm:flex-row items-center gap-3 pt-6 mt-2 " }, (liveStatus === "SCHEDULED" || liveStatus === "ONGOING") && /* @__PURE__ */ React11.createElement("a", { href: `/app/join/${huddle.id}`, className: "flex-1 w-full py-2.5 bg-[#d97757] text-white rounded-full text-center text-xs transition-colors hover:bg-[#d97757]/5" }, "Join Huddle"), /* @__PURE__ */ React11.createElement("a", { href: `/app/assets/${huddle.id}`, className: "flex-1 w-full py-2.5 bg-transparent border border-stone-200 text-black rounded-full text-center text-xs transition-colors hover:bg-stone-50" }, "Huddle Assets"), canDelete && liveStatus === "SCHEDULED" && /* @__PURE__ */ React11.createElement("button", { onClick: () => setConfirmDialog("CANCEL"), className: "flex-1 w-full py-2.5 bg-transparent border border-stone-200 text-black rounded-full text-center text-xs transition-colors hover:bg-stone-50" }, "Cancel Huddle"), canDelete && liveStatus !== "SCHEDULED" && /* @__PURE__ */ React11.createElement("button", { onClick: () => setConfirmDialog("DELETE"), className: "flex-1 w-full py-2.5 bg-transparent border border-stone-200 text-black rounded-full text-center text-xs transition-colors hover:bg-stone-50" }, "Delete Huddle"))), /* @__PURE__ */ React11.createElement(
989
+ )), isPrivate && /* @__PURE__ */ React11.createElement("div", { className: "flex items-center justify-between animate-in fade-in zoom-in-95 duration-200 bg-stone-50 p-4 rounded-xl" }, /* @__PURE__ */ React11.createElement("div", { className: "flex flex-col" }, /* @__PURE__ */ React11.createElement("span", { className: "text-xs text-black tracking-tight" }, "Participants"), /* @__PURE__ */ React11.createElement("span", { className: "text-xs text-[#d97757] " }, selectedParticipants.size, " added")), enableEdits && /* @__PURE__ */ React11.createElement("button", { onClick: () => setShowMembersModal(true), className: "px-4 py-2 border border-stone-200 text-black text-xs tracking-wide rounded-full hover:bg-white transition-colors outline-none bg-transparent" }, "Manage Access")), isDirty && /* @__PURE__ */ React11.createElement("div", { className: "pt-4 animate-in fade-in duration-300" }, /* @__PURE__ */ React11.createElement(ThreeDActionButton, { onClick: handleUpdate, isLoading: isSubmitting, className: "w-full sm:w-auto min-w-40" }, "Save Changes")), /* @__PURE__ */ React11.createElement("div", { className: "flex flex-col sm:flex-row items-center gap-3 pt-6 mt-2 " }, (liveStatus === "SCHEDULED" || liveStatus === "ONGOING") && /* @__PURE__ */ React11.createElement("a", { href: `/app/huddles/room/${huddle.id}`, className: "flex-1 w-full py-2.5 bg-[#d97757] text-white rounded-full text-center text-xs transition-colors hover:bg-[#d97757]/5" }, "Join Huddle"), /* @__PURE__ */ React11.createElement("a", { href: `/app/assets/huddles/${huddle.id}`, className: "flex-1 w-full py-2.5 bg-transparent border border-stone-200 text-black rounded-full text-center text-xs transition-colors hover:bg-stone-50" }, "Huddle Assets"), canDelete && liveStatus === "SCHEDULED" && /* @__PURE__ */ React11.createElement("button", { onClick: () => setConfirmDialog("CANCEL"), className: "flex-1 w-full py-2.5 bg-transparent border border-stone-200 text-black rounded-full text-center text-xs transition-colors hover:bg-stone-50" }, "Cancel Huddle"), canDelete && liveStatus !== "SCHEDULED" && /* @__PURE__ */ React11.createElement("button", { onClick: () => setConfirmDialog("DELETE"), className: "flex-1 w-full py-2.5 bg-transparent border border-stone-200 text-black rounded-full text-center text-xs transition-colors hover:bg-stone-50" }, "Delete Huddle"))), /* @__PURE__ */ React11.createElement(
990
990
  CalendarPicker,
991
991
  {
992
992
  isOpen: calendarMode !== null,
@@ -1117,7 +1117,7 @@ import {
1117
1117
  Alert02Icon,
1118
1118
  CheckmarkBadge01Icon,
1119
1119
  InformationCircleIcon,
1120
- Cancel01Icon
1120
+ CancelCircleIcon as CancelCircleIcon3
1121
1121
  } from "@hugeicons/core-free-icons";
1122
1122
  var Banner = ({
1123
1123
  title,
@@ -1167,7 +1167,7 @@ var Banner = ({
1167
1167
  onClick: handleDismiss,
1168
1168
  className: `absolute top-3 right-3 p-1.5 rounded-full transition-colors outline-none shrink-0 ${currentConfig.closeHover}`
1169
1169
  },
1170
- /* @__PURE__ */ React14.createElement(HugeiconsIcon9, { icon: Cancel01Icon, size: 16 })
1170
+ /* @__PURE__ */ React14.createElement(HugeiconsIcon9, { icon: CancelCircleIcon3, size: 16 })
1171
1171
  ));
1172
1172
  };
1173
1173
 
@@ -1339,7 +1339,7 @@ import toast3 from "react-hot-toast";
1339
1339
  import { HugeiconsIcon as HugeiconsIcon11 } from "@hugeicons/react";
1340
1340
  import {
1341
1341
  CircleLock02Icon as CircleLock02Icon2,
1342
- CancelCircleIcon as CancelCircleIcon3,
1342
+ CancelCircleIcon as CancelCircleIcon4,
1343
1343
  Loading03Icon as Loading03Icon5,
1344
1344
  LockKeyIcon,
1345
1345
  ArrowLeft01Icon as ArrowLeft01Icon4
@@ -1498,7 +1498,7 @@ var UniversalProfileSettings = ({
1498
1498
  className: "min-w-32 w-full sm:w-auto"
1499
1499
  },
1500
1500
  "Save Changes"
1501
- ))))), isPasscodeModalOpen && /* @__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: closePasscodeModal }), /* @__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" }, /* @__PURE__ */ React16.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, /* @__PURE__ */ React16.createElement("h3", { className: "text-sm text-black tracking-tight" }, hasPasscode ? "Change Passcode" : "Create Security Passcode"), /* @__PURE__ */ React16.createElement("button", { onClick: closePasscodeModal, disabled: isPasscodeSubmitting, className: "text-stone-400 hover:text-black transition-colors outline-none disabled:opacity-50" }, /* @__PURE__ */ React16.createElement(HugeiconsIcon11, { icon: CancelCircleIcon3, size: 18 }))), /* @__PURE__ */ React16.createElement("div", { className: "p-6" }, isPasscodeLoading ? /* @__PURE__ */ React16.createElement("div", { className: "flex flex-col items-center justify-center py-10" }, /* @__PURE__ */ React16.createElement(HugeiconsIcon11, { icon: Loading03Icon5, size: 28, className: "animate-spin text-stone-400 mb-4" })) : /* @__PURE__ */ React16.createElement("form", { onSubmit: handlePasscodeSubmit, className: "flex flex-col gap-6" }, hasPasscode && /* @__PURE__ */ React16.createElement(
1501
+ ))))), isPasscodeModalOpen && /* @__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: closePasscodeModal }), /* @__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" }, /* @__PURE__ */ React16.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, /* @__PURE__ */ React16.createElement("h3", { className: "text-sm text-black tracking-tight" }, hasPasscode ? "Change Passcode" : "Create Security Passcode"), /* @__PURE__ */ React16.createElement("button", { onClick: closePasscodeModal, disabled: isPasscodeSubmitting, className: "text-stone-400 hover:text-black transition-colors outline-none disabled:opacity-50" }, /* @__PURE__ */ React16.createElement(HugeiconsIcon11, { icon: CancelCircleIcon4, size: 18 }))), /* @__PURE__ */ React16.createElement("div", { className: "p-6" }, isPasscodeLoading ? /* @__PURE__ */ React16.createElement("div", { className: "flex flex-col items-center justify-center py-10" }, /* @__PURE__ */ React16.createElement(HugeiconsIcon11, { icon: Loading03Icon5, size: 28, className: "animate-spin text-stone-400 mb-4" })) : /* @__PURE__ */ React16.createElement("form", { onSubmit: handlePasscodeSubmit, className: "flex flex-col gap-6" }, hasPasscode && /* @__PURE__ */ React16.createElement(
1502
1502
  TextInput,
1503
1503
  {
1504
1504
  type: "password",
@@ -1644,7 +1644,7 @@ import {
1644
1644
  Search01Icon as Search01Icon3,
1645
1645
  SearchList02Icon,
1646
1646
  ListSettingIcon,
1647
- CancelCircleIcon as CancelCircleIcon4,
1647
+ CancelCircleIcon as CancelCircleIcon5,
1648
1648
  Copy01Icon
1649
1649
  } from "@hugeicons/core-free-icons";
1650
1650
  var PageSpinner2 = () => /* @__PURE__ */ React19.createElement("div", { className: "flex justify-center items-center py-12" }, /* @__PURE__ */ React19.createElement(HugeiconsIcon14, { icon: Loading03Icon7, size: 32, className: "animate-spin mb-4 text-black" }));
@@ -1795,7 +1795,7 @@ var UniversalTransactionPage = ({
1795
1795
  className: "p-2 bg-white border border-stone-200 rounded-full text-black hover:bg-stone-50 disabled:opacity-30 disabled:cursor-not-allowed transition-all outline-none"
1796
1796
  },
1797
1797
  /* @__PURE__ */ React19.createElement(HugeiconsIcon14, { icon: ArrowRight01Icon3, size: 14 })
1798
- )))))), selectedTransaction && /* @__PURE__ */ React19.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React19.createElement("div", { className: "absolute inset-0 bg-black/40 ", onClick: () => setSelectedTransaction(null) }), /* @__PURE__ */ React19.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__ */ React19.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, /* @__PURE__ */ React19.createElement("h3", { className: "text-sm text-black tracking-tight" }, "Details"), /* @__PURE__ */ React19.createElement("button", { onClick: () => setSelectedTransaction(null), className: "text-stone-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React19.createElement(HugeiconsIcon14, { icon: CancelCircleIcon4, size: 18 }))), /* @__PURE__ */ React19.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-6" }, /* @__PURE__ */ React19.createElement("div", { className: "flex flex-col items-center justify-center mb-4" }, /* @__PURE__ */ React19.createElement("div", { className: `w-12 h-12 rounded-full flex items-center justify-center mb-4 border border-stone-200 text-black` }, /* @__PURE__ */ React19.createElement(HugeiconsIcon14, { icon: selectedTransaction.direction === "CREDIT" ? ArrowDownRight01Icon : ArrowUpRight01Icon, size: 20 })), /* @__PURE__ */ React19.createElement("p", { className: `text-2xl text-black mb-2 transition-all duration-300 ${hideBalanceAmounts ? "blur-[6px] opacity-40 select-none" : ""}` }, selectedTransaction.amount), /* @__PURE__ */ React19.createElement("span", { className: `text-xs tracking-widest px-4 py-1.5 rounded-full ${getStatusClasses(selectedTransaction.status)}` }, selectedTransaction.status)), /* @__PURE__ */ React19.createElement("div", { className: "grid grid-cols-1 gap-y-8 gap-x-4 mb-10 mt-6" }, /* @__PURE__ */ React19.createElement("div", null, /* @__PURE__ */ React19.createElement("span", { className: "text-xs tracking-[0.2em] text-stone-400 block mb-2" }, "Reference ID"), /* @__PURE__ */ React19.createElement("div", { className: "flex items-center gap-2 min-w-0" }, /* @__PURE__ */ React19.createElement("span", { className: "text-sm text-black truncate min-w-0 block" }, truncateReference(selectedTransaction.reference)), /* @__PURE__ */ React19.createElement(
1798
+ )))))), selectedTransaction && /* @__PURE__ */ React19.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React19.createElement("div", { className: "absolute inset-0 bg-black/40 ", onClick: () => setSelectedTransaction(null) }), /* @__PURE__ */ React19.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__ */ React19.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, /* @__PURE__ */ React19.createElement("h3", { className: "text-sm text-black tracking-tight" }, "Details"), /* @__PURE__ */ React19.createElement("button", { onClick: () => setSelectedTransaction(null), className: "text-stone-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React19.createElement(HugeiconsIcon14, { icon: CancelCircleIcon5, size: 18 }))), /* @__PURE__ */ React19.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-6" }, /* @__PURE__ */ React19.createElement("div", { className: "flex flex-col items-center justify-center mb-4" }, /* @__PURE__ */ React19.createElement("div", { className: `w-12 h-12 rounded-full flex items-center justify-center mb-4 border border-stone-200 text-black` }, /* @__PURE__ */ React19.createElement(HugeiconsIcon14, { icon: selectedTransaction.direction === "CREDIT" ? ArrowDownRight01Icon : ArrowUpRight01Icon, size: 20 })), /* @__PURE__ */ React19.createElement("p", { className: `text-2xl text-black mb-2 transition-all duration-300 ${hideBalanceAmounts ? "blur-[6px] opacity-40 select-none" : ""}` }, selectedTransaction.amount), /* @__PURE__ */ React19.createElement("span", { className: `text-xs tracking-widest px-4 py-1.5 rounded-full ${getStatusClasses(selectedTransaction.status)}` }, selectedTransaction.status)), /* @__PURE__ */ React19.createElement("div", { className: "grid grid-cols-1 gap-y-8 gap-x-4 mb-10 mt-6" }, /* @__PURE__ */ React19.createElement("div", null, /* @__PURE__ */ React19.createElement("span", { className: "text-xs tracking-[0.2em] text-stone-400 block mb-2" }, "Reference ID"), /* @__PURE__ */ React19.createElement("div", { className: "flex items-center gap-2 min-w-0" }, /* @__PURE__ */ React19.createElement("span", { className: "text-sm text-black truncate min-w-0 block" }, truncateReference(selectedTransaction.reference)), /* @__PURE__ */ React19.createElement(
1799
1799
  "button",
1800
1800
  {
1801
1801
  onClick: () => handleCopyReference(selectedTransaction.reference),
@@ -1874,7 +1874,7 @@ import {
1874
1874
  Notification01Icon,
1875
1875
  ArrowLeft01Icon as ArrowLeft01Icon6,
1876
1876
  ArrowRight01Icon as ArrowRight01Icon4,
1877
- CancelCircleIcon as CancelCircleIcon5,
1877
+ CancelCircleIcon as CancelCircleIcon6,
1878
1878
  ArrowUpRight01Icon as ArrowUpRight01Icon2
1879
1879
  } from "@hugeicons/core-free-icons";
1880
1880
  var UniversalHomeView = ({
@@ -1956,7 +1956,7 @@ var UniversalHomeView = ({
1956
1956
  hideBalanceAmounts: false,
1957
1957
  hidePagination: true
1958
1958
  }
1959
- )), showNotifDialog && /* @__PURE__ */ React20.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React20.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setShowNotifDialog(false) }), /* @__PURE__ */ React20.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 h-[80vh]" }, /* @__PURE__ */ React20.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, selectedNotif ? /* @__PURE__ */ React20.createElement("button", { onClick: () => setSelectedNotif(null), className: "text-stone-400 hover:text-black transition-colors outline-none flex items-center gap-2 text-xs tracking-widest " }, /* @__PURE__ */ React20.createElement(HugeiconsIcon15, { icon: ArrowLeft01Icon6, size: 14 }), " Back") : /* @__PURE__ */ React20.createElement("h3", { className: "text-sm text-black tracking-tight flex items-center gap-2" }, "Notifications", isNotifsLoading && /* @__PURE__ */ React20.createElement(HugeiconsIcon15, { icon: Loading03Icon8, size: 14, className: "animate-spin text-stone-400" })), /* @__PURE__ */ React20.createElement("button", { onClick: () => setShowNotifDialog(false), className: "text-stone-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React20.createElement(HugeiconsIcon15, { icon: CancelCircleIcon5, size: 18 }))), /* @__PURE__ */ React20.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-2" }, selectedNotif ? /* @__PURE__ */ React20.createElement("div", { className: "p-4 text-left" }, /* @__PURE__ */ React20.createElement("h4", { className: "text-sm text-black mb-1 " }, selectedNotif.title), /* @__PURE__ */ React20.createElement("span", { className: "text-xs text-stone-400 tracking-widest mb-4 block " }, formatNotifDate(selectedNotif.createdAt)), /* @__PURE__ */ React20.createElement("p", { className: "text-xs text-stone-600 leading-relaxed whitespace-pre-wrap" }, selectedNotif.message)) : /* @__PURE__ */ React20.createElement("div", { className: "flex flex-col divide-y divide-stone-50/50" }, notifications?.length === 0 && !isNotifsLoading ? /* @__PURE__ */ React20.createElement("div", { className: "p-8 text-center text-xs text-stone-400" }, "You have no notifications.") : notifications?.map((notif) => /* @__PURE__ */ React20.createElement(
1959
+ )), showNotifDialog && /* @__PURE__ */ React20.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React20.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setShowNotifDialog(false) }), /* @__PURE__ */ React20.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 h-[80vh]" }, /* @__PURE__ */ React20.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, selectedNotif ? /* @__PURE__ */ React20.createElement("button", { onClick: () => setSelectedNotif(null), className: "text-stone-400 hover:text-black transition-colors outline-none flex items-center gap-2 text-xs tracking-widest " }, /* @__PURE__ */ React20.createElement(HugeiconsIcon15, { icon: ArrowLeft01Icon6, size: 14 }), " Back") : /* @__PURE__ */ React20.createElement("h3", { className: "text-sm text-black tracking-tight flex items-center gap-2" }, "Notifications", isNotifsLoading && /* @__PURE__ */ React20.createElement(HugeiconsIcon15, { icon: Loading03Icon8, size: 14, className: "animate-spin text-stone-400" })), /* @__PURE__ */ React20.createElement("button", { onClick: () => setShowNotifDialog(false), className: "text-stone-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React20.createElement(HugeiconsIcon15, { icon: CancelCircleIcon6, size: 18 }))), /* @__PURE__ */ React20.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-2" }, selectedNotif ? /* @__PURE__ */ React20.createElement("div", { className: "p-4 text-left" }, /* @__PURE__ */ React20.createElement("h4", { className: "text-sm text-black mb-1 " }, selectedNotif.title), /* @__PURE__ */ React20.createElement("span", { className: "text-xs text-stone-400 tracking-widest mb-4 block " }, formatNotifDate(selectedNotif.createdAt)), /* @__PURE__ */ React20.createElement("p", { className: "text-xs text-stone-600 leading-relaxed whitespace-pre-wrap" }, selectedNotif.message)) : /* @__PURE__ */ React20.createElement("div", { className: "flex flex-col divide-y divide-stone-50/50" }, notifications?.length === 0 && !isNotifsLoading ? /* @__PURE__ */ React20.createElement("div", { className: "p-8 text-center text-xs text-stone-400" }, "You have no notifications.") : notifications?.map((notif) => /* @__PURE__ */ React20.createElement(
1960
1960
  "div",
1961
1961
  {
1962
1962
  key: notif.id,
@@ -1993,7 +1993,7 @@ import toast5 from "react-hot-toast";
1993
1993
  import { HugeiconsIcon as HugeiconsIcon16 } from "@hugeicons/react";
1994
1994
  import {
1995
1995
  Search01Icon as Search01Icon4,
1996
- CancelCircleIcon as CancelCircleIcon6,
1996
+ CancelCircleIcon as CancelCircleIcon7,
1997
1997
  Loading03Icon as Loading03Icon9,
1998
1998
  Copy01Icon as Copy01Icon2,
1999
1999
  ArrowLeft01Icon as ArrowLeft01Icon7,
@@ -2156,7 +2156,7 @@ var UniversalWalletPage = ({
2156
2156
  onChange: (e) => setLocalSearchQuery(e.target.value),
2157
2157
  className: "w-full pl-10 pr-4 py-2 bg-white rounded-full text-sm text-black placeholder-stone-400 outline-none transition-colors focus:border-black"
2158
2158
  }
2159
- )), !external && /* @__PURE__ */ React21.createElement("div", { className: "flex items-center gap-3 w-auto pb-0 shrink-0" }, /* @__PURE__ */ React21.createElement("button", { onClick: startWalletGeneration, className: "flex items-center justify-center bg-white w-9 h-9 rounded-full text-stone-500 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React21.createElement(HugeiconsIcon16, { icon: PlusSignIcon, size: 16 })), /* @__PURE__ */ React21.createElement("button", { onClick: startWalletImport, className: "flex items-center justify-center bg-white w-9 h-9 rounded-full text-stone-500 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React21.createElement(HugeiconsIcon16, { icon: Upload01Icon, size: 16 })))), /* @__PURE__ */ React21.createElement("div", { className: "flex flex-col gap-8 p-6 rounded-2xl bg-white w-full" }, /* @__PURE__ */ React21.createElement("div", { className: "flex flex-col sm:flex-row sm:items-start justify-between gap-4" }, /* @__PURE__ */ React21.createElement("div", null, /* @__PURE__ */ React21.createElement("h1", { className: "text-black text-xl mb-1 tracking-tight" }, headerTitle), headerDescription && /* @__PURE__ */ React21.createElement("p", { className: "text-xs text-stone-500" }, headerDescription))), /* @__PURE__ */ React21.createElement("div", { className: "w-full overflow-hidden" }, isLoading ? /* @__PURE__ */ React21.createElement(PageSpinner3, null) : /* @__PURE__ */ React21.createElement("div", { className: "flex flex-col min-w-0" }, /* @__PURE__ */ React21.createElement("div", null, filteredWallets.length === 0 ? /* @__PURE__ */ React21.createElement("p", { className: "text-xs text-stone-400 py-6 text-center" }, "No wallets found") : filteredWallets.map((wallet) => /* @__PURE__ */ React21.createElement("div", { key: wallet.id, onClick: () => setSelectedWallet(wallet), className: "flex items-center justify-between py-4 hover:bg-stone-50 transition-colors cursor-pointer group min-w-0 px-3 -mx-3 rounded-xl" }, /* @__PURE__ */ React21.createElement("div", { className: "flex items-center gap-4 min-w-0 flex-1" }, /* @__PURE__ */ React21.createElement("div", { className: "relative shrink-0" }, /* @__PURE__ */ React21.createElement(WalletLogo, { src: wallet.logoSrc, alt: wallet.name }), wallet.networkLogoSrc && /* @__PURE__ */ React21.createElement("div", { className: "absolute -bottom-1 -right-1 w-4 h-4 rounded-full border border-white bg-white overflow-hidden shadow-sm" }, /* @__PURE__ */ React21.createElement("img", { src: wallet.networkLogoSrc, alt: "Network", className: "w-full h-full object-cover" }))), /* @__PURE__ */ React21.createElement("div", { className: "min-w-0 flex-1 flex flex-col gap-1" }, /* @__PURE__ */ React21.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React21.createElement("p", { className: "text-sm text-black truncate" }, wallet.name), !external && wallet.isActive !== void 0 && /* @__PURE__ */ React21.createElement("span", { className: `text-xs px-1.5 py-0.5 rounded-sm tracking-widest ${wallet.isActive ? "bg-emerald-50 text-emerald-600" : "bg-[#d97757]/10 text-[#d97757]"}` }, wallet.isActive ? "Active" : "Inactive")), /* @__PURE__ */ React21.createElement("p", { className: `text-sm text-stone-500 truncate transition-all duration-300 ${hideBalanceAmounts && !external ? "blur-sm opacity-40 select-none" : ""}` }, external ? wallet.currency : `${wallet.balance} ${wallet.currency}`))), /* @__PURE__ */ React21.createElement("div", { className: "shrink-0 flex flex-col items-end gap-1 text-right" }, /* @__PURE__ */ React21.createElement("span", { className: "text-xs tracking-wide text-stone-600 bg-stone-100 px-2.5 py-1 rounded-full " }, wallet.network)))))))), addModalOpen && /* @__PURE__ */ React21.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React21.createElement("div", { className: "absolute inset-0 bg-black/40 ", onClick: () => !isProcessing && setAddModalOpen(false) }), /* @__PURE__ */ React21.createElement("div", { className: "relative w-full max-w-md bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200" }, /* @__PURE__ */ React21.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, /* @__PURE__ */ React21.createElement("h3", { className: "text-sm text-black tracking-tight" }, flowStep === 1 ? "Important Notice" : flowStep === 2 ? "Secret Recovery Phrase" : flowStep === 3 ? "Verify Phrase" : "Secure Wallet"), /* @__PURE__ */ React21.createElement("button", { onClick: () => !isProcessing && setAddModalOpen(false), className: "text-stone-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React21.createElement(HugeiconsIcon16, { icon: CancelCircleIcon6, size: 18 }))), /* @__PURE__ */ React21.createElement("div", { className: "p-6" }, flowStep === 1 && /* @__PURE__ */ React21.createElement("div", { className: "flex flex-col gap-6 animate-in fade-in" }, /* @__PURE__ */ React21.createElement(Banner, { type: "alert", title: "Critical Warning", message: "You are about to generate a Self-Custodial Recovery Phrase. This phrase is the absolute master key to your wallet and all assets within it. Aeona DOES NOT store this phrase. If you lose it, your funds are permanently lost. Do not share this phrase with anyone.", isDismissible: false }), /* @__PURE__ */ React21.createElement(ThreeDActionButton, { onClick: handleCreationNext, className: "w-full mt-2" }, "I Understand, Generate Phrase")), flowStep === 2 && /* @__PURE__ */ React21.createElement("div", { className: "flex flex-col gap-6 animate-in fade-in slide-in-from-right-4" }, /* @__PURE__ */ React21.createElement("p", { className: "text-sm text-stone-600" }, "Please write down these words in the exact order shown. Store them in a secure, offline location."), /* @__PURE__ */ React21.createElement("div", { className: "grid grid-cols-3 gap-2 max-h-48 overflow-y-auto custom-scrollbar pr-1" }, generatedPhrase.split(" ").map((word, idx) => /* @__PURE__ */ React21.createElement("div", { key: idx, className: "flex items-center gap-1.5 bg-stone-50 rounded-lg p-2 selection:bg-stone-100" }, /* @__PURE__ */ React21.createElement("span", { className: "text-xs text-stone-400 select-none w-4 text-right shrink-0" }, idx + 1, "."), /* @__PURE__ */ React21.createElement("span", { className: "text-sm text-black " }, word)))), /* @__PURE__ */ React21.createElement("div", { className: "flex items-center justify-between gap-2 0 pt-4" }, /* @__PURE__ */ React21.createElement("button", { type: "button", onClick: () => handleCopy(generatedPhrase, false), className: "text-xs text-black flex items-center gap-1.5 hover:underline outline-none" }, /* @__PURE__ */ React21.createElement(HugeiconsIcon16, { icon: Copy01Icon2, size: 14 }), " Copy Phrase"), /* @__PURE__ */ React21.createElement("button", { type: "button", onClick: handleDownloadTxt, className: "text-xs text-black flex items-center gap-1.5 hover:underline outline-none" }, /* @__PURE__ */ React21.createElement(HugeiconsIcon16, { icon: Download01Icon, size: 14 }), " Download .txt")), /* @__PURE__ */ React21.createElement("div", { className: "flex items-start gap-3 p-3 rounded-xl border border-stone-200 mt-2" }, /* @__PURE__ */ React21.createElement("input", { type: "checkbox", id: "backup-confirm", checked: hasBackedUp, onChange: (e) => setHasBackedUp(e.target.checked), className: "mt-0.5 w-4 h-4 bg-white border-stone-300 rounded text-black focus:ring-black cursor-pointer shrink-0" }), /* @__PURE__ */ React21.createElement("label", { htmlFor: "backup-confirm", className: "text-xs text-stone-600 cursor-pointer leading-relaxed" }, "I have securely copied and stored my recovery phrase. I understand that if I lose it, my funds are gone forever.")), /* @__PURE__ */ React21.createElement(ThreeDActionButton, { onClick: handleCreationNext, className: "w-full mt-2" }, "Continue")), flowStep === 3 && /* @__PURE__ */ React21.createElement("div", { className: "flex flex-col gap-6 animate-in fade-in slide-in-from-right-4" }, /* @__PURE__ */ React21.createElement("p", { className: "text-sm text-stone-600" }, "Please enter or paste your recovery phrase below to verify your backup."), /* @__PURE__ */ React21.createElement("div", { className: "grid grid-cols-3 gap-2 max-h-56 overflow-y-auto custom-scrollbar pr-1 pb-1" }, verifyWords.map((word, idx) => /* @__PURE__ */ React21.createElement("div", { key: idx, className: "flex items-center gap-1 bg-white border border-stone-200 focus-within:border-black rounded-lg p-1.5 transition-colors" }, /* @__PURE__ */ React21.createElement("span", { className: "text-xs text-stone-400 w-4 shrink-0 text-right select-none" }, idx + 1, "."), /* @__PURE__ */ React21.createElement(
2159
+ )), !external && /* @__PURE__ */ React21.createElement("div", { className: "flex items-center gap-3 w-auto pb-0 shrink-0" }, /* @__PURE__ */ React21.createElement("button", { onClick: startWalletGeneration, className: "flex items-center justify-center bg-white w-9 h-9 rounded-full text-stone-500 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React21.createElement(HugeiconsIcon16, { icon: PlusSignIcon, size: 16 })), /* @__PURE__ */ React21.createElement("button", { onClick: startWalletImport, className: "flex items-center justify-center bg-white w-9 h-9 rounded-full text-stone-500 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React21.createElement(HugeiconsIcon16, { icon: Upload01Icon, size: 16 })))), /* @__PURE__ */ React21.createElement("div", { className: "flex flex-col gap-8 p-6 rounded-2xl bg-white w-full" }, /* @__PURE__ */ React21.createElement("div", { className: "flex flex-col sm:flex-row sm:items-start justify-between gap-4" }, /* @__PURE__ */ React21.createElement("div", null, /* @__PURE__ */ React21.createElement("h1", { className: "text-black text-xl mb-1 tracking-tight" }, headerTitle), headerDescription && /* @__PURE__ */ React21.createElement("p", { className: "text-xs text-stone-500" }, headerDescription))), /* @__PURE__ */ React21.createElement("div", { className: "w-full overflow-hidden" }, isLoading ? /* @__PURE__ */ React21.createElement(PageSpinner3, null) : /* @__PURE__ */ React21.createElement("div", { className: "flex flex-col min-w-0" }, /* @__PURE__ */ React21.createElement("div", null, filteredWallets.length === 0 ? /* @__PURE__ */ React21.createElement("p", { className: "text-xs text-stone-400 py-6 text-center" }, "No wallets found") : filteredWallets.map((wallet) => /* @__PURE__ */ React21.createElement("div", { key: wallet.id, onClick: () => setSelectedWallet(wallet), className: "flex items-center justify-between py-4 hover:bg-stone-50 transition-colors cursor-pointer group min-w-0 px-3 -mx-3 rounded-xl" }, /* @__PURE__ */ React21.createElement("div", { className: "flex items-center gap-4 min-w-0 flex-1" }, /* @__PURE__ */ React21.createElement("div", { className: "relative shrink-0" }, /* @__PURE__ */ React21.createElement(WalletLogo, { src: wallet.logoSrc, alt: wallet.name }), wallet.networkLogoSrc && /* @__PURE__ */ React21.createElement("div", { className: "absolute -bottom-1 -right-1 w-4 h-4 rounded-full border border-white bg-white overflow-hidden shadow-sm" }, /* @__PURE__ */ React21.createElement("img", { src: wallet.networkLogoSrc, alt: "Network", className: "w-full h-full object-cover" }))), /* @__PURE__ */ React21.createElement("div", { className: "min-w-0 flex-1 flex flex-col gap-1" }, /* @__PURE__ */ React21.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React21.createElement("p", { className: "text-sm text-black truncate" }, wallet.name), !external && wallet.isActive !== void 0 && /* @__PURE__ */ React21.createElement("span", { className: `text-xs px-1.5 py-0.5 rounded-sm tracking-widest ${wallet.isActive ? "bg-emerald-50 text-emerald-600" : "bg-[#d97757]/10 text-[#d97757]"}` }, wallet.isActive ? "Active" : "Inactive")), /* @__PURE__ */ React21.createElement("p", { className: `text-sm text-stone-500 truncate transition-all duration-300 ${hideBalanceAmounts && !external ? "blur-sm opacity-40 select-none" : ""}` }, external ? wallet.currency : `${wallet.balance} ${wallet.currency}`))), /* @__PURE__ */ React21.createElement("div", { className: "shrink-0 flex flex-col items-end gap-1 text-right" }, /* @__PURE__ */ React21.createElement("span", { className: "text-xs tracking-wide text-stone-600 bg-stone-100 px-2.5 py-1 rounded-full " }, wallet.network)))))))), addModalOpen && /* @__PURE__ */ React21.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React21.createElement("div", { className: "absolute inset-0 bg-black/40 ", onClick: () => !isProcessing && setAddModalOpen(false) }), /* @__PURE__ */ React21.createElement("div", { className: "relative w-full max-w-md bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200" }, /* @__PURE__ */ React21.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, /* @__PURE__ */ React21.createElement("h3", { className: "text-sm text-black tracking-tight" }, flowStep === 1 ? "Important Notice" : flowStep === 2 ? "Secret Recovery Phrase" : flowStep === 3 ? "Verify Phrase" : "Secure Wallet"), /* @__PURE__ */ React21.createElement("button", { onClick: () => !isProcessing && setAddModalOpen(false), className: "text-stone-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React21.createElement(HugeiconsIcon16, { icon: CancelCircleIcon7, size: 18 }))), /* @__PURE__ */ React21.createElement("div", { className: "p-6" }, flowStep === 1 && /* @__PURE__ */ React21.createElement("div", { className: "flex flex-col gap-6 animate-in fade-in" }, /* @__PURE__ */ React21.createElement(Banner, { type: "alert", title: "Critical Warning", message: "You are about to generate a Self-Custodial Recovery Phrase. This phrase is the absolute master key to your wallet and all assets within it. Aeona DOES NOT store this phrase. If you lose it, your funds are permanently lost. Do not share this phrase with anyone.", isDismissible: false }), /* @__PURE__ */ React21.createElement(ThreeDActionButton, { onClick: handleCreationNext, className: "w-full mt-2" }, "I Understand, Generate Phrase")), flowStep === 2 && /* @__PURE__ */ React21.createElement("div", { className: "flex flex-col gap-6 animate-in fade-in slide-in-from-right-4" }, /* @__PURE__ */ React21.createElement("p", { className: "text-sm text-stone-600" }, "Please write down these words in the exact order shown. Store them in a secure, offline location."), /* @__PURE__ */ React21.createElement("div", { className: "grid grid-cols-3 gap-2 max-h-48 overflow-y-auto custom-scrollbar pr-1" }, generatedPhrase.split(" ").map((word, idx) => /* @__PURE__ */ React21.createElement("div", { key: idx, className: "flex items-center gap-1.5 bg-stone-50 rounded-lg p-2 selection:bg-stone-100" }, /* @__PURE__ */ React21.createElement("span", { className: "text-xs text-stone-400 select-none w-4 text-right shrink-0" }, idx + 1, "."), /* @__PURE__ */ React21.createElement("span", { className: "text-sm text-black " }, word)))), /* @__PURE__ */ React21.createElement("div", { className: "flex items-center justify-between gap-2 0 pt-4" }, /* @__PURE__ */ React21.createElement("button", { type: "button", onClick: () => handleCopy(generatedPhrase, false), className: "text-xs text-black flex items-center gap-1.5 hover:underline outline-none" }, /* @__PURE__ */ React21.createElement(HugeiconsIcon16, { icon: Copy01Icon2, size: 14 }), " Copy Phrase"), /* @__PURE__ */ React21.createElement("button", { type: "button", onClick: handleDownloadTxt, className: "text-xs text-black flex items-center gap-1.5 hover:underline outline-none" }, /* @__PURE__ */ React21.createElement(HugeiconsIcon16, { icon: Download01Icon, size: 14 }), " Download .txt")), /* @__PURE__ */ React21.createElement("div", { className: "flex items-start gap-3 p-3 rounded-xl border border-stone-200 mt-2" }, /* @__PURE__ */ React21.createElement("input", { type: "checkbox", id: "backup-confirm", checked: hasBackedUp, onChange: (e) => setHasBackedUp(e.target.checked), className: "mt-0.5 w-4 h-4 bg-white border-stone-300 rounded text-black focus:ring-black cursor-pointer shrink-0" }), /* @__PURE__ */ React21.createElement("label", { htmlFor: "backup-confirm", className: "text-xs text-stone-600 cursor-pointer leading-relaxed" }, "I have securely copied and stored my recovery phrase. I understand that if I lose it, my funds are gone forever.")), /* @__PURE__ */ React21.createElement(ThreeDActionButton, { onClick: handleCreationNext, className: "w-full mt-2" }, "Continue")), flowStep === 3 && /* @__PURE__ */ React21.createElement("div", { className: "flex flex-col gap-6 animate-in fade-in slide-in-from-right-4" }, /* @__PURE__ */ React21.createElement("p", { className: "text-sm text-stone-600" }, "Please enter or paste your recovery phrase below to verify your backup."), /* @__PURE__ */ React21.createElement("div", { className: "grid grid-cols-3 gap-2 max-h-56 overflow-y-auto custom-scrollbar pr-1 pb-1" }, verifyWords.map((word, idx) => /* @__PURE__ */ React21.createElement("div", { key: idx, className: "flex items-center gap-1 bg-white border border-stone-200 focus-within:border-black rounded-lg p-1.5 transition-colors" }, /* @__PURE__ */ React21.createElement("span", { className: "text-xs text-stone-400 w-4 shrink-0 text-right select-none" }, idx + 1, "."), /* @__PURE__ */ React21.createElement(
2160
2160
  "input",
2161
2161
  {
2162
2162
  type: "text",
@@ -2181,7 +2181,7 @@ var UniversalWalletPage = ({
2181
2181
  },
2182
2182
  className: "w-full bg-transparent text-sm text-black outline-none min-w-0"
2183
2183
  }
2184
- )))), /* @__PURE__ */ React21.createElement("div", { className: "flex items-center justify-between pt-4" }, /* @__PURE__ */ React21.createElement("button", { type: "button", onClick: () => handleGridPaste(setVerifyWords, verifyWords), className: "text-xs text-black flex items-center gap-1.5 hover:underline outline-none" }, /* @__PURE__ */ React21.createElement(HugeiconsIcon16, { icon: ClipboardIcon, size: 14 }), " Paste Phrase")), /* @__PURE__ */ React21.createElement(ThreeDActionButton, { onClick: handleCreationNext, className: "w-full mt-2" }, "Verify Backup")), flowStep === 4 && /* @__PURE__ */ React21.createElement("div", { className: "flex flex-col gap-6 animate-in fade-in slide-in-from-right-4" }, /* @__PURE__ */ React21.createElement(Banner, { type: "success", title: "Phrase Verified", message: "Your phrase is correct. Now set a local password to encrypt your wallet on this browser.", isDismissible: false }), /* @__PURE__ */ React21.createElement(TextInput, { label: "Local Password", type: "password", value: walletPassword, onChange: setWalletPassword, placeholder: "Enter a strong password" }), /* @__PURE__ */ React21.createElement(ThreeDActionButton, { onClick: () => handleSaveWallet("generated"), isLoading: isProcessing, className: "w-full mt-2" }, "Encrypt & Save Wallet"))))), importModalOpen && /* @__PURE__ */ React21.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React21.createElement("div", { className: "absolute inset-0 bg-black/40 ", onClick: () => !isProcessing && setImportModalOpen(false) }), /* @__PURE__ */ React21.createElement("div", { className: "relative w-full max-w-md bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200" }, /* @__PURE__ */ React21.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, /* @__PURE__ */ React21.createElement("h3", { className: "text-sm text-black tracking-tight" }, "Import Wallet"), /* @__PURE__ */ React21.createElement("button", { onClick: () => !isProcessing && setImportModalOpen(false), className: "text-stone-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React21.createElement(HugeiconsIcon16, { icon: CancelCircleIcon6, size: 18 }))), /* @__PURE__ */ React21.createElement("div", { className: "p-6" }, flowStep === 1 && /* @__PURE__ */ React21.createElement("div", { className: "flex flex-col gap-6 animate-in fade-in" }, /* @__PURE__ */ React21.createElement("p", { className: "text-sm text-stone-600" }, "Enter your 12 or 24-word recovery phrase to restore your wallet on this device."), /* @__PURE__ */ React21.createElement("div", { className: "grid grid-cols-3 gap-2 max-h-56 overflow-y-auto custom-scrollbar pr-1 pb-1" }, importWords.map((word, idx) => /* @__PURE__ */ React21.createElement("div", { key: idx, className: "flex items-center gap-1 bg-white border border-stone-200 focus-within:border-black rounded-lg p-1.5 transition-colors" }, /* @__PURE__ */ React21.createElement("span", { className: "text-xs text-stone-400 w-4 shrink-0 text-right select-none" }, idx + 1, "."), /* @__PURE__ */ React21.createElement(
2184
+ )))), /* @__PURE__ */ React21.createElement("div", { className: "flex items-center justify-between pt-4" }, /* @__PURE__ */ React21.createElement("button", { type: "button", onClick: () => handleGridPaste(setVerifyWords, verifyWords), className: "text-xs text-black flex items-center gap-1.5 hover:underline outline-none" }, /* @__PURE__ */ React21.createElement(HugeiconsIcon16, { icon: ClipboardIcon, size: 14 }), " Paste Phrase")), /* @__PURE__ */ React21.createElement(ThreeDActionButton, { onClick: handleCreationNext, className: "w-full mt-2" }, "Verify Backup")), flowStep === 4 && /* @__PURE__ */ React21.createElement("div", { className: "flex flex-col gap-6 animate-in fade-in slide-in-from-right-4" }, /* @__PURE__ */ React21.createElement(Banner, { type: "success", title: "Phrase Verified", message: "Your phrase is correct. Now set a local password to encrypt your wallet on this browser.", isDismissible: false }), /* @__PURE__ */ React21.createElement(TextInput, { label: "Local Password", type: "password", value: walletPassword, onChange: setWalletPassword, placeholder: "Enter a strong password" }), /* @__PURE__ */ React21.createElement(ThreeDActionButton, { onClick: () => handleSaveWallet("generated"), isLoading: isProcessing, className: "w-full mt-2" }, "Encrypt & Save Wallet"))))), importModalOpen && /* @__PURE__ */ React21.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React21.createElement("div", { className: "absolute inset-0 bg-black/40 ", onClick: () => !isProcessing && setImportModalOpen(false) }), /* @__PURE__ */ React21.createElement("div", { className: "relative w-full max-w-md bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200" }, /* @__PURE__ */ React21.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, /* @__PURE__ */ React21.createElement("h3", { className: "text-sm text-black tracking-tight" }, "Import Wallet"), /* @__PURE__ */ React21.createElement("button", { onClick: () => !isProcessing && setImportModalOpen(false), className: "text-stone-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React21.createElement(HugeiconsIcon16, { icon: CancelCircleIcon7, size: 18 }))), /* @__PURE__ */ React21.createElement("div", { className: "p-6" }, flowStep === 1 && /* @__PURE__ */ React21.createElement("div", { className: "flex flex-col gap-6 animate-in fade-in" }, /* @__PURE__ */ React21.createElement("p", { className: "text-sm text-stone-600" }, "Enter your 12 or 24-word recovery phrase to restore your wallet on this device."), /* @__PURE__ */ React21.createElement("div", { className: "grid grid-cols-3 gap-2 max-h-56 overflow-y-auto custom-scrollbar pr-1 pb-1" }, importWords.map((word, idx) => /* @__PURE__ */ React21.createElement("div", { key: idx, className: "flex items-center gap-1 bg-white border border-stone-200 focus-within:border-black rounded-lg p-1.5 transition-colors" }, /* @__PURE__ */ React21.createElement("span", { className: "text-xs text-stone-400 w-4 shrink-0 text-right select-none" }, idx + 1, "."), /* @__PURE__ */ React21.createElement(
2185
2185
  "input",
2186
2186
  {
2187
2187
  type: "text",
@@ -2207,7 +2207,7 @@ var UniversalWalletPage = ({
2207
2207
  },
2208
2208
  className: "w-full bg-transparent text-sm text-black outline-none min-w-0"
2209
2209
  }
2210
- )))), /* @__PURE__ */ React21.createElement("div", { className: "flex items-center justify-between pt-4" }, /* @__PURE__ */ React21.createElement("button", { type: "button", onClick: () => handleGridPaste(setImportWords, importWords), className: "text-xs text-black flex items-center gap-1.5 hover:underline outline-none" }, /* @__PURE__ */ React21.createElement(HugeiconsIcon16, { icon: ClipboardIcon, size: 14 }), " Paste Phrase")), /* @__PURE__ */ React21.createElement(ThreeDActionButton, { onClick: handleImportNext, className: "w-full mt-2" }, "Continue")), flowStep === 2 && /* @__PURE__ */ React21.createElement("div", { className: "flex flex-col gap-6 animate-in fade-in slide-in-from-right-4" }, /* @__PURE__ */ React21.createElement("p", { className: "text-sm text-stone-600" }, "Set a local password to encrypt this wallet on this specific browser."), /* @__PURE__ */ React21.createElement(TextInput, { label: "Local Password", type: "password", value: walletPassword, onChange: setWalletPassword, placeholder: "Enter a strong password" }), /* @__PURE__ */ React21.createElement(ThreeDActionButton, { onClick: () => handleSaveWallet("imported"), isLoading: isProcessing, className: "w-full mt-2" }, "Encrypt & Import Wallet"))))), selectedWallet && /* @__PURE__ */ React21.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React21.createElement("div", { className: "absolute inset-0 bg-black/40 ", onClick: () => setSelectedWallet(null) }), /* @__PURE__ */ React21.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__ */ React21.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, /* @__PURE__ */ React21.createElement("h3", { className: "text-sm text-black tracking-tight" }, "Wallet Details"), /* @__PURE__ */ React21.createElement("button", { onClick: () => setSelectedWallet(null), className: "text-stone-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React21.createElement(HugeiconsIcon16, { icon: CancelCircleIcon6, size: 18 }))), /* @__PURE__ */ React21.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-6 pt-6" }, /* @__PURE__ */ React21.createElement("div", { className: "flex flex-col items-center justify-center mb-6" }, /* @__PURE__ */ React21.createElement("div", { className: "relative mb-4" }, /* @__PURE__ */ React21.createElement(WalletLogo, { src: selectedWallet.logoSrc, alt: selectedWallet.name, sizeClass: "w-14 h-14" }), selectedWallet.networkLogoSrc && /* @__PURE__ */ React21.createElement("div", { className: "absolute -bottom-1 -right-1 w-5 h-5 rounded-full border border-white bg-white overflow-hidden shadow-sm" }, /* @__PURE__ */ React21.createElement("img", { src: selectedWallet.networkLogoSrc, alt: "Network", className: "w-full h-full object-cover" }))), /* @__PURE__ */ React21.createElement("h2", { className: `text-2xl text-black mb-2 transition-all duration-300 ${hideBalanceAmounts && !external ? "blur-[6px] opacity-40 select-none" : ""}` }, external ? selectedWallet.currency : `${selectedWallet.balance} ${selectedWallet.currency}`), /* @__PURE__ */ React21.createElement("span", { className: "text-xs tracking-widest text-stone-500 px-4 py-1.5 rounded-full border border-stone-200 mt-1 " }, selectedWallet.network, " NETWORK")), renderQrCode && /* @__PURE__ */ React21.createElement("div", { className: "w-full flex justify-center mb-6 mix-blend-multiply" }, renderQrCode(selectedWallet)), external && /* @__PURE__ */ React21.createElement("div", { className: "mb-6" }, /* @__PURE__ */ React21.createElement(
2210
+ )))), /* @__PURE__ */ React21.createElement("div", { className: "flex items-center justify-between pt-4" }, /* @__PURE__ */ React21.createElement("button", { type: "button", onClick: () => handleGridPaste(setImportWords, importWords), className: "text-xs text-black flex items-center gap-1.5 hover:underline outline-none" }, /* @__PURE__ */ React21.createElement(HugeiconsIcon16, { icon: ClipboardIcon, size: 14 }), " Paste Phrase")), /* @__PURE__ */ React21.createElement(ThreeDActionButton, { onClick: handleImportNext, className: "w-full mt-2" }, "Continue")), flowStep === 2 && /* @__PURE__ */ React21.createElement("div", { className: "flex flex-col gap-6 animate-in fade-in slide-in-from-right-4" }, /* @__PURE__ */ React21.createElement("p", { className: "text-sm text-stone-600" }, "Set a local password to encrypt this wallet on this specific browser."), /* @__PURE__ */ React21.createElement(TextInput, { label: "Local Password", type: "password", value: walletPassword, onChange: setWalletPassword, placeholder: "Enter a strong password" }), /* @__PURE__ */ React21.createElement(ThreeDActionButton, { onClick: () => handleSaveWallet("imported"), isLoading: isProcessing, className: "w-full mt-2" }, "Encrypt & Import Wallet"))))), selectedWallet && /* @__PURE__ */ React21.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React21.createElement("div", { className: "absolute inset-0 bg-black/40 ", onClick: () => setSelectedWallet(null) }), /* @__PURE__ */ React21.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__ */ React21.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, /* @__PURE__ */ React21.createElement("h3", { className: "text-sm text-black tracking-tight" }, "Wallet Details"), /* @__PURE__ */ React21.createElement("button", { onClick: () => setSelectedWallet(null), className: "text-stone-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React21.createElement(HugeiconsIcon16, { icon: CancelCircleIcon7, size: 18 }))), /* @__PURE__ */ React21.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-6 pt-6" }, /* @__PURE__ */ React21.createElement("div", { className: "flex flex-col items-center justify-center mb-6" }, /* @__PURE__ */ React21.createElement("div", { className: "relative mb-4" }, /* @__PURE__ */ React21.createElement(WalletLogo, { src: selectedWallet.logoSrc, alt: selectedWallet.name, sizeClass: "w-14 h-14" }), selectedWallet.networkLogoSrc && /* @__PURE__ */ React21.createElement("div", { className: "absolute -bottom-1 -right-1 w-5 h-5 rounded-full border border-white bg-white overflow-hidden shadow-sm" }, /* @__PURE__ */ React21.createElement("img", { src: selectedWallet.networkLogoSrc, alt: "Network", className: "w-full h-full object-cover" }))), /* @__PURE__ */ React21.createElement("h2", { className: `text-2xl text-black mb-2 transition-all duration-300 ${hideBalanceAmounts && !external ? "blur-[6px] opacity-40 select-none" : ""}` }, external ? selectedWallet.currency : `${selectedWallet.balance} ${selectedWallet.currency}`), /* @__PURE__ */ React21.createElement("span", { className: "text-xs tracking-widest text-stone-500 px-4 py-1.5 rounded-full border border-stone-200 mt-1 " }, selectedWallet.network, " NETWORK")), renderQrCode && /* @__PURE__ */ React21.createElement("div", { className: "w-full flex justify-center mb-6 mix-blend-multiply" }, renderQrCode(selectedWallet)), external && /* @__PURE__ */ React21.createElement("div", { className: "mb-6" }, /* @__PURE__ */ React21.createElement(
2211
2211
  Banner,
2212
2212
  {
2213
2213
  type: "warning",
@@ -2241,7 +2241,7 @@ import {
2241
2241
  ArrowRight01Icon as ArrowRight01Icon5,
2242
2242
  ViewOffSlashIcon,
2243
2243
  Loading03Icon as Loading03Icon10,
2244
- CancelCircleIcon as CancelCircleIcon7,
2244
+ CancelCircleIcon as CancelCircleIcon8,
2245
2245
  Copy01Icon as Copy01Icon3,
2246
2246
  PlusSignIcon as PlusSignIcon2
2247
2247
  } from "@hugeicons/core-free-icons";
@@ -2403,7 +2403,7 @@ var CardInfoDialog = ({ isOpen, onClose, cardDetails }) => {
2403
2403
  toast6.success(`${label} copied to clipboard`);
2404
2404
  };
2405
2405
  const formattedCardNumber = cardDetails.card_number.replace(/(.{4})/g, "$1 ").trim();
2406
- return /* @__PURE__ */ React22.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React22.createElement("div", { className: "absolute inset-0 bg-black/40", onClick: onClose }), /* @__PURE__ */ React22.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__ */ React22.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, /* @__PURE__ */ React22.createElement("h3", { className: "text-sm text-black tracking-tight " }, "Secure Card Details"), /* @__PURE__ */ React22.createElement("button", { onClick: onClose, className: "text-stone-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React22.createElement(HugeiconsIcon17, { icon: CancelCircleIcon7, size: 18 }))), /* @__PURE__ */ React22.createElement("div", { className: "p-6" }, /* @__PURE__ */ React22.createElement("div", { className: "grid grid-cols-1 gap-y-6 mb-6" }, /* @__PURE__ */ React22.createElement("div", null, /* @__PURE__ */ React22.createElement("span", { className: "text-xs tracking-[0.2em] text-stone-400 block mb-1.5 " }, "Card Number"), /* @__PURE__ */ React22.createElement("div", { className: "flex items-center justify-between p-3 rounded-full border border-stone-200" }, /* @__PURE__ */ React22.createElement("span", { className: "text-sm tracking-widest text-black block" }, formattedCardNumber), /* @__PURE__ */ React22.createElement("button", { onClick: () => handleCopy(cardDetails.card_number, "Card Number"), className: "text-stone-400 hover:text-black outline-none shrink-0 ml-3" }, /* @__PURE__ */ React22.createElement(HugeiconsIcon17, { icon: Copy01Icon3, size: 16 })))), /* @__PURE__ */ React22.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ React22.createElement("div", null, /* @__PURE__ */ React22.createElement("span", { className: "text-xs tracking-[0.2em] text-stone-400 block mb-1.5 " }, "Expiry Date"), /* @__PURE__ */ React22.createElement("div", { className: "flex items-center justify-between p-3 rounded-full border border-stone-200" }, /* @__PURE__ */ React22.createElement("span", { className: "text-sm text-black block" }, cardDetails.expiry), /* @__PURE__ */ React22.createElement("button", { onClick: () => handleCopy(cardDetails.expiry, "Expiry Date"), className: "text-stone-400 hover:text-black outline-none shrink-0 ml-2" }, /* @__PURE__ */ React22.createElement(HugeiconsIcon17, { icon: Copy01Icon3, size: 16 })))), /* @__PURE__ */ React22.createElement("div", null, /* @__PURE__ */ React22.createElement("span", { className: "text-xs tracking-[0.2em] text-stone-400 block mb-1.5 " }, "CVV"), /* @__PURE__ */ React22.createElement("div", { className: "flex items-center justify-between p-3 rounded-full border border-stone-200" }, /* @__PURE__ */ React22.createElement("span", { className: "text-sm text-black block" }, cardDetails.cvv), /* @__PURE__ */ React22.createElement("button", { onClick: () => handleCopy(cardDetails.cvv, "CVV"), className: "text-stone-400 hover:text-black outline-none shrink-0 ml-2" }, /* @__PURE__ */ React22.createElement(HugeiconsIcon17, { icon: Copy01Icon3, size: 16 })))))))));
2406
+ return /* @__PURE__ */ React22.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React22.createElement("div", { className: "absolute inset-0 bg-black/40", onClick: onClose }), /* @__PURE__ */ React22.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__ */ React22.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, /* @__PURE__ */ React22.createElement("h3", { className: "text-sm text-black tracking-tight " }, "Secure Card Details"), /* @__PURE__ */ React22.createElement("button", { onClick: onClose, className: "text-stone-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React22.createElement(HugeiconsIcon17, { icon: CancelCircleIcon8, size: 18 }))), /* @__PURE__ */ React22.createElement("div", { className: "p-6" }, /* @__PURE__ */ React22.createElement("div", { className: "grid grid-cols-1 gap-y-6 mb-6" }, /* @__PURE__ */ React22.createElement("div", null, /* @__PURE__ */ React22.createElement("span", { className: "text-xs tracking-[0.2em] text-stone-400 block mb-1.5 " }, "Card Number"), /* @__PURE__ */ React22.createElement("div", { className: "flex items-center justify-between p-3 rounded-full border border-stone-200" }, /* @__PURE__ */ React22.createElement("span", { className: "text-sm tracking-widest text-black block" }, formattedCardNumber), /* @__PURE__ */ React22.createElement("button", { onClick: () => handleCopy(cardDetails.card_number, "Card Number"), className: "text-stone-400 hover:text-black outline-none shrink-0 ml-3" }, /* @__PURE__ */ React22.createElement(HugeiconsIcon17, { icon: Copy01Icon3, size: 16 })))), /* @__PURE__ */ React22.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ React22.createElement("div", null, /* @__PURE__ */ React22.createElement("span", { className: "text-xs tracking-[0.2em] text-stone-400 block mb-1.5 " }, "Expiry Date"), /* @__PURE__ */ React22.createElement("div", { className: "flex items-center justify-between p-3 rounded-full border border-stone-200" }, /* @__PURE__ */ React22.createElement("span", { className: "text-sm text-black block" }, cardDetails.expiry), /* @__PURE__ */ React22.createElement("button", { onClick: () => handleCopy(cardDetails.expiry, "Expiry Date"), className: "text-stone-400 hover:text-black outline-none shrink-0 ml-2" }, /* @__PURE__ */ React22.createElement(HugeiconsIcon17, { icon: Copy01Icon3, size: 16 })))), /* @__PURE__ */ React22.createElement("div", null, /* @__PURE__ */ React22.createElement("span", { className: "text-xs tracking-[0.2em] text-stone-400 block mb-1.5 " }, "CVV"), /* @__PURE__ */ React22.createElement("div", { className: "flex items-center justify-between p-3 rounded-full border border-stone-200" }, /* @__PURE__ */ React22.createElement("span", { className: "text-sm text-black block" }, cardDetails.cvv), /* @__PURE__ */ React22.createElement("button", { onClick: () => handleCopy(cardDetails.cvv, "CVV"), className: "text-stone-400 hover:text-black outline-none shrink-0 ml-2" }, /* @__PURE__ */ React22.createElement(HugeiconsIcon17, { icon: Copy01Icon3, size: 16 })))))))));
2407
2407
  };
2408
2408
  var FundCardDialog = ({ isOpen, onClose, onSubmit }) => {
2409
2409
  const [amount, setAmount] = useState15("");
@@ -2427,7 +2427,7 @@ var FundCardDialog = ({ isOpen, onClose, onSubmit }) => {
2427
2427
  setIsProcessing(false);
2428
2428
  }
2429
2429
  };
2430
- return /* @__PURE__ */ React22.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React22.createElement("div", { className: "absolute inset-0 bg-black/40", onClick: () => !isProcessing && onClose() }), /* @__PURE__ */ React22.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__ */ React22.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, /* @__PURE__ */ React22.createElement("h3", { className: "text-sm text-black tracking-tight" }, "Fund Card"), /* @__PURE__ */ React22.createElement("button", { disabled: isProcessing, onClick: onClose, className: "text-stone-400 hover:text-black outline-none disabled:opacity-50" }, /* @__PURE__ */ React22.createElement(HugeiconsIcon17, { icon: CancelCircleIcon7, size: 18 }))), /* @__PURE__ */ React22.createElement("div", { className: "flex-1 p-6" }, /* @__PURE__ */ React22.createElement("form", { onSubmit: handleFundCard, className: "flex flex-col gap-6" }, /* @__PURE__ */ React22.createElement(
2430
+ return /* @__PURE__ */ React22.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React22.createElement("div", { className: "absolute inset-0 bg-black/40", onClick: () => !isProcessing && onClose() }), /* @__PURE__ */ React22.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__ */ React22.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, /* @__PURE__ */ React22.createElement("h3", { className: "text-sm text-black tracking-tight" }, "Fund Card"), /* @__PURE__ */ React22.createElement("button", { disabled: isProcessing, onClick: onClose, className: "text-stone-400 hover:text-black outline-none disabled:opacity-50" }, /* @__PURE__ */ React22.createElement(HugeiconsIcon17, { icon: CancelCircleIcon8, size: 18 }))), /* @__PURE__ */ React22.createElement("div", { className: "flex-1 p-6" }, /* @__PURE__ */ React22.createElement("form", { onSubmit: handleFundCard, className: "flex flex-col gap-6" }, /* @__PURE__ */ React22.createElement(
2431
2431
  NumberInput,
2432
2432
  {
2433
2433
  label: "Amount to Add",
@@ -2975,7 +2975,7 @@ import React28, { useState as useState21 } from "react";
2975
2975
  import toast8 from "react-hot-toast";
2976
2976
  import { HugeiconsIcon as HugeiconsIcon21 } from "@hugeicons/react";
2977
2977
  import {
2978
- CancelCircleIcon as CancelCircleIcon8,
2978
+ CancelCircleIcon as CancelCircleIcon9,
2979
2979
  Loading03Icon as Loading03Icon12,
2980
2980
  ArrowLeft01Icon as ArrowLeft01Icon8,
2981
2981
  Key01Icon,
@@ -3101,7 +3101,7 @@ var UniversalSecurityPage = ({
3101
3101
  toggleLoading: isPasskeyLoading,
3102
3102
  isLast: true
3103
3103
  }
3104
- ))), isPasscodeModalOpen && /* @__PURE__ */ React28.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React28.createElement("div", { className: "absolute inset-0 bg-black/40", onClick: closePasscodeModal }), /* @__PURE__ */ React28.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__ */ React28.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, /* @__PURE__ */ React28.createElement("h3", { className: "text-sm text-black tracking-tight" }, hasPasscode ? "Change Passcode" : "Create Security Passcode"), /* @__PURE__ */ React28.createElement("button", { onClick: closePasscodeModal, disabled: isPasscodeSubmitting, className: "text-stone-400 hover:text-black transition-colors outline-none disabled:opacity-50" }, /* @__PURE__ */ React28.createElement(HugeiconsIcon21, { icon: CancelCircleIcon8, size: 18 }))), /* @__PURE__ */ React28.createElement("div", { className: "p-6" }, isPasscodeLoading ? /* @__PURE__ */ React28.createElement("div", { className: "flex flex-col items-center justify-center py-10" }, /* @__PURE__ */ React28.createElement(HugeiconsIcon21, { icon: Loading03Icon12, size: 28, className: "animate-spin text-stone-400 mb-4" })) : /* @__PURE__ */ React28.createElement("form", { onSubmit: handlePasscodeSubmit, className: "flex flex-col gap-6" }, hasPasscode && /* @__PURE__ */ React28.createElement(
3104
+ ))), isPasscodeModalOpen && /* @__PURE__ */ React28.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React28.createElement("div", { className: "absolute inset-0 bg-black/40", onClick: closePasscodeModal }), /* @__PURE__ */ React28.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__ */ React28.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, /* @__PURE__ */ React28.createElement("h3", { className: "text-sm text-black tracking-tight" }, hasPasscode ? "Change Passcode" : "Create Security Passcode"), /* @__PURE__ */ React28.createElement("button", { onClick: closePasscodeModal, disabled: isPasscodeSubmitting, className: "text-stone-400 hover:text-black transition-colors outline-none disabled:opacity-50" }, /* @__PURE__ */ React28.createElement(HugeiconsIcon21, { icon: CancelCircleIcon9, size: 18 }))), /* @__PURE__ */ React28.createElement("div", { className: "p-6" }, isPasscodeLoading ? /* @__PURE__ */ React28.createElement("div", { className: "flex flex-col items-center justify-center py-10" }, /* @__PURE__ */ React28.createElement(HugeiconsIcon21, { icon: Loading03Icon12, size: 28, className: "animate-spin text-stone-400 mb-4" })) : /* @__PURE__ */ React28.createElement("form", { onSubmit: handlePasscodeSubmit, className: "flex flex-col gap-6" }, hasPasscode && /* @__PURE__ */ React28.createElement(
3105
3105
  TextInput,
3106
3106
  {
3107
3107
  type: "password",
@@ -3143,7 +3143,7 @@ var UniversalSecurityPage = ({
3143
3143
  className: "w-full"
3144
3144
  },
3145
3145
  hasPasscode ? "Update Passcode" : "Set Passcode"
3146
- )))))), showPasskeyModal && /* @__PURE__ */ React28.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React28.createElement("div", { className: "absolute inset-0 bg-black/40 ", onClick: () => !isSubmitting && setShowPasskeyModal(false) }), /* @__PURE__ */ React28.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__ */ React28.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, /* @__PURE__ */ React28.createElement("h3", { className: "text-sm text-black tracking-tight" }, "Enable Passkey"), /* @__PURE__ */ React28.createElement("button", { onClick: () => !isSubmitting && setShowPasskeyModal(false), className: "text-stone-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React28.createElement(HugeiconsIcon21, { icon: CancelCircleIcon8, size: 18 }))), /* @__PURE__ */ React28.createElement("div", { className: "p-6 text-center" }, /* @__PURE__ */ React28.createElement("p", { className: "text-sm text-stone-500 mb-8 leading-relaxed" }, "Use your device's biometrics (Face ID, Touch ID, or PIN) to securely sign into your account without needing a password."), /* @__PURE__ */ React28.createElement(
3146
+ )))))), showPasskeyModal && /* @__PURE__ */ React28.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React28.createElement("div", { className: "absolute inset-0 bg-black/40 ", onClick: () => !isSubmitting && setShowPasskeyModal(false) }), /* @__PURE__ */ React28.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__ */ React28.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, /* @__PURE__ */ React28.createElement("h3", { className: "text-sm text-black tracking-tight" }, "Enable Passkey"), /* @__PURE__ */ React28.createElement("button", { onClick: () => !isSubmitting && setShowPasskeyModal(false), className: "text-stone-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React28.createElement(HugeiconsIcon21, { icon: CancelCircleIcon9, size: 18 }))), /* @__PURE__ */ React28.createElement("div", { className: "p-6 text-center" }, /* @__PURE__ */ React28.createElement("p", { className: "text-sm text-stone-500 mb-8 leading-relaxed" }, "Use your device's biometrics (Face ID, Touch ID, or PIN) to securely sign into your account without needing a password."), /* @__PURE__ */ React28.createElement(
3147
3147
  ThreeDActionButton,
3148
3148
  {
3149
3149
  onClick: submitEnablePasskey,
@@ -4356,7 +4356,7 @@ import { useWindowSize as useWindowSize2 } from "react-use";
4356
4356
  import { HugeiconsIcon as HugeiconsIcon32 } from "@hugeicons/react";
4357
4357
  import {
4358
4358
  ArrowLeft01Icon as ArrowLeft01Icon13,
4359
- CancelCircleIcon as CancelCircleIcon9,
4359
+ CancelCircleIcon as CancelCircleIcon11,
4360
4360
  Loading03Icon as Loading03Icon20
4361
4361
  } from "@hugeicons/core-free-icons";
4362
4362
  var CheckIcon2 = ({ className = "" }) => /* @__PURE__ */ React46.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__ */ React46.createElement("circle", { cx: "12", cy: "12", r: "10", fill: "black" }), /* @__PURE__ */ React46.createElement("path", { d: "M8 12L11 15L16 9", stroke: "white", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }));
@@ -4511,7 +4511,7 @@ var UniversalCardActionPage = ({
4511
4511
  onClick: () => setSelectedTier(null),
4512
4512
  className: "text-stone-400 hover:text-black transition-colors outline-none disabled:opacity-50"
4513
4513
  },
4514
- /* @__PURE__ */ React46.createElement(HugeiconsIcon32, { icon: CancelCircleIcon9, size: 18 })
4514
+ /* @__PURE__ */ React46.createElement(HugeiconsIcon32, { icon: CancelCircleIcon11, size: 18 })
4515
4515
  )), /* @__PURE__ */ React46.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-6 relative z-10" }, /* @__PURE__ */ React46.createElement("div", { className: "flex flex-col items-center justify-center mb-6" }, /* @__PURE__ */ React46.createElement("p", { className: "text-2xl text-black mb-1" }, selectedTier.priceUSD === 0 ? "Free" : `$${selectedTier.priceUSD.toFixed(2)}`), /* @__PURE__ */ React46.createElement("span", { className: `text-xs tracking-widest px-4 py-1.5 rounded-full bg-stone-100 text-black mt-1` }, formatTierName(selectedTier.tierName), " ", formatTierName(cardType))), /* @__PURE__ */ React46.createElement("div", { className: "grid grid-cols-1 gap-y-6 mb-8 mt-4" }, /* @__PURE__ */ React46.createElement("div", null, /* @__PURE__ */ React46.createElement("span", { className: "text-xs tracking-[0.2em] text-stone-400 block mb-1" }, "Action"), /* @__PURE__ */ React46.createElement("span", { className: "text-sm text-black " }, intendedAction === "upgrade" ? `Upgrade to ${formatTierName(selectedTier.tierName)}` : `Pre-order Card`)), intendedAction === "pre_order" && selectedTier.priceUSD > 0 && /* @__PURE__ */ React46.createElement("div", null, /* @__PURE__ */ React46.createElement("span", { className: "text-xs tracking-[0.2em] text-stone-400 block mb-1" }, "Payment Notice"), /* @__PURE__ */ React46.createElement("span", { className: "text-xs text-stone-600 leading-relaxed block" }, "By confirming, $", selectedTier.priceUSD.toFixed(2), " will be securely deducted from your USD asset balance to guarantee your order."))), /* @__PURE__ */ React46.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ React46.createElement(
4516
4516
  ThreeDActionButton,
4517
4517
  {
@@ -4546,7 +4546,7 @@ var UniversalCardActionPage = ({
4546
4546
  // src/components/PinDialerBottomSheet.tsx
4547
4547
  import React47, { useState as useState33, useEffect as useEffect18 } from "react";
4548
4548
  import { HugeiconsIcon as HugeiconsIcon33 } from "@hugeicons/react";
4549
- import { CancelCircleIcon as CancelCircleIcon10 } from "@hugeicons/core-free-icons";
4549
+ import { CancelCircleIcon as CancelCircleIcon12 } from "@hugeicons/core-free-icons";
4550
4550
  var PinDialerBottomSheet = ({
4551
4551
  isOpen,
4552
4552
  title = "Action Required",
@@ -4581,7 +4581,7 @@ var PinDialerBottomSheet = ({
4581
4581
  disabled: isVerifying,
4582
4582
  className: "text-stone-400 hover:text-black transition-colors outline-none disabled:opacity-50"
4583
4583
  },
4584
- /* @__PURE__ */ React47.createElement(HugeiconsIcon33, { icon: CancelCircleIcon10, size: 20 })
4584
+ /* @__PURE__ */ React47.createElement(HugeiconsIcon33, { icon: CancelCircleIcon12, size: 20 })
4585
4585
  )), /* @__PURE__ */ React47.createElement("div", { className: "flex flex-col px-6 pb-6 pt-2 relative" }, /* @__PURE__ */ React47.createElement("form", { onSubmit: handleSubmit, className: "flex flex-col gap-6" }, /* @__PURE__ */ React47.createElement(
4586
4586
  TextInput,
4587
4587
  {
@@ -4887,18 +4887,14 @@ var UniversalBuyCryptoPage = ({
4887
4887
  };
4888
4888
 
4889
4889
  // src/components/UniversalHuddlesPage.tsx
4890
- import React49, { useState as useState35 } from "react";
4890
+ import React49 from "react";
4891
4891
  import { HugeiconsIcon as HugeiconsIcon35 } from "@hugeicons/react";
4892
4892
  import {
4893
4893
  ArrowLeft01Icon as ArrowLeft01Icon15,
4894
4894
  ArrowRight01Icon as ArrowRight01Icon10,
4895
4895
  Loading03Icon as Loading03Icon22
4896
4896
  } from "@hugeicons/core-free-icons";
4897
- var HuddleAvatar = ({ src, status, sizeClass = "w-10 h-10" }) => {
4898
- const [loaded, setLoaded] = useState35(false);
4899
- const [error, setError] = useState35(false);
4900
- const defaultAvatar = "https://storage.googleapis.com/retina-cloud-v2/assets/images/default_a.avif";
4901
- const finalSrc = error || !src ? defaultAvatar : src;
4897
+ var HuddleAvatar = ({ timeString, status, sizeClass = "w-10 h-10" }) => {
4902
4898
  const getStatusColor = () => {
4903
4899
  switch (status?.toUpperCase()) {
4904
4900
  case "SCHEDULED":
@@ -4913,16 +4909,16 @@ var HuddleAvatar = ({ src, status, sizeClass = "w-10 h-10" }) => {
4913
4909
  return "bg-stone-200";
4914
4910
  }
4915
4911
  };
4916
- return /* @__PURE__ */ React49.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ React49.createElement("div", { className: "w-full h-full rounded-lg bg-stone-100 flex items-center justify-center overflow-hidden" }, !loaded && !error && /* @__PURE__ */ React49.createElement(HugeiconsIcon35, { icon: Loading03Icon22, className: "animate-spin text-stone-400 absolute", size: 14 }), /* @__PURE__ */ React49.createElement(
4917
- "img",
4918
- {
4919
- src: finalSrc,
4920
- alt: "Huddle Avatar",
4921
- className: `w-full h-full object-cover transition-opacity duration-300 ${loaded || error ? "opacity-100" : "opacity-0"}`,
4922
- onLoad: () => setLoaded(true),
4923
- onError: () => setError(true)
4912
+ let day = "--";
4913
+ let month = "---";
4914
+ if (timeString) {
4915
+ const parts = timeString.split(" ");
4916
+ if (parts.length >= 2) {
4917
+ day = parts[0];
4918
+ month = parts[1].substring(0, 3).toUpperCase();
4924
4919
  }
4925
- )), /* @__PURE__ */ React49.createElement("div", { className: `absolute -bottom-1 -right-1 w-3.5 h-3.5 rounded-full border-2 border-white z-10 ${getStatusColor()}` }));
4920
+ }
4921
+ return /* @__PURE__ */ React49.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ React49.createElement("div", { className: "w-full h-full rounded-lg bg-white flex flex-col items-center justify-center overflow-hidden" }, /* @__PURE__ */ React49.createElement("span", { className: "text-[9px] tracking-wider leading-tight", style: { color: "#d97757" } }, month), /* @__PURE__ */ React49.createElement("span", { className: "text-sm text-black leading-tight" }, day)), /* @__PURE__ */ React49.createElement("div", { className: `absolute -bottom-1 -right-1 w-3.5 h-3.5 rounded-full border-2 border-white z-10 ${getStatusColor()}` }));
4926
4922
  };
4927
4923
  var PageSpinner6 = () => /* @__PURE__ */ React49.createElement("div", { className: "flex justify-center items-center py-12" }, /* @__PURE__ */ React49.createElement(HugeiconsIcon35, { icon: Loading03Icon22, size: 32, className: "animate-spin mb-4 text-black" }));
4928
4924
  var UniversalHuddlesPage = ({
@@ -4950,7 +4946,7 @@ var UniversalHuddlesPage = ({
4950
4946
  onClick: () => onHuddleClick(huddle.id),
4951
4947
  className: "flex flex-row items-center gap-4 py-2 hover:bg-stone-50 transition-colors cursor-pointer group min-w-0 px-3 -mx-3 rounded-xl"
4952
4948
  },
4953
- /* @__PURE__ */ React49.createElement(HuddleAvatar, { src: huddle.imageUrl, status: huddle.status }),
4949
+ /* @__PURE__ */ React49.createElement(HuddleAvatar, { timeString: huddle.timeString, status: huddle.status }),
4954
4950
  /* @__PURE__ */ React49.createElement("div", { className: "flex flex-col min-w-0 flex-1" }, /* @__PURE__ */ React49.createElement("p", { className: "text-sm text-black tracking-tight truncate" }, huddle.name), /* @__PURE__ */ React49.createElement("span", { className: "text-xs text-stone-500 truncate block mt-0.5" }, huddle.timeString)),
4955
4951
  /* @__PURE__ */ React49.createElement(HugeiconsIcon35, { icon: ArrowRight01Icon10, size: 14, className: "shrink-0 text-stone-400" })
4956
4952
  ))), /* @__PURE__ */ React49.createElement("div", { className: "flex items-center justify-between pt-6 mt-2 " }, /* @__PURE__ */ React49.createElement("span", { className: "text-xs text-stone-400 tracking-[0.2em]" }, "Page ", currentPage, " of ", totalPages === 0 ? 1 : totalPages), /* @__PURE__ */ React49.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React49.createElement(
@@ -4973,7 +4969,7 @@ var UniversalHuddlesPage = ({
4973
4969
  };
4974
4970
 
4975
4971
  // src/components/UniversalMembersPage.tsx
4976
- import React50, { useState as useState36, useEffect as useEffect20, useRef as useRef13 } from "react";
4972
+ import React50, { useState as useState35, useEffect as useEffect20, useRef as useRef13 } from "react";
4977
4973
  import { HugeiconsIcon as HugeiconsIcon36 } from "@hugeicons/react";
4978
4974
  import toast12 from "react-hot-toast";
4979
4975
  import {
@@ -4985,8 +4981,8 @@ import {
4985
4981
  ListSettingIcon as ListSettingIcon2
4986
4982
  } from "@hugeicons/core-free-icons";
4987
4983
  var MemberAvatar2 = ({ src, status }) => {
4988
- const [loaded, setLoaded] = useState36(false);
4989
- const [error, setError] = useState36(false);
4984
+ const [loaded, setLoaded] = useState35(false);
4985
+ const [error, setError] = useState35(false);
4990
4986
  const defaultAvatar = "https://storage.googleapis.com/retina-cloud-v2/assets/images/avatar.avif";
4991
4987
  const finalSrc = error || !src ? defaultAvatar : src;
4992
4988
  const getStatusColor = () => {
@@ -5034,16 +5030,16 @@ var UniversalMembersPage = ({
5034
5030
  onRemoveMember,
5035
5031
  onInviteMember
5036
5032
  }) => {
5037
- const [expandedId, setExpandedId] = useState36(null);
5038
- const [memberToRemove, setMemberToRemove] = useState36(null);
5039
- const [isRemoving, setIsRemoving] = useState36(false);
5040
- const [isInviteMode, setIsInviteMode] = useState36(false);
5041
- const [inviteEmail, setInviteEmail] = useState36("");
5042
- const [isInviting, setIsInviting] = useState36(false);
5043
- const [localSearchQuery, setLocalSearchQuery] = useState36(searchQuery);
5044
- const [isTyping, setIsTyping] = useState36(false);
5045
- const [isStatusModalOpen, setIsStatusModalOpen] = useState36(false);
5046
- const [isRoleModalOpen, setIsRoleModalOpen] = useState36(false);
5033
+ const [expandedId, setExpandedId] = useState35(null);
5034
+ const [memberToRemove, setMemberToRemove] = useState35(null);
5035
+ const [isRemoving, setIsRemoving] = useState35(false);
5036
+ const [isInviteMode, setIsInviteMode] = useState35(false);
5037
+ const [inviteEmail, setInviteEmail] = useState35("");
5038
+ const [isInviting, setIsInviting] = useState35(false);
5039
+ const [localSearchQuery, setLocalSearchQuery] = useState35(searchQuery);
5040
+ const [isTyping, setIsTyping] = useState35(false);
5041
+ const [isStatusModalOpen, setIsStatusModalOpen] = useState35(false);
5042
+ const [isRoleModalOpen, setIsRoleModalOpen] = useState35(false);
5047
5043
  const statusDropdownRef = useRef13(null);
5048
5044
  const roleDropdownRef = useRef13(null);
5049
5045
  const cleanEmailId = (val) => val.toLowerCase().replace(/[^a-z0-9@._-]/g, "");
@@ -5239,7 +5235,7 @@ var UniversalMembersPage = ({
5239
5235
  };
5240
5236
 
5241
5237
  // src/components/UniversalHome2.tsx
5242
- import React51, { useState as useState37 } from "react";
5238
+ import React51, { useState as useState36 } from "react";
5243
5239
  import { useRouter as useRouter3 } from "next/navigation";
5244
5240
  import { HugeiconsIcon as HugeiconsIcon37 } from "@hugeicons/react";
5245
5241
  import toast13 from "react-hot-toast";
@@ -5248,15 +5244,15 @@ import {
5248
5244
  Notification01Icon as Notification01Icon2,
5249
5245
  ArrowLeft01Icon as ArrowLeft01Icon17,
5250
5246
  ArrowRight01Icon as ArrowRight01Icon12,
5251
- CancelCircleIcon as CancelCircleIcon11,
5247
+ CancelCircleIcon as CancelCircleIcon13,
5252
5248
  ArrowUpRight01Icon as ArrowUpRight01Icon3,
5253
5249
  Robot01Icon,
5254
5250
  Logout01Icon,
5255
5251
  Tick02Icon as Tick02Icon2
5256
5252
  } from "@hugeicons/core-free-icons";
5257
5253
  var OrgAvatar = ({ src, sizeClass = "w-10 h-10" }) => {
5258
- const [loaded, setLoaded] = useState37(false);
5259
- const [error, setError] = useState37(false);
5254
+ const [loaded, setLoaded] = useState36(false);
5255
+ const [error, setError] = useState36(false);
5260
5256
  const defaultAvatar = "https://storage.googleapis.com/retina-cloud-v2/assets/images/office_a.avif";
5261
5257
  const finalSrc = error || !src ? defaultAvatar : src;
5262
5258
  return /* @__PURE__ */ React51.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ React51.createElement("div", { className: "w-full h-full rounded-lg bg-stone-100 flex items-center justify-center overflow-hidden" }, !loaded && !error && /* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: Loading03Icon24, className: "animate-spin text-stone-400 absolute", size: 14 }), /* @__PURE__ */ React51.createElement(
@@ -5289,13 +5285,13 @@ var UniversalHome2 = ({
5289
5285
  huddlesProps,
5290
5286
  onLogout
5291
5287
  }) => {
5292
- const [isAvatarLoaded, setIsAvatarLoaded] = useState37(false);
5293
- const [showNotifDialog, setShowNotifDialog] = useState37(false);
5294
- const [showOrgSwitcher, setShowOrgSwitcher] = useState37(false);
5295
- const [selectedNotif, setSelectedNotif] = useState37(null);
5296
- const [isResolving, setIsResolving] = useState37(false);
5297
- const [showLogoutConfirm, setShowLogoutConfirm] = useState37(false);
5298
- const [isLoggingOut, setIsLoggingOut] = useState37(false);
5288
+ const [isAvatarLoaded, setIsAvatarLoaded] = useState36(false);
5289
+ const [showNotifDialog, setShowNotifDialog] = useState36(false);
5290
+ const [showOrgSwitcher, setShowOrgSwitcher] = useState36(false);
5291
+ const [selectedNotif, setSelectedNotif] = useState36(null);
5292
+ const [isResolving, setIsResolving] = useState36(false);
5293
+ const [showLogoutConfirm, setShowLogoutConfirm] = useState36(false);
5294
+ const [isLoggingOut, setIsLoggingOut] = useState36(false);
5299
5295
  const router = useRouter3();
5300
5296
  const fallbackAvatarUrl = "https://storage.googleapis.com/retina-cloud-v2/assets/images/avatar.avif";
5301
5297
  const finalAvatarSrc = avatarSrc || fallbackAvatarUrl;
@@ -5396,7 +5392,7 @@ var UniversalHome2 = ({
5396
5392
  {
5397
5393
  ...huddlesProps
5398
5394
  }
5399
- )), showOrgSwitcher && /* @__PURE__ */ React51.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React51.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setShowOrgSwitcher(false) }), /* @__PURE__ */ React51.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200 max-h-[80vh] h-auto" }, /* @__PURE__ */ React51.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, /* @__PURE__ */ React51.createElement("h3", { className: "text-sm text-black tracking-tight" }, "Switch Workspace"), /* @__PURE__ */ React51.createElement("button", { onClick: () => setShowOrgSwitcher(false), className: "text-stone-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: CancelCircleIcon11, size: 18 }))), /* @__PURE__ */ React51.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-2" }, /* @__PURE__ */ React51.createElement("div", { className: "flex flex-col" }, organizations?.length === 0 ? /* @__PURE__ */ React51.createElement("div", { className: "p-8 text-center text-xs text-stone-400" }, "No organizations found.") : organizations?.map((org) => /* @__PURE__ */ React51.createElement(
5395
+ )), showOrgSwitcher && /* @__PURE__ */ React51.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React51.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setShowOrgSwitcher(false) }), /* @__PURE__ */ React51.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200 max-h-[80vh] h-auto" }, /* @__PURE__ */ React51.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, /* @__PURE__ */ React51.createElement("h3", { className: "text-sm text-black tracking-tight" }, "Switch Workspace"), /* @__PURE__ */ React51.createElement("button", { onClick: () => setShowOrgSwitcher(false), className: "text-stone-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: CancelCircleIcon13, size: 18 }))), /* @__PURE__ */ React51.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-2" }, /* @__PURE__ */ React51.createElement("div", { className: "flex flex-col" }, organizations?.length === 0 ? /* @__PURE__ */ React51.createElement("div", { className: "p-8 text-center text-xs text-stone-400" }, "No organizations found.") : organizations?.map((org) => /* @__PURE__ */ React51.createElement(
5400
5396
  "button",
5401
5397
  {
5402
5398
  key: org.id,
@@ -5420,7 +5416,7 @@ var UniversalHome2 = ({
5420
5416
  },
5421
5417
  /* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: Logout01Icon, size: 15 }),
5422
5418
  "Log Out"
5423
- )))), showNotifDialog && /* @__PURE__ */ React51.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React51.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setShowNotifDialog(false) }), /* @__PURE__ */ React51.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200 max-h-[80vh] h-auto" }, /* @__PURE__ */ React51.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, selectedNotif ? /* @__PURE__ */ React51.createElement("button", { onClick: () => setSelectedNotif(null), disabled: isResolving, className: "text-[#d97757] hover:text-[#d97757] transition-colors outline-none flex items-center gap-2 text-xs tracking-widest disabled:opacity-50" }, /* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: ArrowLeft01Icon17, size: 14 }), " Back") : /* @__PURE__ */ React51.createElement("h3", { className: "text-sm text-black tracking-tight flex items-center gap-2" }, "Notifications"), /* @__PURE__ */ React51.createElement("button", { onClick: () => setShowNotifDialog(false), disabled: isResolving, className: "text-stone-400 hover:text-black transition-colors outline-none disabled:opacity-50" }, /* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: CancelCircleIcon11, size: 18 }))), /* @__PURE__ */ React51.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-2 relative" }, isNotifsLoading && !selectedNotif && /* @__PURE__ */ React51.createElement("div", { className: "absolute inset-0 z-10 flex items-center justify-center" }, /* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: Loading03Icon24, size: 28, className: "animate-spin text-black" })), selectedNotif ? /* @__PURE__ */ React51.createElement("div", { className: "p-4 text-left" }, selectedNotif.type === "HUDDLE_INVITE" && selectedNotif.meta_json?.action === "RESOLVE_INVITE" && selectedNotif.meta_json?.completed ? /* @__PURE__ */ React51.createElement("div", { className: "mb-2" }, /* @__PURE__ */ React51.createElement("span", { className: "inline-flex items-center gap-1.5 px-3 py-1 rounded-full bg-emerald-50 text-emerald-600 text-xs tracking-wide" }, /* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: Tick02Icon2, size: 12 }), " Action Completed")) : /* @__PURE__ */ React51.createElement("h4", { className: "text-sm text-black mb-1" }, selectedNotif.title), /* @__PURE__ */ React51.createElement("span", { className: "text-xs text-stone-400 tracking-widest mb-4 block" }, formatNotifDate(selectedNotif.createdAt)), /* @__PURE__ */ React51.createElement("p", { className: "text-xs text-stone-600 leading-relaxed whitespace-pre-wrap" }, selectedNotif.message), selectedNotif.type === "HUDDLE_INVITE" && selectedNotif.meta_json?.action === "RESOLVE_INVITE" && /* @__PURE__ */ React51.createElement("div", { className: `mt-8 flex gap-3 pt-6 ${selectedNotif.meta_json?.completed ? "opacity-40 pointer-events-none cursor-not-allowed" : ""}` }, /* @__PURE__ */ React51.createElement(
5419
+ )))), showNotifDialog && /* @__PURE__ */ React51.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React51.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setShowNotifDialog(false) }), /* @__PURE__ */ React51.createElement("div", { className: "relative w-full max-w-sm bg-white rounded-2xl flex flex-col overflow-hidden shadow-2xl animate-in zoom-in-95 duration-200 max-h-[80vh] h-auto" }, /* @__PURE__ */ React51.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, selectedNotif ? /* @__PURE__ */ React51.createElement("button", { onClick: () => setSelectedNotif(null), disabled: isResolving, className: "text-[#d97757] hover:text-[#d97757] transition-colors outline-none flex items-center gap-2 text-xs tracking-widest disabled:opacity-50" }, /* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: ArrowLeft01Icon17, size: 14 }), " Back") : /* @__PURE__ */ React51.createElement("h3", { className: "text-sm text-black tracking-tight flex items-center gap-2" }, "Notifications"), /* @__PURE__ */ React51.createElement("button", { onClick: () => setShowNotifDialog(false), disabled: isResolving, className: "text-stone-400 hover:text-black transition-colors outline-none disabled:opacity-50" }, /* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: CancelCircleIcon13, size: 18 }))), /* @__PURE__ */ React51.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-2 relative" }, isNotifsLoading && !selectedNotif && /* @__PURE__ */ React51.createElement("div", { className: "absolute inset-0 z-10 flex items-center justify-center" }, /* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: Loading03Icon24, size: 28, className: "animate-spin text-black" })), selectedNotif ? /* @__PURE__ */ React51.createElement("div", { className: "p-4 text-left" }, selectedNotif.type === "HUDDLE_INVITE" && selectedNotif.meta_json?.action === "RESOLVE_INVITE" && selectedNotif.meta_json?.completed ? /* @__PURE__ */ React51.createElement("div", { className: "mb-2" }, /* @__PURE__ */ React51.createElement("span", { className: "inline-flex items-center gap-1.5 px-3 py-1 rounded-full bg-emerald-50 text-emerald-600 text-xs tracking-wide" }, /* @__PURE__ */ React51.createElement(HugeiconsIcon37, { icon: Tick02Icon2, size: 12 }), " Action Completed")) : /* @__PURE__ */ React51.createElement("h4", { className: "text-sm text-black mb-1" }, selectedNotif.title), /* @__PURE__ */ React51.createElement("span", { className: "text-xs text-stone-400 tracking-widest mb-4 block" }, formatNotifDate(selectedNotif.createdAt)), /* @__PURE__ */ React51.createElement("p", { className: "text-xs text-stone-600 leading-relaxed whitespace-pre-wrap" }, selectedNotif.message), selectedNotif.type === "HUDDLE_INVITE" && selectedNotif.meta_json?.action === "RESOLVE_INVITE" && /* @__PURE__ */ React51.createElement("div", { className: `mt-8 flex gap-3 pt-6 ${selectedNotif.meta_json?.completed ? "opacity-40 pointer-events-none cursor-not-allowed" : ""}` }, /* @__PURE__ */ React51.createElement(
5424
5420
  "button",
5425
5421
  {
5426
5422
  onClick: () => handleResolve("ACCEPTED"),
@@ -5468,7 +5464,7 @@ var UniversalHome2 = ({
5468
5464
  };
5469
5465
 
5470
5466
  // src/components/UniversalSettings.tsx
5471
- import React52, { useState as useState38, useEffect as useEffect21, useRef as useRef14 } from "react";
5467
+ import React52, { useState as useState37, useEffect as useEffect21, useRef as useRef14 } from "react";
5472
5468
  import toast14 from "react-hot-toast";
5473
5469
  import { HugeiconsIcon as HugeiconsIcon38 } from "@hugeicons/react";
5474
5470
  import {
@@ -5484,8 +5480,8 @@ import {
5484
5480
  CloudUploadIcon
5485
5481
  } from "@hugeicons/core-free-icons";
5486
5482
  var MemberAvatar3 = ({ src, status, sizeClass = "w-10 h-10" }) => {
5487
- const [loaded, setLoaded] = useState38(false);
5488
- const [error, setError] = useState38(false);
5483
+ const [loaded, setLoaded] = useState37(false);
5484
+ const [error, setError] = useState37(false);
5489
5485
  const defaultAvatar = "https://storage.googleapis.com/retina-cloud-v2/assets/images/avatar.avif";
5490
5486
  const finalSrc = error || !src ? defaultAvatar : src;
5491
5487
  const getStatusColor = () => {
@@ -5505,8 +5501,8 @@ var MemberAvatar3 = ({ src, status, sizeClass = "w-10 h-10" }) => {
5505
5501
  return /* @__PURE__ */ React52.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ React52.createElement("div", { className: "w-full h-full rounded-lg bg-stone-100 flex items-center justify-center overflow-hidden" }, !loaded && !error && /* @__PURE__ */ React52.createElement(HugeiconsIcon38, { icon: Loading03Icon25, className: "animate-spin text-stone-400 absolute", size: 14 }), /* @__PURE__ */ React52.createElement("img", { src: finalSrc, alt: "Member", className: `w-full h-full object-cover transition-opacity duration-300 ${loaded || error ? "opacity-100" : "opacity-0"}`, onLoad: () => setLoaded(true), onError: () => setError(true) })), /* @__PURE__ */ React52.createElement("div", { className: `absolute -bottom-1 -right-1 w-3.5 h-3.5 rounded-full border-2 border-white z-10 ${getStatusColor()}` }));
5506
5502
  };
5507
5503
  var OrgAvatar2 = ({ src, sizeClass = "w-10 h-10" }) => {
5508
- const [loaded, setLoaded] = useState38(false);
5509
- const [error, setError] = useState38(false);
5504
+ const [loaded, setLoaded] = useState37(false);
5505
+ const [error, setError] = useState37(false);
5510
5506
  const defaultAvatar = "https://storage.googleapis.com/retina-cloud-v2/assets/images/office_a.avif";
5511
5507
  const finalSrc = error || !src ? defaultAvatar : src;
5512
5508
  return /* @__PURE__ */ React52.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ React52.createElement("div", { className: "w-full h-full rounded-lg bg-stone-100 flex items-center justify-center overflow-hidden" }, !loaded && !error && /* @__PURE__ */ React52.createElement(HugeiconsIcon38, { icon: Loading03Icon25, className: "animate-spin text-stone-400 absolute", size: 14 }), /* @__PURE__ */ React52.createElement(
@@ -5566,38 +5562,38 @@ var UniversalSettings = ({
5566
5562
  const isOrg = accountType === "ORGANIZATION";
5567
5563
  const safeRole = String(userRole || "").toUpperCase().trim();
5568
5564
  const canManage = ["ADMIN", "MANAGER", "OWNER"].includes(safeRole);
5569
- const [activeTab, setActiveTab] = useState38(isOrg ? "MEMBERS" : "ACCOUNT");
5570
- const [expandedId, setExpandedId] = useState38(null);
5571
- const [memberToRemove, setMemberToRemove] = useState38(null);
5572
- const [isRemoving, setIsRemoving] = useState38(false);
5573
- const [isInviteMode, setIsInviteMode] = useState38(false);
5574
- const [inviteEmail, setInviteEmail] = useState38("");
5575
- const [isInviting, setIsInviting] = useState38(false);
5576
- const [localSearchQuery, setLocalSearchQuery] = useState38(membersSearchQuery);
5577
- const [isTyping, setIsTyping] = useState38(false);
5565
+ const [activeTab, setActiveTab] = useState37(isOrg ? "MEMBERS" : "ACCOUNT");
5566
+ const [expandedId, setExpandedId] = useState37(null);
5567
+ const [memberToRemove, setMemberToRemove] = useState37(null);
5568
+ const [isRemoving, setIsRemoving] = useState37(false);
5569
+ const [isInviteMode, setIsInviteMode] = useState37(false);
5570
+ const [inviteEmail, setInviteEmail] = useState37("");
5571
+ const [isInviting, setIsInviting] = useState37(false);
5572
+ const [localSearchQuery, setLocalSearchQuery] = useState37(membersSearchQuery);
5573
+ const [isTyping, setIsTyping] = useState37(false);
5578
5574
  const isFirstSearchMount = useRef14(true);
5579
- const [isStatusModalOpen, setIsStatusModalOpen] = useState38(false);
5580
- const [isRoleModalOpen, setIsRoleModalOpen] = useState38(false);
5581
- const [roleEditTarget, setRoleEditTarget] = useState38(null);
5582
- const [isUpdatingRole, setIsUpdatingRole] = useState38(false);
5583
- const [orgName, setOrgName] = useState38(initialOrgName);
5584
- const [orgSlug, setOrgSlug] = useState38(initialOrgSlug);
5585
- const [orgAvatarUrl, setOrgAvatarUrl] = useState38(initialOrgAvatarUrl);
5586
- const [firstName, setFirstName] = useState38("");
5587
- const [lastName, setLastName] = useState38("");
5588
- const [jobTitle, setJobTitle] = useState38(initialJobTitle);
5589
- const [description, setDescription] = useState38(initialDescription);
5590
- const [avatarUrl, setAvatarUrl] = useState38(initialAvatarUrl);
5591
- const [isCheckingSlug, setIsCheckingSlug] = useState38(false);
5592
- const [slugAvailable, setSlugAvailable] = useState38(null);
5593
- const [isSavingOrg, setIsSavingOrg] = useState38(false);
5594
- const [isSavingProfile, setIsSavingProfile] = useState38(false);
5575
+ const [isStatusModalOpen, setIsStatusModalOpen] = useState37(false);
5576
+ const [isRoleModalOpen, setIsRoleModalOpen] = useState37(false);
5577
+ const [roleEditTarget, setRoleEditTarget] = useState37(null);
5578
+ const [isUpdatingRole, setIsUpdatingRole] = useState37(false);
5579
+ const [orgName, setOrgName] = useState37(initialOrgName);
5580
+ const [orgSlug, setOrgSlug] = useState37(initialOrgSlug);
5581
+ const [orgAvatarUrl, setOrgAvatarUrl] = useState37(initialOrgAvatarUrl);
5582
+ const [firstName, setFirstName] = useState37("");
5583
+ const [lastName, setLastName] = useState37("");
5584
+ const [jobTitle, setJobTitle] = useState37(initialJobTitle);
5585
+ const [description, setDescription] = useState37(initialDescription);
5586
+ const [avatarUrl, setAvatarUrl] = useState37(initialAvatarUrl);
5587
+ const [isCheckingSlug, setIsCheckingSlug] = useState37(false);
5588
+ const [slugAvailable, setSlugAvailable] = useState37(null);
5589
+ const [isSavingOrg, setIsSavingOrg] = useState37(false);
5590
+ const [isSavingProfile, setIsSavingProfile] = useState37(false);
5595
5591
  const orgFileInputRef = useRef14(null);
5596
5592
  const userFileInputRef = useRef14(null);
5597
- const [pendingOrgAvatar, setPendingOrgAvatar] = useState38(null);
5598
- const [pendingUserAvatar, setPendingUserAvatar] = useState38(null);
5599
- const [isUploadingOrgAvatar, setIsUploadingOrgAvatar] = useState38(false);
5600
- const [isUploadingUserAvatar, setIsUploadingUserAvatar] = useState38(false);
5593
+ const [pendingOrgAvatar, setPendingOrgAvatar] = useState37(null);
5594
+ const [pendingUserAvatar, setPendingUserAvatar] = useState37(null);
5595
+ const [isUploadingOrgAvatar, setIsUploadingOrgAvatar] = useState37(false);
5596
+ const [isUploadingUserAvatar, setIsUploadingUserAvatar] = useState37(false);
5601
5597
  useEffect21(() => {
5602
5598
  setOrgName(initialOrgName || "");
5603
5599
  setOrgSlug(initialOrgSlug || "");
@@ -5844,7 +5840,7 @@ var UniversalSettings = ({
5844
5840
  };
5845
5841
 
5846
5842
  // src/components/UniversalCreateHuddle.tsx
5847
- import React53, { useState as useState39, useEffect as useEffect22, useRef as useRef15 } from "react";
5843
+ import React53, { useState as useState38, useEffect as useEffect22, useRef as useRef15 } from "react";
5848
5844
  import toast15 from "react-hot-toast";
5849
5845
  import { HugeiconsIcon as HugeiconsIcon39 } from "@hugeicons/react";
5850
5846
  import {
@@ -5859,8 +5855,8 @@ import {
5859
5855
  CircleLock02Icon as CircleLock02Icon4
5860
5856
  } from "@hugeicons/core-free-icons";
5861
5857
  var MemberAvatar4 = ({ src, sizeClass = "w-10 h-10" }) => {
5862
- const [loaded, setLoaded] = useState39(false);
5863
- const [error, setError] = useState39(false);
5858
+ const [loaded, setLoaded] = useState38(false);
5859
+ const [error, setError] = useState38(false);
5864
5860
  const defaultAvatar = "https://storage.googleapis.com/retina-cloud-v2/assets/images/avatar.avif";
5865
5861
  return /* @__PURE__ */ React53.createElement("div", { className: `relative shrink-0 ${sizeClass}` }, /* @__PURE__ */ React53.createElement("div", { className: "w-full h-full rounded-lg bg-stone-100 flex items-center justify-center overflow-hidden" }, !loaded && !error && /* @__PURE__ */ React53.createElement(HugeiconsIcon39, { icon: Loading03Icon26, className: "animate-spin text-stone-400 absolute", size: 14 }), /* @__PURE__ */ React53.createElement(
5866
5862
  "img",
@@ -5903,27 +5899,27 @@ var UniversalCreateHuddle = ({
5903
5899
  onCreateSubmit
5904
5900
  }) => {
5905
5901
  const canManage = userRole === "ADMIN" || userRole === "MANAGER" || userRole === "OWNER";
5906
- const [huddleDate, setHuddleDate] = useState39(() => {
5902
+ const [huddleDate, setHuddleDate] = useState38(() => {
5907
5903
  const d = /* @__PURE__ */ new Date();
5908
5904
  d.setHours(d.getHours() + 1, 0, 0, 0);
5909
5905
  return d;
5910
5906
  });
5911
- const [title, setTitle] = useState39("");
5912
- const [isPrivate, setIsPrivate] = useState39(false);
5913
- const [timezone, setTimezone] = useState39("UTC");
5907
+ const [title, setTitle] = useState38("");
5908
+ const [isPrivate, setIsPrivate] = useState38(false);
5909
+ const [timezone, setTimezone] = useState38("UTC");
5914
5910
  useEffect22(() => {
5915
5911
  try {
5916
5912
  setTimezone(Intl.DateTimeFormat().resolvedOptions().timeZone);
5917
5913
  } catch (e) {
5918
5914
  }
5919
5915
  }, []);
5920
- const [calendarMode, setCalendarMode] = useState39(null);
5921
- const [showTimezoneModal, setShowTimezoneModal] = useState39(false);
5922
- const [showMembersModal, setShowMembersModal] = useState39(false);
5923
- const [selectedParticipants, setSelectedParticipants] = useState39(/* @__PURE__ */ new Set());
5924
- const [isSubmitting, setIsSubmitting] = useState39(false);
5925
- const [localSearchQuery, setLocalSearchQuery] = useState39(membersSearchQuery);
5926
- const [isTyping, setIsTyping] = useState39(false);
5916
+ const [calendarMode, setCalendarMode] = useState38(null);
5917
+ const [showTimezoneModal, setShowTimezoneModal] = useState38(false);
5918
+ const [showMembersModal, setShowMembersModal] = useState38(false);
5919
+ const [selectedParticipants, setSelectedParticipants] = useState38(/* @__PURE__ */ new Set());
5920
+ const [isSubmitting, setIsSubmitting] = useState38(false);
5921
+ const [localSearchQuery, setLocalSearchQuery] = useState38(membersSearchQuery);
5922
+ const [isTyping, setIsTyping] = useState38(false);
5927
5923
  const typingTimer = useRef15(null);
5928
5924
  const handleSearchInput = (e) => {
5929
5925
  const val = e.target.value;
@@ -6084,7 +6080,7 @@ var UniversalCreateHuddle = ({
6084
6080
  };
6085
6081
 
6086
6082
  // src/components/HomeHuddleCalendar.tsx
6087
- import React54, { useState as useState40, useRef as useRef16, useEffect as useEffect23 } from "react";
6083
+ import React54, { useState as useState39, useRef as useRef16, useEffect as useEffect23 } from "react";
6088
6084
  import { useRouter as useRouter4 } from "next/navigation";
6089
6085
  import { HugeiconsIcon as HugeiconsIcon40 } from "@hugeicons/react";
6090
6086
  import {
@@ -6097,8 +6093,8 @@ import {
6097
6093
  var MONTHS2 = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
6098
6094
  var DAYS_OF_WEEK2 = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"];
6099
6095
  var HuddleAvatar2 = ({ src, status, sizeClass = "w-10 h-10" }) => {
6100
- const [loaded, setLoaded] = useState40(false);
6101
- const [error, setError] = useState40(false);
6096
+ const [loaded, setLoaded] = useState39(false);
6097
+ const [error, setError] = useState39(false);
6102
6098
  const defaultAvatar = "https://storage.googleapis.com/retina-cloud-v2/assets/images/default_a.avif";
6103
6099
  const finalSrc = error || !src ? defaultAvatar : src;
6104
6100
  const getStatusColor = () => {
@@ -6138,8 +6134,8 @@ var HomeHuddleCalendar = ({
6138
6134
  onStatusFilterChange
6139
6135
  }) => {
6140
6136
  const router = useRouter4();
6141
- const [localSearch, setLocalSearch] = useState40(searchQuery);
6142
- const [isStatusModalOpen, setIsStatusModalOpen] = useState40(false);
6137
+ const [localSearch, setLocalSearch] = useState39(searchQuery);
6138
+ const [isStatusModalOpen, setIsStatusModalOpen] = useState39(false);
6143
6139
  const typingTimer = useRef16(null);
6144
6140
  const isSearching = localSearch.trim().length > 0;
6145
6141
  useEffect23(() => {
@@ -6154,9 +6150,9 @@ var HomeHuddleCalendar = ({
6154
6150
  }, 500);
6155
6151
  };
6156
6152
  const today = /* @__PURE__ */ new Date();
6157
- const [viewMonth, setViewMonth] = useState40(today.getMonth());
6158
- const [viewYear, setViewYear] = useState40(today.getFullYear());
6159
- const [selectedDate, setSelectedDate] = useState40(new Date(today.getFullYear(), today.getMonth(), today.getDate()));
6153
+ const [viewMonth, setViewMonth] = useState39(today.getMonth());
6154
+ const [viewYear, setViewYear] = useState39(today.getFullYear());
6155
+ const [selectedDate, setSelectedDate] = useState39(new Date(today.getFullYear(), today.getMonth(), today.getDate()));
6160
6156
  const handlePrevMonth = () => {
6161
6157
  if (viewMonth === 0) {
6162
6158
  setViewMonth(11);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@retinalabsllc/zairusjs",
3
- "version": "21.0.5",
3
+ "version": "21.0.7",
4
4
  "description": "A perceptive, Ai data driven Next.js UI component library.",
5
5
  "author": "Retina Labs Company",
6
6
  "license": "MIT",