@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.mjs CHANGED
@@ -2363,7 +2363,7 @@ var UniversalOrganizationPage = ({
2363
2363
  };
2364
2364
  const hasChanges = web3Name !== initialOrgName || slug !== initialSlug || username !== initialSlug;
2365
2365
  const isSaveDisabled = isSubmitting || isReadOnly || isCheckingSlug || !hasChanges || web3Name.length < 3 || slug.length < 3 || username.length < 3 || slug !== initialSlug && slugAvailable === false;
2366
- return /* @__PURE__ */ React29.createElement("div", { className: "flex flex-col gap-8 animate-in max-w-5xl rounded-2xl p-6 bg-white fade-in duration-300 " }, /* @__PURE__ */ React29.createElement(ManagedToaster, null), /* @__PURE__ */ React29.createElement("div", { className: "flex items-start justify-between gap-4" }, /* @__PURE__ */ React29.createElement("div", null, /* @__PURE__ */ React29.createElement("h1", { className: "text-black text-xl mb-1 tracking-tight" }, "Web3 Profile"), /* @__PURE__ */ React29.createElement("p", { className: "text-xs text-neutral-500" }, "Manage your financial payment handle identifiers and global public cryptographic signature identity details.")), isReadOnly && /* @__PURE__ */ React29.createElement("span", { className: "p-2 w-9 h-9 bg-neutral-50 text-neutral-500 rounded-full shrink-0" }, /* @__PURE__ */ React29.createElement(HugeiconsIcon15, { icon: CircleLock02Icon, size: 18, className: "text-current" }))), bannerProps && /* @__PURE__ */ React29.createElement(Banner, { ...bannerProps }), /* @__PURE__ */ React29.createElement("div", { className: "w-full max-w-5xl" }, /* @__PURE__ */ React29.createElement("form", { className: "flex flex-col gap-8", onSubmit: handleSave, autoComplete: "off" }, /* @__PURE__ */ React29.createElement(
2366
+ return /* @__PURE__ */ React29.createElement("div", { className: "flex flex-col gap-8 animate-in max-w-5xl rounded-2xl p-6 bg-white fade-in duration-300 " }, /* @__PURE__ */ React29.createElement(ManagedToaster, null), /* @__PURE__ */ React29.createElement("div", { className: "flex items-start justify-between gap-4" }, /* @__PURE__ */ React29.createElement("div", null, /* @__PURE__ */ React29.createElement("h1", { className: "text-black text-xl mb-1 tracking-tight" }, "Defi Profile"), /* @__PURE__ */ React29.createElement("p", { className: "text-xs text-neutral-500" }, "Manage your financial payment handle identifiers and global public cryptographic signature identity details.")), isReadOnly && /* @__PURE__ */ React29.createElement("span", { className: "p-2 w-9 h-9 bg-neutral-50 text-neutral-500 rounded-full shrink-0" }, /* @__PURE__ */ React29.createElement(HugeiconsIcon15, { icon: CircleLock02Icon, size: 18, className: "text-current" }))), bannerProps && /* @__PURE__ */ React29.createElement(Banner, { ...bannerProps }), /* @__PURE__ */ React29.createElement("div", { className: "w-full max-w-5xl" }, /* @__PURE__ */ React29.createElement("form", { className: "flex flex-col gap-8", onSubmit: handleSave, autoComplete: "off" }, /* @__PURE__ */ React29.createElement(
2367
2367
  TextInput,
2368
2368
  {
2369
2369
  label: "Display Name",
@@ -4214,21 +4214,141 @@ var UniversalHomeView = ({
4214
4214
  )));
4215
4215
  };
4216
4216
 
4217
+ // src/components/UniversalWalletPage.tsx
4218
+ import React46, { useState as useState30 } from "react";
4219
+ import { HugeiconsIcon as HugeiconsIcon31 } from "@hugeicons/react";
4220
+ import {
4221
+ Search01Icon as Search01Icon3,
4222
+ CancelCircleIcon as CancelCircleIcon3,
4223
+ Loading03Icon as Loading03Icon16
4224
+ } from "@hugeicons/core-free-icons";
4225
+ var PageSpinner7 = () => /* @__PURE__ */ React46.createElement("div", { className: "flex justify-center items-center py-12" }, /* @__PURE__ */ React46.createElement(HugeiconsIcon31, { icon: Loading03Icon16, size: 32, className: "animate-spin mb-4 text-black" }));
4226
+ var WalletLogo = ({ src, alt, sizeClass = "w-10 h-10" }) => {
4227
+ const [isLoaded, setIsLoaded] = useState30(false);
4228
+ return /* @__PURE__ */ React46.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__ */ React46.createElement(HugeiconsIcon31, { icon: Loading03Icon16, size: 16, className: "animate-spin text-neutral-300 absolute" }), /* @__PURE__ */ React46.createElement(
4229
+ "img",
4230
+ {
4231
+ src,
4232
+ alt,
4233
+ onLoad: () => setIsLoaded(true),
4234
+ className: `w-full h-full object-cover transition-opacity duration-300 ${isLoaded ? "opacity-100" : "opacity-0"}`
4235
+ }
4236
+ ));
4237
+ };
4238
+ var UniversalWalletPage = ({
4239
+ headerTitle,
4240
+ headerDescription,
4241
+ hideControls = false,
4242
+ hideBalanceAmounts = false,
4243
+ isGeneratingStatement = false,
4244
+ wallets,
4245
+ isLoading = false,
4246
+ renderQrCode,
4247
+ onDownloadPayId,
4248
+ onCopyAddress
4249
+ }) => {
4250
+ const [selectedWallet, setSelectedWallet] = useState30(null);
4251
+ const [localSearchQuery, setLocalSearchQuery] = useState30("");
4252
+ const [showToast, setShowToast] = useState30(false);
4253
+ const filteredWallets = wallets.filter((wallet) => {
4254
+ const q = localSearchQuery.toLowerCase();
4255
+ return wallet.name.toLowerCase().includes(q) || wallet.currency.toLowerCase().includes(q) || wallet.network.toLowerCase().includes(q);
4256
+ });
4257
+ 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)`;
4258
+ 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)`;
4259
+ 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)`;
4260
+ 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`;
4261
+ const handleCopy = (wallet) => {
4262
+ if (onCopyAddress) onCopyAddress(wallet);
4263
+ if (typeof navigator !== "undefined" && navigator.clipboard) {
4264
+ navigator.clipboard.writeText(wallet.address).catch(() => {
4265
+ });
4266
+ }
4267
+ setShowToast(true);
4268
+ setTimeout(() => setShowToast(false), 2500);
4269
+ };
4270
+ return /* @__PURE__ */ React46.createElement("div", { className: "flex flex-col gap-6 animate-in max-w-5xl fade-in duration-300" }, !hideControls && /* @__PURE__ */ React46.createElement("div", { className: "flex flex-col sm:flex-row items-center justify-between gap-4 w-full" }, /* @__PURE__ */ React46.createElement("div", { className: "relative w-full sm:w-96" }, /* @__PURE__ */ React46.createElement("div", { className: "absolute inset-y-0 left-0 pl-4 flex items-center pointer-events-none" }, /* @__PURE__ */ React46.createElement(HugeiconsIcon31, { icon: Search01Icon3, size: 16, className: "text-neutral-400" })), /* @__PURE__ */ React46.createElement(
4271
+ "input",
4272
+ {
4273
+ type: "text",
4274
+ placeholder: "Search wallets by name or network...",
4275
+ value: localSearchQuery,
4276
+ onChange: (e) => setLocalSearchQuery(e.target.value),
4277
+ className: "w-full pl-10 pr-4 py-2 bg-white rounded-full text-[13px] text-black outline-none transition-colors"
4278
+ }
4279
+ ))), /* @__PURE__ */ React46.createElement("div", { className: "flex flex-col gap-8 p-6 rounded-2xl bg-white w-full" }, /* @__PURE__ */ React46.createElement("div", { className: "flex flex-col sm:flex-row sm:items-start justify-between gap-4" }, /* @__PURE__ */ React46.createElement("div", null, /* @__PURE__ */ React46.createElement("h1", { className: "text-black text-xl mb-1 tracking-tight" }, headerTitle), headerDescription && /* @__PURE__ */ React46.createElement("p", { className: "text-xs text-neutral-500" }, headerDescription))), /* @__PURE__ */ React46.createElement("div", { className: "w-full overflow-hidden" }, isLoading ? /* @__PURE__ */ React46.createElement(PageSpinner7, null) : /* @__PURE__ */ React46.createElement("div", { className: "flex flex-col min-w-0" }, /* @__PURE__ */ React46.createElement("div", { className: "divide-y divide-neutral-100" }, filteredWallets.length === 0 ? /* @__PURE__ */ React46.createElement("p", { className: "text-xs text-neutral-500 py-6 text-center" }, "No wallets found") : filteredWallets.map((wallet) => /* @__PURE__ */ React46.createElement(
4280
+ "div",
4281
+ {
4282
+ key: wallet.id,
4283
+ onClick: () => setSelectedWallet(wallet),
4284
+ 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"
4285
+ },
4286
+ /* @__PURE__ */ React46.createElement("div", { className: "flex items-center gap-4 min-w-0 flex-1" }, /* @__PURE__ */ React46.createElement(WalletLogo, { src: wallet.logoSrc, alt: wallet.name }), /* @__PURE__ */ React46.createElement("div", { className: "min-w-0 flex-1 flex flex-col gap-1" }, /* @__PURE__ */ React46.createElement("p", { className: "text-[13px] text-black truncate font-medium" }, wallet.name), /* @__PURE__ */ React46.createElement("p", { className: `text-[13px] text-neutral-500 truncate transition-all duration-300 ${hideBalanceAmounts ? "blur-sm opacity-40 select-none" : ""}` }, wallet.balance, " ", wallet.currency))),
4287
+ /* @__PURE__ */ React46.createElement("div", { className: "shrink-0 flex flex-col items-end gap-1 text-right" }, /* @__PURE__ */ React46.createElement("span", { className: "text-[10px] tracking-wide text-neutral-500 bg-neutral-100/80 px-2.5 py-1 rounded-full uppercase" }, wallet.network))
4288
+ )))))), selectedWallet && /* @__PURE__ */ React46.createElement("div", { className: "fixed inset-0 z-120 flex items-center justify-center p-4 pointer-events-auto" }, /* @__PURE__ */ React46.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => {
4289
+ setSelectedWallet(null);
4290
+ setShowToast(false);
4291
+ } }), /* @__PURE__ */ React46.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__ */ React46.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__ */ React46.createElement("div", { className: "flex items-center justify-between p-5 shrink-0" }, /* @__PURE__ */ React46.createElement("h3", { className: "text-[15px] text-black tracking-tight" }, "Wallet Details"), /* @__PURE__ */ React46.createElement("button", { onClick: () => {
4292
+ setSelectedWallet(null);
4293
+ setShowToast(false);
4294
+ }, className: "text-neutral-400 hover:text-black transition-colors outline-none" }, /* @__PURE__ */ React46.createElement(HugeiconsIcon31, { icon: CancelCircleIcon3, size: 18 }))), /* @__PURE__ */ React46.createElement("div", { className: "flex-1 overflow-y-auto custom-scrollbar p-6 pt-2" }, /* @__PURE__ */ React46.createElement("div", { className: "flex flex-col items-center justify-center mb-6" }, /* @__PURE__ */ React46.createElement(WalletLogo, { src: selectedWallet.logoSrc, alt: selectedWallet.name, sizeClass: "w-14 h-14 mb-4" }), /* @__PURE__ */ React46.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__ */ React46.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__ */ React46.createElement("div", { className: "w-full flex justify-center mb-8" }, renderQrCode(selectedWallet)), /* @__PURE__ */ React46.createElement("div", { className: "grid grid-cols-1 gap-y-6 gap-x-4 mb-10" }, /* @__PURE__ */ React46.createElement("div", null, /* @__PURE__ */ React46.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Wallet Address"), /* @__PURE__ */ React46.createElement("span", { className: "text-[13px] text-black break-all font-medium" }, selectedWallet.address)), /* @__PURE__ */ React46.createElement("div", null, /* @__PURE__ */ React46.createElement("span", { className: "text-[11px] tracking-[0.2em] text-neutral-400 block mb-2" }, "Wallet Name"), /* @__PURE__ */ React46.createElement("span", { className: "text-[13px] text-black" }, selectedWallet.name))), /* @__PURE__ */ React46.createElement("div", { className: "flex flex-col gap-3" }, /* @__PURE__ */ React46.createElement(
4295
+ "button",
4296
+ {
4297
+ disabled: isGeneratingStatement,
4298
+ onClick: () => onDownloadPayId && onDownloadPayId(selectedWallet),
4299
+ className: `
4300
+ relative w-full flex items-center justify-center py-3 rounded-full bg-neutral-950 text-white
4301
+ transition-all duration-150 select-none outline-none
4302
+ ${isGeneratingStatement ? "opacity-50 cursor-not-allowed" : "active:translate-y-0.5"}
4303
+ `,
4304
+ style: { boxShadow: isGeneratingStatement ? disabledShadow : primaryBaseShadow },
4305
+ onMouseEnter: (e) => {
4306
+ if (isGeneratingStatement) return;
4307
+ e.currentTarget.style.boxShadow = primaryHoverShadow;
4308
+ e.currentTarget.style.transform = "translateY(-1px)";
4309
+ },
4310
+ onMouseLeave: (e) => {
4311
+ if (isGeneratingStatement) return;
4312
+ e.currentTarget.style.boxShadow = primaryBaseShadow;
4313
+ e.currentTarget.style.transform = "translateY(0px)";
4314
+ },
4315
+ onMouseDown: (e) => {
4316
+ if (isGeneratingStatement) return;
4317
+ e.currentTarget.style.boxShadow = primaryActiveShadow;
4318
+ e.currentTarget.style.transform = "translateY(2px)";
4319
+ },
4320
+ onMouseUp: (e) => {
4321
+ if (isGeneratingStatement) return;
4322
+ e.currentTarget.style.transform = "translateY(-1px)";
4323
+ }
4324
+ },
4325
+ /* @__PURE__ */ React46.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" }),
4326
+ /* @__PURE__ */ React46.createElement("span", { className: "relative z-10 flex items-center justify-center gap-2 text-[13px] tracking-wide font-medium" }, isGeneratingStatement ? /* @__PURE__ */ React46.createElement(HugeiconsIcon31, { icon: Loading03Icon16, size: 16, className: "animate-spin text-white" }) : "Generate Statement")
4327
+ ), /* @__PURE__ */ React46.createElement(
4328
+ "button",
4329
+ {
4330
+ onClick: () => handleCopy(selectedWallet),
4331
+ className: "w-full flex items-center justify-center py-2 rounded-full border border-neutral-200 text-black outline-none text-[13px] tracking-wide"
4332
+ },
4333
+ "Copy Wallet Address"
4334
+ ))))));
4335
+ };
4336
+
4217
4337
  // src/components/CardLogo.tsx
4218
- import React46 from "react";
4338
+ import React47 from "react";
4219
4339
  var CardLogo = ({ network, className = "" }) => {
4220
4340
  if (network === "MASTERCARD") {
4221
- return /* @__PURE__ */ React46.createElement("svg", { className, fill: "currentColor", viewBox: "0 0 32 32", xmlns: "http://www.w3.org/2000/svg" }, /* @__PURE__ */ React46.createElement("title", null, "Mastercard"), /* @__PURE__ */ React46.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" }));
4341
+ return /* @__PURE__ */ React47.createElement("svg", { className, fill: "currentColor", viewBox: "0 0 32 32", xmlns: "http://www.w3.org/2000/svg" }, /* @__PURE__ */ React47.createElement("title", null, "Mastercard"), /* @__PURE__ */ React47.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" }));
4222
4342
  }
4223
4343
  if (network === "VERVE") {
4224
- return /* @__PURE__ */ React46.createElement("div", { className: `font-bold italic flex items-center justify-center tracking-widest ${className}`, style: { fontFamily: "sans-serif" } }, "Verve");
4344
+ return /* @__PURE__ */ React47.createElement("div", { className: `font-bold italic flex items-center justify-center tracking-widest ${className}`, style: { fontFamily: "sans-serif" } }, "Verve");
4225
4345
  }
4226
- return /* @__PURE__ */ React46.createElement("svg", { className, fill: "currentColor", viewBox: "0 0 32 32", xmlns: "http://www.w3.org/2000/svg" }, /* @__PURE__ */ React46.createElement("title", null, "Visa"), /* @__PURE__ */ React46.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" }));
4346
+ return /* @__PURE__ */ React47.createElement("svg", { className, fill: "currentColor", viewBox: "0 0 32 32", xmlns: "http://www.w3.org/2000/svg" }, /* @__PURE__ */ React47.createElement("title", null, "Visa"), /* @__PURE__ */ React47.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" }));
4227
4347
  };
4228
4348
 
4229
4349
  // src/components/DriveItemOpener.tsx
4230
- import React47 from "react";
4231
- import { HugeiconsIcon as HugeiconsIcon31 } from "@hugeicons/react";
4350
+ import React48 from "react";
4351
+ import { HugeiconsIcon as HugeiconsIcon32 } from "@hugeicons/react";
4232
4352
  import { Cancel01Icon as Cancel01Icon4 } from "@hugeicons/core-free-icons";
4233
4353
  var DriveItemOpener = ({ item, onClose }) => {
4234
4354
  if (!item) return null;
@@ -4240,38 +4360,38 @@ var DriveItemOpener = ({ item, onClose }) => {
4240
4360
  const i = Math.floor(Math.log(num) / Math.log(k));
4241
4361
  return parseFloat((num / Math.pow(k, i)).toFixed(1)) + " " + sizes[i];
4242
4362
  };
4243
- return /* @__PURE__ */ React47.createElement("div", { className: "fixed inset-0 z-200 bg-black/95 flex flex-col animate-in fade-in duration-200" }, /* @__PURE__ */ React47.createElement("div", { className: "flex items-center justify-between p-4 border-b border-white/10 bg-black" }, /* @__PURE__ */ React47.createElement("div", { className: "flex items-center gap-4" }, /* @__PURE__ */ React47.createElement("div", { className: "w-10 h-10 bg-white/10 rounded-xl flex items-center justify-center" }, /* @__PURE__ */ React47.createElement("div", { className: "invert grayscale brightness-200" }, /* @__PURE__ */ React47.createElement(FileIconMapper, { type: item.type, mimeType: item.mimeType }))), /* @__PURE__ */ React47.createElement("div", null, /* @__PURE__ */ React47.createElement("h3", { className: "text-sm text-white tracking-wide" }, item.name), /* @__PURE__ */ React47.createElement("p", { className: "text-xs text-white/50 mt-0.5" }, item.type, " \u2022 ", formatBytes(item.size), " \u2022 ", new Date(item.updatedAt).toLocaleDateString()))), /* @__PURE__ */ React47.createElement(
4363
+ return /* @__PURE__ */ React48.createElement("div", { className: "fixed inset-0 z-200 bg-black/95 flex flex-col animate-in fade-in duration-200" }, /* @__PURE__ */ React48.createElement("div", { className: "flex items-center justify-between p-4 border-b border-white/10 bg-black" }, /* @__PURE__ */ React48.createElement("div", { className: "flex items-center gap-4" }, /* @__PURE__ */ React48.createElement("div", { className: "w-10 h-10 bg-white/10 rounded-xl flex items-center justify-center" }, /* @__PURE__ */ React48.createElement("div", { className: "invert grayscale brightness-200" }, /* @__PURE__ */ React48.createElement(FileIconMapper, { type: item.type, mimeType: item.mimeType }))), /* @__PURE__ */ React48.createElement("div", null, /* @__PURE__ */ React48.createElement("h3", { className: "text-sm text-white tracking-wide" }, item.name), /* @__PURE__ */ React48.createElement("p", { className: "text-xs text-white/50 mt-0.5" }, item.type, " \u2022 ", formatBytes(item.size), " \u2022 ", new Date(item.updatedAt).toLocaleDateString()))), /* @__PURE__ */ React48.createElement(
4244
4364
  "button",
4245
4365
  {
4246
4366
  onClick: onClose,
4247
4367
  className: "p-3 bg-white/10 hover:bg-white/20 text-white rounded-full transition-colors outline-none"
4248
4368
  },
4249
- /* @__PURE__ */ React47.createElement(HugeiconsIcon31, { icon: Cancel01Icon4, size: 20 })
4250
- )), /* @__PURE__ */ React47.createElement("div", { className: "flex-1 flex items-center justify-center p-8 overflow-y-auto relative" }, /* @__PURE__ */ React47.createElement("div", { className: "text-center" }, /* @__PURE__ */ React47.createElement("p", { className: "text-white/40 text-sm tracking-widest " }, "File Preview Engine"), /* @__PURE__ */ React47.createElement("p", { className: "text-white/20 text-xs mt-2" }, "Content rendering logic will be attached here."))));
4369
+ /* @__PURE__ */ React48.createElement(HugeiconsIcon32, { icon: Cancel01Icon4, size: 20 })
4370
+ )), /* @__PURE__ */ React48.createElement("div", { className: "flex-1 flex items-center justify-center p-8 overflow-y-auto relative" }, /* @__PURE__ */ React48.createElement("div", { className: "text-center" }, /* @__PURE__ */ React48.createElement("p", { className: "text-white/40 text-sm tracking-widest " }, "File Preview Engine"), /* @__PURE__ */ React48.createElement("p", { className: "text-white/20 text-xs mt-2" }, "Content rendering logic will be attached here."))));
4251
4371
  };
4252
4372
 
4253
4373
  // src/components/DriveShareModal.tsx
4254
- import React48 from "react";
4374
+ import React49 from "react";
4255
4375
  var DriveShareModal = ({ items, onClose }) => {
4256
4376
  if (!items || items.length === 0) return null;
4257
- return /* @__PURE__ */ React48.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__ */ React48.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__ */ React48.createElement("div", null, /* @__PURE__ */ React48.createElement("h3", { className: "text-lg text-black tracking-tight mb-1" }, "Share Access"), /* @__PURE__ */ React48.createElement("p", { className: "text-xs text-neutral-500" }, "Managing permissions for ", items.length, " selected item(s).")), /* @__PURE__ */ React48.createElement("div", { className: "flex justify-end gap-3 mt-2" }, /* @__PURE__ */ React48.createElement(
4377
+ return /* @__PURE__ */ React49.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__ */ React49.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__ */ React49.createElement("div", null, /* @__PURE__ */ React49.createElement("h3", { className: "text-lg text-black tracking-tight mb-1" }, "Share Access"), /* @__PURE__ */ React49.createElement("p", { className: "text-xs text-neutral-500" }, "Managing permissions for ", items.length, " selected item(s).")), /* @__PURE__ */ React49.createElement("div", { className: "flex justify-end gap-3 mt-2" }, /* @__PURE__ */ React49.createElement(
4258
4378
  "button",
4259
4379
  {
4260
4380
  onClick: onClose,
4261
4381
  className: "px-6 py-2.5 text-xs text-neutral-500 hover:bg-neutral-50 rounded-full transition-colors outline-none"
4262
4382
  },
4263
4383
  "Close"
4264
- ), /* @__PURE__ */ React48.createElement(ThreeDActionButton, { onClick: onClose }, "Save Links"))));
4384
+ ), /* @__PURE__ */ React49.createElement(ThreeDActionButton, { onClick: onClose }, "Save Links"))));
4265
4385
  };
4266
4386
 
4267
4387
  // src/components/AiApproveDecline.tsx
4268
- import React49, { useState as useState30 } from "react";
4269
- import { HugeiconsIcon as HugeiconsIcon32 } from "@hugeicons/react";
4270
- import { CheckmarkCircle01Icon, CancelCircleIcon as CancelCircleIcon3, PencilEdit01Icon } from "@hugeicons/core-free-icons";
4388
+ import React50, { useState as useState31 } from "react";
4389
+ import { HugeiconsIcon as HugeiconsIcon33 } from "@hugeicons/react";
4390
+ import { CheckmarkCircle01Icon, CancelCircleIcon as CancelCircleIcon4, PencilEdit01Icon } from "@hugeicons/core-free-icons";
4271
4391
  var AiApproveDecline = ({ suggestionTitle, suggestionValue, onApprove, onDecline, onEdit }) => {
4272
- const [isEditing, setIsEditing] = useState30(false);
4273
- const [editVal, setEditVal] = useState30(typeof suggestionValue === "string" ? suggestionValue : "");
4274
- return /* @__PURE__ */ React49.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__ */ React49.createElement("div", null, /* @__PURE__ */ React49.createElement("span", { className: "text-[11px] tracking-widest text-orange-600 block mb-1 " }, "AI Suggestion: ", suggestionTitle), !isEditing ? /* @__PURE__ */ React49.createElement("div", { className: "text-sm text-black" }, suggestionValue) : /* @__PURE__ */ React49.createElement(
4392
+ const [isEditing, setIsEditing] = useState31(false);
4393
+ const [editVal, setEditVal] = useState31(typeof suggestionValue === "string" ? suggestionValue : "");
4394
+ return /* @__PURE__ */ React50.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__ */ React50.createElement("div", null, /* @__PURE__ */ React50.createElement("span", { className: "text-[11px] tracking-widest text-orange-600 block mb-1 " }, "AI Suggestion: ", suggestionTitle), !isEditing ? /* @__PURE__ */ React50.createElement("div", { className: "text-sm text-black" }, suggestionValue) : /* @__PURE__ */ React50.createElement(
4275
4395
  "input",
4276
4396
  {
4277
4397
  type: "text",
@@ -4280,23 +4400,23 @@ var AiApproveDecline = ({ suggestionTitle, suggestionValue, onApprove, onDecline
4280
4400
  className: "w-full text-sm p-2 border-b border-orange-200 bg-transparent outline-none focus:border-orange-400 transition-colors",
4281
4401
  autoFocus: true
4282
4402
  }
4283
- )), /* @__PURE__ */ React49.createElement("div", { className: "flex items-center gap-1 mt-2" }, !isEditing ? /* @__PURE__ */ React49.createElement(React49.Fragment, null, /* @__PURE__ */ React49.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__ */ React49.createElement(HugeiconsIcon32, { icon: CheckmarkCircle01Icon, size: 28 })), /* @__PURE__ */ React49.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__ */ React49.createElement(HugeiconsIcon32, { icon: CancelCircleIcon3, size: 28 })), onEdit && /* @__PURE__ */ React49.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__ */ React49.createElement(HugeiconsIcon32, { icon: PencilEdit01Icon, size: 18 }))) : /* @__PURE__ */ React49.createElement(React49.Fragment, null, /* @__PURE__ */ React49.createElement("button", { onClick: () => {
4403
+ )), /* @__PURE__ */ React50.createElement("div", { className: "flex items-center gap-1 mt-2" }, !isEditing ? /* @__PURE__ */ React50.createElement(React50.Fragment, null, /* @__PURE__ */ React50.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__ */ React50.createElement(HugeiconsIcon33, { icon: CheckmarkCircle01Icon, size: 28 })), /* @__PURE__ */ React50.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__ */ React50.createElement(HugeiconsIcon33, { icon: CancelCircleIcon4, size: 28 })), onEdit && /* @__PURE__ */ React50.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__ */ React50.createElement(HugeiconsIcon33, { icon: PencilEdit01Icon, size: 18 }))) : /* @__PURE__ */ React50.createElement(React50.Fragment, null, /* @__PURE__ */ React50.createElement("button", { onClick: () => {
4284
4404
  onEdit?.(editVal);
4285
4405
  setIsEditing(false);
4286
- }, 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__ */ React49.createElement(HugeiconsIcon32, { icon: CheckmarkCircle01Icon, size: 28 })), /* @__PURE__ */ React49.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__ */ React49.createElement(HugeiconsIcon32, { icon: CancelCircleIcon3, size: 28 })))));
4406
+ }, 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__ */ React50.createElement(HugeiconsIcon33, { icon: CheckmarkCircle01Icon, size: 28 })), /* @__PURE__ */ React50.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__ */ React50.createElement(HugeiconsIcon33, { icon: CancelCircleIcon4, size: 28 })))));
4287
4407
  };
4288
4408
 
4289
4409
  // src/components/AiStageCheck.tsx
4290
- import React50 from "react";
4291
- import { HugeiconsIcon as HugeiconsIcon33 } from "@hugeicons/react";
4292
- import { Loading03Icon as Loading03Icon16, CheckmarkCircle02Icon, CancelCircleIcon as CancelCircleIcon4 } from "@hugeicons/core-free-icons";
4410
+ import React51 from "react";
4411
+ import { HugeiconsIcon as HugeiconsIcon34 } from "@hugeicons/react";
4412
+ import { Loading03Icon as Loading03Icon17, CheckmarkCircle02Icon, CancelCircleIcon as CancelCircleIcon5 } from "@hugeicons/core-free-icons";
4293
4413
  var AiStageCheck = ({ tasks }) => {
4294
- return /* @__PURE__ */ React50.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__ */ React50.createElement("span", { className: "text-[11px] tracking-widest text-orange-600 mb-1 " }, "AI Processing"), tasks.map((task) => /* @__PURE__ */ React50.createElement("div", { key: task.id, className: "flex items-center gap-3" }, task.status === "pending" && /* @__PURE__ */ React50.createElement("div", { className: "w-4 h-4 rounded-full border border-orange-200" }), task.status === "loading" && /* @__PURE__ */ React50.createElement(HugeiconsIcon33, { icon: Loading03Icon16, size: 16, className: "animate-spin text-orange-500" }), task.status === "success" && /* @__PURE__ */ React50.createElement(HugeiconsIcon33, { icon: CheckmarkCircle02Icon, size: 16, className: "text-emerald-500" }), task.status === "error" && /* @__PURE__ */ React50.createElement(HugeiconsIcon33, { icon: CancelCircleIcon4, size: 16, className: "text-red-500" }), /* @__PURE__ */ React50.createElement("span", { className: `text-xs transition-colors ${task.status === "success" ? "text-black" : task.status === "loading" ? "text-orange-700" : "text-neutral-500"}` }, task.label))));
4414
+ return /* @__PURE__ */ React51.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__ */ React51.createElement("span", { className: "text-[11px] tracking-widest text-orange-600 mb-1 " }, "AI Processing"), tasks.map((task) => /* @__PURE__ */ React51.createElement("div", { key: task.id, className: "flex items-center gap-3" }, task.status === "pending" && /* @__PURE__ */ React51.createElement("div", { className: "w-4 h-4 rounded-full border border-orange-200" }), task.status === "loading" && /* @__PURE__ */ React51.createElement(HugeiconsIcon34, { icon: Loading03Icon17, size: 16, className: "animate-spin text-orange-500" }), task.status === "success" && /* @__PURE__ */ React51.createElement(HugeiconsIcon34, { icon: CheckmarkCircle02Icon, size: 16, className: "text-emerald-500" }), task.status === "error" && /* @__PURE__ */ React51.createElement(HugeiconsIcon34, { icon: CancelCircleIcon5, size: 16, className: "text-red-500" }), /* @__PURE__ */ React51.createElement("span", { className: `text-xs transition-colors ${task.status === "success" ? "text-black" : task.status === "loading" ? "text-orange-700" : "text-neutral-500"}` }, task.label))));
4295
4415
  };
4296
4416
 
4297
4417
  // src/components/Stagger.tsx
4298
- import React51 from "react";
4299
- import { HugeiconsIcon as HugeiconsIcon34 } from "@hugeicons/react";
4418
+ import React52 from "react";
4419
+ import { HugeiconsIcon as HugeiconsIcon35 } from "@hugeicons/react";
4300
4420
  import { Briefcase02Icon, Upload01Icon as Upload01Icon2, FileSyncIcon, CloudUploadIcon as CloudUploadIcon2 } from "@hugeicons/core-free-icons";
4301
4421
  var Stagger = ({ steps, currentStep }) => {
4302
4422
  const getIconForStep = (stepName) => {
@@ -4306,19 +4426,19 @@ var Stagger = ({ steps, currentStep }) => {
4306
4426
  if (lowerName.includes("submit")) return CloudUploadIcon2;
4307
4427
  return Briefcase02Icon;
4308
4428
  };
4309
- return /* @__PURE__ */ React51.createElement("div", { className: "w-full flex items-center justify-between relative z-0" }, /* @__PURE__ */ React51.createElement("div", { className: "absolute left-0 top-1/2 -translate-y-1/2 w-full h-px bg-neutral-100 -z-10" }), /* @__PURE__ */ React51.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) => {
4429
+ return /* @__PURE__ */ React52.createElement("div", { className: "w-full flex items-center justify-between relative z-0" }, /* @__PURE__ */ React52.createElement("div", { className: "absolute left-0 top-1/2 -translate-y-1/2 w-full h-px bg-neutral-100 -z-10" }), /* @__PURE__ */ React52.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) => {
4310
4430
  const isActive = idx === currentStep;
4311
4431
  const isPassed = idx < currentStep;
4312
4432
  const colorClass = isPassed ? "bg-emerald-500 text-white" : isActive ? "bg-neutral-100 text-neutral-500" : "bg-neutral-100 text-neutral-500";
4313
- return /* @__PURE__ */ React51.createElement("div", { key: step, className: `w-6 h-6 rounded-full flex items-center justify-center transition-colors duration-300 ${colorClass}` }, /* @__PURE__ */ React51.createElement(HugeiconsIcon34, { icon: getIconForStep(step), size: 11 }));
4433
+ return /* @__PURE__ */ React52.createElement("div", { key: step, className: `w-6 h-6 rounded-full flex items-center justify-center transition-colors duration-300 ${colorClass}` }, /* @__PURE__ */ React52.createElement(HugeiconsIcon35, { icon: getIconForStep(step), size: 11 }));
4314
4434
  }));
4315
4435
  };
4316
4436
 
4317
4437
  // src/components/UniversalRegistrationFlow.tsx
4318
- import React52, { useState as useState31, useEffect as useEffect21, useRef as useRef13 } from "react";
4438
+ import React53, { useState as useState32, useEffect as useEffect21, useRef as useRef13 } from "react";
4319
4439
  import toast9 from "react-hot-toast";
4320
- import { HugeiconsIcon as HugeiconsIcon35 } from "@hugeicons/react";
4321
- import { CheckmarkBadge01Icon as CheckmarkBadge01Icon2, Upload01Icon as Upload01Icon3, Loading03Icon as Loading03Icon17, PencilEdit01Icon as PencilEdit01Icon2, Delete02Icon as Delete02Icon3, SignatureIcon, IdentificationIcon, ArrowLeft01Icon as ArrowLeft01Icon11, HourglassIcon } from "@hugeicons/core-free-icons";
4440
+ import { HugeiconsIcon as HugeiconsIcon36 } from "@hugeicons/react";
4441
+ import { CheckmarkBadge01Icon as CheckmarkBadge01Icon2, Upload01Icon as Upload01Icon3, Loading03Icon as Loading03Icon18, PencilEdit01Icon as PencilEdit01Icon2, Delete02Icon as Delete02Icon3, SignatureIcon, IdentificationIcon, ArrowLeft01Icon as ArrowLeft01Icon11, HourglassIcon } from "@hugeicons/core-free-icons";
4322
4442
  var MACRO_STEPS = ["Details", "Documents", "Review", "Submit"];
4323
4443
  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"];
4324
4444
  var MEMBER_ROLES = ["Director Only", "Shareholder Only", "Both Director & Shareholder"];
@@ -4331,12 +4451,12 @@ var UniversalRegistrationFlow = ({
4331
4451
  onRedirectToBilling,
4332
4452
  onRedirectToApplication
4333
4453
  }) => {
4334
- const [isBooting, setIsBooting] = useState31(true);
4335
- const [macroStep, setMacroStep] = useState31(0);
4336
- const [appStatus, setAppStatus] = useState31("");
4337
- const [isAbortModalOpen, setIsAbortModalOpen] = useState31(false);
4338
- const [isAborting, setIsAborting] = useState31(false);
4339
- const [formState, setFormState] = useState31({
4454
+ const [isBooting, setIsBooting] = useState32(true);
4455
+ const [macroStep, setMacroStep] = useState32(0);
4456
+ const [appStatus, setAppStatus] = useState32("");
4457
+ const [isAbortModalOpen, setIsAbortModalOpen] = useState32(false);
4458
+ const [isAborting, setIsAborting] = useState32(false);
4459
+ const [formState, setFormState] = useState32({
4340
4460
  natureApproved: false,
4341
4461
  nameApproved: false,
4342
4462
  addressApproved: false,
@@ -4353,7 +4473,7 @@ var UniversalRegistrationFlow = ({
4353
4473
  const other1Ref = useRef13(null);
4354
4474
  const other2Ref = useRef13(null);
4355
4475
  const other3Ref = useRef13(null);
4356
- const [formData, setFormData] = useState31({
4476
+ const [formData, setFormData] = useState32({
4357
4477
  businessDesc: "",
4358
4478
  natureOfBusiness: null,
4359
4479
  proposedName: "",
@@ -4380,22 +4500,22 @@ var UniversalRegistrationFlow = ({
4380
4500
  otherDoc3Url: "",
4381
4501
  otherDoc3Meta: null
4382
4502
  });
4383
- const [activeModal, setActiveModal] = useState31({ isOpen: false, type: null, memberIndex: null });
4384
- const [iAgree, setIAgree] = useState31(false);
4385
- const [isAnalyzingNature, setIsAnalyzingNature] = useState31(false);
4386
- const [suggestedNature, setSuggestedNature] = useState31(null);
4387
- const [isCheckingQualifier, setIsCheckingQualifier] = useState31(false);
4388
- const [qualifierCheckResult, setQualifierCheckResult] = useState31(null);
4389
- const [isCheckingName, setIsCheckingName] = useState31(false);
4390
- const [nameCheckResult, setNameCheckResult] = useState31(null);
4391
- const [globalExtractingId, setGlobalExtractingId] = useState31(false);
4392
- const [globalUploadingPassport, setGlobalUploadingPassport] = useState31(false);
4393
- const [globalUploadingSignature, setGlobalUploadingSignature] = useState31(false);
4394
- const [isUploadingOther1, setIsUploadingOther1] = useState31(false);
4395
- const [isUploadingOther2, setIsUploadingOther2] = useState31(false);
4396
- const [isUploadingOther3, setIsUploadingOther3] = useState31(false);
4397
- const [aiTasks, setAiTasks] = useState31([]);
4398
- const [isSubmitting, setIsSubmitting] = useState31(false);
4503
+ const [activeModal, setActiveModal] = useState32({ isOpen: false, type: null, memberIndex: null });
4504
+ const [iAgree, setIAgree] = useState32(false);
4505
+ const [isAnalyzingNature, setIsAnalyzingNature] = useState32(false);
4506
+ const [suggestedNature, setSuggestedNature] = useState32(null);
4507
+ const [isCheckingQualifier, setIsCheckingQualifier] = useState32(false);
4508
+ const [qualifierCheckResult, setQualifierCheckResult] = useState32(null);
4509
+ const [isCheckingName, setIsCheckingName] = useState32(false);
4510
+ const [nameCheckResult, setNameCheckResult] = useState32(null);
4511
+ const [globalExtractingId, setGlobalExtractingId] = useState32(false);
4512
+ const [globalUploadingPassport, setGlobalUploadingPassport] = useState32(false);
4513
+ const [globalUploadingSignature, setGlobalUploadingSignature] = useState32(false);
4514
+ const [isUploadingOther1, setIsUploadingOther1] = useState32(false);
4515
+ const [isUploadingOther2, setIsUploadingOther2] = useState32(false);
4516
+ const [isUploadingOther3, setIsUploadingOther3] = useState32(false);
4517
+ const [aiTasks, setAiTasks] = useState32([]);
4518
+ const [isSubmitting, setIsSubmitting] = useState32(false);
4399
4519
  const isReadOnly = ["PENDING", "AWAITING_PAYMENT", "COMPLETED"].includes(appStatus);
4400
4520
  const isAnyUploading = globalExtractingId || globalUploadingPassport || globalUploadingSignature || isUploadingOther1 || isUploadingOther2 || isUploadingOther3;
4401
4521
  const baseApi = async (action, payload = {}) => {
@@ -4896,23 +5016,23 @@ var UniversalRegistrationFlow = ({
4896
5016
  const isStep0Valid = type === "company" ? formState.natureApproved && formState.nameApproved && formState.addressApproved && formState.membersDetailsApproved : formState.natureApproved && formState.nameApproved && formState.addressApproved && formState.ownerApproved;
4897
5017
  const isStep1Valid = type === "company" ? formState.membersDocsApproved : formState.idApproved && formState.passportApproved && formState.signatureApproved;
4898
5018
  const titleText = type === "company" ? "Company Incorporation (LLC)" : "Business Name Registration";
4899
- if (isBooting) return /* @__PURE__ */ React52.createElement("div", { className: "flex justify-center py-20" }, /* @__PURE__ */ React52.createElement(HugeiconsIcon35, { icon: Loading03Icon17, size: 32, className: "animate-spin text-black" }));
5019
+ if (isBooting) return /* @__PURE__ */ React53.createElement("div", { className: "flex justify-center py-20" }, /* @__PURE__ */ React53.createElement(HugeiconsIcon36, { icon: Loading03Icon18, size: 32, className: "animate-spin text-black" }));
4900
5020
  if (!["DRAFT", "QUEUED", "REJECTED"].includes(appStatus) && appStatus !== "") {
4901
- return /* @__PURE__ */ React52.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__ */ React52.createElement(React52.Fragment, null, /* @__PURE__ */ React52.createElement("div", { className: "w-20 h-20 bg-neutral-50 text-neutral-500 rounded-full flex items-center justify-center mb-2" }, /* @__PURE__ */ React52.createElement(HugeiconsIcon35, { icon: CheckmarkBadge01Icon2, size: 35 })), /* @__PURE__ */ React52.createElement("h2", { className: "text-xl text-black" }, "Registration Completed"), /* @__PURE__ */ React52.createElement("p", { className: "text-sm text-neutral-500 max-w-md" }, "Your application has been successfully verified and registered.")) : appStatus === "PENDING" ? /* @__PURE__ */ React52.createElement(React52.Fragment, null, /* @__PURE__ */ React52.createElement("div", { className: "w-20 h-20 bg-neutral-50 text-neutral-500 rounded-full flex items-center justify-center mb-2" }, /* @__PURE__ */ React52.createElement(HugeiconsIcon35, { icon: HourglassIcon, size: 35, className: "animate-spin" })), /* @__PURE__ */ React52.createElement("h2", { className: "text-xl text-black" }, "Application is Pending"), /* @__PURE__ */ React52.createElement("p", { className: "text-sm text-neutral-500 max-w-md" }, "Your application is currently pending review.")) : appStatus === "AWAITING_PAYMENT" ? /* @__PURE__ */ React52.createElement(React52.Fragment, null, /* @__PURE__ */ React52.createElement("div", { className: "w-20 h-20 bg-amber-50 text-amber-500 rounded-full flex items-center justify-center mb-2" }, /* @__PURE__ */ React52.createElement(HugeiconsIcon35, { icon: HourglassIcon, size: 35, className: "animate-pulse" })), /* @__PURE__ */ React52.createElement("h2", { className: "text-xl text-black" }, "Awaiting Payment"), /* @__PURE__ */ React52.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__ */ React52.createElement("div", { className: "mt-6 flex flex-col items-center gap-3" }, /* @__PURE__ */ React52.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__ */ React52.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__ */ React52.createElement(React52.Fragment, null, /* @__PURE__ */ React52.createElement("div", { className: "w-20 h-20 bg-neutral-50 text-neutral-500 rounded-full flex items-center justify-center mb-2" }, /* @__PURE__ */ React52.createElement(HugeiconsIcon35, { icon: HourglassIcon, size: 35 })), /* @__PURE__ */ React52.createElement("h2", { className: "text-xl text-black" }, "Application Submitted"), /* @__PURE__ */ React52.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__ */ React52.createElement("div", { className: "mt-6 flex flex-col items-center gap-3" }, /* @__PURE__ */ React52.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__ */ React52.createElement("div", { className: "fixed inset-0 z-110 flex items-center justify-center p-4" }, /* @__PURE__ */ React52.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => !isAborting && setIsAbortModalOpen(false) }), /* @__PURE__ */ React52.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__ */ React52.createElement("div", { className: "p-6 flex flex-col gap-4 text-center" }, /* @__PURE__ */ React52.createElement("h3", { className: "text-[17px] text-black tracking-tight" }, "Abort Application?"), /* @__PURE__ */ React52.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__ */ React52.createElement("div", { className: "w-full flex " }, /* @__PURE__ */ React52.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__ */ React52.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")))));
5021
+ return /* @__PURE__ */ React53.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__ */ React53.createElement(React53.Fragment, null, /* @__PURE__ */ React53.createElement("div", { className: "w-20 h-20 bg-neutral-50 text-neutral-500 rounded-full flex items-center justify-center mb-2" }, /* @__PURE__ */ React53.createElement(HugeiconsIcon36, { icon: CheckmarkBadge01Icon2, size: 35 })), /* @__PURE__ */ React53.createElement("h2", { className: "text-xl text-black" }, "Registration Completed"), /* @__PURE__ */ React53.createElement("p", { className: "text-sm text-neutral-500 max-w-md" }, "Your application has been successfully verified and registered.")) : appStatus === "PENDING" ? /* @__PURE__ */ React53.createElement(React53.Fragment, null, /* @__PURE__ */ React53.createElement("div", { className: "w-20 h-20 bg-neutral-50 text-neutral-500 rounded-full flex items-center justify-center mb-2" }, /* @__PURE__ */ React53.createElement(HugeiconsIcon36, { icon: HourglassIcon, size: 35, className: "animate-spin" })), /* @__PURE__ */ React53.createElement("h2", { className: "text-xl text-black" }, "Application is Pending"), /* @__PURE__ */ React53.createElement("p", { className: "text-sm text-neutral-500 max-w-md" }, "Your application is currently pending review.")) : appStatus === "AWAITING_PAYMENT" ? /* @__PURE__ */ React53.createElement(React53.Fragment, null, /* @__PURE__ */ React53.createElement("div", { className: "w-20 h-20 bg-amber-50 text-amber-500 rounded-full flex items-center justify-center mb-2" }, /* @__PURE__ */ React53.createElement(HugeiconsIcon36, { icon: HourglassIcon, size: 35, className: "animate-pulse" })), /* @__PURE__ */ React53.createElement("h2", { className: "text-xl text-black" }, "Awaiting Payment"), /* @__PURE__ */ React53.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__ */ React53.createElement("div", { className: "mt-6 flex flex-col items-center gap-3" }, /* @__PURE__ */ React53.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__ */ React53.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__ */ React53.createElement(React53.Fragment, null, /* @__PURE__ */ React53.createElement("div", { className: "w-20 h-20 bg-neutral-50 text-neutral-500 rounded-full flex items-center justify-center mb-2" }, /* @__PURE__ */ React53.createElement(HugeiconsIcon36, { icon: HourglassIcon, size: 35 })), /* @__PURE__ */ React53.createElement("h2", { className: "text-xl text-black" }, "Application Submitted"), /* @__PURE__ */ React53.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__ */ React53.createElement("div", { className: "mt-6 flex flex-col items-center gap-3" }, /* @__PURE__ */ React53.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__ */ React53.createElement("div", { className: "fixed inset-0 z-110 flex items-center justify-center p-4" }, /* @__PURE__ */ React53.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => !isAborting && setIsAbortModalOpen(false) }), /* @__PURE__ */ React53.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__ */ React53.createElement("div", { className: "p-6 flex flex-col gap-4 text-center" }, /* @__PURE__ */ React53.createElement("h3", { className: "text-[17px] text-black tracking-tight" }, "Abort Application?"), /* @__PURE__ */ React53.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__ */ React53.createElement("div", { className: "w-full flex " }, /* @__PURE__ */ React53.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__ */ React53.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")))));
4902
5022
  }
4903
- return /* @__PURE__ */ React52.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__ */ React52.createElement("div", { className: "flex flex-col gap-8" }, /* @__PURE__ */ React52.createElement("div", null, /* @__PURE__ */ React52.createElement("h2", { className: "text-xl text-black tracking-tight mb-1" }, titleText), /* @__PURE__ */ React52.createElement("p", { className: "text-sm text-neutral-500" }, "Answer the questions below to build your official application.")), /* @__PURE__ */ React52.createElement("div", { className: "px-2" }, /* @__PURE__ */ React52.createElement(Stagger, { steps: MACRO_STEPS, currentStep: macroStep }))), /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col gap-8" }, macroStep === 0 && /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col gap-8 animate-in fade-in" }, /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ React52.createElement("div", { className: "flex items-center text-black" }, /* @__PURE__ */ React52.createElement("h3", { className: "text-sm " }, "What does your ", type === "company" ? "company" : "business", " do?")), !formState.natureApproved ? /* @__PURE__ */ React52.createElement(React52.Fragment, null, /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col gap-3 " }, /* @__PURE__ */ React52.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__ */ React52.createElement(ThreeDActionButton, { onClick: handleAnalyzeNature, disabled: formData.businessDesc.length < 5 || isAnalyzingNature || isReadOnly, isLoading: isAnalyzingNature, className: "w-fit" }, "Analyze Nature")), isAnalyzingNature && /* @__PURE__ */ React52.createElement("div", { className: " mt-2" }, /* @__PURE__ */ React52.createElement(AiStageCheck, { tasks: [{ id: "1", label: "Matching with Official Categories...", status: "loading" }] })), suggestedNature && /* @__PURE__ */ React52.createElement("div", { className: " mt-2 animate-in fade-in" }, /* @__PURE__ */ React52.createElement(AiApproveDecline, { suggestionTitle: "Classification Found", suggestionValue: /* @__PURE__ */ React52.createElement("div", null, /* @__PURE__ */ React52.createElement("p", { className: " text-black" }, suggestedNature.specificLabel), /* @__PURE__ */ React52.createElement("p", { className: "text-xs text-neutral-400 mt-1" }, "Category: ", suggestedNature.categoryLabel)), onApprove: () => {
5023
+ return /* @__PURE__ */ React53.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__ */ React53.createElement("div", { className: "flex flex-col gap-8" }, /* @__PURE__ */ React53.createElement("div", null, /* @__PURE__ */ React53.createElement("h2", { className: "text-xl text-black tracking-tight mb-1" }, titleText), /* @__PURE__ */ React53.createElement("p", { className: "text-sm text-neutral-500" }, "Answer the questions below to build your official application.")), /* @__PURE__ */ React53.createElement("div", { className: "px-2" }, /* @__PURE__ */ React53.createElement(Stagger, { steps: MACRO_STEPS, currentStep: macroStep }))), /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col gap-8" }, macroStep === 0 && /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col gap-8 animate-in fade-in" }, /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ React53.createElement("div", { className: "flex items-center text-black" }, /* @__PURE__ */ React53.createElement("h3", { className: "text-sm " }, "What does your ", type === "company" ? "company" : "business", " do?")), !formState.natureApproved ? /* @__PURE__ */ React53.createElement(React53.Fragment, null, /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col gap-3 " }, /* @__PURE__ */ React53.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__ */ React53.createElement(ThreeDActionButton, { onClick: handleAnalyzeNature, disabled: formData.businessDesc.length < 5 || isAnalyzingNature || isReadOnly, isLoading: isAnalyzingNature, className: "w-fit" }, "Analyze Nature")), isAnalyzingNature && /* @__PURE__ */ React53.createElement("div", { className: " mt-2" }, /* @__PURE__ */ React53.createElement(AiStageCheck, { tasks: [{ id: "1", label: "Matching with Official Categories...", status: "loading" }] })), suggestedNature && /* @__PURE__ */ React53.createElement("div", { className: " mt-2 animate-in fade-in" }, /* @__PURE__ */ React53.createElement(AiApproveDecline, { suggestionTitle: "Classification Found", suggestionValue: /* @__PURE__ */ React53.createElement("div", null, /* @__PURE__ */ React53.createElement("p", { className: " text-black" }, suggestedNature.specificLabel), /* @__PURE__ */ React53.createElement("p", { className: "text-xs text-neutral-400 mt-1" }, "Category: ", suggestedNature.categoryLabel)), onApprove: () => {
4904
5024
  const newForm = { ...formData, natureOfBusiness: suggestedNature };
4905
5025
  setFormData(newForm);
4906
5026
  approveSection("natureApproved", newForm);
4907
- }, onDecline: () => setSuggestedNature(null) }))) : /* @__PURE__ */ React52.createElement("div", { className: " flex items-center justify-between" }, /* @__PURE__ */ React52.createElement("div", { className: "pr-4" }, /* @__PURE__ */ React52.createElement("p", { className: "text-sm text-black" }, formData.natureOfBusiness?.specificLabel), /* @__PURE__ */ React52.createElement("p", { className: "text-xs text-neutral-400 mt-1" }, formData.businessDesc)), !isReadOnly && /* @__PURE__ */ React52.createElement("button", { onClick: () => editSection("natureApproved"), className: "p-2 text-neutral-400 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ React52.createElement(HugeiconsIcon35, { icon: PencilEdit01Icon2, size: 16 })))), formState.natureApproved && /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col gap-4 pt-6 animate-in slide-in-from-top-4 duration-500" }, /* @__PURE__ */ React52.createElement("div", { className: "flex items-center text-black" }, /* @__PURE__ */ React52.createElement("h3", { className: "text-sm " }, "What name would you like to register?")), /* @__PURE__ */ React52.createElement("p", { className: "text-xs text-neutral-400 -mt-2" }, "Provide two options. We will verify availability against the official registry."), !formState.nameApproved ? /* @__PURE__ */ React52.createElement(React52.Fragment, null, /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ React52.createElement(TextInput, { label: "Proposed Name 1 (Preferred)", value: formData.proposedName, onChange: (v) => setFormData({ ...formData, proposedName: v }), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React52.createElement(TextInput, { label: "Proposed Name 2 (Alternative)", value: formData.proposedName2, onChange: (v) => setFormData({ ...formData, proposedName2: v }), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React52.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__ */ React52.createElement("div", { className: " mt-2" }, /* @__PURE__ */ React52.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__ */ React52.createElement("div", { className: "mt-2 animate-in fade-in" }, /* @__PURE__ */ React52.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__ */ React52.createElement("div", null, /* @__PURE__ */ React52.createElement("span", { className: "text-[11px] tracking-widest text-orange-600 block mb-1" }, "AI Suggestion: Structural Qualifier Missing"), /* @__PURE__ */ React52.createElement("p", { className: "text-sm text-black mb-3" }, "Nigerian registrations require a structural qualifier to be approved."), /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col gap-2" }, (qualifierCheckResult.suggestions || []).map((alt, i) => /* @__PURE__ */ React52.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__ */ React52.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__ */ React52.createElement("div", { className: " mt-2 animate-in fade-in" }, nameCheckResult.status === "APPROVED" || nameCheckResult.status === "APPROVED_WARNING" || nameCheckResult.status === "SKIPPED" ? /* @__PURE__ */ React52.createElement(AiApproveDecline, { suggestionTitle: nameCheckResult.status === "APPROVED" ? "Name Available!" : "Fallback Approval", suggestionValue: /* @__PURE__ */ React52.createElement("div", null, /* @__PURE__ */ React52.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__ */ React52.createElement("p", { className: "text-xs text-neutral-600" }, nameCheckResult.message), /* @__PURE__ */ React52.createElement("p", { className: "text-xs text-neutral-600 mt-2 " }, "Proposed Option: ", nameCheckResult.approvedOption)), onApprove: () => {
5027
+ }, onDecline: () => setSuggestedNature(null) }))) : /* @__PURE__ */ React53.createElement("div", { className: " flex items-center justify-between" }, /* @__PURE__ */ React53.createElement("div", { className: "pr-4" }, /* @__PURE__ */ React53.createElement("p", { className: "text-sm text-black" }, formData.natureOfBusiness?.specificLabel), /* @__PURE__ */ React53.createElement("p", { className: "text-xs text-neutral-400 mt-1" }, formData.businessDesc)), !isReadOnly && /* @__PURE__ */ React53.createElement("button", { onClick: () => editSection("natureApproved"), className: "p-2 text-neutral-400 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ React53.createElement(HugeiconsIcon36, { icon: PencilEdit01Icon2, size: 16 })))), formState.natureApproved && /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col gap-4 pt-6 animate-in slide-in-from-top-4 duration-500" }, /* @__PURE__ */ React53.createElement("div", { className: "flex items-center text-black" }, /* @__PURE__ */ React53.createElement("h3", { className: "text-sm " }, "What name would you like to register?")), /* @__PURE__ */ React53.createElement("p", { className: "text-xs text-neutral-400 -mt-2" }, "Provide two options. We will verify availability against the official registry."), !formState.nameApproved ? /* @__PURE__ */ React53.createElement(React53.Fragment, null, /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ React53.createElement(TextInput, { label: "Proposed Name 1 (Preferred)", value: formData.proposedName, onChange: (v) => setFormData({ ...formData, proposedName: v }), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React53.createElement(TextInput, { label: "Proposed Name 2 (Alternative)", value: formData.proposedName2, onChange: (v) => setFormData({ ...formData, proposedName2: v }), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React53.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__ */ React53.createElement("div", { className: " mt-2" }, /* @__PURE__ */ React53.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__ */ React53.createElement("div", { className: "mt-2 animate-in fade-in" }, /* @__PURE__ */ React53.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__ */ React53.createElement("div", null, /* @__PURE__ */ React53.createElement("span", { className: "text-[11px] tracking-widest text-orange-600 block mb-1" }, "AI Suggestion: Structural Qualifier Missing"), /* @__PURE__ */ React53.createElement("p", { className: "text-sm text-black mb-3" }, "Nigerian registrations require a structural qualifier to be approved."), /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col gap-2" }, (qualifierCheckResult.suggestions || []).map((alt, i) => /* @__PURE__ */ React53.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__ */ React53.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__ */ React53.createElement("div", { className: " mt-2 animate-in fade-in" }, nameCheckResult.status === "APPROVED" || nameCheckResult.status === "APPROVED_WARNING" || nameCheckResult.status === "SKIPPED" ? /* @__PURE__ */ React53.createElement(AiApproveDecline, { suggestionTitle: nameCheckResult.status === "APPROVED" ? "Name Available!" : "Fallback Approval", suggestionValue: /* @__PURE__ */ React53.createElement("div", null, /* @__PURE__ */ React53.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__ */ React53.createElement("p", { className: "text-xs text-neutral-600" }, nameCheckResult.message), /* @__PURE__ */ React53.createElement("p", { className: "text-xs text-neutral-600 mt-2 " }, "Proposed Option: ", nameCheckResult.approvedOption)), onApprove: () => {
4908
5028
  const newForm = { ...formData, approvedName: nameCheckResult.approvedOption };
4909
5029
  setFormData(newForm);
4910
5030
  approveSection("nameApproved", newForm);
4911
- }, onDecline: () => setNameCheckResult(null) }) : /* @__PURE__ */ React52.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__ */ React52.createElement("div", null, /* @__PURE__ */ React52.createElement("span", { className: "text-[11px] tracking-widest text-red-600 block mb-1" }, "Registry Conflict Detected"), /* @__PURE__ */ React52.createElement("p", { className: "text-sm text-black mb-3" }, nameCheckResult.message), /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col gap-2" }, (nameCheckResult.alternatives || []).map((alt, i) => /* @__PURE__ */ React52.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__ */ React52.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__ */ React52.createElement("div", { className: " flex items-center justify-between" }, /* @__PURE__ */ React52.createElement("div", null, /* @__PURE__ */ React52.createElement("p", { className: "text-sm text-black" }, formData.approvedName), /* @__PURE__ */ React52.createElement("p", { className: "text-xs text-emerald-600 mt-1" }, "Verified against registry")), !isReadOnly && /* @__PURE__ */ React52.createElement("button", { onClick: () => editSection("nameApproved"), className: "p-2 text-neutral-400 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ React52.createElement(HugeiconsIcon35, { icon: PencilEdit01Icon2, size: 16 })))), formState.nameApproved && /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col gap-4 pt-6 animate-in slide-in-from-top-4 duration-500" }, /* @__PURE__ */ React52.createElement("div", { className: "flex items-center text-black" }, /* @__PURE__ */ React52.createElement("h3", { className: "text-sm " }, "Where is your head office located?")), !formState.addressApproved ? /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col gap-4 " }, /* @__PURE__ */ React52.createElement(TextInput, { label: "Street Address", value: formData.address, onChange: (v) => setFormData({ ...formData, address: v }), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React52.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ React52.createElement(TextInput, { label: "City", value: formData.city, onChange: (v) => setFormData({ ...formData, city: v }), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React52.createElement(TextInput, { label: "State", value: formData.state, readOnly: true, onClick: () => !isReadOnly && setActiveModal({ isOpen: true, type: "state", memberIndex: null, isGlobalState: true }), placeholder: "Select State", onChange: () => {
4912
- }, disabled: isReadOnly || isSubmitting })), /* @__PURE__ */ React52.createElement(ThreeDActionButton, { onClick: () => approveSection("addressApproved"), disabled: !formData.address || !formData.city || !formData.state || isReadOnly, className: "w-fit mt-2" }, "Confirm Address")) : /* @__PURE__ */ React52.createElement("div", { className: " flex items-center justify-between" }, /* @__PURE__ */ React52.createElement("p", { className: "text-sm text-neutral-500" }, formData.address, ", ", formData.city, ", ", formData.state), !isReadOnly && /* @__PURE__ */ React52.createElement("button", { onClick: () => editSection("addressApproved"), className: "p-2 text-neutral-400 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ React52.createElement(HugeiconsIcon35, { icon: PencilEdit01Icon2, size: 16 })))), formState.addressApproved && type === "company" && /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col gap-4 pt-6 animate-in slide-in-from-top-4 duration-500" }, /* @__PURE__ */ React52.createElement("div", { className: "flex items-center justify-between gap-2 text-black" }, /* @__PURE__ */ React52.createElement("div", { className: "flex items-center" }, /* @__PURE__ */ React52.createElement("h3", { className: "text-sm " }, "Directors & Shareholders")), !formState.membersDetailsApproved && /* @__PURE__ */ React52.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__ */ React52.createElement("p", { className: "text-xs text-neutral-400 -mt-2" }, "Provide details for all individuals. Ensure total share percentage equals 100%."), !formState.membersDetailsApproved ? /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col gap-6 " }, formData.members.map((member, i) => /* @__PURE__ */ React52.createElement("div", { key: member.id, className: "flex flex-col gap-4 border border-neutral-100 p-5 rounded-2xl bg-neutral-50/30" }, /* @__PURE__ */ React52.createElement("div", { className: "flex justify-between items-center mb-1" }, /* @__PURE__ */ React52.createElement("span", { className: "text-[11px] tracking-widest text-neutral-400" }, "Member ", i + 1), formData.members.length > 1 && !isReadOnly && /* @__PURE__ */ React52.createElement("button", { onClick: () => removeCompanyMember(i), className: "text-red-500 text-xs hover:text-red-600" }, "Remove")), /* @__PURE__ */ React52.createElement("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4" }, /* @__PURE__ */ React52.createElement(TextInput, { label: "Role", value: member.role, readOnly: true, onClick: () => !isReadOnly && setActiveModal({ isOpen: true, type: "role", memberIndex: i }), onChange: () => {
4913
- }, disabled: isReadOnly || isSubmitting }), member.role !== "Director Only" && /* @__PURE__ */ React52.createElement(NumberInput, { label: "Share Percentage (%)", value: member.sharePercentage, onChange: (v) => updateCompanyMemberInfo(i, "sharePercentage", v), disabled: isReadOnly || isSubmitting })), /* @__PURE__ */ React52.createElement(TextInput, { label: "Full Name", value: member.fullName, onChange: (v) => updateCompanyMemberInfo(i, "fullName", v), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React52.createElement("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4" }, /* @__PURE__ */ React52.createElement(NumberInput, { label: "Phone Number", value: member.phone, onChange: (v) => updateCompanyMemberInfo(i, "phone", v), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React52.createElement(TextInput, { label: "Email Address", value: member.email, onChange: (v) => updateCompanyMemberInfo(i, "email", v), disabled: isReadOnly || isSubmitting })), /* @__PURE__ */ React52.createElement(TextInput, { label: "Nationality", value: member.nationality, readOnly: true, onClick: () => !isReadOnly && setActiveModal({ isOpen: true, type: "nationality", memberIndex: i }), onChange: () => {
4914
- }, disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React52.createElement(TextInput, { label: "Residential Address", value: member.address, onChange: (v) => updateCompanyMemberInfo(i, "address", v), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React52.createElement("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4" }, /* @__PURE__ */ React52.createElement(TextInput, { label: "City", value: member.city, onChange: (v) => updateCompanyMemberInfo(i, "city", v), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React52.createElement(TextInput, { label: "State", value: member.state, readOnly: true, onClick: () => !isReadOnly && setActiveModal({ isOpen: true, type: "state", memberIndex: i }), onChange: () => {
4915
- }, disabled: isReadOnly || isSubmitting })))), /* @__PURE__ */ React52.createElement("div", { className: "flex items-center justify-between mt-2" }, !isReadOnly && /* @__PURE__ */ React52.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__ */ React52.createElement(ThreeDActionButton, { onClick: () => approveSection("membersDetailsApproved"), disabled: !areCompanyMembersValid() || isReadOnly, className: "w-fit" }, "Confirm Members"))) : /* @__PURE__ */ React52.createElement("div", { className: " flex items-center justify-between" }, /* @__PURE__ */ React52.createElement("div", null, /* @__PURE__ */ React52.createElement("p", { className: "text-sm text-black" }, formData.members.length, " Member(s) Registered"), /* @__PURE__ */ React52.createElement("p", { className: "text-xs text-neutral-500 mt-1" }, "Total Shares: 100% Verified.")), !isReadOnly && /* @__PURE__ */ React52.createElement("button", { onClick: () => editSection("membersDetailsApproved"), className: "p-2 text-neutral-400 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ React52.createElement(HugeiconsIcon35, { icon: PencilEdit01Icon2, size: 16 })))), formState.addressApproved && type === "business" && /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col gap-4 pt-6 animate-in slide-in-from-top-4 duration-500" }, /* @__PURE__ */ React52.createElement("div", { className: "flex items-center text-black" }, /* @__PURE__ */ React52.createElement("h3", { className: "text-sm " }, "Who owns the business?")), /* @__PURE__ */ React52.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__ */ React52.createElement("div", { className: "flex flex-col gap-4 " }, /* @__PURE__ */ React52.createElement(TextInput, { label: "Full Name", value: formData.ownerName, onChange: (v) => setFormData({ ...formData, ownerName: v }), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React52.createElement("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4" }, /* @__PURE__ */ React52.createElement(NumberInput, { label: "Phone Number", value: formData.ownerPhone, onChange: (v) => setFormData({ ...formData, ownerPhone: v }), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React52.createElement(TextInput, { label: "Email Address", value: formData.ownerEmail, onChange: (v) => setFormData({ ...formData, ownerEmail: v }), disabled: isReadOnly || isSubmitting })), /* @__PURE__ */ React52.createElement(ThreeDActionButton, { onClick: () => approveSection("ownerApproved"), disabled: !formData.ownerName || !formData.ownerPhone || !formData.ownerEmail || isReadOnly, className: "w-fit mt-2" }, "Confirm Owner Details")) : /* @__PURE__ */ React52.createElement("div", { className: " flex items-center justify-between" }, /* @__PURE__ */ React52.createElement("div", null, /* @__PURE__ */ React52.createElement("p", { className: "text-sm text-black" }, formData.ownerName), /* @__PURE__ */ React52.createElement("p", { className: "text-xs text-neutral-500 mt-1" }, formData.ownerEmail, " \u2022 ", formData.ownerPhone)), !isReadOnly && /* @__PURE__ */ React52.createElement("button", { onClick: () => editSection("ownerApproved"), className: "p-2 text-neutral-400 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ React52.createElement(HugeiconsIcon35, { icon: PencilEdit01Icon2, size: 16 })))), /* @__PURE__ */ React52.createElement("div", { className: "flex items-center justify-between mt-8 pt-6 " }, /* @__PURE__ */ React52.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__ */ React52.createElement(HugeiconsIcon35, { icon: ArrowLeft01Icon11, size: 14 }), " Close"), /* @__PURE__ */ React52.createElement(ThreeDActionButton, { onClick: handleNext, disabled: !isStep0Valid, className: "w-fit shrink-0" }, "Next Step"))), macroStep === 1 && /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col gap-8 animate-in fade-in" }, type === "company" ? /* @__PURE__ */ React52.createElement(React52.Fragment, null, /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col gap-2" }, /* @__PURE__ */ React52.createElement("h3", { className: "text-sm text-black" }, "Member Identity Documents"), /* @__PURE__ */ React52.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__ */ React52.createElement("div", { className: "flex flex-col gap-6" }, formData.members.map((member, i) => /* @__PURE__ */ React52.createElement("div", { key: member.id, className: "flex flex-col gap-4" }, /* @__PURE__ */ React52.createElement("span", { className: "text-[11px] tracking-widest text-black mb-1" }, member.fullName || `Member ${i + 1}`, " ", /* @__PURE__ */ React52.createElement("span", { className: "text-neutral-400 ml-2" }, "(", member.role, ")")), /* @__PURE__ */ React52.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__ */ React52.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__ */ React52.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__ */ React52.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__ */ React52.createElement(HugeiconsIcon35, { icon: Upload01Icon3, size: 18, className: "text-neutral-400" }), " Upload Valid ID (NIN, License, Voter's Card)") : globalExtractingId && !member.idExtractedData ? /* @__PURE__ */ React52.createElement("div", { className: " mt-2" }, /* @__PURE__ */ React52.createElement(AiStageCheck, { tasks: aiTasks })) : member.idExtractedData ? /* @__PURE__ */ React52.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__ */ React52.createElement("div", null, /* @__PURE__ */ React52.createElement("span", { className: "text-[11px] tracking-widest text-orange-600 block mb-2" }, "Review Extracted ID"), /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ React52.createElement(TextInput, { label: "Full Name on ID", value: member.idExtractedData.fullName, onChange: (v) => updateCompanyMemberInfo(i, "idExtractedData", { ...member.idExtractedData, fullName: v }), disabled: isReadOnly || isAnyUploading }), /* @__PURE__ */ React52.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ React52.createElement(TextInput, { label: "ID Number", value: member.idExtractedData.idNumber, onChange: (v) => updateCompanyMemberInfo(i, "idExtractedData", { ...member.idExtractedData, idNumber: v }), disabled: isReadOnly || isAnyUploading }), /* @__PURE__ */ React52.createElement(TextInput, { label: "Date of Birth", value: member.idExtractedData.dob, onChange: (v) => updateCompanyMemberInfo(i, "idExtractedData", { ...member.idExtractedData, dob: v }), disabled: isReadOnly || isAnyUploading })))), /* @__PURE__ */ React52.createElement("div", { className: "flex items-center gap-2 mt-2" }, !isReadOnly && /* @__PURE__ */ React52.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__ */ React52.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__ */ React52.createElement(HugeiconsIcon35, { icon: Upload01Icon3, size: 18, className: "text-neutral-400" }), " Upload Passport Photo") : globalUploadingPassport && !member.passportFileUrl ? /* @__PURE__ */ React52.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__ */ React52.createElement(HugeiconsIcon35, { icon: Loading03Icon17, size: 18, className: "animate-spin text-black" }), " Uploading Passport...") : member.passportFileUrl ? /* @__PURE__ */ React52.createElement("div", { className: "flex items-center justify-between p-4 bg-emerald-50 rounded-full text-emerald-800 text-sm w-full" }, /* @__PURE__ */ React52.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React52.createElement(HugeiconsIcon35, { icon: IdentificationIcon, size: 18 }), " Passport Uploaded"), !isReadOnly && /* @__PURE__ */ React52.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__ */ React52.createElement(HugeiconsIcon35, { icon: Delete02Icon3, size: 16 }))) : null, !member.signatureFileUrl && !globalUploadingSignature ? /* @__PURE__ */ React52.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__ */ React52.createElement(HugeiconsIcon35, { icon: Upload01Icon3, size: 18, className: "text-neutral-400" }), " Upload Signature") : globalUploadingSignature && !member.signatureFileUrl ? /* @__PURE__ */ React52.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__ */ React52.createElement(HugeiconsIcon35, { icon: Loading03Icon17, size: 18, className: "animate-spin text-black" }), " Uploading Signature...") : member.signatureFileUrl ? /* @__PURE__ */ React52.createElement("div", { className: "flex items-center justify-between p-4 bg-emerald-50 rounded-full text-emerald-800 text-sm w-full" }, /* @__PURE__ */ React52.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React52.createElement(HugeiconsIcon35, { icon: SignatureIcon, size: 18 }), " Signature Uploaded"), !isReadOnly && /* @__PURE__ */ React52.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__ */ React52.createElement(HugeiconsIcon35, { icon: Delete02Icon3, size: 16 }))) : null)), /* @__PURE__ */ React52.createElement("div", { className: "flex justify-end" }, /* @__PURE__ */ React52.createElement(ThreeDActionButton, { onClick: () => approveSection("membersDocsApproved"), disabled: !areCompanyMemberDocsValid() || isReadOnly || isAnyUploading, className: "w-fit" }, "Confirm All Documents"))) : /* @__PURE__ */ React52.createElement("div", { className: " flex items-center justify-between bg-emerald-50 p-6 rounded-full" }, /* @__PURE__ */ React52.createElement("div", null, /* @__PURE__ */ React52.createElement("p", { className: "text-sm text-emerald-800" }, "Documents Uploaded"), /* @__PURE__ */ React52.createElement("p", { className: "text-xs text-emerald-600 mt-1" }, "Data safely extracted.")), !isReadOnly && /* @__PURE__ */ React52.createElement("button", { onClick: () => editSection("membersDocsApproved"), className: "p-2 text-emerald-700 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ React52.createElement(HugeiconsIcon35, { icon: PencilEdit01Icon2, size: 16 })))) : /* @__PURE__ */ React52.createElement(React52.Fragment, null, /* @__PURE__ */ React52.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__ */ React52.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__ */ React52.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__ */ React52.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ React52.createElement("div", { className: "flex items-center gap-2 text-black" }, /* @__PURE__ */ React52.createElement("h3", { className: "text-sm " }, "Upload Means of Identification")), /* @__PURE__ */ React52.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__ */ React52.createElement(React52.Fragment, null, /* @__PURE__ */ React52.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__ */ React52.createElement(HugeiconsIcon35, { icon: Upload01Icon3, size: 24, className: "text-neutral-400" }), /* @__PURE__ */ React52.createElement("span", { className: "text-xs" }, "Select ID Image to Upload")), globalExtractingId && /* @__PURE__ */ React52.createElement("div", { className: " mt-2" }, /* @__PURE__ */ React52.createElement(AiStageCheck, { tasks: aiTasks })), formData.idExtractedData && /* @__PURE__ */ React52.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__ */ React52.createElement("div", null, /* @__PURE__ */ React52.createElement("span", { className: "text-[11px] tracking-widest text-orange-600 block mb-2" }, "Review AI Extracted Data"), /* @__PURE__ */ React52.createElement("p", { className: "text-xs text-neutral-500 mb-4" }, "Please verify the extracted information and correct any OCR mistakes before approving."), /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ React52.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__ */ React52.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ React52.createElement(TextInput, { label: "ID Number", value: formData.idExtractedData.idNumber, onChange: (v) => setFormData((f) => ({ ...f, idExtractedData: { ...f.idExtractedData, idNumber: v } })), disabled: isReadOnly || isAnyUploading }), /* @__PURE__ */ React52.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__ */ React52.createElement("div", { className: "flex items-center gap-2 mt-2" }, /* @__PURE__ */ React52.createElement(ThreeDActionButton, { onClick: () => approveSection("idApproved"), disabled: isAnyUploading || isReadOnly, className: "w-fit shrink-0" }, "Approve Data"), !isReadOnly && /* @__PURE__ */ React52.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__ */ React52.createElement("div", { className: " flex items-center justify-between bg-emerald-50 p-6 rounded-full" }, /* @__PURE__ */ React52.createElement("div", null, /* @__PURE__ */ React52.createElement("p", { className: "text-sm text-emerald-800" }, "ID Document Verified"), /* @__PURE__ */ React52.createElement("p", { className: "text-xs text-emerald-600 mt-1" }, "Data safely extracted and stored.")), !isReadOnly && /* @__PURE__ */ React52.createElement("button", { onClick: () => editSection("idApproved"), className: "p-2 text-emerald-700 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ React52.createElement(HugeiconsIcon35, { icon: PencilEdit01Icon2, size: 16 })))), /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col gap-4 pt-6 animate-in slide-in-from-top-4 duration-500" }, /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col gap-3 " }, !formState.passportApproved && !globalUploadingPassport ? /* @__PURE__ */ React52.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__ */ React52.createElement(HugeiconsIcon35, { icon: Upload01Icon3, size: 18, className: "text-neutral-400" }), " Upload Passport Photo") : globalUploadingPassport && !formData.passportFileUrl ? /* @__PURE__ */ React52.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__ */ React52.createElement(HugeiconsIcon35, { icon: Loading03Icon17, size: 18, className: "animate-spin text-black" }), " Uploading Passport...") : /* @__PURE__ */ React52.createElement("div", { className: "flex items-center justify-between p-4 bg-emerald-50 rounded-full text-emerald-800 text-sm w-full" }, /* @__PURE__ */ React52.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React52.createElement(HugeiconsIcon35, { icon: IdentificationIcon, size: 18 }), " Passport Uploaded"), !isReadOnly && /* @__PURE__ */ React52.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__ */ React52.createElement(HugeiconsIcon35, { icon: Delete02Icon3, size: 16 }))), !formState.signatureApproved && !globalUploadingSignature ? /* @__PURE__ */ React52.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__ */ React52.createElement(HugeiconsIcon35, { icon: Upload01Icon3, size: 18, className: "text-neutral-400" }), " Upload Signature") : globalUploadingSignature && !formData.signatureFileUrl ? /* @__PURE__ */ React52.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__ */ React52.createElement(HugeiconsIcon35, { icon: Loading03Icon17, size: 18, className: "animate-spin text-black" }), " Uploading Signature...") : /* @__PURE__ */ React52.createElement("div", { className: "flex items-center justify-between p-4 bg-emerald-50 rounded-full text-emerald-800 text-sm w-full" }, /* @__PURE__ */ React52.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React52.createElement(HugeiconsIcon35, { icon: SignatureIcon, size: 18 }), " Signature Uploaded"), !isReadOnly && /* @__PURE__ */ React52.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__ */ React52.createElement(HugeiconsIcon35, { icon: Delete02Icon3, size: 16 })))))), /* @__PURE__ */ React52.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__ */ React52.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__ */ React52.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__ */ React52.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__ */ React52.createElement("div", { className: "flex flex-col gap-1 mb-2" }, /* @__PURE__ */ React52.createElement("h3", { className: "text-sm text-black" }, "Additional Documents (Optional)"), /* @__PURE__ */ React52.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__ */ React52.createElement("div", { className: "flex flex-col gap-3" }, [1, 2, 3].map((num) => {
5031
+ }, onDecline: () => setNameCheckResult(null) }) : /* @__PURE__ */ React53.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__ */ React53.createElement("div", null, /* @__PURE__ */ React53.createElement("span", { className: "text-[11px] tracking-widest text-red-600 block mb-1" }, "Registry Conflict Detected"), /* @__PURE__ */ React53.createElement("p", { className: "text-sm text-black mb-3" }, nameCheckResult.message), /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col gap-2" }, (nameCheckResult.alternatives || []).map((alt, i) => /* @__PURE__ */ React53.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__ */ React53.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__ */ React53.createElement("div", { className: " flex items-center justify-between" }, /* @__PURE__ */ React53.createElement("div", null, /* @__PURE__ */ React53.createElement("p", { className: "text-sm text-black" }, formData.approvedName), /* @__PURE__ */ React53.createElement("p", { className: "text-xs text-emerald-600 mt-1" }, "Verified against registry")), !isReadOnly && /* @__PURE__ */ React53.createElement("button", { onClick: () => editSection("nameApproved"), className: "p-2 text-neutral-400 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ React53.createElement(HugeiconsIcon36, { icon: PencilEdit01Icon2, size: 16 })))), formState.nameApproved && /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col gap-4 pt-6 animate-in slide-in-from-top-4 duration-500" }, /* @__PURE__ */ React53.createElement("div", { className: "flex items-center text-black" }, /* @__PURE__ */ React53.createElement("h3", { className: "text-sm " }, "Where is your head office located?")), !formState.addressApproved ? /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col gap-4 " }, /* @__PURE__ */ React53.createElement(TextInput, { label: "Street Address", value: formData.address, onChange: (v) => setFormData({ ...formData, address: v }), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React53.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ React53.createElement(TextInput, { label: "City", value: formData.city, onChange: (v) => setFormData({ ...formData, city: v }), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React53.createElement(TextInput, { label: "State", value: formData.state, readOnly: true, onClick: () => !isReadOnly && setActiveModal({ isOpen: true, type: "state", memberIndex: null, isGlobalState: true }), placeholder: "Select State", onChange: () => {
5032
+ }, disabled: isReadOnly || isSubmitting })), /* @__PURE__ */ React53.createElement(ThreeDActionButton, { onClick: () => approveSection("addressApproved"), disabled: !formData.address || !formData.city || !formData.state || isReadOnly, className: "w-fit mt-2" }, "Confirm Address")) : /* @__PURE__ */ React53.createElement("div", { className: " flex items-center justify-between" }, /* @__PURE__ */ React53.createElement("p", { className: "text-sm text-neutral-500" }, formData.address, ", ", formData.city, ", ", formData.state), !isReadOnly && /* @__PURE__ */ React53.createElement("button", { onClick: () => editSection("addressApproved"), className: "p-2 text-neutral-400 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ React53.createElement(HugeiconsIcon36, { icon: PencilEdit01Icon2, size: 16 })))), formState.addressApproved && type === "company" && /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col gap-4 pt-6 animate-in slide-in-from-top-4 duration-500" }, /* @__PURE__ */ React53.createElement("div", { className: "flex items-center justify-between gap-2 text-black" }, /* @__PURE__ */ React53.createElement("div", { className: "flex items-center" }, /* @__PURE__ */ React53.createElement("h3", { className: "text-sm " }, "Directors & Shareholders")), !formState.membersDetailsApproved && /* @__PURE__ */ React53.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__ */ React53.createElement("p", { className: "text-xs text-neutral-400 -mt-2" }, "Provide details for all individuals. Ensure total share percentage equals 100%."), !formState.membersDetailsApproved ? /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col gap-6 " }, formData.members.map((member, i) => /* @__PURE__ */ React53.createElement("div", { key: member.id, className: "flex flex-col gap-4 border border-neutral-100 p-5 rounded-2xl bg-neutral-50/30" }, /* @__PURE__ */ React53.createElement("div", { className: "flex justify-between items-center mb-1" }, /* @__PURE__ */ React53.createElement("span", { className: "text-[11px] tracking-widest text-neutral-400" }, "Member ", i + 1), formData.members.length > 1 && !isReadOnly && /* @__PURE__ */ React53.createElement("button", { onClick: () => removeCompanyMember(i), className: "text-red-500 text-xs hover:text-red-600" }, "Remove")), /* @__PURE__ */ React53.createElement("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4" }, /* @__PURE__ */ React53.createElement(TextInput, { label: "Role", value: member.role, readOnly: true, onClick: () => !isReadOnly && setActiveModal({ isOpen: true, type: "role", memberIndex: i }), onChange: () => {
5033
+ }, disabled: isReadOnly || isSubmitting }), member.role !== "Director Only" && /* @__PURE__ */ React53.createElement(NumberInput, { label: "Share Percentage (%)", value: member.sharePercentage, onChange: (v) => updateCompanyMemberInfo(i, "sharePercentage", v), disabled: isReadOnly || isSubmitting })), /* @__PURE__ */ React53.createElement(TextInput, { label: "Full Name", value: member.fullName, onChange: (v) => updateCompanyMemberInfo(i, "fullName", v), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React53.createElement("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4" }, /* @__PURE__ */ React53.createElement(NumberInput, { label: "Phone Number", value: member.phone, onChange: (v) => updateCompanyMemberInfo(i, "phone", v), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React53.createElement(TextInput, { label: "Email Address", value: member.email, onChange: (v) => updateCompanyMemberInfo(i, "email", v), disabled: isReadOnly || isSubmitting })), /* @__PURE__ */ React53.createElement(TextInput, { label: "Nationality", value: member.nationality, readOnly: true, onClick: () => !isReadOnly && setActiveModal({ isOpen: true, type: "nationality", memberIndex: i }), onChange: () => {
5034
+ }, disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React53.createElement(TextInput, { label: "Residential Address", value: member.address, onChange: (v) => updateCompanyMemberInfo(i, "address", v), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React53.createElement("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4" }, /* @__PURE__ */ React53.createElement(TextInput, { label: "City", value: member.city, onChange: (v) => updateCompanyMemberInfo(i, "city", v), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React53.createElement(TextInput, { label: "State", value: member.state, readOnly: true, onClick: () => !isReadOnly && setActiveModal({ isOpen: true, type: "state", memberIndex: i }), onChange: () => {
5035
+ }, disabled: isReadOnly || isSubmitting })))), /* @__PURE__ */ React53.createElement("div", { className: "flex items-center justify-between mt-2" }, !isReadOnly && /* @__PURE__ */ React53.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__ */ React53.createElement(ThreeDActionButton, { onClick: () => approveSection("membersDetailsApproved"), disabled: !areCompanyMembersValid() || isReadOnly, className: "w-fit" }, "Confirm Members"))) : /* @__PURE__ */ React53.createElement("div", { className: " flex items-center justify-between" }, /* @__PURE__ */ React53.createElement("div", null, /* @__PURE__ */ React53.createElement("p", { className: "text-sm text-black" }, formData.members.length, " Member(s) Registered"), /* @__PURE__ */ React53.createElement("p", { className: "text-xs text-neutral-500 mt-1" }, "Total Shares: 100% Verified.")), !isReadOnly && /* @__PURE__ */ React53.createElement("button", { onClick: () => editSection("membersDetailsApproved"), className: "p-2 text-neutral-400 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ React53.createElement(HugeiconsIcon36, { icon: PencilEdit01Icon2, size: 16 })))), formState.addressApproved && type === "business" && /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col gap-4 pt-6 animate-in slide-in-from-top-4 duration-500" }, /* @__PURE__ */ React53.createElement("div", { className: "flex items-center text-black" }, /* @__PURE__ */ React53.createElement("h3", { className: "text-sm " }, "Who owns the business?")), /* @__PURE__ */ React53.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__ */ React53.createElement("div", { className: "flex flex-col gap-4 " }, /* @__PURE__ */ React53.createElement(TextInput, { label: "Full Name", value: formData.ownerName, onChange: (v) => setFormData({ ...formData, ownerName: v }), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React53.createElement("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-4" }, /* @__PURE__ */ React53.createElement(NumberInput, { label: "Phone Number", value: formData.ownerPhone, onChange: (v) => setFormData({ ...formData, ownerPhone: v }), disabled: isReadOnly || isSubmitting }), /* @__PURE__ */ React53.createElement(TextInput, { label: "Email Address", value: formData.ownerEmail, onChange: (v) => setFormData({ ...formData, ownerEmail: v }), disabled: isReadOnly || isSubmitting })), /* @__PURE__ */ React53.createElement(ThreeDActionButton, { onClick: () => approveSection("ownerApproved"), disabled: !formData.ownerName || !formData.ownerPhone || !formData.ownerEmail || isReadOnly, className: "w-fit mt-2" }, "Confirm Owner Details")) : /* @__PURE__ */ React53.createElement("div", { className: " flex items-center justify-between" }, /* @__PURE__ */ React53.createElement("div", null, /* @__PURE__ */ React53.createElement("p", { className: "text-sm text-black" }, formData.ownerName), /* @__PURE__ */ React53.createElement("p", { className: "text-xs text-neutral-500 mt-1" }, formData.ownerEmail, " \u2022 ", formData.ownerPhone)), !isReadOnly && /* @__PURE__ */ React53.createElement("button", { onClick: () => editSection("ownerApproved"), className: "p-2 text-neutral-400 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ React53.createElement(HugeiconsIcon36, { icon: PencilEdit01Icon2, size: 16 })))), /* @__PURE__ */ React53.createElement("div", { className: "flex items-center justify-between mt-8 pt-6 " }, /* @__PURE__ */ React53.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__ */ React53.createElement(HugeiconsIcon36, { icon: ArrowLeft01Icon11, size: 14 }), " Close"), /* @__PURE__ */ React53.createElement(ThreeDActionButton, { onClick: handleNext, disabled: !isStep0Valid, className: "w-fit shrink-0" }, "Next Step"))), macroStep === 1 && /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col gap-8 animate-in fade-in" }, type === "company" ? /* @__PURE__ */ React53.createElement(React53.Fragment, null, /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col gap-2" }, /* @__PURE__ */ React53.createElement("h3", { className: "text-sm text-black" }, "Member Identity Documents"), /* @__PURE__ */ React53.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__ */ React53.createElement("div", { className: "flex flex-col gap-6" }, formData.members.map((member, i) => /* @__PURE__ */ React53.createElement("div", { key: member.id, className: "flex flex-col gap-4" }, /* @__PURE__ */ React53.createElement("span", { className: "text-[11px] tracking-widest text-black mb-1" }, member.fullName || `Member ${i + 1}`, " ", /* @__PURE__ */ React53.createElement("span", { className: "text-neutral-400 ml-2" }, "(", member.role, ")")), /* @__PURE__ */ React53.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__ */ React53.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__ */ React53.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__ */ React53.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__ */ React53.createElement(HugeiconsIcon36, { icon: Upload01Icon3, size: 18, className: "text-neutral-400" }), " Upload Valid ID (NIN, License, Voter's Card)") : globalExtractingId && !member.idExtractedData ? /* @__PURE__ */ React53.createElement("div", { className: " mt-2" }, /* @__PURE__ */ React53.createElement(AiStageCheck, { tasks: aiTasks })) : member.idExtractedData ? /* @__PURE__ */ React53.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__ */ React53.createElement("div", null, /* @__PURE__ */ React53.createElement("span", { className: "text-[11px] tracking-widest text-orange-600 block mb-2" }, "Review Extracted ID"), /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ React53.createElement(TextInput, { label: "Full Name on ID", value: member.idExtractedData.fullName, onChange: (v) => updateCompanyMemberInfo(i, "idExtractedData", { ...member.idExtractedData, fullName: v }), disabled: isReadOnly || isAnyUploading }), /* @__PURE__ */ React53.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ React53.createElement(TextInput, { label: "ID Number", value: member.idExtractedData.idNumber, onChange: (v) => updateCompanyMemberInfo(i, "idExtractedData", { ...member.idExtractedData, idNumber: v }), disabled: isReadOnly || isAnyUploading }), /* @__PURE__ */ React53.createElement(TextInput, { label: "Date of Birth", value: member.idExtractedData.dob, onChange: (v) => updateCompanyMemberInfo(i, "idExtractedData", { ...member.idExtractedData, dob: v }), disabled: isReadOnly || isAnyUploading })))), /* @__PURE__ */ React53.createElement("div", { className: "flex items-center gap-2 mt-2" }, !isReadOnly && /* @__PURE__ */ React53.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__ */ React53.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__ */ React53.createElement(HugeiconsIcon36, { icon: Upload01Icon3, size: 18, className: "text-neutral-400" }), " Upload Passport Photo") : globalUploadingPassport && !member.passportFileUrl ? /* @__PURE__ */ React53.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__ */ React53.createElement(HugeiconsIcon36, { icon: Loading03Icon18, size: 18, className: "animate-spin text-black" }), " Uploading Passport...") : member.passportFileUrl ? /* @__PURE__ */ React53.createElement("div", { className: "flex items-center justify-between p-4 bg-emerald-50 rounded-full text-emerald-800 text-sm w-full" }, /* @__PURE__ */ React53.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React53.createElement(HugeiconsIcon36, { icon: IdentificationIcon, size: 18 }), " Passport Uploaded"), !isReadOnly && /* @__PURE__ */ React53.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__ */ React53.createElement(HugeiconsIcon36, { icon: Delete02Icon3, size: 16 }))) : null, !member.signatureFileUrl && !globalUploadingSignature ? /* @__PURE__ */ React53.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__ */ React53.createElement(HugeiconsIcon36, { icon: Upload01Icon3, size: 18, className: "text-neutral-400" }), " Upload Signature") : globalUploadingSignature && !member.signatureFileUrl ? /* @__PURE__ */ React53.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__ */ React53.createElement(HugeiconsIcon36, { icon: Loading03Icon18, size: 18, className: "animate-spin text-black" }), " Uploading Signature...") : member.signatureFileUrl ? /* @__PURE__ */ React53.createElement("div", { className: "flex items-center justify-between p-4 bg-emerald-50 rounded-full text-emerald-800 text-sm w-full" }, /* @__PURE__ */ React53.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React53.createElement(HugeiconsIcon36, { icon: SignatureIcon, size: 18 }), " Signature Uploaded"), !isReadOnly && /* @__PURE__ */ React53.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__ */ React53.createElement(HugeiconsIcon36, { icon: Delete02Icon3, size: 16 }))) : null)), /* @__PURE__ */ React53.createElement("div", { className: "flex justify-end" }, /* @__PURE__ */ React53.createElement(ThreeDActionButton, { onClick: () => approveSection("membersDocsApproved"), disabled: !areCompanyMemberDocsValid() || isReadOnly || isAnyUploading, className: "w-fit" }, "Confirm All Documents"))) : /* @__PURE__ */ React53.createElement("div", { className: " flex items-center justify-between bg-emerald-50 p-6 rounded-full" }, /* @__PURE__ */ React53.createElement("div", null, /* @__PURE__ */ React53.createElement("p", { className: "text-sm text-emerald-800" }, "Documents Uploaded"), /* @__PURE__ */ React53.createElement("p", { className: "text-xs text-emerald-600 mt-1" }, "Data safely extracted.")), !isReadOnly && /* @__PURE__ */ React53.createElement("button", { onClick: () => editSection("membersDocsApproved"), className: "p-2 text-emerald-700 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ React53.createElement(HugeiconsIcon36, { icon: PencilEdit01Icon2, size: 16 })))) : /* @__PURE__ */ React53.createElement(React53.Fragment, null, /* @__PURE__ */ React53.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__ */ React53.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__ */ React53.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__ */ React53.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ React53.createElement("div", { className: "flex items-center gap-2 text-black" }, /* @__PURE__ */ React53.createElement("h3", { className: "text-sm " }, "Upload Means of Identification")), /* @__PURE__ */ React53.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__ */ React53.createElement(React53.Fragment, null, /* @__PURE__ */ React53.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__ */ React53.createElement(HugeiconsIcon36, { icon: Upload01Icon3, size: 24, className: "text-neutral-400" }), /* @__PURE__ */ React53.createElement("span", { className: "text-xs" }, "Select ID Image to Upload")), globalExtractingId && /* @__PURE__ */ React53.createElement("div", { className: " mt-2" }, /* @__PURE__ */ React53.createElement(AiStageCheck, { tasks: aiTasks })), formData.idExtractedData && /* @__PURE__ */ React53.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__ */ React53.createElement("div", null, /* @__PURE__ */ React53.createElement("span", { className: "text-[11px] tracking-widest text-orange-600 block mb-2" }, "Review AI Extracted Data"), /* @__PURE__ */ React53.createElement("p", { className: "text-xs text-neutral-500 mb-4" }, "Please verify the extracted information and correct any OCR mistakes before approving."), /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col gap-4" }, /* @__PURE__ */ React53.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__ */ React53.createElement("div", { className: "grid grid-cols-2 gap-4" }, /* @__PURE__ */ React53.createElement(TextInput, { label: "ID Number", value: formData.idExtractedData.idNumber, onChange: (v) => setFormData((f) => ({ ...f, idExtractedData: { ...f.idExtractedData, idNumber: v } })), disabled: isReadOnly || isAnyUploading }), /* @__PURE__ */ React53.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__ */ React53.createElement("div", { className: "flex items-center gap-2 mt-2" }, /* @__PURE__ */ React53.createElement(ThreeDActionButton, { onClick: () => approveSection("idApproved"), disabled: isAnyUploading || isReadOnly, className: "w-fit shrink-0" }, "Approve Data"), !isReadOnly && /* @__PURE__ */ React53.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__ */ React53.createElement("div", { className: " flex items-center justify-between bg-emerald-50 p-6 rounded-full" }, /* @__PURE__ */ React53.createElement("div", null, /* @__PURE__ */ React53.createElement("p", { className: "text-sm text-emerald-800" }, "ID Document Verified"), /* @__PURE__ */ React53.createElement("p", { className: "text-xs text-emerald-600 mt-1" }, "Data safely extracted and stored.")), !isReadOnly && /* @__PURE__ */ React53.createElement("button", { onClick: () => editSection("idApproved"), className: "p-2 text-emerald-700 hover:text-black transition-colors outline-none shrink-0" }, /* @__PURE__ */ React53.createElement(HugeiconsIcon36, { icon: PencilEdit01Icon2, size: 16 })))), /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col gap-4 pt-6 animate-in slide-in-from-top-4 duration-500" }, /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col gap-3 " }, !formState.passportApproved && !globalUploadingPassport ? /* @__PURE__ */ React53.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__ */ React53.createElement(HugeiconsIcon36, { icon: Upload01Icon3, size: 18, className: "text-neutral-400" }), " Upload Passport Photo") : globalUploadingPassport && !formData.passportFileUrl ? /* @__PURE__ */ React53.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__ */ React53.createElement(HugeiconsIcon36, { icon: Loading03Icon18, size: 18, className: "animate-spin text-black" }), " Uploading Passport...") : /* @__PURE__ */ React53.createElement("div", { className: "flex items-center justify-between p-4 bg-emerald-50 rounded-full text-emerald-800 text-sm w-full" }, /* @__PURE__ */ React53.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React53.createElement(HugeiconsIcon36, { icon: IdentificationIcon, size: 18 }), " Passport Uploaded"), !isReadOnly && /* @__PURE__ */ React53.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__ */ React53.createElement(HugeiconsIcon36, { icon: Delete02Icon3, size: 16 }))), !formState.signatureApproved && !globalUploadingSignature ? /* @__PURE__ */ React53.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__ */ React53.createElement(HugeiconsIcon36, { icon: Upload01Icon3, size: 18, className: "text-neutral-400" }), " Upload Signature") : globalUploadingSignature && !formData.signatureFileUrl ? /* @__PURE__ */ React53.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__ */ React53.createElement(HugeiconsIcon36, { icon: Loading03Icon18, size: 18, className: "animate-spin text-black" }), " Uploading Signature...") : /* @__PURE__ */ React53.createElement("div", { className: "flex items-center justify-between p-4 bg-emerald-50 rounded-full text-emerald-800 text-sm w-full" }, /* @__PURE__ */ React53.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React53.createElement(HugeiconsIcon36, { icon: SignatureIcon, size: 18 }), " Signature Uploaded"), !isReadOnly && /* @__PURE__ */ React53.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__ */ React53.createElement(HugeiconsIcon36, { icon: Delete02Icon3, size: 16 })))))), /* @__PURE__ */ React53.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__ */ React53.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__ */ React53.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__ */ React53.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__ */ React53.createElement("div", { className: "flex flex-col gap-1 mb-2" }, /* @__PURE__ */ React53.createElement("h3", { className: "text-sm text-black" }, "Additional Documents (Optional)"), /* @__PURE__ */ React53.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__ */ React53.createElement("div", { className: "flex flex-col gap-3" }, [1, 2, 3].map((num) => {
4916
5036
  const docType = `other${num}`;
4917
5037
  const ref = num === 1 ? other1Ref : num === 2 ? other2Ref : other3Ref;
4918
5038
  const isUploading = num === 1 ? isUploadingOther1 : num === 2 ? isUploadingOther2 : isUploadingOther3;
@@ -4920,29 +5040,29 @@ var UniversalRegistrationFlow = ({
4920
5040
  if (!fileUrl && !isUploading) {
4921
5041
  const prevUrl = num > 1 ? formData[`otherDoc${num - 1}Url`] : true;
4922
5042
  if (!prevUrl) return null;
4923
- return /* @__PURE__ */ React52.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__ */ React52.createElement(HugeiconsIcon35, { icon: Upload01Icon3, size: 18, className: "text-neutral-400" }), " Upload Optional Document ", num);
5043
+ return /* @__PURE__ */ React53.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__ */ React53.createElement(HugeiconsIcon36, { icon: Upload01Icon3, size: 18, className: "text-neutral-400" }), " Upload Optional Document ", num);
4924
5044
  }
4925
5045
  if (isUploading) {
4926
- return /* @__PURE__ */ React52.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__ */ React52.createElement(HugeiconsIcon35, { icon: Loading03Icon17, size: 18, className: "animate-spin text-black" }), " Uploading Document ", num, "...");
5046
+ return /* @__PURE__ */ React53.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__ */ React53.createElement(HugeiconsIcon36, { icon: Loading03Icon18, size: 18, className: "animate-spin text-black" }), " Uploading Document ", num, "...");
4927
5047
  }
4928
- return /* @__PURE__ */ React52.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__ */ React52.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React52.createElement(HugeiconsIcon35, { icon: CheckmarkBadge01Icon2, size: 18 }), " Optional Document ", num, " Uploaded"), !isReadOnly && /* @__PURE__ */ React52.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__ */ React52.createElement(HugeiconsIcon35, { icon: Delete02Icon3, size: 16 })));
4929
- }))), /* @__PURE__ */ React52.createElement("div", { className: "flex items-center justify-between mt-8 pt-6 " }, /* @__PURE__ */ React52.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__ */ React52.createElement(HugeiconsIcon35, { icon: ArrowLeft01Icon11, size: 14 }), " Back"), /* @__PURE__ */ React52.createElement(ThreeDActionButton, { onClick: handleNext, disabled: !isStep1Valid || isAnyUploading, className: "w-fit shrink-0" }, "Next Step"))), macroStep === 2 && /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col gap-6 animate-in fade-in" }, /* @__PURE__ */ React52.createElement("div", null, /* @__PURE__ */ React52.createElement("h3", { className: "text-sm mb-5 text-black" }, "Application Summary"), /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col gap-4 text-sm" }, /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between border-b border-neutral-100 pb-3 gap-1" }, /* @__PURE__ */ React52.createElement("span", { className: "text-neutral-500 truncate text-[13px] " }, type === "company" ? "Company Name" : "Business Name"), /* @__PURE__ */ React52.createElement("span", { className: " text-black text-[13px]" }, formData.approvedName)), /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between border-b border-neutral-100 pb-3 gap-1" }, /* @__PURE__ */ React52.createElement("span", { className: "text-neutral-500 text-[13px] " }, "Classification"), /* @__PURE__ */ React52.createElement("span", { className: " text-black truncate sm:text-right text-[13px] " }, formData.natureOfBusiness?.specificLabel || "Pending")), type === "company" ? /* @__PURE__ */ React52.createElement(React52.Fragment, null, /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between border-b border-neutral-100 pb-3 gap-1" }, /* @__PURE__ */ React52.createElement("span", { className: "text-neutral-500 text-[13px] " }, "Total Members"), /* @__PURE__ */ React52.createElement("span", { className: " text-black truncate text-[13px] " }, formData.members.length, " Directors/Shareholders")), /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between border-b border-neutral-100 pb-3 gap-1" }, /* @__PURE__ */ React52.createElement("span", { className: "text-neutral-500 text-[13px] " }, "Share Capital"), /* @__PURE__ */ React52.createElement("span", { className: " text-black truncate text-[13px] " }, "100% Allocated"))) : /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between border-b border-neutral-100 pb-3 gap-1" }, /* @__PURE__ */ React52.createElement("span", { className: "text-neutral-500 text-[13px] " }, "Proprietor"), /* @__PURE__ */ React52.createElement("span", { className: " text-black truncate text-[13px] " }, formData.ownerName)), /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between pb-2 gap-1" }, /* @__PURE__ */ React52.createElement("span", { className: "text-neutral-500 text-[13px] " }, "Documents Attached"), /* @__PURE__ */ React52.createElement("span", { className: " text-neutral-400 text-[13px] " }, "ID, Passport, Signature")), formData.otherDoc1Url && /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between pb-2 gap-1" }, /* @__PURE__ */ React52.createElement("span", { className: "text-neutral-500 text-[13px] " }, "Optional Documents"), /* @__PURE__ */ React52.createElement("span", { className: " text-neutral-400 text-[13px] " }, [formData.otherDoc1Url, formData.otherDoc2Url, formData.otherDoc3Url].filter(Boolean).length, " Attached")))), /* @__PURE__ */ React52.createElement("div", { className: "flex items-center justify-between mt-4 pt-4 " }, /* @__PURE__ */ React52.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__ */ React52.createElement(HugeiconsIcon35, { icon: ArrowLeft01Icon11, size: 14 }), " Back"), /* @__PURE__ */ React52.createElement(ThreeDActionButton, { onClick: handleNext, className: "w-fit shrink-0" }, "Next Step"))), macroStep === 3 && /* @__PURE__ */ React52.createElement("div", { className: "flex flex-col gap-6 py-6 animate-in zoom-in-95 duration-500" }, /* @__PURE__ */ React52.createElement("h2", { className: "text-lg text-black tracking-tight mb-2" }, "Terms and Conditions of Application"), /* @__PURE__ */ React52.createElement("div", { className: "text-xs text-neutral-500 mb-4" }, /* @__PURE__ */ React52.createElement("p", { className: " mb-3" }, "Declaration and Consent"), /* @__PURE__ */ React52.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__ */ React52.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__ */ React52.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__ */ React52.createElement("p", { className: "leading-relaxed" }, "Proceeding to generate the invoice confirms your acceptance of these terms and initiates the formal filing process.")), /* @__PURE__ */ React52.createElement("label", { className: "flex items-start gap-3 mt-2 cursor-pointer group" }, /* @__PURE__ */ React52.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__ */ React52.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__ */ React52.createElement("div", { className: "flex flex-col sm:flex-row items-center gap-4 mt-8 w-full justify-end pt-6" }, /* @__PURE__ */ React52.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__ */ React52.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__ */ React52.createElement(ThreeDActionButton, { onClick: handleFinalSubmit, disabled: isSubmitting || !iAgree || isReadOnly, isLoading: isSubmitting, className: "min-w-40 w-full sm:w-auto" }, "Submit")))), activeModal.isOpen && /* @__PURE__ */ React52.createElement("div", { className: "fixed inset-0 z-110 flex items-center justify-center p-4" }, /* @__PURE__ */ React52.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setActiveModal({ isOpen: false, type: null, memberIndex: null }) }), /* @__PURE__ */ React52.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__ */ React52.createElement("div", { className: "p-4 text-center w-full shrink-0" }, /* @__PURE__ */ React52.createElement("h3", { className: "text-[14px] text-black tracking-tight capitalize" }, "Select ", activeModal.type)), /* @__PURE__ */ React52.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) => {
5048
+ return /* @__PURE__ */ React53.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__ */ React53.createElement("div", { className: "flex items-center gap-3" }, /* @__PURE__ */ React53.createElement(HugeiconsIcon36, { icon: CheckmarkBadge01Icon2, size: 18 }), " Optional Document ", num, " Uploaded"), !isReadOnly && /* @__PURE__ */ React53.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__ */ React53.createElement(HugeiconsIcon36, { icon: Delete02Icon3, size: 16 })));
5049
+ }))), /* @__PURE__ */ React53.createElement("div", { className: "flex items-center justify-between mt-8 pt-6 " }, /* @__PURE__ */ React53.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__ */ React53.createElement(HugeiconsIcon36, { icon: ArrowLeft01Icon11, size: 14 }), " Back"), /* @__PURE__ */ React53.createElement(ThreeDActionButton, { onClick: handleNext, disabled: !isStep1Valid || isAnyUploading, className: "w-fit shrink-0" }, "Next Step"))), macroStep === 2 && /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col gap-6 animate-in fade-in" }, /* @__PURE__ */ React53.createElement("div", null, /* @__PURE__ */ React53.createElement("h3", { className: "text-sm mb-5 text-black" }, "Application Summary"), /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col gap-4 text-sm" }, /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between border-b border-neutral-100 pb-3 gap-1" }, /* @__PURE__ */ React53.createElement("span", { className: "text-neutral-500 truncate text-[13px] " }, type === "company" ? "Company Name" : "Business Name"), /* @__PURE__ */ React53.createElement("span", { className: " text-black text-[13px]" }, formData.approvedName)), /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between border-b border-neutral-100 pb-3 gap-1" }, /* @__PURE__ */ React53.createElement("span", { className: "text-neutral-500 text-[13px] " }, "Classification"), /* @__PURE__ */ React53.createElement("span", { className: " text-black truncate sm:text-right text-[13px] " }, formData.natureOfBusiness?.specificLabel || "Pending")), type === "company" ? /* @__PURE__ */ React53.createElement(React53.Fragment, null, /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between border-b border-neutral-100 pb-3 gap-1" }, /* @__PURE__ */ React53.createElement("span", { className: "text-neutral-500 text-[13px] " }, "Total Members"), /* @__PURE__ */ React53.createElement("span", { className: " text-black truncate text-[13px] " }, formData.members.length, " Directors/Shareholders")), /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between border-b border-neutral-100 pb-3 gap-1" }, /* @__PURE__ */ React53.createElement("span", { className: "text-neutral-500 text-[13px] " }, "Share Capital"), /* @__PURE__ */ React53.createElement("span", { className: " text-black truncate text-[13px] " }, "100% Allocated"))) : /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between border-b border-neutral-100 pb-3 gap-1" }, /* @__PURE__ */ React53.createElement("span", { className: "text-neutral-500 text-[13px] " }, "Proprietor"), /* @__PURE__ */ React53.createElement("span", { className: " text-black truncate text-[13px] " }, formData.ownerName)), /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between pb-2 gap-1" }, /* @__PURE__ */ React53.createElement("span", { className: "text-neutral-500 text-[13px] " }, "Documents Attached"), /* @__PURE__ */ React53.createElement("span", { className: " text-neutral-400 text-[13px] " }, "ID, Passport, Signature")), formData.otherDoc1Url && /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col sm:flex-row sm:justify-between pb-2 gap-1" }, /* @__PURE__ */ React53.createElement("span", { className: "text-neutral-500 text-[13px] " }, "Optional Documents"), /* @__PURE__ */ React53.createElement("span", { className: " text-neutral-400 text-[13px] " }, [formData.otherDoc1Url, formData.otherDoc2Url, formData.otherDoc3Url].filter(Boolean).length, " Attached")))), /* @__PURE__ */ React53.createElement("div", { className: "flex items-center justify-between mt-4 pt-4 " }, /* @__PURE__ */ React53.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__ */ React53.createElement(HugeiconsIcon36, { icon: ArrowLeft01Icon11, size: 14 }), " Back"), /* @__PURE__ */ React53.createElement(ThreeDActionButton, { onClick: handleNext, className: "w-fit shrink-0" }, "Next Step"))), macroStep === 3 && /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col gap-6 py-6 animate-in zoom-in-95 duration-500" }, /* @__PURE__ */ React53.createElement("h2", { className: "text-lg text-black tracking-tight mb-2" }, "Terms and Conditions of Application"), /* @__PURE__ */ React53.createElement("div", { className: "text-xs text-neutral-500 mb-4" }, /* @__PURE__ */ React53.createElement("p", { className: " mb-3" }, "Declaration and Consent"), /* @__PURE__ */ React53.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__ */ React53.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__ */ React53.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__ */ React53.createElement("p", { className: "leading-relaxed" }, "Proceeding to generate the invoice confirms your acceptance of these terms and initiates the formal filing process.")), /* @__PURE__ */ React53.createElement("label", { className: "flex items-start gap-3 mt-2 cursor-pointer group" }, /* @__PURE__ */ React53.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__ */ React53.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__ */ React53.createElement("div", { className: "flex flex-col sm:flex-row items-center gap-4 mt-8 w-full justify-end pt-6" }, /* @__PURE__ */ React53.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__ */ React53.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__ */ React53.createElement(ThreeDActionButton, { onClick: handleFinalSubmit, disabled: isSubmitting || !iAgree || isReadOnly, isLoading: isSubmitting, className: "min-w-40 w-full sm:w-auto" }, "Submit")))), activeModal.isOpen && /* @__PURE__ */ React53.createElement("div", { className: "fixed inset-0 z-110 flex items-center justify-center p-4" }, /* @__PURE__ */ React53.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => setActiveModal({ isOpen: false, type: null, memberIndex: null }) }), /* @__PURE__ */ React53.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__ */ React53.createElement("div", { className: "p-4 text-center w-full shrink-0" }, /* @__PURE__ */ React53.createElement("h3", { className: "text-[14px] text-black tracking-tight capitalize" }, "Select ", activeModal.type)), /* @__PURE__ */ React53.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) => {
4930
5050
  const isSelected = activeModal.isGlobalState ? formData.state === opt : formData.members[activeModal.memberIndex][activeModal.type] === opt;
4931
- return /* @__PURE__ */ React52.createElement("button", { key: opt, onClick: () => {
5051
+ return /* @__PURE__ */ React53.createElement("button", { key: opt, onClick: () => {
4932
5052
  if (activeModal.isGlobalState) setFormData({ ...formData, state: opt });
4933
5053
  else updateCompanyMemberInfo(activeModal.memberIndex, activeModal.type, opt);
4934
5054
  setActiveModal({ isOpen: false, type: null, memberIndex: null });
4935
5055
  }, 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);
4936
- })), /* @__PURE__ */ React52.createElement("div", { className: "w-full flex mt-auto shrink-0 " }, /* @__PURE__ */ React52.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")))));
5056
+ })), /* @__PURE__ */ React53.createElement("div", { className: "w-full flex mt-auto shrink-0 " }, /* @__PURE__ */ React53.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")))));
4937
5057
  };
4938
5058
 
4939
5059
  // src/components/UniversalDeveloperSettings.tsx
4940
- import React53, { useState as useState32, useEffect as useEffect22 } from "react";
5060
+ import React54, { useState as useState33, useEffect as useEffect22 } from "react";
4941
5061
  import { toast as toast10 } from "react-hot-toast";
4942
- import { HugeiconsIcon as HugeiconsIcon36 } from "@hugeicons/react";
4943
- import { Loading03Icon as Loading03Icon18, CircleLock02Icon as CircleLock02Icon5 } from "@hugeicons/core-free-icons";
4944
- var ButtonSpinner5 = () => /* @__PURE__ */ React53.createElement(HugeiconsIcon36, { icon: Loading03Icon18, size: 16, className: "animate-spin text-current" });
4945
- var PageSpinner7 = () => /* @__PURE__ */ React53.createElement("div", { className: "flex justify-center items-center py-12 w-full" }, /* @__PURE__ */ React53.createElement(HugeiconsIcon36, { icon: Loading03Icon18, size: 32, className: "animate-spin text-black" }));
5062
+ import { HugeiconsIcon as HugeiconsIcon37 } from "@hugeicons/react";
5063
+ import { Loading03Icon as Loading03Icon19, CircleLock02Icon as CircleLock02Icon5 } from "@hugeicons/core-free-icons";
5064
+ var ButtonSpinner5 = () => /* @__PURE__ */ React54.createElement(HugeiconsIcon37, { icon: Loading03Icon19, size: 16, className: "animate-spin text-current" });
5065
+ var PageSpinner8 = () => /* @__PURE__ */ React54.createElement("div", { className: "flex justify-center items-center py-12 w-full" }, /* @__PURE__ */ React54.createElement(HugeiconsIcon37, { icon: Loading03Icon19, size: 32, className: "animate-spin text-black" }));
4946
5066
  var UniversalDeveloperSettings = ({
4947
5067
  initialPublicKey,
4948
5068
  initialWebhookUrl,
@@ -4951,11 +5071,11 @@ var UniversalDeveloperSettings = ({
4951
5071
  onGenerateKeys,
4952
5072
  onSaveWebhook
4953
5073
  }) => {
4954
- const [publicKey, setPublicKey] = useState32(initialPublicKey);
4955
- const [webhookUrl, setWebhookUrl] = useState32(initialWebhookUrl);
4956
- const [isGenerating, setIsGenerating] = useState32(false);
4957
- const [isSavingWebhook, setIsSavingWebhook] = useState32(false);
4958
- const [isRollModalOpen, setIsRollModalOpen] = useState32(false);
5074
+ const [publicKey, setPublicKey] = useState33(initialPublicKey);
5075
+ const [webhookUrl, setWebhookUrl] = useState33(initialWebhookUrl);
5076
+ const [isGenerating, setIsGenerating] = useState33(false);
5077
+ const [isSavingWebhook, setIsSavingWebhook] = useState33(false);
5078
+ const [isRollModalOpen, setIsRollModalOpen] = useState33(false);
4959
5079
  useEffect22(() => {
4960
5080
  setPublicKey(initialPublicKey || "");
4961
5081
  setWebhookUrl(initialWebhookUrl || "");
@@ -5016,7 +5136,7 @@ SECRET_KEY="${secKey}"
5016
5136
  };
5017
5137
  const hasWebhookChanges = webhookUrl !== initialWebhookUrl;
5018
5138
  const isWebhookSaveDisabled = isSavingWebhook || isReadOnly || !hasWebhookChanges;
5019
- return /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col max-w-5xl rounded-2xl p-6 bg-white gap-8 animate-in fade-in duration-300" }, /* @__PURE__ */ React53.createElement(ManagedToaster, null), /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col sm:flex-row sm:items-start justify-between gap-3 sm:gap-4" }, /* @__PURE__ */ React53.createElement("div", { className: "min-w-0" }, /* @__PURE__ */ React53.createElement("h1", { className: " text-xl text-black mb-1 truncate tracking-tight" }, "Developer Settings"), /* @__PURE__ */ React53.createElement("p", { className: "text-xs text-neutral-500 truncate" }, "Manage your API credentials and webhook integrations.")), isReadOnly && /* @__PURE__ */ React53.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__ */ React53.createElement(HugeiconsIcon36, { icon: CircleLock02Icon5, size: 18, className: "text-current" }))), isLoading ? /* @__PURE__ */ React53.createElement(PageSpinner7, null) : /* @__PURE__ */ React53.createElement("div", { className: "w-full max-w-5xl flex flex-col gap-12" }, /* @__PURE__ */ React53.createElement("div", { className: "flex flex-col gap-6" }, /* @__PURE__ */ React53.createElement("div", { className: "space-y-2 min-w-0" }, /* @__PURE__ */ React53.createElement(
5139
+ return /* @__PURE__ */ React54.createElement("div", { className: "flex flex-col max-w-5xl rounded-2xl p-6 bg-white gap-8 animate-in fade-in duration-300" }, /* @__PURE__ */ React54.createElement(ManagedToaster, null), /* @__PURE__ */ React54.createElement("div", { className: "flex flex-col sm:flex-row sm:items-start justify-between gap-3 sm:gap-4" }, /* @__PURE__ */ React54.createElement("div", { className: "min-w-0" }, /* @__PURE__ */ React54.createElement("h1", { className: " text-xl text-black mb-1 truncate tracking-tight" }, "Developer Settings"), /* @__PURE__ */ React54.createElement("p", { className: "text-xs text-neutral-500 truncate" }, "Manage your API credentials and webhook integrations.")), isReadOnly && /* @__PURE__ */ React54.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__ */ React54.createElement(HugeiconsIcon37, { icon: CircleLock02Icon5, size: 18, className: "text-current" }))), isLoading ? /* @__PURE__ */ React54.createElement(PageSpinner8, null) : /* @__PURE__ */ React54.createElement("div", { className: "w-full max-w-5xl flex flex-col gap-12" }, /* @__PURE__ */ React54.createElement("div", { className: "flex flex-col gap-6" }, /* @__PURE__ */ React54.createElement("div", { className: "space-y-2 min-w-0" }, /* @__PURE__ */ React54.createElement(
5020
5140
  TextInput,
5021
5141
  {
5022
5142
  label: "Public Key",
@@ -5025,7 +5145,7 @@ SECRET_KEY="${secKey}"
5025
5145
  },
5026
5146
  disabled: true
5027
5147
  }
5028
- ), /* @__PURE__ */ React53.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__ */ React53.createElement("div", { className: "flex items-center gap-4" }, /* @__PURE__ */ React53.createElement(
5148
+ ), /* @__PURE__ */ React54.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__ */ React54.createElement("div", { className: "flex items-center gap-4" }, /* @__PURE__ */ React54.createElement(
5029
5149
  ThreeDActionButton,
5030
5150
  {
5031
5151
  onClick: () => {
@@ -5037,7 +5157,7 @@ SECRET_KEY="${secKey}"
5037
5157
  className: "w-fit"
5038
5158
  },
5039
5159
  publicKey ? "Roll API Keys" : "Generate Keys"
5040
- ))), /* @__PURE__ */ React53.createElement("form", { className: "flex flex-col gap-6 border-t border-neutral-100 pt-8", onSubmit: handleSaveWebhook, autoComplete: "off" }, /* @__PURE__ */ React53.createElement("div", { className: "space-y-2 min-w-0" }, /* @__PURE__ */ React53.createElement(
5160
+ ))), /* @__PURE__ */ React54.createElement("form", { className: "flex flex-col gap-6 border-t border-neutral-100 pt-8", onSubmit: handleSaveWebhook, autoComplete: "off" }, /* @__PURE__ */ React54.createElement("div", { className: "space-y-2 min-w-0" }, /* @__PURE__ */ React54.createElement(
5041
5161
  TextInput,
5042
5162
  {
5043
5163
  label: "Webhook URL",
@@ -5047,7 +5167,7 @@ SECRET_KEY="${secKey}"
5047
5167
  placeholder: "https://your-domain.com/webhook",
5048
5168
  type: "url"
5049
5169
  }
5050
- ), /* @__PURE__ */ React53.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__ */ React53.createElement("div", { className: "flex flex-col sm:flex-row sm:items-center justify-between mt-2 gap-6 sm:gap-4" }, /* @__PURE__ */ React53.createElement("div", { className: "flex items-center gap-6 min-w-0" }, /* @__PURE__ */ React53.createElement("div", { className: "min-w-0" }, /* @__PURE__ */ React53.createElement("span", { className: "text-[11px] text-neutral-400 tracking-[0.2em] block truncate " }, "Webhook Status"), /* @__PURE__ */ React53.createElement("span", { className: `text-xs block truncate ${webhookUrl ? "text-emerald-600" : "text-neutral-400"}` }, webhookUrl ? "Active" : "Inactive"))), /* @__PURE__ */ React53.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__ */ React53.createElement(
5170
+ ), /* @__PURE__ */ React54.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__ */ React54.createElement("div", { className: "flex flex-col sm:flex-row sm:items-center justify-between mt-2 gap-6 sm:gap-4" }, /* @__PURE__ */ React54.createElement("div", { className: "flex items-center gap-6 min-w-0" }, /* @__PURE__ */ React54.createElement("div", { className: "min-w-0" }, /* @__PURE__ */ React54.createElement("span", { className: "text-[11px] text-neutral-400 tracking-[0.2em] block truncate " }, "Webhook Status"), /* @__PURE__ */ React54.createElement("span", { className: `text-xs block truncate ${webhookUrl ? "text-emerald-600" : "text-neutral-400"}` }, webhookUrl ? "Active" : "Inactive"))), /* @__PURE__ */ React54.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__ */ React54.createElement(
5051
5171
  "button",
5052
5172
  {
5053
5173
  type: "button",
@@ -5055,7 +5175,7 @@ SECRET_KEY="${secKey}"
5055
5175
  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"
5056
5176
  },
5057
5177
  "Cancel"
5058
- ), /* @__PURE__ */ React53.createElement(
5178
+ ), /* @__PURE__ */ React54.createElement(
5059
5179
  ThreeDActionButton,
5060
5180
  {
5061
5181
  type: "submit",
@@ -5064,7 +5184,7 @@ SECRET_KEY="${secKey}"
5064
5184
  className: "min-w-32 w-full sm:w-auto"
5065
5185
  },
5066
5186
  "Save Webhook"
5067
- ))))), isRollModalOpen && !isReadOnly && /* @__PURE__ */ React53.createElement("div", { className: "fixed inset-0 z-110 flex items-center justify-center p-4" }, /* @__PURE__ */ React53.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => !isGenerating && setIsRollModalOpen(false) }), /* @__PURE__ */ React53.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__ */ React53.createElement("div", { className: "p-6 text-center w-full" }, /* @__PURE__ */ React53.createElement("h3", { className: " text-[17px] text-black tracking-tight mb-1" }, "Roll API Keys"), /* @__PURE__ */ React53.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__ */ React53.createElement("div", { className: "w-full flex" }, /* @__PURE__ */ React53.createElement(
5187
+ ))))), isRollModalOpen && !isReadOnly && /* @__PURE__ */ React54.createElement("div", { className: "fixed inset-0 z-110 flex items-center justify-center p-4" }, /* @__PURE__ */ React54.createElement("div", { className: "absolute inset-0 bg-black/30", onClick: () => !isGenerating && setIsRollModalOpen(false) }), /* @__PURE__ */ React54.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__ */ React54.createElement("div", { className: "p-6 text-center w-full" }, /* @__PURE__ */ React54.createElement("h3", { className: " text-[17px] text-black tracking-tight mb-1" }, "Roll API Keys"), /* @__PURE__ */ React54.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__ */ React54.createElement("div", { className: "w-full flex" }, /* @__PURE__ */ React54.createElement(
5068
5188
  "button",
5069
5189
  {
5070
5190
  onClick: () => setIsRollModalOpen(false),
@@ -5072,30 +5192,30 @@ SECRET_KEY="${secKey}"
5072
5192
  className: "flex-1 py-3 text-[13px] text-neutral-600 hover:bg-neutral-50 transition-colors disabled:opacity-50 outline-none"
5073
5193
  },
5074
5194
  "Cancel"
5075
- ), /* @__PURE__ */ React53.createElement(
5195
+ ), /* @__PURE__ */ React54.createElement(
5076
5196
  "button",
5077
5197
  {
5078
5198
  onClick: handleGenerateKeys,
5079
5199
  disabled: isGenerating,
5080
5200
  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"
5081
5201
  },
5082
- isGenerating ? /* @__PURE__ */ React53.createElement(ButtonSpinner5, null) : "Roll Keys"
5202
+ isGenerating ? /* @__PURE__ */ React54.createElement(ButtonSpinner5, null) : "Roll Keys"
5083
5203
  )))));
5084
5204
  };
5085
5205
 
5086
5206
  // src/components/UniversalAppLibrary.tsx
5087
- import React54, { useState as useState33 } from "react";
5088
- import { HugeiconsIcon as HugeiconsIcon37 } from "@hugeicons/react";
5089
- import { Loading03Icon as Loading03Icon19 } from "@hugeicons/core-free-icons";
5207
+ import React55, { useState as useState34 } from "react";
5208
+ import { HugeiconsIcon as HugeiconsIcon38 } from "@hugeicons/react";
5209
+ import { Loading03Icon as Loading03Icon20 } from "@hugeicons/core-free-icons";
5090
5210
  var AppCard = ({ app }) => {
5091
- const [isLoading, setIsLoading] = useState33(true);
5092
- return /* @__PURE__ */ React54.createElement(
5211
+ const [isLoading, setIsLoading] = useState34(true);
5212
+ return /* @__PURE__ */ React55.createElement(
5093
5213
  "button",
5094
5214
  {
5095
5215
  onClick: app.onClick,
5096
5216
  className: "flex flex-col gap-3 group cursor-pointer w-25 shrink-0 text-left outline-none"
5097
5217
  },
5098
- /* @__PURE__ */ React54.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__ */ React54.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-10 bg-neutral-50/50" }, /* @__PURE__ */ React54.createElement(HugeiconsIcon37, { icon: Loading03Icon19, size: 24, className: "animate-spin text-neutral-400" })), /* @__PURE__ */ React54.createElement(
5218
+ /* @__PURE__ */ React55.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__ */ React55.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-10 bg-neutral-50/50" }, /* @__PURE__ */ React55.createElement(HugeiconsIcon38, { icon: Loading03Icon20, size: 24, className: "animate-spin text-neutral-400" })), /* @__PURE__ */ React55.createElement(
5099
5219
  "img",
5100
5220
  {
5101
5221
  src: app.logoSrc,
@@ -5105,7 +5225,7 @@ var AppCard = ({ app }) => {
5105
5225
  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"}`
5106
5226
  }
5107
5227
  )),
5108
- /* @__PURE__ */ React54.createElement("div", { className: "flex flex-col min-w-0 px-1" }, /* @__PURE__ */ React54.createElement("span", { className: "text-[13px] text-black tracking-tight truncate group-hover:text-neutral-600 transition-colors" }, app.name), /* @__PURE__ */ React54.createElement("span", { className: "text-[10px] text-neutral-500 tracking-wide truncate mt-0.5" }, app.category))
5228
+ /* @__PURE__ */ React55.createElement("div", { className: "flex flex-col min-w-0 px-1" }, /* @__PURE__ */ React55.createElement("span", { className: "text-[13px] text-black tracking-tight truncate group-hover:text-neutral-600 transition-colors" }, app.name), /* @__PURE__ */ React55.createElement("span", { className: "text-[10px] text-neutral-500 tracking-wide truncate mt-0.5" }, app.category))
5109
5229
  );
5110
5230
  };
5111
5231
  var UniversalAppLibrary = ({
@@ -5113,18 +5233,18 @@ var UniversalAppLibrary = ({
5113
5233
  headline,
5114
5234
  categories
5115
5235
  }) => {
5116
- return /* @__PURE__ */ React54.createElement("div", { className: "w-full py-16" }, /* @__PURE__ */ React54.createElement("div", { className: "w-full flex justify-center px-4" }, /* @__PURE__ */ React54.createElement("div", { className: "max-w-6xl w-full" }, (tagline || headline) && /* @__PURE__ */ React54.createElement("div", { className: "relative overflow-hidden mb-12 text-left" }, /* @__PURE__ */ React54.createElement("div", { className: "relative z-10" }, tagline && /* @__PURE__ */ React54.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500 block mb-4 " }, tagline), headline && /* @__PURE__ */ React54.createElement("h2", { className: "text-2xl sm:text-3xl tracking-tight text-black leading-[1.1]" }, headline))), /* @__PURE__ */ React54.createElement("div", { className: "flex flex-col gap-14" }, categories.map((category) => /* @__PURE__ */ React54.createElement("div", { key: category.id, className: "flex flex-col" }, /* @__PURE__ */ React54.createElement("div", { className: "flex items-end justify-between mb-5 px-1" }, /* @__PURE__ */ React54.createElement("h3", { className: "text-lg text-black tracking-tight " }, category.title), category.onSeeMore && /* @__PURE__ */ React54.createElement(
5236
+ return /* @__PURE__ */ React55.createElement("div", { className: "w-full py-16" }, /* @__PURE__ */ React55.createElement("div", { className: "w-full flex justify-center px-4" }, /* @__PURE__ */ React55.createElement("div", { className: "max-w-6xl w-full" }, (tagline || headline) && /* @__PURE__ */ React55.createElement("div", { className: "relative overflow-hidden mb-12 text-left" }, /* @__PURE__ */ React55.createElement("div", { className: "relative z-10" }, tagline && /* @__PURE__ */ React55.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500 block mb-4 " }, tagline), headline && /* @__PURE__ */ React55.createElement("h2", { className: "text-2xl sm:text-3xl tracking-tight text-black leading-[1.1]" }, headline))), /* @__PURE__ */ React55.createElement("div", { className: "flex flex-col gap-14" }, categories.map((category) => /* @__PURE__ */ React55.createElement("div", { key: category.id, className: "flex flex-col" }, /* @__PURE__ */ React55.createElement("div", { className: "flex items-end justify-between mb-5 px-1" }, /* @__PURE__ */ React55.createElement("h3", { className: "text-lg text-black tracking-tight " }, category.title), category.onSeeMore && /* @__PURE__ */ React55.createElement(
5117
5237
  "button",
5118
5238
  {
5119
5239
  onClick: category.onSeeMore,
5120
5240
  className: "text-[11px] tracking-widest text-neutral-500 hover:text-black transition-colors outline-none shrink-0 ml-4 pb-0.5"
5121
5241
  },
5122
5242
  category.seeMoreLabel || "See More"
5123
- )), /* @__PURE__ */ React54.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__ */ React54.createElement(AppCard, { key: app.id, app }))), /* @__PURE__ */ React54.createElement("div", { className: "w-full h-px mt-2 last-of-type:hidden" })))))));
5243
+ )), /* @__PURE__ */ React55.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__ */ React55.createElement(AppCard, { key: app.id, app }))), /* @__PURE__ */ React55.createElement("div", { className: "w-full h-px mt-2 last-of-type:hidden" })))))));
5124
5244
  };
5125
5245
 
5126
5246
  // src/components/MedicalFeatureStatsBlock.tsx
5127
- import React55, { useState as useState34, useEffect as useEffect23, useRef as useRef14 } from "react";
5247
+ import React56, { useState as useState35, useEffect as useEffect23, useRef as useRef14 } from "react";
5128
5248
  import Image11 from "next/image";
5129
5249
  var MedicalFeatureStatsBlock = ({
5130
5250
  bottomHeadline,
@@ -5133,7 +5253,7 @@ var MedicalFeatureStatsBlock = ({
5133
5253
  trustText,
5134
5254
  stats
5135
5255
  }) => {
5136
- const [isAnimating, setIsAnimating] = useState34(false);
5256
+ const [isAnimating, setIsAnimating] = useState35(false);
5137
5257
  const titleRef = useRef14(null);
5138
5258
  useEffect23(() => {
5139
5259
  const observer = new IntersectionObserver(
@@ -5153,7 +5273,7 @@ var MedicalFeatureStatsBlock = ({
5153
5273
  }
5154
5274
  return () => observer.disconnect();
5155
5275
  }, []);
5156
- return /* @__PURE__ */ React55.createElement("section", { className: "py-24 w-full flex justify-center relative z-10" }, /* @__PURE__ */ React55.createElement("div", { className: "max-w-6xl w-full flex flex-col px-4 md:px-8" }, /* @__PURE__ */ React55.createElement("div", { className: "flex flex-col lg:flex-row justify-between items-start lg:items-end gap-10 mb-12" }, /* @__PURE__ */ React55.createElement("div", { className: "max-w-xl" }, /* @__PURE__ */ React55.createElement(
5276
+ return /* @__PURE__ */ React56.createElement("section", { className: "py-24 w-full flex justify-center relative z-10" }, /* @__PURE__ */ React56.createElement("div", { className: "max-w-6xl w-full flex flex-col px-4 md:px-8" }, /* @__PURE__ */ React56.createElement("div", { className: "flex flex-col lg:flex-row justify-between items-start lg:items-end gap-10 mb-12" }, /* @__PURE__ */ React56.createElement("div", { className: "max-w-xl" }, /* @__PURE__ */ React56.createElement(
5157
5277
  "h2",
5158
5278
  {
5159
5279
  ref: titleRef,
@@ -5161,7 +5281,7 @@ var MedicalFeatureStatsBlock = ({
5161
5281
  style: isAnimating ? { animationIterationCount: 1 } : {}
5162
5282
  },
5163
5283
  bottomHeadline
5164
- ), /* @__PURE__ */ React55.createElement("p", { className: "text-[14px] leading-relaxed text-neutral-500" }, bottomDescription)), /* @__PURE__ */ React55.createElement("div", { className: "flex items-center gap-4 shrink-0" }, /* @__PURE__ */ React55.createElement("div", { className: "flex -space-x-3" }, avatars.map((src, i) => /* @__PURE__ */ React55.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__ */ React55.createElement(
5284
+ ), /* @__PURE__ */ React56.createElement("p", { className: "text-[14px] leading-relaxed text-neutral-500" }, bottomDescription)), /* @__PURE__ */ React56.createElement("div", { className: "flex items-center gap-4 shrink-0" }, /* @__PURE__ */ React56.createElement("div", { className: "flex -space-x-3" }, avatars.map((src, i) => /* @__PURE__ */ React56.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__ */ React56.createElement(
5165
5285
  Image11,
5166
5286
  {
5167
5287
  src,
@@ -5170,17 +5290,17 @@ var MedicalFeatureStatsBlock = ({
5170
5290
  sizes: "48px",
5171
5291
  className: "object-cover"
5172
5292
  }
5173
- )))), /* @__PURE__ */ React55.createElement("p", { className: "text-[11px] text-neutral-800 leading-[1.4] max-w-55" }, trustText))), /* @__PURE__ */ React55.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6" }, stats.map((stat, idx) => /* @__PURE__ */ React55.createElement("div", { key: idx, className: "bg-white rounded-4xl p-8 md:p-10 flex flex-col h-70" }, /* @__PURE__ */ React55.createElement("div", { className: "flex items-center p-0.5 mb-6" }, /* @__PURE__ */ React55.createElement("span", { className: "text-[14px] text-neutral-500 tracking-wide" }, stat.label)), /* @__PURE__ */ React55.createElement("div", { className: "text-6xl gradient-text md:text-[80px] font-light tracking-tighter text-black mt-auto leading-none" }, stat.value))))));
5293
+ )))), /* @__PURE__ */ React56.createElement("p", { className: "text-[11px] text-neutral-800 leading-[1.4] max-w-55" }, trustText))), /* @__PURE__ */ React56.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6" }, stats.map((stat, idx) => /* @__PURE__ */ React56.createElement("div", { key: idx, className: "bg-white rounded-4xl p-8 md:p-10 flex flex-col h-70" }, /* @__PURE__ */ React56.createElement("div", { className: "flex items-center p-0.5 mb-6" }, /* @__PURE__ */ React56.createElement("span", { className: "text-[14px] text-neutral-500 tracking-wide" }, stat.label)), /* @__PURE__ */ React56.createElement("div", { className: "text-6xl gradient-text md:text-[80px] font-light tracking-tighter text-black mt-auto leading-none" }, stat.value))))));
5174
5294
  };
5175
5295
 
5176
5296
  // src/components/ConsultantShowcase.tsx
5177
- import React56, { useState as useState35 } from "react";
5297
+ import React57, { useState as useState36 } from "react";
5178
5298
  import Image12 from "next/image";
5179
- import { HugeiconsIcon as HugeiconsIcon38 } from "@hugeicons/react";
5180
- import { Loading03Icon as Loading03Icon20 } from "@hugeicons/core-free-icons";
5299
+ import { HugeiconsIcon as HugeiconsIcon39 } from "@hugeicons/react";
5300
+ import { Loading03Icon as Loading03Icon21 } from "@hugeicons/core-free-icons";
5181
5301
  var ImageWithLoader = ({ src, alt, className, sizes, priority = false }) => {
5182
- const [isLoading, setIsLoading] = useState35(true);
5183
- return /* @__PURE__ */ React56.createElement("div", { className: `absolute inset-0 bg-neutral-800 ${className}` }, isLoading && /* @__PURE__ */ React56.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__ */ React56.createElement(HugeiconsIcon38, { icon: Loading03Icon20, size: 24, className: "animate-spin text-white/50" })), /* @__PURE__ */ React56.createElement(
5302
+ const [isLoading, setIsLoading] = useState36(true);
5303
+ return /* @__PURE__ */ React57.createElement("div", { className: `absolute inset-0 bg-neutral-800 ${className}` }, isLoading && /* @__PURE__ */ React57.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__ */ React57.createElement(HugeiconsIcon39, { icon: Loading03Icon21, size: 24, className: "animate-spin text-white/50" })), /* @__PURE__ */ React57.createElement(
5184
5304
  Image12,
5185
5305
  {
5186
5306
  src,
@@ -5199,9 +5319,9 @@ var ImageWithLoader = ({ src, alt, className, sizes, priority = false }) => {
5199
5319
  var ConsultantShowcase = ({
5200
5320
  profiles
5201
5321
  }) => {
5202
- const [currentIndex, setCurrentIndex] = useState35(0);
5203
- const [touchStart, setTouchStart] = useState35(null);
5204
- const [touchEnd, setTouchEnd] = useState35(null);
5322
+ const [currentIndex, setCurrentIndex] = useState36(0);
5323
+ const [touchStart, setTouchStart] = useState36(null);
5324
+ const [touchEnd, setTouchEnd] = useState36(null);
5205
5325
  const nextSlide = () => {
5206
5326
  setCurrentIndex((prev) => prev === profiles.length - 1 ? 0 : prev + 1);
5207
5327
  };
@@ -5226,7 +5346,7 @@ var ConsultantShowcase = ({
5226
5346
  }
5227
5347
  };
5228
5348
  if (!profiles || profiles.length === 0) return null;
5229
- return /* @__PURE__ */ React56.createElement("section", { className: "py-24 w-full flex justify-center px-4 md:px-8 z-10 relative" }, /* @__PURE__ */ React56.createElement("div", { className: "max-w-6xl w-full" }, /* @__PURE__ */ React56.createElement(
5349
+ return /* @__PURE__ */ React57.createElement("section", { className: "py-24 w-full flex justify-center px-4 md:px-8 z-10 relative" }, /* @__PURE__ */ React57.createElement("div", { className: "max-w-6xl w-full" }, /* @__PURE__ */ React57.createElement(
5230
5350
  "div",
5231
5351
  {
5232
5352
  className: "relative w-full h-100 md:h-112.5 rounded-4xl overflow-hidden bg-neutral-900 group select-none",
@@ -5236,13 +5356,13 @@ var ConsultantShowcase = ({
5236
5356
  },
5237
5357
  profiles.map((profile, idx) => {
5238
5358
  const isActive = idx === currentIndex;
5239
- return /* @__PURE__ */ React56.createElement(
5359
+ return /* @__PURE__ */ React57.createElement(
5240
5360
  "div",
5241
5361
  {
5242
5362
  key: profile.id,
5243
5363
  className: `absolute inset-0 transition-opacity duration-700 ease-in-out ${isActive ? "opacity-100 z-10" : "opacity-0 z-0 pointer-events-none"}`
5244
5364
  },
5245
- /* @__PURE__ */ React56.createElement(
5365
+ /* @__PURE__ */ React57.createElement(
5246
5366
  ImageWithLoader,
5247
5367
  {
5248
5368
  src: profile.imageSrc,
@@ -5250,14 +5370,14 @@ var ConsultantShowcase = ({
5250
5370
  priority: idx === 0
5251
5371
  }
5252
5372
  ),
5253
- /* @__PURE__ */ React56.createElement("div", { className: "absolute inset-0 bg-black/20 z-10 pointer-events-none" }),
5254
- /* @__PURE__ */ React56.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" }),
5255
- /* @__PURE__ */ React56.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__ */ React56.createElement("h2", { className: "text-[29px] tracking-tight mb-2 leading-none" }, profile.name), /* @__PURE__ */ React56.createElement("div", { className: "flex flex-col gap-0.5" }, /* @__PURE__ */ React56.createElement("p", { className: "text-[15px] text-white/80 font-light tracking-wide" }, profile.role), profile.description && /* @__PURE__ */ React56.createElement("p", { className: "text-[15px] text-white/80 font-light tracking-wide mt-1" }, profile.description)))
5373
+ /* @__PURE__ */ React57.createElement("div", { className: "absolute inset-0 bg-black/20 z-10 pointer-events-none" }),
5374
+ /* @__PURE__ */ React57.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" }),
5375
+ /* @__PURE__ */ React57.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__ */ React57.createElement("h2", { className: "text-[29px] tracking-tight mb-2 leading-none" }, profile.name), /* @__PURE__ */ React57.createElement("div", { className: "flex flex-col gap-0.5" }, /* @__PURE__ */ React57.createElement("p", { className: "text-[15px] text-white/80 font-light tracking-wide" }, profile.role), profile.description && /* @__PURE__ */ React57.createElement("p", { className: "text-[15px] text-white/80 font-light tracking-wide mt-1" }, profile.description)))
5256
5376
  );
5257
5377
  }),
5258
- /* @__PURE__ */ React56.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" }),
5259
- /* @__PURE__ */ React56.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" }),
5260
- /* @__PURE__ */ React56.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__ */ React56.createElement(
5378
+ /* @__PURE__ */ React57.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" }),
5379
+ /* @__PURE__ */ React57.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" }),
5380
+ /* @__PURE__ */ React57.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__ */ React57.createElement(
5261
5381
  "button",
5262
5382
  {
5263
5383
  key: idx,
@@ -5270,10 +5390,10 @@ var ConsultantShowcase = ({
5270
5390
  };
5271
5391
 
5272
5392
  // src/components/ContentGridBlock.tsx
5273
- import React57, { useState as useState36 } from "react";
5393
+ import React58, { useState as useState37 } from "react";
5274
5394
  import Image13 from "next/image";
5275
- import { HugeiconsIcon as HugeiconsIcon39 } from "@hugeicons/react";
5276
- import { Loading03Icon as Loading03Icon21 } from "@hugeicons/core-free-icons";
5395
+ import { HugeiconsIcon as HugeiconsIcon40 } from "@hugeicons/react";
5396
+ import { Loading03Icon as Loading03Icon22 } from "@hugeicons/core-free-icons";
5277
5397
  var ContentGridBlock = ({
5278
5398
  header,
5279
5399
  leftCard,
@@ -5281,33 +5401,33 @@ var ContentGridBlock = ({
5281
5401
  middleBottomCard,
5282
5402
  rightCards
5283
5403
  }) => {
5284
- return /* @__PURE__ */ React57.createElement("section", { className: " w-full flex justify-center z-10 relative" }, /* @__PURE__ */ React57.createElement("div", { className: "max-w-300 w-full px-4 md:px-8 flex flex-col gap-12" }, /* @__PURE__ */ React57.createElement("div", { className: "flex flex-col lg:flex-row justify-between items-start lg:items-end gap-6 w-full" }, /* @__PURE__ */ React57.createElement("h2", { className: "text-3xl tracking-tight text-black leading-[1.15] max-w-lg" }, header.titlePrefix, " ", /* @__PURE__ */ React57.createElement("span", { className: "gradient-text" }, header.highlightText))), /* @__PURE__ */ React57.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6" }, /* @__PURE__ */ React57.createElement("div", { className: "flex flex-col justify-end" }, /* @__PURE__ */ React57.createElement("div", { className: "bg-black rounded-3xl p-8 flex flex-col h-80" }, /* @__PURE__ */ React57.createElement("p", { className: "text-[17px] text-white leading-snug mb-4" }, leftCard.mainText), leftCard.tag && /* @__PURE__ */ React57.createElement("span", { className: "mb-auto text-[11px] text-neutral-200 tracking-widest" }, leftCard.tag), /* @__PURE__ */ React57.createElement("div", { className: "flex items-center justify-between mt-8" }, /* @__PURE__ */ React57.createElement("div", null, /* @__PURE__ */ React57.createElement("h4", { className: "text-[15px] text-white" }, leftCard.title), /* @__PURE__ */ React57.createElement("p", { className: "text-[13px] text-neutral-300" }, leftCard.subtitle)), /* @__PURE__ */ React57.createElement("div", { className: "w-10 h-10 rounded-full overflow-hidden relative" }, /* @__PURE__ */ React57.createElement(Image13, { src: leftCard.thumbnailSrc, alt: leftCard.title, fill: true, className: "object-cover" }))))), /* @__PURE__ */ React57.createElement("div", { className: "flex flex-col gap-6" }, /* @__PURE__ */ React57.createElement("div", { className: "bg-white rounded-3xl p-8 flex flex-col relative h-75" }, /* @__PURE__ */ React57.createElement("div", { className: "absolute top-6 right-6 flex flex-col items-end gap-1" }, /* @__PURE__ */ React57.createElement("span", { className: "text-[11px] text-neutral-400 tracking-wide" }, middleTopCard.topRightLabel), /* @__PURE__ */ React57.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React57.createElement("div", { className: "flex -space-x-2" }, middleTopCard.topRightAvatars.map((src, i) => /* @__PURE__ */ React57.createElement("div", { key: i, className: "w-7 h-7 rounded-full border-2 border-white overflow-hidden relative z-10" }, /* @__PURE__ */ React57.createElement(Image13, { src, alt: "Avatar", fill: true, className: "object-cover", sizes: "28px" })))), /* @__PURE__ */ React57.createElement("span", { className: "text-sm text-neutral-500" }, middleTopCard.topRightCount))), /* @__PURE__ */ React57.createElement("div", { className: "grow flex flex-col justify-center items-center py-6" }, /* @__PURE__ */ React57.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__ */ React57.createElement("span", { className: " text-black" }, middleTopCard.badgeHighlight), middleTopCard.badgeSuffix)), /* @__PURE__ */ React57.createElement("div", { className: "mt-auto" }, /* @__PURE__ */ React57.createElement("p", { className: "text-[11px] text-neutral-400 tracking-wide mb-1" }, middleTopCard.title), /* @__PURE__ */ React57.createElement("p", { className: "text-[14px] text-black leading-snug pr-4" }, middleTopCard.description))), /* @__PURE__ */ React57.createElement("div", { className: "bg-white rounded-3xl p-8 flex flex-col h-80" }, /* @__PURE__ */ React57.createElement("div", { className: "flex justify-between items-start mb-6" }, /* @__PURE__ */ React57.createElement("div", null, /* @__PURE__ */ React57.createElement("h4", { className: "text-[15px] text-black leading-tight" }, middleBottomCard.title), /* @__PURE__ */ React57.createElement("p", { className: "text-[13px] text-neutral-400" }, middleBottomCard.subtitle)), /* @__PURE__ */ React57.createElement("div", { className: "w-10 h-10 rounded-full overflow-hidden relative" }, /* @__PURE__ */ React57.createElement(Image13, { src: middleBottomCard.thumbnailSrc, alt: middleBottomCard.title, fill: true, className: "object-cover" }))), /* @__PURE__ */ React57.createElement("div", { className: "mt-auto" }, /* @__PURE__ */ React57.createElement("p", { className: "text-[16px] text-black leading-snug mb-4" }, middleBottomCard.mainText), middleBottomCard.tag && /* @__PURE__ */ React57.createElement("span", { className: "text-[11px] text-neutral-400 tracking-widest" }, middleBottomCard.tag)))), /* @__PURE__ */ React57.createElement("div", { className: "flex flex-col gap-6" }, rightCards.slice(0, 2).map((card, idx) => /* @__PURE__ */ React57.createElement("div", { key: idx, className: "relative w-full h-80 bg-[#2027d7] rounded-3xl overflow-hidden group" }, /* @__PURE__ */ React57.createElement("div", { className: "absolute inset-0 z-20 pointer-events-none" }), /* @__PURE__ */ React57.createElement("div", { className: "absolute inset-0 z-30 p-6 flex flex-col justify-end text-white" }, /* @__PURE__ */ React57.createElement("p", { className: "text-[14px] leading-snug mb-3 pr-2 text-white/90" }, card.mainText), card.tag && /* @__PURE__ */ React57.createElement("span", { className: "mb-4 text-[11px] text-white/50 tracking-widest" }, card.tag), /* @__PURE__ */ React57.createElement("div", { className: "pt-3" }, /* @__PURE__ */ React57.createElement("h4", { className: "text-[15px] tracking-wide" }, card.title), /* @__PURE__ */ React57.createElement("p", { className: "text-[13px] text-white/60" }, card.subtitle)))))))));
5404
+ return /* @__PURE__ */ React58.createElement("section", { className: " w-full flex justify-center z-10 relative" }, /* @__PURE__ */ React58.createElement("div", { className: "max-w-300 w-full px-4 md:px-8 flex flex-col gap-12" }, /* @__PURE__ */ React58.createElement("div", { className: "flex flex-col lg:flex-row justify-between items-start lg:items-end gap-6 w-full" }, /* @__PURE__ */ React58.createElement("h2", { className: "text-3xl tracking-tight text-black leading-[1.15] max-w-lg" }, header.titlePrefix, " ", /* @__PURE__ */ React58.createElement("span", { className: "gradient-text" }, header.highlightText))), /* @__PURE__ */ React58.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6" }, /* @__PURE__ */ React58.createElement("div", { className: "flex flex-col justify-end" }, /* @__PURE__ */ React58.createElement("div", { className: "bg-black rounded-3xl p-8 flex flex-col h-80" }, /* @__PURE__ */ React58.createElement("p", { className: "text-[17px] text-white leading-snug mb-4" }, leftCard.mainText), leftCard.tag && /* @__PURE__ */ React58.createElement("span", { className: "mb-auto text-[11px] text-neutral-200 tracking-widest" }, leftCard.tag), /* @__PURE__ */ React58.createElement("div", { className: "flex items-center justify-between mt-8" }, /* @__PURE__ */ React58.createElement("div", null, /* @__PURE__ */ React58.createElement("h4", { className: "text-[15px] text-white" }, leftCard.title), /* @__PURE__ */ React58.createElement("p", { className: "text-[13px] text-neutral-300" }, leftCard.subtitle)), /* @__PURE__ */ React58.createElement("div", { className: "w-10 h-10 rounded-full overflow-hidden relative" }, /* @__PURE__ */ React58.createElement(Image13, { src: leftCard.thumbnailSrc, alt: leftCard.title, fill: true, className: "object-cover" }))))), /* @__PURE__ */ React58.createElement("div", { className: "flex flex-col gap-6" }, /* @__PURE__ */ React58.createElement("div", { className: "bg-white rounded-3xl p-8 flex flex-col relative h-75" }, /* @__PURE__ */ React58.createElement("div", { className: "absolute top-6 right-6 flex flex-col items-end gap-1" }, /* @__PURE__ */ React58.createElement("span", { className: "text-[11px] text-neutral-400 tracking-wide" }, middleTopCard.topRightLabel), /* @__PURE__ */ React58.createElement("div", { className: "flex items-center gap-2" }, /* @__PURE__ */ React58.createElement("div", { className: "flex -space-x-2" }, middleTopCard.topRightAvatars.map((src, i) => /* @__PURE__ */ React58.createElement("div", { key: i, className: "w-7 h-7 rounded-full border-2 border-white overflow-hidden relative z-10" }, /* @__PURE__ */ React58.createElement(Image13, { src, alt: "Avatar", fill: true, className: "object-cover", sizes: "28px" })))), /* @__PURE__ */ React58.createElement("span", { className: "text-sm text-neutral-500" }, middleTopCard.topRightCount))), /* @__PURE__ */ React58.createElement("div", { className: "grow flex flex-col justify-center items-center py-6" }, /* @__PURE__ */ React58.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__ */ React58.createElement("span", { className: " text-black" }, middleTopCard.badgeHighlight), middleTopCard.badgeSuffix)), /* @__PURE__ */ React58.createElement("div", { className: "mt-auto" }, /* @__PURE__ */ React58.createElement("p", { className: "text-[11px] text-neutral-400 tracking-wide mb-1" }, middleTopCard.title), /* @__PURE__ */ React58.createElement("p", { className: "text-[14px] text-black leading-snug pr-4" }, middleTopCard.description))), /* @__PURE__ */ React58.createElement("div", { className: "bg-white rounded-3xl p-8 flex flex-col h-80" }, /* @__PURE__ */ React58.createElement("div", { className: "flex justify-between items-start mb-6" }, /* @__PURE__ */ React58.createElement("div", null, /* @__PURE__ */ React58.createElement("h4", { className: "text-[15px] text-black leading-tight" }, middleBottomCard.title), /* @__PURE__ */ React58.createElement("p", { className: "text-[13px] text-neutral-400" }, middleBottomCard.subtitle)), /* @__PURE__ */ React58.createElement("div", { className: "w-10 h-10 rounded-full overflow-hidden relative" }, /* @__PURE__ */ React58.createElement(Image13, { src: middleBottomCard.thumbnailSrc, alt: middleBottomCard.title, fill: true, className: "object-cover" }))), /* @__PURE__ */ React58.createElement("div", { className: "mt-auto" }, /* @__PURE__ */ React58.createElement("p", { className: "text-[16px] text-black leading-snug mb-4" }, middleBottomCard.mainText), middleBottomCard.tag && /* @__PURE__ */ React58.createElement("span", { className: "text-[11px] text-neutral-400 tracking-widest" }, middleBottomCard.tag)))), /* @__PURE__ */ React58.createElement("div", { className: "flex flex-col gap-6" }, rightCards.slice(0, 2).map((card, idx) => /* @__PURE__ */ React58.createElement("div", { key: idx, className: "relative w-full h-80 bg-[#2027d7] rounded-3xl overflow-hidden group" }, /* @__PURE__ */ React58.createElement("div", { className: "absolute inset-0 z-20 pointer-events-none" }), /* @__PURE__ */ React58.createElement("div", { className: "absolute inset-0 z-30 p-6 flex flex-col justify-end text-white" }, /* @__PURE__ */ React58.createElement("p", { className: "text-[14px] leading-snug mb-3 pr-2 text-white/90" }, card.mainText), card.tag && /* @__PURE__ */ React58.createElement("span", { className: "mb-4 text-[11px] text-white/50 tracking-widest" }, card.tag), /* @__PURE__ */ React58.createElement("div", { className: "pt-3" }, /* @__PURE__ */ React58.createElement("h4", { className: "text-[15px] tracking-wide" }, card.title), /* @__PURE__ */ React58.createElement("p", { className: "text-[13px] text-white/60" }, card.subtitle)))))))));
5285
5405
  };
5286
5406
 
5287
5407
  // src/components/UniversalAppDetails.tsx
5288
- import React58, { useState as useState37 } from "react";
5289
- import { HugeiconsIcon as HugeiconsIcon40 } from "@hugeicons/react";
5408
+ import React59, { useState as useState38 } from "react";
5409
+ import { HugeiconsIcon as HugeiconsIcon41 } from "@hugeicons/react";
5290
5410
  import {
5291
5411
  AppleIcon,
5292
5412
  AndroidIcon,
5293
5413
  Download01Icon as Download01Icon2,
5294
5414
  Bookmark02Icon,
5295
- Loading03Icon as Loading03Icon22,
5415
+ Loading03Icon as Loading03Icon23,
5296
5416
  ArrowDown01Icon as ArrowDown01Icon5,
5297
5417
  Cancel01Icon as Cancel01Icon5,
5298
5418
  ArrowLeft01Icon as ArrowLeft01Icon12,
5299
5419
  ArrowRight01Icon as ArrowRight01Icon11
5300
5420
  } from "@hugeicons/core-free-icons";
5301
5421
  var ScreenshotCard = ({ src, alt, onClick }) => {
5302
- const [isLoading, setIsLoading] = useState37(true);
5303
- return /* @__PURE__ */ React58.createElement(
5422
+ const [isLoading, setIsLoading] = useState38(true);
5423
+ return /* @__PURE__ */ React59.createElement(
5304
5424
  "button",
5305
5425
  {
5306
5426
  onClick,
5307
5427
  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"
5308
5428
  },
5309
- isLoading && /* @__PURE__ */ React58.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-10 bg-neutral-50/50" }, /* @__PURE__ */ React58.createElement(HugeiconsIcon40, { icon: Loading03Icon22, size: 24, className: "animate-spin text-neutral-400" })),
5310
- /* @__PURE__ */ React58.createElement(
5429
+ isLoading && /* @__PURE__ */ React59.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-10 bg-neutral-50/50" }, /* @__PURE__ */ React59.createElement(HugeiconsIcon41, { icon: Loading03Icon23, size: 24, className: "animate-spin text-neutral-400" })),
5430
+ /* @__PURE__ */ React59.createElement(
5311
5431
  "img",
5312
5432
  {
5313
5433
  src,
@@ -5320,8 +5440,8 @@ var ScreenshotCard = ({ src, alt, onClick }) => {
5320
5440
  );
5321
5441
  };
5322
5442
  var LightboxImage = ({ src }) => {
5323
- const [isLoading, setIsLoading] = useState37(true);
5324
- return /* @__PURE__ */ React58.createElement("div", { className: "relative w-full h-full flex items-center justify-center p-4" }, isLoading && /* @__PURE__ */ React58.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-10" }, /* @__PURE__ */ React58.createElement(HugeiconsIcon40, { icon: Loading03Icon22, size: 32, className: "animate-spin text-white" })), /* @__PURE__ */ React58.createElement(
5443
+ const [isLoading, setIsLoading] = useState38(true);
5444
+ return /* @__PURE__ */ React59.createElement("div", { className: "relative w-full h-full flex items-center justify-center p-4" }, isLoading && /* @__PURE__ */ React59.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-10" }, /* @__PURE__ */ React59.createElement(HugeiconsIcon41, { icon: Loading03Icon23, size: 32, className: "animate-spin text-white" })), /* @__PURE__ */ React59.createElement(
5325
5445
  "img",
5326
5446
  {
5327
5447
  src,
@@ -5332,9 +5452,9 @@ var LightboxImage = ({ src }) => {
5332
5452
  ));
5333
5453
  };
5334
5454
  var UniversalAppDetails = ({ app, onBack }) => {
5335
- const [isLogoLoading, setIsLogoLoading] = useState37(true);
5336
- const [isDescExpanded, setIsDescExpanded] = useState37(false);
5337
- const [lightboxIndex, setLightboxIndex] = useState37(null);
5455
+ const [isLogoLoading, setIsLogoLoading] = useState38(true);
5456
+ const [isDescExpanded, setIsDescExpanded] = useState38(false);
5457
+ const [lightboxIndex, setLightboxIndex] = useState38(null);
5338
5458
  const MAX_DESC_LENGTH = 150;
5339
5459
  const isDescLong = app.description.length > MAX_DESC_LENGTH;
5340
5460
  const displayDesc = isDescExpanded || !isDescLong ? app.description : `${app.description.substring(0, MAX_DESC_LENGTH)}...`;
@@ -5348,7 +5468,7 @@ var UniversalAppDetails = ({ app, onBack }) => {
5348
5468
  setLightboxIndex(lightboxIndex === app.screenshots.length - 1 ? 0 : lightboxIndex + 1);
5349
5469
  }
5350
5470
  };
5351
- return /* @__PURE__ */ React58.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__ */ React58.createElement("div", { className: "flex flex-col sm:flex-row items-start gap-4 w-full mb-10 text-left" }, /* @__PURE__ */ React58.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__ */ React58.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-10 bg-neutral-100 animate-pulse" }), /* @__PURE__ */ React58.createElement(
5471
+ return /* @__PURE__ */ React59.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__ */ React59.createElement("div", { className: "flex flex-col sm:flex-row items-start gap-4 w-full mb-10 text-left" }, /* @__PURE__ */ React59.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__ */ React59.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-10 bg-neutral-100 animate-pulse" }), /* @__PURE__ */ React59.createElement(
5352
5472
  "img",
5353
5473
  {
5354
5474
  src: app.logoSrc,
@@ -5356,15 +5476,15 @@ var UniversalAppDetails = ({ app, onBack }) => {
5356
5476
  onLoad: () => setIsLogoLoading(false),
5357
5477
  className: `w-full h-full object-cover transition-opacity duration-300 z-20 ${isLogoLoading ? "opacity-0" : "opacity-100"}`
5358
5478
  }
5359
- )), /* @__PURE__ */ React58.createElement("div", { className: "flex flex-col justify-center pt-1 min-w-0" }, /* @__PURE__ */ React58.createElement("h1", { className: "text-xl text-black leading-tight mb-1 " }, /* @__PURE__ */ React58.createElement("span", { className: "block truncate" }, app.name)), /* @__PURE__ */ React58.createElement("span", { className: "text-xs mt-1 text-neutral-400 truncate max-w-full" }, app.tagline), /* @__PURE__ */ React58.createElement("div", { className: "flex flex-wrap items-center mt-4 gap-8 w-full" }, /* @__PURE__ */ React58.createElement("div", { className: "flex flex-col items-center" }, /* @__PURE__ */ React58.createElement("div", { className: "flex items-center gap-1.5 h-6 text-neutral-800" }, app.platforms.android && /* @__PURE__ */ React58.createElement(HugeiconsIcon40, { icon: AndroidIcon, size: 18 }), app.platforms.ios && /* @__PURE__ */ React58.createElement(HugeiconsIcon40, { icon: AppleIcon, size: 18 })), /* @__PURE__ */ React58.createElement("span", { className: "text-[10px] text-neutral-400 mt-1" }, "Platforms")), /* @__PURE__ */ React58.createElement("div", { className: "flex flex-col items-center" }, /* @__PURE__ */ React58.createElement("span", { className: "text-sm h-6 flex items-center text-neutral-800 truncate" }, app.stats.type), /* @__PURE__ */ React58.createElement("span", { className: "text-[10px] text-neutral-400 mt-1" }, "Type")), /* @__PURE__ */ React58.createElement("div", { className: "flex flex-col items-center" }, /* @__PURE__ */ React58.createElement("span", { className: "text-sm h-6 flex items-center text-neutral-800 truncate" }, app.stats.size), /* @__PURE__ */ React58.createElement("span", { className: "text-[10px] text-neutral-400 mt-1" }, "Size"))))), /* @__PURE__ */ React58.createElement("div", { className: "flex flex-col sm:flex-row gap-4 items-center w-full mx-auto mb-12" }, app.ctaText && app.ctaHref && /* @__PURE__ */ React58.createElement("div", { className: "w-full sm:w-60 flex justify-center *:w-full" }, /* @__PURE__ */ React58.createElement(ThreeDButton, { href: app.ctaHref }, /* @__PURE__ */ React58.createElement("span", { className: "flex items-center justify-center gap-2" }, /* @__PURE__ */ React58.createElement(HugeiconsIcon40, { icon: Download01Icon2, size: 16 }), app.ctaText))), app.secondaryCtaText && app.secondaryCtaHref && /* @__PURE__ */ React58.createElement(
5479
+ )), /* @__PURE__ */ React59.createElement("div", { className: "flex flex-col justify-center pt-1 min-w-0" }, /* @__PURE__ */ React59.createElement("h1", { className: "text-xl text-black leading-tight mb-1 " }, /* @__PURE__ */ React59.createElement("span", { className: "block truncate" }, app.name)), /* @__PURE__ */ React59.createElement("span", { className: "text-xs mt-1 text-neutral-400 truncate max-w-full" }, app.tagline), /* @__PURE__ */ React59.createElement("div", { className: "flex flex-wrap items-center mt-4 gap-8 w-full" }, /* @__PURE__ */ React59.createElement("div", { className: "flex flex-col items-center" }, /* @__PURE__ */ React59.createElement("div", { className: "flex items-center gap-1.5 h-6 text-neutral-800" }, app.platforms.android && /* @__PURE__ */ React59.createElement(HugeiconsIcon41, { icon: AndroidIcon, size: 18 }), app.platforms.ios && /* @__PURE__ */ React59.createElement(HugeiconsIcon41, { icon: AppleIcon, size: 18 })), /* @__PURE__ */ React59.createElement("span", { className: "text-[10px] text-neutral-400 mt-1" }, "Platforms")), /* @__PURE__ */ React59.createElement("div", { className: "flex flex-col items-center" }, /* @__PURE__ */ React59.createElement("span", { className: "text-sm h-6 flex items-center text-neutral-800 truncate" }, app.stats.type), /* @__PURE__ */ React59.createElement("span", { className: "text-[10px] text-neutral-400 mt-1" }, "Type")), /* @__PURE__ */ React59.createElement("div", { className: "flex flex-col items-center" }, /* @__PURE__ */ React59.createElement("span", { className: "text-sm h-6 flex items-center text-neutral-800 truncate" }, app.stats.size), /* @__PURE__ */ React59.createElement("span", { className: "text-[10px] text-neutral-400 mt-1" }, "Size"))))), /* @__PURE__ */ React59.createElement("div", { className: "flex flex-col sm:flex-row gap-4 items-center w-full mx-auto mb-12" }, app.ctaText && app.ctaHref && /* @__PURE__ */ React59.createElement("div", { className: "w-full sm:w-60 flex justify-center *:w-full" }, /* @__PURE__ */ React59.createElement(ThreeDButton, { href: app.ctaHref }, /* @__PURE__ */ React59.createElement("span", { className: "flex items-center justify-center gap-2" }, /* @__PURE__ */ React59.createElement(HugeiconsIcon41, { icon: Download01Icon2, size: 16 }), app.ctaText))), app.secondaryCtaText && app.secondaryCtaHref && /* @__PURE__ */ React59.createElement(
5360
5480
  "a",
5361
5481
  {
5362
5482
  href: app.secondaryCtaHref,
5363
5483
  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"
5364
5484
  },
5365
- /* @__PURE__ */ React58.createElement(HugeiconsIcon40, { icon: Bookmark02Icon, size: 16 }),
5485
+ /* @__PURE__ */ React59.createElement(HugeiconsIcon41, { icon: Bookmark02Icon, size: 16 }),
5366
5486
  app.secondaryCtaText
5367
- )), /* @__PURE__ */ React58.createElement("div", { className: "w-full mb-12" }, /* @__PURE__ */ React58.createElement("h2", { className: "text-xl text-black mb-4" }, "About"), /* @__PURE__ */ React58.createElement("div", { className: "flex gap-3 overflow-x-auto pb-4 scrollbar-hide -mx-6 px-6" }, app.screenshots.map((src, idx) => /* @__PURE__ */ React58.createElement(
5487
+ )), /* @__PURE__ */ React59.createElement("div", { className: "w-full mb-12" }, /* @__PURE__ */ React59.createElement("h2", { className: "text-xl text-black mb-4" }, "About"), /* @__PURE__ */ React59.createElement("div", { className: "flex gap-3 overflow-x-auto pb-4 scrollbar-hide -mx-6 px-6" }, app.screenshots.map((src, idx) => /* @__PURE__ */ React59.createElement(
5368
5488
  ScreenshotCard,
5369
5489
  {
5370
5490
  key: idx,
@@ -5372,43 +5492,43 @@ var UniversalAppDetails = ({ app, onBack }) => {
5372
5492
  alt: `${app.name} Screenshot ${idx + 1}`,
5373
5493
  onClick: () => setLightboxIndex(idx)
5374
5494
  }
5375
- ))), /* @__PURE__ */ React58.createElement("div", { className: "flex items-end text-neutral-500 text-sm leading-relaxed mt-2" }, /* @__PURE__ */ React58.createElement("p", { className: "flex-1 whitespace-pre-wrap" }, displayDesc), isDescLong && /* @__PURE__ */ React58.createElement(
5495
+ ))), /* @__PURE__ */ React59.createElement("div", { className: "flex items-end text-neutral-500 text-sm leading-relaxed mt-2" }, /* @__PURE__ */ React59.createElement("p", { className: "flex-1 whitespace-pre-wrap" }, displayDesc), isDescLong && /* @__PURE__ */ React59.createElement(
5376
5496
  "button",
5377
5497
  {
5378
5498
  onClick: () => setIsDescExpanded(!isDescExpanded),
5379
5499
  className: "ml-2 mb-0.5 text-neutral-400 hover:text-black transition-colors outline-none shrink-0"
5380
5500
  },
5381
- /* @__PURE__ */ React58.createElement(
5382
- HugeiconsIcon40,
5501
+ /* @__PURE__ */ React59.createElement(
5502
+ HugeiconsIcon41,
5383
5503
  {
5384
5504
  icon: ArrowDown01Icon5,
5385
5505
  size: 18,
5386
5506
  className: `transform transition-transform ${isDescExpanded ? "rotate-180" : ""}`
5387
5507
  }
5388
5508
  )
5389
- ))), lightboxIndex !== null && /* @__PURE__ */ React58.createElement("div", { className: "fixed inset-0 z-50 bg-black/30 flex flex-col" }, /* @__PURE__ */ React58.createElement("div", { className: "w-full p-4 sm:p-6 flex justify-end" }, /* @__PURE__ */ React58.createElement(
5509
+ ))), lightboxIndex !== null && /* @__PURE__ */ React59.createElement("div", { className: "fixed inset-0 z-50 bg-black/30 flex flex-col" }, /* @__PURE__ */ React59.createElement("div", { className: "w-full p-4 sm:p-6 flex justify-end" }, /* @__PURE__ */ React59.createElement(
5390
5510
  "button",
5391
5511
  {
5392
5512
  onClick: () => setLightboxIndex(null),
5393
5513
  className: "p-3 text-white bg-white/30 rounded-full transition-colors outline-none"
5394
5514
  },
5395
- /* @__PURE__ */ React58.createElement(HugeiconsIcon40, { icon: Cancel01Icon5, size: 24 })
5396
- )), /* @__PURE__ */ React58.createElement("div", { className: "flex-1 flex items-center justify-between px-4 sm:px-10 pb-10" }, /* @__PURE__ */ React58.createElement("button", { onClick: handlePrev, className: "p-3 text-white bg-white/30 rounded-full" }, /* @__PURE__ */ React58.createElement(HugeiconsIcon40, { icon: ArrowLeft01Icon12, size: 24 })), /* @__PURE__ */ React58.createElement("div", { className: "flex-1 h-full max-h-[80vh]" }, /* @__PURE__ */ React58.createElement(LightboxImage, { src: app.screenshots[lightboxIndex] })), /* @__PURE__ */ React58.createElement("button", { onClick: handleNext, className: "p-3 text-white bg-white/30 rounded-full" }, /* @__PURE__ */ React58.createElement(HugeiconsIcon40, { icon: ArrowRight01Icon11, size: 24 }))), /* @__PURE__ */ React58.createElement("div", { className: "sm:hidden flex justify-between px-8 pb-12 w-full" }, /* @__PURE__ */ React58.createElement("button", { onClick: handlePrev, className: "p-3 text-white bg-white/30 rounded-full" }, /* @__PURE__ */ React58.createElement(HugeiconsIcon40, { icon: ArrowLeft01Icon12, size: 24 })), /* @__PURE__ */ React58.createElement("button", { onClick: handleNext, className: "p-3 text-white bg-white/30 rounded-full" }, /* @__PURE__ */ React58.createElement(HugeiconsIcon40, { icon: ArrowRight01Icon11, size: 24 })))));
5515
+ /* @__PURE__ */ React59.createElement(HugeiconsIcon41, { icon: Cancel01Icon5, size: 24 })
5516
+ )), /* @__PURE__ */ React59.createElement("div", { className: "flex-1 flex items-center justify-between px-4 sm:px-10 pb-10" }, /* @__PURE__ */ React59.createElement("button", { onClick: handlePrev, className: "p-3 text-white bg-white/30 rounded-full" }, /* @__PURE__ */ React59.createElement(HugeiconsIcon41, { icon: ArrowLeft01Icon12, size: 24 })), /* @__PURE__ */ React59.createElement("div", { className: "flex-1 h-full max-h-[80vh]" }, /* @__PURE__ */ React59.createElement(LightboxImage, { src: app.screenshots[lightboxIndex] })), /* @__PURE__ */ React59.createElement("button", { onClick: handleNext, className: "p-3 text-white bg-white/30 rounded-full" }, /* @__PURE__ */ React59.createElement(HugeiconsIcon41, { icon: ArrowRight01Icon11, size: 24 }))), /* @__PURE__ */ React59.createElement("div", { className: "sm:hidden flex justify-between px-8 pb-12 w-full" }, /* @__PURE__ */ React59.createElement("button", { onClick: handlePrev, className: "p-3 text-white bg-white/30 rounded-full" }, /* @__PURE__ */ React59.createElement(HugeiconsIcon41, { icon: ArrowLeft01Icon12, size: 24 })), /* @__PURE__ */ React59.createElement("button", { onClick: handleNext, className: "p-3 text-white bg-white/30 rounded-full" }, /* @__PURE__ */ React59.createElement(HugeiconsIcon41, { icon: ArrowRight01Icon11, size: 24 })))));
5397
5517
  };
5398
5518
 
5399
5519
  // src/components/UniversalAppCategoryGrid.tsx
5400
- import React59, { useState as useState38 } from "react";
5401
- import { HugeiconsIcon as HugeiconsIcon41 } from "@hugeicons/react";
5402
- import { Loading03Icon as Loading03Icon23 } from "@hugeicons/core-free-icons";
5520
+ import React60, { useState as useState39 } from "react";
5521
+ import { HugeiconsIcon as HugeiconsIcon42 } from "@hugeicons/react";
5522
+ import { Loading03Icon as Loading03Icon24 } from "@hugeicons/core-free-icons";
5403
5523
  var AppGridCard = ({ app }) => {
5404
- const [isLoading, setIsLoading] = useState38(true);
5405
- return /* @__PURE__ */ React59.createElement(
5524
+ const [isLoading, setIsLoading] = useState39(true);
5525
+ return /* @__PURE__ */ React60.createElement(
5406
5526
  "button",
5407
5527
  {
5408
5528
  onClick: app.onClick,
5409
5529
  className: "flex flex-col gap-3 group cursor-pointer w-25 text-left outline-none"
5410
5530
  },
5411
- /* @__PURE__ */ React59.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__ */ React59.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-10 bg-neutral-50/50" }, /* @__PURE__ */ React59.createElement(HugeiconsIcon41, { icon: Loading03Icon23, size: 24, className: "animate-spin text-neutral-400" })), /* @__PURE__ */ React59.createElement(
5531
+ /* @__PURE__ */ React60.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__ */ React60.createElement("div", { className: "absolute inset-0 flex items-center justify-center z-10 bg-neutral-50/50" }, /* @__PURE__ */ React60.createElement(HugeiconsIcon42, { icon: Loading03Icon24, size: 24, className: "animate-spin text-neutral-400" })), /* @__PURE__ */ React60.createElement(
5412
5532
  "img",
5413
5533
  {
5414
5534
  src: app.logoSrc,
@@ -5418,7 +5538,7 @@ var AppGridCard = ({ app }) => {
5418
5538
  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"}`
5419
5539
  }
5420
5540
  )),
5421
- /* @__PURE__ */ React59.createElement("div", { className: "flex flex-col min-w-0 px-1" }, /* @__PURE__ */ React59.createElement("span", { className: "text-[13px] text-black tracking-tight truncate group-hover:text-neutral-600 transition-colors" }, app.name), /* @__PURE__ */ React59.createElement("span", { className: "text-[10px] text-neutral-500 tracking-wide truncate mt-0.5" }, app.category))
5541
+ /* @__PURE__ */ React60.createElement("div", { className: "flex flex-col min-w-0 px-1" }, /* @__PURE__ */ React60.createElement("span", { className: "text-[13px] text-black tracking-tight truncate group-hover:text-neutral-600 transition-colors" }, app.name), /* @__PURE__ */ React60.createElement("span", { className: "text-[10px] text-neutral-500 tracking-wide truncate mt-0.5" }, app.category))
5422
5542
  );
5423
5543
  };
5424
5544
  var UniversalAppCategoryGrid = ({
@@ -5426,7 +5546,7 @@ var UniversalAppCategoryGrid = ({
5426
5546
  categoryTitle,
5427
5547
  apps
5428
5548
  }) => {
5429
- return /* @__PURE__ */ React59.createElement("div", { className: "w-full py-16" }, /* @__PURE__ */ React59.createElement("div", { className: "w-full flex justify-center px-4" }, /* @__PURE__ */ React59.createElement("div", { className: "max-w-6xl w-full" }, /* @__PURE__ */ React59.createElement("div", { className: "relative overflow-hidden mb-12 text-left" }, /* @__PURE__ */ React59.createElement("div", { className: "relative z-10" }, tagline && /* @__PURE__ */ React59.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500 block mb-4 " }, tagline), categoryTitle && /* @__PURE__ */ React59.createElement("h2", { className: "text-2xl sm:text-3xl tracking-tight text-black leading-[1.1]" }, categoryTitle))), /* @__PURE__ */ React59.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__ */ React59.createElement(AppGridCard, { key: app.id, app }))))));
5549
+ return /* @__PURE__ */ React60.createElement("div", { className: "w-full py-16" }, /* @__PURE__ */ React60.createElement("div", { className: "w-full flex justify-center px-4" }, /* @__PURE__ */ React60.createElement("div", { className: "max-w-6xl w-full" }, /* @__PURE__ */ React60.createElement("div", { className: "relative overflow-hidden mb-12 text-left" }, /* @__PURE__ */ React60.createElement("div", { className: "relative z-10" }, tagline && /* @__PURE__ */ React60.createElement("span", { className: "text-[11px] tracking-[0.4em] text-neutral-500 block mb-4 " }, tagline), categoryTitle && /* @__PURE__ */ React60.createElement("h2", { className: "text-2xl sm:text-3xl tracking-tight text-black leading-[1.1]" }, categoryTitle))), /* @__PURE__ */ React60.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__ */ React60.createElement(AppGridCard, { key: app.id, app }))))));
5430
5550
  };
5431
5551
  export {
5432
5552
  AITranscriptionFeature,
@@ -5487,6 +5607,7 @@ export {
5487
5607
  UniversalSidebar,
5488
5608
  UniversalTransactionPage,
5489
5609
  UniversalTrashView,
5610
+ UniversalWalletPage,
5490
5611
  ZairusAuth,
5491
5612
  ZairusShareCard
5492
5613
  };