@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.
- package/dist/index.js +13 -17
- package/dist/index.mjs +117 -121
- 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/
|
|
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.
|
|
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 = ({
|
|
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
|
-
|
|
4889
|
-
|
|
4890
|
-
|
|
4891
|
-
|
|
4892
|
-
|
|
4893
|
-
|
|
4894
|
-
|
|
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
|
-
|
|
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, {
|
|
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/
|
|
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
|
-
|
|
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:
|
|
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
|
|
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:
|
|
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
|
|
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:
|
|
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
|
|
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:
|
|
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
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
|
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:
|
|
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:
|
|
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
|
|
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:
|
|
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:
|
|
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
|
|
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:
|
|
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
|
|
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:
|
|
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
|
|
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 = ({
|
|
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
|
-
|
|
4917
|
-
|
|
4918
|
-
|
|
4919
|
-
|
|
4920
|
-
|
|
4921
|
-
|
|
4922
|
-
|
|
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
|
-
|
|
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, {
|
|
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
|
|
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] =
|
|
4989
|
-
const [error, setError] =
|
|
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] =
|
|
5038
|
-
const [memberToRemove, setMemberToRemove] =
|
|
5039
|
-
const [isRemoving, setIsRemoving] =
|
|
5040
|
-
const [isInviteMode, setIsInviteMode] =
|
|
5041
|
-
const [inviteEmail, setInviteEmail] =
|
|
5042
|
-
const [isInviting, setIsInviting] =
|
|
5043
|
-
const [localSearchQuery, setLocalSearchQuery] =
|
|
5044
|
-
const [isTyping, setIsTyping] =
|
|
5045
|
-
const [isStatusModalOpen, setIsStatusModalOpen] =
|
|
5046
|
-
const [isRoleModalOpen, setIsRoleModalOpen] =
|
|
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
|
|
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
|
|
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] =
|
|
5259
|
-
const [error, setError] =
|
|
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] =
|
|
5293
|
-
const [showNotifDialog, setShowNotifDialog] =
|
|
5294
|
-
const [showOrgSwitcher, setShowOrgSwitcher] =
|
|
5295
|
-
const [selectedNotif, setSelectedNotif] =
|
|
5296
|
-
const [isResolving, setIsResolving] =
|
|
5297
|
-
const [showLogoutConfirm, setShowLogoutConfirm] =
|
|
5298
|
-
const [isLoggingOut, setIsLoggingOut] =
|
|
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:
|
|
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:
|
|
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
|
|
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] =
|
|
5488
|
-
const [error, setError] =
|
|
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] =
|
|
5509
|
-
const [error, setError] =
|
|
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] =
|
|
5570
|
-
const [expandedId, setExpandedId] =
|
|
5571
|
-
const [memberToRemove, setMemberToRemove] =
|
|
5572
|
-
const [isRemoving, setIsRemoving] =
|
|
5573
|
-
const [isInviteMode, setIsInviteMode] =
|
|
5574
|
-
const [inviteEmail, setInviteEmail] =
|
|
5575
|
-
const [isInviting, setIsInviting] =
|
|
5576
|
-
const [localSearchQuery, setLocalSearchQuery] =
|
|
5577
|
-
const [isTyping, setIsTyping] =
|
|
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] =
|
|
5580
|
-
const [isRoleModalOpen, setIsRoleModalOpen] =
|
|
5581
|
-
const [roleEditTarget, setRoleEditTarget] =
|
|
5582
|
-
const [isUpdatingRole, setIsUpdatingRole] =
|
|
5583
|
-
const [orgName, setOrgName] =
|
|
5584
|
-
const [orgSlug, setOrgSlug] =
|
|
5585
|
-
const [orgAvatarUrl, setOrgAvatarUrl] =
|
|
5586
|
-
const [firstName, setFirstName] =
|
|
5587
|
-
const [lastName, setLastName] =
|
|
5588
|
-
const [jobTitle, setJobTitle] =
|
|
5589
|
-
const [description, setDescription] =
|
|
5590
|
-
const [avatarUrl, setAvatarUrl] =
|
|
5591
|
-
const [isCheckingSlug, setIsCheckingSlug] =
|
|
5592
|
-
const [slugAvailable, setSlugAvailable] =
|
|
5593
|
-
const [isSavingOrg, setIsSavingOrg] =
|
|
5594
|
-
const [isSavingProfile, setIsSavingProfile] =
|
|
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] =
|
|
5598
|
-
const [pendingUserAvatar, setPendingUserAvatar] =
|
|
5599
|
-
const [isUploadingOrgAvatar, setIsUploadingOrgAvatar] =
|
|
5600
|
-
const [isUploadingUserAvatar, setIsUploadingUserAvatar] =
|
|
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
|
|
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] =
|
|
5863
|
-
const [error, setError] =
|
|
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] =
|
|
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] =
|
|
5912
|
-
const [isPrivate, setIsPrivate] =
|
|
5913
|
-
const [timezone, setTimezone] =
|
|
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] =
|
|
5921
|
-
const [showTimezoneModal, setShowTimezoneModal] =
|
|
5922
|
-
const [showMembersModal, setShowMembersModal] =
|
|
5923
|
-
const [selectedParticipants, setSelectedParticipants] =
|
|
5924
|
-
const [isSubmitting, setIsSubmitting] =
|
|
5925
|
-
const [localSearchQuery, setLocalSearchQuery] =
|
|
5926
|
-
const [isTyping, setIsTyping] =
|
|
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
|
|
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] =
|
|
6101
|
-
const [error, setError] =
|
|
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] =
|
|
6142
|
-
const [isStatusModalOpen, setIsStatusModalOpen] =
|
|
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] =
|
|
6158
|
-
const [viewYear, setViewYear] =
|
|
6159
|
-
const [selectedDate, setSelectedDate] =
|
|
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);
|