@retinalabsllc/zairusjs 9.0.40 → 9.0.55
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.d.mts +31 -1
- package/dist/index.d.ts +31 -1
- package/dist/index.js +299 -213
- package/dist/index.mjs +278 -190
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -64,6 +64,7 @@ __export(index_exports, {
|
|
|
64
64
|
UniversalOrganizationPage: () => UniversalOrganizationPage,
|
|
65
65
|
UniversalProfilePage: () => UniversalProfilePage,
|
|
66
66
|
UniversalProfileSettings: () => UniversalProfileSettings,
|
|
67
|
+
UniversalSidebar: () => UniversalSidebar,
|
|
67
68
|
UniversalTransactionPage: () => UniversalTransactionPage,
|
|
68
69
|
UniversalWalletPage: () => UniversalWalletPage,
|
|
69
70
|
WaitlistDialog: () => WaitlistDialog
|
|
@@ -670,8 +671,8 @@ var import_react10 = require("@hugeicons/react");
|
|
|
670
671
|
var MobileNav = ({ items }) => {
|
|
671
672
|
const pathname = (0, import_navigation3.usePathname)();
|
|
672
673
|
if (!items || items.length === 0) return null;
|
|
673
|
-
return /* @__PURE__ */ import_react9.default.createElement("div", { className: "fixed bottom-6 inset-x-0 z-100 flex justify-center pointer-events-none px-3 animate-in slide-in-from-bottom-8 fade-in duration-500" }, /* @__PURE__ */ import_react9.default.createElement("nav", { className: "pointer-events-auto w-full max-w-sm bg-white/50 backdrop-blur-xl shadow-[0_8px_30px_rgb(0,0,0,0.08)] rounded-full px-6 py-2.5 flex items-center justify-between" }, items.map((item) => {
|
|
674
|
-
const isActive = item.href === "/" ? pathname === "/" : pathname?.startsWith(item.href);
|
|
674
|
+
return /* @__PURE__ */ import_react9.default.createElement("div", { className: "fixed bottom-6 inset-x-0 z-100 flex justify-center pointer-events-none px-3 animate-in slide-in-from-bottom-8 fade-in duration-500 md:hidden" }, /* @__PURE__ */ import_react9.default.createElement("nav", { className: "pointer-events-auto w-full max-w-sm bg-white/50 backdrop-blur-xl shadow-[0_8px_30px_rgb(0,0,0,0.08)] rounded-full px-6 py-2.5 flex items-center justify-between" }, items.map((item) => {
|
|
675
|
+
const isActive = item.href === "/" || item.href === "/app" ? pathname === "/" || pathname === "/app" : pathname === item.href || pathname?.startsWith(`${item.href}/`);
|
|
675
676
|
return /* @__PURE__ */ import_react9.default.createElement(
|
|
676
677
|
import_link4.default,
|
|
677
678
|
{
|
|
@@ -1083,7 +1084,7 @@ var UniversalProfileSettings = ({
|
|
|
1083
1084
|
};
|
|
1084
1085
|
const hasChanges = firstName !== initialFirstName || lastName !== initialLastName;
|
|
1085
1086
|
const isSaveDisabled = isSubmitting || isReadOnly || !hasChanges || firstName.trim().length === 0 || lastName.trim().length === 0;
|
|
1086
|
-
return /* @__PURE__ */ import_react17.default.createElement("div", { className: "flex flex-col max-w-5xl rounded-2xl p-6
|
|
1087
|
+
return /* @__PURE__ */ import_react17.default.createElement("div", { className: "flex flex-col max-w-5xl rounded-2xl p-6 gap-8 animate-in fade-in duration-300" }, /* @__PURE__ */ import_react17.default.createElement(ManagedToaster, null), /* @__PURE__ */ import_react17.default.createElement("div", { className: "flex flex-col sm:flex-row sm:items-start justify-between gap-3 sm:gap-4" }, /* @__PURE__ */ import_react17.default.createElement("div", { className: "min-w-0" }, /* @__PURE__ */ import_react17.default.createElement("h1", { className: "text-black text-xl mb-1 truncate tracking-tight" }, "Personal Settings"), /* @__PURE__ */ import_react17.default.createElement("p", { className: "text-xs text-neutral-500 truncate" }, "Manage your personal account profile.")), isReadOnly && /* @__PURE__ */ import_react17.default.createElement("span", { className: "p-2 w-9 h-9 bg-neutral-100 text-neutral-400 rounded-full shrink-0" }, /* @__PURE__ */ import_react17.default.createElement(import_react18.HugeiconsIcon, { icon: import_core_free_icons4.CircleLock02Icon, size: 18, className: "text-current" }))), bannerProps && /* @__PURE__ */ import_react17.default.createElement(Banner, { ...bannerProps }), /* @__PURE__ */ import_react17.default.createElement("div", { className: "w-full max-w-5xl" }, /* @__PURE__ */ import_react17.default.createElement("form", { className: "flex flex-col gap-8", onSubmit: handleSave, autoComplete: "off" }, /* @__PURE__ */ import_react17.default.createElement("div", { className: "flex flex-col sm:flex-row gap-6" }, /* @__PURE__ */ import_react17.default.createElement("div", { className: "flex-1 min-w-0" }, /* @__PURE__ */ import_react17.default.createElement(
|
|
1087
1088
|
TextInput,
|
|
1088
1089
|
{
|
|
1089
1090
|
label: "First Name",
|
|
@@ -1362,17 +1363,24 @@ var UniversalTransactionPage = ({
|
|
|
1362
1363
|
setIsGeneratingReceipt(false);
|
|
1363
1364
|
}
|
|
1364
1365
|
};
|
|
1366
|
+
const handleCopyReference = async (reference) => {
|
|
1367
|
+
try {
|
|
1368
|
+
await navigator.clipboard.writeText(reference);
|
|
1369
|
+
import_react_hot_toast5.default.success("Copied");
|
|
1370
|
+
} catch {
|
|
1371
|
+
}
|
|
1372
|
+
};
|
|
1365
1373
|
const isListLoading = isLoading || isTyping;
|
|
1366
|
-
return /* @__PURE__ */ import_react23.default.createElement("div", { className: "flex flex-col gap-6 animate-in max-w-5xl fade-in duration-300" }, /* @__PURE__ */ import_react23.default.createElement(ManagedToaster, null), !hideControls && /* @__PURE__ */ import_react23.default.createElement("div", { className: "flex flex-
|
|
1374
|
+
return /* @__PURE__ */ import_react23.default.createElement("div", { className: "flex flex-col gap-6 animate-in max-w-5xl fade-in duration-300" }, /* @__PURE__ */ import_react23.default.createElement(ManagedToaster, null), !hideControls && /* @__PURE__ */ import_react23.default.createElement("div", { className: "flex flex-row flex-nowrap items-center justify-between gap-4 w-full" }, /* @__PURE__ */ import_react23.default.createElement("div", { className: "relative flex-1 min-w-0 max-w-full" }, /* @__PURE__ */ import_react23.default.createElement("div", { className: "absolute inset-y-0 left-0 pl-4 flex items-center pointer-events-none" }, /* @__PURE__ */ import_react23.default.createElement(import_react24.HugeiconsIcon, { icon: import_core_free_icons7.Search01Icon, size: 16, className: "text-neutral-400" })), /* @__PURE__ */ import_react23.default.createElement(
|
|
1367
1375
|
"input",
|
|
1368
1376
|
{
|
|
1369
1377
|
type: "text",
|
|
1370
1378
|
placeholder: "Search reference or amount...",
|
|
1371
1379
|
value: localSearchQuery,
|
|
1372
1380
|
onChange: (e) => setLocalSearchQuery(e.target.value),
|
|
1373
|
-
className: "w-full pl-10 pr-4 py-2 bg-white
|
|
1381
|
+
className: "w-full pl-10 pr-4 py-2 bg-white rounded-full text-[13px] text-black placeholder-neutral-400 outline-none transition-colors focus:border-black"
|
|
1374
1382
|
}
|
|
1375
|
-
)), /* @__PURE__ */ import_react23.default.createElement("div", { className: "flex items-center gap-3 w-auto pb-0" }, /* @__PURE__ */ import_react23.default.createElement(
|
|
1383
|
+
)), /* @__PURE__ */ import_react23.default.createElement("div", { className: "flex items-center gap-3 w-auto pb-0 shrink-0" }, /* @__PURE__ */ import_react23.default.createElement(
|
|
1376
1384
|
"button",
|
|
1377
1385
|
{
|
|
1378
1386
|
onClick: () => setIsDirectionModalOpen(true),
|
|
@@ -1395,7 +1403,7 @@ var UniversalTransactionPage = ({
|
|
|
1395
1403
|
onClick: () => setSelectedTransaction(tx),
|
|
1396
1404
|
className: "flex items-center justify-between py-4 hover:bg-neutral-50 transition-colors cursor-pointer group min-w-0 px-3 -mx-3 rounded-xl"
|
|
1397
1405
|
},
|
|
1398
|
-
/* @__PURE__ */ import_react23.default.createElement("div", { className: "flex items-center gap-4 min-w-0 flex-1" }, /* @__PURE__ */ import_react23.default.createElement("div", { className: `w-10 h-10 shrink-0 rounded-full flex items-center justify-center bg-neutral-100 text-black` }, /* @__PURE__ */ import_react23.default.createElement(import_react24.HugeiconsIcon, { icon: tx.direction === "CREDIT" ? import_core_free_icons7.ArrowDownRight01Icon : import_core_free_icons7.ArrowUpRight01Icon, size: 18 })), /* @__PURE__ */ import_react23.default.createElement("div", { className: "min-w-0 flex-1 flex flex-col gap-1" }, /* @__PURE__ */ import_react23.default.createElement("p", { className: "text-[13px] text-black truncate" }, getDisplayName(tx)), /* @__PURE__ */ import_react23.default.createElement("p", { className: `text-[
|
|
1406
|
+
/* @__PURE__ */ import_react23.default.createElement("div", { className: "flex items-center gap-4 min-w-0 flex-1" }, /* @__PURE__ */ import_react23.default.createElement("div", { className: `w-10 h-10 shrink-0 rounded-full flex items-center justify-center bg-neutral-100 text-black` }, /* @__PURE__ */ import_react23.default.createElement(import_react24.HugeiconsIcon, { icon: tx.direction === "CREDIT" ? import_core_free_icons7.ArrowDownRight01Icon : import_core_free_icons7.ArrowUpRight01Icon, size: 18 })), /* @__PURE__ */ import_react23.default.createElement("div", { className: "min-w-0 flex-1 flex flex-col gap-1" }, /* @__PURE__ */ import_react23.default.createElement("p", { className: "text-[13px] text-black truncate" }, getDisplayName(tx)), /* @__PURE__ */ import_react23.default.createElement("p", { className: `text-[12px] text-neutral-500 truncate transition-all duration-300 ${hideBalanceAmounts ? "blur-sm opacity-40 select-none" : ""}` }, tx.direction === "CREDIT" ? "+" : "-", tx.amount, " ", tx.currency))),
|
|
1399
1407
|
/* @__PURE__ */ import_react23.default.createElement("div", { className: "shrink-0 flex flex-col items-end gap-1 text-right" }, /* @__PURE__ */ import_react23.default.createElement("span", { className: "text-[11px] text-neutral-400" }, formatDate(tx.createdAt)), /* @__PURE__ */ import_react23.default.createElement("span", { className: "text-[11px] text-neutral-400 capitalize" }, tx.direction.toLowerCase()))
|
|
1400
1408
|
))), !hidePagination && /* @__PURE__ */ import_react23.default.createElement("div", { className: "flex items-center justify-between pt-6 mt-2 " }, /* @__PURE__ */ import_react23.default.createElement("span", { className: "text-[11px] text-neutral-400 tracking-[0.2em]" }, "Page ", currentPage, " of ", totalPages === 0 ? 1 : totalPages), /* @__PURE__ */ import_react23.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ import_react23.default.createElement(
|
|
1401
1409
|
"button",
|
|
@@ -1413,7 +1421,14 @@ var UniversalTransactionPage = ({
|
|
|
1413
1421
|
className: "p-2 bg-white border border-neutral-200 rounded-full text-black hover:bg-neutral-50 disabled:opacity-30 disabled:cursor-not-allowed transition-all outline-none"
|
|
1414
1422
|
},
|
|
1415
1423
|
/* @__PURE__ */ import_react23.default.createElement(import_react24.HugeiconsIcon, { icon: import_core_free_icons7.ArrowRight01Icon, size: 14 })
|
|
1416
|
-
)))))), selectedTransaction && /* @__PURE__ */ import_react23.default.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ import_react23.default.createElement("div", { className: "absolute inset-0 bg-black/40 ", onClick: () => setSelectedTransaction(null) }), /* @__PURE__ */ import_react23.default.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__ */ import_react23.default.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, /* @__PURE__ */ import_react23.default.createElement("h3", { className: "text-[15px] text-black tracking-tight" }, "Details"), /* @__PURE__ */ import_react23.default.createElement("button", { onClick: () => setSelectedTransaction(null), className: "text-neutral-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ import_react23.default.createElement(import_react24.HugeiconsIcon, { icon: import_core_free_icons7.CancelCircleIcon, size: 18 }))), /* @__PURE__ */ import_react23.default.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-6" }, /* @__PURE__ */ import_react23.default.createElement("div", { className: "flex flex-col items-center justify-center mb-4" }, /* @__PURE__ */ import_react23.default.createElement("div", { className: `w-12 h-12 rounded-full flex items-center justify-center mb-4 bg-neutral-100 text-black` }, /* @__PURE__ */ import_react23.default.createElement(import_react24.HugeiconsIcon, { icon: selectedTransaction.direction === "CREDIT" ? import_core_free_icons7.ArrowDownRight01Icon : import_core_free_icons7.ArrowUpRight01Icon, size: 20 })), /* @__PURE__ */ import_react23.default.createElement("h2", { className: `text-2xl text-black mb-2 transition-all duration-300 ${hideBalanceAmounts ? "blur-[6px] opacity-40 select-none" : ""}` }, selectedTransaction.direction === "CREDIT" ? "+" : "-", selectedTransaction.amount, " ", selectedTransaction.currency), /* @__PURE__ */ import_react23.default.createElement("span", { className: "text-[9px] tracking-widest text-neutral-500 px-4 py-1.5 rounded-full bg-neutral-50" }, selectedTransaction.status)), /* @__PURE__ */ import_react23.default.createElement("div", { className: "grid grid-cols-1 gap-y-8 gap-x-4 mb-10 mt-6" }, /* @__PURE__ */ import_react23.default.createElement("div", null, /* @__PURE__ */ import_react23.default.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Reference ID"), /* @__PURE__ */ import_react23.default.createElement("
|
|
1424
|
+
)))))), selectedTransaction && /* @__PURE__ */ import_react23.default.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ import_react23.default.createElement("div", { className: "absolute inset-0 bg-black/40 ", onClick: () => setSelectedTransaction(null) }), /* @__PURE__ */ import_react23.default.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__ */ import_react23.default.createElement("div", { className: "flex items-center justify-between p-5 shrink-0 " }, /* @__PURE__ */ import_react23.default.createElement("h3", { className: "text-[15px] text-black tracking-tight" }, "Details"), /* @__PURE__ */ import_react23.default.createElement("button", { onClick: () => setSelectedTransaction(null), className: "text-neutral-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ import_react23.default.createElement(import_react24.HugeiconsIcon, { icon: import_core_free_icons7.CancelCircleIcon, size: 18 }))), /* @__PURE__ */ import_react23.default.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-6" }, /* @__PURE__ */ import_react23.default.createElement("div", { className: "flex flex-col items-center justify-center mb-4" }, /* @__PURE__ */ import_react23.default.createElement("div", { className: `w-12 h-12 rounded-full flex items-center justify-center mb-4 bg-neutral-100 text-black` }, /* @__PURE__ */ import_react23.default.createElement(import_react24.HugeiconsIcon, { icon: selectedTransaction.direction === "CREDIT" ? import_core_free_icons7.ArrowDownRight01Icon : import_core_free_icons7.ArrowUpRight01Icon, size: 20 })), /* @__PURE__ */ import_react23.default.createElement("h2", { className: `text-2xl text-black mb-2 transition-all duration-300 ${hideBalanceAmounts ? "blur-[6px] opacity-40 select-none" : ""}` }, selectedTransaction.direction === "CREDIT" ? "+" : "-", selectedTransaction.amount, " ", selectedTransaction.currency), /* @__PURE__ */ import_react23.default.createElement("span", { className: "text-[9px] tracking-widest text-neutral-500 px-4 py-1.5 rounded-full bg-neutral-50" }, selectedTransaction.status)), /* @__PURE__ */ import_react23.default.createElement("div", { className: "grid grid-cols-1 gap-y-8 gap-x-4 mb-10 mt-6" }, /* @__PURE__ */ import_react23.default.createElement("div", null, /* @__PURE__ */ import_react23.default.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Reference ID"), /* @__PURE__ */ import_react23.default.createElement("div", { className: "flex items-center gap-2 min-w-0" }, /* @__PURE__ */ import_react23.default.createElement("span", { className: "text-[13px] text-black truncate min-w-0 block" }, selectedTransaction.reference), /* @__PURE__ */ import_react23.default.createElement(
|
|
1425
|
+
"button",
|
|
1426
|
+
{
|
|
1427
|
+
onClick: () => handleCopyReference(selectedTransaction.reference),
|
|
1428
|
+
className: "text-neutral-400 hover:text-black transition-colors outline-none"
|
|
1429
|
+
},
|
|
1430
|
+
/* @__PURE__ */ import_react23.default.createElement(import_react24.HugeiconsIcon, { icon: import_core_free_icons7.Copy01Icon, size: 14 })
|
|
1431
|
+
))), /* @__PURE__ */ import_react23.default.createElement("div", null, /* @__PURE__ */ import_react23.default.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Date & Time"), /* @__PURE__ */ import_react23.default.createElement("span", { className: "text-[13px] text-black" }, formatDate(selectedTransaction.createdAt), " at ", formatTime(selectedTransaction.createdAt))), /* @__PURE__ */ import_react23.default.createElement("div", null, /* @__PURE__ */ import_react23.default.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Transaction Type"), /* @__PURE__ */ import_react23.default.createElement("span", { className: "text-[13px] text-black capitalize" }, selectedTransaction.type.replace("_", " ").toLowerCase())), /* @__PURE__ */ import_react23.default.createElement("div", null, /* @__PURE__ */ import_react23.default.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Flow Direction"), /* @__PURE__ */ import_react23.default.createElement("span", { className: "text-[13px] text-black capitalize" }, selectedTransaction.direction.toLowerCase())), selectedTransaction.metadata?.fromAddress && selectedTransaction.metadata?.toAddress && /* @__PURE__ */ import_react23.default.createElement("div", null, /* @__PURE__ */ import_react23.default.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Transfer Route"), /* @__PURE__ */ import_react23.default.createElement("div", { className: "flex items-center gap-2 text-[13px] text-black" }, /* @__PURE__ */ import_react23.default.createElement("span", { className: "truncate " }, truncateAddress(String(selectedTransaction.metadata.fromAddress))), /* @__PURE__ */ import_react23.default.createElement("span", { className: "text-neutral-400" }, "\u2192"), /* @__PURE__ */ import_react23.default.createElement("span", { className: "truncate " }, truncateAddress(String(selectedTransaction.metadata.toAddress))))), selectedTransaction.metadata && Object.entries(selectedTransaction.metadata).map(([key, value]) => {
|
|
1417
1432
|
if (key === "fromAddress" || key === "toAddress") return null;
|
|
1418
1433
|
if (value === null || value === void 0 || typeof value === "object") return null;
|
|
1419
1434
|
const formattedKey = key.replace(/([A-Z])/g, " $1").replace(/^./, (str) => str.toUpperCase());
|
|
@@ -1535,7 +1550,7 @@ var UniversalHomeView = ({
|
|
|
1535
1550
|
className: "text-neutral-400 hover:text-black transition-colors outline-none"
|
|
1536
1551
|
},
|
|
1537
1552
|
/* @__PURE__ */ import_react25.default.createElement(import_react26.HugeiconsIcon, { icon: isBalanceHidden ? import_core_free_icons8.ViewIcon : import_core_free_icons8.ViewOffSlashIcon, size: 14 })
|
|
1538
|
-
)), /* @__PURE__ */ import_react25.default.createElement("h1", { className: `text-3xl sm:text-4xl md:text-5xl text-black tracking-tight mb-5 tabular-nums flex items-baseline transition-all duration-300 ${isBalanceHidden ? "blur-sm opacity-40 select-none" : ""}` }, /* @__PURE__ */ import_react25.default.createElement("span", { className: "text-
|
|
1553
|
+
)), /* @__PURE__ */ import_react25.default.createElement("h1", { className: `text-3xl sm:text-4xl md:text-5xl text-black tracking-tight mb-5 tabular-nums flex items-baseline transition-all duration-300 ${isBalanceHidden ? "blur-sm opacity-40 select-none" : ""}` }, /* @__PURE__ */ import_react25.default.createElement("span", { className: "text-2xl text-neutral-400 mr-1" }, balanceCurrency), intPart, /* @__PURE__ */ import_react25.default.createElement("span", { className: "text-xl sm:text-2xl text-neutral-400" }, ".", decPart)), /* @__PURE__ */ import_react25.default.createElement("div", { className: "flex items-center gap-3" }, primaryAction && /* @__PURE__ */ import_react25.default.createElement(
|
|
1539
1554
|
ThreeDActionButton,
|
|
1540
1555
|
{
|
|
1541
1556
|
onClick: primaryAction.onClick,
|
|
@@ -1725,7 +1740,7 @@ var PinDialerBottomSheet = ({
|
|
|
1725
1740
|
if (!isVerifying) onClose();
|
|
1726
1741
|
}
|
|
1727
1742
|
}
|
|
1728
|
-
), /* @__PURE__ */ import_react31.default.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__ */ import_react31.default.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, /* @__PURE__ */ import_react31.default.createElement("h3", { className: "text-[16px] text-black
|
|
1743
|
+
), /* @__PURE__ */ import_react31.default.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__ */ import_react31.default.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, /* @__PURE__ */ import_react31.default.createElement("h3", { className: "text-[16px] text-black tracking-tight" }, title), /* @__PURE__ */ import_react31.default.createElement(
|
|
1729
1744
|
"button",
|
|
1730
1745
|
{
|
|
1731
1746
|
onClick: () => {
|
|
@@ -1785,7 +1800,7 @@ var CardActionDialog = ({
|
|
|
1785
1800
|
className: "absolute inset-0 bg-black/40 animate-in fade-in duration-200",
|
|
1786
1801
|
onClick: onClose
|
|
1787
1802
|
}
|
|
1788
|
-
), /* @__PURE__ */ import_react33.default.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__ */ import_react33.default.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, /* @__PURE__ */ import_react33.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ import_react33.default.createElement(import_react34.HugeiconsIcon, { icon: import_core_free_icons12.CreditCardIcon, size: 20, className: "text-black" }), /* @__PURE__ */ import_react33.default.createElement("h3", { className: "text-[16px] text-black
|
|
1803
|
+
), /* @__PURE__ */ import_react33.default.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__ */ import_react33.default.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, /* @__PURE__ */ import_react33.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ import_react33.default.createElement(import_react34.HugeiconsIcon, { icon: import_core_free_icons12.CreditCardIcon, size: 20, className: "text-black" }), /* @__PURE__ */ import_react33.default.createElement("h3", { className: "text-[16px] text-black tracking-tight" }, title)), /* @__PURE__ */ import_react33.default.createElement(
|
|
1789
1804
|
"button",
|
|
1790
1805
|
{
|
|
1791
1806
|
onClick: onClose,
|
|
@@ -1796,7 +1811,7 @@ var CardActionDialog = ({
|
|
|
1796
1811
|
"button",
|
|
1797
1812
|
{
|
|
1798
1813
|
onClick: onProceed,
|
|
1799
|
-
className: "w-full py-3.5 bg-black text-white text-[13px]
|
|
1814
|
+
className: "w-full py-3.5 bg-black text-white text-[13px] rounded-xl hover:bg-neutral-800 transition-colors outline-none active:scale-95"
|
|
1800
1815
|
},
|
|
1801
1816
|
actionType === "ACTIVATE" ? "Activate Now" : "Create Card"
|
|
1802
1817
|
))));
|
|
@@ -1900,17 +1915,17 @@ var UniversalCardPage = ({
|
|
|
1900
1915
|
const capitalized = type.charAt(0).toUpperCase() + type.slice(1).toLowerCase();
|
|
1901
1916
|
return `${capitalized} Card`;
|
|
1902
1917
|
};
|
|
1903
|
-
const displayCardNumber = isRevealed ? activeCard.cardNumber :
|
|
1904
|
-
const displayExpiry = isRevealed ? activeCard.expiry : "
|
|
1905
|
-
const displayCvv = isRevealed ? activeCard.cvv : "
|
|
1906
|
-
return /* @__PURE__ */ import_react35.default.createElement("div", { className: "w-full flex flex-col items-center animate-in fade-in duration-300 pb-12" }, cards.length > 1 && /* @__PURE__ */ import_react35.default.createElement("div", { className: "flex items-center justify-center mb-6 w-full px-2" }, /* @__PURE__ */ import_react35.default.createElement("div", { className: "flex items-center bg-white rounded-full p-1 sm:p-1.5 max-w-full overflow-x-auto custom-scrollbar " }, cards.map((tab, idx) => {
|
|
1918
|
+
const displayCardNumber = isRevealed ? activeCard.cardNumber : `XXXX XXXX XXXX ${activeCard.cardNumber.slice(-4)}`;
|
|
1919
|
+
const displayExpiry = isRevealed ? activeCard.expiry : "XX/XX";
|
|
1920
|
+
const displayCvv = isRevealed ? activeCard.cvv : "XXX";
|
|
1921
|
+
return /* @__PURE__ */ import_react35.default.createElement("div", { className: "w-full flex flex-col items-center animate-in max-w-5xl fade-in duration-300 pb-12" }, cards.length > 1 && /* @__PURE__ */ import_react35.default.createElement("div", { className: "flex items-center justify-center mb-6 w-full px-2" }, /* @__PURE__ */ import_react35.default.createElement("div", { className: "flex items-center bg-white rounded-full p-1 sm:p-1.5 max-w-full overflow-x-auto custom-scrollbar " }, cards.map((tab, idx) => {
|
|
1907
1922
|
const isActive = activeTabIndex === idx;
|
|
1908
1923
|
return /* @__PURE__ */ import_react35.default.createElement(
|
|
1909
1924
|
"button",
|
|
1910
1925
|
{
|
|
1911
1926
|
key: tab.id,
|
|
1912
1927
|
onClick: () => setActiveTabIndex(idx),
|
|
1913
|
-
className: `px-4
|
|
1928
|
+
className: `px-4 py-1.5 rounded-full text-[11px] transition-all duration-200 outline-none whitespace-nowrap shrink-0 ${isActive ? "bg-neutral-100 text-black" : "text-neutral-500 hover:text-black hover:bg-neutral-50/50"}`
|
|
1914
1929
|
},
|
|
1915
1930
|
formatTabLabel(tab.type)
|
|
1916
1931
|
);
|
|
@@ -1928,14 +1943,14 @@ var UniversalCardPage = ({
|
|
|
1928
1943
|
}
|
|
1929
1944
|
},
|
|
1930
1945
|
!isBgLoaded && /* @__PURE__ */ import_react35.default.createElement("div", { className: "absolute inset-0 w-full h-full bg-white rounded-2xl flex items-center justify-center z-50 " }, /* @__PURE__ */ import_react35.default.createElement(import_react36.HugeiconsIcon, { icon: import_core_free_icons13.Loading03Icon, size: 28, className: "animate-spin text-black" })),
|
|
1931
|
-
!isActivated && isBgLoaded && /* @__PURE__ */ import_react35.default.createElement("div", { className: "absolute inset-0 z-40 w-full h-full rounded-2xl backdrop-blur-
|
|
1946
|
+
!isActivated && isBgLoaded && /* @__PURE__ */ import_react35.default.createElement("div", { className: "absolute inset-0 z-40 w-full h-full rounded-2xl backdrop-blur-sm bg-white/20 flex flex-col items-center justify-center border border-white/30", style: { transform: "translateZ(1px)" } }, isUnactivated && /* @__PURE__ */ import_react35.default.createElement(
|
|
1932
1947
|
"button",
|
|
1933
1948
|
{
|
|
1934
1949
|
onClick: (e) => {
|
|
1935
1950
|
e.stopPropagation();
|
|
1936
1951
|
handleOverlayActionClick("ACTIVATE");
|
|
1937
1952
|
},
|
|
1938
|
-
className: "px-6 py-2.5 bg-
|
|
1953
|
+
className: "px-6 py-2.5 bg-white/35 text-white text-[12px] rounded-full transition-all outline-none active:scale-95"
|
|
1939
1954
|
},
|
|
1940
1955
|
"Activate Card"
|
|
1941
1956
|
), isDead && /* @__PURE__ */ import_react35.default.createElement(
|
|
@@ -1945,7 +1960,7 @@ var UniversalCardPage = ({
|
|
|
1945
1960
|
e.stopPropagation();
|
|
1946
1961
|
handleOverlayActionClick("CREATE");
|
|
1947
1962
|
},
|
|
1948
|
-
className: "px-6 py-2.5 bg-
|
|
1963
|
+
className: "px-6 py-2.5 bg-white/35 text-white text-[12px] rounded-full transition-all outline-none active:scale-95"
|
|
1949
1964
|
},
|
|
1950
1965
|
"Create Card"
|
|
1951
1966
|
), isFrozen && /* @__PURE__ */ import_react35.default.createElement(
|
|
@@ -1956,7 +1971,7 @@ var UniversalCardPage = ({
|
|
|
1956
1971
|
handleOverlayUnfreeze();
|
|
1957
1972
|
},
|
|
1958
1973
|
disabled: isOverlayActionLoading,
|
|
1959
|
-
className: "px-6 py-2.5 bg-white text-
|
|
1974
|
+
className: "px-6 py-2.5 bg-white/35 text-white text-[12px] rounded-full transition-all outline-none active:scale-95 flex items-center gap-2 disabled:opacity-80"
|
|
1960
1975
|
},
|
|
1961
1976
|
isOverlayActionLoading ? /* @__PURE__ */ import_react35.default.createElement(import_react36.HugeiconsIcon, { icon: import_core_free_icons13.Loading03Icon, size: 16, className: "animate-spin" }) : "Unfreeze Card"
|
|
1962
1977
|
)),
|
|
@@ -2145,7 +2160,7 @@ var UniversalProfilePage = ({
|
|
|
2145
2160
|
setShowLogoutDialog(false);
|
|
2146
2161
|
}
|
|
2147
2162
|
};
|
|
2148
|
-
return /* @__PURE__ */ import_react37.default.createElement("div", { className: "w-full max-w-
|
|
2163
|
+
return /* @__PURE__ */ import_react37.default.createElement("div", { className: "w-full max-w-5xl mx-auto flex flex-col items-center animate-in fade-in duration-300 pb-12" }, /* @__PURE__ */ import_react37.default.createElement("div", { className: "pt-8 pb-4 flex flex-col items-center" }, /* @__PURE__ */ import_react37.default.createElement("div", { className: "w-22 h-22 rounded-full bg-white p-1 mb-4 flex items-center justify-center" }, /* @__PURE__ */ import_react37.default.createElement("div", { className: "relative w-full h-full rounded-full overflow-hidden bg-neutral-100 flex items-center justify-center" }, avatarSrc ? /* @__PURE__ */ import_react37.default.createElement(import_react37.default.Fragment, null, !isAvatarLoaded && /* @__PURE__ */ import_react37.default.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-10 bg-neutral-100" }, /* @__PURE__ */ import_react37.default.createElement(import_react38.HugeiconsIcon, { icon: import_core_free_icons14.Loading03Icon, size: 24, className: "animate-spin text-black" })), /* @__PURE__ */ import_react37.default.createElement(
|
|
2149
2164
|
"img",
|
|
2150
2165
|
{
|
|
2151
2166
|
src: avatarSrc,
|
|
@@ -2245,17 +2260,87 @@ var MenuRow2 = ({ icon, title, subtitle, onClick, iconColor = "text-black", titl
|
|
|
2245
2260
|
/* @__PURE__ */ import_react37.default.createElement(import_react38.HugeiconsIcon, { icon: import_core_free_icons14.ArrowRight01Icon, size: 18, className: "text-neutral-400 shrink-0 ml-2" })
|
|
2246
2261
|
);
|
|
2247
2262
|
|
|
2248
|
-
// src/components/
|
|
2249
|
-
var
|
|
2263
|
+
// src/components/UniversalSidebar.tsx
|
|
2264
|
+
var import_react39 = __toESM(require("react"));
|
|
2250
2265
|
var import_link5 = __toESM(require("next/link"));
|
|
2266
|
+
var import_react40 = require("@hugeicons/react");
|
|
2267
|
+
var import_core_free_icons15 = require("@hugeicons/core-free-icons");
|
|
2268
|
+
var UniversalSidebar = ({
|
|
2269
|
+
navItems,
|
|
2270
|
+
currentPath,
|
|
2271
|
+
onNavClick,
|
|
2272
|
+
showLogoutAction = false,
|
|
2273
|
+
onLogout
|
|
2274
|
+
}) => {
|
|
2275
|
+
const [showLogoutDialog, setShowLogoutDialog] = (0, import_react39.useState)(false);
|
|
2276
|
+
const [isLoggingOut, setIsLoggingOut] = (0, import_react39.useState)(false);
|
|
2277
|
+
const hasActiveMatch = navItems.some(
|
|
2278
|
+
(item) => item.path === "/" || item.path === "/app" ? currentPath === "/" || currentPath === "/app" : currentPath === item.path || currentPath?.startsWith(`${item.path}/`)
|
|
2279
|
+
);
|
|
2280
|
+
const handleLogoutInitiation = async () => {
|
|
2281
|
+
if (isLoggingOut || !onLogout) return;
|
|
2282
|
+
setIsLoggingOut(true);
|
|
2283
|
+
try {
|
|
2284
|
+
await onLogout();
|
|
2285
|
+
} catch (error) {
|
|
2286
|
+
setIsLoggingOut(false);
|
|
2287
|
+
setShowLogoutDialog(false);
|
|
2288
|
+
}
|
|
2289
|
+
};
|
|
2290
|
+
return /* @__PURE__ */ import_react39.default.createElement(import_react39.default.Fragment, null, /* @__PURE__ */ import_react39.default.createElement("aside", { className: "hidden md:flex fixed top-0 left-0 h-screen w-20 flex-col z-40 overflow-y-auto custom-scrollbar" }, /* @__PURE__ */ import_react39.default.createElement("div", { className: "h-24 shrink-0" }), /* @__PURE__ */ import_react39.default.createElement("nav", { className: "flex-1 flex flex-col gap-3 px-2" }, navItems.map((item, index) => {
|
|
2291
|
+
const isExactOrSubMatch = item.path === "/" || item.path === "/app" ? currentPath === "/" || currentPath === "/app" : currentPath === item.path || currentPath?.startsWith(`${item.path}/`);
|
|
2292
|
+
const isCurrentRoute = isExactOrSubMatch || !hasActiveMatch && index === 0;
|
|
2293
|
+
return /* @__PURE__ */ import_react39.default.createElement(
|
|
2294
|
+
import_link5.default,
|
|
2295
|
+
{
|
|
2296
|
+
key: item.name,
|
|
2297
|
+
href: item.path,
|
|
2298
|
+
onClick: (e) => onNavClick ? onNavClick(e, item.path) : void 0,
|
|
2299
|
+
className: `flex items-center justify-center w-12 h-12 mx-auto rounded-full transition-all outline-none group shrink-0 ${isCurrentRoute ? "bg-white text-black" : "text-neutral-500 hover:text-black hover:bg-white/50"}`,
|
|
2300
|
+
title: item.name
|
|
2301
|
+
},
|
|
2302
|
+
/* @__PURE__ */ import_react39.default.createElement(
|
|
2303
|
+
import_react40.HugeiconsIcon,
|
|
2304
|
+
{
|
|
2305
|
+
icon: item.icon,
|
|
2306
|
+
size: 20,
|
|
2307
|
+
className: `shrink-0 transition-colors ${isCurrentRoute ? "text-black" : "text-neutral-400 group-hover:text-black"}`
|
|
2308
|
+
}
|
|
2309
|
+
)
|
|
2310
|
+
);
|
|
2311
|
+
})), /* @__PURE__ */ import_react39.default.createElement("div", { className: "p-4 shrink-0 flex flex-col items-center gap-2 mb-4" }, showLogoutAction && /* @__PURE__ */ import_react39.default.createElement(
|
|
2312
|
+
"button",
|
|
2313
|
+
{
|
|
2314
|
+
onClick: () => setShowLogoutDialog(true),
|
|
2315
|
+
className: "w-12 h-12 rounded-full flex items-center justify-center text-neutral-500 hover:bg-white/50 transition-all outline-none"
|
|
2316
|
+
},
|
|
2317
|
+
/* @__PURE__ */ import_react39.default.createElement(import_react40.HugeiconsIcon, { icon: import_core_free_icons15.LogoutCircle02Icon, size: 20 })
|
|
2318
|
+
))), showLogoutAction && /* @__PURE__ */ import_react39.default.createElement(
|
|
2319
|
+
ConfirmationDialog,
|
|
2320
|
+
{
|
|
2321
|
+
isOpen: showLogoutDialog,
|
|
2322
|
+
title: "Secure Logout",
|
|
2323
|
+
message: "Are you sure you want to log out? You will need to authenticate to return.",
|
|
2324
|
+
confirmText: "Log Out",
|
|
2325
|
+
isDestructive: true,
|
|
2326
|
+
isProcessing: isLoggingOut,
|
|
2327
|
+
onClose: () => setShowLogoutDialog(false),
|
|
2328
|
+
onConfirm: handleLogoutInitiation
|
|
2329
|
+
}
|
|
2330
|
+
));
|
|
2331
|
+
};
|
|
2332
|
+
|
|
2333
|
+
// src/components/HeroSection.tsx
|
|
2334
|
+
var import_react42 = __toESM(require("react"));
|
|
2335
|
+
var import_link6 = __toESM(require("next/link"));
|
|
2251
2336
|
var import_image2 = __toESM(require("next/image"));
|
|
2252
2337
|
|
|
2253
2338
|
// src/components/WaitlistDialog.tsx
|
|
2254
|
-
var
|
|
2339
|
+
var import_react41 = __toESM(require("react"));
|
|
2255
2340
|
var import_react_hot_toast7 = require("react-hot-toast");
|
|
2256
2341
|
var WaitlistDialog = ({ isOpen, onClose }) => {
|
|
2257
|
-
const [email, setEmail] = (0,
|
|
2258
|
-
const [isLoading, setIsLoading] = (0,
|
|
2342
|
+
const [email, setEmail] = (0, import_react41.useState)("");
|
|
2343
|
+
const [isLoading, setIsLoading] = (0, import_react41.useState)(false);
|
|
2259
2344
|
if (!isOpen) return null;
|
|
2260
2345
|
const handleSubmit = async (e) => {
|
|
2261
2346
|
e.preventDefault();
|
|
@@ -2286,12 +2371,12 @@ var WaitlistDialog = ({ isOpen, onClose }) => {
|
|
|
2286
2371
|
setIsLoading(false);
|
|
2287
2372
|
}
|
|
2288
2373
|
};
|
|
2289
|
-
return /* @__PURE__ */
|
|
2374
|
+
return /* @__PURE__ */ import_react41.default.createElement("div", { className: "fixed inset-0 z-100 flex items-center justify-center p-4 bg-black/40" }, /* @__PURE__ */ import_react41.default.createElement("div", { className: "absolute inset-0", onClick: !isLoading ? onClose : void 0 }), /* @__PURE__ */ import_react41.default.createElement(
|
|
2290
2375
|
"div",
|
|
2291
2376
|
{
|
|
2292
2377
|
className: "w-full max-w-md bg-white rounded-2xl shadow-2xl overflow-hidden relative z-10 animate-in fade-in zoom-in-95 duration-200"
|
|
2293
2378
|
},
|
|
2294
|
-
/* @__PURE__ */
|
|
2379
|
+
/* @__PURE__ */ import_react41.default.createElement(
|
|
2295
2380
|
"button",
|
|
2296
2381
|
{
|
|
2297
2382
|
onClick: onClose,
|
|
@@ -2299,7 +2384,7 @@ var WaitlistDialog = ({ isOpen, onClose }) => {
|
|
|
2299
2384
|
className: "absolute top-4 right-4 p-2 text-neutral-700 hover:text-neutral-400 transition-colors disabled:opacity-50 outline-none",
|
|
2300
2385
|
"aria-label": "Close dialog"
|
|
2301
2386
|
},
|
|
2302
|
-
/* @__PURE__ */
|
|
2387
|
+
/* @__PURE__ */ import_react41.default.createElement(
|
|
2303
2388
|
"svg",
|
|
2304
2389
|
{
|
|
2305
2390
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -2312,11 +2397,11 @@ var WaitlistDialog = ({ isOpen, onClose }) => {
|
|
|
2312
2397
|
strokeLinecap: "round",
|
|
2313
2398
|
strokeLinejoin: "round"
|
|
2314
2399
|
},
|
|
2315
|
-
/* @__PURE__ */
|
|
2316
|
-
/* @__PURE__ */
|
|
2400
|
+
/* @__PURE__ */ import_react41.default.createElement("path", { d: "M18 6 6 18" }),
|
|
2401
|
+
/* @__PURE__ */ import_react41.default.createElement("path", { d: "m6 6 12 12" })
|
|
2317
2402
|
)
|
|
2318
2403
|
),
|
|
2319
|
-
/* @__PURE__ */
|
|
2404
|
+
/* @__PURE__ */ import_react41.default.createElement("div", { className: "p-6 sm:p-8" }, /* @__PURE__ */ import_react41.default.createElement("div", { className: "mb-8 mt-2" }, /* @__PURE__ */ import_react41.default.createElement("h2", { className: "text-2xl text-black tracking-tight mb-2" }, "Join the Waitlist"), /* @__PURE__ */ import_react41.default.createElement("p", { className: "text-[13px] text-neutral-500 leading-relaxed" }, "Be the first to experience the future of Web3 freedom. Secure your early access spot today.")), /* @__PURE__ */ import_react41.default.createElement("form", { onSubmit: handleSubmit, className: "flex flex-col gap-8" }, /* @__PURE__ */ import_react41.default.createElement(
|
|
2320
2405
|
TextInput,
|
|
2321
2406
|
{
|
|
2322
2407
|
label: "Email ID",
|
|
@@ -2326,7 +2411,7 @@ var WaitlistDialog = ({ isOpen, onClose }) => {
|
|
|
2326
2411
|
placeholder: "name@example.com",
|
|
2327
2412
|
disabled: isLoading
|
|
2328
2413
|
}
|
|
2329
|
-
), /* @__PURE__ */
|
|
2414
|
+
), /* @__PURE__ */ import_react41.default.createElement(
|
|
2330
2415
|
ThreeDActionButton,
|
|
2331
2416
|
{
|
|
2332
2417
|
type: "submit",
|
|
@@ -2359,10 +2444,10 @@ var HeroSection = ({
|
|
|
2359
2444
|
bgImageSrc,
|
|
2360
2445
|
isWaitlist = false
|
|
2361
2446
|
}) => {
|
|
2362
|
-
const [isAnimating, setIsAnimating] = (0,
|
|
2363
|
-
const [isWaitlistOpen, setIsWaitlistOpen] = (0,
|
|
2364
|
-
const titleRef = (0,
|
|
2365
|
-
(0,
|
|
2447
|
+
const [isAnimating, setIsAnimating] = (0, import_react42.useState)(false);
|
|
2448
|
+
const [isWaitlistOpen, setIsWaitlistOpen] = (0, import_react42.useState)(false);
|
|
2449
|
+
const titleRef = (0, import_react42.useRef)(null);
|
|
2450
|
+
(0, import_react42.useEffect)(() => {
|
|
2366
2451
|
const observer = new IntersectionObserver(
|
|
2367
2452
|
([entry]) => {
|
|
2368
2453
|
if (entry.isIntersecting) {
|
|
@@ -2384,7 +2469,7 @@ var HeroSection = ({
|
|
|
2384
2469
|
setIsWaitlistOpen(true);
|
|
2385
2470
|
}
|
|
2386
2471
|
};
|
|
2387
|
-
return /* @__PURE__ */
|
|
2472
|
+
return /* @__PURE__ */ import_react42.default.createElement("div", { className: "w-screen min-h-screen flex justify-center items-center p-4" }, /* @__PURE__ */ import_react42.default.createElement("section", { className: "relative h-[95vh] w-full overflow-hidden rounded-2xl " }, bgVideoSrc ? /* @__PURE__ */ import_react42.default.createElement(
|
|
2388
2473
|
"video",
|
|
2389
2474
|
{
|
|
2390
2475
|
src: bgVideoSrc,
|
|
@@ -2395,7 +2480,7 @@ var HeroSection = ({
|
|
|
2395
2480
|
playsInline: true,
|
|
2396
2481
|
className: "absolute inset-0 h-full w-full object-cover z-0"
|
|
2397
2482
|
}
|
|
2398
|
-
) : bgImageSrc ? /* @__PURE__ */
|
|
2483
|
+
) : bgImageSrc ? /* @__PURE__ */ import_react42.default.createElement(
|
|
2399
2484
|
import_image2.default,
|
|
2400
2485
|
{
|
|
2401
2486
|
src: bgImageSrc,
|
|
@@ -2404,7 +2489,7 @@ var HeroSection = ({
|
|
|
2404
2489
|
priority: true,
|
|
2405
2490
|
className: "absolute inset-0 h-full w-full object-cover z-0"
|
|
2406
2491
|
}
|
|
2407
|
-
) : null, /* @__PURE__ */
|
|
2492
|
+
) : null, /* @__PURE__ */ import_react42.default.createElement(
|
|
2408
2493
|
"div",
|
|
2409
2494
|
{
|
|
2410
2495
|
className: "pointer-events-none absolute inset-0 z-10 opacity-[0.7] mix-blend-overlay",
|
|
@@ -2412,31 +2497,31 @@ var HeroSection = ({
|
|
|
2412
2497
|
backgroundImage: `url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E")`
|
|
2413
2498
|
}
|
|
2414
2499
|
}
|
|
2415
|
-
), /* @__PURE__ */
|
|
2500
|
+
), /* @__PURE__ */ import_react42.default.createElement("div", { className: "pointer-events-none absolute inset-0 bg-linear-to-b from-black/30 via-transparent to-black/80 z-10" }), /* @__PURE__ */ import_react42.default.createElement("div", { className: "absolute bottom-0 left-0 right-0 px-4 pb-4 sm:px-6 md:px-10 z-20" }, /* @__PURE__ */ import_react42.default.createElement("div", { className: "grid grid-cols-12 items-end gap-4" }, /* @__PURE__ */ import_react42.default.createElement("div", { className: "col-span-12 lg:col-span-8" }, /* @__PURE__ */ import_react42.default.createElement(
|
|
2416
2501
|
"h1",
|
|
2417
2502
|
{
|
|
2418
2503
|
ref: titleRef,
|
|
2419
2504
|
className: "leading-[0.85] tracking-[-0.07em] text-[18.2vw] sm:text-[16.8vw] md:text-[15.4vw] lg:text-[14vw] xl:text-[13.3vw] 2xl:text-[14vw] text-[#ffffff]"
|
|
2420
2505
|
},
|
|
2421
|
-
/* @__PURE__ */
|
|
2422
|
-
)), /* @__PURE__ */
|
|
2423
|
-
/* @__PURE__ */
|
|
2424
|
-
|
|
2506
|
+
/* @__PURE__ */ import_react42.default.createElement("div", { className: "inline-flex flex-wrap" }, /* @__PURE__ */ import_react42.default.createElement("span", { className: `inline-block relative transition-all duration-1000 ${isAnimating ? "opacity-100 translate-y-0" : "opacity-0 translate-y-10"}` }, titlePrefix, titlePrefix && /* @__PURE__ */ import_react42.default.createElement("br", null), highlightText, /* @__PURE__ */ import_react42.default.createElement("span", { className: "absolute top-[0.65em] right-[-0.3em] text-[0.31em] text-[#ffffff]/70" }, "*")))
|
|
2507
|
+
)), /* @__PURE__ */ import_react42.default.createElement("div", { className: "col-span-12 flex flex-col gap-5 pb-6 lg:col-span-4 lg:pb-10" }, subtitle && /* @__PURE__ */ import_react42.default.createElement("p", { className: "text-xs text-[#ffffff]/70 sm:text-sm md:text-base leading-[1.2] max-w-md transition-opacity duration-1000 delay-300" }, subtitle), /* @__PURE__ */ import_react42.default.createElement("div", { className: "flex flex-col sm:flex-row items-start sm:items-center gap-4" }, ctaText && // Changed from <button> to <Link> so it actually navigates!
|
|
2508
|
+
/* @__PURE__ */ import_react42.default.createElement(
|
|
2509
|
+
import_link6.default,
|
|
2425
2510
|
{
|
|
2426
2511
|
href: isWaitlist ? "#" : ctaHref || "#",
|
|
2427
2512
|
onClick: handleCtaClick,
|
|
2428
2513
|
className: "group inline-flex h-10 items-center gap-2 self-start rounded-full bg-[#ffffff] pl-5 pr-1 text-xs text-black transition-all hover:gap-3"
|
|
2429
2514
|
},
|
|
2430
2515
|
ctaText,
|
|
2431
|
-
/* @__PURE__ */
|
|
2432
|
-
), secondaryCtaText && secondaryCtaHref && /* @__PURE__ */
|
|
2433
|
-
|
|
2516
|
+
/* @__PURE__ */ import_react42.default.createElement("span", { className: "flex h-8 w-8 items-center justify-center rounded-full bg-black transition-transform group-hover:scale-110" }, /* @__PURE__ */ import_react42.default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: "lucide lucide-arrow-right h-4 w-4 text-[#ffffff]" }, /* @__PURE__ */ import_react42.default.createElement("path", { d: "M5 12h14" }), /* @__PURE__ */ import_react42.default.createElement("path", { d: "m12 5 7 7-7 7" })))
|
|
2517
|
+
), secondaryCtaText && secondaryCtaHref && /* @__PURE__ */ import_react42.default.createElement(
|
|
2518
|
+
import_link6.default,
|
|
2434
2519
|
{
|
|
2435
2520
|
href: secondaryCtaHref,
|
|
2436
2521
|
className: "inline-flex h-10 items-center self-start justify-center text-xs tracking-wide rounded-full px-6 border border-[#ffffff]/30 text-[#ffffff] hover:bg-[#ffffff]/10 transition-colors"
|
|
2437
2522
|
},
|
|
2438
2523
|
secondaryCtaText
|
|
2439
|
-
)), showApps && appLogos && appLogos.length > 0 && /* @__PURE__ */
|
|
2524
|
+
)), showApps && appLogos && appLogos.length > 0 && /* @__PURE__ */ import_react42.default.createElement("div", { className: "flex flex-col gap-3 mt-4" }, appsText && /* @__PURE__ */ import_react42.default.createElement("span", { className: "text-[10px] tracking-widest uppercase text-[#ffffff]/50 " }, appsText), /* @__PURE__ */ import_react42.default.createElement("div", { className: "flex items-center gap-4" }, appLogos.map((logo, idx) => /* @__PURE__ */ import_react42.default.createElement("div", { key: idx, className: "relative h-6 w-6 sm:h-7 sm:w-7 opacity-70 hover:opacity-100 transition-opacity invert" }, /* @__PURE__ */ import_react42.default.createElement(
|
|
2440
2525
|
import_image2.default,
|
|
2441
2526
|
{
|
|
2442
2527
|
src: logo.src,
|
|
@@ -2445,7 +2530,7 @@ var HeroSection = ({
|
|
|
2445
2530
|
height: 28,
|
|
2446
2531
|
className: "object-contain"
|
|
2447
2532
|
}
|
|
2448
|
-
))))))))), /* @__PURE__ */
|
|
2533
|
+
))))))))), /* @__PURE__ */ import_react42.default.createElement(
|
|
2449
2534
|
WaitlistDialog,
|
|
2450
2535
|
{
|
|
2451
2536
|
isOpen: isWaitlistOpen,
|
|
@@ -2455,12 +2540,12 @@ var HeroSection = ({
|
|
|
2455
2540
|
};
|
|
2456
2541
|
|
|
2457
2542
|
// src/components/AppBento2.tsx
|
|
2458
|
-
var
|
|
2459
|
-
var
|
|
2543
|
+
var import_react43 = __toESM(require("react"));
|
|
2544
|
+
var import_react44 = require("@hugeicons/react");
|
|
2460
2545
|
var AppBento2 = ({ tagline, headline, features }) => {
|
|
2461
|
-
const [isAnimating, setIsAnimating] = (0,
|
|
2462
|
-
const titleRef = (0,
|
|
2463
|
-
(0,
|
|
2546
|
+
const [isAnimating, setIsAnimating] = (0, import_react43.useState)(false);
|
|
2547
|
+
const titleRef = (0, import_react43.useRef)(null);
|
|
2548
|
+
(0, import_react43.useEffect)(() => {
|
|
2464
2549
|
const observer = new IntersectionObserver(
|
|
2465
2550
|
([entry]) => {
|
|
2466
2551
|
if (entry.isIntersecting) {
|
|
@@ -2478,7 +2563,7 @@ var AppBento2 = ({ tagline, headline, features }) => {
|
|
|
2478
2563
|
}
|
|
2479
2564
|
return () => observer.disconnect();
|
|
2480
2565
|
}, []);
|
|
2481
|
-
return /* @__PURE__ */
|
|
2566
|
+
return /* @__PURE__ */ import_react43.default.createElement("div", { className: "w-full py-16" }, /* @__PURE__ */ import_react43.default.createElement("div", { className: "w-full flex justify-center px-4" }, /* @__PURE__ */ import_react43.default.createElement("div", { className: "max-w-6xl w-full" }, /* @__PURE__ */ import_react43.default.createElement("div", { className: "relative overflow-hidden mb-12 text-left" }, /* @__PURE__ */ import_react43.default.createElement("div", { className: "relative z-10" }, /* @__PURE__ */ import_react43.default.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500 block mb-4 " }, tagline), /* @__PURE__ */ import_react43.default.createElement(
|
|
2482
2567
|
"h2",
|
|
2483
2568
|
{
|
|
2484
2569
|
ref: titleRef,
|
|
@@ -2486,7 +2571,7 @@ var AppBento2 = ({ tagline, headline, features }) => {
|
|
|
2486
2571
|
style: isAnimating ? { animationIterationCount: 1 } : {}
|
|
2487
2572
|
},
|
|
2488
2573
|
headline
|
|
2489
|
-
))), /* @__PURE__ */
|
|
2574
|
+
))), /* @__PURE__ */ import_react43.default.createElement("div", { className: "grid grid-cols-1 lg:grid-cols-6 gap-6" }, features.map((f, i) => {
|
|
2490
2575
|
const isWhite = i === 0;
|
|
2491
2576
|
const isBlack = i === 1;
|
|
2492
2577
|
const isNeutral = i === 2;
|
|
@@ -2508,36 +2593,36 @@ var AppBento2 = ({ tagline, headline, features }) => {
|
|
|
2508
2593
|
const textColor = isBlack ? "text-white" : "text-black";
|
|
2509
2594
|
const subTextColor = isBlack ? "text-neutral-300" : "text-neutral-600";
|
|
2510
2595
|
const labelColor = isBlack ? "text-neutral-400" : "text-neutral-500";
|
|
2511
|
-
return /* @__PURE__ */
|
|
2596
|
+
return /* @__PURE__ */ import_react43.default.createElement(
|
|
2512
2597
|
"div",
|
|
2513
2598
|
{
|
|
2514
2599
|
key: i,
|
|
2515
2600
|
className: `relative rounded-2xl overflow-hidden p-8 flex flex-col min-h-75 transition-all duration-500 group text-left ${getBgStyle()} ${f.size}`,
|
|
2516
2601
|
style: { boxShadow: getShadowStyle() }
|
|
2517
2602
|
},
|
|
2518
|
-
/* @__PURE__ */
|
|
2603
|
+
/* @__PURE__ */ import_react43.default.createElement(
|
|
2519
2604
|
"div",
|
|
2520
2605
|
{
|
|
2521
2606
|
className: "absolute inset-0 pointer-events-none opacity-[0.03] z-0",
|
|
2522
2607
|
style: { backgroundImage: `url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E")` }
|
|
2523
2608
|
}
|
|
2524
2609
|
),
|
|
2525
|
-
isBlack && /* @__PURE__ */
|
|
2526
|
-
/* @__PURE__ */
|
|
2527
|
-
/* @__PURE__ */
|
|
2610
|
+
isBlack && /* @__PURE__ */ import_react43.default.createElement("span", { className: "absolute inset-0 rounded-2xl bg-linear-to-b from-white/10 via-white/5 to-transparent pointer-events-none z-10" }),
|
|
2611
|
+
/* @__PURE__ */ import_react43.default.createElement("div", { className: "absolute inset-0 overflow-hidden pointer-events-none z-0" }, /* @__PURE__ */ import_react43.default.createElement("div", { className: `absolute -bottom-8 -right-8 transform group-hover:scale-110 transition-transform duration-700 ease-out ${isBlack ? "text-white/5" : "text-black/5"}` }, /* @__PURE__ */ import_react43.default.createElement(import_react44.HugeiconsIcon, { icon: f.icon, size: 180 }))),
|
|
2612
|
+
/* @__PURE__ */ import_react43.default.createElement("div", { className: "relative z-10 w-full h-full flex flex-col pointer-events-auto" }, /* @__PURE__ */ import_react43.default.createElement("div", { className: "flex items-center justify-between mb-8" }, /* @__PURE__ */ import_react43.default.createElement("span", { className: `text-[9px] tracking-widest ${labelColor}` }, f.label), /* @__PURE__ */ import_react43.default.createElement("div", { className: `p-2 rounded-full transition-colors ${isBlack ? "bg-white/10" : "bg-white/50 backdrop-blur-sm"}` }, /* @__PURE__ */ import_react43.default.createElement(import_react44.HugeiconsIcon, { icon: f.icon, size: 20, className: textColor }))), /* @__PURE__ */ import_react43.default.createElement("div", { className: "mt-auto" }, /* @__PURE__ */ import_react43.default.createElement("h3", { className: `text-xl mb-2 tracking-tight ${textColor}` }, f.title), /* @__PURE__ */ import_react43.default.createElement("p", { className: `text-[13px] leading-relaxed max-w-sm ${subTextColor}` }, f.desc)))
|
|
2528
2613
|
);
|
|
2529
2614
|
})))));
|
|
2530
2615
|
};
|
|
2531
2616
|
|
|
2532
2617
|
// src/components/FeatureScroll.tsx
|
|
2533
|
-
var
|
|
2618
|
+
var import_react45 = __toESM(require("react"));
|
|
2534
2619
|
var import_image3 = __toESM(require("next/image"));
|
|
2535
|
-
var
|
|
2536
|
-
var
|
|
2620
|
+
var import_react46 = require("@hugeicons/react");
|
|
2621
|
+
var import_core_free_icons16 = require("@hugeicons/core-free-icons");
|
|
2537
2622
|
var FeatureCard = ({ feature, bgImage }) => {
|
|
2538
|
-
const [isBgLoading, setIsBgLoading] = (0,
|
|
2539
|
-
const [isFgLoading, setIsFgLoading] = (0,
|
|
2540
|
-
return /* @__PURE__ */
|
|
2623
|
+
const [isBgLoading, setIsBgLoading] = (0, import_react45.useState)(true);
|
|
2624
|
+
const [isFgLoading, setIsFgLoading] = (0, import_react45.useState)(!!feature.image);
|
|
2625
|
+
return /* @__PURE__ */ import_react45.default.createElement("div", { className: "flex flex-col shrink-0 w-[90vw] sm:w-150 snap-center md:snap-start group cursor-grab active:cursor-grabbing" }, /* @__PURE__ */ import_react45.default.createElement("div", { className: "relative w-full aspect-16/10 bg-neutral-100 rounded-2xl overflow-hidden mb-6 flex items-center justify-center" }, /* @__PURE__ */ import_react45.default.createElement(
|
|
2541
2626
|
import_image3.default,
|
|
2542
2627
|
{
|
|
2543
2628
|
src: bgImage,
|
|
@@ -2550,7 +2635,7 @@ var FeatureCard = ({ feature, bgImage }) => {
|
|
|
2550
2635
|
${isBgLoading ? "blur-xl scale-110" : "blur-0 scale-100"}
|
|
2551
2636
|
`
|
|
2552
2637
|
}
|
|
2553
|
-
), /* @__PURE__ */
|
|
2638
|
+
), /* @__PURE__ */ import_react45.default.createElement(
|
|
2554
2639
|
"div",
|
|
2555
2640
|
{
|
|
2556
2641
|
className: "absolute inset-0 w-full h-full pointer-events-none z-0 opacity-[0.25] mix-blend-overlay",
|
|
@@ -2558,7 +2643,7 @@ var FeatureCard = ({ feature, bgImage }) => {
|
|
|
2558
2643
|
backgroundImage: `url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E")`
|
|
2559
2644
|
}
|
|
2560
2645
|
}
|
|
2561
|
-
), isFgLoading && feature.image && /* @__PURE__ */
|
|
2646
|
+
), isFgLoading && feature.image && /* @__PURE__ */ import_react45.default.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-20 bg-neutral-50/50 backdrop-blur-sm transition-opacity duration-300" }, /* @__PURE__ */ import_react45.default.createElement(import_react46.HugeiconsIcon, { icon: import_core_free_icons16.Loading03Icon, size: 32, className: "animate-spin text-neutral-400" })), feature.image && /* @__PURE__ */ import_react45.default.createElement("div", { className: "absolute -bottom-6 -right-6 w-[85%] h-[85%] z-10 transition-transform duration-700 ease-out group-hover:-translate-x-2 group-hover:-translate-y-2" }, /* @__PURE__ */ import_react45.default.createElement(
|
|
2562
2647
|
import_image3.default,
|
|
2563
2648
|
{
|
|
2564
2649
|
src: feature.image,
|
|
@@ -2571,12 +2656,12 @@ var FeatureCard = ({ feature, bgImage }) => {
|
|
|
2571
2656
|
${isFgLoading ? "opacity-0 blur-xl" : "opacity-100 blur-0"}
|
|
2572
2657
|
`
|
|
2573
2658
|
}
|
|
2574
|
-
))), /* @__PURE__ */
|
|
2659
|
+
))), /* @__PURE__ */ import_react45.default.createElement("div", { className: "flex flex-col text-left pr-4" }, /* @__PURE__ */ import_react45.default.createElement("h3", { className: " text-xl tracking-tight text-black mb-2" }, feature.title), /* @__PURE__ */ import_react45.default.createElement("p", { className: "text-[13px] leading-relaxed text-neutral-600 max-w-[90%]" }, feature.desc)));
|
|
2575
2660
|
};
|
|
2576
2661
|
var FeatureScroll = ({ tagline, headline, features }) => {
|
|
2577
|
-
const scrollRef = (0,
|
|
2578
|
-
const [canScrollLeft, setCanScrollLeft] = (0,
|
|
2579
|
-
const [canScrollRight, setCanScrollRight] = (0,
|
|
2662
|
+
const scrollRef = (0, import_react45.useRef)(null);
|
|
2663
|
+
const [canScrollLeft, setCanScrollLeft] = (0, import_react45.useState)(false);
|
|
2664
|
+
const [canScrollRight, setCanScrollRight] = (0, import_react45.useState)(true);
|
|
2580
2665
|
const checkScroll = () => {
|
|
2581
2666
|
if (scrollRef.current) {
|
|
2582
2667
|
const { scrollLeft, scrollWidth, clientWidth } = scrollRef.current;
|
|
@@ -2584,7 +2669,7 @@ var FeatureScroll = ({ tagline, headline, features }) => {
|
|
|
2584
2669
|
setCanScrollRight(scrollLeft < scrollWidth - clientWidth - 2);
|
|
2585
2670
|
}
|
|
2586
2671
|
};
|
|
2587
|
-
(0,
|
|
2672
|
+
(0, import_react45.useEffect)(() => {
|
|
2588
2673
|
checkScroll();
|
|
2589
2674
|
window.addEventListener("resize", checkScroll);
|
|
2590
2675
|
return () => window.removeEventListener("resize", checkScroll);
|
|
@@ -2600,7 +2685,7 @@ var FeatureScroll = ({ tagline, headline, features }) => {
|
|
|
2600
2685
|
"https://retinalabs.company/assets/images/bg_6.avif",
|
|
2601
2686
|
"https://retinalabs.company/assets/images/bg_1.avif"
|
|
2602
2687
|
];
|
|
2603
|
-
return /* @__PURE__ */
|
|
2688
|
+
return /* @__PURE__ */ import_react45.default.createElement("section", { className: "py-24 w-full flex justify-center relative z-10 overflow-hidden" }, /* @__PURE__ */ import_react45.default.createElement("div", { className: "max-w-6xl w-full flex flex-col px-4 md:px-8" }, /* @__PURE__ */ import_react45.default.createElement("div", { className: "flex flex-col md:flex-row md:items-end justify-between gap-6 mb-12" }, /* @__PURE__ */ import_react45.default.createElement("div", { className: "relative z-10 text-left" }, /* @__PURE__ */ import_react45.default.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500 block mb-4" }, tagline), /* @__PURE__ */ import_react45.default.createElement("h2", { className: " text-3xl tracking-tight text-black leading-[1.05]" }, headline)), /* @__PURE__ */ import_react45.default.createElement("div", { className: "hidden md:flex items-center gap-3" }, /* @__PURE__ */ import_react45.default.createElement(
|
|
2604
2689
|
"button",
|
|
2605
2690
|
{
|
|
2606
2691
|
onClick: () => scroll("left"),
|
|
@@ -2608,8 +2693,8 @@ var FeatureScroll = ({ tagline, headline, features }) => {
|
|
|
2608
2693
|
className: "p-4 border border-neutral-200 rounded-full text-neutral-500 hover:text-black hover:border-black disabled:opacity-30 disabled:hover:border-neutral-200 disabled:hover:text-neutral-500 disabled:cursor-not-allowed transition-all outline-none",
|
|
2609
2694
|
"aria-label": "Previous feature"
|
|
2610
2695
|
},
|
|
2611
|
-
/* @__PURE__ */
|
|
2612
|
-
), /* @__PURE__ */
|
|
2696
|
+
/* @__PURE__ */ import_react45.default.createElement(import_react46.HugeiconsIcon, { icon: import_core_free_icons16.ArrowLeft01Icon, size: 20 })
|
|
2697
|
+
), /* @__PURE__ */ import_react45.default.createElement(
|
|
2613
2698
|
"button",
|
|
2614
2699
|
{
|
|
2615
2700
|
onClick: () => scroll("right"),
|
|
@@ -2617,57 +2702,57 @@ var FeatureScroll = ({ tagline, headline, features }) => {
|
|
|
2617
2702
|
className: "p-4 border border-neutral-200 rounded-full text-neutral-500 hover:text-black hover:border-black disabled:opacity-30 disabled:hover:border-neutral-200 disabled:hover:text-neutral-500 disabled:cursor-not-allowed transition-all outline-none",
|
|
2618
2703
|
"aria-label": "Next feature"
|
|
2619
2704
|
},
|
|
2620
|
-
/* @__PURE__ */
|
|
2621
|
-
))), /* @__PURE__ */
|
|
2705
|
+
/* @__PURE__ */ import_react45.default.createElement(import_react46.HugeiconsIcon, { icon: import_core_free_icons16.ArrowRight01Icon, size: 20 })
|
|
2706
|
+
))), /* @__PURE__ */ import_react45.default.createElement(
|
|
2622
2707
|
"div",
|
|
2623
2708
|
{
|
|
2624
2709
|
ref: scrollRef,
|
|
2625
2710
|
onScroll: checkScroll,
|
|
2626
2711
|
className: "flex gap-6 overflow-x-auto snap-x snap-mandatory [&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] scrollbar-none pb-8 -mx-4 px-4 md:mx-0 md:px-0"
|
|
2627
2712
|
},
|
|
2628
|
-
features.slice(0, 3).map((feature, idx) => /* @__PURE__ */
|
|
2629
|
-
), /* @__PURE__ */
|
|
2713
|
+
features.slice(0, 3).map((feature, idx) => /* @__PURE__ */ import_react45.default.createElement(FeatureCard, { key: idx, feature, bgImage: bgImages[idx] }))
|
|
2714
|
+
), /* @__PURE__ */ import_react45.default.createElement("div", { className: "flex md:hidden items-center justify-center gap-4 mt-2" }, /* @__PURE__ */ import_react45.default.createElement(
|
|
2630
2715
|
"button",
|
|
2631
2716
|
{
|
|
2632
2717
|
onClick: () => scroll("left"),
|
|
2633
2718
|
disabled: !canScrollLeft,
|
|
2634
2719
|
className: "p-4 border border-neutral-200 rounded-full text-neutral-500 hover:text-black hover:border-black disabled:opacity-30 transition-all outline-none"
|
|
2635
2720
|
},
|
|
2636
|
-
/* @__PURE__ */
|
|
2637
|
-
), /* @__PURE__ */
|
|
2721
|
+
/* @__PURE__ */ import_react45.default.createElement(import_react46.HugeiconsIcon, { icon: import_core_free_icons16.ArrowLeft01Icon, size: 20 })
|
|
2722
|
+
), /* @__PURE__ */ import_react45.default.createElement(
|
|
2638
2723
|
"button",
|
|
2639
2724
|
{
|
|
2640
2725
|
onClick: () => scroll("right"),
|
|
2641
2726
|
disabled: !canScrollRight,
|
|
2642
2727
|
className: "p-4 border border-neutral-200 rounded-full text-neutral-500 hover:text-black hover:border-black disabled:opacity-30 transition-all outline-none"
|
|
2643
2728
|
},
|
|
2644
|
-
/* @__PURE__ */
|
|
2729
|
+
/* @__PURE__ */ import_react45.default.createElement(import_react46.HugeiconsIcon, { icon: import_core_free_icons16.ArrowRight01Icon, size: 20 })
|
|
2645
2730
|
))));
|
|
2646
2731
|
};
|
|
2647
2732
|
|
|
2648
2733
|
// src/components/PlatformFeatures.tsx
|
|
2649
|
-
var
|
|
2650
|
-
var
|
|
2734
|
+
var import_react47 = __toESM(require("react"));
|
|
2735
|
+
var import_react48 = require("@hugeicons/react");
|
|
2651
2736
|
var PlatformFeatures = ({
|
|
2652
2737
|
tagline,
|
|
2653
2738
|
headline,
|
|
2654
2739
|
description,
|
|
2655
2740
|
features
|
|
2656
2741
|
}) => {
|
|
2657
|
-
return /* @__PURE__ */
|
|
2742
|
+
return /* @__PURE__ */ import_react47.default.createElement("section", { className: "w-full flex justify-center mb-15 relative z-10" }, /* @__PURE__ */ import_react47.default.createElement("div", { className: "max-w-6xl w-full flex flex-col px-4 md:px-8" }, /* @__PURE__ */ import_react47.default.createElement("div", { className: "flex flex-col items-start mb-16 relative z-10" }, /* @__PURE__ */ import_react47.default.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500 block mb-4" }, tagline), /* @__PURE__ */ import_react47.default.createElement("h2", { className: "text-3xl tracking-tight text-black leading-[1.05] mb-6" }, headline), /* @__PURE__ */ import_react47.default.createElement("p", { className: "text-[15px] leading-[1.8] text-neutral-600 max-w-2xl" }, description)), /* @__PURE__ */ import_react47.default.createElement("div", { className: "w-full h-px bg-neutral-100 mb-16", "aria-hidden": "true" }), /* @__PURE__ */ import_react47.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-x-8 gap-y-12" }, features.map((feature, idx) => /* @__PURE__ */ import_react47.default.createElement(
|
|
2658
2743
|
"div",
|
|
2659
2744
|
{
|
|
2660
2745
|
key: idx,
|
|
2661
2746
|
className: "flex flex-col group animate-in fade-in slide-in-from-bottom-4 duration-700 fill-mode-both",
|
|
2662
2747
|
style: { animationDelay: feature.delay || "0ms" }
|
|
2663
2748
|
},
|
|
2664
|
-
/* @__PURE__ */
|
|
2665
|
-
/* @__PURE__ */
|
|
2749
|
+
/* @__PURE__ */ import_react47.default.createElement("div", { className: "flex flex-row items-center gap-4 mb-4" }, /* @__PURE__ */ import_react47.default.createElement("div", { className: "w-14 h-14 shrink-0 rounded-xl border border-neutral-200 flex items-center justify-center text-neutral-600 transition-colors duration-300" }, /* @__PURE__ */ import_react47.default.createElement(import_react48.HugeiconsIcon, { icon: feature.icon, size: 24 })), /* @__PURE__ */ import_react47.default.createElement("div", { className: "flex flex-col justify-center" }, /* @__PURE__ */ import_react47.default.createElement("span", { className: "text-[11px] tracking-widest text-neutral-400 mb-0.5" }, feature.label || "CAPABILITY"), /* @__PURE__ */ import_react47.default.createElement("h3", { className: "text-xl tracking-tight text-black" }, feature.title))),
|
|
2750
|
+
/* @__PURE__ */ import_react47.default.createElement("div", null, /* @__PURE__ */ import_react47.default.createElement("p", { className: "text-[13px] leading-relaxed text-neutral-600 pr-4" }, feature.desc))
|
|
2666
2751
|
)))));
|
|
2667
2752
|
};
|
|
2668
2753
|
|
|
2669
2754
|
// src/components/ManagedDocument.tsx
|
|
2670
|
-
var
|
|
2755
|
+
var import_react49 = __toESM(require("react"));
|
|
2671
2756
|
var ManagedDocument = ({
|
|
2672
2757
|
tagline,
|
|
2673
2758
|
title,
|
|
@@ -2675,9 +2760,9 @@ var ManagedDocument = ({
|
|
|
2675
2760
|
contactText,
|
|
2676
2761
|
contactEmail
|
|
2677
2762
|
}) => {
|
|
2678
|
-
const [isAnimating, setIsAnimating] = (0,
|
|
2679
|
-
const titleRef = (0,
|
|
2680
|
-
(0,
|
|
2763
|
+
const [isAnimating, setIsAnimating] = (0, import_react49.useState)(false);
|
|
2764
|
+
const titleRef = (0, import_react49.useRef)(null);
|
|
2765
|
+
(0, import_react49.useEffect)(() => {
|
|
2681
2766
|
const observer = new IntersectionObserver(
|
|
2682
2767
|
([entry]) => {
|
|
2683
2768
|
if (entry.isIntersecting) {
|
|
@@ -2697,7 +2782,7 @@ var ManagedDocument = ({
|
|
|
2697
2782
|
}, []);
|
|
2698
2783
|
return (
|
|
2699
2784
|
// Outer layout wrapper (takes up available space, adds padding)
|
|
2700
|
-
/* @__PURE__ */
|
|
2785
|
+
/* @__PURE__ */ import_react49.default.createElement("div", { className: "grow pt-4 px-3 md:px-8 w-full flex justify-center z-10 relative" }, /* @__PURE__ */ import_react49.default.createElement("div", { className: "relative bg-white rounded-2xl w-full max-w-7xl mx-auto overflow-hidden" }, /* @__PURE__ */ import_react49.default.createElement("div", { className: "relative z-10" }, /* @__PURE__ */ import_react49.default.createElement("div", { className: "relative px-5 md:px-12 py-8 md:py-10" }, tagline && /* @__PURE__ */ import_react49.default.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500 text-left block " }, tagline), /* @__PURE__ */ import_react49.default.createElement(
|
|
2701
2786
|
"h1",
|
|
2702
2787
|
{
|
|
2703
2788
|
ref: titleRef,
|
|
@@ -2705,7 +2790,7 @@ var ManagedDocument = ({
|
|
|
2705
2790
|
style: isAnimating ? { animationIterationCount: 1 } : {}
|
|
2706
2791
|
},
|
|
2707
2792
|
title
|
|
2708
|
-
)), sections.map((section, index) => /* @__PURE__ */
|
|
2793
|
+
)), sections.map((section, index) => /* @__PURE__ */ import_react49.default.createElement("div", { key: index, className: "relative px-5 md:px-12 py-8 md:py-10" }, section.heading && /* @__PURE__ */ import_react49.default.createElement("p", { className: " text-[11px] tracking-[0.2em] text-black mb-4 text-left " }, section.heading), section.paragraphs && section.paragraphs.length > 0 && /* @__PURE__ */ import_react49.default.createElement("div", { className: "text-[14px] leading-[1.8] text-neutral-700 space-y-4 text-left " }, section.paragraphs.map((text, pIndex) => /* @__PURE__ */ import_react49.default.createElement("p", { key: pIndex }, text))), section.quote && /* @__PURE__ */ import_react49.default.createElement("div", { className: `border-neutral-100 border rounded-xl p-6 ${section.paragraphs && section.paragraphs.length > 0 ? "mt-6" : ""}` }, /* @__PURE__ */ import_react49.default.createElement("p", { className: "text-neutral-900 text-[14px] md:text-[14px] leading-relaxed" }, '"', section.quote, '"')))), (contactText || contactEmail) && /* @__PURE__ */ import_react49.default.createElement("div", { className: "relative px-5 md:px-12 py-8 md:py-10 pb-12 md:pb-14" }, /* @__PURE__ */ import_react49.default.createElement("p", { className: "text-[11px] text-neutral-600 text-left" }, contactText, contactEmail && /* @__PURE__ */ import_react49.default.createElement(
|
|
2709
2794
|
"a",
|
|
2710
2795
|
{
|
|
2711
2796
|
href: `mailto:${contactEmail}`,
|
|
@@ -2717,18 +2802,18 @@ var ManagedDocument = ({
|
|
|
2717
2802
|
};
|
|
2718
2803
|
|
|
2719
2804
|
// src/components/ManagedContactBlock.tsx
|
|
2720
|
-
var
|
|
2721
|
-
var
|
|
2805
|
+
var import_react50 = __toESM(require("react"));
|
|
2806
|
+
var import_react51 = require("@hugeicons/react");
|
|
2722
2807
|
var SecureEmail = ({ user, domain, className }) => {
|
|
2723
|
-
const [isMounted, setIsMounted] = (0,
|
|
2724
|
-
(0,
|
|
2808
|
+
const [isMounted, setIsMounted] = (0, import_react50.useState)(false);
|
|
2809
|
+
(0, import_react50.useEffect)(() => {
|
|
2725
2810
|
setIsMounted(true);
|
|
2726
2811
|
}, []);
|
|
2727
2812
|
if (!isMounted) {
|
|
2728
|
-
return /* @__PURE__ */
|
|
2813
|
+
return /* @__PURE__ */ import_react50.default.createElement("span", { className, style: { opacity: 0 } }, "Loading");
|
|
2729
2814
|
}
|
|
2730
2815
|
const email = `${user}@${domain}`;
|
|
2731
|
-
return /* @__PURE__ */
|
|
2816
|
+
return /* @__PURE__ */ import_react50.default.createElement("a", { href: `mailto:${email}`, className }, email);
|
|
2732
2817
|
};
|
|
2733
2818
|
var ManagedContactBlock = ({
|
|
2734
2819
|
tagline,
|
|
@@ -2737,7 +2822,7 @@ var ManagedContactBlock = ({
|
|
|
2737
2822
|
emails,
|
|
2738
2823
|
socials
|
|
2739
2824
|
}) => {
|
|
2740
|
-
return /* @__PURE__ */
|
|
2825
|
+
return /* @__PURE__ */ import_react50.default.createElement("div", { className: "grow pt-4 pb-20 px-4 md:px-8 w-full flex justify-center z-10 relative" }, /* @__PURE__ */ import_react50.default.createElement("div", { className: "relative bg-white rounded-2xl w-full max-w-7xl mx-auto overflow-hidden" }, /* @__PURE__ */ import_react50.default.createElement(
|
|
2741
2826
|
"div",
|
|
2742
2827
|
{
|
|
2743
2828
|
className: "absolute inset-0 pointer-events-none opacity-[0.03] z-0",
|
|
@@ -2746,21 +2831,21 @@ var ManagedContactBlock = ({
|
|
|
2746
2831
|
backgroundRepeat: "repeat"
|
|
2747
2832
|
}
|
|
2748
2833
|
}
|
|
2749
|
-
), /* @__PURE__ */
|
|
2834
|
+
), /* @__PURE__ */ import_react50.default.createElement("div", { className: "relative z-10" }, /* @__PURE__ */ import_react50.default.createElement("div", { className: "relative px-8 md:px-12 py-10" }, tagline && /* @__PURE__ */ import_react50.default.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500 text-left block " }, tagline), /* @__PURE__ */ import_react50.default.createElement("h1", { className: " text-3xl mt-4 text-black tracking-tight text-left" }, title)), /* @__PURE__ */ import_react50.default.createElement("div", { className: "relative px-8 md:px-12 py-8 pb-14" }, /* @__PURE__ */ import_react50.default.createElement("div", { className: "flex flex-wrap gap-12 lg:gap-16 w-full" }, company && /* @__PURE__ */ import_react50.default.createElement("div", { className: "flex-1 min-w-65 space-y-6" }, /* @__PURE__ */ import_react50.default.createElement("p", { className: "text-[11px] tracking-[0.2em] text-black mb-4 " }, "Contact Details"), /* @__PURE__ */ import_react50.default.createElement("div", { className: "space-y-3 text-[13px] text-neutral-600 leading-[1.8]" }, company.name && /* @__PURE__ */ import_react50.default.createElement("p", { className: "text-black" }, company.name), company.lines && company.lines.map((line, idx) => /* @__PURE__ */ import_react50.default.createElement("p", { key: idx }, line)), company.phone && /* @__PURE__ */ import_react50.default.createElement("p", { className: "pt-2" }, /* @__PURE__ */ import_react50.default.createElement(
|
|
2750
2835
|
"a",
|
|
2751
2836
|
{
|
|
2752
2837
|
href: `tel:${company.phone.replace(/\s+/g, "")}`,
|
|
2753
2838
|
className: "transition-colors hover:text-black"
|
|
2754
2839
|
},
|
|
2755
2840
|
company.phone
|
|
2756
|
-
)))), emails && emails.length > 0 && /* @__PURE__ */
|
|
2841
|
+
)))), emails && emails.length > 0 && /* @__PURE__ */ import_react50.default.createElement("div", { className: "flex-1 min-w-65 space-y-6" }, /* @__PURE__ */ import_react50.default.createElement("p", { className: "text-[11px] tracking-[0.2em] text-black mb-4 " }, "Email Directory"), /* @__PURE__ */ import_react50.default.createElement("div", { className: "space-y-6 text-[13px]" }, emails.map((email, idx) => /* @__PURE__ */ import_react50.default.createElement("div", { key: idx }, /* @__PURE__ */ import_react50.default.createElement("p", { className: "text-[11px] tracking-[0.2em] mb-1.5 text-neutral-500 " }, email.label), /* @__PURE__ */ import_react50.default.createElement(
|
|
2757
2842
|
SecureEmail,
|
|
2758
2843
|
{
|
|
2759
2844
|
user: email.user,
|
|
2760
2845
|
domain: email.domain,
|
|
2761
2846
|
className: "text-neutral-600 transition-colors hover:text-black"
|
|
2762
2847
|
}
|
|
2763
|
-
))))), socials && socials.length > 0 && /* @__PURE__ */
|
|
2848
|
+
))))), socials && socials.length > 0 && /* @__PURE__ */ import_react50.default.createElement("div", { className: "flex-1 min-w-65 space-y-6" }, /* @__PURE__ */ import_react50.default.createElement("p", { className: "text-[11px] tracking-[0.2em] text-black mb-4 " }, "Find Us Online"), /* @__PURE__ */ import_react50.default.createElement("div", { className: "flex flex-col space-y-5 pt-1" }, socials.map((social, idx) => /* @__PURE__ */ import_react50.default.createElement(
|
|
2764
2849
|
"a",
|
|
2765
2850
|
{
|
|
2766
2851
|
key: idx,
|
|
@@ -2770,27 +2855,27 @@ var ManagedContactBlock = ({
|
|
|
2770
2855
|
className: "flex items-center gap-3 transition-colors group text-neutral-600 hover:text-black",
|
|
2771
2856
|
"aria-label": social.label
|
|
2772
2857
|
},
|
|
2773
|
-
/* @__PURE__ */
|
|
2774
|
-
/* @__PURE__ */
|
|
2858
|
+
/* @__PURE__ */ import_react50.default.createElement(import_react51.HugeiconsIcon, { icon: social.icon, size: 18 }),
|
|
2859
|
+
/* @__PURE__ */ import_react50.default.createElement("span", { className: "text-[13px]" }, social.label)
|
|
2775
2860
|
)))))))));
|
|
2776
2861
|
};
|
|
2777
2862
|
|
|
2778
2863
|
// src/components/ManagedPricingBlock.tsx
|
|
2779
|
-
var
|
|
2780
|
-
var
|
|
2864
|
+
var import_react52 = __toESM(require("react"));
|
|
2865
|
+
var import_link7 = __toESM(require("next/link"));
|
|
2781
2866
|
var import_image4 = __toESM(require("next/image"));
|
|
2782
|
-
var CheckIcon = ({ className = "" }) => /* @__PURE__ */
|
|
2783
|
-
var CrossIcon = ({ className = "" }) => /* @__PURE__ */
|
|
2867
|
+
var CheckIcon = ({ className = "" }) => /* @__PURE__ */ import_react52.default.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__ */ import_react52.default.createElement("circle", { cx: "12", cy: "12", r: "10", fill: "black" }), /* @__PURE__ */ import_react52.default.createElement("path", { d: "M8 12L11 15L16 9", stroke: "white", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }));
|
|
2868
|
+
var CrossIcon = ({ className = "" }) => /* @__PURE__ */ import_react52.default.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__ */ import_react52.default.createElement("circle", { cx: "12", cy: "12", r: "10", fill: "#F5F5F5" }), /* @__PURE__ */ import_react52.default.createElement("path", { d: "M15 9L9 15M9 9l6 6", stroke: "#D4D4D4", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }));
|
|
2784
2869
|
var ManagedPricingBlock = ({
|
|
2785
2870
|
tagline,
|
|
2786
2871
|
title,
|
|
2787
2872
|
plans = [],
|
|
2788
2873
|
tabs
|
|
2789
2874
|
}) => {
|
|
2790
|
-
const [isAnimating, setIsAnimating] = (0,
|
|
2791
|
-
const [activeTabIndex, setActiveTabIndex] = (0,
|
|
2792
|
-
const titleRef = (0,
|
|
2793
|
-
(0,
|
|
2875
|
+
const [isAnimating, setIsAnimating] = (0, import_react52.useState)(false);
|
|
2876
|
+
const [activeTabIndex, setActiveTabIndex] = (0, import_react52.useState)(0);
|
|
2877
|
+
const titleRef = (0, import_react52.useRef)(null);
|
|
2878
|
+
(0, import_react52.useEffect)(() => {
|
|
2794
2879
|
const observer = new IntersectionObserver(
|
|
2795
2880
|
([entry]) => {
|
|
2796
2881
|
if (entry.isIntersecting) {
|
|
@@ -2810,7 +2895,7 @@ var ManagedPricingBlock = ({
|
|
|
2810
2895
|
}, []);
|
|
2811
2896
|
const hasTabs = tabs && tabs.length > 0;
|
|
2812
2897
|
const currentPlans = hasTabs ? tabs[activeTabIndex].plans : plans;
|
|
2813
|
-
return /* @__PURE__ */
|
|
2898
|
+
return /* @__PURE__ */ import_react52.default.createElement("div", { className: "grow pt-10 pb-20 px-4 md:px-8 w-full flex justify-center z-10 relative" }, /* @__PURE__ */ import_react52.default.createElement("div", { className: "w-full max-w-5xl mx-auto flex flex-col items-center" }, /* @__PURE__ */ import_react52.default.createElement("div", { className: "w-full flex flex-col items-center text-center mb-10 sm:mb-12" }, tagline && /* @__PURE__ */ import_react52.default.createElement("span", { className: "text-[9px] tracking-[0.4em] text-black block " }, tagline), /* @__PURE__ */ import_react52.default.createElement(
|
|
2814
2899
|
"h1",
|
|
2815
2900
|
{
|
|
2816
2901
|
ref: titleRef,
|
|
@@ -2818,30 +2903,30 @@ var ManagedPricingBlock = ({
|
|
|
2818
2903
|
style: isAnimating ? { animationIterationCount: 1 } : {}
|
|
2819
2904
|
},
|
|
2820
2905
|
title
|
|
2821
|
-
)), hasTabs && /* @__PURE__ */
|
|
2906
|
+
)), hasTabs && /* @__PURE__ */ import_react52.default.createElement("div", { className: "flex items-center justify-center mb-8 sm:mb-10 w-full animate-in fade-in duration-300 px-2" }, /* @__PURE__ */ import_react52.default.createElement("div", { className: "flex items-center bg-white rounded-full p-1 sm:p-1.5 max-w-full overflow-x-auto custom-scrollbar" }, tabs.map((tab, idx) => {
|
|
2822
2907
|
const isActive = activeTabIndex === idx;
|
|
2823
|
-
return /* @__PURE__ */
|
|
2908
|
+
return /* @__PURE__ */ import_react52.default.createElement(
|
|
2824
2909
|
"button",
|
|
2825
2910
|
{
|
|
2826
2911
|
key: idx,
|
|
2827
2912
|
onClick: () => setActiveTabIndex(idx),
|
|
2828
|
-
className: `px-4
|
|
2913
|
+
className: `px-4 py-1.5 rounded-full text-[11px] transition-all duration-200 outline-none whitespace-nowrap shrink-0 ${isActive ? "bg-neutral-50 text-black " : "text-neutral-500 hover:text-black hover:bg-neutral-50/50 "}`
|
|
2829
2914
|
},
|
|
2830
2915
|
tab.label
|
|
2831
2916
|
);
|
|
2832
|
-
}))), /* @__PURE__ */
|
|
2917
|
+
}))), /* @__PURE__ */ import_react52.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-5 w-full max-w-3xl animate-in slide-in-from-bottom-2 fade-in duration-500" }, currentPlans.map((plan, planIdx) => /* @__PURE__ */ import_react52.default.createElement(
|
|
2833
2918
|
"div",
|
|
2834
2919
|
{
|
|
2835
2920
|
key: `${activeTabIndex}-${planIdx}`,
|
|
2836
2921
|
className: `bg-white rounded-3xl p-6 flex flex-col relative overflow-hidden transition-all duration-300 ${plan.isPremium ? "" : ""}`
|
|
2837
2922
|
},
|
|
2838
|
-
/* @__PURE__ */
|
|
2923
|
+
/* @__PURE__ */ import_react52.default.createElement("div", { className: "mb-6" }, /* @__PURE__ */ import_react52.default.createElement("span", { className: "text-black text-base block mb-1" }, plan.name), /* @__PURE__ */ import_react52.default.createElement("div", { className: "flex items-baseline gap-1" }, /* @__PURE__ */ import_react52.default.createElement("h3", { className: "text-3xl font-light text-black" }, plan.price), plan.period && /* @__PURE__ */ import_react52.default.createElement("span", { className: "text-xs text-neutral-500" }, plan.period)), /* @__PURE__ */ import_react52.default.createElement("p", { className: "text-xs text-neutral-500 mt-2 min-h-8" }, plan.description), plan.showApps && plan.appLogos && plan.appLogos.length > 0 && /* @__PURE__ */ import_react52.default.createElement("div", { className: "flex items-center gap-2 mt-4" }, plan.appLogos.map((logo, logoIdx) => /* @__PURE__ */ import_react52.default.createElement(
|
|
2839
2924
|
"div",
|
|
2840
2925
|
{
|
|
2841
2926
|
key: logoIdx,
|
|
2842
2927
|
className: "relative w-5 h-5 overflow-hidden flex items-center justify-center shrink-0"
|
|
2843
2928
|
},
|
|
2844
|
-
/* @__PURE__ */
|
|
2929
|
+
/* @__PURE__ */ import_react52.default.createElement(
|
|
2845
2930
|
import_image4.default,
|
|
2846
2931
|
{
|
|
2847
2932
|
src: logo.src,
|
|
@@ -2852,28 +2937,28 @@ var ManagedPricingBlock = ({
|
|
|
2852
2937
|
}
|
|
2853
2938
|
)
|
|
2854
2939
|
)))),
|
|
2855
|
-
plan.isPremium ? /* @__PURE__ */
|
|
2856
|
-
|
|
2940
|
+
plan.isPremium ? /* @__PURE__ */ import_react52.default.createElement(ThreeDButton, { href: plan.ctaHref, className: "mb-6 w-full" }, plan.ctaText) : /* @__PURE__ */ import_react52.default.createElement(
|
|
2941
|
+
import_link7.default,
|
|
2857
2942
|
{
|
|
2858
2943
|
href: plan.ctaHref,
|
|
2859
2944
|
className: "w-full py-2.5 px-5 rounded-full border border-neutral-100 text-center text-black text-xs hover:bg-neutral-50 transition-colors mb-6 outline-none block"
|
|
2860
2945
|
},
|
|
2861
2946
|
plan.ctaText
|
|
2862
2947
|
),
|
|
2863
|
-
/* @__PURE__ */
|
|
2948
|
+
/* @__PURE__ */ import_react52.default.createElement("div", { className: "flex flex-col gap-3" }, plan.features.map((feature, featureIdx) => {
|
|
2864
2949
|
const isAvailable = feature.value !== false;
|
|
2865
2950
|
const valueText = typeof feature.value === "string" ? feature.value : "";
|
|
2866
|
-
return /* @__PURE__ */
|
|
2951
|
+
return /* @__PURE__ */ import_react52.default.createElement("div", { key: featureIdx, className: "flex items-center gap-2.5" }, isAvailable ? /* @__PURE__ */ import_react52.default.createElement(CheckIcon, null) : /* @__PURE__ */ import_react52.default.createElement(CrossIcon, null), /* @__PURE__ */ import_react52.default.createElement("span", { className: `text-xs truncate ${isAvailable ? "text-neutral-800" : "text-neutral-400"}` }, feature.name, valueText && /* @__PURE__ */ import_react52.default.createElement("span", { className: "text-neutral-500 ml-1" }, "(", valueText, ")")));
|
|
2867
2952
|
}))
|
|
2868
2953
|
)))));
|
|
2869
2954
|
};
|
|
2870
2955
|
|
|
2871
2956
|
// src/components/ManagedBoardBlock.tsx
|
|
2872
|
-
var
|
|
2957
|
+
var import_react53 = __toESM(require("react"));
|
|
2873
2958
|
var import_image5 = __toESM(require("next/image"));
|
|
2874
|
-
var
|
|
2875
|
-
var
|
|
2876
|
-
var MemberSocialLink = ({ href, icon, label, name }) => /* @__PURE__ */
|
|
2959
|
+
var import_react54 = require("@hugeicons/react");
|
|
2960
|
+
var import_core_free_icons17 = require("@hugeicons/core-free-icons");
|
|
2961
|
+
var MemberSocialLink = ({ href, icon, label, name }) => /* @__PURE__ */ import_react53.default.createElement(
|
|
2877
2962
|
"a",
|
|
2878
2963
|
{
|
|
2879
2964
|
href,
|
|
@@ -2882,7 +2967,7 @@ var MemberSocialLink = ({ href, icon, label, name }) => /* @__PURE__ */ import_r
|
|
|
2882
2967
|
className: "text-neutral-400 hover:text-black transition-colors",
|
|
2883
2968
|
"aria-label": `${name} on ${label}`
|
|
2884
2969
|
},
|
|
2885
|
-
/* @__PURE__ */
|
|
2970
|
+
/* @__PURE__ */ import_react53.default.createElement(import_react54.HugeiconsIcon, { icon, size: 16 })
|
|
2886
2971
|
);
|
|
2887
2972
|
var ManagedBoardBlock = ({
|
|
2888
2973
|
tagline,
|
|
@@ -2891,7 +2976,7 @@ var ManagedBoardBlock = ({
|
|
|
2891
2976
|
contactText,
|
|
2892
2977
|
contactEmail
|
|
2893
2978
|
}) => {
|
|
2894
|
-
return /* @__PURE__ */
|
|
2979
|
+
return /* @__PURE__ */ import_react53.default.createElement("div", { className: "grow pt-4 pb-20 px-3 md:px-8 w-full flex justify-center z-10 relative" }, /* @__PURE__ */ import_react53.default.createElement("div", { className: "relative w-full mx-auto overflow-hidden max-w-7xl" }, /* @__PURE__ */ import_react53.default.createElement(
|
|
2895
2980
|
"div",
|
|
2896
2981
|
{
|
|
2897
2982
|
className: "absolute inset-0 pointer-events-none opacity-[0.03] z-0",
|
|
@@ -2900,7 +2985,7 @@ var ManagedBoardBlock = ({
|
|
|
2900
2985
|
backgroundRepeat: "repeat"
|
|
2901
2986
|
}
|
|
2902
2987
|
}
|
|
2903
|
-
), /* @__PURE__ */
|
|
2988
|
+
), /* @__PURE__ */ import_react53.default.createElement("div", { className: "relative z-10" }, /* @__PURE__ */ import_react53.default.createElement("div", { className: "relative px-5 md:px-12 py-8 md:py-10" }, tagline && /* @__PURE__ */ import_react53.default.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500 text-left block " }, tagline), /* @__PURE__ */ import_react53.default.createElement("h1", { className: " text-3xl mt-4 text-black tracking-tight text-left" }, title)), /* @__PURE__ */ import_react53.default.createElement("div", { className: "relative px-5 md:px-12 py-4 md:py-8" }, /* @__PURE__ */ import_react53.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-5 md:gap-8" }, members.map((member, idx) => /* @__PURE__ */ import_react53.default.createElement("div", { key: idx, className: "relative p-6 md:p-8 rounded-2xl bg-white flex flex-col transition-all group" }, /* @__PURE__ */ import_react53.default.createElement("div", { className: "flex items-start space-x-4 md:space-x-5 mb-5 md:mb-6" }, /* @__PURE__ */ import_react53.default.createElement("div", { className: "relative w-14 h-14 md:w-16 md:h-16 shrink-0 bg-white overflow-hidden rounded-xl" }, /* @__PURE__ */ import_react53.default.createElement(
|
|
2904
2989
|
import_image5.default,
|
|
2905
2990
|
{
|
|
2906
2991
|
src: member.imageSrc,
|
|
@@ -2909,44 +2994,44 @@ var ManagedBoardBlock = ({
|
|
|
2909
2994
|
sizes: "(max-width: 768px) 56px, 64px",
|
|
2910
2995
|
className: "object-cover grayscale opacity-100 transition-opacity"
|
|
2911
2996
|
}
|
|
2912
|
-
)), /* @__PURE__ */
|
|
2997
|
+
)), /* @__PURE__ */ import_react53.default.createElement("div", { className: "pt-1" }, /* @__PURE__ */ import_react53.default.createElement("h3", { className: " text-[14px] md:text-[15px] text-black tracking-tight" }, member.name), /* @__PURE__ */ import_react53.default.createElement("p", { className: "text-[11px] tracking-[0.2em] text-neutral-500 mt-1.5 " }, member.title))), /* @__PURE__ */ import_react53.default.createElement("p", { className: "text-[13px] leading-[1.8] text-neutral-600 text-left grow mb-8" }, member.bio), /* @__PURE__ */ import_react53.default.createElement("div", { className: "space-y-6 mt-auto" }, /* @__PURE__ */ import_react53.default.createElement("div", { className: "w-full *:w-full" }, /* @__PURE__ */ import_react53.default.createElement(ThreeDButton, { href: member.website }, "Visit Website")), /* @__PURE__ */ import_react53.default.createElement("div", { className: "flex space-x-4 pt-5" }, member.twitterHandle && member.twitterHandle.length > 0 && /* @__PURE__ */ import_react53.default.createElement(
|
|
2913
2998
|
MemberSocialLink,
|
|
2914
2999
|
{
|
|
2915
3000
|
href: `https://x.com/${member.twitterHandle}`,
|
|
2916
|
-
icon:
|
|
3001
|
+
icon: import_core_free_icons17.TwitterIcon,
|
|
2917
3002
|
label: "X",
|
|
2918
3003
|
name: member.name
|
|
2919
3004
|
}
|
|
2920
|
-
), member.linkedinHandle && member.linkedinHandle.length > 0 && /* @__PURE__ */
|
|
3005
|
+
), member.linkedinHandle && member.linkedinHandle.length > 0 && /* @__PURE__ */ import_react53.default.createElement(
|
|
2921
3006
|
MemberSocialLink,
|
|
2922
3007
|
{
|
|
2923
3008
|
href: member.linkedinHandle,
|
|
2924
|
-
icon:
|
|
3009
|
+
icon: import_core_free_icons17.LinkedinIcon,
|
|
2925
3010
|
label: "LinkedIn",
|
|
2926
3011
|
name: member.name
|
|
2927
3012
|
}
|
|
2928
|
-
))))))), (contactText || contactEmail) && /* @__PURE__ */
|
|
3013
|
+
))))))), (contactText || contactEmail) && /* @__PURE__ */ import_react53.default.createElement("div", { className: "relative px-5 md:px-12 py-8 md:py-10 pb-12 md:pb-14" }, /* @__PURE__ */ import_react53.default.createElement("p", { className: "text-[11px] text-neutral-600 text-left" }, contactText, contactEmail && /* @__PURE__ */ import_react53.default.createElement("a", { href: `mailto:${contactEmail}`, className: "text-black decoration-black decoration-2 underline-offset-4 ml-1 transition-colors" }, contactEmail))))));
|
|
2929
3014
|
};
|
|
2930
3015
|
|
|
2931
3016
|
// src/components/ManagedNotFoundBlock.tsx
|
|
2932
|
-
var
|
|
3017
|
+
var import_react55 = __toESM(require("react"));
|
|
2933
3018
|
var ManagedNotFoundBlock = ({
|
|
2934
3019
|
title = "404 - Page Not Found",
|
|
2935
3020
|
description = "The page you are looking for does not exist or has been moved."
|
|
2936
3021
|
}) => {
|
|
2937
|
-
return /* @__PURE__ */
|
|
3022
|
+
return /* @__PURE__ */ import_react55.default.createElement("main", { className: "min-h-screen flex items-center justify-center relative z-20 bg-transparent" }, /* @__PURE__ */ import_react55.default.createElement("div", { className: "p-6 w-full max-w-md mx-auto text-center" }, /* @__PURE__ */ import_react55.default.createElement("div", { className: "mb-8 flex justify-center" }, /* @__PURE__ */ import_react55.default.createElement(
|
|
2938
3023
|
"svg",
|
|
2939
3024
|
{
|
|
2940
3025
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2941
3026
|
viewBox: "0 0 24 24",
|
|
2942
3027
|
className: "w-12 h-12 fill-neutral-100"
|
|
2943
3028
|
},
|
|
2944
|
-
/* @__PURE__ */
|
|
2945
|
-
)), /* @__PURE__ */
|
|
3029
|
+
/* @__PURE__ */ import_react55.default.createElement("path", { fillRule: "evenodd", d: "M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z", clipRule: "evenodd" })
|
|
3030
|
+
)), /* @__PURE__ */ import_react55.default.createElement("h1", { className: " text-xl md:text-3xl text-black tracking-tight mb-4" }, title), /* @__PURE__ */ import_react55.default.createElement("p", { className: "text-[13px] leading-[1.8] text-neutral-600 mb-12" }, description)));
|
|
2946
3031
|
};
|
|
2947
3032
|
|
|
2948
3033
|
// src/components/ManagedNewsletterSplitBlock.tsx
|
|
2949
|
-
var
|
|
3034
|
+
var import_react56 = __toESM(require("react"));
|
|
2950
3035
|
var import_image6 = __toESM(require("next/image"));
|
|
2951
3036
|
var ManagedNewsletterSplitBlock = ({
|
|
2952
3037
|
tagline,
|
|
@@ -2960,7 +3045,7 @@ var ManagedNewsletterSplitBlock = ({
|
|
|
2960
3045
|
ctaHref = "/contact",
|
|
2961
3046
|
children
|
|
2962
3047
|
}) => {
|
|
2963
|
-
return /* @__PURE__ */
|
|
3048
|
+
return /* @__PURE__ */ import_react56.default.createElement("div", { className: "grow flex flex-col md:flex-row relative w-full pt-32 md:pt-0" }, /* @__PURE__ */ import_react56.default.createElement("div", { className: "hidden md:block md:w-1/2 relative min-h-screen overflow-hidden" }, /* @__PURE__ */ import_react56.default.createElement(
|
|
2964
3049
|
import_image6.default,
|
|
2965
3050
|
{
|
|
2966
3051
|
src: imageSrc,
|
|
@@ -2970,7 +3055,7 @@ var ManagedNewsletterSplitBlock = ({
|
|
|
2970
3055
|
className: "object-cover object-top grayscale opacity-60",
|
|
2971
3056
|
quality: 100
|
|
2972
3057
|
}
|
|
2973
|
-
), /* @__PURE__ */
|
|
3058
|
+
), /* @__PURE__ */ import_react56.default.createElement(
|
|
2974
3059
|
"div",
|
|
2975
3060
|
{
|
|
2976
3061
|
className: "absolute inset-0 z-10 pointer-events-none",
|
|
@@ -2978,7 +3063,7 @@ var ManagedNewsletterSplitBlock = ({
|
|
|
2978
3063
|
background: "linear-gradient(to right, rgba(255,255,255,0) 30%, #ffffff 100%)"
|
|
2979
3064
|
}
|
|
2980
3065
|
}
|
|
2981
|
-
), /* @__PURE__ */
|
|
3066
|
+
), /* @__PURE__ */ import_react56.default.createElement(
|
|
2982
3067
|
"div",
|
|
2983
3068
|
{
|
|
2984
3069
|
className: "absolute inset-x-0 bottom-0 h-40 z-10 pointer-events-none",
|
|
@@ -2986,7 +3071,7 @@ var ManagedNewsletterSplitBlock = ({
|
|
|
2986
3071
|
background: "linear-gradient(to bottom, rgba(255,255,255,0) 0%, #ffffff 100%)"
|
|
2987
3072
|
}
|
|
2988
3073
|
}
|
|
2989
|
-
)), /* @__PURE__ */
|
|
3074
|
+
)), /* @__PURE__ */ import_react56.default.createElement("div", { className: "w-full md:w-1/2 flex mt-22 flex-col items-center justify-center p-4 md:p-12 relative z-20" }, /* @__PURE__ */ import_react56.default.createElement("div", { className: "relative w-full max-w-lg p-8 md:p-12 text-center md:text-left transition-all duration-700 ease-out" }, /* @__PURE__ */ import_react56.default.createElement(
|
|
2990
3075
|
"div",
|
|
2991
3076
|
{
|
|
2992
3077
|
className: "absolute inset-0 pointer-events-none opacity-[0.03] z-0",
|
|
@@ -2995,7 +3080,7 @@ var ManagedNewsletterSplitBlock = ({
|
|
|
2995
3080
|
backgroundRepeat: "repeat"
|
|
2996
3081
|
}
|
|
2997
3082
|
}
|
|
2998
|
-
), /* @__PURE__ */
|
|
3083
|
+
), /* @__PURE__ */ import_react56.default.createElement("div", { className: "relative z-10" }, /* @__PURE__ */ import_react56.default.createElement("div", { className: "mb-10 border-b border-neutral-100 pb-8 text-center md:text-left" }, tagline && /* @__PURE__ */ import_react56.default.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500 " }, tagline), /* @__PURE__ */ import_react56.default.createElement("h1", { className: " text-3xl mt-4 text-black tracking-tight mb-4" }, title), subtitle && /* @__PURE__ */ import_react56.default.createElement("p", { className: "text-[11px] tracking-[0.2em] text-neutral-500 " }, subtitle)), /* @__PURE__ */ import_react56.default.createElement("p", { className: "text-[13px] leading-[1.8] text-neutral-600 mb-10 text-center md:text-left" }, description), children && /* @__PURE__ */ import_react56.default.createElement("div", { className: "mb-8 text-left" }, children), /* @__PURE__ */ import_react56.default.createElement("div", { className: "text-center md:text-left mt-10 space-y-6" }, dividerText && /* @__PURE__ */ import_react56.default.createElement("div", { className: "flex items-center" }, /* @__PURE__ */ import_react56.default.createElement("div", { className: "grow h-px bg-neutral-100" }), /* @__PURE__ */ import_react56.default.createElement("span", { className: "shrink mx-4 text-[11px] tracking-[0.2em] text-neutral-400 " }, dividerText), /* @__PURE__ */ import_react56.default.createElement("div", { className: "grow h-px bg-neutral-100" })), ctaText && ctaHref && /* @__PURE__ */ import_react56.default.createElement("div", { className: "w-full *:w-full" }, /* @__PURE__ */ import_react56.default.createElement(
|
|
2999
3084
|
ThreeDButton,
|
|
3000
3085
|
{
|
|
3001
3086
|
href: ctaHref,
|
|
@@ -3006,14 +3091,14 @@ var ManagedNewsletterSplitBlock = ({
|
|
|
3006
3091
|
};
|
|
3007
3092
|
|
|
3008
3093
|
// src/components/PortfolioHero.tsx
|
|
3009
|
-
var
|
|
3010
|
-
var
|
|
3094
|
+
var import_react57 = __toESM(require("react"));
|
|
3095
|
+
var import_link8 = __toESM(require("next/link"));
|
|
3011
3096
|
var import_image7 = __toESM(require("next/image"));
|
|
3012
|
-
var
|
|
3013
|
-
var
|
|
3097
|
+
var import_react58 = require("@hugeicons/react");
|
|
3098
|
+
var import_core_free_icons18 = require("@hugeicons/core-free-icons");
|
|
3014
3099
|
var useScrollAnimation = () => {
|
|
3015
|
-
const elementRef = (0,
|
|
3016
|
-
(0,
|
|
3100
|
+
const elementRef = (0, import_react57.useRef)(null);
|
|
3101
|
+
(0, import_react57.useEffect)(() => {
|
|
3017
3102
|
const el = elementRef.current;
|
|
3018
3103
|
if (!el) return;
|
|
3019
3104
|
const observer = new IntersectionObserver(
|
|
@@ -3049,13 +3134,13 @@ var PortfolioHero = ({
|
|
|
3049
3134
|
secondaryCtaHref
|
|
3050
3135
|
}) => {
|
|
3051
3136
|
const heroContentRef = useScrollAnimation();
|
|
3052
|
-
return /* @__PURE__ */
|
|
3137
|
+
return /* @__PURE__ */ import_react57.default.createElement("section", { className: "pt-8 pb-16 px-6 md:px-12 flex flex-col relative overflow-hidden z-10 w-full" }, /* @__PURE__ */ import_react57.default.createElement(
|
|
3053
3138
|
"div",
|
|
3054
3139
|
{
|
|
3055
3140
|
ref: heroContentRef,
|
|
3056
3141
|
className: "w-full opacity-0 translate-y-5 transition-all duration-1000 ease-out relative z-10"
|
|
3057
3142
|
},
|
|
3058
|
-
/* @__PURE__ */
|
|
3143
|
+
/* @__PURE__ */ import_react57.default.createElement("div", { className: "flex flex-col sm:flex-row sm:items-center gap-5 sm:gap-8 mb-10" }, /* @__PURE__ */ import_react57.default.createElement("div", { className: "relative w-20 h-20 sm:w-32 sm:h-32 rounded-full overflow-hidden border border-neutral-100 shrink-0 shadow-sm" }, /* @__PURE__ */ import_react57.default.createElement(
|
|
3059
3144
|
import_image7.default,
|
|
3060
3145
|
{
|
|
3061
3146
|
src: imageSrc,
|
|
@@ -3066,7 +3151,7 @@ var PortfolioHero = ({
|
|
|
3066
3151
|
sizes: "(max-width: 640px) 80px, 128px",
|
|
3067
3152
|
quality: 100
|
|
3068
3153
|
}
|
|
3069
|
-
)), /* @__PURE__ */
|
|
3154
|
+
)), /* @__PURE__ */ import_react57.default.createElement("div", { className: "flex flex-col text-left" }, /* @__PURE__ */ import_react57.default.createElement("h1", { className: " text-3xl sm:text-5xl lg:text-6xl tracking-tight text-black leading-none mb-3" }, name), socialLabel && /* @__PURE__ */ import_react57.default.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-500 " }, socialLabel), socialLinkText && socialLinkHref && /* @__PURE__ */ import_react57.default.createElement(
|
|
3070
3155
|
"a",
|
|
3071
3156
|
{
|
|
3072
3157
|
href: socialLinkHref,
|
|
@@ -3076,31 +3161,31 @@ var PortfolioHero = ({
|
|
|
3076
3161
|
},
|
|
3077
3162
|
socialLinkText
|
|
3078
3163
|
))),
|
|
3079
|
-
/* @__PURE__ */
|
|
3080
|
-
/* @__PURE__ */
|
|
3164
|
+
/* @__PURE__ */ import_react57.default.createElement("p", { className: "text-[13px] leading-[1.8] max-w-4xl mb-12 text-neutral-600" }, bio),
|
|
3165
|
+
/* @__PURE__ */ import_react57.default.createElement("div", { className: "flex flex-col sm:flex-row gap-4 w-full sm:w-auto" }, primaryCtaText && primaryCtaHref && /* @__PURE__ */ import_react57.default.createElement("div", { className: "w-full sm:w-auto *:w-full" }, /* @__PURE__ */ import_react57.default.createElement(
|
|
3081
3166
|
ThreeDButton,
|
|
3082
3167
|
{
|
|
3083
3168
|
href: primaryCtaHref,
|
|
3084
3169
|
className: "py-3 tracking-widest text-[11px]"
|
|
3085
3170
|
},
|
|
3086
3171
|
primaryCtaText
|
|
3087
|
-
)), secondaryCtaText && secondaryCtaHref && /* @__PURE__ */
|
|
3088
|
-
|
|
3172
|
+
)), secondaryCtaText && secondaryCtaHref && /* @__PURE__ */ import_react57.default.createElement(
|
|
3173
|
+
import_link8.default,
|
|
3089
3174
|
{
|
|
3090
3175
|
href: secondaryCtaHref,
|
|
3091
3176
|
className: "w-full sm:w-auto inline-flex items-center justify-center gap-3 text-[11px] tracking-[0.2em] rounded-full px-8 py-3.5 bg-neutral-200 transition-colors text-black hover:bg-neutral-200 outline-none"
|
|
3092
3177
|
},
|
|
3093
3178
|
secondaryCtaText,
|
|
3094
|
-
/* @__PURE__ */
|
|
3179
|
+
/* @__PURE__ */ import_react57.default.createElement(import_react58.HugeiconsIcon, { icon: import_core_free_icons18.ArrowRight01Icon, size: 16 })
|
|
3095
3180
|
))
|
|
3096
3181
|
));
|
|
3097
3182
|
};
|
|
3098
3183
|
|
|
3099
3184
|
// src/components/GifFeatureCard.tsx
|
|
3100
|
-
var
|
|
3185
|
+
var import_react59 = __toESM(require("react"));
|
|
3101
3186
|
var import_image8 = __toESM(require("next/image"));
|
|
3102
|
-
var
|
|
3103
|
-
var
|
|
3187
|
+
var import_react60 = require("@hugeicons/react");
|
|
3188
|
+
var import_core_free_icons19 = require("@hugeicons/core-free-icons");
|
|
3104
3189
|
var GifFeatureCard = ({
|
|
3105
3190
|
gifSrc,
|
|
3106
3191
|
title,
|
|
@@ -3108,20 +3193,20 @@ var GifFeatureCard = ({
|
|
|
3108
3193
|
alt = "Feature animation",
|
|
3109
3194
|
className = "aspect-video"
|
|
3110
3195
|
}) => {
|
|
3111
|
-
const [isLoading, setIsLoading] = (0,
|
|
3112
|
-
return /* @__PURE__ */
|
|
3113
|
-
|
|
3196
|
+
const [isLoading, setIsLoading] = (0, import_react59.useState)(true);
|
|
3197
|
+
return /* @__PURE__ */ import_react59.default.createElement("div", { className: `relative w-full bg-black overflow-hidden shadow-2xl ${className}` }, isLoading && /* @__PURE__ */ import_react59.default.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-20 bg-black" }, /* @__PURE__ */ import_react59.default.createElement(
|
|
3198
|
+
import_react60.HugeiconsIcon,
|
|
3114
3199
|
{
|
|
3115
|
-
icon:
|
|
3200
|
+
icon: import_core_free_icons19.Loading03Icon,
|
|
3116
3201
|
size: 32,
|
|
3117
3202
|
className: "animate-spin text-white"
|
|
3118
3203
|
}
|
|
3119
|
-
)), /* @__PURE__ */
|
|
3204
|
+
)), /* @__PURE__ */ import_react59.default.createElement(
|
|
3120
3205
|
"div",
|
|
3121
3206
|
{
|
|
3122
3207
|
className: `absolute inset-0 z-0 transition-all duration-1000 ease-out ${isLoading ? "scale-105 blur-2xl opacity-0" : "scale-100 blur-0 opacity-100"}`
|
|
3123
3208
|
},
|
|
3124
|
-
/* @__PURE__ */
|
|
3209
|
+
/* @__PURE__ */ import_react59.default.createElement(
|
|
3125
3210
|
import_image8.default,
|
|
3126
3211
|
{
|
|
3127
3212
|
src: gifSrc,
|
|
@@ -3132,16 +3217,16 @@ var GifFeatureCard = ({
|
|
|
3132
3217
|
className: "object-cover object-center pointer-events-none"
|
|
3133
3218
|
}
|
|
3134
3219
|
)
|
|
3135
|
-
), /* @__PURE__ */
|
|
3220
|
+
), /* @__PURE__ */ import_react59.default.createElement(
|
|
3136
3221
|
"div",
|
|
3137
3222
|
{
|
|
3138
3223
|
className: "absolute inset-x-0 bottom-0 h-1/2 sm:h-2/3 bg-linear-to-t from-black/95 via-black/40 to-transparent z-10 pointer-events-none transition-opacity duration-700"
|
|
3139
3224
|
}
|
|
3140
|
-
), /* @__PURE__ */
|
|
3225
|
+
), /* @__PURE__ */ import_react59.default.createElement("div", { className: "absolute inset-x-0 bottom-0 p-6 sm:p-8 z-30 flex flex-col justify-end text-left pointer-events-none" }, title && /* @__PURE__ */ import_react59.default.createElement("h3", { className: " text-xl sm:text-2xl md:text-3xl text-white tracking-tight mb-2 sm:mb-3 drop-shadow-md" }, title), subtitle && /* @__PURE__ */ import_react59.default.createElement("p", { className: "text-[13px] sm:text-[15px] leading-relaxed text-neutral-300 max-w-2xl drop-shadow-sm" }, subtitle)));
|
|
3141
3226
|
};
|
|
3142
3227
|
|
|
3143
3228
|
// src/components/MedicalFeatureStatsBlock.tsx
|
|
3144
|
-
var
|
|
3229
|
+
var import_react61 = __toESM(require("react"));
|
|
3145
3230
|
var import_image9 = __toESM(require("next/image"));
|
|
3146
3231
|
var MedicalFeatureStatsBlock = ({
|
|
3147
3232
|
bottomHeadline,
|
|
@@ -3150,9 +3235,9 @@ var MedicalFeatureStatsBlock = ({
|
|
|
3150
3235
|
trustText,
|
|
3151
3236
|
stats
|
|
3152
3237
|
}) => {
|
|
3153
|
-
const [isAnimating, setIsAnimating] = (0,
|
|
3154
|
-
const titleRef = (0,
|
|
3155
|
-
(0,
|
|
3238
|
+
const [isAnimating, setIsAnimating] = (0, import_react61.useState)(false);
|
|
3239
|
+
const titleRef = (0, import_react61.useRef)(null);
|
|
3240
|
+
(0, import_react61.useEffect)(() => {
|
|
3156
3241
|
const observer = new IntersectionObserver(
|
|
3157
3242
|
([entry]) => {
|
|
3158
3243
|
if (entry.isIntersecting) {
|
|
@@ -3170,7 +3255,7 @@ var MedicalFeatureStatsBlock = ({
|
|
|
3170
3255
|
}
|
|
3171
3256
|
return () => observer.disconnect();
|
|
3172
3257
|
}, []);
|
|
3173
|
-
return /* @__PURE__ */
|
|
3258
|
+
return /* @__PURE__ */ import_react61.default.createElement("section", { className: "py-24 w-full flex justify-center relative z-10" }, /* @__PURE__ */ import_react61.default.createElement("div", { className: "max-w-6xl w-full flex flex-col px-4 md:px-8" }, /* @__PURE__ */ import_react61.default.createElement("div", { className: "flex flex-col lg:flex-row justify-between items-start lg:items-end gap-10 mb-12" }, /* @__PURE__ */ import_react61.default.createElement("div", { className: "max-w-xl" }, /* @__PURE__ */ import_react61.default.createElement(
|
|
3174
3259
|
"h2",
|
|
3175
3260
|
{
|
|
3176
3261
|
ref: titleRef,
|
|
@@ -3178,7 +3263,7 @@ var MedicalFeatureStatsBlock = ({
|
|
|
3178
3263
|
style: isAnimating ? { animationIterationCount: 1 } : {}
|
|
3179
3264
|
},
|
|
3180
3265
|
bottomHeadline
|
|
3181
|
-
), /* @__PURE__ */
|
|
3266
|
+
), /* @__PURE__ */ import_react61.default.createElement("p", { className: "text-[14px] leading-relaxed text-neutral-500" }, bottomDescription)), /* @__PURE__ */ import_react61.default.createElement("div", { className: "flex items-center gap-4 shrink-0" }, /* @__PURE__ */ import_react61.default.createElement("div", { className: "flex -space-x-3" }, avatars.map((src, i) => /* @__PURE__ */ import_react61.default.createElement("div", { key: i, className: "relative w-12 h-12 rounded-full border-[3px] border-white overflow-hidden bg-neutral-100 z-1 hover:z-10 transition-all" }, /* @__PURE__ */ import_react61.default.createElement(
|
|
3182
3267
|
import_image9.default,
|
|
3183
3268
|
{
|
|
3184
3269
|
src,
|
|
@@ -3187,17 +3272,17 @@ var MedicalFeatureStatsBlock = ({
|
|
|
3187
3272
|
sizes: "48px",
|
|
3188
3273
|
className: "object-cover"
|
|
3189
3274
|
}
|
|
3190
|
-
)))), /* @__PURE__ */
|
|
3275
|
+
)))), /* @__PURE__ */ import_react61.default.createElement("p", { className: "text-[11px] text-neutral-800 leading-[1.4] max-w-55" }, trustText))), /* @__PURE__ */ import_react61.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6" }, stats.map((stat, idx) => /* @__PURE__ */ import_react61.default.createElement("div", { key: idx, className: "bg-white rounded-4xl p-8 md:p-10 flex flex-col h-70" }, /* @__PURE__ */ import_react61.default.createElement("div", { className: "flex items-center p-0.5 mb-6" }, /* @__PURE__ */ import_react61.default.createElement("span", { className: "text-[14px] text-neutral-500 tracking-wide" }, stat.label)), /* @__PURE__ */ import_react61.default.createElement("h1", { className: "text-6xl gradient-text md:text-[80px] tracking-tighter text-black mt-auto leading-none" }, stat.value))))));
|
|
3191
3276
|
};
|
|
3192
3277
|
|
|
3193
3278
|
// src/components/ConsultantShowcase.tsx
|
|
3194
|
-
var
|
|
3279
|
+
var import_react62 = __toESM(require("react"));
|
|
3195
3280
|
var import_image10 = __toESM(require("next/image"));
|
|
3196
|
-
var
|
|
3197
|
-
var
|
|
3281
|
+
var import_react63 = require("@hugeicons/react");
|
|
3282
|
+
var import_core_free_icons20 = require("@hugeicons/core-free-icons");
|
|
3198
3283
|
var ImageWithLoader = ({ src, alt, className, sizes, priority = false }) => {
|
|
3199
|
-
const [isLoading, setIsLoading] = (0,
|
|
3200
|
-
return /* @__PURE__ */
|
|
3284
|
+
const [isLoading, setIsLoading] = (0, import_react62.useState)(true);
|
|
3285
|
+
return /* @__PURE__ */ import_react62.default.createElement("div", { className: `absolute inset-0 bg-neutral-800 ${className}` }, isLoading && /* @__PURE__ */ import_react62.default.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-20 bg-neutral-800/50 backdrop-blur-md transition-opacity duration-300" }, /* @__PURE__ */ import_react62.default.createElement(import_react63.HugeiconsIcon, { icon: import_core_free_icons20.Loading03Icon, size: 24, className: "animate-spin text-white/50" })), /* @__PURE__ */ import_react62.default.createElement(
|
|
3201
3286
|
import_image10.default,
|
|
3202
3287
|
{
|
|
3203
3288
|
src,
|
|
@@ -3216,9 +3301,9 @@ var ImageWithLoader = ({ src, alt, className, sizes, priority = false }) => {
|
|
|
3216
3301
|
var ConsultantShowcase = ({
|
|
3217
3302
|
profiles
|
|
3218
3303
|
}) => {
|
|
3219
|
-
const [currentIndex, setCurrentIndex] = (0,
|
|
3220
|
-
const [touchStart, setTouchStart] = (0,
|
|
3221
|
-
const [touchEnd, setTouchEnd] = (0,
|
|
3304
|
+
const [currentIndex, setCurrentIndex] = (0, import_react62.useState)(0);
|
|
3305
|
+
const [touchStart, setTouchStart] = (0, import_react62.useState)(null);
|
|
3306
|
+
const [touchEnd, setTouchEnd] = (0, import_react62.useState)(null);
|
|
3222
3307
|
const nextSlide = () => {
|
|
3223
3308
|
setCurrentIndex((prev) => prev === profiles.length - 1 ? 0 : prev + 1);
|
|
3224
3309
|
};
|
|
@@ -3243,7 +3328,7 @@ var ConsultantShowcase = ({
|
|
|
3243
3328
|
}
|
|
3244
3329
|
};
|
|
3245
3330
|
if (!profiles || profiles.length === 0) return null;
|
|
3246
|
-
return /* @__PURE__ */
|
|
3331
|
+
return /* @__PURE__ */ import_react62.default.createElement("section", { className: "py-24 w-full flex justify-center px-4 md:px-8 z-10 relative" }, /* @__PURE__ */ import_react62.default.createElement("div", { className: "max-w-6xl w-full" }, /* @__PURE__ */ import_react62.default.createElement(
|
|
3247
3332
|
"div",
|
|
3248
3333
|
{
|
|
3249
3334
|
className: "relative w-full h-100 md:h-112.5 rounded-4xl overflow-hidden bg-neutral-900 group select-none",
|
|
@@ -3253,13 +3338,13 @@ var ConsultantShowcase = ({
|
|
|
3253
3338
|
},
|
|
3254
3339
|
profiles.map((profile, idx) => {
|
|
3255
3340
|
const isActive = idx === currentIndex;
|
|
3256
|
-
return /* @__PURE__ */
|
|
3341
|
+
return /* @__PURE__ */ import_react62.default.createElement(
|
|
3257
3342
|
"div",
|
|
3258
3343
|
{
|
|
3259
3344
|
key: profile.id,
|
|
3260
3345
|
className: `absolute inset-0 transition-opacity duration-700 ease-in-out ${isActive ? "opacity-100 z-10" : "opacity-0 z-0 pointer-events-none"}`
|
|
3261
3346
|
},
|
|
3262
|
-
/* @__PURE__ */
|
|
3347
|
+
/* @__PURE__ */ import_react62.default.createElement(
|
|
3263
3348
|
ImageWithLoader,
|
|
3264
3349
|
{
|
|
3265
3350
|
src: profile.imageSrc,
|
|
@@ -3267,14 +3352,14 @@ var ConsultantShowcase = ({
|
|
|
3267
3352
|
priority: idx === 0
|
|
3268
3353
|
}
|
|
3269
3354
|
),
|
|
3270
|
-
/* @__PURE__ */
|
|
3271
|
-
/* @__PURE__ */
|
|
3272
|
-
/* @__PURE__ */
|
|
3355
|
+
/* @__PURE__ */ import_react62.default.createElement("div", { className: "absolute inset-0 bg-black/20 z-10 pointer-events-none" }),
|
|
3356
|
+
/* @__PURE__ */ import_react62.default.createElement("div", { className: "absolute top-0 left-0 w-full h-[60%] bg-linear-to-b from-black/80 via-black/30 to-transparent z-20 pointer-events-none" }),
|
|
3357
|
+
/* @__PURE__ */ import_react62.default.createElement("div", { className: `absolute top-8 left-8 md:top-12 md:left-12 z-30 text-white max-w-lg transition-transform duration-700 ease-out ${isActive ? "translate-y-0" : "-translate-y-4"}` }, /* @__PURE__ */ import_react62.default.createElement("h2", { className: "text-[29px] tracking-tight mb-2 leading-none" }, profile.name), /* @__PURE__ */ import_react62.default.createElement("div", { className: "flex flex-col gap-0.5" }, /* @__PURE__ */ import_react62.default.createElement("p", { className: "text-[15px] text-white/80 tracking-wide" }, profile.role), profile.description && /* @__PURE__ */ import_react62.default.createElement("p", { className: "text-[15px] text-white/80 tracking-wide mt-1" }, profile.description)))
|
|
3273
3358
|
);
|
|
3274
3359
|
}),
|
|
3275
|
-
/* @__PURE__ */
|
|
3276
|
-
/* @__PURE__ */
|
|
3277
|
-
/* @__PURE__ */
|
|
3360
|
+
/* @__PURE__ */ import_react62.default.createElement("div", { className: "absolute top-0 left-0 w-[20%] h-full z-40 cursor-w-resize hidden md:block", onClick: prevSlide, "aria-label": "Previous image" }),
|
|
3361
|
+
/* @__PURE__ */ import_react62.default.createElement("div", { className: "absolute top-0 right-0 w-[20%] h-full z-40 cursor-e-resize hidden md:block", onClick: nextSlide, "aria-label": "Next image" }),
|
|
3362
|
+
/* @__PURE__ */ import_react62.default.createElement("div", { className: "absolute bottom-6 md:bottom-8 left-0 w-full px-4 z-30 flex justify-center items-center gap-2" }, profiles.map((_, idx) => /* @__PURE__ */ import_react62.default.createElement(
|
|
3278
3363
|
"button",
|
|
3279
3364
|
{
|
|
3280
3365
|
key: idx,
|
|
@@ -3287,13 +3372,13 @@ var ConsultantShowcase = ({
|
|
|
3287
3372
|
};
|
|
3288
3373
|
|
|
3289
3374
|
// src/components/ContentGridBlock.tsx
|
|
3290
|
-
var
|
|
3375
|
+
var import_react64 = __toESM(require("react"));
|
|
3291
3376
|
var import_image11 = __toESM(require("next/image"));
|
|
3292
|
-
var
|
|
3293
|
-
var
|
|
3377
|
+
var import_react65 = require("@hugeicons/react");
|
|
3378
|
+
var import_core_free_icons21 = require("@hugeicons/core-free-icons");
|
|
3294
3379
|
var ImageWithLoader2 = ({ src, alt, className, sizes }) => {
|
|
3295
|
-
const [isLoading, setIsLoading] = (0,
|
|
3296
|
-
return /* @__PURE__ */
|
|
3380
|
+
const [isLoading, setIsLoading] = (0, import_react64.useState)(true);
|
|
3381
|
+
return /* @__PURE__ */ import_react64.default.createElement("div", { className: `relative overflow-hidden bg-neutral-100 ${className}` }, isLoading && /* @__PURE__ */ import_react64.default.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-20 bg-neutral-100/50 backdrop-blur-sm transition-opacity duration-300" }, /* @__PURE__ */ import_react64.default.createElement(import_react65.HugeiconsIcon, { icon: import_core_free_icons21.Loading03Icon, size: 24, className: "animate-spin text-neutral-400" })), /* @__PURE__ */ import_react64.default.createElement(
|
|
3297
3382
|
import_image11.default,
|
|
3298
3383
|
{
|
|
3299
3384
|
src,
|
|
@@ -3315,30 +3400,30 @@ var ContentGridBlock = ({
|
|
|
3315
3400
|
middleBottomCard,
|
|
3316
3401
|
rightCards
|
|
3317
3402
|
}) => {
|
|
3318
|
-
return /* @__PURE__ */
|
|
3403
|
+
return /* @__PURE__ */ import_react64.default.createElement("section", { className: " w-full flex justify-center z-10 relative" }, /* @__PURE__ */ import_react64.default.createElement("div", { className: "max-w-300 w-full px-4 md:px-8 flex flex-col gap-12" }, /* @__PURE__ */ import_react64.default.createElement("div", { className: "flex flex-col lg:flex-row justify-between items-start lg:items-end gap-6 w-full" }, /* @__PURE__ */ import_react64.default.createElement("h2", { className: "text-3xl tracking-tight text-black leading-[1.15] max-w-lg" }, header.titlePrefix, " ", /* @__PURE__ */ import_react64.default.createElement("span", { className: "gradient-text" }, header.highlightText))), /* @__PURE__ */ import_react64.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6" }, /* @__PURE__ */ import_react64.default.createElement("div", { className: "flex flex-col justify-end" }, /* @__PURE__ */ import_react64.default.createElement("div", { className: "bg-black rounded-3xl p-8 flex flex-col h-80" }, /* @__PURE__ */ import_react64.default.createElement("p", { className: "text-[17px] text-white leading-snug mb-4" }, leftCard.mainText), leftCard.tag && /* @__PURE__ */ import_react64.default.createElement("span", { className: "mb-auto text-[11px] text-neutral-200 tracking-widest" }, leftCard.tag), /* @__PURE__ */ import_react64.default.createElement("div", { className: "flex items-center justify-between mt-8" }, /* @__PURE__ */ import_react64.default.createElement("div", null, /* @__PURE__ */ import_react64.default.createElement("h4", { className: "text-[15px] text-white" }, leftCard.title), /* @__PURE__ */ import_react64.default.createElement("p", { className: "text-[13px] text-neutral-300" }, leftCard.subtitle)), /* @__PURE__ */ import_react64.default.createElement("div", { className: "w-10 h-10 rounded-full overflow-hidden relative" }, /* @__PURE__ */ import_react64.default.createElement(import_image11.default, { src: leftCard.thumbnailSrc, alt: leftCard.title, fill: true, className: "object-cover" }))))), /* @__PURE__ */ import_react64.default.createElement("div", { className: "flex flex-col gap-6" }, /* @__PURE__ */ import_react64.default.createElement("div", { className: "bg-white rounded-3xl p-8 flex flex-col relative h-75" }, /* @__PURE__ */ import_react64.default.createElement("div", { className: "absolute top-6 right-6 flex flex-col items-end gap-1" }, /* @__PURE__ */ import_react64.default.createElement("span", { className: "text-[11px] text-neutral-400 tracking-wide" }, middleTopCard.topRightLabel), /* @__PURE__ */ import_react64.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ import_react64.default.createElement("div", { className: "flex -space-x-2" }, middleTopCard.topRightAvatars.map((src, i) => /* @__PURE__ */ import_react64.default.createElement("div", { key: i, className: "w-7 h-7 rounded-full border-2 border-white overflow-hidden relative z-10" }, /* @__PURE__ */ import_react64.default.createElement(import_image11.default, { src, alt: "Avatar", fill: true, className: "object-cover", sizes: "28px" })))), /* @__PURE__ */ import_react64.default.createElement("span", { className: "text-sm text-neutral-500" }, middleTopCard.topRightCount))), /* @__PURE__ */ import_react64.default.createElement("div", { className: "grow flex flex-col justify-center items-center py-6" }, /* @__PURE__ */ import_react64.default.createElement("div", { className: "px-5 py-2 rounded-full bg-neutral-50/50 border border-neutral-100 text-[13px] text-neutral-600" }, middleTopCard.badgePrefix, " ", /* @__PURE__ */ import_react64.default.createElement("span", { className: " text-black" }, middleTopCard.badgeHighlight), middleTopCard.badgeSuffix)), /* @__PURE__ */ import_react64.default.createElement("div", { className: "mt-auto" }, /* @__PURE__ */ import_react64.default.createElement("p", { className: "text-[11px] text-neutral-400 tracking-wide mb-1" }, middleTopCard.title), /* @__PURE__ */ import_react64.default.createElement("p", { className: "text-[14px] text-black leading-snug pr-4" }, middleTopCard.description))), /* @__PURE__ */ import_react64.default.createElement("div", { className: "bg-white rounded-3xl p-8 flex flex-col h-80" }, /* @__PURE__ */ import_react64.default.createElement("div", { className: "flex justify-between items-start mb-6" }, /* @__PURE__ */ import_react64.default.createElement("div", null, /* @__PURE__ */ import_react64.default.createElement("h4", { className: "text-[15px] text-black leading-tight" }, middleBottomCard.title), /* @__PURE__ */ import_react64.default.createElement("p", { className: "text-[13px] text-neutral-400" }, middleBottomCard.subtitle)), /* @__PURE__ */ import_react64.default.createElement("div", { className: "w-10 h-10 rounded-full overflow-hidden relative" }, /* @__PURE__ */ import_react64.default.createElement(import_image11.default, { src: middleBottomCard.thumbnailSrc, alt: middleBottomCard.title, fill: true, className: "object-cover" }))), /* @__PURE__ */ import_react64.default.createElement("div", { className: "mt-auto" }, /* @__PURE__ */ import_react64.default.createElement("p", { className: "text-[16px] text-black leading-snug mb-4" }, middleBottomCard.mainText), middleBottomCard.tag && /* @__PURE__ */ import_react64.default.createElement("span", { className: "text-[11px] text-neutral-400 tracking-widest" }, middleBottomCard.tag)))), /* @__PURE__ */ import_react64.default.createElement("div", { className: "flex flex-col gap-6" }, rightCards.slice(0, 2).map((card, idx) => /* @__PURE__ */ import_react64.default.createElement("div", { key: idx, className: "relative w-full h-80 text-white rounded-3xl overflow-hidden group" }, /* @__PURE__ */ import_react64.default.createElement(
|
|
3319
3404
|
ImageWithLoader2,
|
|
3320
3405
|
{
|
|
3321
3406
|
src: card.bgImageSrc,
|
|
3322
3407
|
alt: card.title,
|
|
3323
3408
|
className: "absolute inset-0 w-full h-full"
|
|
3324
3409
|
}
|
|
3325
|
-
), /* @__PURE__ */
|
|
3410
|
+
), /* @__PURE__ */ import_react64.default.createElement("div", { className: "absolute inset-0 z-20 pointer-events-none" }), /* @__PURE__ */ import_react64.default.createElement("div", { className: "absolute inset-0 z-30 p-6 flex flex-col justify-end text-white" }, /* @__PURE__ */ import_react64.default.createElement("p", { className: "text-[14px] leading-snug mb-3 pr-2 text-white/90" }, card.mainText), card.tag && /* @__PURE__ */ import_react64.default.createElement("span", { className: "mb-4 text-[11px] text-white/50 tracking-widest" }, card.tag), /* @__PURE__ */ import_react64.default.createElement("div", { className: "pt-3" }, /* @__PURE__ */ import_react64.default.createElement("h4", { className: "text-[15px] text-white tracking-wide" }, card.title), /* @__PURE__ */ import_react64.default.createElement("p", { className: "text-[13px] text-white/60" }, card.subtitle)))))))));
|
|
3326
3411
|
};
|
|
3327
3412
|
|
|
3328
3413
|
// src/components/ManagedProjectsBlock.tsx
|
|
3329
|
-
var
|
|
3330
|
-
var
|
|
3414
|
+
var import_react66 = __toESM(require("react"));
|
|
3415
|
+
var import_link9 = __toESM(require("next/link"));
|
|
3331
3416
|
var GridSection = ({
|
|
3332
3417
|
children,
|
|
3333
3418
|
isLast = false,
|
|
3334
3419
|
className = "py-8 md:py-10"
|
|
3335
|
-
}) => /* @__PURE__ */
|
|
3420
|
+
}) => /* @__PURE__ */ import_react66.default.createElement("div", { className: `relative px-5 md:px-12 ${className} ${!isLast ? "" : ""}` }, children);
|
|
3336
3421
|
var ManagedProjectsBlock = ({
|
|
3337
3422
|
tagline,
|
|
3338
3423
|
title,
|
|
3339
3424
|
projects
|
|
3340
3425
|
}) => {
|
|
3341
|
-
return /* @__PURE__ */
|
|
3426
|
+
return /* @__PURE__ */ import_react66.default.createElement("div", { className: "grow pt-4 pb-20 px-3 md:px-8 w-full flex justify-center z-10 relative" }, /* @__PURE__ */ import_react66.default.createElement("div", { className: "relative bg-white rounded-2xl w-full max-w-5xl mx-auto overflow-hidden" }, /* @__PURE__ */ import_react66.default.createElement(
|
|
3342
3427
|
"div",
|
|
3343
3428
|
{
|
|
3344
3429
|
className: "absolute inset-0 pointer-events-none opacity-[0.03] z-0",
|
|
@@ -3347,10 +3432,10 @@ var ManagedProjectsBlock = ({
|
|
|
3347
3432
|
backgroundRepeat: "repeat"
|
|
3348
3433
|
}
|
|
3349
3434
|
}
|
|
3350
|
-
), /* @__PURE__ */
|
|
3435
|
+
), /* @__PURE__ */ import_react66.default.createElement("div", { className: "relative z-10" }, /* @__PURE__ */ import_react66.default.createElement(GridSection, null, tagline && /* @__PURE__ */ import_react66.default.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500 text-left block " }, tagline), /* @__PURE__ */ import_react66.default.createElement("h1", { className: " text-3xl mt-4 text-black tracking-tight text-left" }, title)), projects.map((project, index) => {
|
|
3351
3436
|
const isLast = index === projects.length - 1;
|
|
3352
|
-
const projectContent = /* @__PURE__ */
|
|
3353
|
-
return /* @__PURE__ */
|
|
3437
|
+
const projectContent = /* @__PURE__ */ import_react66.default.createElement("div", { className: "group block w-full" }, /* @__PURE__ */ import_react66.default.createElement("div", { className: "flex flex-col md:flex-row md:items-center justify-between gap-3 md:gap-4 mb-4 md:mb-5" }, /* @__PURE__ */ import_react66.default.createElement("div", { className: "flex items-center gap-3 md:gap-4" }, /* @__PURE__ */ import_react66.default.createElement("h2", { className: " text-[16px] text-black transition-all flex items-center gap-2" }, project.title, /* @__PURE__ */ import_react66.default.createElement("span", { className: "text-[11px] opacity-0 -translate-x-2 group-hover:opacity-100 group-hover:translate-x-0 transition-all duration-300" }, project.isExternal ? "\u2197" : "\u2192")), /* @__PURE__ */ import_react66.default.createElement("span", { className: `text-[9px] px-2.5 py-1 rounded-full tracking-[0.15em] transition-colors ${project.status.toLowerCase() === "production" ? "bg-black text-white" : "bg-neutral-100 text-neutral-500 group-hover:bg-neutral-100 group-hover:text-black"}` }, project.status)), /* @__PURE__ */ import_react66.default.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-500 shrink-0 " }, project.date)), /* @__PURE__ */ import_react66.default.createElement("p", { className: "text-[13px] leading-[1.8] text-neutral-600 max-w-4xl text-left transition-colors group-hover:text-black" }, project.description));
|
|
3438
|
+
return /* @__PURE__ */ import_react66.default.createElement(GridSection, { key: project.id || index, isLast, className: isLast ? "py-8 md:py-10 pb-12 md:pb-14" : "py-8 md:py-10" }, project.isExternal ? /* @__PURE__ */ import_react66.default.createElement("a", { href: project.link, target: "_blank", rel: "noopener noreferrer", className: "block outline-none" }, projectContent) : /* @__PURE__ */ import_react66.default.createElement(import_link9.default, { href: project.link, className: "block outline-none" }, projectContent));
|
|
3354
3439
|
}))));
|
|
3355
3440
|
};
|
|
3356
3441
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -3388,6 +3473,7 @@ var ManagedProjectsBlock = ({
|
|
|
3388
3473
|
UniversalOrganizationPage,
|
|
3389
3474
|
UniversalProfilePage,
|
|
3390
3475
|
UniversalProfileSettings,
|
|
3476
|
+
UniversalSidebar,
|
|
3391
3477
|
UniversalTransactionPage,
|
|
3392
3478
|
UniversalWalletPage,
|
|
3393
3479
|
WaitlistDialog
|