@retinalabsllc/zairusjs 5.1.3 → 5.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -89,6 +89,7 @@ __export(index_exports, {
89
89
  UniversalSidebar: () => UniversalSidebar,
90
90
  UniversalTransactionPage: () => UniversalTransactionPage,
91
91
  UniversalTrashView: () => UniversalTrashView,
92
+ UniversalWalletPage: () => UniversalWalletPage,
92
93
  ZairusAuth: () => ZairusAuth,
93
94
  ZairusShareCard: () => ZairusShareCard
94
95
  });
@@ -2443,7 +2444,7 @@ var UniversalOrganizationPage = ({
2443
2444
  };
2444
2445
  const hasChanges = web3Name !== initialOrgName || slug !== initialSlug || username !== initialSlug;
2445
2446
  const isSaveDisabled = isSubmitting || isReadOnly || isCheckingSlug || !hasChanges || web3Name.length < 3 || slug.length < 3 || username.length < 3 || slug !== initialSlug && slugAvailable === false;
2446
- return /* @__PURE__ */ import_react43.default.createElement("div", { className: "flex flex-col gap-8 animate-in max-w-5xl rounded-2xl p-6 bg-white fade-in duration-300 " }, /* @__PURE__ */ import_react43.default.createElement(ManagedToaster, null), /* @__PURE__ */ import_react43.default.createElement("div", { className: "flex items-start justify-between gap-4" }, /* @__PURE__ */ import_react43.default.createElement("div", null, /* @__PURE__ */ import_react43.default.createElement("h1", { className: "text-black text-xl mb-1 tracking-tight" }, "Web3 Profile"), /* @__PURE__ */ import_react43.default.createElement("p", { className: "text-xs text-neutral-500" }, "Manage your financial payment handle identifiers and global public cryptographic signature identity details.")), isReadOnly && /* @__PURE__ */ import_react43.default.createElement("span", { className: "p-2 w-9 h-9 bg-neutral-50 text-neutral-500 rounded-full shrink-0" }, /* @__PURE__ */ import_react43.default.createElement(import_react44.HugeiconsIcon, { icon: import_core_free_icons11.CircleLock02Icon, size: 18, className: "text-current" }))), bannerProps && /* @__PURE__ */ import_react43.default.createElement(Banner, { ...bannerProps }), /* @__PURE__ */ import_react43.default.createElement("div", { className: "w-full max-w-5xl" }, /* @__PURE__ */ import_react43.default.createElement("form", { className: "flex flex-col gap-8", onSubmit: handleSave, autoComplete: "off" }, /* @__PURE__ */ import_react43.default.createElement(
2447
+ return /* @__PURE__ */ import_react43.default.createElement("div", { className: "flex flex-col gap-8 animate-in max-w-5xl rounded-2xl p-6 bg-white fade-in duration-300 " }, /* @__PURE__ */ import_react43.default.createElement(ManagedToaster, null), /* @__PURE__ */ import_react43.default.createElement("div", { className: "flex items-start justify-between gap-4" }, /* @__PURE__ */ import_react43.default.createElement("div", null, /* @__PURE__ */ import_react43.default.createElement("h1", { className: "text-black text-xl mb-1 tracking-tight" }, "Defi Profile"), /* @__PURE__ */ import_react43.default.createElement("p", { className: "text-xs text-neutral-500" }, "Manage your financial payment handle identifiers and global public cryptographic signature identity details.")), isReadOnly && /* @__PURE__ */ import_react43.default.createElement("span", { className: "p-2 w-9 h-9 bg-neutral-50 text-neutral-500 rounded-full shrink-0" }, /* @__PURE__ */ import_react43.default.createElement(import_react44.HugeiconsIcon, { icon: import_core_free_icons11.CircleLock02Icon, size: 18, className: "text-current" }))), bannerProps && /* @__PURE__ */ import_react43.default.createElement(Banner, { ...bannerProps }), /* @__PURE__ */ import_react43.default.createElement("div", { className: "w-full max-w-5xl" }, /* @__PURE__ */ import_react43.default.createElement("form", { className: "flex flex-col gap-8", onSubmit: handleSave, autoComplete: "off" }, /* @__PURE__ */ import_react43.default.createElement(
2447
2448
  TextInput,
2448
2449
  {
2449
2450
  label: "Display Name",
@@ -4220,22 +4221,138 @@ var UniversalHomeView = ({
4220
4221
  )));
4221
4222
  };
4222
4223
 
4223
- // src/components/CardLogo.tsx
4224
+ // src/components/UniversalWalletPage.tsx
4224
4225
  var import_react76 = __toESM(require("react"));
4226
+ var import_react77 = require("@hugeicons/react");
4227
+ var import_core_free_icons27 = require("@hugeicons/core-free-icons");
4228
+ var PageSpinner7 = () => /* @__PURE__ */ import_react76.default.createElement("div", { className: "flex justify-center items-center py-12" }, /* @__PURE__ */ import_react76.default.createElement(import_react77.HugeiconsIcon, { icon: import_core_free_icons27.Loading03Icon, size: 32, className: "animate-spin mb-4 text-black" }));
4229
+ var WalletLogo = ({ src, alt, sizeClass = "w-10 h-10" }) => {
4230
+ const [isLoaded, setIsLoaded] = (0, import_react76.useState)(false);
4231
+ return /* @__PURE__ */ import_react76.default.createElement("div", { className: `relative shrink-0 rounded-full bg-neutral-50 flex items-center justify-center overflow-hidden border border-neutral-100 ${sizeClass}` }, !isLoaded && /* @__PURE__ */ import_react76.default.createElement(import_react77.HugeiconsIcon, { icon: import_core_free_icons27.Loading03Icon, size: 16, className: "animate-spin text-neutral-300 absolute" }), /* @__PURE__ */ import_react76.default.createElement(
4232
+ "img",
4233
+ {
4234
+ src,
4235
+ alt,
4236
+ onLoad: () => setIsLoaded(true),
4237
+ className: `w-full h-full object-cover transition-opacity duration-300 ${isLoaded ? "opacity-100" : "opacity-0"}`
4238
+ }
4239
+ ));
4240
+ };
4241
+ var UniversalWalletPage = ({
4242
+ headerTitle,
4243
+ headerDescription,
4244
+ hideControls = false,
4245
+ hideBalanceAmounts = false,
4246
+ isGeneratingStatement = false,
4247
+ wallets,
4248
+ isLoading = false,
4249
+ renderQrCode,
4250
+ onDownloadPayId,
4251
+ onCopyAddress
4252
+ }) => {
4253
+ const [selectedWallet, setSelectedWallet] = (0, import_react76.useState)(null);
4254
+ const [localSearchQuery, setLocalSearchQuery] = (0, import_react76.useState)("");
4255
+ const [showToast, setShowToast] = (0, import_react76.useState)(false);
4256
+ const filteredWallets = wallets.filter((wallet) => {
4257
+ const q = localSearchQuery.toLowerCase();
4258
+ return wallet.name.toLowerCase().includes(q) || wallet.currency.toLowerCase().includes(q) || wallet.network.toLowerCase().includes(q);
4259
+ });
4260
+ const primaryBaseShadow = `inset 0 1.5px 0 0 rgba(255, 255, 255, 0.3), inset 0 -2px 0 0 rgba(0, 0, 0, 0.5), 0 3px 0 0 #0c0c0c, 0 6px 10px rgba(0, 0, 0, 0.3)`;
4261
+ const primaryHoverShadow = `inset 0 1.5px 0 0 rgba(255, 255, 255, 0.35), inset 0 -2px 0 0 rgba(0, 0, 0, 0.5), 0 4px 0 0 #0c0c0c, 0 8px 12px rgba(0, 0, 0, 0.35)`;
4262
+ const primaryActiveShadow = `inset 0 1px 0 0 rgba(255, 255, 255, 0.1), inset 0 -1px 0 0 rgba(0, 0, 0, 0.5), 0 1px 0 0 #0c0c0c, 0 2px 4px rgba(0, 0, 0, 0.2)`;
4263
+ const disabledShadow = `inset 0 1px 0 0 rgba(255, 255, 255, 0.15), inset 0 -1px 0 0 rgba(0, 0, 0, 0.3), 0 1px 0 0 #1c1c1c`;
4264
+ const handleCopy = (wallet) => {
4265
+ if (onCopyAddress) onCopyAddress(wallet);
4266
+ if (typeof navigator !== "undefined" && navigator.clipboard) {
4267
+ navigator.clipboard.writeText(wallet.address).catch(() => {
4268
+ });
4269
+ }
4270
+ setShowToast(true);
4271
+ setTimeout(() => setShowToast(false), 2500);
4272
+ };
4273
+ return /* @__PURE__ */ import_react76.default.createElement("div", { className: "flex flex-col gap-6 animate-in max-w-5xl fade-in duration-300" }, !hideControls && /* @__PURE__ */ import_react76.default.createElement("div", { className: "flex flex-col sm:flex-row items-center justify-between gap-4 w-full" }, /* @__PURE__ */ import_react76.default.createElement("div", { className: "relative w-full sm:w-96" }, /* @__PURE__ */ import_react76.default.createElement("div", { className: "absolute inset-y-0 left-0 pl-4 flex items-center pointer-events-none" }, /* @__PURE__ */ import_react76.default.createElement(import_react77.HugeiconsIcon, { icon: import_core_free_icons27.Search01Icon, size: 16, className: "text-neutral-400" })), /* @__PURE__ */ import_react76.default.createElement(
4274
+ "input",
4275
+ {
4276
+ type: "text",
4277
+ placeholder: "Search wallets by name or network...",
4278
+ value: localSearchQuery,
4279
+ onChange: (e) => setLocalSearchQuery(e.target.value),
4280
+ className: "w-full pl-10 pr-4 py-2 bg-white rounded-full text-[13px] text-black outline-none transition-colors"
4281
+ }
4282
+ ))), /* @__PURE__ */ import_react76.default.createElement("div", { className: "flex flex-col gap-8 p-6 rounded-2xl bg-white w-full" }, /* @__PURE__ */ import_react76.default.createElement("div", { className: "flex flex-col sm:flex-row sm:items-start justify-between gap-4" }, /* @__PURE__ */ import_react76.default.createElement("div", null, /* @__PURE__ */ import_react76.default.createElement("h1", { className: "text-black text-xl mb-1 tracking-tight" }, headerTitle), headerDescription && /* @__PURE__ */ import_react76.default.createElement("p", { className: "text-xs text-neutral-500" }, headerDescription))), /* @__PURE__ */ import_react76.default.createElement("div", { className: "w-full overflow-hidden" }, isLoading ? /* @__PURE__ */ import_react76.default.createElement(PageSpinner7, null) : /* @__PURE__ */ import_react76.default.createElement("div", { className: "flex flex-col min-w-0" }, /* @__PURE__ */ import_react76.default.createElement("div", { className: "divide-y divide-neutral-100" }, filteredWallets.length === 0 ? /* @__PURE__ */ import_react76.default.createElement("p", { className: "text-xs text-neutral-500 py-6 text-center" }, "No wallets found") : filteredWallets.map((wallet) => /* @__PURE__ */ import_react76.default.createElement(
4283
+ "div",
4284
+ {
4285
+ key: wallet.id,
4286
+ onClick: () => setSelectedWallet(wallet),
4287
+ className: "flex items-center justify-between py-4 hover:bg-neutral-50/50 transition-colors cursor-pointer group min-w-0 px-2 -mx-2 rounded-xl"
4288
+ },
4289
+ /* @__PURE__ */ import_react76.default.createElement("div", { className: "flex items-center gap-4 min-w-0 flex-1" }, /* @__PURE__ */ import_react76.default.createElement(WalletLogo, { src: wallet.logoSrc, alt: wallet.name }), /* @__PURE__ */ import_react76.default.createElement("div", { className: "min-w-0 flex-1 flex flex-col gap-1" }, /* @__PURE__ */ import_react76.default.createElement("p", { className: "text-[13px] text-black truncate font-medium" }, wallet.name), /* @__PURE__ */ import_react76.default.createElement("p", { className: `text-[13px] text-neutral-500 truncate transition-all duration-300 ${hideBalanceAmounts ? "blur-sm opacity-40 select-none" : ""}` }, wallet.balance, " ", wallet.currency))),
4290
+ /* @__PURE__ */ import_react76.default.createElement("div", { className: "shrink-0 flex flex-col items-end gap-1 text-right" }, /* @__PURE__ */ import_react76.default.createElement("span", { className: "text-[10px] tracking-wide text-neutral-500 bg-neutral-100/80 px-2.5 py-1 rounded-full uppercase" }, wallet.network))
4291
+ )))))), selectedWallet && /* @__PURE__ */ import_react76.default.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ import_react76.default.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => {
4292
+ setSelectedWallet(null);
4293
+ setShowToast(false);
4294
+ } }), /* @__PURE__ */ import_react76.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]" }, showToast && /* @__PURE__ */ import_react76.default.createElement("div", { className: "absolute top-4 left-1/2 -translate-x-1/2 z-50 bg-neutral-900 text-white px-5 py-2.5 rounded-full text-[12px] font-medium tracking-wide shadow-xl animate-in slide-in-from-top-4 fade-in duration-200 pointer-events-none whitespace-nowrap" }, "Address copied to clipboard"), /* @__PURE__ */ import_react76.default.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, /* @__PURE__ */ import_react76.default.createElement("h3", { className: "text-[15px] text-black tracking-tight" }, "Wallet Details"), /* @__PURE__ */ import_react76.default.createElement("button", { onClick: () => {
4295
+ setSelectedWallet(null);
4296
+ setShowToast(false);
4297
+ }, className: "text-neutral-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ import_react76.default.createElement(import_react77.HugeiconsIcon, { icon: import_core_free_icons27.CancelCircleIcon, size: 18 }))), /* @__PURE__ */ import_react76.default.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-6 pt-2" }, /* @__PURE__ */ import_react76.default.createElement("div", { className: "flex flex-col items-center justify-center mb-6" }, /* @__PURE__ */ import_react76.default.createElement(WalletLogo, { src: selectedWallet.logoSrc, alt: selectedWallet.name, sizeClass: "w-14 h-14 mb-4" }), /* @__PURE__ */ import_react76.default.createElement("h2", { className: `text-2xl text-black mb-2 transition-all duration-300 font-medium ${hideBalanceAmounts ? "blur-[6px] opacity-40 select-none" : ""}` }, selectedWallet.balance, " ", selectedWallet.currency), /* @__PURE__ */ import_react76.default.createElement("span", { className: "text-[9px] tracking-widest text-neutral-500 px-4 py-1.5 rounded-full bg-neutral-50 uppercase mt-1" }, selectedWallet.network, " NETWORK")), renderQrCode && /* @__PURE__ */ import_react76.default.createElement("div", { className: "w-full flex justify-center mb-8" }, renderQrCode(selectedWallet)), /* @__PURE__ */ import_react76.default.createElement("div", { className: "grid grid-cols-1 gap-y-6 gap-x-4 mb-10" }, /* @__PURE__ */ import_react76.default.createElement("div", null, /* @__PURE__ */ import_react76.default.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Wallet Address"), /* @__PURE__ */ import_react76.default.createElement("span", { className: "text-[13px] text-black break-all font-medium" }, selectedWallet.address)), /* @__PURE__ */ import_react76.default.createElement("div", null, /* @__PURE__ */ import_react76.default.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Wallet Name"), /* @__PURE__ */ import_react76.default.createElement("span", { className: "text-[13px] text-black" }, selectedWallet.name))), /* @__PURE__ */ import_react76.default.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ import_react76.default.createElement(
4298
+ "button",
4299
+ {
4300
+ disabled: isGeneratingStatement,
4301
+ onClick: () => onDownloadPayId && onDownloadPayId(selectedWallet),
4302
+ className: `
4303
+ relative w-full flex items-center justify-center py-3 rounded-full bg-neutral-950 text-white
4304
+ transition-all duration-150 select-none outline-none
4305
+ ${isGeneratingStatement ? "opacity-50 cursor-not-allowed" : "active:translate-y-0.5"}
4306
+ `,
4307
+ style: { boxShadow: isGeneratingStatement ? disabledShadow : primaryBaseShadow },
4308
+ onMouseEnter: (e) => {
4309
+ if (isGeneratingStatement) return;
4310
+ e.currentTarget.style.boxShadow = primaryHoverShadow;
4311
+ e.currentTarget.style.transform = "translateY(-1px)";
4312
+ },
4313
+ onMouseLeave: (e) => {
4314
+ if (isGeneratingStatement) return;
4315
+ e.currentTarget.style.boxShadow = primaryBaseShadow;
4316
+ e.currentTarget.style.transform = "translateY(0px)";
4317
+ },
4318
+ onMouseDown: (e) => {
4319
+ if (isGeneratingStatement) return;
4320
+ e.currentTarget.style.boxShadow = primaryActiveShadow;
4321
+ e.currentTarget.style.transform = "translateY(2px)";
4322
+ },
4323
+ onMouseUp: (e) => {
4324
+ if (isGeneratingStatement) return;
4325
+ e.currentTarget.style.transform = "translateY(-1px)";
4326
+ }
4327
+ },
4328
+ /* @__PURE__ */ import_react76.default.createElement("span", { className: "absolute inset-0 rounded-full py-2 bg-linear-to-b from-white/10 via-white/5 to-transparent pointer-events-none" }),
4329
+ /* @__PURE__ */ import_react76.default.createElement("span", { className: "relative z-10 flex items-center justify-center gap-2 text-[13px] tracking-wide font-medium" }, isGeneratingStatement ? /* @__PURE__ */ import_react76.default.createElement(import_react77.HugeiconsIcon, { icon: import_core_free_icons27.Loading03Icon, size: 16, className: "animate-spin text-white" }) : "Generate Statement")
4330
+ ), /* @__PURE__ */ import_react76.default.createElement(
4331
+ "button",
4332
+ {
4333
+ onClick: () => handleCopy(selectedWallet),
4334
+ className: "w-full flex items-center justify-center py-2 rounded-full border border-neutral-200 text-black outline-none text-[13px] tracking-wide"
4335
+ },
4336
+ "Copy Wallet Address"
4337
+ ))))));
4338
+ };
4339
+
4340
+ // src/components/CardLogo.tsx
4341
+ var import_react78 = __toESM(require("react"));
4225
4342
  var CardLogo = ({ network, className = "" }) => {
4226
4343
  if (network === "MASTERCARD") {
4227
- return /* @__PURE__ */ import_react76.default.createElement("svg", { className, fill: "currentColor", viewBox: "0 0 32 32", xmlns: "http://www.w3.org/2000/svg" }, /* @__PURE__ */ import_react76.default.createElement("title", null, "Mastercard"), /* @__PURE__ */ import_react76.default.createElement("path", { d: "M16 8.73c-0.12 0.094-0.236 0.187-0.349 0.288-1.955 1.705-3.184 4.2-3.184 6.982s1.228 5.277 3.172 6.973l0.011 0.009c0.112 0.1 0.231 0.197 0.349 0.29 0.12-0.092 0.236-0.19 0.349-0.29 1.955-1.705 3.183-4.2 3.183-6.982s-1.228-5.277-3.172-6.973l-0.011-0.009c-0.112-0.1-0.23-0.195-0.349-0.288zM21.721 6.745c-0.005 0-0.011-0-0.018-0-1.903 0-3.67 0.577-5.138 1.566l0.033-0.021c0.075 0.059 0.143 0.121 0.205 0.186l0.001 0.001c2.116 1.836 3.446 4.528 3.446 7.531 0 2.996-1.323 5.682-3.417 7.507l-0.012 0.010c-0.072 0.061-0.15 0.122-0.226 0.182 1.441 0.97 3.216 1.549 5.125 1.549 5.112 0 9.256-4.144 9.256-9.256s-4.143-9.255-9.255-9.256h-0zM15.18 23.526c0.072 0.061 0.15 0.122 0.226 0.182-1.44 0.969-3.214 1.547-5.123 1.547-5.112 0-9.255-4.144-9.255-9.255s4.144-9.255 9.255-9.255c1.907 0 3.68 0.577 5.153 1.566l-0.033-0.021c-0.075 0.059-0.143 0.121-0.205 0.186l-0.001 0.001c-2.116 1.836-3.446 4.528-3.446 7.531 0 2.996 1.323 5.682 3.417 7.507l0.012 0.010z" }));
4344
+ return /* @__PURE__ */ import_react78.default.createElement("svg", { className, fill: "currentColor", viewBox: "0 0 32 32", xmlns: "http://www.w3.org/2000/svg" }, /* @__PURE__ */ import_react78.default.createElement("title", null, "Mastercard"), /* @__PURE__ */ import_react78.default.createElement("path", { d: "M16 8.73c-0.12 0.094-0.236 0.187-0.349 0.288-1.955 1.705-3.184 4.2-3.184 6.982s1.228 5.277 3.172 6.973l0.011 0.009c0.112 0.1 0.231 0.197 0.349 0.29 0.12-0.092 0.236-0.19 0.349-0.29 1.955-1.705 3.183-4.2 3.183-6.982s-1.228-5.277-3.172-6.973l-0.011-0.009c-0.112-0.1-0.23-0.195-0.349-0.288zM21.721 6.745c-0.005 0-0.011-0-0.018-0-1.903 0-3.67 0.577-5.138 1.566l0.033-0.021c0.075 0.059 0.143 0.121 0.205 0.186l0.001 0.001c2.116 1.836 3.446 4.528 3.446 7.531 0 2.996-1.323 5.682-3.417 7.507l-0.012 0.010c-0.072 0.061-0.15 0.122-0.226 0.182 1.441 0.97 3.216 1.549 5.125 1.549 5.112 0 9.256-4.144 9.256-9.256s-4.143-9.255-9.255-9.256h-0zM15.18 23.526c0.072 0.061 0.15 0.122 0.226 0.182-1.44 0.969-3.214 1.547-5.123 1.547-5.112 0-9.255-4.144-9.255-9.255s4.144-9.255 9.255-9.255c1.907 0 3.68 0.577 5.153 1.566l-0.033-0.021c-0.075 0.059-0.143 0.121-0.205 0.186l-0.001 0.001c-2.116 1.836-3.446 4.528-3.446 7.531 0 2.996 1.323 5.682 3.417 7.507l0.012 0.010z" }));
4228
4345
  }
4229
4346
  if (network === "VERVE") {
4230
- return /* @__PURE__ */ import_react76.default.createElement("div", { className: `font-bold italic flex items-center justify-center tracking-widest ${className}`, style: { fontFamily: "sans-serif" } }, "Verve");
4347
+ return /* @__PURE__ */ import_react78.default.createElement("div", { className: `font-bold italic flex items-center justify-center tracking-widest ${className}`, style: { fontFamily: "sans-serif" } }, "Verve");
4231
4348
  }
4232
- return /* @__PURE__ */ import_react76.default.createElement("svg", { className, fill: "currentColor", viewBox: "0 0 32 32", xmlns: "http://www.w3.org/2000/svg" }, /* @__PURE__ */ import_react76.default.createElement("title", null, "Visa"), /* @__PURE__ */ import_react76.default.createElement("path", { d: "M15.854 11.329l-2.003 9.367h-2.424l2.006-9.367zM26.051 17.377l1.275-3.518 0.735 3.518zM28.754 20.696h2.242l-1.956-9.367h-2.069c-0.003-0-0.007-0-0.010-0-0.459 0-0.853 0.281-1.019 0.68l-0.003 0.007-3.635 8.68h2.544l0.506-1.4h3.109zM22.429 17.638c0.010-2.473-3.419-2.609-3.395-3.714 0.008-0.336 0.327-0.694 1.027-0.785 0.13-0.013 0.28-0.021 0.432-0.021 0.711 0 1.385 0.162 1.985 0.452l-0.027-0.012 0.425-1.987c-0.673-0.261-1.452-0.413-2.266-0.416h-0.001c-2.396 0-4.081 1.275-4.096 3.098-0.015 1.348 1.203 2.099 2.122 2.549 0.945 0.459 1.262 0.754 1.257 1.163-0.006 0.63-0.752 0.906-1.45 0.917-0.032 0.001-0.071 0.001-0.109 0.001-0.871 0-1.691-0.219-2.407-0.606l0.027 0.013-0.439 2.052c0.786 0.315 1.697 0.497 2.651 0.497 0.015 0 0.030-0 0.045-0h-0.002c2.546 0 4.211-1.257 4.22-3.204zM12.391 11.329l-3.926 9.367h-2.562l-1.932-7.477c-0.037-0.364-0.26-0.668-0.57-0.82l-0.006-0.003c-0.688-0.338-1.488-0.613-2.325-0.786l-0.066-0.011 0.058-0.271h4.124c0 0 0.001 0 0.001 0 0.562 0 1.028 0.411 1.115 0.948l0.001 0.006 1.021 5.421 2.522-6.376z" }));
4349
+ return /* @__PURE__ */ import_react78.default.createElement("svg", { className, fill: "currentColor", viewBox: "0 0 32 32", xmlns: "http://www.w3.org/2000/svg" }, /* @__PURE__ */ import_react78.default.createElement("title", null, "Visa"), /* @__PURE__ */ import_react78.default.createElement("path", { d: "M15.854 11.329l-2.003 9.367h-2.424l2.006-9.367zM26.051 17.377l1.275-3.518 0.735 3.518zM28.754 20.696h2.242l-1.956-9.367h-2.069c-0.003-0-0.007-0-0.010-0-0.459 0-0.853 0.281-1.019 0.68l-0.003 0.007-3.635 8.68h2.544l0.506-1.4h3.109zM22.429 17.638c0.010-2.473-3.419-2.609-3.395-3.714 0.008-0.336 0.327-0.694 1.027-0.785 0.13-0.013 0.28-0.021 0.432-0.021 0.711 0 1.385 0.162 1.985 0.452l-0.027-0.012 0.425-1.987c-0.673-0.261-1.452-0.413-2.266-0.416h-0.001c-2.396 0-4.081 1.275-4.096 3.098-0.015 1.348 1.203 2.099 2.122 2.549 0.945 0.459 1.262 0.754 1.257 1.163-0.006 0.63-0.752 0.906-1.45 0.917-0.032 0.001-0.071 0.001-0.109 0.001-0.871 0-1.691-0.219-2.407-0.606l0.027 0.013-0.439 2.052c0.786 0.315 1.697 0.497 2.651 0.497 0.015 0 0.030-0 0.045-0h-0.002c2.546 0 4.211-1.257 4.22-3.204zM12.391 11.329l-3.926 9.367h-2.562l-1.932-7.477c-0.037-0.364-0.26-0.668-0.57-0.82l-0.006-0.003c-0.688-0.338-1.488-0.613-2.325-0.786l-0.066-0.011 0.058-0.271h4.124c0 0 0.001 0 0.001 0 0.562 0 1.028 0.411 1.115 0.948l0.001 0.006 1.021 5.421 2.522-6.376z" }));
4233
4350
  };
4234
4351
 
4235
4352
  // src/components/DriveItemOpener.tsx
4236
- var import_react77 = __toESM(require("react"));
4237
- var import_react78 = require("@hugeicons/react");
4238
- var import_core_free_icons27 = require("@hugeicons/core-free-icons");
4353
+ var import_react79 = __toESM(require("react"));
4354
+ var import_react80 = require("@hugeicons/react");
4355
+ var import_core_free_icons28 = require("@hugeicons/core-free-icons");
4239
4356
  var DriveItemOpener = ({ item, onClose }) => {
4240
4357
  if (!item) return null;
4241
4358
  const formatBytes = (bytes) => {
@@ -4246,38 +4363,38 @@ var DriveItemOpener = ({ item, onClose }) => {
4246
4363
  const i = Math.floor(Math.log(num) / Math.log(k));
4247
4364
  return parseFloat((num / Math.pow(k, i)).toFixed(1)) + " " + sizes[i];
4248
4365
  };
4249
- return /* @__PURE__ */ import_react77.default.createElement("div", { className: "fixed inset-0 z-200 bg-black/95 flex flex-col animate-in fade-in duration-200" }, /* @__PURE__ */ import_react77.default.createElement("div", { className: "flex items-center justify-between p-4 border-b border-white/10 bg-black" }, /* @__PURE__ */ import_react77.default.createElement("div", { className: "flex items-center gap-4" }, /* @__PURE__ */ import_react77.default.createElement("div", { className: "w-10 h-10 bg-white/10 rounded-xl flex items-center justify-center" }, /* @__PURE__ */ import_react77.default.createElement("div", { className: "invert grayscale brightness-200" }, /* @__PURE__ */ import_react77.default.createElement(FileIconMapper, { type: item.type, mimeType: item.mimeType }))), /* @__PURE__ */ import_react77.default.createElement("div", null, /* @__PURE__ */ import_react77.default.createElement("h3", { className: "text-sm text-white tracking-wide" }, item.name), /* @__PURE__ */ import_react77.default.createElement("p", { className: "text-xs text-white/50 mt-0.5" }, item.type, " \u2022 ", formatBytes(item.size), " \u2022 ", new Date(item.updatedAt).toLocaleDateString()))), /* @__PURE__ */ import_react77.default.createElement(
4366
+ return /* @__PURE__ */ import_react79.default.createElement("div", { className: "fixed inset-0 z-200 bg-black/95 flex flex-col animate-in fade-in duration-200" }, /* @__PURE__ */ import_react79.default.createElement("div", { className: "flex items-center justify-between p-4 border-b border-white/10 bg-black" }, /* @__PURE__ */ import_react79.default.createElement("div", { className: "flex items-center gap-4" }, /* @__PURE__ */ import_react79.default.createElement("div", { className: "w-10 h-10 bg-white/10 rounded-xl flex items-center justify-center" }, /* @__PURE__ */ import_react79.default.createElement("div", { className: "invert grayscale brightness-200" }, /* @__PURE__ */ import_react79.default.createElement(FileIconMapper, { type: item.type, mimeType: item.mimeType }))), /* @__PURE__ */ import_react79.default.createElement("div", null, /* @__PURE__ */ import_react79.default.createElement("h3", { className: "text-sm text-white tracking-wide" }, item.name), /* @__PURE__ */ import_react79.default.createElement("p", { className: "text-xs text-white/50 mt-0.5" }, item.type, " \u2022 ", formatBytes(item.size), " \u2022 ", new Date(item.updatedAt).toLocaleDateString()))), /* @__PURE__ */ import_react79.default.createElement(
4250
4367
  "button",
4251
4368
  {
4252
4369
  onClick: onClose,
4253
4370
  className: "p-3 bg-white/10 hover:bg-white/20 text-white rounded-full transition-colors outline-none"
4254
4371
  },
4255
- /* @__PURE__ */ import_react77.default.createElement(import_react78.HugeiconsIcon, { icon: import_core_free_icons27.Cancel01Icon, size: 20 })
4256
- )), /* @__PURE__ */ import_react77.default.createElement("div", { className: "flex-1 flex items-center justify-center p-8 overflow-y-auto relative" }, /* @__PURE__ */ import_react77.default.createElement("div", { className: "text-center" }, /* @__PURE__ */ import_react77.default.createElement("p", { className: "text-white/40 text-sm tracking-widest " }, "File Preview Engine"), /* @__PURE__ */ import_react77.default.createElement("p", { className: "text-white/20 text-xs mt-2" }, "Content rendering logic will be attached here."))));
4372
+ /* @__PURE__ */ import_react79.default.createElement(import_react80.HugeiconsIcon, { icon: import_core_free_icons28.Cancel01Icon, size: 20 })
4373
+ )), /* @__PURE__ */ import_react79.default.createElement("div", { className: "flex-1 flex items-center justify-center p-8 overflow-y-auto relative" }, /* @__PURE__ */ import_react79.default.createElement("div", { className: "text-center" }, /* @__PURE__ */ import_react79.default.createElement("p", { className: "text-white/40 text-sm tracking-widest " }, "File Preview Engine"), /* @__PURE__ */ import_react79.default.createElement("p", { className: "text-white/20 text-xs mt-2" }, "Content rendering logic will be attached here."))));
4257
4374
  };
4258
4375
 
4259
4376
  // src/components/DriveShareModal.tsx
4260
- var import_react79 = __toESM(require("react"));
4377
+ var import_react81 = __toESM(require("react"));
4261
4378
  var DriveShareModal = ({ items, onClose }) => {
4262
4379
  if (!items || items.length === 0) return null;
4263
- return /* @__PURE__ */ import_react79.default.createElement("div", { className: "fixed inset-0 z-150 flex items-center justify-center p-4 bg-black/30 animate-in fade-in duration-200" }, /* @__PURE__ */ import_react79.default.createElement("div", { className: "bg-white w-full max-w-md rounded-2xl p-6 shadow-2xl flex flex-col gap-6 animate-in zoom-in-95 duration-200" }, /* @__PURE__ */ import_react79.default.createElement("div", null, /* @__PURE__ */ import_react79.default.createElement("h3", { className: "text-lg text-black tracking-tight mb-1" }, "Share Access"), /* @__PURE__ */ import_react79.default.createElement("p", { className: "text-xs text-neutral-500" }, "Managing permissions for ", items.length, " selected item(s).")), /* @__PURE__ */ import_react79.default.createElement("div", { className: "flex justify-end gap-3 mt-2" }, /* @__PURE__ */ import_react79.default.createElement(
4380
+ return /* @__PURE__ */ import_react81.default.createElement("div", { className: "fixed inset-0 z-150 flex items-center justify-center p-4 bg-black/30 animate-in fade-in duration-200" }, /* @__PURE__ */ import_react81.default.createElement("div", { className: "bg-white w-full max-w-md rounded-2xl p-6 shadow-2xl flex flex-col gap-6 animate-in zoom-in-95 duration-200" }, /* @__PURE__ */ import_react81.default.createElement("div", null, /* @__PURE__ */ import_react81.default.createElement("h3", { className: "text-lg text-black tracking-tight mb-1" }, "Share Access"), /* @__PURE__ */ import_react81.default.createElement("p", { className: "text-xs text-neutral-500" }, "Managing permissions for ", items.length, " selected item(s).")), /* @__PURE__ */ import_react81.default.createElement("div", { className: "flex justify-end gap-3 mt-2" }, /* @__PURE__ */ import_react81.default.createElement(
4264
4381
  "button",
4265
4382
  {
4266
4383
  onClick: onClose,
4267
4384
  className: "px-6 py-2.5 text-xs text-neutral-500 hover:bg-neutral-50 rounded-full transition-colors outline-none"
4268
4385
  },
4269
4386
  "Close"
4270
- ), /* @__PURE__ */ import_react79.default.createElement(ThreeDActionButton, { onClick: onClose }, "Save Links"))));
4387
+ ), /* @__PURE__ */ import_react81.default.createElement(ThreeDActionButton, { onClick: onClose }, "Save Links"))));
4271
4388
  };
4272
4389
 
4273
4390
  // src/components/AiApproveDecline.tsx
4274
- var import_react80 = __toESM(require("react"));
4275
- var import_react81 = require("@hugeicons/react");
4276
- var import_core_free_icons28 = require("@hugeicons/core-free-icons");
4391
+ var import_react82 = __toESM(require("react"));
4392
+ var import_react83 = require("@hugeicons/react");
4393
+ var import_core_free_icons29 = require("@hugeicons/core-free-icons");
4277
4394
  var AiApproveDecline = ({ suggestionTitle, suggestionValue, onApprove, onDecline, onEdit }) => {
4278
- const [isEditing, setIsEditing] = (0, import_react80.useState)(false);
4279
- const [editVal, setEditVal] = (0, import_react80.useState)(typeof suggestionValue === "string" ? suggestionValue : "");
4280
- return /* @__PURE__ */ import_react80.default.createElement("div", { className: "border border-orange-100 bg-linear-to-bl from-orange-50/80 via-white to-white p-5 rounded-2xl flex flex-col gap-4 relative overflow-hidden" }, /* @__PURE__ */ import_react80.default.createElement("div", null, /* @__PURE__ */ import_react80.default.createElement("span", { className: "text-[11px] tracking-widest text-orange-600 block mb-1 " }, "AI Suggestion: ", suggestionTitle), !isEditing ? /* @__PURE__ */ import_react80.default.createElement("div", { className: "text-sm text-black" }, suggestionValue) : /* @__PURE__ */ import_react80.default.createElement(
4395
+ const [isEditing, setIsEditing] = (0, import_react82.useState)(false);
4396
+ const [editVal, setEditVal] = (0, import_react82.useState)(typeof suggestionValue === "string" ? suggestionValue : "");
4397
+ return /* @__PURE__ */ import_react82.default.createElement("div", { className: "border border-orange-100 bg-linear-to-bl from-orange-50/80 via-white to-white p-5 rounded-2xl flex flex-col gap-4 relative overflow-hidden" }, /* @__PURE__ */ import_react82.default.createElement("div", null, /* @__PURE__ */ import_react82.default.createElement("span", { className: "text-[11px] tracking-widest text-orange-600 block mb-1 " }, "AI Suggestion: ", suggestionTitle), !isEditing ? /* @__PURE__ */ import_react82.default.createElement("div", { className: "text-sm text-black" }, suggestionValue) : /* @__PURE__ */ import_react82.default.createElement(
4281
4398
  "input",
4282
4399
  {
4283
4400
  type: "text",
@@ -4286,45 +4403,45 @@ var AiApproveDecline = ({ suggestionTitle, suggestionValue, onApprove, onDecline
4286
4403
  className: "w-full text-sm p-2 border-b border-orange-200 bg-transparent outline-none focus:border-orange-400 transition-colors",
4287
4404
  autoFocus: true
4288
4405
  }
4289
- )), /* @__PURE__ */ import_react80.default.createElement("div", { className: "flex items-center gap-1 mt-2" }, !isEditing ? /* @__PURE__ */ import_react80.default.createElement(import_react80.default.Fragment, null, /* @__PURE__ */ import_react80.default.createElement("button", { onClick: onApprove, title: "Approve", className: "p-1.5 text-black hover:text-black hover:bg-neutral-50 rounded-full transition-colors outline-none" }, /* @__PURE__ */ import_react80.default.createElement(import_react81.HugeiconsIcon, { icon: import_core_free_icons28.CheckmarkCircle01Icon, size: 28 })), /* @__PURE__ */ import_react80.default.createElement("button", { onClick: onDecline, title: "Decline", className: "p-1.5 text-neutral-400 hover:text-neutral-400 hover:bg-neutral-50 rounded-full transition-colors outline-none" }, /* @__PURE__ */ import_react80.default.createElement(import_react81.HugeiconsIcon, { icon: import_core_free_icons28.CancelCircleIcon, size: 28 })), onEdit && /* @__PURE__ */ import_react80.default.createElement("button", { onClick: () => setIsEditing(true), title: "Edit", className: "ml-auto p-1.5 text-neutral-400 hover:text-black hover:bg-neutral-100 rounded-full transition-colors outline-none" }, /* @__PURE__ */ import_react80.default.createElement(import_react81.HugeiconsIcon, { icon: import_core_free_icons28.PencilEdit01Icon, size: 18 }))) : /* @__PURE__ */ import_react80.default.createElement(import_react80.default.Fragment, null, /* @__PURE__ */ import_react80.default.createElement("button", { onClick: () => {
4406
+ )), /* @__PURE__ */ import_react82.default.createElement("div", { className: "flex items-center gap-1 mt-2" }, !isEditing ? /* @__PURE__ */ import_react82.default.createElement(import_react82.default.Fragment, null, /* @__PURE__ */ import_react82.default.createElement("button", { onClick: onApprove, title: "Approve", className: "p-1.5 text-black hover:text-black hover:bg-neutral-50 rounded-full transition-colors outline-none" }, /* @__PURE__ */ import_react82.default.createElement(import_react83.HugeiconsIcon, { icon: import_core_free_icons29.CheckmarkCircle01Icon, size: 28 })), /* @__PURE__ */ import_react82.default.createElement("button", { onClick: onDecline, title: "Decline", className: "p-1.5 text-neutral-400 hover:text-neutral-400 hover:bg-neutral-50 rounded-full transition-colors outline-none" }, /* @__PURE__ */ import_react82.default.createElement(import_react83.HugeiconsIcon, { icon: import_core_free_icons29.CancelCircleIcon, size: 28 })), onEdit && /* @__PURE__ */ import_react82.default.createElement("button", { onClick: () => setIsEditing(true), title: "Edit", className: "ml-auto p-1.5 text-neutral-400 hover:text-black hover:bg-neutral-100 rounded-full transition-colors outline-none" }, /* @__PURE__ */ import_react82.default.createElement(import_react83.HugeiconsIcon, { icon: import_core_free_icons29.PencilEdit01Icon, size: 18 }))) : /* @__PURE__ */ import_react82.default.createElement(import_react82.default.Fragment, null, /* @__PURE__ */ import_react82.default.createElement("button", { onClick: () => {
4290
4407
  onEdit?.(editVal);
4291
4408
  setIsEditing(false);
4292
- }, title: "Save Edit", className: "p-1.5 text-emerald-500 hover:text-emerald-600 hover:bg-emerald-50 rounded-full transition-colors outline-none" }, /* @__PURE__ */ import_react80.default.createElement(import_react81.HugeiconsIcon, { icon: import_core_free_icons28.CheckmarkCircle01Icon, size: 28 })), /* @__PURE__ */ import_react80.default.createElement("button", { onClick: () => setIsEditing(false), title: "Cancel Edit", className: "p-1.5 text-neutral-400 hover:text-black hover:bg-neutral-100 rounded-full transition-colors outline-none" }, /* @__PURE__ */ import_react80.default.createElement(import_react81.HugeiconsIcon, { icon: import_core_free_icons28.CancelCircleIcon, size: 28 })))));
4409
+ }, title: "Save Edit", className: "p-1.5 text-emerald-500 hover:text-emerald-600 hover:bg-emerald-50 rounded-full transition-colors outline-none" }, /* @__PURE__ */ import_react82.default.createElement(import_react83.HugeiconsIcon, { icon: import_core_free_icons29.CheckmarkCircle01Icon, size: 28 })), /* @__PURE__ */ import_react82.default.createElement("button", { onClick: () => setIsEditing(false), title: "Cancel Edit", className: "p-1.5 text-neutral-400 hover:text-black hover:bg-neutral-100 rounded-full transition-colors outline-none" }, /* @__PURE__ */ import_react82.default.createElement(import_react83.HugeiconsIcon, { icon: import_core_free_icons29.CancelCircleIcon, size: 28 })))));
4293
4410
  };
4294
4411
 
4295
4412
  // src/components/AiStageCheck.tsx
4296
- var import_react82 = __toESM(require("react"));
4297
- var import_react83 = require("@hugeicons/react");
4298
- var import_core_free_icons29 = require("@hugeicons/core-free-icons");
4413
+ var import_react84 = __toESM(require("react"));
4414
+ var import_react85 = require("@hugeicons/react");
4415
+ var import_core_free_icons30 = require("@hugeicons/core-free-icons");
4299
4416
  var AiStageCheck = ({ tasks }) => {
4300
- return /* @__PURE__ */ import_react82.default.createElement("div", { className: "flex flex-col gap-3 p-5 rounded-2xl border border-orange-100 bg-linear-to-bl from-orange-50/80 via-white to-white relative overflow-hidden" }, /* @__PURE__ */ import_react82.default.createElement("span", { className: "text-[11px] tracking-widest text-orange-600 mb-1 " }, "AI Processing"), tasks.map((task) => /* @__PURE__ */ import_react82.default.createElement("div", { key: task.id, className: "flex items-center gap-3" }, task.status === "pending" && /* @__PURE__ */ import_react82.default.createElement("div", { className: "w-4 h-4 rounded-full border border-orange-200" }), task.status === "loading" && /* @__PURE__ */ import_react82.default.createElement(import_react83.HugeiconsIcon, { icon: import_core_free_icons29.Loading03Icon, size: 16, className: "animate-spin text-orange-500" }), task.status === "success" && /* @__PURE__ */ import_react82.default.createElement(import_react83.HugeiconsIcon, { icon: import_core_free_icons29.CheckmarkCircle02Icon, size: 16, className: "text-emerald-500" }), task.status === "error" && /* @__PURE__ */ import_react82.default.createElement(import_react83.HugeiconsIcon, { icon: import_core_free_icons29.CancelCircleIcon, size: 16, className: "text-red-500" }), /* @__PURE__ */ import_react82.default.createElement("span", { className: `text-xs transition-colors ${task.status === "success" ? "text-black" : task.status === "loading" ? "text-orange-700" : "text-neutral-500"}` }, task.label))));
4417
+ return /* @__PURE__ */ import_react84.default.createElement("div", { className: "flex flex-col gap-3 p-5 rounded-2xl border border-orange-100 bg-linear-to-bl from-orange-50/80 via-white to-white relative overflow-hidden" }, /* @__PURE__ */ import_react84.default.createElement("span", { className: "text-[11px] tracking-widest text-orange-600 mb-1 " }, "AI Processing"), tasks.map((task) => /* @__PURE__ */ import_react84.default.createElement("div", { key: task.id, className: "flex items-center gap-3" }, task.status === "pending" && /* @__PURE__ */ import_react84.default.createElement("div", { className: "w-4 h-4 rounded-full border border-orange-200" }), task.status === "loading" && /* @__PURE__ */ import_react84.default.createElement(import_react85.HugeiconsIcon, { icon: import_core_free_icons30.Loading03Icon, size: 16, className: "animate-spin text-orange-500" }), task.status === "success" && /* @__PURE__ */ import_react84.default.createElement(import_react85.HugeiconsIcon, { icon: import_core_free_icons30.CheckmarkCircle02Icon, size: 16, className: "text-emerald-500" }), task.status === "error" && /* @__PURE__ */ import_react84.default.createElement(import_react85.HugeiconsIcon, { icon: import_core_free_icons30.CancelCircleIcon, size: 16, className: "text-red-500" }), /* @__PURE__ */ import_react84.default.createElement("span", { className: `text-xs transition-colors ${task.status === "success" ? "text-black" : task.status === "loading" ? "text-orange-700" : "text-neutral-500"}` }, task.label))));
4301
4418
  };
4302
4419
 
4303
4420
  // src/components/Stagger.tsx
4304
- var import_react84 = __toESM(require("react"));
4305
- var import_react85 = require("@hugeicons/react");
4306
- var import_core_free_icons30 = require("@hugeicons/core-free-icons");
4421
+ var import_react86 = __toESM(require("react"));
4422
+ var import_react87 = require("@hugeicons/react");
4423
+ var import_core_free_icons31 = require("@hugeicons/core-free-icons");
4307
4424
  var Stagger = ({ steps, currentStep }) => {
4308
4425
  const getIconForStep = (stepName) => {
4309
4426
  const lowerName = stepName.toLowerCase();
4310
- if (lowerName.includes("document")) return import_core_free_icons30.Upload01Icon;
4311
- if (lowerName.includes("review")) return import_core_free_icons30.FileSyncIcon;
4312
- if (lowerName.includes("submit")) return import_core_free_icons30.CloudUploadIcon;
4313
- return import_core_free_icons30.Briefcase02Icon;
4427
+ if (lowerName.includes("document")) return import_core_free_icons31.Upload01Icon;
4428
+ if (lowerName.includes("review")) return import_core_free_icons31.FileSyncIcon;
4429
+ if (lowerName.includes("submit")) return import_core_free_icons31.CloudUploadIcon;
4430
+ return import_core_free_icons31.Briefcase02Icon;
4314
4431
  };
4315
- return /* @__PURE__ */ import_react84.default.createElement("div", { className: "w-full flex items-center justify-between relative z-0" }, /* @__PURE__ */ import_react84.default.createElement("div", { className: "absolute left-0 top-1/2 -translate-y-1/2 w-full h-px bg-neutral-100 -z-10" }), /* @__PURE__ */ import_react84.default.createElement("div", { className: "absolute left-0 top-1/2 -translate-y-1/2 h-px bg-emerald-500 -z-10 transition-all duration-500", style: { width: `${currentStep / (steps.length - 1) * 100}%` } }), steps.map((step, idx) => {
4432
+ return /* @__PURE__ */ import_react86.default.createElement("div", { className: "w-full flex items-center justify-between relative z-0" }, /* @__PURE__ */ import_react86.default.createElement("div", { className: "absolute left-0 top-1/2 -translate-y-1/2 w-full h-px bg-neutral-100 -z-10" }), /* @__PURE__ */ import_react86.default.createElement("div", { className: "absolute left-0 top-1/2 -translate-y-1/2 h-px bg-emerald-500 -z-10 transition-all duration-500", style: { width: `${currentStep / (steps.length - 1) * 100}%` } }), steps.map((step, idx) => {
4316
4433
  const isActive = idx === currentStep;
4317
4434
  const isPassed = idx < currentStep;
4318
4435
  const colorClass = isPassed ? "bg-emerald-500 text-white" : isActive ? "bg-neutral-100 text-neutral-500" : "bg-neutral-100 text-neutral-500";
4319
- return /* @__PURE__ */ import_react84.default.createElement("div", { key: step, className: `w-6 h-6 rounded-full flex items-center justify-center transition-colors duration-300 ${colorClass}` }, /* @__PURE__ */ import_react84.default.createElement(import_react85.HugeiconsIcon, { icon: getIconForStep(step), size: 11 }));
4436
+ return /* @__PURE__ */ import_react86.default.createElement("div", { key: step, className: `w-6 h-6 rounded-full flex items-center justify-center transition-colors duration-300 ${colorClass}` }, /* @__PURE__ */ import_react86.default.createElement(import_react87.HugeiconsIcon, { icon: getIconForStep(step), size: 11 }));
4320
4437
  }));
4321
4438
  };
4322
4439
 
4323
4440
  // src/components/UniversalRegistrationFlow.tsx
4324
- var import_react86 = __toESM(require("react"));
4441
+ var import_react88 = __toESM(require("react"));
4325
4442
  var import_react_hot_toast10 = __toESM(require("react-hot-toast"));
4326
- var import_react87 = require("@hugeicons/react");
4327
- var import_core_free_icons31 = require("@hugeicons/core-free-icons");
4443
+ var import_react89 = require("@hugeicons/react");
4444
+ var import_core_free_icons32 = require("@hugeicons/core-free-icons");
4328
4445
  var MACRO_STEPS = ["Details", "Documents", "Review", "Submit"];
4329
4446
  var NIGERIAN_STATES = ["Abia", "Adamawa", "Akwa Ibom", "Anambra", "Bauchi", "Bayelsa", "Benue", "Borno", "Cross River", "Delta", "Ebonyi", "Edo", "Ekiti", "Enugu", "FCT - Abuja", "Gombe", "Imo", "Jigawa", "Kaduna", "Kano", "Katsina", "Kebbi", "Kogi", "Kwara", "Lagos", "Nasarawa", "Niger", "Ogun", "Ondo", "Osun", "Oyo", "Plateau", "Rivers", "Sokoto", "Taraba", "Yobe", "Zamfara"];
4330
4447
  var MEMBER_ROLES = ["Director Only", "Shareholder Only", "Both Director & Shareholder"];
@@ -4337,12 +4454,12 @@ var UniversalRegistrationFlow = ({
4337
4454
  onRedirectToBilling,
4338
4455
  onRedirectToApplication
4339
4456
  }) => {
4340
- const [isBooting, setIsBooting] = (0, import_react86.useState)(true);
4341
- const [macroStep, setMacroStep] = (0, import_react86.useState)(0);
4342
- const [appStatus, setAppStatus] = (0, import_react86.useState)("");
4343
- const [isAbortModalOpen, setIsAbortModalOpen] = (0, import_react86.useState)(false);
4344
- const [isAborting, setIsAborting] = (0, import_react86.useState)(false);
4345
- const [formState, setFormState] = (0, import_react86.useState)({
4457
+ const [isBooting, setIsBooting] = (0, import_react88.useState)(true);
4458
+ const [macroStep, setMacroStep] = (0, import_react88.useState)(0);
4459
+ const [appStatus, setAppStatus] = (0, import_react88.useState)("");
4460
+ const [isAbortModalOpen, setIsAbortModalOpen] = (0, import_react88.useState)(false);
4461
+ const [isAborting, setIsAborting] = (0, import_react88.useState)(false);
4462
+ const [formState, setFormState] = (0, import_react88.useState)({
4346
4463
  natureApproved: false,
4347
4464
  nameApproved: false,
4348
4465
  addressApproved: false,
@@ -4353,13 +4470,13 @@ var UniversalRegistrationFlow = ({
4353
4470
  passportApproved: false,
4354
4471
  signatureApproved: false
4355
4472
  });
4356
- const idRef = (0, import_react86.useRef)(null);
4357
- const passportRef = (0, import_react86.useRef)(null);
4358
- const signatureRef = (0, import_react86.useRef)(null);
4359
- const other1Ref = (0, import_react86.useRef)(null);
4360
- const other2Ref = (0, import_react86.useRef)(null);
4361
- const other3Ref = (0, import_react86.useRef)(null);
4362
- const [formData, setFormData] = (0, import_react86.useState)({
4473
+ const idRef = (0, import_react88.useRef)(null);
4474
+ const passportRef = (0, import_react88.useRef)(null);
4475
+ const signatureRef = (0, import_react88.useRef)(null);
4476
+ const other1Ref = (0, import_react88.useRef)(null);
4477
+ const other2Ref = (0, import_react88.useRef)(null);
4478
+ const other3Ref = (0, import_react88.useRef)(null);
4479
+ const [formData, setFormData] = (0, import_react88.useState)({
4363
4480
  businessDesc: "",
4364
4481
  natureOfBusiness: null,
4365
4482
  proposedName: "",
@@ -4386,22 +4503,22 @@ var UniversalRegistrationFlow = ({
4386
4503
  otherDoc3Url: "",
4387
4504
  otherDoc3Meta: null
4388
4505
  });
4389
- const [activeModal, setActiveModal] = (0, import_react86.useState)({ isOpen: false, type: null, memberIndex: null });
4390
- const [iAgree, setIAgree] = (0, import_react86.useState)(false);
4391
- const [isAnalyzingNature, setIsAnalyzingNature] = (0, import_react86.useState)(false);
4392
- const [suggestedNature, setSuggestedNature] = (0, import_react86.useState)(null);
4393
- const [isCheckingQualifier, setIsCheckingQualifier] = (0, import_react86.useState)(false);
4394
- const [qualifierCheckResult, setQualifierCheckResult] = (0, import_react86.useState)(null);
4395
- const [isCheckingName, setIsCheckingName] = (0, import_react86.useState)(false);
4396
- const [nameCheckResult, setNameCheckResult] = (0, import_react86.useState)(null);
4397
- const [globalExtractingId, setGlobalExtractingId] = (0, import_react86.useState)(false);
4398
- const [globalUploadingPassport, setGlobalUploadingPassport] = (0, import_react86.useState)(false);
4399
- const [globalUploadingSignature, setGlobalUploadingSignature] = (0, import_react86.useState)(false);
4400
- const [isUploadingOther1, setIsUploadingOther1] = (0, import_react86.useState)(false);
4401
- const [isUploadingOther2, setIsUploadingOther2] = (0, import_react86.useState)(false);
4402
- const [isUploadingOther3, setIsUploadingOther3] = (0, import_react86.useState)(false);
4403
- const [aiTasks, setAiTasks] = (0, import_react86.useState)([]);
4404
- const [isSubmitting, setIsSubmitting] = (0, import_react86.useState)(false);
4506
+ const [activeModal, setActiveModal] = (0, import_react88.useState)({ isOpen: false, type: null, memberIndex: null });
4507
+ const [iAgree, setIAgree] = (0, import_react88.useState)(false);
4508
+ const [isAnalyzingNature, setIsAnalyzingNature] = (0, import_react88.useState)(false);
4509
+ const [suggestedNature, setSuggestedNature] = (0, import_react88.useState)(null);
4510
+ const [isCheckingQualifier, setIsCheckingQualifier] = (0, import_react88.useState)(false);
4511
+ const [qualifierCheckResult, setQualifierCheckResult] = (0, import_react88.useState)(null);
4512
+ const [isCheckingName, setIsCheckingName] = (0, import_react88.useState)(false);
4513
+ const [nameCheckResult, setNameCheckResult] = (0, import_react88.useState)(null);
4514
+ const [globalExtractingId, setGlobalExtractingId] = (0, import_react88.useState)(false);
4515
+ const [globalUploadingPassport, setGlobalUploadingPassport] = (0, import_react88.useState)(false);
4516
+ const [globalUploadingSignature, setGlobalUploadingSignature] = (0, import_react88.useState)(false);
4517
+ const [isUploadingOther1, setIsUploadingOther1] = (0, import_react88.useState)(false);
4518
+ const [isUploadingOther2, setIsUploadingOther2] = (0, import_react88.useState)(false);
4519
+ const [isUploadingOther3, setIsUploadingOther3] = (0, import_react88.useState)(false);
4520
+ const [aiTasks, setAiTasks] = (0, import_react88.useState)([]);
4521
+ const [isSubmitting, setIsSubmitting] = (0, import_react88.useState)(false);
4405
4522
  const isReadOnly = ["PENDING", "AWAITING_PAYMENT", "COMPLETED"].includes(appStatus);
4406
4523
  const isAnyUploading = globalExtractingId || globalUploadingPassport || globalUploadingSignature || isUploadingOther1 || isUploadingOther2 || isUploadingOther3;
4407
4524
  const baseApi = async (action, payload = {}) => {
@@ -4416,7 +4533,7 @@ var UniversalRegistrationFlow = ({
4416
4533
  return { success: false, error: "Network communication failed." };
4417
4534
  }
4418
4535
  };
4419
- (0, import_react86.useEffect)(() => {
4536
+ (0, import_react88.useEffect)(() => {
4420
4537
  baseApi("progress_load").then((data) => {
4421
4538
  if (data.success && data.data) {
4422
4539
  const meta = data.data;
@@ -4902,23 +5019,23 @@ var UniversalRegistrationFlow = ({
4902
5019
  const isStep0Valid = type === "company" ? formState.natureApproved && formState.nameApproved && formState.addressApproved && formState.membersDetailsApproved : formState.natureApproved && formState.nameApproved && formState.addressApproved && formState.ownerApproved;
4903
5020
  const isStep1Valid = type === "company" ? formState.membersDocsApproved : formState.idApproved && formState.passportApproved && formState.signatureApproved;
4904
5021
  const titleText = type === "company" ? "Company Incorporation (LLC)" : "Business Name Registration";
4905
- if (isBooting) return /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex justify-center py-20" }, /* @__PURE__ */ import_react86.default.createElement(import_react87.HugeiconsIcon, { icon: import_core_free_icons31.Loading03Icon, size: 32, className: "animate-spin text-black" }));
5022
+ if (isBooting) return /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex justify-center py-20" }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons32.Loading03Icon, size: 32, className: "animate-spin text-black" }));
4906
5023
  if (!["DRAFT", "QUEUED", "REJECTED"].includes(appStatus) && appStatus !== "") {
4907
- return /* @__PURE__ */ import_react86.default.createElement("div", { className: "w-full max-w-5xl mx-auto bg-white rounded-2xl p-6 sm:p-10 flex flex-col items-center justify-center text-center gap-5 animate-in fade-in slide-in-from-bottom-2 duration-500 mb-20 py-24" }, appStatus === "COMPLETED" ? /* @__PURE__ */ import_react86.default.createElement(import_react86.default.Fragment, null, /* @__PURE__ */ import_react86.default.createElement("div", { className: "w-20 h-20 bg-neutral-50 text-neutral-500 rounded-full flex items-center justify-center mb-2" }, /* @__PURE__ */ import_react86.default.createElement(import_react87.HugeiconsIcon, { icon: import_core_free_icons31.CheckmarkBadge01Icon, size: 35 })), /* @__PURE__ */ import_react86.default.createElement("h2", { className: "text-xl text-black" }, "Registration Completed"), /* @__PURE__ */ import_react86.default.createElement("p", { className: "text-sm text-neutral-500 max-w-md" }, "Your application has been successfully verified and registered.")) : appStatus === "PENDING" ? /* @__PURE__ */ import_react86.default.createElement(import_react86.default.Fragment, null, /* @__PURE__ */ import_react86.default.createElement("div", { className: "w-20 h-20 bg-neutral-50 text-neutral-500 rounded-full flex items-center justify-center mb-2" }, /* @__PURE__ */ import_react86.default.createElement(import_react87.HugeiconsIcon, { icon: import_core_free_icons31.HourglassIcon, size: 35, className: "animate-spin" })), /* @__PURE__ */ import_react86.default.createElement("h2", { className: "text-xl text-black" }, "Application is Pending"), /* @__PURE__ */ import_react86.default.createElement("p", { className: "text-sm text-neutral-500 max-w-md" }, "Your application is currently pending review.")) : appStatus === "AWAITING_PAYMENT" ? /* @__PURE__ */ import_react86.default.createElement(import_react86.default.Fragment, null, /* @__PURE__ */ import_react86.default.createElement("div", { className: "w-20 h-20 bg-amber-50 text-amber-500 rounded-full flex items-center justify-center mb-2" }, /* @__PURE__ */ import_react86.default.createElement(import_react87.HugeiconsIcon, { icon: import_core_free_icons31.HourglassIcon, size: 35, className: "animate-pulse" })), /* @__PURE__ */ import_react86.default.createElement("h2", { className: "text-xl text-black" }, "Awaiting Payment"), /* @__PURE__ */ import_react86.default.createElement("p", { className: "text-sm text-neutral-500 max-w-md" }, "Your application is complete and awaiting government fee settlement. Please go to the Billing tab to authorize payment."), /* @__PURE__ */ import_react86.default.createElement("div", { className: "mt-6 flex flex-col items-center gap-3" }, /* @__PURE__ */ import_react86.default.createElement("button", { onClick: onRedirectToBilling, className: "px-8 py-3 bg-black text-white text-[11px] tracking-widest rounded-full hover:bg-neutral-800 outline-none" }, "Go to Billing & Invoices"), /* @__PURE__ */ import_react86.default.createElement("button", { onClick: () => setIsAbortModalOpen(true), className: "px-8 py-3 border border-neutral-100 text-neutral-600 text-[11px] tracking-widest rounded-full hover:bg-neutral-50 outline-none" }, "Abort & Edit Application"))) : /* @__PURE__ */ import_react86.default.createElement(import_react86.default.Fragment, null, /* @__PURE__ */ import_react86.default.createElement("div", { className: "w-20 h-20 bg-neutral-50 text-neutral-500 rounded-full flex items-center justify-center mb-2" }, /* @__PURE__ */ import_react86.default.createElement(import_react87.HugeiconsIcon, { icon: import_core_free_icons31.HourglassIcon, size: 35 })), /* @__PURE__ */ import_react86.default.createElement("h2", { className: "text-xl text-black" }, "Application Submitted"), /* @__PURE__ */ import_react86.default.createElement("p", { className: "text-sm text-neutral-500 max-w-md" }, "Your application is currently ", appStatus.replace(/_/g, " ").toLowerCase(), "."), ["AWAITING_PAYMENT", "READY_FOR_SUBMISSION", "AWAITING_CONFIRMATION"].includes(appStatus) && /* @__PURE__ */ import_react86.default.createElement("div", { className: "mt-6 flex flex-col items-center gap-3" }, /* @__PURE__ */ import_react86.default.createElement("button", { onClick: () => setIsAbortModalOpen(true), className: "px-8 py-3 border border-neutral-100 text-neutral-600 text-[11px] tracking-widest rounded-full hover:bg-neutral-50 outline-none" }, "Abort Application"))), isAbortModalOpen && /* @__PURE__ */ import_react86.default.createElement("div", { className: "fixed inset-0 z-110 flex items-center justify-center p-4" }, /* @__PURE__ */ import_react86.default.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => !isAborting && setIsAbortModalOpen(false) }), /* @__PURE__ */ import_react86.default.createElement("div", { className: "relative w-100 bg-white shadow-2xl rounded-3xl flex flex-col overflow-hidden animate-in zoom-in-95 duration-200 text-left" }, /* @__PURE__ */ import_react86.default.createElement("div", { className: "p-6 flex flex-col gap-4 text-center" }, /* @__PURE__ */ import_react86.default.createElement("h3", { className: "text-[17px] text-black tracking-tight" }, "Abort Application?"), /* @__PURE__ */ import_react86.default.createElement("p", { className: "text-[11px] text-neutral-500 leading-relaxed" }, "Are you sure you want to abort? If you have already made a payment, returning to draft may cause issues. Your invoice will be deleted.")), /* @__PURE__ */ import_react86.default.createElement("div", { className: "w-full flex " }, /* @__PURE__ */ import_react86.default.createElement("button", { onClick: () => setIsAbortModalOpen(false), disabled: isAborting, className: "flex-1 py-4 text-[13px] text-neutral-500 hover:bg-neutral-50 transition-colors outline-none disabled:opacity-50" }, "Cancel"), /* @__PURE__ */ import_react86.default.createElement("button", { onClick: handleAbort, disabled: isAborting, className: "flex-1 py-4 text-[13px] text-red-500 hover:bg-neutral-50 transition-colors outline-none disabled:opacity-50" }, isAborting ? "Aborting..." : "Yes, Abort")))));
5024
+ return /* @__PURE__ */ import_react88.default.createElement("div", { className: "w-full max-w-5xl mx-auto bg-white rounded-2xl p-6 sm:p-10 flex flex-col items-center justify-center text-center gap-5 animate-in fade-in slide-in-from-bottom-2 duration-500 mb-20 py-24" }, appStatus === "COMPLETED" ? /* @__PURE__ */ import_react88.default.createElement(import_react88.default.Fragment, null, /* @__PURE__ */ import_react88.default.createElement("div", { className: "w-20 h-20 bg-neutral-50 text-neutral-500 rounded-full flex items-center justify-center mb-2" }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons32.CheckmarkBadge01Icon, size: 35 })), /* @__PURE__ */ import_react88.default.createElement("h2", { className: "text-xl text-black" }, "Registration Completed"), /* @__PURE__ */ import_react88.default.createElement("p", { className: "text-sm text-neutral-500 max-w-md" }, "Your application has been successfully verified and registered.")) : appStatus === "PENDING" ? /* @__PURE__ */ import_react88.default.createElement(import_react88.default.Fragment, null, /* @__PURE__ */ import_react88.default.createElement("div", { className: "w-20 h-20 bg-neutral-50 text-neutral-500 rounded-full flex items-center justify-center mb-2" }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons32.HourglassIcon, size: 35, className: "animate-spin" })), /* @__PURE__ */ import_react88.default.createElement("h2", { className: "text-xl text-black" }, "Application is Pending"), /* @__PURE__ */ import_react88.default.createElement("p", { className: "text-sm text-neutral-500 max-w-md" }, "Your application is currently pending review.")) : appStatus === "AWAITING_PAYMENT" ? /* @__PURE__ */ import_react88.default.createElement(import_react88.default.Fragment, null, /* @__PURE__ */ import_react88.default.createElement("div", { className: "w-20 h-20 bg-amber-50 text-amber-500 rounded-full flex items-center justify-center mb-2" }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons32.HourglassIcon, size: 35, className: "animate-pulse" })), /* @__PURE__ */ import_react88.default.createElement("h2", { className: "text-xl text-black" }, "Awaiting Payment"), /* @__PURE__ */ import_react88.default.createElement("p", { className: "text-sm text-neutral-500 max-w-md" }, "Your application is complete and awaiting government fee settlement. Please go to the Billing tab to authorize payment."), /* @__PURE__ */ import_react88.default.createElement("div", { className: "mt-6 flex flex-col items-center gap-3" }, /* @__PURE__ */ import_react88.default.createElement("button", { onClick: onRedirectToBilling, className: "px-8 py-3 bg-black text-white text-[11px] tracking-widest rounded-full hover:bg-neutral-800 outline-none" }, "Go to Billing & Invoices"), /* @__PURE__ */ import_react88.default.createElement("button", { onClick: () => setIsAbortModalOpen(true), className: "px-8 py-3 border border-neutral-100 text-neutral-600 text-[11px] tracking-widest rounded-full hover:bg-neutral-50 outline-none" }, "Abort & Edit Application"))) : /* @__PURE__ */ import_react88.default.createElement(import_react88.default.Fragment, null, /* @__PURE__ */ import_react88.default.createElement("div", { className: "w-20 h-20 bg-neutral-50 text-neutral-500 rounded-full flex items-center justify-center mb-2" }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons32.HourglassIcon, size: 35 })), /* @__PURE__ */ import_react88.default.createElement("h2", { className: "text-xl text-black" }, "Application Submitted"), /* @__PURE__ */ import_react88.default.createElement("p", { className: "text-sm text-neutral-500 max-w-md" }, "Your application is currently ", appStatus.replace(/_/g, " ").toLowerCase(), "."), ["AWAITING_PAYMENT", "READY_FOR_SUBMISSION", "AWAITING_CONFIRMATION"].includes(appStatus) && /* @__PURE__ */ import_react88.default.createElement("div", { className: "mt-6 flex flex-col items-center gap-3" }, /* @__PURE__ */ import_react88.default.createElement("button", { onClick: () => setIsAbortModalOpen(true), className: "px-8 py-3 border border-neutral-100 text-neutral-600 text-[11px] tracking-widest rounded-full hover:bg-neutral-50 outline-none" }, "Abort Application"))), isAbortModalOpen && /* @__PURE__ */ import_react88.default.createElement("div", { className: "fixed inset-0 z-110 flex items-center justify-center p-4" }, /* @__PURE__ */ import_react88.default.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => !isAborting && setIsAbortModalOpen(false) }), /* @__PURE__ */ import_react88.default.createElement("div", { className: "relative w-100 bg-white shadow-2xl rounded-3xl flex flex-col overflow-hidden animate-in zoom-in-95 duration-200 text-left" }, /* @__PURE__ */ import_react88.default.createElement("div", { className: "p-6 flex flex-col gap-4 text-center" }, /* @__PURE__ */ import_react88.default.createElement("h3", { className: "text-[17px] text-black tracking-tight" }, "Abort Application?"), /* @__PURE__ */ import_react88.default.createElement("p", { className: "text-[11px] text-neutral-500 leading-relaxed" }, "Are you sure you want to abort? If you have already made a payment, returning to draft may cause issues. Your invoice will be deleted.")), /* @__PURE__ */ import_react88.default.createElement("div", { className: "w-full flex " }, /* @__PURE__ */ import_react88.default.createElement("button", { onClick: () => setIsAbortModalOpen(false), disabled: isAborting, className: "flex-1 py-4 text-[13px] text-neutral-500 hover:bg-neutral-50 transition-colors outline-none disabled:opacity-50" }, "Cancel"), /* @__PURE__ */ import_react88.default.createElement("button", { onClick: handleAbort, disabled: isAborting, className: "flex-1 py-4 text-[13px] text-red-500 hover:bg-neutral-50 transition-colors outline-none disabled:opacity-50" }, isAborting ? "Aborting..." : "Yes, Abort")))));
4908
5025
  }
4909
- return /* @__PURE__ */ import_react86.default.createElement("div", { className: "w-full max-w-5xl mx-auto bg-white rounded-2xl p-6 sm:p-10 flex flex-col gap-10 animate-in fade-in slide-in-from-bottom-2 duration-500 mb-20" }, /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex flex-col gap-8" }, /* @__PURE__ */ import_react86.default.createElement("div", null, /* @__PURE__ */ import_react86.default.createElement("h2", { className: "text-xl text-black tracking-tight mb-1" }, titleText), /* @__PURE__ */ import_react86.default.createElement("p", { className: "text-sm text-neutral-500" }, "Answer the questions below to build your official application.")), /* @__PURE__ */ import_react86.default.createElement("div", { className: "px-2" }, /* @__PURE__ */ import_react86.default.createElement(Stagger, { steps: MACRO_STEPS, currentStep: macroStep }))), /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex flex-col gap-8" }, macroStep === 0 && /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex flex-col gap-8 animate-in fade-in" }, /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex items-center text-black" }, /* @__PURE__ */ import_react86.default.createElement("h3", { className: "text-sm " }, "What does your ", type === "company" ? "company" : "business", " do?")), !formState.natureApproved ? /* @__PURE__ */ import_react86.default.createElement(import_react86.default.Fragment, null, /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex flex-col gap-3 " }, /* @__PURE__ */ import_react86.default.createElement(TextInput, { label: type === "company" ? "Company Description" : "Business Description", placeholder: "e.g. We provide professional services to clients.", value: formData.businessDesc, onChange: (v) => setFormData({ ...formData, businessDesc: v }), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ import_react86.default.createElement(ThreeDActionButton, { onClick: handleAnalyzeNature, disabled: formData.businessDesc.length < 5 || isAnalyzingNature || isReadOnly, isLoading: isAnalyzingNature, className: "w-fit" }, "Analyze Nature")), isAnalyzingNature && /* @__PURE__ */ import_react86.default.createElement("div", { className: " mt-2" }, /* @__PURE__ */ import_react86.default.createElement(AiStageCheck, { tasks: [{ id: "1", label: "Matching with Official Categories...", status: "loading" }] })), suggestedNature && /* @__PURE__ */ import_react86.default.createElement("div", { className: " mt-2 animate-in fade-in" }, /* @__PURE__ */ import_react86.default.createElement(AiApproveDecline, { suggestionTitle: "Classification Found", suggestionValue: /* @__PURE__ */ import_react86.default.createElement("div", null, /* @__PURE__ */ import_react86.default.createElement("p", { className: " text-black" }, suggestedNature.specificLabel), /* @__PURE__ */ import_react86.default.createElement("p", { className: "text-xs text-neutral-400 mt-1" }, "Category: ", suggestedNature.categoryLabel)), onApprove: () => {
5026
+ return /* @__PURE__ */ import_react88.default.createElement("div", { className: "w-full max-w-5xl mx-auto bg-white rounded-2xl p-6 sm:p-10 flex flex-col gap-10 animate-in fade-in slide-in-from-bottom-2 duration-500 mb-20" }, /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col gap-8" }, /* @__PURE__ */ import_react88.default.createElement("div", null, /* @__PURE__ */ import_react88.default.createElement("h2", { className: "text-xl text-black tracking-tight mb-1" }, titleText), /* @__PURE__ */ import_react88.default.createElement("p", { className: "text-sm text-neutral-500" }, "Answer the questions below to build your official application.")), /* @__PURE__ */ import_react88.default.createElement("div", { className: "px-2" }, /* @__PURE__ */ import_react88.default.createElement(Stagger, { steps: MACRO_STEPS, currentStep: macroStep }))), /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col gap-8" }, macroStep === 0 && /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col gap-8 animate-in fade-in" }, /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex items-center text-black" }, /* @__PURE__ */ import_react88.default.createElement("h3", { className: "text-sm " }, "What does your ", type === "company" ? "company" : "business", " do?")), !formState.natureApproved ? /* @__PURE__ */ import_react88.default.createElement(import_react88.default.Fragment, null, /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col gap-3 " }, /* @__PURE__ */ import_react88.default.createElement(TextInput, { label: type === "company" ? "Company Description" : "Business Description", placeholder: "e.g. We provide professional services to clients.", value: formData.businessDesc, onChange: (v) => setFormData({ ...formData, businessDesc: v }), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ import_react88.default.createElement(ThreeDActionButton, { onClick: handleAnalyzeNature, disabled: formData.businessDesc.length < 5 || isAnalyzingNature || isReadOnly, isLoading: isAnalyzingNature, className: "w-fit" }, "Analyze Nature")), isAnalyzingNature && /* @__PURE__ */ import_react88.default.createElement("div", { className: " mt-2" }, /* @__PURE__ */ import_react88.default.createElement(AiStageCheck, { tasks: [{ id: "1", label: "Matching with Official Categories...", status: "loading" }] })), suggestedNature && /* @__PURE__ */ import_react88.default.createElement("div", { className: " mt-2 animate-in fade-in" }, /* @__PURE__ */ import_react88.default.createElement(AiApproveDecline, { suggestionTitle: "Classification Found", suggestionValue: /* @__PURE__ */ import_react88.default.createElement("div", null, /* @__PURE__ */ import_react88.default.createElement("p", { className: " text-black" }, suggestedNature.specificLabel), /* @__PURE__ */ import_react88.default.createElement("p", { className: "text-xs text-neutral-400 mt-1" }, "Category: ", suggestedNature.categoryLabel)), onApprove: () => {
4910
5027
  const newForm = { ...formData, natureOfBusiness: suggestedNature };
4911
5028
  setFormData(newForm);
4912
5029
  approveSection("natureApproved", newForm);
4913
- }, onDecline: () => setSuggestedNature(null) }))) : /* @__PURE__ */ import_react86.default.createElement("div", { className: " flex items-center justify-between" }, /* @__PURE__ */ import_react86.default.createElement("div", { className: "pr-4" }, /* @__PURE__ */ import_react86.default.createElement("p", { className: "text-sm text-black" }, formData.natureOfBusiness?.specificLabel), /* @__PURE__ */ import_react86.default.createElement("p", { className: "text-xs text-neutral-400 mt-1" }, formData.businessDesc)), !isReadOnly && /* @__PURE__ */ import_react86.default.createElement("button", { onClick: () => editSection("natureApproved"), className: "p-2 text-neutral-400 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ import_react86.default.createElement(import_react87.HugeiconsIcon, { icon: import_core_free_icons31.PencilEdit01Icon, size: 16 })))), formState.natureApproved && /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex flex-col gap-4 pt-6 animate-in slide-in-from-top-4 duration-500" }, /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex items-center text-black" }, /* @__PURE__ */ import_react86.default.createElement("h3", { className: "text-sm " }, "What name would you like to register?")), /* @__PURE__ */ import_react86.default.createElement("p", { className: "text-xs text-neutral-400 -mt-2" }, "Provide two options. We will verify availability against the official registry."), !formState.nameApproved ? /* @__PURE__ */ import_react86.default.createElement(import_react86.default.Fragment, null, /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ import_react86.default.createElement(TextInput, { label: "Proposed Name 1 (Preferred)", value: formData.proposedName, onChange: (v) => setFormData({ ...formData, proposedName: v }), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ import_react86.default.createElement(TextInput, { label: "Proposed Name 2 (Alternative)", value: formData.proposedName2, onChange: (v) => setFormData({ ...formData, proposedName2: v }), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ import_react86.default.createElement(ThreeDActionButton, { onClick: () => handleCheckNames(formData.proposedName), disabled: !formData.proposedName || !formData.proposedName2 || isCheckingName || isCheckingQualifier || isReadOnly, isLoading: isCheckingQualifier || isCheckingName, className: "w-fit" }, "Check Availability")), (isCheckingQualifier || isCheckingName) && /* @__PURE__ */ import_react86.default.createElement("div", { className: " mt-2" }, /* @__PURE__ */ import_react86.default.createElement(AiStageCheck, { tasks: [{ id: "1", label: "AI Qualifier Pre-check...", status: isCheckingQualifier ? "loading" : "success" }, { id: "2", label: "Checking Official Registry Database...", status: isCheckingName ? "loading" : "pending" }, { id: "3", label: "Fallback Checking Public Database...", status: isCheckingName ? "loading" : "pending" }, { id: "4", label: "Validation Status...", status: isCheckingName ? "loading" : "pending" }] })), qualifierCheckResult && /* @__PURE__ */ import_react86.default.createElement("div", { className: "mt-2 animate-in fade-in" }, /* @__PURE__ */ import_react86.default.createElement("div", { className: "border border-orange-100 bg-linear-to-bl from-orange-50/80 via-white to-white p-5 rounded-2xl flex flex-col gap-4 relative overflow-hidden" }, /* @__PURE__ */ import_react86.default.createElement("div", null, /* @__PURE__ */ import_react86.default.createElement("span", { className: "text-[11px] tracking-widest text-orange-600 block mb-1" }, "AI Suggestion: Structural Qualifier Missing"), /* @__PURE__ */ import_react86.default.createElement("p", { className: "text-sm text-black mb-3" }, "Nigerian registrations require a structural qualifier to be approved."), /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex flex-col gap-2" }, (qualifierCheckResult.suggestions || []).map((alt, i) => /* @__PURE__ */ import_react86.default.createElement("button", { key: i, onClick: () => setFormData({ ...formData, proposedName: alt }), className: "text-left px-4 py-2 border border-neutral-100 rounded-full hover:border-black text-sm transition-colors outline-none" }, alt)))), /* @__PURE__ */ import_react86.default.createElement("button", { onClick: () => setQualifierCheckResult(null), className: "w-fit text-[11px] tracking-widest text-neutral-500 hover:text-black transition-colors mt-2 outline-none" }, "Edit Name Manually"))), nameCheckResult && /* @__PURE__ */ import_react86.default.createElement("div", { className: " mt-2 animate-in fade-in" }, nameCheckResult.status === "APPROVED" || nameCheckResult.status === "APPROVED_WARNING" || nameCheckResult.status === "SKIPPED" ? /* @__PURE__ */ import_react86.default.createElement(AiApproveDecline, { suggestionTitle: nameCheckResult.status === "APPROVED" ? "Name Available!" : "Fallback Approval", suggestionValue: /* @__PURE__ */ import_react86.default.createElement("div", null, /* @__PURE__ */ import_react86.default.createElement("p", { className: `mb-1 ${nameCheckResult.status === "APPROVED" ? "text-emerald-600 " : "text-orange-500 "}` }, nameCheckResult.status === "APPROVED" ? "Excellent chance of approval." : "Validation Bypassed / Fallback."), /* @__PURE__ */ import_react86.default.createElement("p", { className: "text-xs text-neutral-600" }, nameCheckResult.message), /* @__PURE__ */ import_react86.default.createElement("p", { className: "text-xs text-neutral-600 mt-2 " }, "Proposed Option: ", nameCheckResult.approvedOption)), onApprove: () => {
5030
+ }, onDecline: () => setSuggestedNature(null) }))) : /* @__PURE__ */ import_react88.default.createElement("div", { className: " flex items-center justify-between" }, /* @__PURE__ */ import_react88.default.createElement("div", { className: "pr-4" }, /* @__PURE__ */ import_react88.default.createElement("p", { className: "text-sm text-black" }, formData.natureOfBusiness?.specificLabel), /* @__PURE__ */ import_react88.default.createElement("p", { className: "text-xs text-neutral-400 mt-1" }, formData.businessDesc)), !isReadOnly && /* @__PURE__ */ import_react88.default.createElement("button", { onClick: () => editSection("natureApproved"), className: "p-2 text-neutral-400 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons32.PencilEdit01Icon, size: 16 })))), formState.natureApproved && /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col gap-4 pt-6 animate-in slide-in-from-top-4 duration-500" }, /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex items-center text-black" }, /* @__PURE__ */ import_react88.default.createElement("h3", { className: "text-sm " }, "What name would you like to register?")), /* @__PURE__ */ import_react88.default.createElement("p", { className: "text-xs text-neutral-400 -mt-2" }, "Provide two options. We will verify availability against the official registry."), !formState.nameApproved ? /* @__PURE__ */ import_react88.default.createElement(import_react88.default.Fragment, null, /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ import_react88.default.createElement(TextInput, { label: "Proposed Name 1 (Preferred)", value: formData.proposedName, onChange: (v) => setFormData({ ...formData, proposedName: v }), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ import_react88.default.createElement(TextInput, { label: "Proposed Name 2 (Alternative)", value: formData.proposedName2, onChange: (v) => setFormData({ ...formData, proposedName2: v }), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ import_react88.default.createElement(ThreeDActionButton, { onClick: () => handleCheckNames(formData.proposedName), disabled: !formData.proposedName || !formData.proposedName2 || isCheckingName || isCheckingQualifier || isReadOnly, isLoading: isCheckingQualifier || isCheckingName, className: "w-fit" }, "Check Availability")), (isCheckingQualifier || isCheckingName) && /* @__PURE__ */ import_react88.default.createElement("div", { className: " mt-2" }, /* @__PURE__ */ import_react88.default.createElement(AiStageCheck, { tasks: [{ id: "1", label: "AI Qualifier Pre-check...", status: isCheckingQualifier ? "loading" : "success" }, { id: "2", label: "Checking Official Registry Database...", status: isCheckingName ? "loading" : "pending" }, { id: "3", label: "Fallback Checking Public Database...", status: isCheckingName ? "loading" : "pending" }, { id: "4", label: "Validation Status...", status: isCheckingName ? "loading" : "pending" }] })), qualifierCheckResult && /* @__PURE__ */ import_react88.default.createElement("div", { className: "mt-2 animate-in fade-in" }, /* @__PURE__ */ import_react88.default.createElement("div", { className: "border border-orange-100 bg-linear-to-bl from-orange-50/80 via-white to-white p-5 rounded-2xl flex flex-col gap-4 relative overflow-hidden" }, /* @__PURE__ */ import_react88.default.createElement("div", null, /* @__PURE__ */ import_react88.default.createElement("span", { className: "text-[11px] tracking-widest text-orange-600 block mb-1" }, "AI Suggestion: Structural Qualifier Missing"), /* @__PURE__ */ import_react88.default.createElement("p", { className: "text-sm text-black mb-3" }, "Nigerian registrations require a structural qualifier to be approved."), /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col gap-2" }, (qualifierCheckResult.suggestions || []).map((alt, i) => /* @__PURE__ */ import_react88.default.createElement("button", { key: i, onClick: () => setFormData({ ...formData, proposedName: alt }), className: "text-left px-4 py-2 border border-neutral-100 rounded-full hover:border-black text-sm transition-colors outline-none" }, alt)))), /* @__PURE__ */ import_react88.default.createElement("button", { onClick: () => setQualifierCheckResult(null), className: "w-fit text-[11px] tracking-widest text-neutral-500 hover:text-black transition-colors mt-2 outline-none" }, "Edit Name Manually"))), nameCheckResult && /* @__PURE__ */ import_react88.default.createElement("div", { className: " mt-2 animate-in fade-in" }, nameCheckResult.status === "APPROVED" || nameCheckResult.status === "APPROVED_WARNING" || nameCheckResult.status === "SKIPPED" ? /* @__PURE__ */ import_react88.default.createElement(AiApproveDecline, { suggestionTitle: nameCheckResult.status === "APPROVED" ? "Name Available!" : "Fallback Approval", suggestionValue: /* @__PURE__ */ import_react88.default.createElement("div", null, /* @__PURE__ */ import_react88.default.createElement("p", { className: `mb-1 ${nameCheckResult.status === "APPROVED" ? "text-emerald-600 " : "text-orange-500 "}` }, nameCheckResult.status === "APPROVED" ? "Excellent chance of approval." : "Validation Bypassed / Fallback."), /* @__PURE__ */ import_react88.default.createElement("p", { className: "text-xs text-neutral-600" }, nameCheckResult.message), /* @__PURE__ */ import_react88.default.createElement("p", { className: "text-xs text-neutral-600 mt-2 " }, "Proposed Option: ", nameCheckResult.approvedOption)), onApprove: () => {
4914
5031
  const newForm = { ...formData, approvedName: nameCheckResult.approvedOption };
4915
5032
  setFormData(newForm);
4916
5033
  approveSection("nameApproved", newForm);
4917
- }, onDecline: () => setNameCheckResult(null) }) : /* @__PURE__ */ import_react86.default.createElement("div", { className: "border border-red-100 bg-linear-to-bl from-red-50/80 via-white to-white p-5 rounded-2xl flex flex-col gap-4 relative overflow-hidden" }, /* @__PURE__ */ import_react86.default.createElement("div", null, /* @__PURE__ */ import_react86.default.createElement("span", { className: "text-[11px] tracking-widest text-red-600 block mb-1" }, "Registry Conflict Detected"), /* @__PURE__ */ import_react86.default.createElement("p", { className: "text-sm text-black mb-3" }, nameCheckResult.message), /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex flex-col gap-2" }, (nameCheckResult.alternatives || []).map((alt, i) => /* @__PURE__ */ import_react86.default.createElement("button", { key: i, onClick: () => setFormData({ ...formData, proposedName: alt }), className: "text-left px-4 py-2 border border-neutral-100 rounded-full hover:border-black text-sm transition-colors outline-none" }, alt)))), /* @__PURE__ */ import_react86.default.createElement("button", { onClick: () => setNameCheckResult(null), className: "w-fit text-[11px] tracking-widest text-neutral-500 hover:text-black transition-colors mt-2 outline-none" }, "Try New Name")))) : /* @__PURE__ */ import_react86.default.createElement("div", { className: " flex items-center justify-between" }, /* @__PURE__ */ import_react86.default.createElement("div", null, /* @__PURE__ */ import_react86.default.createElement("p", { className: "text-sm text-black" }, formData.approvedName), /* @__PURE__ */ import_react86.default.createElement("p", { className: "text-xs text-emerald-600 mt-1" }, "Verified against registry")), !isReadOnly && /* @__PURE__ */ import_react86.default.createElement("button", { onClick: () => editSection("nameApproved"), className: "p-2 text-neutral-400 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ import_react86.default.createElement(import_react87.HugeiconsIcon, { icon: import_core_free_icons31.PencilEdit01Icon, size: 16 })))), formState.nameApproved && /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex flex-col gap-4 pt-6 animate-in slide-in-from-top-4 duration-500" }, /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex items-center text-black" }, /* @__PURE__ */ import_react86.default.createElement("h3", { className: "text-sm " }, "Where is your head office located?")), !formState.addressApproved ? /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex flex-col gap-4 " }, /* @__PURE__ */ import_react86.default.createElement(TextInput, { label: "Street Address", value: formData.address, onChange: (v) => setFormData({ ...formData, address: v }), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ import_react86.default.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ import_react86.default.createElement(TextInput, { label: "City", value: formData.city, onChange: (v) => setFormData({ ...formData, city: v }), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ import_react86.default.createElement(TextInput, { label: "State", value: formData.state, readOnly: true, onClick: () => !isReadOnly && setActiveModal({ isOpen: true, type: "state", memberIndex: null, isGlobalState: true }), placeholder: "Select State", onChange: () => {
4918
- }, disabled: isReadOnly || isSubmitting })), /* @__PURE__ */ import_react86.default.createElement(ThreeDActionButton, { onClick: () => approveSection("addressApproved"), disabled: !formData.address || !formData.city || !formData.state || isReadOnly, className: "w-fit mt-2" }, "Confirm Address")) : /* @__PURE__ */ import_react86.default.createElement("div", { className: " flex items-center justify-between" }, /* @__PURE__ */ import_react86.default.createElement("p", { className: "text-sm text-neutral-500" }, formData.address, ", ", formData.city, ", ", formData.state), !isReadOnly && /* @__PURE__ */ import_react86.default.createElement("button", { onClick: () => editSection("addressApproved"), className: "p-2 text-neutral-400 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ import_react86.default.createElement(import_react87.HugeiconsIcon, { icon: import_core_free_icons31.PencilEdit01Icon, size: 16 })))), formState.addressApproved && type === "company" && /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex flex-col gap-4 pt-6 animate-in slide-in-from-top-4 duration-500" }, /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex items-center justify-between gap-2 text-black" }, /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex items-center" }, /* @__PURE__ */ import_react86.default.createElement("h3", { className: "text-sm " }, "Directors & Shareholders")), !formState.membersDetailsApproved && /* @__PURE__ */ import_react86.default.createElement("div", { className: `text-xs px-3 py-1 rounded-full ${getCompanyTotalShares() === 100 ? "bg-emerald-50 text-emerald-600" : "bg-red-50 text-red-500"}` }, "Total Shares: ", getCompanyTotalShares(), "%")), /* @__PURE__ */ import_react86.default.createElement("p", { className: "text-xs text-neutral-400 -mt-2" }, "Provide details for all individuals. Ensure total share percentage equals 100%."), !formState.membersDetailsApproved ? /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex flex-col gap-6 " }, formData.members.map((member, i) => /* @__PURE__ */ import_react86.default.createElement("div", { key: member.id, className: "flex flex-col gap-4 border border-neutral-100 p-5 rounded-2xl bg-neutral-50/30" }, /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex justify-between items-center mb-1" }, /* @__PURE__ */ import_react86.default.createElement("span", { className: "text-[11px] tracking-widest text-neutral-400" }, "Member ", i + 1), formData.members.length > 1 && !isReadOnly && /* @__PURE__ */ import_react86.default.createElement("button", { onClick: () => removeCompanyMember(i), className: "text-red-500 text-xs hover:text-red-600" }, "Remove")), /* @__PURE__ */ import_react86.default.createElement("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4" }, /* @__PURE__ */ import_react86.default.createElement(TextInput, { label: "Role", value: member.role, readOnly: true, onClick: () => !isReadOnly && setActiveModal({ isOpen: true, type: "role", memberIndex: i }), onChange: () => {
4919
- }, disabled: isReadOnly || isSubmitting }), member.role !== "Director Only" && /* @__PURE__ */ import_react86.default.createElement(NumberInput, { label: "Share Percentage (%)", value: member.sharePercentage, onChange: (v) => updateCompanyMemberInfo(i, "sharePercentage", v), disabled: isReadOnly || isSubmitting })), /* @__PURE__ */ import_react86.default.createElement(TextInput, { label: "Full Name", value: member.fullName, onChange: (v) => updateCompanyMemberInfo(i, "fullName", v), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ import_react86.default.createElement("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4" }, /* @__PURE__ */ import_react86.default.createElement(NumberInput, { label: "Phone Number", value: member.phone, onChange: (v) => updateCompanyMemberInfo(i, "phone", v), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ import_react86.default.createElement(TextInput, { label: "Email Address", value: member.email, onChange: (v) => updateCompanyMemberInfo(i, "email", v), disabled: isReadOnly || isSubmitting })), /* @__PURE__ */ import_react86.default.createElement(TextInput, { label: "Nationality", value: member.nationality, readOnly: true, onClick: () => !isReadOnly && setActiveModal({ isOpen: true, type: "nationality", memberIndex: i }), onChange: () => {
4920
- }, disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ import_react86.default.createElement(TextInput, { label: "Residential Address", value: member.address, onChange: (v) => updateCompanyMemberInfo(i, "address", v), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ import_react86.default.createElement("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4" }, /* @__PURE__ */ import_react86.default.createElement(TextInput, { label: "City", value: member.city, onChange: (v) => updateCompanyMemberInfo(i, "city", v), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ import_react86.default.createElement(TextInput, { label: "State", value: member.state, readOnly: true, onClick: () => !isReadOnly && setActiveModal({ isOpen: true, type: "state", memberIndex: i }), onChange: () => {
4921
- }, disabled: isReadOnly || isSubmitting })))), /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex items-center justify-between mt-2" }, !isReadOnly && /* @__PURE__ */ import_react86.default.createElement("button", { onClick: addCompanyMember, className: "px-6 py-2 bg-white border border-neutral-100 text-black text-[11px] tracking-widest rounded-full hover:bg-neutral-50 transition-colors outline-none" }, "+ Add Member"), /* @__PURE__ */ import_react86.default.createElement(ThreeDActionButton, { onClick: () => approveSection("membersDetailsApproved"), disabled: !areCompanyMembersValid() || isReadOnly, className: "w-fit" }, "Confirm Members"))) : /* @__PURE__ */ import_react86.default.createElement("div", { className: " flex items-center justify-between" }, /* @__PURE__ */ import_react86.default.createElement("div", null, /* @__PURE__ */ import_react86.default.createElement("p", { className: "text-sm text-black" }, formData.members.length, " Member(s) Registered"), /* @__PURE__ */ import_react86.default.createElement("p", { className: "text-xs text-neutral-500 mt-1" }, "Total Shares: 100% Verified.")), !isReadOnly && /* @__PURE__ */ import_react86.default.createElement("button", { onClick: () => editSection("membersDetailsApproved"), className: "p-2 text-neutral-400 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ import_react86.default.createElement(import_react87.HugeiconsIcon, { icon: import_core_free_icons31.PencilEdit01Icon, size: 16 })))), formState.addressApproved && type === "business" && /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex flex-col gap-4 pt-6 animate-in slide-in-from-top-4 duration-500" }, /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex items-center text-black" }, /* @__PURE__ */ import_react86.default.createElement("h3", { className: "text-sm " }, "Who owns the business?")), /* @__PURE__ */ import_react86.default.createElement("p", { className: "text-xs text-neutral-400 -mt-2" }, "Provide basic contact info. We will extract your DOB and ID number automatically in the next step."), !formState.ownerApproved ? /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex flex-col gap-4 " }, /* @__PURE__ */ import_react86.default.createElement(TextInput, { label: "Full Name", value: formData.ownerName, onChange: (v) => setFormData({ ...formData, ownerName: v }), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ import_react86.default.createElement("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4" }, /* @__PURE__ */ import_react86.default.createElement(NumberInput, { label: "Phone Number", value: formData.ownerPhone, onChange: (v) => setFormData({ ...formData, ownerPhone: v }), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ import_react86.default.createElement(TextInput, { label: "Email Address", value: formData.ownerEmail, onChange: (v) => setFormData({ ...formData, ownerEmail: v }), disabled: isReadOnly || isSubmitting })), /* @__PURE__ */ import_react86.default.createElement(ThreeDActionButton, { onClick: () => approveSection("ownerApproved"), disabled: !formData.ownerName || !formData.ownerPhone || !formData.ownerEmail || isReadOnly, className: "w-fit mt-2" }, "Confirm Owner Details")) : /* @__PURE__ */ import_react86.default.createElement("div", { className: " flex items-center justify-between" }, /* @__PURE__ */ import_react86.default.createElement("div", null, /* @__PURE__ */ import_react86.default.createElement("p", { className: "text-sm text-black" }, formData.ownerName), /* @__PURE__ */ import_react86.default.createElement("p", { className: "text-xs text-neutral-500 mt-1" }, formData.ownerEmail, " \u2022 ", formData.ownerPhone)), !isReadOnly && /* @__PURE__ */ import_react86.default.createElement("button", { onClick: () => editSection("ownerApproved"), className: "p-2 text-neutral-400 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ import_react86.default.createElement(import_react87.HugeiconsIcon, { icon: import_core_free_icons31.PencilEdit01Icon, size: 16 })))), /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex items-center justify-between mt-8 pt-6 " }, /* @__PURE__ */ import_react86.default.createElement("button", { onClick: handleBack, className: "flex items-center gap-2 px-6 py-2 text-[11px] tracking-widest text-neutral-500 hover:text-black hover:bg-neutral-50 rounded-full transition-colors outline-none" }, /* @__PURE__ */ import_react86.default.createElement(import_react87.HugeiconsIcon, { icon: import_core_free_icons31.ArrowLeft01Icon, size: 14 }), " Close"), /* @__PURE__ */ import_react86.default.createElement(ThreeDActionButton, { onClick: handleNext, disabled: !isStep0Valid, className: "w-fit shrink-0" }, "Next Step"))), macroStep === 1 && /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex flex-col gap-8 animate-in fade-in" }, type === "company" ? /* @__PURE__ */ import_react86.default.createElement(import_react86.default.Fragment, null, /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex flex-col gap-2" }, /* @__PURE__ */ import_react86.default.createElement("h3", { className: "text-sm text-black" }, "Member Identity Documents"), /* @__PURE__ */ import_react86.default.createElement("p", { className: "text-xs text-neutral-500 leading-relaxed" }, "Upload valid means of identification, passport photographs, and signatures for every director and shareholder.")), !formState.membersDocsApproved ? /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex flex-col gap-6" }, formData.members.map((member, i) => /* @__PURE__ */ import_react86.default.createElement("div", { key: member.id, className: "flex flex-col gap-4" }, /* @__PURE__ */ import_react86.default.createElement("span", { className: "text-[11px] tracking-widest text-black mb-1" }, member.fullName || `Member ${i + 1}`, " ", /* @__PURE__ */ import_react86.default.createElement("span", { className: "text-neutral-400 ml-2" }, "(", member.role, ")")), /* @__PURE__ */ import_react86.default.createElement("input", { id: `id-upload-${i}`, type: "file", accept: "image/jpeg, image/png, image/webp, application/pdf", className: "hidden", onChange: (e) => handleCompanyMemberUpload(e, i, "id"), disabled: isReadOnly || isAnyUploading }), /* @__PURE__ */ import_react86.default.createElement("input", { id: `pass-upload-${i}`, type: "file", accept: "image/jpeg, image/png, image/webp, application/pdf", className: "hidden", onChange: (e) => handleCompanyMemberUpload(e, i, "passport"), disabled: isReadOnly || isAnyUploading }), /* @__PURE__ */ import_react86.default.createElement("input", { id: `sig-upload-${i}`, type: "file", accept: "image/jpeg, image/png, image/webp, application/pdf", className: "hidden", onChange: (e) => handleCompanyMemberUpload(e, i, "signature"), disabled: isReadOnly || isAnyUploading }), !member.idExtractedData && !globalExtractingId ? /* @__PURE__ */ import_react86.default.createElement("button", { onClick: () => !isReadOnly && !isAnyUploading && document.getElementById(`id-upload-${i}`)?.click(), className: `flex items-center gap-3 p-4 border border-neutral-100 rounded-full transition-colors text-sm w-full outline-none ${isAnyUploading ? "opacity-50 cursor-not-allowed bg-neutral-50 text-neutral-400" : "text-black hover:bg-neutral-50"}`, disabled: isReadOnly || isAnyUploading }, /* @__PURE__ */ import_react86.default.createElement(import_react87.HugeiconsIcon, { icon: import_core_free_icons31.Upload01Icon, size: 18, className: "text-neutral-400" }), " Upload Valid ID (NIN, License, Voter's Card)") : globalExtractingId && !member.idExtractedData ? /* @__PURE__ */ import_react86.default.createElement("div", { className: " mt-2" }, /* @__PURE__ */ import_react86.default.createElement(AiStageCheck, { tasks: aiTasks })) : member.idExtractedData ? /* @__PURE__ */ import_react86.default.createElement("div", { className: " mt-2 animate-in fade-in border border-orange-100 bg-linear-to-bl from-orange-50/80 via-white to-white p-5 rounded-xl flex flex-col gap-4 relative overflow-hidden" }, /* @__PURE__ */ import_react86.default.createElement("div", null, /* @__PURE__ */ import_react86.default.createElement("span", { className: "text-[11px] tracking-widest text-orange-600 block mb-2" }, "Review Extracted ID"), /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ import_react86.default.createElement(TextInput, { label: "Full Name on ID", value: member.idExtractedData.fullName, onChange: (v) => updateCompanyMemberInfo(i, "idExtractedData", { ...member.idExtractedData, fullName: v }), disabled: isReadOnly || isAnyUploading }), /* @__PURE__ */ import_react86.default.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ import_react86.default.createElement(TextInput, { label: "ID Number", value: member.idExtractedData.idNumber, onChange: (v) => updateCompanyMemberInfo(i, "idExtractedData", { ...member.idExtractedData, idNumber: v }), disabled: isReadOnly || isAnyUploading }), /* @__PURE__ */ import_react86.default.createElement(TextInput, { label: "Date of Birth", value: member.idExtractedData.dob, onChange: (v) => updateCompanyMemberInfo(i, "idExtractedData", { ...member.idExtractedData, dob: v }), disabled: isReadOnly || isAnyUploading })))), /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex items-center gap-2 mt-2" }, !isReadOnly && /* @__PURE__ */ import_react86.default.createElement("button", { onClick: () => deleteCompanyMemberDocument(i, "id"), disabled: isAnyUploading, className: "px-6 py-2 bg-white border border-neutral-100 text-neutral-500 text-[11px] rounded-full tracking-widest hover:bg-neutral-50 transition-colors outline-none disabled:opacity-50 disabled:cursor-not-allowed" }, "Delete & Re-upload ID"))) : null, !member.passportFileUrl && !globalUploadingPassport ? /* @__PURE__ */ import_react86.default.createElement("button", { onClick: () => !isReadOnly && !isAnyUploading && document.getElementById(`pass-upload-${i}`)?.click(), className: `flex items-center gap-3 p-4 border border-neutral-100 rounded-full transition-colors text-sm w-full outline-none ${isAnyUploading ? "opacity-50 cursor-not-allowed bg-neutral-50 text-neutral-400" : "text-black hover:bg-neutral-50"}`, disabled: isReadOnly || isAnyUploading }, /* @__PURE__ */ import_react86.default.createElement(import_react87.HugeiconsIcon, { icon: import_core_free_icons31.Upload01Icon, size: 18, className: "text-neutral-400" }), " Upload Passport Photo") : globalUploadingPassport && !member.passportFileUrl ? /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex items-center gap-3 p-4 border border-neutral-100 rounded-full bg-neutral-50 text-neutral-500 text-sm w-full" }, /* @__PURE__ */ import_react86.default.createElement(import_react87.HugeiconsIcon, { icon: import_core_free_icons31.Loading03Icon, size: 18, className: "animate-spin text-black" }), " Uploading Passport...") : member.passportFileUrl ? /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex items-center justify-between p-4 bg-emerald-50 rounded-full text-emerald-800 text-sm w-full" }, /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ import_react86.default.createElement(import_react87.HugeiconsIcon, { icon: import_core_free_icons31.IdentificationIcon, size: 18 }), " Passport Uploaded"), !isReadOnly && /* @__PURE__ */ import_react86.default.createElement("button", { onClick: () => deleteCompanyMemberDocument(i, "passport"), disabled: isAnyUploading, className: "text-emerald-700 hover:text-red-500 transition-colors p-1 outline-none shrink-0 disabled:opacity-50 disabled:cursor-not-allowed" }, /* @__PURE__ */ import_react86.default.createElement(import_react87.HugeiconsIcon, { icon: import_core_free_icons31.Delete02Icon, size: 16 }))) : null, !member.signatureFileUrl && !globalUploadingSignature ? /* @__PURE__ */ import_react86.default.createElement("button", { onClick: () => !isReadOnly && !isAnyUploading && document.getElementById(`sig-upload-${i}`)?.click(), className: `flex items-center gap-3 p-4 border border-neutral-100 rounded-full transition-colors text-sm w-full outline-none ${isAnyUploading ? "opacity-50 cursor-not-allowed bg-neutral-50 text-neutral-400" : "text-black hover:bg-neutral-50"}`, disabled: isReadOnly || isAnyUploading }, /* @__PURE__ */ import_react86.default.createElement(import_react87.HugeiconsIcon, { icon: import_core_free_icons31.Upload01Icon, size: 18, className: "text-neutral-400" }), " Upload Signature") : globalUploadingSignature && !member.signatureFileUrl ? /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex items-center gap-3 p-4 border border-neutral-100 rounded-full bg-neutral-50 text-neutral-500 text-sm w-full" }, /* @__PURE__ */ import_react86.default.createElement(import_react87.HugeiconsIcon, { icon: import_core_free_icons31.Loading03Icon, size: 18, className: "animate-spin text-black" }), " Uploading Signature...") : member.signatureFileUrl ? /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex items-center justify-between p-4 bg-emerald-50 rounded-full text-emerald-800 text-sm w-full" }, /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ import_react86.default.createElement(import_react87.HugeiconsIcon, { icon: import_core_free_icons31.SignatureIcon, size: 18 }), " Signature Uploaded"), !isReadOnly && /* @__PURE__ */ import_react86.default.createElement("button", { onClick: () => deleteCompanyMemberDocument(i, "signature"), disabled: isAnyUploading, className: "text-emerald-700 hover:text-red-500 transition-colors p-1 outline-none shrink-0 disabled:opacity-50 disabled:cursor-not-allowed" }, /* @__PURE__ */ import_react86.default.createElement(import_react87.HugeiconsIcon, { icon: import_core_free_icons31.Delete02Icon, size: 16 }))) : null)), /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex justify-end" }, /* @__PURE__ */ import_react86.default.createElement(ThreeDActionButton, { onClick: () => approveSection("membersDocsApproved"), disabled: !areCompanyMemberDocsValid() || isReadOnly || isAnyUploading, className: "w-fit" }, "Confirm All Documents"))) : /* @__PURE__ */ import_react86.default.createElement("div", { className: " flex items-center justify-between bg-emerald-50 p-6 rounded-full" }, /* @__PURE__ */ import_react86.default.createElement("div", null, /* @__PURE__ */ import_react86.default.createElement("p", { className: "text-sm text-emerald-800" }, "Documents Uploaded"), /* @__PURE__ */ import_react86.default.createElement("p", { className: "text-xs text-emerald-600 mt-1" }, "Data safely extracted.")), !isReadOnly && /* @__PURE__ */ import_react86.default.createElement("button", { onClick: () => editSection("membersDocsApproved"), className: "p-2 text-emerald-700 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ import_react86.default.createElement(import_react87.HugeiconsIcon, { icon: import_core_free_icons31.PencilEdit01Icon, size: 16 })))) : /* @__PURE__ */ import_react86.default.createElement(import_react86.default.Fragment, null, /* @__PURE__ */ import_react86.default.createElement("input", { type: "file", accept: "image/jpeg, image/png, image/webp, application/pdf", ref: idRef, onChange: (e) => handleBusinessUpload(e, "id"), disabled: isReadOnly || isAnyUploading, className: "hidden" }), /* @__PURE__ */ import_react86.default.createElement("input", { type: "file", accept: "image/jpeg, image/png, image/webp, application/pdf", ref: passportRef, onChange: (e) => handleBusinessUpload(e, "passport"), disabled: isReadOnly || isAnyUploading, className: "hidden" }), /* @__PURE__ */ import_react86.default.createElement("input", { type: "file", accept: "image/jpeg, image/png, image/webp, application/pdf", ref: signatureRef, onChange: (e) => handleBusinessUpload(e, "signature"), disabled: isReadOnly || isAnyUploading, className: "hidden" }), /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex items-center gap-2 text-black" }, /* @__PURE__ */ import_react86.default.createElement("h3", { className: "text-sm " }, "Upload Means of Identification")), /* @__PURE__ */ import_react86.default.createElement("p", { className: "text-xs text-neutral-500 -mt-2" }, "Upload your NIN, Driver's License, Voter's Card, or Int'l Passport (JPG/PNG/WEBP)."), !formState.idApproved ? /* @__PURE__ */ import_react86.default.createElement(import_react86.default.Fragment, null, /* @__PURE__ */ import_react86.default.createElement("button", { onClick: () => !isReadOnly && !isAnyUploading && idRef.current?.click(), disabled: isReadOnly || isAnyUploading, className: `w-full h-32 border border-neutral-100 rounded-full flex flex-col items-center justify-center gap-2 transition-colors outline-none ${isAnyUploading ? "opacity-50 cursor-not-allowed bg-neutral-50 text-neutral-400" : "hover:bg-neutral-50 text-black"}` }, /* @__PURE__ */ import_react86.default.createElement(import_react87.HugeiconsIcon, { icon: import_core_free_icons31.Upload01Icon, size: 24, className: "text-neutral-400" }), /* @__PURE__ */ import_react86.default.createElement("span", { className: "text-xs" }, "Select ID Image to Upload")), globalExtractingId && /* @__PURE__ */ import_react86.default.createElement("div", { className: " mt-2" }, /* @__PURE__ */ import_react86.default.createElement(AiStageCheck, { tasks: aiTasks })), formData.idExtractedData && /* @__PURE__ */ import_react86.default.createElement("div", { className: " mt-2 animate-in fade-in border border-orange-100 bg-linear-to-bl from-orange-50/80 via-white to-white p-5 rounded-2xl flex flex-col gap-4 relative overflow-hidden" }, /* @__PURE__ */ import_react86.default.createElement("div", null, /* @__PURE__ */ import_react86.default.createElement("span", { className: "text-[11px] tracking-widest text-orange-600 block mb-2" }, "Review AI Extracted Data"), /* @__PURE__ */ import_react86.default.createElement("p", { className: "text-xs text-neutral-500 mb-4" }, "Please verify the extracted information and correct any OCR mistakes before approving."), /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ import_react86.default.createElement(TextInput, { label: "Full Name on ID", value: formData.idExtractedData.fullName, onChange: (v) => setFormData((f) => ({ ...f, idExtractedData: { ...f.idExtractedData, fullName: v } })), disabled: isReadOnly || isAnyUploading }), /* @__PURE__ */ import_react86.default.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ import_react86.default.createElement(TextInput, { label: "ID Number", value: formData.idExtractedData.idNumber, onChange: (v) => setFormData((f) => ({ ...f, idExtractedData: { ...f.idExtractedData, idNumber: v } })), disabled: isReadOnly || isAnyUploading }), /* @__PURE__ */ import_react86.default.createElement(TextInput, { label: "Date of Birth (YYYY-MM-DD)", value: formData.idExtractedData.dob, onChange: (v) => setFormData((f) => ({ ...f, idExtractedData: { ...f.idExtractedData, dob: v } })), disabled: isReadOnly || isAnyUploading })))), /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex items-center gap-2 mt-2" }, /* @__PURE__ */ import_react86.default.createElement(ThreeDActionButton, { onClick: () => approveSection("idApproved"), disabled: isAnyUploading || isReadOnly, className: "w-fit shrink-0" }, "Approve Data"), !isReadOnly && /* @__PURE__ */ import_react86.default.createElement("button", { onClick: () => deleteBusinessDocument("id"), disabled: isAnyUploading, className: "px-6 py-2 bg-white border border-neutral-100 text-neutral-500 text-[11px] rounded-full tracking-widest hover:bg-neutral-50 transition-colors outline-none disabled:opacity-50 disabled:cursor-not-allowed" }, "Delete & Re-upload")))) : /* @__PURE__ */ import_react86.default.createElement("div", { className: " flex items-center justify-between bg-emerald-50 p-6 rounded-full" }, /* @__PURE__ */ import_react86.default.createElement("div", null, /* @__PURE__ */ import_react86.default.createElement("p", { className: "text-sm text-emerald-800" }, "ID Document Verified"), /* @__PURE__ */ import_react86.default.createElement("p", { className: "text-xs text-emerald-600 mt-1" }, "Data safely extracted and stored.")), !isReadOnly && /* @__PURE__ */ import_react86.default.createElement("button", { onClick: () => editSection("idApproved"), className: "p-2 text-emerald-700 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ import_react86.default.createElement(import_react87.HugeiconsIcon, { icon: import_core_free_icons31.PencilEdit01Icon, size: 16 })))), /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex flex-col gap-4 pt-6 animate-in slide-in-from-top-4 duration-500" }, /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex flex-col gap-3 " }, !formState.passportApproved && !globalUploadingPassport ? /* @__PURE__ */ import_react86.default.createElement("button", { onClick: () => !isReadOnly && !isAnyUploading && passportRef.current?.click(), disabled: isReadOnly || isAnyUploading, className: `flex items-center gap-3 p-4 border border-neutral-100 rounded-full transition-colors text-sm w-full outline-none ${isAnyUploading ? "opacity-50 cursor-not-allowed bg-neutral-50 text-neutral-400" : "text-black hover:bg-neutral-50"}` }, /* @__PURE__ */ import_react86.default.createElement(import_react87.HugeiconsIcon, { icon: import_core_free_icons31.Upload01Icon, size: 18, className: "text-neutral-400" }), " Upload Passport Photo") : globalUploadingPassport && !formData.passportFileUrl ? /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex items-center gap-3 p-4 border border-neutral-100 rounded-full bg-neutral-50 text-neutral-500 text-sm w-full" }, /* @__PURE__ */ import_react86.default.createElement(import_react87.HugeiconsIcon, { icon: import_core_free_icons31.Loading03Icon, size: 18, className: "animate-spin text-black" }), " Uploading Passport...") : /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex items-center justify-between p-4 bg-emerald-50 rounded-full text-emerald-800 text-sm w-full" }, /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ import_react86.default.createElement(import_react87.HugeiconsIcon, { icon: import_core_free_icons31.IdentificationIcon, size: 18 }), " Passport Uploaded"), !isReadOnly && /* @__PURE__ */ import_react86.default.createElement("button", { onClick: () => deleteBusinessDocument("passport"), disabled: isAnyUploading, className: "text-emerald-700 hover:text-red-500 transition-colors p-1 outline-none shrink-0 disabled:opacity-50 disabled:cursor-not-allowed" }, /* @__PURE__ */ import_react86.default.createElement(import_react87.HugeiconsIcon, { icon: import_core_free_icons31.Delete02Icon, size: 16 }))), !formState.signatureApproved && !globalUploadingSignature ? /* @__PURE__ */ import_react86.default.createElement("button", { onClick: () => !isReadOnly && !isAnyUploading && signatureRef.current?.click(), disabled: isReadOnly || isAnyUploading, className: `flex items-center gap-3 p-4 border border-neutral-100 rounded-full transition-colors text-sm w-full outline-none ${isAnyUploading ? "opacity-50 cursor-not-allowed bg-neutral-50 text-neutral-400" : "text-black hover:bg-neutral-50"}` }, /* @__PURE__ */ import_react86.default.createElement(import_react87.HugeiconsIcon, { icon: import_core_free_icons31.Upload01Icon, size: 18, className: "text-neutral-400" }), " Upload Signature") : globalUploadingSignature && !formData.signatureFileUrl ? /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex items-center gap-3 p-4 border border-neutral-100 rounded-full bg-neutral-50 text-neutral-500 text-sm w-full" }, /* @__PURE__ */ import_react86.default.createElement(import_react87.HugeiconsIcon, { icon: import_core_free_icons31.Loading03Icon, size: 18, className: "animate-spin text-black" }), " Uploading Signature...") : /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex items-center justify-between p-4 bg-emerald-50 rounded-full text-emerald-800 text-sm w-full" }, /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ import_react86.default.createElement(import_react87.HugeiconsIcon, { icon: import_core_free_icons31.SignatureIcon, size: 18 }), " Signature Uploaded"), !isReadOnly && /* @__PURE__ */ import_react86.default.createElement("button", { onClick: () => deleteBusinessDocument("signature"), disabled: isAnyUploading, className: "text-emerald-700 hover:text-red-500 transition-colors p-1 outline-none shrink-0 disabled:opacity-50 disabled:cursor-not-allowed" }, /* @__PURE__ */ import_react86.default.createElement(import_react87.HugeiconsIcon, { icon: import_core_free_icons31.Delete02Icon, size: 16 })))))), /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex flex-col gap-4 pt-6 border-t border-neutral-100 animate-in slide-in-from-top-4 duration-500" }, /* @__PURE__ */ import_react86.default.createElement("input", { type: "file", accept: "image/jpeg, image/png, image/webp, application/pdf", ref: other1Ref, onChange: (e) => handleOptionalUpload(e, "other1"), disabled: isAnyUploading || isReadOnly, className: "hidden" }), /* @__PURE__ */ import_react86.default.createElement("input", { type: "file", accept: "image/jpeg, image/png, image/webp, application/pdf", ref: other2Ref, onChange: (e) => handleOptionalUpload(e, "other2"), disabled: isAnyUploading || isReadOnly, className: "hidden" }), /* @__PURE__ */ import_react86.default.createElement("input", { type: "file", accept: "image/jpeg, image/png, image/webp, application/pdf", ref: other3Ref, onChange: (e) => handleOptionalUpload(e, "other3"), disabled: isAnyUploading || isReadOnly, className: "hidden" }), /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex flex-col gap-1 mb-2" }, /* @__PURE__ */ import_react86.default.createElement("h3", { className: "text-sm text-black" }, "Additional Documents (Optional)"), /* @__PURE__ */ import_react86.default.createElement("p", { className: "text-xs text-neutral-500 leading-relaxed" }, "If your ", type === "company" ? "company" : "business", " involves regulated professional services, please upload relevant licenses, certificates, or permits here (up to 3 documents).")), /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex flex-col gap-3" }, [1, 2, 3].map((num) => {
5034
+ }, onDecline: () => setNameCheckResult(null) }) : /* @__PURE__ */ import_react88.default.createElement("div", { className: "border border-red-100 bg-linear-to-bl from-red-50/80 via-white to-white p-5 rounded-2xl flex flex-col gap-4 relative overflow-hidden" }, /* @__PURE__ */ import_react88.default.createElement("div", null, /* @__PURE__ */ import_react88.default.createElement("span", { className: "text-[11px] tracking-widest text-red-600 block mb-1" }, "Registry Conflict Detected"), /* @__PURE__ */ import_react88.default.createElement("p", { className: "text-sm text-black mb-3" }, nameCheckResult.message), /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col gap-2" }, (nameCheckResult.alternatives || []).map((alt, i) => /* @__PURE__ */ import_react88.default.createElement("button", { key: i, onClick: () => setFormData({ ...formData, proposedName: alt }), className: "text-left px-4 py-2 border border-neutral-100 rounded-full hover:border-black text-sm transition-colors outline-none" }, alt)))), /* @__PURE__ */ import_react88.default.createElement("button", { onClick: () => setNameCheckResult(null), className: "w-fit text-[11px] tracking-widest text-neutral-500 hover:text-black transition-colors mt-2 outline-none" }, "Try New Name")))) : /* @__PURE__ */ import_react88.default.createElement("div", { className: " flex items-center justify-between" }, /* @__PURE__ */ import_react88.default.createElement("div", null, /* @__PURE__ */ import_react88.default.createElement("p", { className: "text-sm text-black" }, formData.approvedName), /* @__PURE__ */ import_react88.default.createElement("p", { className: "text-xs text-emerald-600 mt-1" }, "Verified against registry")), !isReadOnly && /* @__PURE__ */ import_react88.default.createElement("button", { onClick: () => editSection("nameApproved"), className: "p-2 text-neutral-400 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons32.PencilEdit01Icon, size: 16 })))), formState.nameApproved && /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col gap-4 pt-6 animate-in slide-in-from-top-4 duration-500" }, /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex items-center text-black" }, /* @__PURE__ */ import_react88.default.createElement("h3", { className: "text-sm " }, "Where is your head office located?")), !formState.addressApproved ? /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col gap-4 " }, /* @__PURE__ */ import_react88.default.createElement(TextInput, { label: "Street Address", value: formData.address, onChange: (v) => setFormData({ ...formData, address: v }), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ import_react88.default.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ import_react88.default.createElement(TextInput, { label: "City", value: formData.city, onChange: (v) => setFormData({ ...formData, city: v }), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ import_react88.default.createElement(TextInput, { label: "State", value: formData.state, readOnly: true, onClick: () => !isReadOnly && setActiveModal({ isOpen: true, type: "state", memberIndex: null, isGlobalState: true }), placeholder: "Select State", onChange: () => {
5035
+ }, disabled: isReadOnly || isSubmitting })), /* @__PURE__ */ import_react88.default.createElement(ThreeDActionButton, { onClick: () => approveSection("addressApproved"), disabled: !formData.address || !formData.city || !formData.state || isReadOnly, className: "w-fit mt-2" }, "Confirm Address")) : /* @__PURE__ */ import_react88.default.createElement("div", { className: " flex items-center justify-between" }, /* @__PURE__ */ import_react88.default.createElement("p", { className: "text-sm text-neutral-500" }, formData.address, ", ", formData.city, ", ", formData.state), !isReadOnly && /* @__PURE__ */ import_react88.default.createElement("button", { onClick: () => editSection("addressApproved"), className: "p-2 text-neutral-400 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons32.PencilEdit01Icon, size: 16 })))), formState.addressApproved && type === "company" && /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col gap-4 pt-6 animate-in slide-in-from-top-4 duration-500" }, /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex items-center justify-between gap-2 text-black" }, /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex items-center" }, /* @__PURE__ */ import_react88.default.createElement("h3", { className: "text-sm " }, "Directors & Shareholders")), !formState.membersDetailsApproved && /* @__PURE__ */ import_react88.default.createElement("div", { className: `text-xs px-3 py-1 rounded-full ${getCompanyTotalShares() === 100 ? "bg-emerald-50 text-emerald-600" : "bg-red-50 text-red-500"}` }, "Total Shares: ", getCompanyTotalShares(), "%")), /* @__PURE__ */ import_react88.default.createElement("p", { className: "text-xs text-neutral-400 -mt-2" }, "Provide details for all individuals. Ensure total share percentage equals 100%."), !formState.membersDetailsApproved ? /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col gap-6 " }, formData.members.map((member, i) => /* @__PURE__ */ import_react88.default.createElement("div", { key: member.id, className: "flex flex-col gap-4 border border-neutral-100 p-5 rounded-2xl bg-neutral-50/30" }, /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex justify-between items-center mb-1" }, /* @__PURE__ */ import_react88.default.createElement("span", { className: "text-[11px] tracking-widest text-neutral-400" }, "Member ", i + 1), formData.members.length > 1 && !isReadOnly && /* @__PURE__ */ import_react88.default.createElement("button", { onClick: () => removeCompanyMember(i), className: "text-red-500 text-xs hover:text-red-600" }, "Remove")), /* @__PURE__ */ import_react88.default.createElement("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4" }, /* @__PURE__ */ import_react88.default.createElement(TextInput, { label: "Role", value: member.role, readOnly: true, onClick: () => !isReadOnly && setActiveModal({ isOpen: true, type: "role", memberIndex: i }), onChange: () => {
5036
+ }, disabled: isReadOnly || isSubmitting }), member.role !== "Director Only" && /* @__PURE__ */ import_react88.default.createElement(NumberInput, { label: "Share Percentage (%)", value: member.sharePercentage, onChange: (v) => updateCompanyMemberInfo(i, "sharePercentage", v), disabled: isReadOnly || isSubmitting })), /* @__PURE__ */ import_react88.default.createElement(TextInput, { label: "Full Name", value: member.fullName, onChange: (v) => updateCompanyMemberInfo(i, "fullName", v), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ import_react88.default.createElement("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4" }, /* @__PURE__ */ import_react88.default.createElement(NumberInput, { label: "Phone Number", value: member.phone, onChange: (v) => updateCompanyMemberInfo(i, "phone", v), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ import_react88.default.createElement(TextInput, { label: "Email Address", value: member.email, onChange: (v) => updateCompanyMemberInfo(i, "email", v), disabled: isReadOnly || isSubmitting })), /* @__PURE__ */ import_react88.default.createElement(TextInput, { label: "Nationality", value: member.nationality, readOnly: true, onClick: () => !isReadOnly && setActiveModal({ isOpen: true, type: "nationality", memberIndex: i }), onChange: () => {
5037
+ }, disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ import_react88.default.createElement(TextInput, { label: "Residential Address", value: member.address, onChange: (v) => updateCompanyMemberInfo(i, "address", v), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ import_react88.default.createElement("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4" }, /* @__PURE__ */ import_react88.default.createElement(TextInput, { label: "City", value: member.city, onChange: (v) => updateCompanyMemberInfo(i, "city", v), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ import_react88.default.createElement(TextInput, { label: "State", value: member.state, readOnly: true, onClick: () => !isReadOnly && setActiveModal({ isOpen: true, type: "state", memberIndex: i }), onChange: () => {
5038
+ }, disabled: isReadOnly || isSubmitting })))), /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex items-center justify-between mt-2" }, !isReadOnly && /* @__PURE__ */ import_react88.default.createElement("button", { onClick: addCompanyMember, className: "px-6 py-2 bg-white border border-neutral-100 text-black text-[11px] tracking-widest rounded-full hover:bg-neutral-50 transition-colors outline-none" }, "+ Add Member"), /* @__PURE__ */ import_react88.default.createElement(ThreeDActionButton, { onClick: () => approveSection("membersDetailsApproved"), disabled: !areCompanyMembersValid() || isReadOnly, className: "w-fit" }, "Confirm Members"))) : /* @__PURE__ */ import_react88.default.createElement("div", { className: " flex items-center justify-between" }, /* @__PURE__ */ import_react88.default.createElement("div", null, /* @__PURE__ */ import_react88.default.createElement("p", { className: "text-sm text-black" }, formData.members.length, " Member(s) Registered"), /* @__PURE__ */ import_react88.default.createElement("p", { className: "text-xs text-neutral-500 mt-1" }, "Total Shares: 100% Verified.")), !isReadOnly && /* @__PURE__ */ import_react88.default.createElement("button", { onClick: () => editSection("membersDetailsApproved"), className: "p-2 text-neutral-400 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons32.PencilEdit01Icon, size: 16 })))), formState.addressApproved && type === "business" && /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col gap-4 pt-6 animate-in slide-in-from-top-4 duration-500" }, /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex items-center text-black" }, /* @__PURE__ */ import_react88.default.createElement("h3", { className: "text-sm " }, "Who owns the business?")), /* @__PURE__ */ import_react88.default.createElement("p", { className: "text-xs text-neutral-400 -mt-2" }, "Provide basic contact info. We will extract your DOB and ID number automatically in the next step."), !formState.ownerApproved ? /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col gap-4 " }, /* @__PURE__ */ import_react88.default.createElement(TextInput, { label: "Full Name", value: formData.ownerName, onChange: (v) => setFormData({ ...formData, ownerName: v }), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ import_react88.default.createElement("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4" }, /* @__PURE__ */ import_react88.default.createElement(NumberInput, { label: "Phone Number", value: formData.ownerPhone, onChange: (v) => setFormData({ ...formData, ownerPhone: v }), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ import_react88.default.createElement(TextInput, { label: "Email Address", value: formData.ownerEmail, onChange: (v) => setFormData({ ...formData, ownerEmail: v }), disabled: isReadOnly || isSubmitting })), /* @__PURE__ */ import_react88.default.createElement(ThreeDActionButton, { onClick: () => approveSection("ownerApproved"), disabled: !formData.ownerName || !formData.ownerPhone || !formData.ownerEmail || isReadOnly, className: "w-fit mt-2" }, "Confirm Owner Details")) : /* @__PURE__ */ import_react88.default.createElement("div", { className: " flex items-center justify-between" }, /* @__PURE__ */ import_react88.default.createElement("div", null, /* @__PURE__ */ import_react88.default.createElement("p", { className: "text-sm text-black" }, formData.ownerName), /* @__PURE__ */ import_react88.default.createElement("p", { className: "text-xs text-neutral-500 mt-1" }, formData.ownerEmail, " \u2022 ", formData.ownerPhone)), !isReadOnly && /* @__PURE__ */ import_react88.default.createElement("button", { onClick: () => editSection("ownerApproved"), className: "p-2 text-neutral-400 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons32.PencilEdit01Icon, size: 16 })))), /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex items-center justify-between mt-8 pt-6 " }, /* @__PURE__ */ import_react88.default.createElement("button", { onClick: handleBack, className: "flex items-center gap-2 px-6 py-2 text-[11px] tracking-widest text-neutral-500 hover:text-black hover:bg-neutral-50 rounded-full transition-colors outline-none" }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons32.ArrowLeft01Icon, size: 14 }), " Close"), /* @__PURE__ */ import_react88.default.createElement(ThreeDActionButton, { onClick: handleNext, disabled: !isStep0Valid, className: "w-fit shrink-0" }, "Next Step"))), macroStep === 1 && /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col gap-8 animate-in fade-in" }, type === "company" ? /* @__PURE__ */ import_react88.default.createElement(import_react88.default.Fragment, null, /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col gap-2" }, /* @__PURE__ */ import_react88.default.createElement("h3", { className: "text-sm text-black" }, "Member Identity Documents"), /* @__PURE__ */ import_react88.default.createElement("p", { className: "text-xs text-neutral-500 leading-relaxed" }, "Upload valid means of identification, passport photographs, and signatures for every director and shareholder.")), !formState.membersDocsApproved ? /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col gap-6" }, formData.members.map((member, i) => /* @__PURE__ */ import_react88.default.createElement("div", { key: member.id, className: "flex flex-col gap-4" }, /* @__PURE__ */ import_react88.default.createElement("span", { className: "text-[11px] tracking-widest text-black mb-1" }, member.fullName || `Member ${i + 1}`, " ", /* @__PURE__ */ import_react88.default.createElement("span", { className: "text-neutral-400 ml-2" }, "(", member.role, ")")), /* @__PURE__ */ import_react88.default.createElement("input", { id: `id-upload-${i}`, type: "file", accept: "image/jpeg, image/png, image/webp, application/pdf", className: "hidden", onChange: (e) => handleCompanyMemberUpload(e, i, "id"), disabled: isReadOnly || isAnyUploading }), /* @__PURE__ */ import_react88.default.createElement("input", { id: `pass-upload-${i}`, type: "file", accept: "image/jpeg, image/png, image/webp, application/pdf", className: "hidden", onChange: (e) => handleCompanyMemberUpload(e, i, "passport"), disabled: isReadOnly || isAnyUploading }), /* @__PURE__ */ import_react88.default.createElement("input", { id: `sig-upload-${i}`, type: "file", accept: "image/jpeg, image/png, image/webp, application/pdf", className: "hidden", onChange: (e) => handleCompanyMemberUpload(e, i, "signature"), disabled: isReadOnly || isAnyUploading }), !member.idExtractedData && !globalExtractingId ? /* @__PURE__ */ import_react88.default.createElement("button", { onClick: () => !isReadOnly && !isAnyUploading && document.getElementById(`id-upload-${i}`)?.click(), className: `flex items-center gap-3 p-4 border border-neutral-100 rounded-full transition-colors text-sm w-full outline-none ${isAnyUploading ? "opacity-50 cursor-not-allowed bg-neutral-50 text-neutral-400" : "text-black hover:bg-neutral-50"}`, disabled: isReadOnly || isAnyUploading }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons32.Upload01Icon, size: 18, className: "text-neutral-400" }), " Upload Valid ID (NIN, License, Voter's Card)") : globalExtractingId && !member.idExtractedData ? /* @__PURE__ */ import_react88.default.createElement("div", { className: " mt-2" }, /* @__PURE__ */ import_react88.default.createElement(AiStageCheck, { tasks: aiTasks })) : member.idExtractedData ? /* @__PURE__ */ import_react88.default.createElement("div", { className: " mt-2 animate-in fade-in border border-orange-100 bg-linear-to-bl from-orange-50/80 via-white to-white p-5 rounded-xl flex flex-col gap-4 relative overflow-hidden" }, /* @__PURE__ */ import_react88.default.createElement("div", null, /* @__PURE__ */ import_react88.default.createElement("span", { className: "text-[11px] tracking-widest text-orange-600 block mb-2" }, "Review Extracted ID"), /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ import_react88.default.createElement(TextInput, { label: "Full Name on ID", value: member.idExtractedData.fullName, onChange: (v) => updateCompanyMemberInfo(i, "idExtractedData", { ...member.idExtractedData, fullName: v }), disabled: isReadOnly || isAnyUploading }), /* @__PURE__ */ import_react88.default.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ import_react88.default.createElement(TextInput, { label: "ID Number", value: member.idExtractedData.idNumber, onChange: (v) => updateCompanyMemberInfo(i, "idExtractedData", { ...member.idExtractedData, idNumber: v }), disabled: isReadOnly || isAnyUploading }), /* @__PURE__ */ import_react88.default.createElement(TextInput, { label: "Date of Birth", value: member.idExtractedData.dob, onChange: (v) => updateCompanyMemberInfo(i, "idExtractedData", { ...member.idExtractedData, dob: v }), disabled: isReadOnly || isAnyUploading })))), /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex items-center gap-2 mt-2" }, !isReadOnly && /* @__PURE__ */ import_react88.default.createElement("button", { onClick: () => deleteCompanyMemberDocument(i, "id"), disabled: isAnyUploading, className: "px-6 py-2 bg-white border border-neutral-100 text-neutral-500 text-[11px] rounded-full tracking-widest hover:bg-neutral-50 transition-colors outline-none disabled:opacity-50 disabled:cursor-not-allowed" }, "Delete & Re-upload ID"))) : null, !member.passportFileUrl && !globalUploadingPassport ? /* @__PURE__ */ import_react88.default.createElement("button", { onClick: () => !isReadOnly && !isAnyUploading && document.getElementById(`pass-upload-${i}`)?.click(), className: `flex items-center gap-3 p-4 border border-neutral-100 rounded-full transition-colors text-sm w-full outline-none ${isAnyUploading ? "opacity-50 cursor-not-allowed bg-neutral-50 text-neutral-400" : "text-black hover:bg-neutral-50"}`, disabled: isReadOnly || isAnyUploading }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons32.Upload01Icon, size: 18, className: "text-neutral-400" }), " Upload Passport Photo") : globalUploadingPassport && !member.passportFileUrl ? /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex items-center gap-3 p-4 border border-neutral-100 rounded-full bg-neutral-50 text-neutral-500 text-sm w-full" }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons32.Loading03Icon, size: 18, className: "animate-spin text-black" }), " Uploading Passport...") : member.passportFileUrl ? /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex items-center justify-between p-4 bg-emerald-50 rounded-full text-emerald-800 text-sm w-full" }, /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons32.IdentificationIcon, size: 18 }), " Passport Uploaded"), !isReadOnly && /* @__PURE__ */ import_react88.default.createElement("button", { onClick: () => deleteCompanyMemberDocument(i, "passport"), disabled: isAnyUploading, className: "text-emerald-700 hover:text-red-500 transition-colors p-1 outline-none shrink-0 disabled:opacity-50 disabled:cursor-not-allowed" }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons32.Delete02Icon, size: 16 }))) : null, !member.signatureFileUrl && !globalUploadingSignature ? /* @__PURE__ */ import_react88.default.createElement("button", { onClick: () => !isReadOnly && !isAnyUploading && document.getElementById(`sig-upload-${i}`)?.click(), className: `flex items-center gap-3 p-4 border border-neutral-100 rounded-full transition-colors text-sm w-full outline-none ${isAnyUploading ? "opacity-50 cursor-not-allowed bg-neutral-50 text-neutral-400" : "text-black hover:bg-neutral-50"}`, disabled: isReadOnly || isAnyUploading }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons32.Upload01Icon, size: 18, className: "text-neutral-400" }), " Upload Signature") : globalUploadingSignature && !member.signatureFileUrl ? /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex items-center gap-3 p-4 border border-neutral-100 rounded-full bg-neutral-50 text-neutral-500 text-sm w-full" }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons32.Loading03Icon, size: 18, className: "animate-spin text-black" }), " Uploading Signature...") : member.signatureFileUrl ? /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex items-center justify-between p-4 bg-emerald-50 rounded-full text-emerald-800 text-sm w-full" }, /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons32.SignatureIcon, size: 18 }), " Signature Uploaded"), !isReadOnly && /* @__PURE__ */ import_react88.default.createElement("button", { onClick: () => deleteCompanyMemberDocument(i, "signature"), disabled: isAnyUploading, className: "text-emerald-700 hover:text-red-500 transition-colors p-1 outline-none shrink-0 disabled:opacity-50 disabled:cursor-not-allowed" }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons32.Delete02Icon, size: 16 }))) : null)), /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex justify-end" }, /* @__PURE__ */ import_react88.default.createElement(ThreeDActionButton, { onClick: () => approveSection("membersDocsApproved"), disabled: !areCompanyMemberDocsValid() || isReadOnly || isAnyUploading, className: "w-fit" }, "Confirm All Documents"))) : /* @__PURE__ */ import_react88.default.createElement("div", { className: " flex items-center justify-between bg-emerald-50 p-6 rounded-full" }, /* @__PURE__ */ import_react88.default.createElement("div", null, /* @__PURE__ */ import_react88.default.createElement("p", { className: "text-sm text-emerald-800" }, "Documents Uploaded"), /* @__PURE__ */ import_react88.default.createElement("p", { className: "text-xs text-emerald-600 mt-1" }, "Data safely extracted.")), !isReadOnly && /* @__PURE__ */ import_react88.default.createElement("button", { onClick: () => editSection("membersDocsApproved"), className: "p-2 text-emerald-700 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons32.PencilEdit01Icon, size: 16 })))) : /* @__PURE__ */ import_react88.default.createElement(import_react88.default.Fragment, null, /* @__PURE__ */ import_react88.default.createElement("input", { type: "file", accept: "image/jpeg, image/png, image/webp, application/pdf", ref: idRef, onChange: (e) => handleBusinessUpload(e, "id"), disabled: isReadOnly || isAnyUploading, className: "hidden" }), /* @__PURE__ */ import_react88.default.createElement("input", { type: "file", accept: "image/jpeg, image/png, image/webp, application/pdf", ref: passportRef, onChange: (e) => handleBusinessUpload(e, "passport"), disabled: isReadOnly || isAnyUploading, className: "hidden" }), /* @__PURE__ */ import_react88.default.createElement("input", { type: "file", accept: "image/jpeg, image/png, image/webp, application/pdf", ref: signatureRef, onChange: (e) => handleBusinessUpload(e, "signature"), disabled: isReadOnly || isAnyUploading, className: "hidden" }), /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex items-center gap-2 text-black" }, /* @__PURE__ */ import_react88.default.createElement("h3", { className: "text-sm " }, "Upload Means of Identification")), /* @__PURE__ */ import_react88.default.createElement("p", { className: "text-xs text-neutral-500 -mt-2" }, "Upload your NIN, Driver's License, Voter's Card, or Int'l Passport (JPG/PNG/WEBP)."), !formState.idApproved ? /* @__PURE__ */ import_react88.default.createElement(import_react88.default.Fragment, null, /* @__PURE__ */ import_react88.default.createElement("button", { onClick: () => !isReadOnly && !isAnyUploading && idRef.current?.click(), disabled: isReadOnly || isAnyUploading, className: `w-full h-32 border border-neutral-100 rounded-full flex flex-col items-center justify-center gap-2 transition-colors outline-none ${isAnyUploading ? "opacity-50 cursor-not-allowed bg-neutral-50 text-neutral-400" : "hover:bg-neutral-50 text-black"}` }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons32.Upload01Icon, size: 24, className: "text-neutral-400" }), /* @__PURE__ */ import_react88.default.createElement("span", { className: "text-xs" }, "Select ID Image to Upload")), globalExtractingId && /* @__PURE__ */ import_react88.default.createElement("div", { className: " mt-2" }, /* @__PURE__ */ import_react88.default.createElement(AiStageCheck, { tasks: aiTasks })), formData.idExtractedData && /* @__PURE__ */ import_react88.default.createElement("div", { className: " mt-2 animate-in fade-in border border-orange-100 bg-linear-to-bl from-orange-50/80 via-white to-white p-5 rounded-2xl flex flex-col gap-4 relative overflow-hidden" }, /* @__PURE__ */ import_react88.default.createElement("div", null, /* @__PURE__ */ import_react88.default.createElement("span", { className: "text-[11px] tracking-widest text-orange-600 block mb-2" }, "Review AI Extracted Data"), /* @__PURE__ */ import_react88.default.createElement("p", { className: "text-xs text-neutral-500 mb-4" }, "Please verify the extracted information and correct any OCR mistakes before approving."), /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ import_react88.default.createElement(TextInput, { label: "Full Name on ID", value: formData.idExtractedData.fullName, onChange: (v) => setFormData((f) => ({ ...f, idExtractedData: { ...f.idExtractedData, fullName: v } })), disabled: isReadOnly || isAnyUploading }), /* @__PURE__ */ import_react88.default.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ import_react88.default.createElement(TextInput, { label: "ID Number", value: formData.idExtractedData.idNumber, onChange: (v) => setFormData((f) => ({ ...f, idExtractedData: { ...f.idExtractedData, idNumber: v } })), disabled: isReadOnly || isAnyUploading }), /* @__PURE__ */ import_react88.default.createElement(TextInput, { label: "Date of Birth (YYYY-MM-DD)", value: formData.idExtractedData.dob, onChange: (v) => setFormData((f) => ({ ...f, idExtractedData: { ...f.idExtractedData, dob: v } })), disabled: isReadOnly || isAnyUploading })))), /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex items-center gap-2 mt-2" }, /* @__PURE__ */ import_react88.default.createElement(ThreeDActionButton, { onClick: () => approveSection("idApproved"), disabled: isAnyUploading || isReadOnly, className: "w-fit shrink-0" }, "Approve Data"), !isReadOnly && /* @__PURE__ */ import_react88.default.createElement("button", { onClick: () => deleteBusinessDocument("id"), disabled: isAnyUploading, className: "px-6 py-2 bg-white border border-neutral-100 text-neutral-500 text-[11px] rounded-full tracking-widest hover:bg-neutral-50 transition-colors outline-none disabled:opacity-50 disabled:cursor-not-allowed" }, "Delete & Re-upload")))) : /* @__PURE__ */ import_react88.default.createElement("div", { className: " flex items-center justify-between bg-emerald-50 p-6 rounded-full" }, /* @__PURE__ */ import_react88.default.createElement("div", null, /* @__PURE__ */ import_react88.default.createElement("p", { className: "text-sm text-emerald-800" }, "ID Document Verified"), /* @__PURE__ */ import_react88.default.createElement("p", { className: "text-xs text-emerald-600 mt-1" }, "Data safely extracted and stored.")), !isReadOnly && /* @__PURE__ */ import_react88.default.createElement("button", { onClick: () => editSection("idApproved"), className: "p-2 text-emerald-700 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons32.PencilEdit01Icon, size: 16 })))), /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col gap-4 pt-6 animate-in slide-in-from-top-4 duration-500" }, /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col gap-3 " }, !formState.passportApproved && !globalUploadingPassport ? /* @__PURE__ */ import_react88.default.createElement("button", { onClick: () => !isReadOnly && !isAnyUploading && passportRef.current?.click(), disabled: isReadOnly || isAnyUploading, className: `flex items-center gap-3 p-4 border border-neutral-100 rounded-full transition-colors text-sm w-full outline-none ${isAnyUploading ? "opacity-50 cursor-not-allowed bg-neutral-50 text-neutral-400" : "text-black hover:bg-neutral-50"}` }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons32.Upload01Icon, size: 18, className: "text-neutral-400" }), " Upload Passport Photo") : globalUploadingPassport && !formData.passportFileUrl ? /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex items-center gap-3 p-4 border border-neutral-100 rounded-full bg-neutral-50 text-neutral-500 text-sm w-full" }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons32.Loading03Icon, size: 18, className: "animate-spin text-black" }), " Uploading Passport...") : /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex items-center justify-between p-4 bg-emerald-50 rounded-full text-emerald-800 text-sm w-full" }, /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons32.IdentificationIcon, size: 18 }), " Passport Uploaded"), !isReadOnly && /* @__PURE__ */ import_react88.default.createElement("button", { onClick: () => deleteBusinessDocument("passport"), disabled: isAnyUploading, className: "text-emerald-700 hover:text-red-500 transition-colors p-1 outline-none shrink-0 disabled:opacity-50 disabled:cursor-not-allowed" }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons32.Delete02Icon, size: 16 }))), !formState.signatureApproved && !globalUploadingSignature ? /* @__PURE__ */ import_react88.default.createElement("button", { onClick: () => !isReadOnly && !isAnyUploading && signatureRef.current?.click(), disabled: isReadOnly || isAnyUploading, className: `flex items-center gap-3 p-4 border border-neutral-100 rounded-full transition-colors text-sm w-full outline-none ${isAnyUploading ? "opacity-50 cursor-not-allowed bg-neutral-50 text-neutral-400" : "text-black hover:bg-neutral-50"}` }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons32.Upload01Icon, size: 18, className: "text-neutral-400" }), " Upload Signature") : globalUploadingSignature && !formData.signatureFileUrl ? /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex items-center gap-3 p-4 border border-neutral-100 rounded-full bg-neutral-50 text-neutral-500 text-sm w-full" }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons32.Loading03Icon, size: 18, className: "animate-spin text-black" }), " Uploading Signature...") : /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex items-center justify-between p-4 bg-emerald-50 rounded-full text-emerald-800 text-sm w-full" }, /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons32.SignatureIcon, size: 18 }), " Signature Uploaded"), !isReadOnly && /* @__PURE__ */ import_react88.default.createElement("button", { onClick: () => deleteBusinessDocument("signature"), disabled: isAnyUploading, className: "text-emerald-700 hover:text-red-500 transition-colors p-1 outline-none shrink-0 disabled:opacity-50 disabled:cursor-not-allowed" }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons32.Delete02Icon, size: 16 })))))), /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col gap-4 pt-6 border-t border-neutral-100 animate-in slide-in-from-top-4 duration-500" }, /* @__PURE__ */ import_react88.default.createElement("input", { type: "file", accept: "image/jpeg, image/png, image/webp, application/pdf", ref: other1Ref, onChange: (e) => handleOptionalUpload(e, "other1"), disabled: isAnyUploading || isReadOnly, className: "hidden" }), /* @__PURE__ */ import_react88.default.createElement("input", { type: "file", accept: "image/jpeg, image/png, image/webp, application/pdf", ref: other2Ref, onChange: (e) => handleOptionalUpload(e, "other2"), disabled: isAnyUploading || isReadOnly, className: "hidden" }), /* @__PURE__ */ import_react88.default.createElement("input", { type: "file", accept: "image/jpeg, image/png, image/webp, application/pdf", ref: other3Ref, onChange: (e) => handleOptionalUpload(e, "other3"), disabled: isAnyUploading || isReadOnly, className: "hidden" }), /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col gap-1 mb-2" }, /* @__PURE__ */ import_react88.default.createElement("h3", { className: "text-sm text-black" }, "Additional Documents (Optional)"), /* @__PURE__ */ import_react88.default.createElement("p", { className: "text-xs text-neutral-500 leading-relaxed" }, "If your ", type === "company" ? "company" : "business", " involves regulated professional services, please upload relevant licenses, certificates, or permits here (up to 3 documents).")), /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col gap-3" }, [1, 2, 3].map((num) => {
4922
5039
  const docType = `other${num}`;
4923
5040
  const ref = num === 1 ? other1Ref : num === 2 ? other2Ref : other3Ref;
4924
5041
  const isUploading = num === 1 ? isUploadingOther1 : num === 2 ? isUploadingOther2 : isUploadingOther3;
@@ -4926,29 +5043,29 @@ var UniversalRegistrationFlow = ({
4926
5043
  if (!fileUrl && !isUploading) {
4927
5044
  const prevUrl = num > 1 ? formData[`otherDoc${num - 1}Url`] : true;
4928
5045
  if (!prevUrl) return null;
4929
- return /* @__PURE__ */ import_react86.default.createElement("button", { key: num, onClick: () => !isReadOnly && !isAnyUploading && ref.current?.click(), disabled: isReadOnly || isAnyUploading, className: `flex items-center gap-3 p-4 border border-neutral-100 rounded-full transition-colors text-sm w-full outline-none ${isAnyUploading ? "opacity-50 cursor-not-allowed bg-neutral-50 text-neutral-400" : "text-black hover:bg-neutral-50"}` }, /* @__PURE__ */ import_react86.default.createElement(import_react87.HugeiconsIcon, { icon: import_core_free_icons31.Upload01Icon, size: 18, className: "text-neutral-400" }), " Upload Optional Document ", num);
5046
+ return /* @__PURE__ */ import_react88.default.createElement("button", { key: num, onClick: () => !isReadOnly && !isAnyUploading && ref.current?.click(), disabled: isReadOnly || isAnyUploading, className: `flex items-center gap-3 p-4 border border-neutral-100 rounded-full transition-colors text-sm w-full outline-none ${isAnyUploading ? "opacity-50 cursor-not-allowed bg-neutral-50 text-neutral-400" : "text-black hover:bg-neutral-50"}` }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons32.Upload01Icon, size: 18, className: "text-neutral-400" }), " Upload Optional Document ", num);
4930
5047
  }
4931
5048
  if (isUploading) {
4932
- return /* @__PURE__ */ import_react86.default.createElement("div", { key: num, className: "flex items-center gap-3 p-4 border border-neutral-100 rounded-full bg-neutral-50 text-neutral-500 text-sm w-full" }, /* @__PURE__ */ import_react86.default.createElement(import_react87.HugeiconsIcon, { icon: import_core_free_icons31.Loading03Icon, size: 18, className: "animate-spin text-black" }), " Uploading Document ", num, "...");
5049
+ return /* @__PURE__ */ import_react88.default.createElement("div", { key: num, className: "flex items-center gap-3 p-4 border border-neutral-100 rounded-full bg-neutral-50 text-neutral-500 text-sm w-full" }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons32.Loading03Icon, size: 18, className: "animate-spin text-black" }), " Uploading Document ", num, "...");
4933
5050
  }
4934
- return /* @__PURE__ */ import_react86.default.createElement("div", { key: num, className: "flex items-center justify-between p-4 bg-emerald-50 rounded-full text-emerald-800 text-sm w-full" }, /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ import_react86.default.createElement(import_react87.HugeiconsIcon, { icon: import_core_free_icons31.CheckmarkBadge01Icon, size: 18 }), " Optional Document ", num, " Uploaded"), !isReadOnly && /* @__PURE__ */ import_react86.default.createElement("button", { onClick: () => deleteOptionalDocument(docType), disabled: isAnyUploading, className: "text-emerald-700 hover:text-red-500 transition-colors p-1 outline-none shrink-0 disabled:opacity-50 disabled:cursor-not-allowed" }, /* @__PURE__ */ import_react86.default.createElement(import_react87.HugeiconsIcon, { icon: import_core_free_icons31.Delete02Icon, size: 16 })));
4935
- }))), /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex items-center justify-between mt-8 pt-6 " }, /* @__PURE__ */ import_react86.default.createElement("button", { onClick: handleBack, disabled: isAnyUploading, className: "flex items-center gap-2 px-6 py-2 text-[11px] tracking-widest text-neutral-500 hover:text-black hover:bg-neutral-50 rounded-full transition-colors outline-none disabled:opacity-50 disabled:cursor-not-allowed" }, /* @__PURE__ */ import_react86.default.createElement(import_react87.HugeiconsIcon, { icon: import_core_free_icons31.ArrowLeft01Icon, size: 14 }), " Back"), /* @__PURE__ */ import_react86.default.createElement(ThreeDActionButton, { onClick: handleNext, disabled: !isStep1Valid || isAnyUploading, className: "w-fit shrink-0" }, "Next Step"))), macroStep === 2 && /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex flex-col gap-6 animate-in fade-in" }, /* @__PURE__ */ import_react86.default.createElement("div", null, /* @__PURE__ */ import_react86.default.createElement("h3", { className: "text-sm mb-5 text-black" }, "Application Summary"), /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex flex-col gap-4 text-sm" }, /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between border-b border-neutral-100 pb-3 gap-1" }, /* @__PURE__ */ import_react86.default.createElement("span", { className: "text-neutral-500 truncate text-[13px] " }, type === "company" ? "Company Name" : "Business Name"), /* @__PURE__ */ import_react86.default.createElement("span", { className: " text-black text-[13px]" }, formData.approvedName)), /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between border-b border-neutral-100 pb-3 gap-1" }, /* @__PURE__ */ import_react86.default.createElement("span", { className: "text-neutral-500 text-[13px] " }, "Classification"), /* @__PURE__ */ import_react86.default.createElement("span", { className: " text-black truncate sm:text-right text-[13px] " }, formData.natureOfBusiness?.specificLabel || "Pending")), type === "company" ? /* @__PURE__ */ import_react86.default.createElement(import_react86.default.Fragment, null, /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between border-b border-neutral-100 pb-3 gap-1" }, /* @__PURE__ */ import_react86.default.createElement("span", { className: "text-neutral-500 text-[13px] " }, "Total Members"), /* @__PURE__ */ import_react86.default.createElement("span", { className: " text-black truncate text-[13px] " }, formData.members.length, " Directors/Shareholders")), /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between border-b border-neutral-100 pb-3 gap-1" }, /* @__PURE__ */ import_react86.default.createElement("span", { className: "text-neutral-500 text-[13px] " }, "Share Capital"), /* @__PURE__ */ import_react86.default.createElement("span", { className: " text-black truncate text-[13px] " }, "100% Allocated"))) : /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between border-b border-neutral-100 pb-3 gap-1" }, /* @__PURE__ */ import_react86.default.createElement("span", { className: "text-neutral-500 text-[13px] " }, "Proprietor"), /* @__PURE__ */ import_react86.default.createElement("span", { className: " text-black truncate text-[13px] " }, formData.ownerName)), /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between pb-2 gap-1" }, /* @__PURE__ */ import_react86.default.createElement("span", { className: "text-neutral-500 text-[13px] " }, "Documents Attached"), /* @__PURE__ */ import_react86.default.createElement("span", { className: " text-neutral-400 text-[13px] " }, "ID, Passport, Signature")), formData.otherDoc1Url && /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between pb-2 gap-1" }, /* @__PURE__ */ import_react86.default.createElement("span", { className: "text-neutral-500 text-[13px] " }, "Optional Documents"), /* @__PURE__ */ import_react86.default.createElement("span", { className: " text-neutral-400 text-[13px] " }, [formData.otherDoc1Url, formData.otherDoc2Url, formData.otherDoc3Url].filter(Boolean).length, " Attached")))), /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex items-center justify-between mt-4 pt-4 " }, /* @__PURE__ */ import_react86.default.createElement("button", { onClick: handleBack, className: "flex items-center gap-2 px-6 py-2 rounded-full text-[11px] tracking-widest text-neutral-500 hover:text-black hover:bg-neutral-50 transition-colors outline-none" }, /* @__PURE__ */ import_react86.default.createElement(import_react87.HugeiconsIcon, { icon: import_core_free_icons31.ArrowLeft01Icon, size: 14 }), " Back"), /* @__PURE__ */ import_react86.default.createElement(ThreeDActionButton, { onClick: handleNext, className: "w-fit shrink-0" }, "Next Step"))), macroStep === 3 && /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex flex-col gap-6 py-6 animate-in zoom-in-95 duration-500" }, /* @__PURE__ */ import_react86.default.createElement("h2", { className: "text-lg text-black tracking-tight mb-2" }, "Terms and Conditions of Application"), /* @__PURE__ */ import_react86.default.createElement("div", { className: "text-xs text-neutral-500 mb-4" }, /* @__PURE__ */ import_react86.default.createElement("p", { className: " mb-3" }, "Declaration and Consent"), /* @__PURE__ */ import_react86.default.createElement("p", { className: "mb-3 leading-relaxed" }, "By proceeding with this application, you acknowledge and agree that all data, documents, and identification materials provided herein will be securely transmitted to the relevant official registries and authorized agents for the purpose of ", type === "company" ? "company" : "business", " incorporation and compliance verification."), /* @__PURE__ */ import_react86.default.createElement("p", { className: "mb-3 leading-relaxed" }, "You confirm that all information provided is accurate and authentic. Any falsification of identity or corporate data may result in immediate rejection, and you may be held liable under applicable laws and regulations."), /* @__PURE__ */ import_react86.default.createElement("p", { className: "mb-3 leading-relaxed" }, "This service operates strictly as a digital intermediary connecting you with official registries. The final approval of the ", type === "company" ? "company" : "business", " name and registration rests solely with the regulatory authorities. We are not liable for rejections arising from pre existing conflicts, non compliance, or regulatory policy changes not flagged during the AI pre check stages."), /* @__PURE__ */ import_react86.default.createElement("p", { className: "leading-relaxed" }, "Proceeding to generate the invoice confirms your acceptance of these terms and initiates the formal filing process.")), /* @__PURE__ */ import_react86.default.createElement("label", { className: "flex items-start gap-3 mt-2 cursor-pointer group" }, /* @__PURE__ */ import_react86.default.createElement("input", { type: "checkbox", checked: iAgree, onChange: (e) => setIAgree(e.target.checked), disabled: isReadOnly, className: "mt-0.5 w-4 h-4 accent-black rounded cursor-pointer" }), /* @__PURE__ */ import_react86.default.createElement("span", { className: "text-[13px] text-neutral-500 group-hover:text-neutral-600 transition-colors" }, "I have read, understood, and agree to the terms of data transfer and processing.")), /* @__PURE__ */ import_react86.default.createElement("div", { className: "flex flex-col sm:flex-row items-center gap-4 mt-8 w-full justify-end pt-6" }, /* @__PURE__ */ import_react86.default.createElement("button", { onClick: onCancelOrClose, disabled: isSubmitting, className: "text-[11px] tracking-widest text-neutral-500 hover:text-black hover:bg-neutral-50 rounded-full px-8 py-2.5 border border-neutral-100 transition-colors outline-none w-full sm:w-auto" }, "Cancel"), /* @__PURE__ */ import_react86.default.createElement("button", { onClick: () => setMacroStep(0), disabled: isSubmitting || isReadOnly, className: " text-[11px] tracking-widest text-neutral-500 hover:text-black hover:bg-neutral-50 rounded-full px-8 py-2.5 border border-neutral-100transition-colors outline-none w-full sm:w-auto" }, "Edit Application"), /* @__PURE__ */ import_react86.default.createElement(ThreeDActionButton, { onClick: handleFinalSubmit, disabled: isSubmitting || !iAgree || isReadOnly, isLoading: isSubmitting, className: "min-w-40 w-full sm:w-auto" }, "Submit")))), activeModal.isOpen && /* @__PURE__ */ import_react86.default.createElement("div", { className: "fixed inset-0 z-110 flex items-center justify-center p-4" }, /* @__PURE__ */ import_react86.default.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setActiveModal({ isOpen: false, type: null, memberIndex: null }) }), /* @__PURE__ */ import_react86.default.createElement("div", { className: "relative w-80 bg-white shadow-2xl rounded-3xl flex flex-col overflow-hidden animate-in zoom-in-95 duration-200 max-h-[80vh]" }, /* @__PURE__ */ import_react86.default.createElement("div", { className: "p-4 text-center w-full shrink-0" }, /* @__PURE__ */ import_react86.default.createElement("h3", { className: "text-[14px] text-black tracking-tight capitalize" }, "Select ", activeModal.type)), /* @__PURE__ */ import_react86.default.createElement("div", { className: "p-4 flex flex-col gap-2 overflow-y-auto custom-scrollbar" }, (activeModal.type === "state" ? NIGERIAN_STATES : activeModal.type === "role" ? MEMBER_ROLES : NATIONALITIES).map((opt) => {
5051
+ return /* @__PURE__ */ import_react88.default.createElement("div", { key: num, className: "flex items-center justify-between p-4 bg-emerald-50 rounded-full text-emerald-800 text-sm w-full" }, /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons32.CheckmarkBadge01Icon, size: 18 }), " Optional Document ", num, " Uploaded"), !isReadOnly && /* @__PURE__ */ import_react88.default.createElement("button", { onClick: () => deleteOptionalDocument(docType), disabled: isAnyUploading, className: "text-emerald-700 hover:text-red-500 transition-colors p-1 outline-none shrink-0 disabled:opacity-50 disabled:cursor-not-allowed" }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons32.Delete02Icon, size: 16 })));
5052
+ }))), /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex items-center justify-between mt-8 pt-6 " }, /* @__PURE__ */ import_react88.default.createElement("button", { onClick: handleBack, disabled: isAnyUploading, className: "flex items-center gap-2 px-6 py-2 text-[11px] tracking-widest text-neutral-500 hover:text-black hover:bg-neutral-50 rounded-full transition-colors outline-none disabled:opacity-50 disabled:cursor-not-allowed" }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons32.ArrowLeft01Icon, size: 14 }), " Back"), /* @__PURE__ */ import_react88.default.createElement(ThreeDActionButton, { onClick: handleNext, disabled: !isStep1Valid || isAnyUploading, className: "w-fit shrink-0" }, "Next Step"))), macroStep === 2 && /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col gap-6 animate-in fade-in" }, /* @__PURE__ */ import_react88.default.createElement("div", null, /* @__PURE__ */ import_react88.default.createElement("h3", { className: "text-sm mb-5 text-black" }, "Application Summary"), /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col gap-4 text-sm" }, /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between border-b border-neutral-100 pb-3 gap-1" }, /* @__PURE__ */ import_react88.default.createElement("span", { className: "text-neutral-500 truncate text-[13px] " }, type === "company" ? "Company Name" : "Business Name"), /* @__PURE__ */ import_react88.default.createElement("span", { className: " text-black text-[13px]" }, formData.approvedName)), /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between border-b border-neutral-100 pb-3 gap-1" }, /* @__PURE__ */ import_react88.default.createElement("span", { className: "text-neutral-500 text-[13px] " }, "Classification"), /* @__PURE__ */ import_react88.default.createElement("span", { className: " text-black truncate sm:text-right text-[13px] " }, formData.natureOfBusiness?.specificLabel || "Pending")), type === "company" ? /* @__PURE__ */ import_react88.default.createElement(import_react88.default.Fragment, null, /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between border-b border-neutral-100 pb-3 gap-1" }, /* @__PURE__ */ import_react88.default.createElement("span", { className: "text-neutral-500 text-[13px] " }, "Total Members"), /* @__PURE__ */ import_react88.default.createElement("span", { className: " text-black truncate text-[13px] " }, formData.members.length, " Directors/Shareholders")), /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between border-b border-neutral-100 pb-3 gap-1" }, /* @__PURE__ */ import_react88.default.createElement("span", { className: "text-neutral-500 text-[13px] " }, "Share Capital"), /* @__PURE__ */ import_react88.default.createElement("span", { className: " text-black truncate text-[13px] " }, "100% Allocated"))) : /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between border-b border-neutral-100 pb-3 gap-1" }, /* @__PURE__ */ import_react88.default.createElement("span", { className: "text-neutral-500 text-[13px] " }, "Proprietor"), /* @__PURE__ */ import_react88.default.createElement("span", { className: " text-black truncate text-[13px] " }, formData.ownerName)), /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between pb-2 gap-1" }, /* @__PURE__ */ import_react88.default.createElement("span", { className: "text-neutral-500 text-[13px] " }, "Documents Attached"), /* @__PURE__ */ import_react88.default.createElement("span", { className: " text-neutral-400 text-[13px] " }, "ID, Passport, Signature")), formData.otherDoc1Url && /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between pb-2 gap-1" }, /* @__PURE__ */ import_react88.default.createElement("span", { className: "text-neutral-500 text-[13px] " }, "Optional Documents"), /* @__PURE__ */ import_react88.default.createElement("span", { className: " text-neutral-400 text-[13px] " }, [formData.otherDoc1Url, formData.otherDoc2Url, formData.otherDoc3Url].filter(Boolean).length, " Attached")))), /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex items-center justify-between mt-4 pt-4 " }, /* @__PURE__ */ import_react88.default.createElement("button", { onClick: handleBack, className: "flex items-center gap-2 px-6 py-2 rounded-full text-[11px] tracking-widest text-neutral-500 hover:text-black hover:bg-neutral-50 transition-colors outline-none" }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons32.ArrowLeft01Icon, size: 14 }), " Back"), /* @__PURE__ */ import_react88.default.createElement(ThreeDActionButton, { onClick: handleNext, className: "w-fit shrink-0" }, "Next Step"))), macroStep === 3 && /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col gap-6 py-6 animate-in zoom-in-95 duration-500" }, /* @__PURE__ */ import_react88.default.createElement("h2", { className: "text-lg text-black tracking-tight mb-2" }, "Terms and Conditions of Application"), /* @__PURE__ */ import_react88.default.createElement("div", { className: "text-xs text-neutral-500 mb-4" }, /* @__PURE__ */ import_react88.default.createElement("p", { className: " mb-3" }, "Declaration and Consent"), /* @__PURE__ */ import_react88.default.createElement("p", { className: "mb-3 leading-relaxed" }, "By proceeding with this application, you acknowledge and agree that all data, documents, and identification materials provided herein will be securely transmitted to the relevant official registries and authorized agents for the purpose of ", type === "company" ? "company" : "business", " incorporation and compliance verification."), /* @__PURE__ */ import_react88.default.createElement("p", { className: "mb-3 leading-relaxed" }, "You confirm that all information provided is accurate and authentic. Any falsification of identity or corporate data may result in immediate rejection, and you may be held liable under applicable laws and regulations."), /* @__PURE__ */ import_react88.default.createElement("p", { className: "mb-3 leading-relaxed" }, "This service operates strictly as a digital intermediary connecting you with official registries. The final approval of the ", type === "company" ? "company" : "business", " name and registration rests solely with the regulatory authorities. We are not liable for rejections arising from pre existing conflicts, non compliance, or regulatory policy changes not flagged during the AI pre check stages."), /* @__PURE__ */ import_react88.default.createElement("p", { className: "leading-relaxed" }, "Proceeding to generate the invoice confirms your acceptance of these terms and initiates the formal filing process.")), /* @__PURE__ */ import_react88.default.createElement("label", { className: "flex items-start gap-3 mt-2 cursor-pointer group" }, /* @__PURE__ */ import_react88.default.createElement("input", { type: "checkbox", checked: iAgree, onChange: (e) => setIAgree(e.target.checked), disabled: isReadOnly, className: "mt-0.5 w-4 h-4 accent-black rounded cursor-pointer" }), /* @__PURE__ */ import_react88.default.createElement("span", { className: "text-[13px] text-neutral-500 group-hover:text-neutral-600 transition-colors" }, "I have read, understood, and agree to the terms of data transfer and processing.")), /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col sm:flex-row items-center gap-4 mt-8 w-full justify-end pt-6" }, /* @__PURE__ */ import_react88.default.createElement("button", { onClick: onCancelOrClose, disabled: isSubmitting, className: "text-[11px] tracking-widest text-neutral-500 hover:text-black hover:bg-neutral-50 rounded-full px-8 py-2.5 border border-neutral-100 transition-colors outline-none w-full sm:w-auto" }, "Cancel"), /* @__PURE__ */ import_react88.default.createElement("button", { onClick: () => setMacroStep(0), disabled: isSubmitting || isReadOnly, className: " text-[11px] tracking-widest text-neutral-500 hover:text-black hover:bg-neutral-50 rounded-full px-8 py-2.5 border border-neutral-100transition-colors outline-none w-full sm:w-auto" }, "Edit Application"), /* @__PURE__ */ import_react88.default.createElement(ThreeDActionButton, { onClick: handleFinalSubmit, disabled: isSubmitting || !iAgree || isReadOnly, isLoading: isSubmitting, className: "min-w-40 w-full sm:w-auto" }, "Submit")))), activeModal.isOpen && /* @__PURE__ */ import_react88.default.createElement("div", { className: "fixed inset-0 z-110 flex items-center justify-center p-4" }, /* @__PURE__ */ import_react88.default.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setActiveModal({ isOpen: false, type: null, memberIndex: null }) }), /* @__PURE__ */ import_react88.default.createElement("div", { className: "relative w-80 bg-white shadow-2xl rounded-3xl flex flex-col overflow-hidden animate-in zoom-in-95 duration-200 max-h-[80vh]" }, /* @__PURE__ */ import_react88.default.createElement("div", { className: "p-4 text-center w-full shrink-0" }, /* @__PURE__ */ import_react88.default.createElement("h3", { className: "text-[14px] text-black tracking-tight capitalize" }, "Select ", activeModal.type)), /* @__PURE__ */ import_react88.default.createElement("div", { className: "p-4 flex flex-col gap-2 overflow-y-auto custom-scrollbar" }, (activeModal.type === "state" ? NIGERIAN_STATES : activeModal.type === "role" ? MEMBER_ROLES : NATIONALITIES).map((opt) => {
4936
5053
  const isSelected = activeModal.isGlobalState ? formData.state === opt : formData.members[activeModal.memberIndex][activeModal.type] === opt;
4937
- return /* @__PURE__ */ import_react86.default.createElement("button", { key: opt, onClick: () => {
5054
+ return /* @__PURE__ */ import_react88.default.createElement("button", { key: opt, onClick: () => {
4938
5055
  if (activeModal.isGlobalState) setFormData({ ...formData, state: opt });
4939
5056
  else updateCompanyMemberInfo(activeModal.memberIndex, activeModal.type, opt);
4940
5057
  setActiveModal({ isOpen: false, type: null, memberIndex: null });
4941
5058
  }, className: `text-left px-4 py-3 rounded-full text-[13px] transition-colors outline-none ${isSelected ? "bg-neutral-100 text-black" : "text-neutral-500 hover:bg-neutral-50 hover:text-black"}` }, opt);
4942
- })), /* @__PURE__ */ import_react86.default.createElement("div", { className: "w-full flex mt-auto shrink-0 " }, /* @__PURE__ */ import_react86.default.createElement("button", { onClick: () => setActiveModal({ isOpen: false, type: null, memberIndex: null }), className: "w-full py-4 text-[13px] text-neutral-500 hover:bg-neutral-50 transition-colors outline-none" }, "Close")))));
5059
+ })), /* @__PURE__ */ import_react88.default.createElement("div", { className: "w-full flex mt-auto shrink-0 " }, /* @__PURE__ */ import_react88.default.createElement("button", { onClick: () => setActiveModal({ isOpen: false, type: null, memberIndex: null }), className: "w-full py-4 text-[13px] text-neutral-500 hover:bg-neutral-50 transition-colors outline-none" }, "Close")))));
4943
5060
  };
4944
5061
 
4945
5062
  // src/components/UniversalDeveloperSettings.tsx
4946
- var import_react88 = __toESM(require("react"));
5063
+ var import_react90 = __toESM(require("react"));
4947
5064
  var import_react_hot_toast11 = require("react-hot-toast");
4948
- var import_react89 = require("@hugeicons/react");
4949
- var import_core_free_icons32 = require("@hugeicons/core-free-icons");
4950
- var ButtonSpinner5 = () => /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons32.Loading03Icon, size: 16, className: "animate-spin text-current" });
4951
- var PageSpinner7 = () => /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex justify-center items-center py-12 w-full" }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons32.Loading03Icon, size: 32, className: "animate-spin text-black" }));
5065
+ var import_react91 = require("@hugeicons/react");
5066
+ var import_core_free_icons33 = require("@hugeicons/core-free-icons");
5067
+ var ButtonSpinner5 = () => /* @__PURE__ */ import_react90.default.createElement(import_react91.HugeiconsIcon, { icon: import_core_free_icons33.Loading03Icon, size: 16, className: "animate-spin text-current" });
5068
+ var PageSpinner8 = () => /* @__PURE__ */ import_react90.default.createElement("div", { className: "flex justify-center items-center py-12 w-full" }, /* @__PURE__ */ import_react90.default.createElement(import_react91.HugeiconsIcon, { icon: import_core_free_icons33.Loading03Icon, size: 32, className: "animate-spin text-black" }));
4952
5069
  var UniversalDeveloperSettings = ({
4953
5070
  initialPublicKey,
4954
5071
  initialWebhookUrl,
@@ -4957,12 +5074,12 @@ var UniversalDeveloperSettings = ({
4957
5074
  onGenerateKeys,
4958
5075
  onSaveWebhook
4959
5076
  }) => {
4960
- const [publicKey, setPublicKey] = (0, import_react88.useState)(initialPublicKey);
4961
- const [webhookUrl, setWebhookUrl] = (0, import_react88.useState)(initialWebhookUrl);
4962
- const [isGenerating, setIsGenerating] = (0, import_react88.useState)(false);
4963
- const [isSavingWebhook, setIsSavingWebhook] = (0, import_react88.useState)(false);
4964
- const [isRollModalOpen, setIsRollModalOpen] = (0, import_react88.useState)(false);
4965
- (0, import_react88.useEffect)(() => {
5077
+ const [publicKey, setPublicKey] = (0, import_react90.useState)(initialPublicKey);
5078
+ const [webhookUrl, setWebhookUrl] = (0, import_react90.useState)(initialWebhookUrl);
5079
+ const [isGenerating, setIsGenerating] = (0, import_react90.useState)(false);
5080
+ const [isSavingWebhook, setIsSavingWebhook] = (0, import_react90.useState)(false);
5081
+ const [isRollModalOpen, setIsRollModalOpen] = (0, import_react90.useState)(false);
5082
+ (0, import_react90.useEffect)(() => {
4966
5083
  setPublicKey(initialPublicKey || "");
4967
5084
  setWebhookUrl(initialWebhookUrl || "");
4968
5085
  }, [initialPublicKey, initialWebhookUrl]);
@@ -5022,7 +5139,7 @@ SECRET_KEY="${secKey}"
5022
5139
  };
5023
5140
  const hasWebhookChanges = webhookUrl !== initialWebhookUrl;
5024
5141
  const isWebhookSaveDisabled = isSavingWebhook || isReadOnly || !hasWebhookChanges;
5025
- return /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col max-w-5xl rounded-2xl p-6 bg-white gap-8 animate-in fade-in duration-300" }, /* @__PURE__ */ import_react88.default.createElement(ManagedToaster, null), /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col sm:flex-row sm:items-start justify-between gap-3 sm:gap-4" }, /* @__PURE__ */ import_react88.default.createElement("div", { className: "min-w-0" }, /* @__PURE__ */ import_react88.default.createElement("h1", { className: " text-xl text-black mb-1 truncate tracking-tight" }, "Developer Settings"), /* @__PURE__ */ import_react88.default.createElement("p", { className: "text-xs text-neutral-500 truncate" }, "Manage your API credentials and webhook integrations.")), isReadOnly && /* @__PURE__ */ import_react88.default.createElement("span", { className: "p-2 w-9 h-9 bg-neutral-50 text-neutral-500 rounded-full flex items-center justify-center shrink-0" }, /* @__PURE__ */ import_react88.default.createElement(import_react89.HugeiconsIcon, { icon: import_core_free_icons32.CircleLock02Icon, size: 18, className: "text-current" }))), isLoading ? /* @__PURE__ */ import_react88.default.createElement(PageSpinner7, null) : /* @__PURE__ */ import_react88.default.createElement("div", { className: "w-full max-w-5xl flex flex-col gap-12" }, /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col gap-6" }, /* @__PURE__ */ import_react88.default.createElement("div", { className: "space-y-2 min-w-0" }, /* @__PURE__ */ import_react88.default.createElement(
5142
+ return /* @__PURE__ */ import_react90.default.createElement("div", { className: "flex flex-col max-w-5xl rounded-2xl p-6 bg-white gap-8 animate-in fade-in duration-300" }, /* @__PURE__ */ import_react90.default.createElement(ManagedToaster, null), /* @__PURE__ */ import_react90.default.createElement("div", { className: "flex flex-col sm:flex-row sm:items-start justify-between gap-3 sm:gap-4" }, /* @__PURE__ */ import_react90.default.createElement("div", { className: "min-w-0" }, /* @__PURE__ */ import_react90.default.createElement("h1", { className: " text-xl text-black mb-1 truncate tracking-tight" }, "Developer Settings"), /* @__PURE__ */ import_react90.default.createElement("p", { className: "text-xs text-neutral-500 truncate" }, "Manage your API credentials and webhook integrations.")), isReadOnly && /* @__PURE__ */ import_react90.default.createElement("span", { className: "p-2 w-9 h-9 bg-neutral-50 text-neutral-500 rounded-full flex items-center justify-center shrink-0" }, /* @__PURE__ */ import_react90.default.createElement(import_react91.HugeiconsIcon, { icon: import_core_free_icons33.CircleLock02Icon, size: 18, className: "text-current" }))), isLoading ? /* @__PURE__ */ import_react90.default.createElement(PageSpinner8, null) : /* @__PURE__ */ import_react90.default.createElement("div", { className: "w-full max-w-5xl flex flex-col gap-12" }, /* @__PURE__ */ import_react90.default.createElement("div", { className: "flex flex-col gap-6" }, /* @__PURE__ */ import_react90.default.createElement("div", { className: "space-y-2 min-w-0" }, /* @__PURE__ */ import_react90.default.createElement(
5026
5143
  TextInput,
5027
5144
  {
5028
5145
  label: "Public Key",
@@ -5031,7 +5148,7 @@ SECRET_KEY="${secKey}"
5031
5148
  },
5032
5149
  disabled: true
5033
5150
  }
5034
- ), /* @__PURE__ */ import_react88.default.createElement("p", { className: "text-[11px] text-neutral-400 mt-1 leading-snug" }, "Your public key is used to identify your application. Your secret key will only be shown once upon generation.")), /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex items-center gap-4" }, /* @__PURE__ */ import_react88.default.createElement(
5151
+ ), /* @__PURE__ */ import_react90.default.createElement("p", { className: "text-[11px] text-neutral-400 mt-1 leading-snug" }, "Your public key is used to identify your application. Your secret key will only be shown once upon generation.")), /* @__PURE__ */ import_react90.default.createElement("div", { className: "flex items-center gap-4" }, /* @__PURE__ */ import_react90.default.createElement(
5035
5152
  ThreeDActionButton,
5036
5153
  {
5037
5154
  onClick: () => {
@@ -5043,7 +5160,7 @@ SECRET_KEY="${secKey}"
5043
5160
  className: "w-fit"
5044
5161
  },
5045
5162
  publicKey ? "Roll API Keys" : "Generate Keys"
5046
- ))), /* @__PURE__ */ import_react88.default.createElement("form", { className: "flex flex-col gap-6 border-t border-neutral-100 pt-8", onSubmit: handleSaveWebhook, autoComplete: "off" }, /* @__PURE__ */ import_react88.default.createElement("div", { className: "space-y-2 min-w-0" }, /* @__PURE__ */ import_react88.default.createElement(
5163
+ ))), /* @__PURE__ */ import_react90.default.createElement("form", { className: "flex flex-col gap-6 border-t border-neutral-100 pt-8", onSubmit: handleSaveWebhook, autoComplete: "off" }, /* @__PURE__ */ import_react90.default.createElement("div", { className: "space-y-2 min-w-0" }, /* @__PURE__ */ import_react90.default.createElement(
5047
5164
  TextInput,
5048
5165
  {
5049
5166
  label: "Webhook URL",
@@ -5053,7 +5170,7 @@ SECRET_KEY="${secKey}"
5053
5170
  placeholder: "https://your-domain.com/webhook",
5054
5171
  type: "url"
5055
5172
  }
5056
- ), /* @__PURE__ */ import_react88.default.createElement("p", { className: "text-[11px] text-neutral-400 mt-1 leading-snug" }, "We will send secure POST requests to this endpoint when significant events occur. Must use HTTPS.")), /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col sm:flex-row sm:items-center justify-between mt-2 gap-6 sm:gap-4" }, /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex items-center gap-6 min-w-0" }, /* @__PURE__ */ import_react88.default.createElement("div", { className: "min-w-0" }, /* @__PURE__ */ import_react88.default.createElement("span", { className: "text-[11px] text-neutral-400 tracking-[0.2em] block truncate " }, "Webhook Status"), /* @__PURE__ */ import_react88.default.createElement("span", { className: `text-xs block truncate ${webhookUrl ? "text-emerald-600" : "text-neutral-400"}` }, webhookUrl ? "Active" : "Inactive"))), /* @__PURE__ */ import_react88.default.createElement("div", { className: "flex flex-col-reverse sm:flex-row items-center gap-3 sm:gap-4 w-full sm:w-auto shrink-0" }, hasWebhookChanges && !isSavingWebhook && !isReadOnly && /* @__PURE__ */ import_react88.default.createElement(
5173
+ ), /* @__PURE__ */ import_react90.default.createElement("p", { className: "text-[11px] text-neutral-400 mt-1 leading-snug" }, "We will send secure POST requests to this endpoint when significant events occur. Must use HTTPS.")), /* @__PURE__ */ import_react90.default.createElement("div", { className: "flex flex-col sm:flex-row sm:items-center justify-between mt-2 gap-6 sm:gap-4" }, /* @__PURE__ */ import_react90.default.createElement("div", { className: "flex items-center gap-6 min-w-0" }, /* @__PURE__ */ import_react90.default.createElement("div", { className: "min-w-0" }, /* @__PURE__ */ import_react90.default.createElement("span", { className: "text-[11px] text-neutral-400 tracking-[0.2em] block truncate " }, "Webhook Status"), /* @__PURE__ */ import_react90.default.createElement("span", { className: `text-xs block truncate ${webhookUrl ? "text-emerald-600" : "text-neutral-400"}` }, webhookUrl ? "Active" : "Inactive"))), /* @__PURE__ */ import_react90.default.createElement("div", { className: "flex flex-col-reverse sm:flex-row items-center gap-3 sm:gap-4 w-full sm:w-auto shrink-0" }, hasWebhookChanges && !isSavingWebhook && !isReadOnly && /* @__PURE__ */ import_react90.default.createElement(
5057
5174
  "button",
5058
5175
  {
5059
5176
  type: "button",
@@ -5061,7 +5178,7 @@ SECRET_KEY="${secKey}"
5061
5178
  className: "text-[11px] tracking-widest text-neutral-500 hover:text-black transition-colors w-full sm:w-auto py-2 sm:py-0 outline-none"
5062
5179
  },
5063
5180
  "Cancel"
5064
- ), /* @__PURE__ */ import_react88.default.createElement(
5181
+ ), /* @__PURE__ */ import_react90.default.createElement(
5065
5182
  ThreeDActionButton,
5066
5183
  {
5067
5184
  type: "submit",
@@ -5070,7 +5187,7 @@ SECRET_KEY="${secKey}"
5070
5187
  className: "min-w-32 w-full sm:w-auto"
5071
5188
  },
5072
5189
  "Save Webhook"
5073
- ))))), isRollModalOpen && !isReadOnly && /* @__PURE__ */ import_react88.default.createElement("div", { className: "fixed inset-0 z-110 flex items-center justify-center p-4" }, /* @__PURE__ */ import_react88.default.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => !isGenerating && setIsRollModalOpen(false) }), /* @__PURE__ */ import_react88.default.createElement("div", { className: "relative w-72 bg-white shadow-2xl rounded-2xl flex flex-col items-center overflow-hidden animate-in zoom-in-95 duration-200" }, /* @__PURE__ */ import_react88.default.createElement("div", { className: "p-6 text-center w-full" }, /* @__PURE__ */ import_react88.default.createElement("h3", { className: " text-[17px] text-black tracking-tight mb-1" }, "Roll API Keys"), /* @__PURE__ */ import_react88.default.createElement("p", { className: "text-[11px] text-neutral-500 leading-snug mt-2" }, "Are you sure you want to roll your keys? This will permanently invalidate your current secret key and active MCP tokens.")), /* @__PURE__ */ import_react88.default.createElement("div", { className: "w-full flex" }, /* @__PURE__ */ import_react88.default.createElement(
5190
+ ))))), isRollModalOpen && !isReadOnly && /* @__PURE__ */ import_react90.default.createElement("div", { className: "fixed inset-0 z-110 flex items-center justify-center p-4" }, /* @__PURE__ */ import_react90.default.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => !isGenerating && setIsRollModalOpen(false) }), /* @__PURE__ */ import_react90.default.createElement("div", { className: "relative w-72 bg-white shadow-2xl rounded-2xl flex flex-col items-center overflow-hidden animate-in zoom-in-95 duration-200" }, /* @__PURE__ */ import_react90.default.createElement("div", { className: "p-6 text-center w-full" }, /* @__PURE__ */ import_react90.default.createElement("h3", { className: " text-[17px] text-black tracking-tight mb-1" }, "Roll API Keys"), /* @__PURE__ */ import_react90.default.createElement("p", { className: "text-[11px] text-neutral-500 leading-snug mt-2" }, "Are you sure you want to roll your keys? This will permanently invalidate your current secret key and active MCP tokens.")), /* @__PURE__ */ import_react90.default.createElement("div", { className: "w-full flex" }, /* @__PURE__ */ import_react90.default.createElement(
5074
5191
  "button",
5075
5192
  {
5076
5193
  onClick: () => setIsRollModalOpen(false),
@@ -5078,30 +5195,30 @@ SECRET_KEY="${secKey}"
5078
5195
  className: "flex-1 py-3 text-[13px] text-neutral-600 hover:bg-neutral-50 transition-colors disabled:opacity-50 outline-none"
5079
5196
  },
5080
5197
  "Cancel"
5081
- ), /* @__PURE__ */ import_react88.default.createElement(
5198
+ ), /* @__PURE__ */ import_react90.default.createElement(
5082
5199
  "button",
5083
5200
  {
5084
5201
  onClick: handleGenerateKeys,
5085
5202
  disabled: isGenerating,
5086
5203
  className: "flex-1 py-3 text-[13px] text-red-600 hover:bg-neutral-50 transition-colors disabled:opacity-50 flex justify-center items-center outline-none"
5087
5204
  },
5088
- isGenerating ? /* @__PURE__ */ import_react88.default.createElement(ButtonSpinner5, null) : "Roll Keys"
5205
+ isGenerating ? /* @__PURE__ */ import_react90.default.createElement(ButtonSpinner5, null) : "Roll Keys"
5089
5206
  )))));
5090
5207
  };
5091
5208
 
5092
5209
  // src/components/UniversalAppLibrary.tsx
5093
- var import_react90 = __toESM(require("react"));
5094
- var import_react91 = require("@hugeicons/react");
5095
- var import_core_free_icons33 = require("@hugeicons/core-free-icons");
5210
+ var import_react92 = __toESM(require("react"));
5211
+ var import_react93 = require("@hugeicons/react");
5212
+ var import_core_free_icons34 = require("@hugeicons/core-free-icons");
5096
5213
  var AppCard = ({ app }) => {
5097
- const [isLoading, setIsLoading] = (0, import_react90.useState)(true);
5098
- return /* @__PURE__ */ import_react90.default.createElement(
5214
+ const [isLoading, setIsLoading] = (0, import_react92.useState)(true);
5215
+ return /* @__PURE__ */ import_react92.default.createElement(
5099
5216
  "button",
5100
5217
  {
5101
5218
  onClick: app.onClick,
5102
5219
  className: "flex flex-col gap-3 group cursor-pointer w-25 shrink-0 text-left outline-none"
5103
5220
  },
5104
- /* @__PURE__ */ import_react90.default.createElement("div", { className: "relative w-full aspect-square rounded-2xl bg-white overflow-hidden transition-all duration-300 flex items-center justify-center" }, isLoading && /* @__PURE__ */ import_react90.default.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-10 bg-neutral-50/50" }, /* @__PURE__ */ import_react90.default.createElement(import_react91.HugeiconsIcon, { icon: import_core_free_icons33.Loading03Icon, size: 24, className: "animate-spin text-neutral-400" })), /* @__PURE__ */ import_react90.default.createElement(
5221
+ /* @__PURE__ */ import_react92.default.createElement("div", { className: "relative w-full aspect-square rounded-2xl bg-white overflow-hidden transition-all duration-300 flex items-center justify-center" }, isLoading && /* @__PURE__ */ import_react92.default.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-10 bg-neutral-50/50" }, /* @__PURE__ */ import_react92.default.createElement(import_react93.HugeiconsIcon, { icon: import_core_free_icons34.Loading03Icon, size: 24, className: "animate-spin text-neutral-400" })), /* @__PURE__ */ import_react92.default.createElement(
5105
5222
  "img",
5106
5223
  {
5107
5224
  src: app.logoSrc,
@@ -5111,7 +5228,7 @@ var AppCard = ({ app }) => {
5111
5228
  className: `w-full h-full object-cover transition-all duration-700 ease-out z-20 ${isLoading ? "opacity-0 scale-95 blur-md" : "opacity-100 scale-100 blur-0"}`
5112
5229
  }
5113
5230
  )),
5114
- /* @__PURE__ */ import_react90.default.createElement("div", { className: "flex flex-col min-w-0 px-1" }, /* @__PURE__ */ import_react90.default.createElement("span", { className: "text-[13px] text-black tracking-tight truncate group-hover:text-neutral-600 transition-colors" }, app.name), /* @__PURE__ */ import_react90.default.createElement("span", { className: "text-[10px] text-neutral-500 tracking-wide truncate mt-0.5" }, app.category))
5231
+ /* @__PURE__ */ import_react92.default.createElement("div", { className: "flex flex-col min-w-0 px-1" }, /* @__PURE__ */ import_react92.default.createElement("span", { className: "text-[13px] text-black tracking-tight truncate group-hover:text-neutral-600 transition-colors" }, app.name), /* @__PURE__ */ import_react92.default.createElement("span", { className: "text-[10px] text-neutral-500 tracking-wide truncate mt-0.5" }, app.category))
5115
5232
  );
5116
5233
  };
5117
5234
  var UniversalAppLibrary = ({
@@ -5119,18 +5236,18 @@ var UniversalAppLibrary = ({
5119
5236
  headline,
5120
5237
  categories
5121
5238
  }) => {
5122
- return /* @__PURE__ */ import_react90.default.createElement("div", { className: "w-full py-16" }, /* @__PURE__ */ import_react90.default.createElement("div", { className: "w-full flex justify-center px-4" }, /* @__PURE__ */ import_react90.default.createElement("div", { className: "max-w-6xl w-full" }, (tagline || headline) && /* @__PURE__ */ import_react90.default.createElement("div", { className: "relative overflow-hidden mb-12 text-left" }, /* @__PURE__ */ import_react90.default.createElement("div", { className: "relative z-10" }, tagline && /* @__PURE__ */ import_react90.default.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500 block mb-4 " }, tagline), headline && /* @__PURE__ */ import_react90.default.createElement("h2", { className: "text-2xl sm:text-3xl tracking-tight text-black leading-[1.1]" }, headline))), /* @__PURE__ */ import_react90.default.createElement("div", { className: "flex flex-col gap-14" }, categories.map((category) => /* @__PURE__ */ import_react90.default.createElement("div", { key: category.id, className: "flex flex-col" }, /* @__PURE__ */ import_react90.default.createElement("div", { className: "flex items-end justify-between mb-5 px-1" }, /* @__PURE__ */ import_react90.default.createElement("h3", { className: "text-lg text-black tracking-tight " }, category.title), category.onSeeMore && /* @__PURE__ */ import_react90.default.createElement(
5239
+ return /* @__PURE__ */ import_react92.default.createElement("div", { className: "w-full py-16" }, /* @__PURE__ */ import_react92.default.createElement("div", { className: "w-full flex justify-center px-4" }, /* @__PURE__ */ import_react92.default.createElement("div", { className: "max-w-6xl w-full" }, (tagline || headline) && /* @__PURE__ */ import_react92.default.createElement("div", { className: "relative overflow-hidden mb-12 text-left" }, /* @__PURE__ */ import_react92.default.createElement("div", { className: "relative z-10" }, tagline && /* @__PURE__ */ import_react92.default.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500 block mb-4 " }, tagline), headline && /* @__PURE__ */ import_react92.default.createElement("h2", { className: "text-2xl sm:text-3xl tracking-tight text-black leading-[1.1]" }, headline))), /* @__PURE__ */ import_react92.default.createElement("div", { className: "flex flex-col gap-14" }, categories.map((category) => /* @__PURE__ */ import_react92.default.createElement("div", { key: category.id, className: "flex flex-col" }, /* @__PURE__ */ import_react92.default.createElement("div", { className: "flex items-end justify-between mb-5 px-1" }, /* @__PURE__ */ import_react92.default.createElement("h3", { className: "text-lg text-black tracking-tight " }, category.title), category.onSeeMore && /* @__PURE__ */ import_react92.default.createElement(
5123
5240
  "button",
5124
5241
  {
5125
5242
  onClick: category.onSeeMore,
5126
5243
  className: "text-[11px] tracking-widest text-neutral-500 hover:text-black transition-colors outline-none shrink-0 ml-4 pb-0.5"
5127
5244
  },
5128
5245
  category.seeMoreLabel || "See More"
5129
- )), /* @__PURE__ */ import_react90.default.createElement("div", { className: "flex gap-4 sm:gap-6 overflow-x-auto pb-6 pt-2 -mx-4 px-4 sm:mx-0 sm:px-1 [&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] scrollbar-none" }, category.apps.map((app) => /* @__PURE__ */ import_react90.default.createElement(AppCard, { key: app.id, app }))), /* @__PURE__ */ import_react90.default.createElement("div", { className: "w-full h-px mt-2 last-of-type:hidden" })))))));
5246
+ )), /* @__PURE__ */ import_react92.default.createElement("div", { className: "flex gap-4 sm:gap-6 overflow-x-auto pb-6 pt-2 -mx-4 px-4 sm:mx-0 sm:px-1 [&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] scrollbar-none" }, category.apps.map((app) => /* @__PURE__ */ import_react92.default.createElement(AppCard, { key: app.id, app }))), /* @__PURE__ */ import_react92.default.createElement("div", { className: "w-full h-px mt-2 last-of-type:hidden" })))))));
5130
5247
  };
5131
5248
 
5132
5249
  // src/components/MedicalFeatureStatsBlock.tsx
5133
- var import_react92 = __toESM(require("react"));
5250
+ var import_react94 = __toESM(require("react"));
5134
5251
  var import_image11 = __toESM(require("next/image"));
5135
5252
  var MedicalFeatureStatsBlock = ({
5136
5253
  bottomHeadline,
@@ -5139,9 +5256,9 @@ var MedicalFeatureStatsBlock = ({
5139
5256
  trustText,
5140
5257
  stats
5141
5258
  }) => {
5142
- const [isAnimating, setIsAnimating] = (0, import_react92.useState)(false);
5143
- const titleRef = (0, import_react92.useRef)(null);
5144
- (0, import_react92.useEffect)(() => {
5259
+ const [isAnimating, setIsAnimating] = (0, import_react94.useState)(false);
5260
+ const titleRef = (0, import_react94.useRef)(null);
5261
+ (0, import_react94.useEffect)(() => {
5145
5262
  const observer = new IntersectionObserver(
5146
5263
  ([entry]) => {
5147
5264
  if (entry.isIntersecting) {
@@ -5159,7 +5276,7 @@ var MedicalFeatureStatsBlock = ({
5159
5276
  }
5160
5277
  return () => observer.disconnect();
5161
5278
  }, []);
5162
- return /* @__PURE__ */ import_react92.default.createElement("section", { className: "py-24 w-full flex justify-center relative z-10" }, /* @__PURE__ */ import_react92.default.createElement("div", { className: "max-w-6xl w-full flex flex-col px-4 md:px-8" }, /* @__PURE__ */ import_react92.default.createElement("div", { className: "flex flex-col lg:flex-row justify-between items-start lg:items-end gap-10 mb-12" }, /* @__PURE__ */ import_react92.default.createElement("div", { className: "max-w-xl" }, /* @__PURE__ */ import_react92.default.createElement(
5279
+ return /* @__PURE__ */ import_react94.default.createElement("section", { className: "py-24 w-full flex justify-center relative z-10" }, /* @__PURE__ */ import_react94.default.createElement("div", { className: "max-w-6xl w-full flex flex-col px-4 md:px-8" }, /* @__PURE__ */ import_react94.default.createElement("div", { className: "flex flex-col lg:flex-row justify-between items-start lg:items-end gap-10 mb-12" }, /* @__PURE__ */ import_react94.default.createElement("div", { className: "max-w-xl" }, /* @__PURE__ */ import_react94.default.createElement(
5163
5280
  "h2",
5164
5281
  {
5165
5282
  ref: titleRef,
@@ -5167,7 +5284,7 @@ var MedicalFeatureStatsBlock = ({
5167
5284
  style: isAnimating ? { animationIterationCount: 1 } : {}
5168
5285
  },
5169
5286
  bottomHeadline
5170
- ), /* @__PURE__ */ import_react92.default.createElement("p", { className: "text-[14px] leading-relaxed text-neutral-500" }, bottomDescription)), /* @__PURE__ */ import_react92.default.createElement("div", { className: "flex items-center gap-4 shrink-0" }, /* @__PURE__ */ import_react92.default.createElement("div", { className: "flex -space-x-3" }, avatars.map((src, i) => /* @__PURE__ */ import_react92.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_react92.default.createElement(
5287
+ ), /* @__PURE__ */ import_react94.default.createElement("p", { className: "text-[14px] leading-relaxed text-neutral-500" }, bottomDescription)), /* @__PURE__ */ import_react94.default.createElement("div", { className: "flex items-center gap-4 shrink-0" }, /* @__PURE__ */ import_react94.default.createElement("div", { className: "flex -space-x-3" }, avatars.map((src, i) => /* @__PURE__ */ import_react94.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_react94.default.createElement(
5171
5288
  import_image11.default,
5172
5289
  {
5173
5290
  src,
@@ -5176,17 +5293,17 @@ var MedicalFeatureStatsBlock = ({
5176
5293
  sizes: "48px",
5177
5294
  className: "object-cover"
5178
5295
  }
5179
- )))), /* @__PURE__ */ import_react92.default.createElement("p", { className: "text-[11px] text-neutral-800 leading-[1.4] max-w-55" }, trustText))), /* @__PURE__ */ import_react92.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6" }, stats.map((stat, idx) => /* @__PURE__ */ import_react92.default.createElement("div", { key: idx, className: "bg-white rounded-4xl p-8 md:p-10 flex flex-col h-70" }, /* @__PURE__ */ import_react92.default.createElement("div", { className: "flex items-center p-0.5 mb-6" }, /* @__PURE__ */ import_react92.default.createElement("span", { className: "text-[14px] text-neutral-500 tracking-wide" }, stat.label)), /* @__PURE__ */ import_react92.default.createElement("div", { className: "text-6xl gradient-text md:text-[80px] font-light tracking-tighter text-black mt-auto leading-none" }, stat.value))))));
5296
+ )))), /* @__PURE__ */ import_react94.default.createElement("p", { className: "text-[11px] text-neutral-800 leading-[1.4] max-w-55" }, trustText))), /* @__PURE__ */ import_react94.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6" }, stats.map((stat, idx) => /* @__PURE__ */ import_react94.default.createElement("div", { key: idx, className: "bg-white rounded-4xl p-8 md:p-10 flex flex-col h-70" }, /* @__PURE__ */ import_react94.default.createElement("div", { className: "flex items-center p-0.5 mb-6" }, /* @__PURE__ */ import_react94.default.createElement("span", { className: "text-[14px] text-neutral-500 tracking-wide" }, stat.label)), /* @__PURE__ */ import_react94.default.createElement("div", { className: "text-6xl gradient-text md:text-[80px] font-light tracking-tighter text-black mt-auto leading-none" }, stat.value))))));
5180
5297
  };
5181
5298
 
5182
5299
  // src/components/ConsultantShowcase.tsx
5183
- var import_react93 = __toESM(require("react"));
5300
+ var import_react95 = __toESM(require("react"));
5184
5301
  var import_image12 = __toESM(require("next/image"));
5185
- var import_react94 = require("@hugeicons/react");
5186
- var import_core_free_icons34 = require("@hugeicons/core-free-icons");
5302
+ var import_react96 = require("@hugeicons/react");
5303
+ var import_core_free_icons35 = require("@hugeicons/core-free-icons");
5187
5304
  var ImageWithLoader = ({ src, alt, className, sizes, priority = false }) => {
5188
- const [isLoading, setIsLoading] = (0, import_react93.useState)(true);
5189
- return /* @__PURE__ */ import_react93.default.createElement("div", { className: `absolute inset-0 bg-neutral-800 ${className}` }, isLoading && /* @__PURE__ */ import_react93.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_react93.default.createElement(import_react94.HugeiconsIcon, { icon: import_core_free_icons34.Loading03Icon, size: 24, className: "animate-spin text-white/50" })), /* @__PURE__ */ import_react93.default.createElement(
5305
+ const [isLoading, setIsLoading] = (0, import_react95.useState)(true);
5306
+ return /* @__PURE__ */ import_react95.default.createElement("div", { className: `absolute inset-0 bg-neutral-800 ${className}` }, isLoading && /* @__PURE__ */ import_react95.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_react95.default.createElement(import_react96.HugeiconsIcon, { icon: import_core_free_icons35.Loading03Icon, size: 24, className: "animate-spin text-white/50" })), /* @__PURE__ */ import_react95.default.createElement(
5190
5307
  import_image12.default,
5191
5308
  {
5192
5309
  src,
@@ -5205,9 +5322,9 @@ var ImageWithLoader = ({ src, alt, className, sizes, priority = false }) => {
5205
5322
  var ConsultantShowcase = ({
5206
5323
  profiles
5207
5324
  }) => {
5208
- const [currentIndex, setCurrentIndex] = (0, import_react93.useState)(0);
5209
- const [touchStart, setTouchStart] = (0, import_react93.useState)(null);
5210
- const [touchEnd, setTouchEnd] = (0, import_react93.useState)(null);
5325
+ const [currentIndex, setCurrentIndex] = (0, import_react95.useState)(0);
5326
+ const [touchStart, setTouchStart] = (0, import_react95.useState)(null);
5327
+ const [touchEnd, setTouchEnd] = (0, import_react95.useState)(null);
5211
5328
  const nextSlide = () => {
5212
5329
  setCurrentIndex((prev) => prev === profiles.length - 1 ? 0 : prev + 1);
5213
5330
  };
@@ -5232,7 +5349,7 @@ var ConsultantShowcase = ({
5232
5349
  }
5233
5350
  };
5234
5351
  if (!profiles || profiles.length === 0) return null;
5235
- return /* @__PURE__ */ import_react93.default.createElement("section", { className: "py-24 w-full flex justify-center px-4 md:px-8 z-10 relative" }, /* @__PURE__ */ import_react93.default.createElement("div", { className: "max-w-6xl w-full" }, /* @__PURE__ */ import_react93.default.createElement(
5352
+ return /* @__PURE__ */ import_react95.default.createElement("section", { className: "py-24 w-full flex justify-center px-4 md:px-8 z-10 relative" }, /* @__PURE__ */ import_react95.default.createElement("div", { className: "max-w-6xl w-full" }, /* @__PURE__ */ import_react95.default.createElement(
5236
5353
  "div",
5237
5354
  {
5238
5355
  className: "relative w-full h-100 md:h-112.5 rounded-4xl overflow-hidden bg-neutral-900 group select-none",
@@ -5242,13 +5359,13 @@ var ConsultantShowcase = ({
5242
5359
  },
5243
5360
  profiles.map((profile, idx) => {
5244
5361
  const isActive = idx === currentIndex;
5245
- return /* @__PURE__ */ import_react93.default.createElement(
5362
+ return /* @__PURE__ */ import_react95.default.createElement(
5246
5363
  "div",
5247
5364
  {
5248
5365
  key: profile.id,
5249
5366
  className: `absolute inset-0 transition-opacity duration-700 ease-in-out ${isActive ? "opacity-100 z-10" : "opacity-0 z-0 pointer-events-none"}`
5250
5367
  },
5251
- /* @__PURE__ */ import_react93.default.createElement(
5368
+ /* @__PURE__ */ import_react95.default.createElement(
5252
5369
  ImageWithLoader,
5253
5370
  {
5254
5371
  src: profile.imageSrc,
@@ -5256,14 +5373,14 @@ var ConsultantShowcase = ({
5256
5373
  priority: idx === 0
5257
5374
  }
5258
5375
  ),
5259
- /* @__PURE__ */ import_react93.default.createElement("div", { className: "absolute inset-0 bg-black/20 z-10 pointer-events-none" }),
5260
- /* @__PURE__ */ import_react93.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" }),
5261
- /* @__PURE__ */ import_react93.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_react93.default.createElement("h2", { className: "text-[29px] tracking-tight mb-2 leading-none" }, profile.name), /* @__PURE__ */ import_react93.default.createElement("div", { className: "flex flex-col gap-0.5" }, /* @__PURE__ */ import_react93.default.createElement("p", { className: "text-[15px] text-white/80 font-light tracking-wide" }, profile.role), profile.description && /* @__PURE__ */ import_react93.default.createElement("p", { className: "text-[15px] text-white/80 font-light tracking-wide mt-1" }, profile.description)))
5376
+ /* @__PURE__ */ import_react95.default.createElement("div", { className: "absolute inset-0 bg-black/20 z-10 pointer-events-none" }),
5377
+ /* @__PURE__ */ import_react95.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" }),
5378
+ /* @__PURE__ */ import_react95.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_react95.default.createElement("h2", { className: "text-[29px] tracking-tight mb-2 leading-none" }, profile.name), /* @__PURE__ */ import_react95.default.createElement("div", { className: "flex flex-col gap-0.5" }, /* @__PURE__ */ import_react95.default.createElement("p", { className: "text-[15px] text-white/80 font-light tracking-wide" }, profile.role), profile.description && /* @__PURE__ */ import_react95.default.createElement("p", { className: "text-[15px] text-white/80 font-light tracking-wide mt-1" }, profile.description)))
5262
5379
  );
5263
5380
  }),
5264
- /* @__PURE__ */ import_react93.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" }),
5265
- /* @__PURE__ */ import_react93.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" }),
5266
- /* @__PURE__ */ import_react93.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_react93.default.createElement(
5381
+ /* @__PURE__ */ import_react95.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" }),
5382
+ /* @__PURE__ */ import_react95.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" }),
5383
+ /* @__PURE__ */ import_react95.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_react95.default.createElement(
5267
5384
  "button",
5268
5385
  {
5269
5386
  key: idx,
@@ -5276,10 +5393,10 @@ var ConsultantShowcase = ({
5276
5393
  };
5277
5394
 
5278
5395
  // src/components/ContentGridBlock.tsx
5279
- var import_react95 = __toESM(require("react"));
5396
+ var import_react97 = __toESM(require("react"));
5280
5397
  var import_image13 = __toESM(require("next/image"));
5281
- var import_react96 = require("@hugeicons/react");
5282
- var import_core_free_icons35 = require("@hugeicons/core-free-icons");
5398
+ var import_react98 = require("@hugeicons/react");
5399
+ var import_core_free_icons36 = require("@hugeicons/core-free-icons");
5283
5400
  var ContentGridBlock = ({
5284
5401
  header,
5285
5402
  leftCard,
@@ -5287,23 +5404,23 @@ var ContentGridBlock = ({
5287
5404
  middleBottomCard,
5288
5405
  rightCards
5289
5406
  }) => {
5290
- return /* @__PURE__ */ import_react95.default.createElement("section", { className: " w-full flex justify-center z-10 relative" }, /* @__PURE__ */ import_react95.default.createElement("div", { className: "max-w-300 w-full px-4 md:px-8 flex flex-col gap-12" }, /* @__PURE__ */ import_react95.default.createElement("div", { className: "flex flex-col lg:flex-row justify-between items-start lg:items-end gap-6 w-full" }, /* @__PURE__ */ import_react95.default.createElement("h2", { className: "text-3xl tracking-tight text-black leading-[1.15] max-w-lg" }, header.titlePrefix, " ", /* @__PURE__ */ import_react95.default.createElement("span", { className: "gradient-text" }, header.highlightText))), /* @__PURE__ */ import_react95.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6" }, /* @__PURE__ */ import_react95.default.createElement("div", { className: "flex flex-col justify-end" }, /* @__PURE__ */ import_react95.default.createElement("div", { className: "bg-black rounded-3xl p-8 flex flex-col h-80" }, /* @__PURE__ */ import_react95.default.createElement("p", { className: "text-[17px] text-white leading-snug mb-4" }, leftCard.mainText), leftCard.tag && /* @__PURE__ */ import_react95.default.createElement("span", { className: "mb-auto text-[11px] text-neutral-200 tracking-widest" }, leftCard.tag), /* @__PURE__ */ import_react95.default.createElement("div", { className: "flex items-center justify-between mt-8" }, /* @__PURE__ */ import_react95.default.createElement("div", null, /* @__PURE__ */ import_react95.default.createElement("h4", { className: "text-[15px] text-white" }, leftCard.title), /* @__PURE__ */ import_react95.default.createElement("p", { className: "text-[13px] text-neutral-300" }, leftCard.subtitle)), /* @__PURE__ */ import_react95.default.createElement("div", { className: "w-10 h-10 rounded-full overflow-hidden relative" }, /* @__PURE__ */ import_react95.default.createElement(import_image13.default, { src: leftCard.thumbnailSrc, alt: leftCard.title, fill: true, className: "object-cover" }))))), /* @__PURE__ */ import_react95.default.createElement("div", { className: "flex flex-col gap-6" }, /* @__PURE__ */ import_react95.default.createElement("div", { className: "bg-white rounded-3xl p-8 flex flex-col relative h-75" }, /* @__PURE__ */ import_react95.default.createElement("div", { className: "absolute top-6 right-6 flex flex-col items-end gap-1" }, /* @__PURE__ */ import_react95.default.createElement("span", { className: "text-[11px] text-neutral-400 tracking-wide" }, middleTopCard.topRightLabel), /* @__PURE__ */ import_react95.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ import_react95.default.createElement("div", { className: "flex -space-x-2" }, middleTopCard.topRightAvatars.map((src, i) => /* @__PURE__ */ import_react95.default.createElement("div", { key: i, className: "w-7 h-7 rounded-full border-2 border-white overflow-hidden relative z-10" }, /* @__PURE__ */ import_react95.default.createElement(import_image13.default, { src, alt: "Avatar", fill: true, className: "object-cover", sizes: "28px" })))), /* @__PURE__ */ import_react95.default.createElement("span", { className: "text-sm text-neutral-500" }, middleTopCard.topRightCount))), /* @__PURE__ */ import_react95.default.createElement("div", { className: "grow flex flex-col justify-center items-center py-6" }, /* @__PURE__ */ import_react95.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_react95.default.createElement("span", { className: " text-black" }, middleTopCard.badgeHighlight), middleTopCard.badgeSuffix)), /* @__PURE__ */ import_react95.default.createElement("div", { className: "mt-auto" }, /* @__PURE__ */ import_react95.default.createElement("p", { className: "text-[11px] text-neutral-400 tracking-wide mb-1" }, middleTopCard.title), /* @__PURE__ */ import_react95.default.createElement("p", { className: "text-[14px] text-black leading-snug pr-4" }, middleTopCard.description))), /* @__PURE__ */ import_react95.default.createElement("div", { className: "bg-white rounded-3xl p-8 flex flex-col h-80" }, /* @__PURE__ */ import_react95.default.createElement("div", { className: "flex justify-between items-start mb-6" }, /* @__PURE__ */ import_react95.default.createElement("div", null, /* @__PURE__ */ import_react95.default.createElement("h4", { className: "text-[15px] text-black leading-tight" }, middleBottomCard.title), /* @__PURE__ */ import_react95.default.createElement("p", { className: "text-[13px] text-neutral-400" }, middleBottomCard.subtitle)), /* @__PURE__ */ import_react95.default.createElement("div", { className: "w-10 h-10 rounded-full overflow-hidden relative" }, /* @__PURE__ */ import_react95.default.createElement(import_image13.default, { src: middleBottomCard.thumbnailSrc, alt: middleBottomCard.title, fill: true, className: "object-cover" }))), /* @__PURE__ */ import_react95.default.createElement("div", { className: "mt-auto" }, /* @__PURE__ */ import_react95.default.createElement("p", { className: "text-[16px] text-black leading-snug mb-4" }, middleBottomCard.mainText), middleBottomCard.tag && /* @__PURE__ */ import_react95.default.createElement("span", { className: "text-[11px] text-neutral-400 tracking-widest" }, middleBottomCard.tag)))), /* @__PURE__ */ import_react95.default.createElement("div", { className: "flex flex-col gap-6" }, rightCards.slice(0, 2).map((card, idx) => /* @__PURE__ */ import_react95.default.createElement("div", { key: idx, className: "relative w-full h-80 bg-[#2027d7] rounded-3xl overflow-hidden group" }, /* @__PURE__ */ import_react95.default.createElement("div", { className: "absolute inset-0 z-20 pointer-events-none" }), /* @__PURE__ */ import_react95.default.createElement("div", { className: "absolute inset-0 z-30 p-6 flex flex-col justify-end text-white" }, /* @__PURE__ */ import_react95.default.createElement("p", { className: "text-[14px] leading-snug mb-3 pr-2 text-white/90" }, card.mainText), card.tag && /* @__PURE__ */ import_react95.default.createElement("span", { className: "mb-4 text-[11px] text-white/50 tracking-widest" }, card.tag), /* @__PURE__ */ import_react95.default.createElement("div", { className: "pt-3" }, /* @__PURE__ */ import_react95.default.createElement("h4", { className: "text-[15px] tracking-wide" }, card.title), /* @__PURE__ */ import_react95.default.createElement("p", { className: "text-[13px] text-white/60" }, card.subtitle)))))))));
5407
+ return /* @__PURE__ */ import_react97.default.createElement("section", { className: " w-full flex justify-center z-10 relative" }, /* @__PURE__ */ import_react97.default.createElement("div", { className: "max-w-300 w-full px-4 md:px-8 flex flex-col gap-12" }, /* @__PURE__ */ import_react97.default.createElement("div", { className: "flex flex-col lg:flex-row justify-between items-start lg:items-end gap-6 w-full" }, /* @__PURE__ */ import_react97.default.createElement("h2", { className: "text-3xl tracking-tight text-black leading-[1.15] max-w-lg" }, header.titlePrefix, " ", /* @__PURE__ */ import_react97.default.createElement("span", { className: "gradient-text" }, header.highlightText))), /* @__PURE__ */ import_react97.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6" }, /* @__PURE__ */ import_react97.default.createElement("div", { className: "flex flex-col justify-end" }, /* @__PURE__ */ import_react97.default.createElement("div", { className: "bg-black rounded-3xl p-8 flex flex-col h-80" }, /* @__PURE__ */ import_react97.default.createElement("p", { className: "text-[17px] text-white leading-snug mb-4" }, leftCard.mainText), leftCard.tag && /* @__PURE__ */ import_react97.default.createElement("span", { className: "mb-auto text-[11px] text-neutral-200 tracking-widest" }, leftCard.tag), /* @__PURE__ */ import_react97.default.createElement("div", { className: "flex items-center justify-between mt-8" }, /* @__PURE__ */ import_react97.default.createElement("div", null, /* @__PURE__ */ import_react97.default.createElement("h4", { className: "text-[15px] text-white" }, leftCard.title), /* @__PURE__ */ import_react97.default.createElement("p", { className: "text-[13px] text-neutral-300" }, leftCard.subtitle)), /* @__PURE__ */ import_react97.default.createElement("div", { className: "w-10 h-10 rounded-full overflow-hidden relative" }, /* @__PURE__ */ import_react97.default.createElement(import_image13.default, { src: leftCard.thumbnailSrc, alt: leftCard.title, fill: true, className: "object-cover" }))))), /* @__PURE__ */ import_react97.default.createElement("div", { className: "flex flex-col gap-6" }, /* @__PURE__ */ import_react97.default.createElement("div", { className: "bg-white rounded-3xl p-8 flex flex-col relative h-75" }, /* @__PURE__ */ import_react97.default.createElement("div", { className: "absolute top-6 right-6 flex flex-col items-end gap-1" }, /* @__PURE__ */ import_react97.default.createElement("span", { className: "text-[11px] text-neutral-400 tracking-wide" }, middleTopCard.topRightLabel), /* @__PURE__ */ import_react97.default.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ import_react97.default.createElement("div", { className: "flex -space-x-2" }, middleTopCard.topRightAvatars.map((src, i) => /* @__PURE__ */ import_react97.default.createElement("div", { key: i, className: "w-7 h-7 rounded-full border-2 border-white overflow-hidden relative z-10" }, /* @__PURE__ */ import_react97.default.createElement(import_image13.default, { src, alt: "Avatar", fill: true, className: "object-cover", sizes: "28px" })))), /* @__PURE__ */ import_react97.default.createElement("span", { className: "text-sm text-neutral-500" }, middleTopCard.topRightCount))), /* @__PURE__ */ import_react97.default.createElement("div", { className: "grow flex flex-col justify-center items-center py-6" }, /* @__PURE__ */ import_react97.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_react97.default.createElement("span", { className: " text-black" }, middleTopCard.badgeHighlight), middleTopCard.badgeSuffix)), /* @__PURE__ */ import_react97.default.createElement("div", { className: "mt-auto" }, /* @__PURE__ */ import_react97.default.createElement("p", { className: "text-[11px] text-neutral-400 tracking-wide mb-1" }, middleTopCard.title), /* @__PURE__ */ import_react97.default.createElement("p", { className: "text-[14px] text-black leading-snug pr-4" }, middleTopCard.description))), /* @__PURE__ */ import_react97.default.createElement("div", { className: "bg-white rounded-3xl p-8 flex flex-col h-80" }, /* @__PURE__ */ import_react97.default.createElement("div", { className: "flex justify-between items-start mb-6" }, /* @__PURE__ */ import_react97.default.createElement("div", null, /* @__PURE__ */ import_react97.default.createElement("h4", { className: "text-[15px] text-black leading-tight" }, middleBottomCard.title), /* @__PURE__ */ import_react97.default.createElement("p", { className: "text-[13px] text-neutral-400" }, middleBottomCard.subtitle)), /* @__PURE__ */ import_react97.default.createElement("div", { className: "w-10 h-10 rounded-full overflow-hidden relative" }, /* @__PURE__ */ import_react97.default.createElement(import_image13.default, { src: middleBottomCard.thumbnailSrc, alt: middleBottomCard.title, fill: true, className: "object-cover" }))), /* @__PURE__ */ import_react97.default.createElement("div", { className: "mt-auto" }, /* @__PURE__ */ import_react97.default.createElement("p", { className: "text-[16px] text-black leading-snug mb-4" }, middleBottomCard.mainText), middleBottomCard.tag && /* @__PURE__ */ import_react97.default.createElement("span", { className: "text-[11px] text-neutral-400 tracking-widest" }, middleBottomCard.tag)))), /* @__PURE__ */ import_react97.default.createElement("div", { className: "flex flex-col gap-6" }, rightCards.slice(0, 2).map((card, idx) => /* @__PURE__ */ import_react97.default.createElement("div", { key: idx, className: "relative w-full h-80 bg-[#2027d7] rounded-3xl overflow-hidden group" }, /* @__PURE__ */ import_react97.default.createElement("div", { className: "absolute inset-0 z-20 pointer-events-none" }), /* @__PURE__ */ import_react97.default.createElement("div", { className: "absolute inset-0 z-30 p-6 flex flex-col justify-end text-white" }, /* @__PURE__ */ import_react97.default.createElement("p", { className: "text-[14px] leading-snug mb-3 pr-2 text-white/90" }, card.mainText), card.tag && /* @__PURE__ */ import_react97.default.createElement("span", { className: "mb-4 text-[11px] text-white/50 tracking-widest" }, card.tag), /* @__PURE__ */ import_react97.default.createElement("div", { className: "pt-3" }, /* @__PURE__ */ import_react97.default.createElement("h4", { className: "text-[15px] tracking-wide" }, card.title), /* @__PURE__ */ import_react97.default.createElement("p", { className: "text-[13px] text-white/60" }, card.subtitle)))))))));
5291
5408
  };
5292
5409
 
5293
5410
  // src/components/UniversalAppDetails.tsx
5294
- var import_react97 = __toESM(require("react"));
5295
- var import_react98 = require("@hugeicons/react");
5296
- var import_core_free_icons36 = require("@hugeicons/core-free-icons");
5411
+ var import_react99 = __toESM(require("react"));
5412
+ var import_react100 = require("@hugeicons/react");
5413
+ var import_core_free_icons37 = require("@hugeicons/core-free-icons");
5297
5414
  var ScreenshotCard = ({ src, alt, onClick }) => {
5298
- const [isLoading, setIsLoading] = (0, import_react97.useState)(true);
5299
- return /* @__PURE__ */ import_react97.default.createElement(
5415
+ const [isLoading, setIsLoading] = (0, import_react99.useState)(true);
5416
+ return /* @__PURE__ */ import_react99.default.createElement(
5300
5417
  "button",
5301
5418
  {
5302
5419
  onClick,
5303
5420
  className: "relative w-28 sm:w-32 aspect-9/19 shrink-0 rounded-2xl overflow-hidden bg-neutral-100 border border-neutral-200/50 outline-none hover:opacity-90 transition-opacity"
5304
5421
  },
5305
- isLoading && /* @__PURE__ */ import_react97.default.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-10 bg-neutral-50/50" }, /* @__PURE__ */ import_react97.default.createElement(import_react98.HugeiconsIcon, { icon: import_core_free_icons36.Loading03Icon, size: 24, className: "animate-spin text-neutral-400" })),
5306
- /* @__PURE__ */ import_react97.default.createElement(
5422
+ isLoading && /* @__PURE__ */ import_react99.default.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-10 bg-neutral-50/50" }, /* @__PURE__ */ import_react99.default.createElement(import_react100.HugeiconsIcon, { icon: import_core_free_icons37.Loading03Icon, size: 24, className: "animate-spin text-neutral-400" })),
5423
+ /* @__PURE__ */ import_react99.default.createElement(
5307
5424
  "img",
5308
5425
  {
5309
5426
  src,
@@ -5316,8 +5433,8 @@ var ScreenshotCard = ({ src, alt, onClick }) => {
5316
5433
  );
5317
5434
  };
5318
5435
  var LightboxImage = ({ src }) => {
5319
- const [isLoading, setIsLoading] = (0, import_react97.useState)(true);
5320
- return /* @__PURE__ */ import_react97.default.createElement("div", { className: "relative w-full h-full flex items-center justify-center p-4" }, isLoading && /* @__PURE__ */ import_react97.default.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-10" }, /* @__PURE__ */ import_react97.default.createElement(import_react98.HugeiconsIcon, { icon: import_core_free_icons36.Loading03Icon, size: 32, className: "animate-spin text-white" })), /* @__PURE__ */ import_react97.default.createElement(
5436
+ const [isLoading, setIsLoading] = (0, import_react99.useState)(true);
5437
+ return /* @__PURE__ */ import_react99.default.createElement("div", { className: "relative w-full h-full flex items-center justify-center p-4" }, isLoading && /* @__PURE__ */ import_react99.default.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-10" }, /* @__PURE__ */ import_react99.default.createElement(import_react100.HugeiconsIcon, { icon: import_core_free_icons37.Loading03Icon, size: 32, className: "animate-spin text-white" })), /* @__PURE__ */ import_react99.default.createElement(
5321
5438
  "img",
5322
5439
  {
5323
5440
  src,
@@ -5328,9 +5445,9 @@ var LightboxImage = ({ src }) => {
5328
5445
  ));
5329
5446
  };
5330
5447
  var UniversalAppDetails = ({ app, onBack }) => {
5331
- const [isLogoLoading, setIsLogoLoading] = (0, import_react97.useState)(true);
5332
- const [isDescExpanded, setIsDescExpanded] = (0, import_react97.useState)(false);
5333
- const [lightboxIndex, setLightboxIndex] = (0, import_react97.useState)(null);
5448
+ const [isLogoLoading, setIsLogoLoading] = (0, import_react99.useState)(true);
5449
+ const [isDescExpanded, setIsDescExpanded] = (0, import_react99.useState)(false);
5450
+ const [lightboxIndex, setLightboxIndex] = (0, import_react99.useState)(null);
5334
5451
  const MAX_DESC_LENGTH = 150;
5335
5452
  const isDescLong = app.description.length > MAX_DESC_LENGTH;
5336
5453
  const displayDesc = isDescExpanded || !isDescLong ? app.description : `${app.description.substring(0, MAX_DESC_LENGTH)}...`;
@@ -5344,7 +5461,7 @@ var UniversalAppDetails = ({ app, onBack }) => {
5344
5461
  setLightboxIndex(lightboxIndex === app.screenshots.length - 1 ? 0 : lightboxIndex + 1);
5345
5462
  }
5346
5463
  };
5347
- return /* @__PURE__ */ import_react97.default.createElement("div", { className: "w-full max-w-3xl mx-auto pt-10 pb-20 px-6 min-h-screen flex flex-col items-center" }, /* @__PURE__ */ import_react97.default.createElement("div", { className: "flex flex-col sm:flex-row items-start gap-4 w-full mb-10 text-left" }, /* @__PURE__ */ import_react97.default.createElement("div", { className: "relative w-20 h-20 sm:w-20 sm:h-20 md:w-24 md:h-24 lg:w-28 lg:h-28 shrink-0 rounded-2xl overflow-hidden flex items-center justify-center border border-neutral-100/50 bg-neutral-50" }, isLogoLoading && /* @__PURE__ */ import_react97.default.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-10 bg-neutral-100 animate-pulse" }), /* @__PURE__ */ import_react97.default.createElement(
5464
+ return /* @__PURE__ */ import_react99.default.createElement("div", { className: "w-full max-w-3xl mx-auto pt-10 pb-20 px-6 min-h-screen flex flex-col items-center" }, /* @__PURE__ */ import_react99.default.createElement("div", { className: "flex flex-col sm:flex-row items-start gap-4 w-full mb-10 text-left" }, /* @__PURE__ */ import_react99.default.createElement("div", { className: "relative w-20 h-20 sm:w-20 sm:h-20 md:w-24 md:h-24 lg:w-28 lg:h-28 shrink-0 rounded-2xl overflow-hidden flex items-center justify-center border border-neutral-100/50 bg-neutral-50" }, isLogoLoading && /* @__PURE__ */ import_react99.default.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-10 bg-neutral-100 animate-pulse" }), /* @__PURE__ */ import_react99.default.createElement(
5348
5465
  "img",
5349
5466
  {
5350
5467
  src: app.logoSrc,
@@ -5352,15 +5469,15 @@ var UniversalAppDetails = ({ app, onBack }) => {
5352
5469
  onLoad: () => setIsLogoLoading(false),
5353
5470
  className: `w-full h-full object-cover transition-opacity duration-300 z-20 ${isLogoLoading ? "opacity-0" : "opacity-100"}`
5354
5471
  }
5355
- )), /* @__PURE__ */ import_react97.default.createElement("div", { className: "flex flex-col justify-center pt-1 min-w-0" }, /* @__PURE__ */ import_react97.default.createElement("h1", { className: "text-xl text-black leading-tight mb-1 " }, /* @__PURE__ */ import_react97.default.createElement("span", { className: "block truncate" }, app.name)), /* @__PURE__ */ import_react97.default.createElement("span", { className: "text-xs mt-1 text-neutral-400 truncate max-w-full" }, app.tagline), /* @__PURE__ */ import_react97.default.createElement("div", { className: "flex flex-wrap items-center mt-4 gap-8 w-full" }, /* @__PURE__ */ import_react97.default.createElement("div", { className: "flex flex-col items-center" }, /* @__PURE__ */ import_react97.default.createElement("div", { className: "flex items-center gap-1.5 h-6 text-neutral-800" }, app.platforms.android && /* @__PURE__ */ import_react97.default.createElement(import_react98.HugeiconsIcon, { icon: import_core_free_icons36.AndroidIcon, size: 18 }), app.platforms.ios && /* @__PURE__ */ import_react97.default.createElement(import_react98.HugeiconsIcon, { icon: import_core_free_icons36.AppleIcon, size: 18 })), /* @__PURE__ */ import_react97.default.createElement("span", { className: "text-[10px] text-neutral-400 mt-1" }, "Platforms")), /* @__PURE__ */ import_react97.default.createElement("div", { className: "flex flex-col items-center" }, /* @__PURE__ */ import_react97.default.createElement("span", { className: "text-sm h-6 flex items-center text-neutral-800 truncate" }, app.stats.type), /* @__PURE__ */ import_react97.default.createElement("span", { className: "text-[10px] text-neutral-400 mt-1" }, "Type")), /* @__PURE__ */ import_react97.default.createElement("div", { className: "flex flex-col items-center" }, /* @__PURE__ */ import_react97.default.createElement("span", { className: "text-sm h-6 flex items-center text-neutral-800 truncate" }, app.stats.size), /* @__PURE__ */ import_react97.default.createElement("span", { className: "text-[10px] text-neutral-400 mt-1" }, "Size"))))), /* @__PURE__ */ import_react97.default.createElement("div", { className: "flex flex-col sm:flex-row gap-4 items-center w-full mx-auto mb-12" }, app.ctaText && app.ctaHref && /* @__PURE__ */ import_react97.default.createElement("div", { className: "w-full sm:w-60 flex justify-center *:w-full" }, /* @__PURE__ */ import_react97.default.createElement(ThreeDButton, { href: app.ctaHref }, /* @__PURE__ */ import_react97.default.createElement("span", { className: "flex items-center justify-center gap-2" }, /* @__PURE__ */ import_react97.default.createElement(import_react98.HugeiconsIcon, { icon: import_core_free_icons36.Download01Icon, size: 16 }), app.ctaText))), app.secondaryCtaText && app.secondaryCtaHref && /* @__PURE__ */ import_react97.default.createElement(
5472
+ )), /* @__PURE__ */ import_react99.default.createElement("div", { className: "flex flex-col justify-center pt-1 min-w-0" }, /* @__PURE__ */ import_react99.default.createElement("h1", { className: "text-xl text-black leading-tight mb-1 " }, /* @__PURE__ */ import_react99.default.createElement("span", { className: "block truncate" }, app.name)), /* @__PURE__ */ import_react99.default.createElement("span", { className: "text-xs mt-1 text-neutral-400 truncate max-w-full" }, app.tagline), /* @__PURE__ */ import_react99.default.createElement("div", { className: "flex flex-wrap items-center mt-4 gap-8 w-full" }, /* @__PURE__ */ import_react99.default.createElement("div", { className: "flex flex-col items-center" }, /* @__PURE__ */ import_react99.default.createElement("div", { className: "flex items-center gap-1.5 h-6 text-neutral-800" }, app.platforms.android && /* @__PURE__ */ import_react99.default.createElement(import_react100.HugeiconsIcon, { icon: import_core_free_icons37.AndroidIcon, size: 18 }), app.platforms.ios && /* @__PURE__ */ import_react99.default.createElement(import_react100.HugeiconsIcon, { icon: import_core_free_icons37.AppleIcon, size: 18 })), /* @__PURE__ */ import_react99.default.createElement("span", { className: "text-[10px] text-neutral-400 mt-1" }, "Platforms")), /* @__PURE__ */ import_react99.default.createElement("div", { className: "flex flex-col items-center" }, /* @__PURE__ */ import_react99.default.createElement("span", { className: "text-sm h-6 flex items-center text-neutral-800 truncate" }, app.stats.type), /* @__PURE__ */ import_react99.default.createElement("span", { className: "text-[10px] text-neutral-400 mt-1" }, "Type")), /* @__PURE__ */ import_react99.default.createElement("div", { className: "flex flex-col items-center" }, /* @__PURE__ */ import_react99.default.createElement("span", { className: "text-sm h-6 flex items-center text-neutral-800 truncate" }, app.stats.size), /* @__PURE__ */ import_react99.default.createElement("span", { className: "text-[10px] text-neutral-400 mt-1" }, "Size"))))), /* @__PURE__ */ import_react99.default.createElement("div", { className: "flex flex-col sm:flex-row gap-4 items-center w-full mx-auto mb-12" }, app.ctaText && app.ctaHref && /* @__PURE__ */ import_react99.default.createElement("div", { className: "w-full sm:w-60 flex justify-center *:w-full" }, /* @__PURE__ */ import_react99.default.createElement(ThreeDButton, { href: app.ctaHref }, /* @__PURE__ */ import_react99.default.createElement("span", { className: "flex items-center justify-center gap-2" }, /* @__PURE__ */ import_react99.default.createElement(import_react100.HugeiconsIcon, { icon: import_core_free_icons37.Download01Icon, size: 16 }), app.ctaText))), app.secondaryCtaText && app.secondaryCtaHref && /* @__PURE__ */ import_react99.default.createElement(
5356
5473
  "a",
5357
5474
  {
5358
5475
  href: app.secondaryCtaHref,
5359
5476
  className: "w-full sm:w-60 inline-flex items-center justify-center gap-2 text-[11px] tracking-widest rounded-full px-8 py-2.5 border border-neutral-100 text-center text-black hover:bg-neutral-50 outline-none transition-colors"
5360
5477
  },
5361
- /* @__PURE__ */ import_react97.default.createElement(import_react98.HugeiconsIcon, { icon: import_core_free_icons36.Bookmark02Icon, size: 16 }),
5478
+ /* @__PURE__ */ import_react99.default.createElement(import_react100.HugeiconsIcon, { icon: import_core_free_icons37.Bookmark02Icon, size: 16 }),
5362
5479
  app.secondaryCtaText
5363
- )), /* @__PURE__ */ import_react97.default.createElement("div", { className: "w-full mb-12" }, /* @__PURE__ */ import_react97.default.createElement("h2", { className: "text-xl text-black mb-4" }, "About"), /* @__PURE__ */ import_react97.default.createElement("div", { className: "flex gap-3 overflow-x-auto pb-4 scrollbar-hide -mx-6 px-6" }, app.screenshots.map((src, idx) => /* @__PURE__ */ import_react97.default.createElement(
5480
+ )), /* @__PURE__ */ import_react99.default.createElement("div", { className: "w-full mb-12" }, /* @__PURE__ */ import_react99.default.createElement("h2", { className: "text-xl text-black mb-4" }, "About"), /* @__PURE__ */ import_react99.default.createElement("div", { className: "flex gap-3 overflow-x-auto pb-4 scrollbar-hide -mx-6 px-6" }, app.screenshots.map((src, idx) => /* @__PURE__ */ import_react99.default.createElement(
5364
5481
  ScreenshotCard,
5365
5482
  {
5366
5483
  key: idx,
@@ -5368,43 +5485,43 @@ var UniversalAppDetails = ({ app, onBack }) => {
5368
5485
  alt: `${app.name} Screenshot ${idx + 1}`,
5369
5486
  onClick: () => setLightboxIndex(idx)
5370
5487
  }
5371
- ))), /* @__PURE__ */ import_react97.default.createElement("div", { className: "flex items-end text-neutral-500 text-sm leading-relaxed mt-2" }, /* @__PURE__ */ import_react97.default.createElement("p", { className: "flex-1 whitespace-pre-wrap" }, displayDesc), isDescLong && /* @__PURE__ */ import_react97.default.createElement(
5488
+ ))), /* @__PURE__ */ import_react99.default.createElement("div", { className: "flex items-end text-neutral-500 text-sm leading-relaxed mt-2" }, /* @__PURE__ */ import_react99.default.createElement("p", { className: "flex-1 whitespace-pre-wrap" }, displayDesc), isDescLong && /* @__PURE__ */ import_react99.default.createElement(
5372
5489
  "button",
5373
5490
  {
5374
5491
  onClick: () => setIsDescExpanded(!isDescExpanded),
5375
5492
  className: "ml-2 mb-0.5 text-neutral-400 hover:text-black transition-colors outline-none shrink-0"
5376
5493
  },
5377
- /* @__PURE__ */ import_react97.default.createElement(
5378
- import_react98.HugeiconsIcon,
5494
+ /* @__PURE__ */ import_react99.default.createElement(
5495
+ import_react100.HugeiconsIcon,
5379
5496
  {
5380
- icon: import_core_free_icons36.ArrowDown01Icon,
5497
+ icon: import_core_free_icons37.ArrowDown01Icon,
5381
5498
  size: 18,
5382
5499
  className: `transform transition-transform ${isDescExpanded ? "rotate-180" : ""}`
5383
5500
  }
5384
5501
  )
5385
- ))), lightboxIndex !== null && /* @__PURE__ */ import_react97.default.createElement("div", { className: "fixed inset-0 z-50 bg-black/30 flex flex-col" }, /* @__PURE__ */ import_react97.default.createElement("div", { className: "w-full p-4 sm:p-6 flex justify-end" }, /* @__PURE__ */ import_react97.default.createElement(
5502
+ ))), lightboxIndex !== null && /* @__PURE__ */ import_react99.default.createElement("div", { className: "fixed inset-0 z-50 bg-black/30 flex flex-col" }, /* @__PURE__ */ import_react99.default.createElement("div", { className: "w-full p-4 sm:p-6 flex justify-end" }, /* @__PURE__ */ import_react99.default.createElement(
5386
5503
  "button",
5387
5504
  {
5388
5505
  onClick: () => setLightboxIndex(null),
5389
5506
  className: "p-3 text-white bg-white/30 rounded-full transition-colors outline-none"
5390
5507
  },
5391
- /* @__PURE__ */ import_react97.default.createElement(import_react98.HugeiconsIcon, { icon: import_core_free_icons36.Cancel01Icon, size: 24 })
5392
- )), /* @__PURE__ */ import_react97.default.createElement("div", { className: "flex-1 flex items-center justify-between px-4 sm:px-10 pb-10" }, /* @__PURE__ */ import_react97.default.createElement("button", { onClick: handlePrev, className: "p-3 text-white bg-white/30 rounded-full" }, /* @__PURE__ */ import_react97.default.createElement(import_react98.HugeiconsIcon, { icon: import_core_free_icons36.ArrowLeft01Icon, size: 24 })), /* @__PURE__ */ import_react97.default.createElement("div", { className: "flex-1 h-full max-h-[80vh]" }, /* @__PURE__ */ import_react97.default.createElement(LightboxImage, { src: app.screenshots[lightboxIndex] })), /* @__PURE__ */ import_react97.default.createElement("button", { onClick: handleNext, className: "p-3 text-white bg-white/30 rounded-full" }, /* @__PURE__ */ import_react97.default.createElement(import_react98.HugeiconsIcon, { icon: import_core_free_icons36.ArrowRight01Icon, size: 24 }))), /* @__PURE__ */ import_react97.default.createElement("div", { className: "sm:hidden flex justify-between px-8 pb-12 w-full" }, /* @__PURE__ */ import_react97.default.createElement("button", { onClick: handlePrev, className: "p-3 text-white bg-white/30 rounded-full" }, /* @__PURE__ */ import_react97.default.createElement(import_react98.HugeiconsIcon, { icon: import_core_free_icons36.ArrowLeft01Icon, size: 24 })), /* @__PURE__ */ import_react97.default.createElement("button", { onClick: handleNext, className: "p-3 text-white bg-white/30 rounded-full" }, /* @__PURE__ */ import_react97.default.createElement(import_react98.HugeiconsIcon, { icon: import_core_free_icons36.ArrowRight01Icon, size: 24 })))));
5508
+ /* @__PURE__ */ import_react99.default.createElement(import_react100.HugeiconsIcon, { icon: import_core_free_icons37.Cancel01Icon, size: 24 })
5509
+ )), /* @__PURE__ */ import_react99.default.createElement("div", { className: "flex-1 flex items-center justify-between px-4 sm:px-10 pb-10" }, /* @__PURE__ */ import_react99.default.createElement("button", { onClick: handlePrev, className: "p-3 text-white bg-white/30 rounded-full" }, /* @__PURE__ */ import_react99.default.createElement(import_react100.HugeiconsIcon, { icon: import_core_free_icons37.ArrowLeft01Icon, size: 24 })), /* @__PURE__ */ import_react99.default.createElement("div", { className: "flex-1 h-full max-h-[80vh]" }, /* @__PURE__ */ import_react99.default.createElement(LightboxImage, { src: app.screenshots[lightboxIndex] })), /* @__PURE__ */ import_react99.default.createElement("button", { onClick: handleNext, className: "p-3 text-white bg-white/30 rounded-full" }, /* @__PURE__ */ import_react99.default.createElement(import_react100.HugeiconsIcon, { icon: import_core_free_icons37.ArrowRight01Icon, size: 24 }))), /* @__PURE__ */ import_react99.default.createElement("div", { className: "sm:hidden flex justify-between px-8 pb-12 w-full" }, /* @__PURE__ */ import_react99.default.createElement("button", { onClick: handlePrev, className: "p-3 text-white bg-white/30 rounded-full" }, /* @__PURE__ */ import_react99.default.createElement(import_react100.HugeiconsIcon, { icon: import_core_free_icons37.ArrowLeft01Icon, size: 24 })), /* @__PURE__ */ import_react99.default.createElement("button", { onClick: handleNext, className: "p-3 text-white bg-white/30 rounded-full" }, /* @__PURE__ */ import_react99.default.createElement(import_react100.HugeiconsIcon, { icon: import_core_free_icons37.ArrowRight01Icon, size: 24 })))));
5393
5510
  };
5394
5511
 
5395
5512
  // src/components/UniversalAppCategoryGrid.tsx
5396
- var import_react99 = __toESM(require("react"));
5397
- var import_react100 = require("@hugeicons/react");
5398
- var import_core_free_icons37 = require("@hugeicons/core-free-icons");
5513
+ var import_react101 = __toESM(require("react"));
5514
+ var import_react102 = require("@hugeicons/react");
5515
+ var import_core_free_icons38 = require("@hugeicons/core-free-icons");
5399
5516
  var AppGridCard = ({ app }) => {
5400
- const [isLoading, setIsLoading] = (0, import_react99.useState)(true);
5401
- return /* @__PURE__ */ import_react99.default.createElement(
5517
+ const [isLoading, setIsLoading] = (0, import_react101.useState)(true);
5518
+ return /* @__PURE__ */ import_react101.default.createElement(
5402
5519
  "button",
5403
5520
  {
5404
5521
  onClick: app.onClick,
5405
5522
  className: "flex flex-col gap-3 group cursor-pointer w-25 text-left outline-none"
5406
5523
  },
5407
- /* @__PURE__ */ import_react99.default.createElement("div", { className: "relative w-full aspect-square rounded-2xl bg-white overflow-hidden transition-all duration-300 flex items-center justify-center" }, isLoading && /* @__PURE__ */ import_react99.default.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-10 bg-neutral-50/50" }, /* @__PURE__ */ import_react99.default.createElement(import_react100.HugeiconsIcon, { icon: import_core_free_icons37.Loading03Icon, size: 24, className: "animate-spin text-neutral-400" })), /* @__PURE__ */ import_react99.default.createElement(
5524
+ /* @__PURE__ */ import_react101.default.createElement("div", { className: "relative w-full aspect-square rounded-2xl bg-white overflow-hidden transition-all duration-300 flex items-center justify-center" }, isLoading && /* @__PURE__ */ import_react101.default.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-10 bg-neutral-50/50" }, /* @__PURE__ */ import_react101.default.createElement(import_react102.HugeiconsIcon, { icon: import_core_free_icons38.Loading03Icon, size: 24, className: "animate-spin text-neutral-400" })), /* @__PURE__ */ import_react101.default.createElement(
5408
5525
  "img",
5409
5526
  {
5410
5527
  src: app.logoSrc,
@@ -5414,7 +5531,7 @@ var AppGridCard = ({ app }) => {
5414
5531
  className: `w-full h-full object-cover transition-all duration-700 ease-out z-20 ${isLoading ? "opacity-0 scale-95 blur-md" : "opacity-100 scale-100 blur-0"}`
5415
5532
  }
5416
5533
  )),
5417
- /* @__PURE__ */ import_react99.default.createElement("div", { className: "flex flex-col min-w-0 px-1" }, /* @__PURE__ */ import_react99.default.createElement("span", { className: "text-[13px] text-black tracking-tight truncate group-hover:text-neutral-600 transition-colors" }, app.name), /* @__PURE__ */ import_react99.default.createElement("span", { className: "text-[10px] text-neutral-500 tracking-wide truncate mt-0.5" }, app.category))
5534
+ /* @__PURE__ */ import_react101.default.createElement("div", { className: "flex flex-col min-w-0 px-1" }, /* @__PURE__ */ import_react101.default.createElement("span", { className: "text-[13px] text-black tracking-tight truncate group-hover:text-neutral-600 transition-colors" }, app.name), /* @__PURE__ */ import_react101.default.createElement("span", { className: "text-[10px] text-neutral-500 tracking-wide truncate mt-0.5" }, app.category))
5418
5535
  );
5419
5536
  };
5420
5537
  var UniversalAppCategoryGrid = ({
@@ -5422,7 +5539,7 @@ var UniversalAppCategoryGrid = ({
5422
5539
  categoryTitle,
5423
5540
  apps
5424
5541
  }) => {
5425
- return /* @__PURE__ */ import_react99.default.createElement("div", { className: "w-full py-16" }, /* @__PURE__ */ import_react99.default.createElement("div", { className: "w-full flex justify-center px-4" }, /* @__PURE__ */ import_react99.default.createElement("div", { className: "max-w-6xl w-full" }, /* @__PURE__ */ import_react99.default.createElement("div", { className: "relative overflow-hidden mb-12 text-left" }, /* @__PURE__ */ import_react99.default.createElement("div", { className: "relative z-10" }, tagline && /* @__PURE__ */ import_react99.default.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500 block mb-4 " }, tagline), categoryTitle && /* @__PURE__ */ import_react99.default.createElement("h2", { className: "text-2xl sm:text-3xl tracking-tight text-black leading-[1.1]" }, categoryTitle))), /* @__PURE__ */ import_react99.default.createElement("div", { className: "grid grid-cols-3 sm:grid-cols-4 md:grid-cols-6 lg:grid-cols-8 gap-4 sm:gap-6 px-1" }, apps.map((app) => /* @__PURE__ */ import_react99.default.createElement(AppGridCard, { key: app.id, app }))))));
5542
+ return /* @__PURE__ */ import_react101.default.createElement("div", { className: "w-full py-16" }, /* @__PURE__ */ import_react101.default.createElement("div", { className: "w-full flex justify-center px-4" }, /* @__PURE__ */ import_react101.default.createElement("div", { className: "max-w-6xl w-full" }, /* @__PURE__ */ import_react101.default.createElement("div", { className: "relative overflow-hidden mb-12 text-left" }, /* @__PURE__ */ import_react101.default.createElement("div", { className: "relative z-10" }, tagline && /* @__PURE__ */ import_react101.default.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500 block mb-4 " }, tagline), categoryTitle && /* @__PURE__ */ import_react101.default.createElement("h2", { className: "text-2xl sm:text-3xl tracking-tight text-black leading-[1.1]" }, categoryTitle))), /* @__PURE__ */ import_react101.default.createElement("div", { className: "grid grid-cols-3 sm:grid-cols-4 md:grid-cols-6 lg:grid-cols-8 gap-4 sm:gap-6 px-1" }, apps.map((app) => /* @__PURE__ */ import_react101.default.createElement(AppGridCard, { key: app.id, app }))))));
5426
5543
  };
5427
5544
  // Annotate the CommonJS export names for ESM import in node:
5428
5545
  0 && (module.exports = {
@@ -5484,6 +5601,7 @@ var UniversalAppCategoryGrid = ({
5484
5601
  UniversalSidebar,
5485
5602
  UniversalTransactionPage,
5486
5603
  UniversalTrashView,
5604
+ UniversalWalletPage,
5487
5605
  ZairusAuth,
5488
5606
  ZairusShareCard
5489
5607
  });